diff --git a/.eslintignore b/.eslintignore index 19e0fcee9e1b5a..e8b8c3f297709a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,7 +4,7 @@ test/addons/??_* test/fixtures test/message/esm_display_syntax_error.mjs tools/icu -tools/lint-md.js +tools/lint-md.mjs tools/node-lint-md-cli-rollup/dist benchmark/tmp doc/**/*.js diff --git a/.eslintrc.js b/.eslintrc.js index f5366997b74265..43b0b83806c37b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -18,6 +18,7 @@ const hacks = [ 'eslint-plugin-markdown', '@babel/eslint-parser', '@babel/plugin-syntax-class-properties', + '@babel/plugin-syntax-import-assertions', '@babel/plugin-syntax-top-level-await', ]; Module._findPath = (request, paths, isMain) => { @@ -41,6 +42,7 @@ module.exports = { babelOptions: { plugins: [ Module._findPath('@babel/plugin-syntax-class-properties'), + Module._findPath('@babel/plugin-syntax-import-assertions'), Module._findPath('@babel/plugin-syntax-top-level-await'), ], }, @@ -124,7 +126,13 @@ module.exports = { ignorePattern: '.*', }, }], - 'comma-dangle': ['error', 'only-multiline'], + 'comma-dangle': ['error', { + arrays: 'always-multiline', + exports: 'only-multiline', + functions: 'only-multiline', + imports: 'only-multiline', + objects: 'only-multiline', + }], 'comma-spacing': 'error', 'comma-style': 'error', 'computed-property-spacing': 'error', @@ -155,6 +163,7 @@ module.exports = { code: 80, ignorePattern: '^// Flags:', ignoreRegExpLiterals: true, + ignoreTemplateLiterals: true, ignoreUrls: true, tabWidth: 2, }], diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9184253c4c271c..3064030e6ea704 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -22,7 +22,6 @@ /doc/guides/contributing/pull-requests.md @nodejs/tsc /doc/guides/collaborator-guide.md @nodejs/tsc /doc/guides/offboarding.md @nodejs/tsc -/doc/guides/onboarding-extras.md @nodejs/tsc # streams @@ -97,6 +96,12 @@ /doc/guides/adding-new-napi-api.md @nodejs/n-api /doc/api/n-api.md @nodejs/n-api +# gyp + +*.gyp @nodejs/gyp +*.gypi @nodejs/gyp +/tools/gyp/**/* @nodejs/gyp + # WASI /deps/uvwasi/ @nodejs/wasi /doc/api/wasi.md @nodejs/wasi @@ -118,3 +123,8 @@ # V8 /deps/v8/* @nodejs/v8-update /tools/v8_gypfiles/* @nodejs/v8-update + +# Actions + +/.github/workflows/* @nodejs/actions +/tools/actions/* @nodejs/actions diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.md b/.github/ISSUE_TEMPLATE/1-bug-report.md deleted file mode 100644 index 84b6daf665e522..00000000000000 --- a/.github/ISSUE_TEMPLATE/1-bug-report.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: "\U0001F41B Bug report" -about: Create a report to help us improve - ---- - - - -* **Version**: -* **Platform**: -* **Subsystem**: - -### What steps will reproduce the bug? - - - -### How often does it reproduce? Is there a required condition? - -### What is the expected behavior? - - - -### What do you see instead? - - - -### Additional information - - diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml new file mode 100644 index 00000000000000..965a2eca45d978 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml @@ -0,0 +1,45 @@ +name: "\U0001F41B Bug report" +description: Create a report to help us improve +body: + - type: markdown + attributes: + value: | + Thank you for reporting an issue. + + This issue tracker is for bugs and issues found within Node.js core. + If you require more general support please file an issue on our help repo. https://github.com/nodejs/help + + Please fill in as much of the form below as you're able. + - type: input + attributes: + label: Version + description: Output of `node -v` + - type: input + attributes: + label: Platform + description: | + UNIX: output of `uname -a` + Windows: output of `"$([Environment]::OSVersion | ForEach-Object VersionString) $(if ([Environment]::Is64BitOperatingSystem) { "x64" } else { "x86" })"` in PowerShell console + - type: input + attributes: + label: Subsystem + description: If known, please specify affected core module name + - type: textarea + attributes: + label: What steps will reproduce the bug? + description: Enter details about your bug, preferably a simple code snippet that can be run using `node` directly without installing third-party dependencies. + - type: textarea + attributes: + label: How often does it reproduce? Is there a required condition? + - type: textarea + attributes: + label: What is the expected behavior? + description: If possible please provide textual output instead of screenshots. + - type: textarea + attributes: + label: What do you see instead? + description: If possible please provide textual output instead of screenshots. + - type: textarea + attributes: + label: Additional information + description: Tell us anything else you think we should know. diff --git a/.github/workflows/authors.yml b/.github/workflows/authors.yml new file mode 100644 index 00000000000000..1f410a727abd42 --- /dev/null +++ b/.github/workflows/authors.yml @@ -0,0 +1,22 @@ +name: "authors update" +on: + workflow_dispatch: + +jobs: + authors_update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' # this is required to actually get all the authors + - 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 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + title: "meta: update AUTHORS" + body: "If this PR exists, there's presumably new additions to the AUTHORS file. This is an automatically generated PR by the `authors.yml` GitHub Action, which runs `tools/update-authors.js` and submits a new PR or updates an existing PR.\n\nPlease note that there might be duplicate entries. If there are, please remove them and add the duplicate emails to .mailmap directly to this PR." + branch: "actions/authors-update" # custom branch *just* for this Action. + commit-message: "meta: update AUTHORS" + author: github-actions[bot] + labels: meta diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml index 236e23d30f65ac..c3527549e16af4 100644 --- a/.github/workflows/auto-start-ci.yml +++ b/.github/workflows/auto-start-ci.yml @@ -10,7 +10,7 @@ on: - cron: "*/5 * * * *" env: - NODE_VERSION: 14.x + NODE_VERSION: lts/* jobs: startCI: diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 8a3daa705883f8..cf6e2ce3673149 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -2,6 +2,7 @@ name: Build from tarball on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] push: branches: - master @@ -57,8 +58,8 @@ jobs: name: tarballs - name: Extract tarball run: | - tar xzf tarballs/*.tar.gz - echo "TAR_DIR=`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV + tar xzf tarballs/*.tar.gz -C $RUNNER_TEMP + echo "TAR_DIR=$RUNNER_TEMP/`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV - name: Copy directories needed for testing run: | cp -r tools/node_modules $TAR_DIR/tools diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 139ecf7c71fbb1..d04028cab029d8 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -2,6 +2,7 @@ name: build-windows on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] push: branches: - master diff --git a/.github/workflows/commit-lint-problem-matcher.json b/.github/workflows/commit-lint-problem-matcher.json new file mode 100644 index 00000000000000..72dd13b9e0929d --- /dev/null +++ b/.github/workflows/commit-lint-problem-matcher.json @@ -0,0 +1,13 @@ +{ + "problemMatcher": [ + { + "owner": "core-validate-commit", + "pattern": [ + { + "regexp": "^not ok \\d+ (.*)$", + "message": 1 + } + ] + } + ] +} diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml new file mode 100644 index 00000000000000..0f6fd639523cb0 --- /dev/null +++ b/.github/workflows/commit-lint.yml @@ -0,0 +1,23 @@ +name: "Commit messages adheres to guidelines at https://goo.gl/p2fr5Q" + +on: [pull_request] + +env: + NODE_VERSION: lts/* + +jobs: + lint-commit-message: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + # Last 100 commits should be enough for a PR + fetch-depth: 100 + - name: Install Node.js + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Validate commit messages + run: | + echo "::add-matcher::.github/workflows/commit-lint-problem-matcher.json" + git log --oneline ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | grep -v -e fixup -e squash | awk '{ print $1 }' | xargs npx -q core-validate-commit --no-validate-metadata --tap diff --git a/.github/workflows/commit-queue.yml b/.github/workflows/commit-queue.yml index 25b7ea5a8cc4ae..9b8e99c98e5582 100644 --- a/.github/workflows/commit-queue.yml +++ b/.github/workflows/commit-queue.yml @@ -15,7 +15,7 @@ on: - cron: "*/5 * * * *" env: - NODE_VERSION: 14.x + NODE_VERSION: lts/* jobs: commitQueue: diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 3d8d66a1254920..e36a3fb5194125 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -6,7 +6,7 @@ on: - cron: "0 0 * * *" env: - NODE_VERSION: 14.x + NODE_VERSION: lts/* jobs: build-lto: diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml new file mode 100644 index 00000000000000..fbb392d2e537ef --- /dev/null +++ b/.github/workflows/find-inactive-collaborators.yml @@ -0,0 +1,41 @@ +name: Find inactive collaborators + +on: + schedule: + # Run on the 15th day of the month at 4:05 AM UTC. + - cron: '5 4 15 * *' + + workflow_dispatch: + +env: + NODE_VERSION: 16.x + NUM_COMMITS: 5000 + +jobs: + find: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: ${{ env.NUM_COMMITS }} + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Find inactive collaborators + run: tools/find-inactive-collaborators.mjs ${{ env.NUM_COMMITS }} + + - name: Open pull request + uses: gr2m/create-or-update-pull-request-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + author: github-actions[bot] + body: This PR was generated by tools/find-inactive-collaborators.yml. + commit-message: "meta: move one or more collaborators to emeritus" + labels: meta + title: "meta: move one or more collaborators to emeritus" diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 4e56676e41e5ff..58e9b226dab0d0 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -11,4 +11,5 @@ jobs: steps: - uses: nodejs/node-pr-labeler@v1 with: + repo-token: ${{ secrets.GH_USER_TOKEN }} configuration-path: .github/label-pr-config.yml diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index a083c4f08d2cce..38168318ee7cc3 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -2,6 +2,7 @@ name: linters on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] push: branches: - master @@ -11,7 +12,7 @@ on: env: PYTHON_VERSION: 3.9 - NODE_VERSION: 14.x + NODE_VERSION: lts/* jobs: lint-addon-docs: diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml index 479b9c6e0fad62..a7366f4d04799d 100644 --- a/.github/workflows/misc.yml +++ b/.github/workflows/misc.yml @@ -2,6 +2,7 @@ name: misc on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] push: branches: - master @@ -10,7 +11,7 @@ on: - v[0-9]+.x env: - NODE_VERSION: 14.x + NODE_VERSION: lts/* jobs: build-docs: diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml index 7b0c135f0a08c2..852b205d1b7e70 100644 --- a/.github/workflows/test-asan.yml +++ b/.github/workflows/test-asan.yml @@ -9,9 +9,12 @@ on: - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: + - '**.md' - 'doc/**' pull_request: + types: [opened, synchronize, reopened, ready_for_review] paths-ignore: + - '**.md' - 'doc/**' env: diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index 651152f8cfe678..c730803e0c342a 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -2,6 +2,7 @@ name: test-linux on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] push: branches: - master diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 20fdd7f98764f2..f2745218bce2c5 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -2,7 +2,9 @@ name: test-macOS on: pull_request: + types: [opened, synchronize, reopened, ready_for_review] paths-ignore: + - '**.md' - 'doc/**' push: branches: @@ -12,6 +14,7 @@ on: - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: + - '**.md' - 'doc/**' env: diff --git a/.mailmap b/.mailmap index 4597ae9e47f61d..e53d49109038df 100644 --- a/.mailmap +++ b/.mailmap @@ -1,461 +1,481 @@ Aaron Bieber Aaron Heckmann -Aayush Ahuja aayush.a +Aayush Ahuja Abe Fettig Abhimanyu Vashisht Akito Ito Alejandro Estrada Alejandro Estrada -Alejandro Oviedo Garcia Alejandro Oviedo -Alex Gilbert agilbert +Alejandro Oviedo Garcia +Alex Gilbert Alex Hultman -Alex Jordan AJ Jordan +Alex Jordan Alex Kocharin Alex Kocharin -Alexander Marchenko axvm +Alexander Marchenko Alexey Kupershtokh Alexis Campailla Alexis Sellier Alexis Sellier -Alfred Cepeda ALJCepeda +Alfred Cepeda Allen Yonghuang Wang -Amery 子丶言 +Amery Amit Bendor Anatoli Papirovski -Andreas Offenhaeuser anoff +Andreas Offenhaeuser Andrew Hughes Andy Bettisworth -Angel Stoyanov atstojanov -Anna Henningsen +Angel Stoyanov Anna Henningsen -Anna Magdalena Kedzierska AnnaMag -Antoine Amara Antoine AMARA +Anna Henningsen +Anna Magdalena Kedzierska +Antoine Amara Aria Stewart Arlo Breault -Arnaud Lefebvre BlackYoup -Artem Zaytsev -Artur G Vieira Artur Vieira +Arnaud Lefebvre Arnout Kazemier <3rd-Eden@users.noreply.github.com> -Asaf David asafdav2 +Artem Zaytsev +Artur G Vieira +Asaf David Ash Cripps -Ash Cripps Ash Cripps -Ashley Maceli ashleyraymaceli +Ash Cripps +Ashley Maceli Ashok Suthar Ashutosh Kumar Singh Atsuo Fukaya -Ben Lugavere blugavere -Ben Noordhuis +Ben Lugavere Ben Noordhuis +Ben Noordhuis Ben Taber Benjamin Coe Benjamin Coe -Benjamin Fleischer Benjamin Fleischer +Benjamin Fleischer +Benjamin Gruenbaum Benjamin Gruenbaum Benjamin Gruenbaum -Benjamin Gruenbaum Benjamin Waters Bert Belder Bert Belder Bert Belder -Beth Griggs Beth Griggs -Beth Griggs Bethany Griggs -Beth Griggs Bethany N Griggs -Beth Griggs BethGriggs +Beth Griggs Bidisha Pyne -Brad Decker brad-decker -Brad Larson BradLarson -Bradley Meck Bradley Farias +bl-ue <54780737+bl-ue@users.noreply.github.com> +Brad Decker +Brad Larson Brandon Benvie -Brandon Kobel kobelb +Brandon Kobel Brendan Ashworth -Brent Pendergraft penDerGraft +Brent Pendergraft Brian White Brian White Caleb Boyd Calvin Metcalf Calvin Metcalf -Caralyn Reisle creisle +Caralyn Reisle Charles Charles Rudolph Chen Gang Chew Choon Keat -Chris Andrews cpandrews8 +Chris Andrews Chris Johnson Chris Young Christian Clauss Christian Clauss -Christophe Naud-Dulude Chris911 +Christophe Naud-Dulude Christopher Lenz Claudio Rodriguez Colin Ihrig Corey Martin Damien Simonin Feugas Dan Kaplun -Dan Williams Dan.Williams -Daniel Abrão Daniel Abrão -Daniel Bevenius daniel.bevenius +Dan Williams +Daniel Abrão Daniel Berger +Daniel Bevenius Daniel Chcouri <333222@gmail.com> Daniel Gröber Daniel Gröber -Daniel Paulino dpaulino +Daniel Paulino Daniel Pihlström -Daniel Wang firedfox -Daniel Wang firedfox +Daniel Wang +Daniel Wang +Danielle Adams Danny Nemer Danny Nemer +Darshan Sen +Darshan Sen Dave Pacheco -David Cai DavidCai +David Cai David Mark Clements -David Mark Clements David Mark Clements +David Mark Clements David Siegel -DC dcposch@dcpos.ch +DC Deepjyoti Mondal Domenic Denicola Domenic Denicola -Doug Wade doug.wade +Doug Wade Eduard Burtescu Einar Otto Stangvik Elliott Cable Eric Phetteplace Ernesto Salazar -Erwin W. Ramadhan erwinwahyura -Eugene Obrezkov ghaiklor +Erwin W. Ramadhan +Eugene Obrezkov +Eugene Ostroukhov +Eugene Ostroukhov +Eugene Ostroukhov EungJun Yi Evan Larkin -Evan Lucas Evan Lucas -FangDun Cai Fangdun Cai (Fundon) -Fangshi He hefangshi +Evan Lucas +FangDun Cai +Fangshi He Farid Neshat -Fatah N fatahn +Fatah N Fedor Indutny Felix Böhm Felix Geisendörfer Felix Geisendörfer -Flandre Scarlet Flandre -Florian Margaine Florian MARGAINE +Flandre Scarlet +Florian Margaine Forrest L Norvell -Franziska Hinkelmann F. Hinkelmann +Franziska Hinkelmann Friedemann Altrock Fuji Goro Gabriel de Perthuis Gareth Ellis Garwah Lam -Geoffrey Bugaisky gbugaisky -Gerhard Stoebich +garygsc +Geoffrey Bugaisky +Gerhard Stöbich Gibson Fahnestock Gil Pedersen -Graham Fairweather Xotic750 +Graham Fairweather Greg Sabia Tucker -Gregor Martynus Gregor -Guy Bedford guybedford -Halil İbrahim Şener hisener -Hannah Kim heeeunkimmm +Gregor Martynus +Guy Bedford +Halil İbrahim Şener +Hannah Kim Hannes Magnusson -Hendrik Schwalm hschwalm -Hitesh Kanwathirtha +Hendrik Schwalm Henry Chin Herbert Vojčík +himself65 +himself65 +Hitesh Kanwathirtha Icer Liang -Igor Savin kibertoad +Igor Savin Igor Soarez Igor Zinkovsky Imran Iqbal Ionică Bizău Isaac Z. Schlueter Isaac Z. Schlueter -Isaac Z. Schlueter isaacs -Isuru Siriwardana isurusiri +Isaac Z. Schlueter +Isuru Siriwardana Italo A. Casas Jackson Tian Jake Verbaten -Jamen Marzonie Jamen Marz -James Beavers Druotic +Jamen Marzonie +James Beavers James Hartig James M Snell -James Nimlos JamesNimlos +James Nimlos Jan Krems Jenna Vuong -JeongHoon Byun Outsider +JeongHoon Byun Jered Schmidt Jeremiah Senkpiel +Jérémy Lal +Jérémy Lal Jerry Chin -Jessica Quynh Tran jessicaquynh -Jesús Leganés-Combarro 'piranna Jesús Leganés Combarro "piranna +Jessica Quynh Tran +Jesús Leganés-Combarro 'piranna Joe Shaw Johan Bergström Johan Dahlberg Johann Hofmann -John Barboza jBarz -John Barboza jBarz -John Gardner Alhadis -John McGuirk jmcgui05 -John Musgrave musgravejw -Johnny Ray Austin Johnny Ray -Jon Tippens legalcodes +John Barboza +John Barboza +John Gardner +John McGuirk +John Musgrave +Johnny Ray Austin +Jon Tippens Jonas Pfenniger -Jonathan Gourlay mrgorbo +Jonathan Gourlay Jonathan Ong Jonathan Persson Jonathan Rentzsch +Jose Luis Vivero Joseph Leon -Jose Luis Vivero jlvivero Josh Erickson -Josh Hunter jopann +Josh Hunter Joshua S. Weinstein -Joyee Cheung joyeecheung +Joyee Cheung +Joyee Cheung +Juan Sebastian Velez Posada Juan Soto -Julien Klepatch jklepatch -Julien Waechter julien.waechter +Julien Gilli +Julien Klepatch +Julien Waechter Junliang Yan Junliang Yan -Junshu Okamoto jun-oka +Junshu Okamoto Justin Beckwith Justin Lee -Jérémy Lal -Jérémy Lal -Juan Sebastian Velez Posada Kai Sasaki Lewuathe Karl Skomski Kat Marchán -Kathy Truong k3kathy +Kathy Truong Kazuyuki Yamada +Ke Ding Keith M Wesolowski Kelsey Breseman -Ke Ding -Khaidi Chu XadillaX -Khaidi Chu +Khaidi Chu +Khaidi Chu Kimberly Wilber Kimberly Wilber -Kiyoshi Nomo kysnm +Kiyoshi Nomo Koichi Kobayashi Kostiantyn Wandalen Kris Kowal Kyle Robinson Young -Lakshmi Swetha Gopireddy LAKSHMI SWETHA GOPIREDDY +Lakshmi Swetha Gopireddy Leeseean Chiu Luke Bayes -Lydia Kats Lydia Katsamberis +Lydia Kats Maciej Małecki MaleDong +Malte-Thorben Bruns Malte-Thorben Bruns -Malte-Thorben Bruns skenqbx Mandeep Singh -Manil Chowdhurian Chowdhurian -Marcelo Gobelli decareano +Manil Chowdhurian +Marcelo Gobelli Marcin Cieślak Marcin Cieślak -Marcin Zielinski marzelin +Marcin Zielinski Marti Martz Martial James Jefferson -Martijn Schrage Oblosys -Masato Ohba -Mary Marchini +Martijn Schrage +Mary Marchini Mary Marchini Mary Marchini +Mary Marchini Mary Marchini -Mary Marchini -Matt Lang matt-in-a-hat -Matt Reed matthewreed26 -Matteo Collina -Matthias Bastian piepmatz +Masato Ohba Mathias Buus Mathias Pettersson +Matt Lang +Matt Reed +Matteo Collina Matthew Lye Matthew Turner -Maurice Hayward maurice_hayward +Matthias Bastian +Maurice Hayward Michael Bernstein Michael Dawson Michaël Zasso -Michael-Rainabba Richardson rainabba +Michael-Rainabba Richardson Michał Gołębiowski-Owczarek Micheil Smith Micleusanu Nicu -Miguel Angel Asencio Hurtado maasencioh +Miguel Angel Asencio Hurtado Mikael Bourges-Sevenier Mike Kaufman -Minqi Pan P.S.V.R +Minqi Pan Minuk Park -Minwoo Jung JungMinu Minwoo Jung Minwoo Jung Miroslav Bajtoš Mitar Milutinovic -Myles Borins -Myles Borins -Myles Borins +Myles Borins +Myles Borins +Myles Borins Nam Nguyen Nebu Pookins -Netto Farah nettofarah +Netto Farah Nicholas Kinsey Nick Soggin Nikolai Vavilov Nils Kuhnhenn -Noah Rose Ledesma Noah Rose -Noah Rose Ledesma +Nitzan Uziely +Noah Rose Ledesma Oluwaseun Omoyajowo Onne Gorter +Oscar Martinez +Paul Graham Paul Querna -Pedro Lima Pedro Victor -Pedro Lima Pedro lima -Peng Lyu rebornix +Pedro Lima +Peng Lyu Peter Flannery Peter Marton -Peter Paugh Peter +Peter Paugh Phillip Johnsen Prateek Singh -Rachel White rachelnicole +Qingyu Deng +Rachel White Ratikesh Misra -Ravindra Barthwal Ravindra barthwal +Ravindra Barthwal Ray Morgan Ray Solomon Raymond Feng Rebecca Turner Refael Ackermann -Reza Akhavan jedireza -Ricardo Sánchez Gregorio richnologies +Reza Akhavan +Ricardo Sánchez Gregorio Richard Lau Rick Olson +rickyes <0x19951125@gmail.com> +rickyes <0x19951125@gmail.com> +Rob Adelmann Rob Adelmann -Rob Adelmann adelmann -Robert Nagy Robert Nagy +Robert Nagy +Robin Drexler Rod Machen Roman Klauke Roman Reiss +Ron Korving Ron Korving -Ron Korving ronkorving Ruben Bridgewater Ruben Bridgewater Russell Dempsey Ryan Dahl Ryan Emery Ryan Mahan -Ryan Scheel Ryan Scheel -Ryan Scheel Ryan Scheel (Havvy) -Saad Quadri saadq +Ryan Scheel +Saad Quadri Sagir Khan Sakthipriyan Vairamani Sam Mikes Sam P Gallagher-Bishop +Sam Roberts Sam Shull +Sam Shull Sam Shull -Sam Roberts -Samantha Sample = <=> +Samuel Attard +Samantha Sample <=> Sambasiva Suda San-Tai Hsu Santiago Gimeno -Sarah Meyer sarahmeyer -Sartrey Lee sartrey +Sarah Meyer +Sartrey Lee Saúl Ibarra Corretgé -Shobhit Chittora Scott Blomquist Segu Riluvan Sergey Kryzhanovsky +Sergey Zelenov Shannen Saez -Shaopeng Zhang szhang351 -Shigeki Ohtsu +Shaopeng Zhang +Shelley Vohr Shigeki Ohtsu +Shigeki Ohtsu Shivang Saxena -Shiya Luo shiya +Shiya Luo +Shobhit Chittora Siddharth Mahendraker Simon Willison -Siobhan O'Donovan justshiv -Siyuan Gao r1cebank -solebox solebox <5013box@gmail.com> +Siobhan O'Donovan +Siyuan Gao +solebox <5013box@gmail.com> +Sreepurna Jasti Sreepurna Jasti -Sreepurna Jasti sreepurnajasti -Sreepurna Jasti sreepurnajasti Stanislav Opichal Stefan Budeanu Stefan Bühler +Stephen Belanger Stephen Belanger Steve Mao Steven R. Loomis -Stewart X Addison Stewart Addison -Stewart X Addison sxa555 -Stewart X Addison Stewart X Addison -Suraiya Hameed suraiyah -Suramya shah ss22ever -Surya Panikkal surya panikkal -Surya Panikkal suryagh -Taehee Kang hugnosis -Tanuja-Sawant -Taylor Woll taylor.woll -Thomas Watson Steen Thomas Watson -Timothy O. Peters -Timur Shemsedinov tshemsedinov -Ting Shao -Toby Farley tobyfarley -Toby Stableford toboid -Todd Kennedy -TJ Holowaychuk -TJ Holowaychuk +Stewart X Addison +Suraiya Hameed +Suramya shah +Surya Panikkal +Szymon Marczak <36894700+szmarczak@users.noreply.github.com> Tadashi SAWADA +Tadhg Creedon +Taehee Kang Takahiro ANDO -Tarun Batra Tarun +Tanuja-Sawant +Tarun Batra +Taylor Woll Ted Young Teppei Sato Theotime Poisseau Thomas Hunter II Thomas Lee Thomas Reggi -Tierney Cyren &! (bitandbang) -Tierney Cyren bitandbang +Thomas Watson +Tierney Cyren +Tierney Cyren Tim Caswell +Tim Costa Tim Price +Tim Ruffles +Tim Smart Tim Smart -Tim Smart -Timothy Leverett Timothy +Timothy Leverett +Timothy O. Peters +Timur Shemsedinov +Ting Shao +TJ Holowaychuk +TJ Holowaychuk Tobias Nießen +Toby Farley +Toby Stableford +Todd Kennedy Tom Atkinson Tom Atkinson Tom Hughes Tom Hughes-Croucher -Tom Purcell tpurcell +Tom Purcell Tom White -Tomoki Okahana umatoma -Tracy Hinds Tracy +Tomoki Okahana +Tracy Hinds Travis Meisenheimer Trevor Burnham Trivikram Kamat <16024985+trivikr@users.noreply.github.com> +ttzztztz Tyler Larson -Ujjwal Sharma -Viktor Karpov vitkarpov +Ujjwal Sharma +Ujjwal Sharma +Uttam Pawar +Viktor Karpov Vincent Voyer Vladimir de Turckheim -vsemozhetbyt Vse Mozhet Byt +Voltrex <62040526+VoltrexMaster@users.noreply.github.com> +vsemozhetbyt Wang Xinyong -Weijia Wang <381152119@qq.com> -Weijia Wang <381152119@qq.com> -Weijia Wang <381152119@qq.com> Wei-Wei Wu -Willi Eggeling +Weijia Wang +Weijia Wang <381152119@qq.com> +Weijia Wang Will Hayslett +Willi Eggeling Wilson Lin -Wyatt Preul geek +Wyatt Preul Xavier J Ortiz -xiaoyu <306766053@qq.com> Poker <306766053@qq.com> +xiaoyu <306766053@qq.com> +Xu Meng Yael Hermon -Yazhong Liu Yazhong Liu -Yazhong Liu Yorkie -Yazhong Liu Yorkie -Yazhong Liu Yorkie Liu +ycjcl868 <45808948@qq.com> Yingchen Xue Yongsheng Zhang Yongsheng Zhang <17367077526@163.com> Yongsheng Zhang +Yorkie Liu +Yorkie Liu Yoshihiro KIKUCHI Yosuke Furukawa Yuichiro MASUI -Yuta Hiroto abouthiroppy +Yuta Hiroto Zach Bjornson Zachary Scott Zachary Vacura Zoran Tomicic -Сковорода Никита Андреевич ChALkeR +Сковорода Никита Андреевич 隋鑫磊 # These people didn't contribute patches to node directly, diff --git a/AUTHORS b/AUTHORS index a61c4010be5d3c..213c03ba9f32a8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -504,7 +504,7 @@ David Chan Alexis Campailla Nikolai Vavilov Michael Ridgway -Yazhong Liu +Yorkie Liu Gabriel Falkenberg Kai Groner Lalit Kapoor @@ -587,7 +587,7 @@ Ed Umansky Maurice Butler John Albietz Andrew Oppenlander -Julien Gilli +Julien Gilli Gabriel Wicke Jakob Gillich Lucio M. Tato @@ -652,7 +652,7 @@ Ben Burns Julian Duque Teppei Sato Rudi Cilibrasi -Tim Ruffles +Tim Ruffles CGavrila Aleksey Smolenchuk Caitlin Potter @@ -784,7 +784,7 @@ Sven Slootweg Dmitry Vasilyev Malcolm Ahoy Imran Iqbal -Stewart X Addison +Stewart X Addison Matt Harrison Christopher J. Brody Salman Aljammaz @@ -808,7 +808,7 @@ David Boivin Liang-Chi Hsieh Timothy Gu Fábio Santos -Myles Borins +Myles Borins Jonas Dohse Коренберг Марк Caleb Boyd @@ -995,6 +995,7 @@ Doug Wade Mohsen Marian Justin Sprigg +Eugene Ostroukhov Bryan Hughes Ehsan Akhgari Ingvar Stepanyan @@ -1168,7 +1169,7 @@ Yoshiya Hinosawa Syuhei Kobayashi YutamaKotaro MURAKAMI Masahiko -Thomas Watson Steen +Thomas Watson Daijiro Yamada Kelvin Jin Mitsuo Utano @@ -1204,7 +1205,7 @@ Daniel Pittman Ian White Chris Bystrek Christine Hong -Oscar Martinez +Oscar Martinez Aileen David Bradford stokingerl @@ -1254,7 +1255,7 @@ J Scott Chapman Erez Weiss Scott Smereka Fabrice Tatieze -Uttam Pawar +Uttam Pawar Ben Lugavere Punit Buch mark hughes @@ -1270,12 +1271,11 @@ amrios Chris Henney Yojan Shrestha Rodrigo Palma -Sam Shull Michael-Bryant Choa CodeVana Daniel Sims Diego Paez -Paul Graham +Paul Graham Jared Young vazina robertson Bruce Lai @@ -1324,7 +1324,6 @@ malen Kailean Courtney Fumiya KARASAWA John Barboza -Paul Graham Nate Chris Story Matthew Garrett @@ -1481,7 +1480,6 @@ Tony Rice Olivier Martin jeyanthinath Aditya Anand -Oscar Martinez cool88 Steven Lehn Łukasz Szewczak @@ -1489,12 +1487,12 @@ Madara Uchiha Gil Tayar Glenn Schlereth Artur G Vieira -Gerhard Stoebich +Gerhard Stöbich Sreepurna Jasti Rafael Fragoso Andrei Cioromila Frank Lanitz -Khaidi Chu +Khaidi Chu Akshay Iyer Rick Bullotta Rajaram Gaunker @@ -1543,7 +1541,7 @@ lena Azard <330815461@qq.com> Ezequiel Garcia Kyle Farnung -Weijia Wang <381152119@qq.com> +Weijia Wang Nataly Shrits Jaime Bernardo Natanael Log @@ -1620,7 +1618,6 @@ Mandeep Singh Prakash Palaniappan Keita Akutsu Michael Albert -Eugene Ostroukhov Vishal Bisht Griffith Tchenpan Oky Antoro @@ -1664,7 +1661,7 @@ Miguel Martins Yury Popov George Bezerra Benjamin Coe -Tim Costa +Tim Costa Rahul Mishra Damien O'Reilly Tuan Anh Tran @@ -2116,7 +2113,7 @@ dustinnewman98 Oluwaseun Omoyajowo Wilson Lin Eric Bickle -Ujjwal Sharma +Ujjwal Sharma Wei-Wei Wu Prateek Singh Ken Lin @@ -2270,7 +2267,6 @@ prayag21 <10997858+prayag21@users.noreply.github.com> Bruno Pinho Anto Aravinth Helio Frota <00hf11@gmail.com> -Tim Ruffles Jacob Page sagulati conectado @@ -2335,7 +2331,6 @@ Sintendo Nitish Sakhawalkar André Cruz Josh Broomfield -Julien Gilli Umang Raghuvanshi Duarte David Aleksey Chemakin @@ -2499,14 +2494,14 @@ Jerome Covington Rob Reynolds warnerp18 chux0519 -Tadhg Creedon +Tadhg Creedon Petar Dodev mzucker Morgan Roderick Remy Parzinski Roland Broekema Florin-Daniel BÎLBÎE -Robin Drexler +Robin Drexler ZauberNerd G. Carcaci Jackson Chui <14085209+haiXchuus@users.noreply.github.com> @@ -2583,7 +2578,6 @@ rahulshuklab4u gengjiawen Maya Anilson Mrityunjoy Saha -Robin Drexler Prabu Subra Abhishek Dixit Sarath Govind K K @@ -2621,7 +2615,6 @@ grimrose timothy searcy nakashima /Jesse -Tadhg Creedon exoego sigwyg pastak @@ -2673,7 +2666,6 @@ Amit Zur Thang Tran Kai Abhishek Agarwal -Uttam Pawar Jon Kunkee Mukul Khanna Jarrod Connolly @@ -2682,7 +2674,7 @@ Alexander Sattelmaier Avi ד Thomas Aymen Naghmouchi -himself65 +himself65 Geir Hauge Patrick Gansterer Nicolas Moteau @@ -2732,7 +2724,6 @@ imhype <543717080@qq.com> ptaylor Boxuan Li Aditya Pratap Singh -Eugene Ostroukhov Preveen Padmanabhan Benjamin Ki Daniel Nalborczyk @@ -2740,7 +2731,6 @@ Alba Mendez zero1five Gaelan Jacob -himself65 Dan Beglin Anish Asrani teams2ua @@ -2792,13 +2782,11 @@ Juan Roa Ivan Villa Caleb ツ Everett Miken -Eugene Ostroukhov Gabriela Niño Mike MacCana Tim Baverstock Walle Cyril -Xu Meng -Samuel Attard +Xu Meng Ben L. Titzer Ojasvi Monga Shajan Jacob @@ -2848,7 +2836,7 @@ Javier Ledezma Marian Rusnak <4215517+marian-r@users.noreply.github.com> Jenia Anton Gerasimov -rickyes +rickyes <0x19951125@gmail.com> Simon A. Eugster TATSUNO Yasuhiro Robert Jensen @@ -2894,7 +2882,6 @@ Albert Wang Kenza Houmani mkdorff xefimx -garygsc Susana Ferreira Xavier Redondo Duncan Healy @@ -2964,7 +2951,6 @@ Rosen Penev Jeremy Albright Giovanni Campagna Donggeon Lim -Tim Costa rene.herrmann Derek Lewis Kirill Ponomarev @@ -3003,7 +2989,7 @@ Conor ONeill tsabolov Swagat Konchada Yuhanun Citgez -Danielle Adams +Danielle Adams Andrey Pechkurov Jeff simon @@ -3017,13 +3003,11 @@ Andrew Neitsch RamanandPatil forfun414 David Gilbertson -Sergey Zelenov Eric Bickle Joe Pea ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Mateusz Krawczuk Jonathan MERCIER -Ujjwal Sharma Jichan Hassaan Pasha Eric Dobbertin @@ -3036,7 +3020,6 @@ Sk Sajidul Kadir Bartlomiej Brzozowski Saajan Yash Ladha -Xu Meng Alex R Hachimi Aa (Sfeir) Daniel Estiven Rico Posada @@ -3085,7 +3068,6 @@ Ben Bucksch Eli Schwartz Maciej Kacper Jagiełło Tom Nagle -rickyes sapics Sagar Jadhav Dennis Ameling @@ -3139,5 +3121,196 @@ Shigma <33423008+Shigma@users.noreply.github.com> atian25@qq.com Amila Welihinda schamberg97 <50446906+schamberg97@users.noreply.github.com> +DrunkenPoney +Christoph Tavan +Clark Kozak +Michael Auderer +Linn Dahlgren +Ikko Ashimine +Anatoly Korniltsev +Victor Antonio Barzana Crespo +Matthieu Larcher +anlex N <1293006794@qq.com> +ThakurKarthik +Aastha Gupta +Yohanan Baruchel +Dmitry Gozman +Daniil Demidovich +Hussaina Begum Nandyala +Danny Sonnenschein +Sourav Shaw +H Adinarayana +lucasg +Brian 'bdougie' Douglas +Lee, Bonggi +Momtchil Momtchev +Josh Dague +Vincent Boivin +ax1 <16510021+ax1@users.noreply.github.com> +Shubham Parihar <51517103+iShibi@users.noreply.github.com> +Darshan Sen +Matthew Francis Brunetti +Chris Opperwall +Takuya Noguchi +tyankatsu +Ben Turner <7623873+ben-turner@users.noreply.github.com> +Bryan Field +krank2me +masx200 <34191203+masx200@users.noreply.github.com> +Baruch Odem (Rothkoff) +Mattias Runge-Broberg +Dmitry Semigradsky +Ole André Vadla Ravnås +Aleksandr Krutko +Brian Ingenito <28159742+bingenito@users.noreply.github.com> +FeelyChau +Darcy Clarke +mayank agarwal +woodfairy +Nikola Glavina +Rishabh Mehan +Anna Henningsen +Andrew Casey +Anders Kaseorg +Hollow Man +nlf +naortedgi +Narasimha Prasanna HN +Zijian Liu +inokawa <48897392+inokawa@users.noreply.github.com> +Michael Bashurov +Moshe vilner +Nicolai Stange +kai zhu +FrankQiu +Rock +Chinmoy Chakraborty +Maksym Baranovskyi +Michael Chen <4326639+mcgitty@users.noreply.github.com> +François-Denis Gonthier +Dr +Nitzan Uziely +Adrien Maret +Thiago Padilha +Joseph Hackman +Pranshu Jethmalani +Rohan Chougule +Mohamed Kamagate +Ajay Poshak +Isaac Levy +ugultopu +Nicholas Schamberg +Dimitris Halatsis +Mattia Pontonio <44380480+mattiapontonio@users.noreply.github.com> +Milad Fa +Emil Sivervik +alexbs +Ian Storm Taylor +Carlos Fuentes +Tyler Ang-Wanek +Matthew Mario Di Pasquale +ttzztztz +Romuald Brillout +Dave Cardwell +Akash Negi <55234838+NegiAkash890@users.noreply.github.com> +James Addison +Fabian Cook +Kalvin Vasconcellos +marsonya +Qingyu Deng +Matin Zadehdolatabad +Daniel Clark +Sajal Khandelwal +Cheng Liu +Utku Gultopu +Jay Tailor <60511316+JayvaScript@users.noreply.github.com> +Greg Ziskind +Dan Čermák +Vít Ondruch +humanwebpl <58517331+humanwebpl@users.noreply.github.com> +Dawid Rusnak +obi-el +Merlin Luntke <22600241+Luntke@users.noreply.github.com> +Marko Kaznovac +Gabriel Schulhof +Ian Kerins +dbachko +Mattias Buelens +Dylan Elliott +Wassim Chegham +simov +wwwzbwcom +David Glasser +pezhmanparsaee +Hassaan Pasha +Darkripper214 +Anu Pasumarthy +HiroyukiYagihashi +Arkerone +Voltrex +ycjcl868 <45808948@qq.com> +Serkan Özel +Ferdi +eladkeyshawn +luyahan +Simon Knott +Siddharth +Cactysman +David Brownman +Michael Rommel +Chengzhong Wu +Andres +Jayden Seric +divlo +Rohit Gohri +Giora Guttsait +takayama +Rafael Gonzaga +Arnold Zokas +Nils Dralle +Jesse Chan +helloyou2012 +MrJithil +Rodolfo Carvalho +Jordan Baczuk +moander +Hitesh Sharma +Andreas Schwab +Moritz Kneilmann +fisker Cheung +Issam E. Maghni +TodorTotev <51530311+TodorTotev@users.noreply.github.com> +Wael Almattar +yotamselementor <83912471+yotamselementor@users.noreply.github.com> +pengjie <37610029@qq.com> +Philip +julianjany <54538266+julianjany@users.noreply.github.com> +bl-ue +npm-robot +Shaun Keys +Simone Busoli +Derevianchenko Maksym <32910350+maks-white@users.noreply.github.com> +RA80533 <32469082+RA80533@users.noreply.github.com> +Mao Wtm +Houssem Chebab +Davidson Francis +Rohan Sharma +AkshayK +FrankEntriken <42781627+FrankEntriken@users.noreply.github.com> +Cyrille Bourgois +Jacob <3012099+JakobJingleheimer@users.noreply.github.com> +ejose19 <8742215+ejose19@users.noreply.github.com> +Tobias Koppers +Makoto Kato +foxxyz +LitoMore +nerdthatnoonelikes +Nikita Rykov <40735471+angrymouse@users.noreply.github.com> +Benjamin Mayr +Lew Gordon +Mestery +Himadri Ganguly +Howie Zhao +Luan Devecchi # Generated by tools/update-authors.js diff --git a/BUILDING.md b/BUILDING.md index 211f7be224f86a..90902c541c46c9 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -311,7 +311,7 @@ $ make test-only At this point, you are ready to make code changes and re-run the tests. -If you are running tests before submitting a Pull Request, the recommended +If you are running tests before submitting a pull request, the recommended command is: ```console diff --git a/CHANGELOG.md b/CHANGELOG.md index eaeb829e8e7d6d..fd40fceec02a5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,8 @@ release. -14.17.6
+14.18.0
+14.17.6
14.17.5
14.17.4
14.17.3
diff --git a/GOVERNANCE.md b/GOVERNANCE.md index b4d00c761f0d7a..aa73e4b3ee7519 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -15,45 +15,46 @@ ## Triagers -Triagers assess newly-opened issues in the nodejs/node and nodejs/help -repositories. There is no GitHub team for triagers at the moment. +Triagers assess newly-opened issues in the [nodejs/node][] and [nodejs/help][] +repositories. The GitHub team for Node.js triagers is @nodejs/issue-triage. +Triagers are given the "Triage" GitHub role and have: -Triagers have: -* ability to label issues -* ability to comment, close, and reopen issues +* Ability to label issues and pull requests +* Ability to comment, close, and reopen issues and pull requests See: +* [List of triagers](./README.md#triagers) * [A guide for triagers](./doc/guides/contributing/issues.md#triaging-a-bug-report) ## Collaborators -Node.js Core Collaborators maintain the [nodejs/node][] GitHub repository. -The GitHub team for Node.js Core Collaborators is @nodejs/collaborators. +Node.js core collaborators maintain the [nodejs/node][] GitHub repository. +The GitHub team for Node.js core collaborators is @nodejs/collaborators. Collaborators have: * Commit access to the [nodejs/node][] repository * Access to the Node.js continuous integration (CI) jobs -Both Collaborators and non-Collaborators may propose changes to the Node.js +Both collaborators and non-collaborators may propose changes to the Node.js source code. The mechanism to propose such a change is a GitHub pull request. Collaborators review and merge (_land_) pull requests. -Two Collaborators must approve a pull request before the pull request can land. -(One Collaborator approval is enough if the pull request has been open for more -than 7 days.) Approving a pull request indicates that the Collaborator accepts -responsibility for the change. Approval must be from Collaborators who are not +Two collaborators must approve a pull request before the pull request can land. +(One collaborator approval is enough if the pull request has been open for more +than 7 days.) Approving a pull request indicates that the collaborator accepts +responsibility for the change. Approval must be from collaborators who are not authors of the change. -If a Collaborator opposes a proposed change, then the change cannot land. The +If a collaborator opposes a proposed change, then the change cannot land. The exception is if the TSC votes to approve the change despite the opposition. Usually, involving the TSC is unnecessary. Often, discussions or further changes -result in Collaborators removing their opposition. +result in collaborators removing their opposition. See: -* [List of Collaborators](./README.md#current-project-team-members) -* [A guide for Collaborators](./doc/guides/collaborator-guide.md) +* [List of collaborators](./README.md#current-project-team-members) +* [A guide for collaborators](./doc/guides/collaborator-guide.md) ### Collaborator activities @@ -63,12 +64,12 @@ See: * Participation in working groups * Merging pull requests -The TSC can remove inactive Collaborators or provide them with _Emeritus_ +The TSC can remove inactive collaborators or provide them with _Emeritus_ status. Emeriti may request that the TSC restore them to active status. ## Technical Steering Committee -A subset of the Collaborators forms the Technical Steering Committee (TSC). +A subset of the collaborators forms the Technical Steering Committee (TSC). The TSC has final authority over this project, including: * Technical direction @@ -76,7 +77,7 @@ The TSC has final authority over this project, including: * Contribution policy * GitHub repository hosting * Conduct guidelines -* Maintaining the list of Collaborators +* Maintaining the list of collaborators The current list of TSC members is in [the project README](./README.md#current-project-team-members). @@ -95,7 +96,7 @@ agenda is not to review or approve all patches. Collaborators review and approve patches on GitHub. Any community member can create a GitHub issue asking that the TSC review -something. If consensus-seeking fails for an issue, a Collaborator may apply the +something. If consensus-seeking fails for an issue, a collaborator may apply the `tsc-agenda` label. That will add it to the TSC meeting agenda. Before each TSC meeting, the meeting chair will share the agenda with members of @@ -120,11 +121,11 @@ the issue tracker is: ## Collaborator nominations -Existing Collaborators can nominate someone to become a Collaborator. Nominees +Existing collaborators can nominate someone to become a collaborator. Nominees should have significant and valuable contributions across the Node.js organization. -To nominate a new Collaborator, open an issue in the [nodejs/node][] repository. +To nominate a new collaborator, open an issue in the [nodejs/node][] repository. Provide a summary of the nominee's contributions. For example: * Commits in the [nodejs/node][] repository. @@ -144,25 +145,25 @@ Provide a summary of the nominee's contributions. For example: organization * Other participation in the wider Node.js community -Mention @nodejs/collaborators in the issue to notify other Collaborators about +Mention @nodejs/collaborators in the issue to notify other collaborators about the nomination. -The nomination passes if no Collaborators oppose it after one week. Otherwise, +The nomination passes if no collaborators oppose it after one week. Otherwise, the nomination fails. There are steps a nominator can take in advance to make a nomination as -frictionless as possible. To request feedback from other Collaborators in - private, use the [Collaborators discussion page][] - (which only Collaborators may view). A nominator may also work with the +frictionless as possible. To request feedback from other collaborators in + private, use the [collaborators discussion page][] + (which only collaborators may view). A nominator may also work with the nominee to improve their contribution profile. Collaborators might overlook someone with valuable contributions. In that case, -the contributor may open an issue or contact a Collaborator to request a +the contributor may open an issue or contact a collaborator to request a nomination. ### Onboarding -After the nomination passes, a TSC member onboards the new Collaborator. See +After the nomination passes, a TSC member onboards the new collaborator. See [the onboarding guide](./onboarding.md) for details of the onboarding process. @@ -171,7 +172,8 @@ process. The TSC follows a [Consensus Seeking][] decision-making model per the [TSC Charter][]. -[Collaborators discussion page]: https://github.com/orgs/nodejs/teams/collaborators/discussions [Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making [TSC Charter]: https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md +[collaborators discussion page]: https://github.com/orgs/nodejs/teams/collaborators/discussions +[nodejs/help]: https://github.com/nodejs/help [nodejs/node]: https://github.com/nodejs/node diff --git a/LICENSE b/LICENSE index 5b71fd3d6483c6..1cc18f12bf8b0b 100644 --- a/LICENSE +++ b/LICENSE @@ -55,30 +55,7 @@ The externally maintained libraries used by Node.js are: """ MIT License - Copyright (C) 2012-2018 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 - 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. - """ - -- Acorn plugins, located at deps/acorn-plugins, is licensed as follows: - """ - Copyright (C) 2017-2018 by Adrian Heine + Copyright (C) 2012-2020 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 @@ -1274,7 +1251,7 @@ The externally maintained libraries used by Node.js are: WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -- gtest, located at test/cctest/gtest, is licensed as follows: +- gtest, located at deps/googletest, is licensed as follows: """ Copyright 2008, Google Inc. All rights reserved. diff --git a/Makefile b/Makefile index 25dd8b3eb13e2a..c25a97750faccf 100644 --- a/Makefile +++ b/Makefile @@ -152,7 +152,7 @@ out/Makefile: config.gypi common.gypi node.gyp \ # and included in config.gypi config.gypi: configure configure.py src/node_version.h @if [ -x config.status ]; then \ - ./config.status; \ + export PATH="$(NO_BIN_OVERRIDE_PATH)" && ./config.status; \ else \ echo Missing or stale $@, please run ./$<; \ exit 1; \ @@ -203,29 +203,22 @@ check: test # in place coverage-clean: $(RM) -r node_modules - $(RM) -r gcovr build + $(RM) -r gcovr $(RM) -r coverage/tmp $(FIND) out/$(BUILDTYPE)/obj.target \( -name "*.gcda" -o -name "*.gcno" \) \ -type f -exec $(RM) {} \; .PHONY: coverage -# Build and test with code coverage reporting. Leave the lib directory -# instrumented for any additional runs the user may want to make. -# For C++ coverage reporting, this needs to be run in conjunction with configure -# --coverage. html coverage reports will be created under coverage/ -# Related CI job: node-test-commit-linux-coverage +# Build and test with code coverage reporting. HTML coverage reports will be +# created under coverage/. For C++ coverage reporting, this needs to be run +# in conjunction with configure --coverage. +# Related CI job: node-test-commit-linux-coverage-daily coverage: coverage-test ## Run the tests and generate a coverage report. .PHONY: coverage-build coverage-build: all -$(MAKE) coverage-build-js - if [ ! -d gcovr ]; then git clone -b 3.4 --depth=1 \ - --single-branch https://github.com/gcovr/gcovr.git; fi - if [ ! -d build ]; then git clone --depth=1 \ - --single-branch https://github.com/nodejs/build.git; fi - if [ ! -f gcovr/scripts/gcovr.orig ]; then \ - (cd gcovr && patch -N -p1 < \ - "$(CURDIR)/build/jenkins/scripts/coverage/gcovr-patches-3.4.diff"); fi + if [ ! -d gcovr ]; then $(PYTHON) -m pip install -t gcovr gcovr==4.2; fi $(MAKE) .PHONY: coverage-build-js @@ -237,16 +230,14 @@ coverage-build-js: .PHONY: coverage-test coverage-test: coverage-build - $(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda - $(RM) out/$(BUILDTYPE)/obj.target/node/src/*/*.gcda - $(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*.gcda - $(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*/*.gcda + $(FIND) out/$(BUILDTYPE)/obj.target -name "*.gcda" -type f -exec $(RM) {} \; -NODE_V8_COVERAGE=coverage/tmp \ TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) $(COVTESTS) $(MAKE) coverage-report-js - -(cd out && "../gcovr/scripts/gcovr" \ + -(cd out && PYTHONPATH=../gcovr $(PYTHON) -m gcovr \ --gcov-exclude='.*\b(deps|usr|out|cctest|embedding)\b' -v \ - -r Release/obj.target --html --html-detail -o ../coverage/cxxcoverage.html \ + -r ../src/ --object-directory Release/obj.target \ + --html --html-details -o ../coverage/cxxcoverage.html \ --gcov-executable="$(GCOV)") @printf "Javascript coverage %%: " @grep -B1 Lines coverage/index.html | head -n1 \ @@ -587,12 +578,10 @@ test-doc: doc-only lint-md ## Builds, lints, and verifies the docs. else \ $(PYTHON) tools/test.py $(PARALLEL_ARGS) doctool; \ fi - $(NODE) tools/doc/checkLinks.mjs . .PHONY: test-doc-ci test-doc-ci: doc-only $(PYTHON) tools/test.py --shell $(NODE) $(TEST_CI_ARGS) $(PARALLEL_ARGS) doctool - $(NODE) tools/doc/checkLinks.mjs . test-known-issues: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) known_issues @@ -665,12 +654,12 @@ 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) \ - --mode=$(BUILDTYPE_LOWER) intl \ + intl \ $(TAP_V8_INTL) test-v8-benchmarks: v8 export PATH="$(NO_BIN_OVERRIDE_PATH)" && \ - deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) --mode=$(BUILDTYPE_LOWER) \ + deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \ benchmarks \ $(TAP_V8_BENCHMARKS) @@ -1067,7 +1056,7 @@ $(TARBALL): release-only doc-only find $(TARNAME)/deps/v8/test -type f ! -regex '.*/test/torque/.*' | xargs $(RM) find $(TARNAME)/deps/zlib/contrib/* -type d ! -regex '.*/contrib/optimizations$$' | xargs $(RM) -r find $(TARNAME)/ -name ".eslint*" -maxdepth 2 | xargs $(RM) - find $(TARNAME)/ -type l | xargs $(RM) # annoying on windows + find $(TARNAME)/ -type l | xargs $(RM) tar -cf $(TARNAME).tar $(TARNAME) $(RM) -r $(TARNAME) gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz @@ -1212,7 +1201,7 @@ LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(wildcard *.md LINT_MD_FILES = $(shell $(FIND) $(LINT_MD_TARGETS) -type f \ ! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \ $(LINT_MD_NEWER)) -run-lint-md = tools/lint-md.js -q -f --no-stdout $(LINT_MD_FILES) +run-lint-md = tools/lint-md.mjs -q -f --no-stdout $(LINT_MD_FILES) # Lint all changed markdown files maintained by us tools/.mdlintstamp: $(LINT_MD_FILES) $(info Running Markdown linter...) diff --git a/README.md b/README.md index 157c3c7365dc89..74a31d75d60f02 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ For information on reporting security vulnerabilities in Node.js, see * [Contributing to the project][] * [Working Groups][] -* [Strategic Initiatives][] +* [Strategic initiatives][] * [Technical values and prioritization][] ## Current project team members @@ -152,6 +152,8 @@ For information on reporting security vulnerabilities in Node.js, see For information about the governance of the Node.js project, see [GOVERNANCE.md](./GOVERNANCE.md). + ### TSC (Technical Steering Committee) @@ -168,7 +170,7 @@ For information about the governance of the Node.js project, see * [cjihrig](https://github.com/cjihrig) - **Colin Ihrig** <cjihrig@gmail.com> (he/him) * [codebytere](https://github.com/codebytere) - -**Shelley Vohr** <codebytere@gmail.com> (she/her) +**Shelley Vohr** <shelley.vohr@gmail.com> (she/her) * [danbev](https://github.com/danbev) - **Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) * [danielleadams](https://github.com/danielleadams) - @@ -200,6 +202,10 @@ For information about the governance of the Node.js project, see * [Trott](https://github.com/Trott) - **Rich Trott** <rtrott@gmail.com> (he/him) +
+ +Emeriti + ### TSC emeriti * [addaleax](https://github.com/addaleax) - @@ -215,7 +221,7 @@ For information about the governance of the Node.js project, see * [gibfahn](https://github.com/gibfahn) - **Gibson Fahnestock** <gibfahn@gmail.com> (he/him) * [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> +**Fedor Indutny** <fedor@indutny.com> * [isaacs](https://github.com/isaacs) - **Isaac Z. Schlueter** <i@izs.me> * [joshgav](https://github.com/joshgav) - @@ -243,6 +249,11 @@ For information about the governance of the Node.js project, see * [trevnorris](https://github.com/trevnorris) - **Trevor Norris** <trev.norris@gmail.com> +
+ + ### Collaborators * [addaleax](https://github.com/addaleax) - @@ -251,8 +262,6 @@ For information about the governance of the Node.js project, see **Antoine du Hamel** <duhamelantoine1995@gmail.com> (he/him) * [ak239](https://github.com/ak239) - **Aleksei Koziatinskii** <ak239spb@gmail.com> -* [AndreasMadsen](https://github.com/AndreasMadsen) - -**Andreas Madsen** <amwebdk@gmail.com> (he/him) * [antsmartian](https://github.com/antsmartian) - **Anto Aravinth** <anto.aravinth.cse@gmail.com> (he/him) * [apapirovski](https://github.com/apapirovski) - @@ -284,7 +293,7 @@ For information about the governance of the Node.js project, see * [cjihrig](https://github.com/cjihrig) - **Colin Ihrig** <cjihrig@gmail.com> (he/him) * [codebytere](https://github.com/codebytere) - -**Shelley Vohr** <codebytere@gmail.com> (she/her) +**Shelley Vohr** <shelley.vohr@gmail.com> (she/her) * [danbev](https://github.com/danbev) - **Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) * [danielleadams](https://github.com/danielleadams) - @@ -315,8 +324,6 @@ For information about the governance of the Node.js project, see **Gerhard Stöbich** <deb2001-github@yahoo.de> (he/they) * [gabrielschulhof](https://github.com/gabrielschulhof) - **Gabriel Schulhof** <gabrielschulhof@gmail.com> -* [gdams](https://github.com/gdams) - -**George Adams** <george.adams@uk.ibm.com> (he/him) * [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com> * [gengjiawen](https://github.com/gengjiawen) - @@ -338,13 +345,11 @@ For information about the governance of the Node.js project, see * [iansu](https://github.com/iansu) - **Ian Sutherland** <ian@iansutherland.ca> * [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> +**Fedor Indutny** <fedor@indutny.com> * [JacksonTian](https://github.com/JacksonTian) - **Jackson Tian** <shyvo1987@gmail.com> * [jasnell](https://github.com/jasnell) - **James M Snell** <jasnell@gmail.com> (he/him) -* [jdalton](https://github.com/jdalton) - -**John-David Dalton** <john.david.dalton@gmail.com> * [jkrems](https://github.com/jkrems) - **Jan Krems** <jan.krems@gmail.com> (he/him) * [joaocgreis](https://github.com/joaocgreis) - @@ -355,8 +360,6 @@ For information about the governance of the Node.js project, see **Juan José Arboleda** <soyjuanarbol@gmail.com> (he/him) * [JungMinu](https://github.com/JungMinu) - **Minwoo Jung** <nodecorelab@gmail.com> (he/him) -* [lance](https://github.com/lance) - -**Lance Ball** <lball@redhat.com> (he/him) * [legendecas](https://github.com/legendecas) - **Chengzhong Wu** <legendecas@gmail.com> (he/him) * [Leko](https://github.com/Leko) - @@ -380,15 +383,13 @@ For information about the governance of the Node.js project, see * [mildsunrise](https://github.com/mildsunrise) - **Alba Mendez** <me@alba.sh> (she/her) * [misterdjules](https://github.com/misterdjules) - -**Julien Gilli** <jgilli@nodejs.org> +**Julien Gilli** <jgilli@netflix.com> * [mmarchini](https://github.com/mmarchini) - **Mary Marchini** <oss@mmarchini.me> (she/her) * [mscdex](https://github.com/mscdex) - **Brian White** <mscdex@mscdex.net> * [MylesBorins](https://github.com/MylesBorins) - **Myles Borins** <myles.borins@gmail.com> (he/him) -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) * [oyyd](https://github.com/oyyd) - **Ouyang Yadong** <oyydoibh@gmail.com> (he/him) * [panva](https://github.com/panva) - @@ -411,8 +412,6 @@ For information about the governance of the Node.js project, see **Ricky Zhou** <0x19951125@gmail.com> (he/him) * [ronag](https://github.com/ronag) - **Robert Nagy** <ronagy@icloud.com> -* [rubys](https://github.com/rubys) - -**Sam Ruby** <rubys@intertwingly.net> * [ruyadorno](https://github.com/ruyadorno) - **Ruy Adorno** <ruyadorno@github.com> (he/him) * [rvagg](https://github.com/rvagg) - @@ -420,7 +419,7 @@ For information about the governance of the Node.js project, see * [ryzokuken](https://github.com/ryzokuken) - **Ujjwal Sharma** <ryzokuken@disroot.org> (he/him) * [saghul](https://github.com/saghul) - -**Saúl Ibarra Corretgé** <saghul@gmail.com> +**Saúl Ibarra Corretgé** <s@saghul.net> * [santigimeno](https://github.com/santigimeno) - **Santiago Gimeno** <santiago.gimeno@gmail.com> * [seishun](https://github.com/seishun) - @@ -464,12 +463,20 @@ For information about the governance of the Node.js project, see * [ZYSzys](https://github.com/ZYSzys) - **Yongsheng Zhang** <zyszys98@gmail.com> (he/him) +
+ +Emeriti + + ### Collaborator emeriti * [andrasq](https://github.com/andrasq) - **Andras** <andras@kinvey.com> * [AnnaMag](https://github.com/AnnaMag) - **Anna M. Kedzierska** <anna.m.kedzierska@gmail.com> +* [AndreasMadsen](https://github.com/AndreasMadsen) - +**Andreas Madsen** <amwebdk@gmail.com> (he/him) * [aqrln](https://github.com/aqrln) - **Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him) * [bnoordhuis](https://github.com/bnoordhuis) - @@ -492,6 +499,8 @@ For information about the governance of the Node.js project, see **Alexander Makarenko** <estliberitas@gmail.com> * [firedfox](https://github.com/firedfox) - **Daniel Wang** <wangyang0123@gmail.com> +* [gdams](https://github.com/gdams) - +**George Adams** <george.adams@microsoft.com> (he/him) * [gibfahn](https://github.com/gibfahn) - **Gibson Fahnestock** <gibfahn@gmail.com> (he/him) * [glentiki](https://github.com/glentiki) - @@ -510,6 +519,8 @@ For information about the governance of the Node.js project, see **Jason Ginchereau** <jasongin@microsoft.com> * [jbergstroem](https://github.com/jbergstroem) - **Johan Bergström** <bugs@bergstroem.nu> +* [jdalton](https://github.com/jdalton) - +**John-David Dalton** <john.david.dalton@gmail.com> * [jhamhader](https://github.com/jhamhader) - **Yuval Brik** <yuval@brik.org.il> * [joshgav](https://github.com/joshgav) - @@ -520,6 +531,8 @@ For information about the governance of the Node.js project, see **Kyle Farnung** <kfarnung@microsoft.com> (he/him) * [kunalspathak](https://github.com/kunalspathak) - **Kunal Pathak** <kunal.pathak@microsoft.com> +* [lance](https://github.com/lance) - +**Lance Ball** <lball@redhat.com> (he/him) * [lucamaraschi](https://github.com/lucamaraschi) - **Luca Maraschi** <luca.maraschi@gmail.com> (he/him) * [lxe](https://github.com/lxe) - @@ -538,6 +551,8 @@ For information about the governance of the Node.js project, see **Chen Gang** <gangc.cxy@foxmail.com> * [not-an-aardvark](https://github.com/not-an-aardvark) - **Teddy Katz** <teddy.katz@gmail.com> (he/him) +* [ofrobots](https://github.com/ofrobots) - +**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) * [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru> * [orangemocha](https://github.com/orangemocha) - @@ -568,6 +583,8 @@ For information about the governance of the Node.js project, see **Ron Korving** <ron@ronkorving.nl> * [RReverser](https://github.com/RReverser) - **Ingvar Stepanyan** <me@rreverser.com> +* [rubys](https://github.com/rubys) - +**Sam Ruby** <rubys@intertwingly.net> * [sam-github](https://github.com/sam-github) - **Sam Roberts** <vieuxtech@gmail.com> * [sebdeckers](https://github.com/sebdeckers) - @@ -592,6 +609,8 @@ For information about the governance of the Node.js project, see **Vse Mozhet Byt** <vsemozhetbyt@gmail.com> (he/him) * [whitlockjc](https://github.com/whitlockjc) - **Jeremy Whitlock** <jwhitlock@apache.org> + +
Collaborators follow the [Collaborator Guide](./doc/guides/collaborator-guide.md) in @@ -601,6 +620,8 @@ maintaining the Node.js project. * [Ayase-252](https://github.com/Ayase-252) - **Qingyu Deng** <i@ayase-lab.com> +* [himadriganguly](https://github.com/himadriganguly) - +**Himadri Ganguly** <himadri.tech@gmail.com> (he/him) * [marsonya](https://github.com/marsonya) - **Akhil Marsonya** <akhil.marsonya27@gmail.com> (he/him) * [PoojaDurgad](https://github.com/PoojaDurgad) - @@ -655,7 +676,9 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys B9E2F5981AA6E0CD28160D9FF139 See the section above on [Verifying Binaries](#verifying-binaries) for how to use these keys to verify a downloaded file. -Other keys used to sign some previous releases: +
+ +Other keys used to sign some previous releases * **Chris Dickinson** <christopher.s.dickinson@gmail.com> `9554F04D7259F04124DE6B476D5A82AC7E37093B` @@ -676,6 +699,8 @@ Other keys used to sign some previous releases: * **Timothy J Fontaine** <tjfontaine@gmail.com> `7937DFD2AB06298B2293C3187D33FF9D0246406D` +
+ ## License Node.js is available under the @@ -688,6 +713,6 @@ license text. [Contributing to the project]: CONTRIBUTING.md [Node.js Website]: https://nodejs.org/ [OpenJS Foundation]: https://openjsf.org/ -[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/HEAD/Strategic-Initiatives.md +[Strategic initiatives]: doc/guides/strategic-initiatives.md [Technical values and prioritization]: doc/guides/technical-values.md [Working Groups]: https://github.com/nodejs/TSC/blob/HEAD/WORKING_GROUPS.md diff --git a/benchmark/async_hooks/async-local-storage-run.js b/benchmark/async_hooks/async-local-storage-run.js new file mode 100644 index 00000000000000..d65abb7047b2e4 --- /dev/null +++ b/benchmark/async_hooks/async-local-storage-run.js @@ -0,0 +1,21 @@ +'use strict'; +const common = require('../common.js'); +const { AsyncLocalStorage } = require('async_hooks'); + +const bench = common.createBenchmark(main, { + n: [1e7] +}); + +async function run(store, n) { + for (let i = 0; i < n; i++) { + await new Promise((resolve) => store.run(i, resolve)); + } +} + +function main({ n }) { + const store = new AsyncLocalStorage(); + bench.start(); + run(store, n).then(() => { + bench.end(n); + }); +} diff --git a/benchmark/misc/hidestackframes.js b/benchmark/misc/hidestackframes.js new file mode 100644 index 00000000000000..5b14f2d95b22e2 --- /dev/null +++ b/benchmark/misc/hidestackframes.js @@ -0,0 +1,45 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + type: ['hide-stackframes-throw', 'direct-call-throw', + 'hide-stackframes-noerr', 'direct-call-noerr'], + n: [10e4] +}, { + flags: ['--expose-internals'] +}); + +function main({ n, type }) { + const { + hideStackFrames, + codes: { + ERR_INVALID_ARG_TYPE, + }, + } = require('internal/errors'); + + const testfn = (value) => { + if (typeof value !== 'number') { + throw new ERR_INVALID_ARG_TYPE('Benchmark', 'number', value); + } + }; + + let fn = testfn; + if (type.startsWith('hide-stackframe')) + fn = hideStackFrames(testfn); + let value = 42; + if (type.endsWith('-throw')) + value = 'err'; + + bench.start(); + + for (let i = 0; i < n; i++) { + try { + fn(value); + } catch { + // No-op + } + } + + bench.end(n); +} diff --git a/benchmark/tls/throughput.js b/benchmark/tls/throughput-c2s.js similarity index 100% rename from benchmark/tls/throughput.js rename to benchmark/tls/throughput-c2s.js diff --git a/benchmark/tls/throughput-s2c.js b/benchmark/tls/throughput-s2c.js new file mode 100644 index 00000000000000..a505a719d30884 --- /dev/null +++ b/benchmark/tls/throughput-s2c.js @@ -0,0 +1,104 @@ +'use strict'; +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + dur: [5], + type: ['buf', 'asc', 'utf'], + sendchunklen: [256, 32 * 1024, 128 * 1024, 16 * 1024 * 1024], + recvbuflen: [0, 64 * 1024, 1024 * 1024], + recvbufgenfn: ['true', 'false'] +}); + +const fixtures = require('../../test/common/fixtures'); +let options; +let recvbuf; +let received = 0; +const tls = require('tls'); + +function main({ dur, type, sendchunklen, recvbuflen, recvbufgenfn }) { + if (isFinite(recvbuflen) && recvbuflen > 0) + recvbuf = Buffer.alloc(recvbuflen); + + let encoding; + let chunk; + switch (type) { + case 'buf': + chunk = Buffer.alloc(sendchunklen, 'b'); + break; + case 'asc': + chunk = 'a'.repeat(sendchunklen); + encoding = 'ascii'; + break; + case 'utf': + chunk = 'ü'.repeat(sendchunklen / 2); + encoding = 'utf8'; + break; + default: + throw new Error('invalid type'); + } + + options = { + key: fixtures.readKey('rsa_private.pem'), + cert: fixtures.readKey('rsa_cert.crt'), + ca: fixtures.readKey('rsa_ca.crt'), + ciphers: 'AES256-GCM-SHA384' + }; + + let socketOpts; + if (recvbuf === undefined) { + socketOpts = { port: common.PORT, rejectUnauthorized: false }; + } else { + let buffer = recvbuf; + if (recvbufgenfn === 'true') { + let bufidx = -1; + const bufpool = [ + recvbuf, + Buffer.from(recvbuf), + Buffer.from(recvbuf), + ]; + buffer = () => { + bufidx = (bufidx + 1) % bufpool.length; + return bufpool[bufidx]; + }; + } + socketOpts = { + port: common.PORT, + rejectUnauthorized: false, + onread: { + buffer, + callback: function(nread, buf) { + received += nread; + } + } + }; + } + + const server = tls.createServer(options, (socket) => { + socket.on('data', (buf) => { + socket.on('drain', write); + write(); + }); + + function write() { + while (false !== socket.write(chunk, encoding)); + } + }); + + let conn; + server.listen(common.PORT, () => { + conn = tls.connect(socketOpts, () => { + setTimeout(done, dur * 1000); + bench.start(); + conn.write('hello'); + }); + + conn.on('data', (chunk) => { + received += chunk.length; + }); + }); + + function done() { + const mbits = (received * 8) / (1024 * 1024); + bench.end(mbits); + process.exit(0); + } +} diff --git a/common.gypi b/common.gypi index fda54611734358..b16f643d46d54d 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.76', + 'v8_embedder_string': '-node.84', ##### V8 defaults for Node.js ##### diff --git a/configure.py b/configure.py index 9dc5d12cbdbd7c..30cf6726ae8916 100755 --- a/configure.py +++ b/configure.py @@ -44,6 +44,7 @@ import getmoduleversion import getnapibuildversion from gyp_node import run_gyp +from utils import SearchFiles # imports in deps/v8/tools/node sys.path.insert(0, os.path.join('deps', 'v8', 'tools', 'node')) @@ -963,12 +964,7 @@ def is_arm_hard_float_abi(): def host_arch_cc(): """Host architecture check using the CC command.""" - if sys.platform.startswith('aix'): - # we only support gcc at this point and the default on AIX - # would be xlc so hard code gcc - k = cc_macros('gcc') - else: - k = cc_macros(os.environ.get('CC_host')) + k = cc_macros(os.environ.get('CC_host')) matchup = { '__aarch64__' : 'arm64', @@ -1062,6 +1058,8 @@ def gcc_version_ge(version_checked): return False return True +def configure_node_lib_files(o): + o['variables']['node_library_files'] = SearchFiles('lib', 'js') def configure_node(o): if options.dest_os == 'android': @@ -1805,6 +1803,7 @@ def make_bin_override(): flavor = GetFlavor(flavor_params) configure_node(output) +configure_node_lib_files(output) configure_napi(output) configure_library('zlib', output) configure_library('http_parser', output) @@ -1906,6 +1905,10 @@ def make_bin_override(): if options.compile_commands_json: gyp_args += ['-f', 'compile_commands_json'] +# override the variable `python` defined in common.gypi +if bin_override is not None: + gyp_args += ['-Dpython=' + sys.executable] + # pass the leftover positional arguments to GYP gyp_args += args diff --git a/deps/acorn-plugins/acorn-class-fields/CHANGELOG.md b/deps/acorn-plugins/acorn-class-fields/CHANGELOG.md deleted file mode 100644 index de2c66b0c3bc65..00000000000000 --- a/deps/acorn-plugins/acorn-class-fields/CHANGELOG.md +++ /dev/null @@ -1,28 +0,0 @@ -## 0.3.1 (2019-02-09) - -* Restore compatibility with acorn-private-methods - -## 0.3.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.2.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.2.0 (2018-09-14) - -* Update to new acorn 6 interface -* Change license to MIT - -## 0.1.2 (2018-01-26) - -* Don't accept whitespace between hash and private name - -## 0.1.1 (2018-01-17) - -* Correctly parse all fields named `async` - -## 0.1.0 (2018-01-13) - -Initial release diff --git a/deps/acorn-plugins/acorn-class-fields/LICENSE b/deps/acorn-plugins/acorn-class-fields/LICENSE deleted file mode 100644 index 7c2b27a19c033c..00000000000000 --- a/deps/acorn-plugins/acorn-class-fields/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -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/deps/acorn-plugins/acorn-class-fields/README.md b/deps/acorn-plugins/acorn-class-fields/README.md deleted file mode 100644 index 60f3463e94d315..00000000000000 --- a/deps/acorn-plugins/acorn-class-fields/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Class fields support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-class-fields.svg)](https://www.npmjs.org/package/acorn-class-fields) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for class fields as defined in the stage 3 proposal [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields). The emitted AST follows [an ESTree proposal](https://github.com/estree/estree/pull/180). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const classFields = require('acorn-class-fields'); -Parser.extend(classFields).parse('class X { x = 0 }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/deps/acorn-plugins/acorn-class-fields/index.js b/deps/acorn-plugins/acorn-class-fields/index.js deleted file mode 100644 index 20348c80c6bcbf..00000000000000 --- a/deps/acorn-plugins/acorn-class-fields/index.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict" - -const acorn = require('internal/deps/acorn/acorn/dist/acorn') -const tt = acorn.tokTypes -const privateClassElements = require('internal/deps/acorn-plugins/acorn-private-class-elements/index') - -function maybeParseFieldValue(field) { - if (this.eat(tt.eq)) { - const oldInFieldValue = this._inFieldValue - this._inFieldValue = true - field.value = this.parseExpression() - this._inFieldValue = oldInFieldValue - } else field.value = null -} - -module.exports = function(Parser) { - Parser = privateClassElements(Parser) - return class extends Parser { - // Parse fields - parseClassElement(_constructorAllowsSuper) { - if (this.options.ecmaVersion >= 8 && (this.type == tt.name || this.type == this.privateNameToken || this.type == tt.bracketL || this.type == tt.string)) { - const branch = this._branch() - if (branch.type == tt.bracketL) { - let count = 0 - do { - if (branch.eat(tt.bracketL)) ++count - else if (branch.eat(tt.bracketR)) --count - else branch.next() - } while (count > 0) - } else branch.next() - if (branch.type == tt.eq || branch.canInsertSemicolon() || branch.type == tt.semi) { - const node = this.startNode() - if (this.type == this.privateNameToken) { - this.parsePrivateClassElementName(node) - } else { - this.parsePropertyName(node) - } - if ((node.key.type === "Identifier" && node.key.name === "constructor") || - (node.key.type === "Literal" && node.key.value === "constructor")) { - this.raise(node.key.start, "Classes may not have a field called constructor") - } - maybeParseFieldValue.call(this, node) - this.finishNode(node, "FieldDefinition") - this.semicolon() - return node - } - } - - return super.parseClassElement.apply(this, arguments) - } - - // Prohibit arguments in class field initializers - parseIdent(liberal, isBinding) { - const ident = super.parseIdent(liberal, isBinding) - if (this._inFieldValue && ident.name == "arguments") this.raise(ident.start, "A class field initializer may not contain arguments") - return ident - } - } -} diff --git a/deps/acorn-plugins/acorn-class-fields/package.json b/deps/acorn-plugins/acorn-class-fields/package.json deleted file mode 100644 index 550511399f248d..00000000000000 --- a/deps/acorn-plugins/acorn-class-fields/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "acorn-class-fields", - "description": "Support for class fields in acorn", - "homepage": "https://github.com/acornjs/acorn-class-fields", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-class-fields" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.0.0" - }, - "version": "0.3.1", - "devDependencies": { - "acorn": "^6.1.0", - "eslint": "^5.13.0", - "eslint-plugin-node": "^8.0.1", - "mocha": "^5.2.0", - "test262": "git+https://github.com/tc39/test262.git#33a306d1026b72227eb50a918db19ada16f12b3d", - "test262-parser-runner": "^0.5.0" - }, - "dependencies": { - "acorn-private-class-elements": "^0.1.1" - } -} \ No newline at end of file diff --git a/deps/acorn-plugins/acorn-private-class-elements/CHANGELOG.md b/deps/acorn-plugins/acorn-private-class-elements/CHANGELOG.md deleted file mode 100644 index 6d4854429aacfa..00000000000000 --- a/deps/acorn-plugins/acorn-private-class-elements/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -## 0.2.0 (2020-03-07) - -* Mark as compatible with acorn v7 - -## 0.1.1 (2019-02-09) - -* Add \_branch() method - -## 0.1.0 (2019-02-09) - -Initial release diff --git a/deps/acorn-plugins/acorn-private-class-elements/LICENSE b/deps/acorn-plugins/acorn-private-class-elements/LICENSE deleted file mode 100644 index 7c2b27a19c033c..00000000000000 --- a/deps/acorn-plugins/acorn-private-class-elements/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -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/deps/acorn-plugins/acorn-private-class-elements/README.md b/deps/acorn-plugins/acorn-private-class-elements/README.md deleted file mode 100644 index 0d228820cd1d01..00000000000000 --- a/deps/acorn-plugins/acorn-private-class-elements/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Helpers for supporting private class methods and fields for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-private-class-elements.svg)](https://www.npmjs.org/package/acorn-private-class-elements) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It provides helpers for implementing support for private class elements. The emitted AST follows [an ESTree proposal](https://github.com/estree/estree/pull/180). - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/deps/acorn-plugins/acorn-private-class-elements/index.js b/deps/acorn-plugins/acorn-private-class-elements/index.js deleted file mode 100644 index 1f40bda9baa2eb..00000000000000 --- a/deps/acorn-plugins/acorn-private-class-elements/index.js +++ /dev/null @@ -1,123 +0,0 @@ -"use strict" - -const acorn = require('internal/deps/acorn/acorn/dist/acorn') -if (acorn.version.indexOf("6.") != 0 && acorn.version.indexOf("6.0.") == 0 && acorn.version.indexOf("7.") != 0) { - throw new Error(`acorn-private-class-elements requires acorn@^6.1.0 or acorn@7.0.0, not ${acorn.version}`) -} -const tt = acorn.tokTypes -const TokenType = acorn.TokenType - -module.exports = function(Parser) { - // Only load this plugin once. - if (Parser.prototype.parsePrivateName) { - return Parser - } - - // Make sure `Parser` comes from the same acorn as our `tt`, - // otherwise the comparisons fail. - let cur = Parser - while (cur && cur !== acorn.Parser) { - cur = cur.__proto__ - } - if (cur !== acorn.Parser) { - throw new Error("acorn-private-class-elements does not support mixing different acorn copies") - } - - Parser = class extends Parser { - _branch() { - this.__branch = this.__branch || new Parser({ecmaVersion: this.options.ecmaVersion}, this.input) - this.__branch.end = this.end - this.__branch.pos = this.pos - this.__branch.type = this.type - this.__branch.value = this.value - this.__branch.containsEsc = this.containsEsc - return this.__branch - } - - parsePrivateClassElementName(element) { - element.computed = false - element.key = this.parsePrivateName() - if (element.key.name == "constructor") this.raise(element.key.start, "Classes may not have a private element named constructor") - const accept = {get: "set", set: "get"}[element.kind] - const privateBoundNames = this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1] - if (Object.prototype.hasOwnProperty.call(privateBoundNames, element.key.name) && privateBoundNames[element.key.name] !== accept) { - this.raise(element.start, "Duplicate private element") - } - privateBoundNames[element.key.name] = element.kind || true - delete this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1][element.key.name] - return element.key - } - - parsePrivateName() { - const node = this.startNode() - node.name = this.value - this.next() - this.finishNode(node, "PrivateName") - if (this.options.allowReserved == "never") this.checkUnreserved(node) - return node - } - - // Parse # token - getTokenFromCode(code) { - if (code === 35) { - ++this.pos - const word = this.readWord1() - return this.finishToken(this.privateNameToken, word) - } - return super.getTokenFromCode(code) - } - - // Manage stacks and check for undeclared private names - parseClass(node, isStatement) { - this._privateBoundNamesStack = this._privateBoundNamesStack || [] - const privateBoundNames = Object.create(this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1] || null) - this._privateBoundNamesStack.push(privateBoundNames) - this._unresolvedPrivateNamesStack = this._unresolvedPrivateNamesStack || [] - const unresolvedPrivateNames = Object.create(null) - this._unresolvedPrivateNamesStack.push(unresolvedPrivateNames) - const _return = super.parseClass(node, isStatement) - this._privateBoundNamesStack.pop() - this._unresolvedPrivateNamesStack.pop() - if (!this._unresolvedPrivateNamesStack.length) { - const names = Object.keys(unresolvedPrivateNames) - if (names.length) { - names.sort((n1, n2) => unresolvedPrivateNames[n1] - unresolvedPrivateNames[n2]) - this.raise(unresolvedPrivateNames[names[0]], "Usage of undeclared private name") - } - } else Object.assign(this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1], unresolvedPrivateNames) - return _return - } - - // Parse private element access - parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow) { - if (!this.eat(tt.dot)) { - return super.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow) - } - let node = this.startNodeAt(startPos, startLoc) - node.object = base - node.computed = false - if (this.type == this.privateNameToken) { - node.property = this.parsePrivateName() - if (!this._privateBoundNamesStack.length || !this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1][node.property.name]) { - this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1][node.property.name] = node.property.start - } - } else { - node.property = this.parseIdent(true) - } - return this.finishNode(node, "MemberExpression") - } - - // Prohibit delete of private class elements - parseMaybeUnary(refDestructuringErrors, sawUnary) { - const _return = super.parseMaybeUnary(refDestructuringErrors, sawUnary) - if (_return.operator == "delete") { - if (_return.argument.type == "MemberExpression" && _return.argument.property.type == "PrivateName") { - this.raise(_return.start, "Private elements may not be deleted") - } - } - return _return - } - } - Parser.prototype.privateNameToken = new TokenType("privateName") - return Parser -} diff --git a/deps/acorn-plugins/acorn-private-class-elements/package.json b/deps/acorn-plugins/acorn-private-class-elements/package.json deleted file mode 100644 index b8b652a1e9e2f3..00000000000000 --- a/deps/acorn-plugins/acorn-private-class-elements/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "acorn-private-class-elements", - "description": "Helpers for supporting private class methods and fields in acorn", - "homepage": "https://github.com/acornjs/acorn-private-class-elements", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-private-class-elements" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7.0.0" - }, - "version": "0.2.0", - "devDependencies": { - "acorn": "^7.0.0", - "eslint": "^6.8.0", - "eslint-plugin-node": "^11.0.0", - "mocha": "^7.1.0" - } -} \ No newline at end of file diff --git a/deps/acorn-plugins/acorn-private-methods/CHANGELOG.md b/deps/acorn-plugins/acorn-private-methods/CHANGELOG.md deleted file mode 100644 index 5de4b97b8111b0..00000000000000 --- a/deps/acorn-plugins/acorn-private-methods/CHANGELOG.md +++ /dev/null @@ -1,29 +0,0 @@ -## 0.3.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.2.3 (2019-02-09) - -* Forbid binding await in async arrow function's parameter list - -## 0.2.2 (2019-01-30) - -* Fix parsing of chained subscripts - -## 0.2.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.2.0 (2018-09-14) - -* Update to new acorn 6 interface -* Change license to MIT -* Don't allow direct super() calls in private methods - -## 0.1.1 (2018-02-09) - -* Don't accept whitespace between hash and private name - -## 0.1.0 (2018-01-13) - -Initial release diff --git a/deps/acorn-plugins/acorn-private-methods/LICENSE b/deps/acorn-plugins/acorn-private-methods/LICENSE deleted file mode 100644 index 7c2b27a19c033c..00000000000000 --- a/deps/acorn-plugins/acorn-private-methods/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -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/deps/acorn-plugins/acorn-private-methods/README.md b/deps/acorn-plugins/acorn-private-methods/README.md deleted file mode 100644 index 6929e84ba620a8..00000000000000 --- a/deps/acorn-plugins/acorn-private-methods/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Private methods and getter/setters support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-private-methods.svg)](https://www.npmjs.org/package/acorn-private-methods) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for private methods, getters and setters as defined in the stage 3 proposal [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods). The emitted AST follows [an ESTree proposal](https://github.com/estree/estree/pull/180). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const privateMethods = require('acorn-private-methods'); -Parser.extend(privateMethods).parse('class X { #a() {} }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/deps/acorn-plugins/acorn-private-methods/index.js b/deps/acorn-plugins/acorn-private-methods/index.js deleted file mode 100644 index a2964251680565..00000000000000 --- a/deps/acorn-plugins/acorn-private-methods/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict" - -const privateClassElements = require('internal/deps/acorn-plugins/acorn-private-class-elements/index') - -module.exports = function(Parser) { - const ExtendedParser = privateClassElements(Parser) - - return class extends ExtendedParser { - // Parse private methods - parseClassElement(_constructorAllowsSuper) { - const oldInClassMemberName = this._inClassMemberName - this._inClassMemberName = true - const result = super.parseClassElement.apply(this, arguments) - this._inClassMemberName = oldInClassMemberName - return result - } - - parsePropertyName(prop) { - const isPrivate = this.options.ecmaVersion >= 8 && this._inClassMemberName && this.type == this.privateNameToken - this._inClassMemberName = false - if (!isPrivate) return super.parsePropertyName(prop) - return this.parsePrivateClassElementName(prop) - } - } -} diff --git a/deps/acorn-plugins/acorn-private-methods/package.json b/deps/acorn-plugins/acorn-private-methods/package.json deleted file mode 100644 index e7b91592aaa9b9..00000000000000 --- a/deps/acorn-plugins/acorn-private-methods/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "acorn-private-methods", - "description": "Support for private methods in acorn", - "homepage": "https://github.com/acornjs/acorn-private-methods", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-private-methods" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.1.0" - }, - "dependencies": { - "acorn-private-class-elements": "^0.1.0" - }, - "version": "0.3.0", - "devDependencies": { - "acorn": "^6.1.0", - "eslint": "^5.13.0", - "eslint-plugin-node": "^8.0.1", - "mocha": "^5.2.0", - "test262": "git+https://github.com/tc39/test262.git#33a306d1026b72227eb50a918db19ada16f12b3d", - "test262-parser-runner": "^0.5.0" - } -} \ No newline at end of file diff --git a/deps/acorn-plugins/acorn-static-class-features/CHANGELOG.md b/deps/acorn-plugins/acorn-static-class-features/CHANGELOG.md deleted file mode 100644 index b9896a4bc5a45e..00000000000000 --- a/deps/acorn-plugins/acorn-static-class-features/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -## 0.2.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.1.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.1.0 (2018-09-14) - -Initial release diff --git a/deps/acorn-plugins/acorn-static-class-features/LICENSE b/deps/acorn-plugins/acorn-static-class-features/LICENSE deleted file mode 100644 index 7c2b27a19c033c..00000000000000 --- a/deps/acorn-plugins/acorn-static-class-features/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -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/deps/acorn-plugins/acorn-static-class-features/README.md b/deps/acorn-plugins/acorn-static-class-features/README.md deleted file mode 100644 index bb214fce164a1a..00000000000000 --- a/deps/acorn-plugins/acorn-static-class-features/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Static class features support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-class-fields.svg)](https://www.npmjs.org/package/acorn-static-class-features) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for static class features as defined in the stage 3 proposal [Static class features](https://github.com/tc39/proposal-static-class-features). The emitted AST follows [an ESTree proposal](https://github.com/estree/estree/pull/180). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const staticClassFeatures = require('acorn-static-class-features'); -Parser.extend(staticClassFeatures).parse('class X { static x = 0 }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/deps/acorn-plugins/acorn-static-class-features/index.js b/deps/acorn-plugins/acorn-static-class-features/index.js deleted file mode 100644 index d8954bf3275e0e..00000000000000 --- a/deps/acorn-plugins/acorn-static-class-features/index.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict" - -const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g - -const acorn = require('internal/deps/acorn/acorn/dist/acorn') -const tt = acorn.tokTypes - -function maybeParseFieldValue(field) { - if (this.eat(tt.eq)) { - const oldInFieldValue = this._inStaticFieldValue - this._inStaticFieldValue = true - field.value = this.parseExpression() - this._inStaticFieldValue = oldInFieldValue - } else field.value = null -} - -const privateClassElements = require("internal/deps/acorn-plugins/acorn-private-class-elements/index") - -module.exports = function(Parser) { - const ExtendedParser = privateClassElements(Parser) - - return class extends ExtendedParser { - // Parse private fields - parseClassElement(_constructorAllowsSuper) { - if (this.eat(tt.semi)) return null - - const node = this.startNode() - - const tryContextual = (k, noLineBreak) => { - if (typeof noLineBreak == "undefined") noLineBreak = false - const start = this.start, startLoc = this.startLoc - if (!this.eatContextual(k)) return false - if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true - if (node.key) this.unexpected() - node.computed = false - node.key = this.startNodeAt(start, startLoc) - node.key.name = k - this.finishNode(node.key, "Identifier") - return false - } - - node.static = tryContextual("static") - if (!node.static) return super.parseClassElement.apply(this, arguments) - - let isGenerator = this.eat(tt.star) - let isAsync = false - if (!isGenerator) { - // Special-case for `async`, since `parseClassMember` currently looks - // for `(` to determine whether `async` is a method name - if (this.options.ecmaVersion >= 8 && this.isContextual("async")) { - skipWhiteSpace.lastIndex = this.pos - let skip = skipWhiteSpace.exec(this.input) - let next = this.input.charAt(this.pos + skip[0].length) - if (next === ";" || next === "=") { - node.key = this.parseIdent(true) - node.computed = false - maybeParseFieldValue.call(this, node) - this.finishNode(node, "FieldDefinition") - this.semicolon() - return node - } else if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) { - isAsync = true - isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star) - } - } else if (tryContextual("get")) { - node.kind = "get" - } else if (tryContextual("set")) { - node.kind = "set" - } - } - if (this.type === this.privateNameToken) { - this.parsePrivateClassElementName(node) - if (this.type !== tt.parenL) { - if (node.key.name === "prototype") { - this.raise(node.key.start, "Classes may not have a private static property named prototype") - } - maybeParseFieldValue.call(this, node) - this.finishNode(node, "FieldDefinition") - this.semicolon() - return node - } - } else if (!node.key) { - this.parsePropertyName(node) - if ((node.key.name || node.key.value) === "prototype" && !node.computed) { - this.raise(node.key.start, "Classes may not have a static property named prototype") - } - } - if (!node.kind) node.kind = "method" - this.parseClassMethod(node, isGenerator, isAsync) - if (!node.kind && (node.key.name || node.key.value) === "constructor" && !node.computed) { - this.raise(node.key.start, "Classes may not have a static field named constructor") - } - if (node.kind === "get" && node.value.params.length !== 0) { - this.raiseRecoverable(node.value.start, "getter should have no params") - } - if (node.kind === "set" && node.value.params.length !== 1) { - this.raiseRecoverable(node.value.start, "setter should have exactly one param") - } - if (node.kind === "set" && node.value.params[0].type === "RestElement") { - this.raiseRecoverable(node.value.params[0].start, "Setter cannot use rest params") - } - - return node - - } - - // Parse public static fields - parseClassMethod(method, isGenerator, isAsync, _allowsDirectSuper) { - if (isGenerator || isAsync || method.kind != "method" || !method.static || this.options.ecmaVersion < 8 || this.type == tt.parenL) { - return super.parseClassMethod.apply(this, arguments) - } - maybeParseFieldValue.call(this, method) - delete method.kind - method = this.finishNode(method, "FieldDefinition") - this.semicolon() - return method - } - - // Prohibit arguments in class field initializers - parseIdent(liberal, isBinding) { - const ident = super.parseIdent(liberal, isBinding) - if (this._inStaticFieldValue && ident.name == "arguments") this.raise(ident.start, "A static class field initializer may not contain arguments") - return ident - } - } -} diff --git a/deps/acorn-plugins/acorn-static-class-features/package.json b/deps/acorn-plugins/acorn-static-class-features/package.json deleted file mode 100644 index 066223d9965df5..00000000000000 --- a/deps/acorn-plugins/acorn-static-class-features/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "acorn-static-class-features", - "description": "Support for static class features in acorn", - "homepage": "https://github.com/acornjs/acorn-static-class-features", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-static-class-features" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.1.0" - }, - "version": "0.2.0", - "devDependencies": { - "acorn": "^6.1.0", - "eslint": "^5.13.0", - "eslint-plugin-node": "^8.0.1", - "mocha": "^5.2.0", - "test262": "git+https://github.com/tc39/test262.git#33a306d1026b72227eb50a918db19ada16f12b3d", - "test262-parser-runner": "^0.5.0" - }, - "dependencies": { - "acorn-private-class-elements": "^0.1.1" - } -} \ No newline at end of file diff --git a/deps/acorn/acorn-walk/CHANGELOG.md b/deps/acorn/acorn-walk/CHANGELOG.md index 204e04b33974e2..a9382d0db9abef 100644 --- a/deps/acorn/acorn-walk/CHANGELOG.md +++ b/deps/acorn/acorn-walk/CHANGELOG.md @@ -1,3 +1,21 @@ +## 8.1.0 (2021-04-24) + +### New features + +Support node types for class fields and private methods. + +## 8.0.2 (2021-01-25) + +### Bug fixes + +Adjust package.json to work with Node 12.16.0 and 13.0-13.6. + +## 8.0.0 (2021-01-05) + +### Bug fixes + +Fix a bug where `full` and `fullAncestor` would skip nodes with overridden types. + ## 8.0.0 (2020-08-12) ### New features diff --git a/deps/acorn/acorn-walk/LICENSE b/deps/acorn/acorn-walk/LICENSE index cc5272c966db45..d6be6db2cfff57 100644 --- a/deps/acorn/acorn-walk/LICENSE +++ b/deps/acorn/acorn-walk/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (C) 2012-2018 by various contributors (see AUTHORS) +Copyright (C) 2012-2020 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/deps/acorn/acorn-walk/dist/walk.js b/deps/acorn/acorn-walk/dist/walk.js index 17da67c61171f1..5582c907595e11 100644 --- a/deps/acorn/acorn-walk/dist/walk.js +++ b/deps/acorn/acorn-walk/dist/walk.js @@ -72,11 +72,15 @@ // A full walk triggers the callback on each node function full(node, callback, baseVisitor, state, override) { - if (!baseVisitor) { baseVisitor = base - ; }(function c(node, st, override) { + if (!baseVisitor) { baseVisitor = base; } + var last + ;(function c(node, st, override) { var type = override || node.type; baseVisitor[type](node, st, c); - if (!override) { callback(node, st, type); } + if (last !== node) { + callback(node, st, type); + last = node; + } })(node, state, override); } @@ -84,13 +88,16 @@ // the callback on each node function fullAncestor(node, callback, baseVisitor, state) { if (!baseVisitor) { baseVisitor = base; } - var ancestors = [] + var ancestors = [], last ;(function c(node, st, override) { var type = override || node.type; var isNew = node !== ancestors[ancestors.length - 1]; if (isNew) { ancestors.push(node); } baseVisitor[type](node, st, c); - if (!override) { callback(node, st || ancestors, ancestors, type); } + if (last !== node) { + callback(node, st || ancestors, ancestors, type); + last = node; + } if (isNew) { ancestors.pop(); } })(node, state); } @@ -168,17 +175,10 @@ return max } - // Fallback to an Object.create polyfill for older environments. - var create = Object.create || function(proto) { - function Ctor() {} - Ctor.prototype = proto; - return new Ctor - }; - // Used to create a custom walker. Will fill in all missing node // type properties with the defaults. function make(funcs, baseVisitor) { - var visitor = create(baseVisitor || base); + var visitor = Object.create(baseVisitor || base); for (var type in funcs) { visitor[type] = funcs[type]; } return visitor } @@ -421,7 +421,7 @@ base.ImportExpression = function (node, st, c) { c(node.source, st, "Expression"); }; - base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore; + base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore; base.TaggedTemplateExpression = function (node, st, c) { c(node.tag, st, "Expression"); @@ -441,9 +441,9 @@ c(elt, st); } }; - base.MethodDefinition = base.Property = function (node, st, c) { + base.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) { if (node.computed) { c(node.key, st, "Expression"); } - c(node.value, st, "Expression"); + if (node.value) { c(node.value, st, "Expression"); } }; exports.ancestor = ancestor; diff --git a/deps/acorn/acorn-walk/dist/walk.js.map b/deps/acorn/acorn-walk/dist/walk.js.map deleted file mode 100644 index 5590a2924f2de6..00000000000000 --- a/deps/acorn/acorn-walk/dist/walk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"walk.js","sources":["../src/index.js"],"sourcesContent":["// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nexport function simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n baseVisitor[type](node, st, c)\n if (found) found(node, st)\n })(node, state, override)\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nexport function ancestor(node, visitors, baseVisitor, state) {\n let ancestors = []\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (found) found(node, st || ancestors, ancestors)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that's\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nexport function recursive(node, state, funcs, baseVisitor, override) {\n let visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c)\n })(node, state, override)\n}\n\nfunction makeTest(test) {\n if (typeof test === \"string\")\n return type => type === test\n else if (!test)\n return () => true\n else\n return test\n}\n\nclass Found {\n constructor(node, state) { this.node = node; this.state = state }\n}\n\n// A full walk triggers the callback on each node\nexport function full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st, type)\n })(node, state, override)\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nexport function fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n let ancestors = []\n ;(function c(node, st, override) {\n let type = override || node.type\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st || ancestors, ancestors, type)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn't find a matching node.\nexport function findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n test = makeTest(test)\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n baseVisitor[type](node, st, c)\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nexport function findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if (node.start > pos || node.end < pos) return\n baseVisitor[type](node, st, c)\n if (test(type, node)) throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nexport function findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n if (node.end < pos) return\n let type = override || node.type\n if (node.start >= pos && test(type, node)) throw new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nexport function findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n let max\n ;(function c(node, st, override) {\n if (node.start > pos) return\n let type = override || node.type\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n max = new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n return max\n}\n\n// Fallback to an Object.create polyfill for older environments.\nconst create = Object.create || function(proto) {\n function Ctor() {}\n Ctor.prototype = proto\n return new Ctor\n}\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nexport function make(funcs, baseVisitor) {\n let visitor = create(baseVisitor || base)\n for (let type in funcs) visitor[type] = funcs[type]\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st) }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nexport const base = {}\n\nbase.Program = base.BlockStatement = (node, st, c) => {\n for (let stmt of node.body)\n c(stmt, st, \"Statement\")\n}\nbase.Statement = skipThrough\nbase.EmptyStatement = ignore\nbase.ExpressionStatement = base.ParenthesizedExpression =\n (node, st, c) => c(node.expression, st, \"Expression\")\nbase.IfStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Statement\")\n if (node.alternate) c(node.alternate, st, \"Statement\")\n}\nbase.LabeledStatement = (node, st, c) => c(node.body, st, \"Statement\")\nbase.BreakStatement = base.ContinueStatement = ignore\nbase.WithStatement = (node, st, c) => {\n c(node.object, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.SwitchStatement = (node, st, c) => {\n c(node.discriminant, st, \"Expression\")\n for (let cs of node.cases) {\n if (cs.test) c(cs.test, st, \"Expression\")\n for (let cons of cs.consequent)\n c(cons, st, \"Statement\")\n }\n}\nbase.SwitchCase = (node, st, c) => {\n if (node.test) c(node.test, st, \"Expression\")\n for (let cons of node.consequent)\n c(cons, st, \"Statement\")\n}\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = (node, st, c) => {\n if (node.argument) c(node.argument, st, \"Expression\")\n}\nbase.ThrowStatement = base.SpreadElement =\n (node, st, c) => c(node.argument, st, \"Expression\")\nbase.TryStatement = (node, st, c) => {\n c(node.block, st, \"Statement\")\n if (node.handler) c(node.handler, st)\n if (node.finalizer) c(node.finalizer, st, \"Statement\")\n}\nbase.CatchClause = (node, st, c) => {\n if (node.param) c(node.param, st, \"Pattern\")\n c(node.body, st, \"Statement\")\n}\nbase.WhileStatement = base.DoWhileStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForStatement = (node, st, c) => {\n if (node.init) c(node.init, st, \"ForInit\")\n if (node.test) c(node.test, st, \"Expression\")\n if (node.update) c(node.update, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInStatement = base.ForOfStatement = (node, st, c) => {\n c(node.left, st, \"ForInit\")\n c(node.right, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInit = (node, st, c) => {\n if (node.type === \"VariableDeclaration\") c(node, st)\n else c(node, st, \"Expression\")\n}\nbase.DebuggerStatement = ignore\n\nbase.FunctionDeclaration = (node, st, c) => c(node, st, \"Function\")\nbase.VariableDeclaration = (node, st, c) => {\n for (let decl of node.declarations)\n c(decl, st)\n}\nbase.VariableDeclarator = (node, st, c) => {\n c(node.id, st, \"Pattern\")\n if (node.init) c(node.init, st, \"Expression\")\n}\n\nbase.Function = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n for (let param of node.params)\n c(param, st, \"Pattern\")\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\")\n}\n\nbase.Pattern = (node, st, c) => {\n if (node.type === \"Identifier\")\n c(node, st, \"VariablePattern\")\n else if (node.type === \"MemberExpression\")\n c(node, st, \"MemberPattern\")\n else\n c(node, st)\n}\nbase.VariablePattern = ignore\nbase.MemberPattern = skipThrough\nbase.RestElement = (node, st, c) => c(node.argument, st, \"Pattern\")\nbase.ArrayPattern = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Pattern\")\n }\n}\nbase.ObjectPattern = (node, st, c) => {\n for (let prop of node.properties) {\n if (prop.type === \"Property\") {\n if (prop.computed) c(prop.key, st, \"Expression\")\n c(prop.value, st, \"Pattern\")\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\")\n }\n }\n}\n\nbase.Expression = skipThrough\nbase.ThisExpression = base.Super = base.MetaProperty = ignore\nbase.ArrayExpression = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Expression\")\n }\n}\nbase.ObjectExpression = (node, st, c) => {\n for (let prop of node.properties)\n c(prop, st)\n}\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration\nbase.SequenceExpression = (node, st, c) => {\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateLiteral = (node, st, c) => {\n for (let quasi of node.quasis)\n c(quasi, st)\n\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateElement = ignore\nbase.UnaryExpression = base.UpdateExpression = (node, st, c) => {\n c(node.argument, st, \"Expression\")\n}\nbase.BinaryExpression = base.LogicalExpression = (node, st, c) => {\n c(node.left, st, \"Expression\")\n c(node.right, st, \"Expression\")\n}\nbase.AssignmentExpression = base.AssignmentPattern = (node, st, c) => {\n c(node.left, st, \"Pattern\")\n c(node.right, st, \"Expression\")\n}\nbase.ConditionalExpression = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Expression\")\n c(node.alternate, st, \"Expression\")\n}\nbase.NewExpression = base.CallExpression = (node, st, c) => {\n c(node.callee, st, \"Expression\")\n if (node.arguments)\n for (let arg of node.arguments)\n c(arg, st, \"Expression\")\n}\nbase.MemberExpression = (node, st, c) => {\n c(node.object, st, \"Expression\")\n if (node.computed) c(node.property, st, \"Expression\")\n}\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = (node, st, c) => {\n if (node.declaration)\n c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\")\n if (node.source) c(node.source, st, \"Expression\")\n}\nbase.ExportAllDeclaration = (node, st, c) => {\n c(node.source, st, \"Expression\")\n}\nbase.ImportDeclaration = (node, st, c) => {\n for (let spec of node.specifiers)\n c(spec, st)\n c(node.source, st, \"Expression\")\n}\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore\n\nbase.TaggedTemplateExpression = (node, st, c) => {\n c(node.tag, st, \"Expression\")\n c(node.quasi, st, \"Expression\")\n}\nbase.ClassDeclaration = base.ClassExpression = (node, st, c) => c(node, st, \"Class\")\nbase.Class = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n if (node.superClass) c(node.superClass, st, \"Expression\")\n c(node.body, st)\n}\nbase.ClassBody = (node, st, c) => {\n for (let elt of node.body)\n c(elt, st)\n}\nbase.MethodDefinition = base.Property = (node, st, c) => {\n if (node.computed) c(node.key, st, \"Expression\")\n c(node.value, st, \"Expression\")\n}\n"],"names":["let","const"],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;AAkBA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACnE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxD,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;;AAKD,AAAO,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC3DA,IAAI,SAAS,GAAG,GAAE;EAClB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxDA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAC,EAAA;IAClD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;;;AAOD,AAAO,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;EACnEA,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS,CAAC,GAAG,WAAW,CACxE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE;EACtB,IAAI,OAAO,IAAI,KAAK,QAAQ;IAC1B,EAAA,OAAO,UAAA,IAAI,EAAC,SAAG,IAAI,KAAK,IAAI,GAAA,EAAA;OACzB,IAAI,CAAC,IAAI;IACZ,EAAA,OAAO,YAAG,SAAG,IAAI,GAAA,EAAA;;IAEjB,EAAA,OAAO,IAAI,EAAA;CACd;;AAED,IAAM,KAAK,GAAC,cACC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAK,EAAE,CAAA;;;AAInE,AAAO,SAAS,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACjE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,EAAA;GACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;AAID,AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC/D,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,SAAS,GAAG,EAAE,CACjB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChCA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,EAAA;IAC/D,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;AAKD,AAAO,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACrE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;WACpC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,EAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC,EAAA;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;WACrC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;UACjC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAClB,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAC5B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;;AAID,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC9C,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;MAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAChD,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACjE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC1BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;MACpE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;KAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,GAAG,CACN,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;IAC5BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;MAC1E,EAAA,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;IAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;EACf,OAAO,GAAG;CACX;;;AAGDC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,KAAK,EAAE;EAC9C,SAAS,IAAI,GAAG,EAAE;EAClB,IAAI,CAAC,SAAS,GAAG,MAAK;EACtB,OAAO,IAAI,IAAI;EAChB;;;;AAID,AAAO,SAAS,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;EACvCD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,EAAC;EACzC,KAAKA,IAAI,IAAI,IAAI,KAAK,EAAE,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC,EAAA;EACnD,OAAO,OAAO;CACf;;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAE;AACjD,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;;;;AAIlC,AAAOC,IAAM,IAAI,GAAG,GAAE;;AAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjD,KAAa,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAArB;IAAAD,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,SAAS,GAAG,YAAW;AAC5B,IAAI,CAAC,cAAc,GAAG,OAAM;AAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;EACrD,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACvD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,EAAC;EACnC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAA;AACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAM;AACrD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAC;EACtC,KAAW,kBAAI,IAAI,CAAC,KAAK,yBAAA,EAAE;IAAtBA,IAAI,EAAE;;IACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;IACzC,KAAa,sBAAI,EAAE,CAAC,UAAU,+BAAA;MAAzB;MAAAA,IAAI,IAAI;;MACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;KAAA;GAC3B;EACF;AACD,IAAI,CAAC,UAAU,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjF,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;EACtC,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACrD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAC,EAAA;EACrC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACjD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;OAC/C,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC/B;AACD,IAAI,CAAC,iBAAiB,GAAG,OAAM;;AAE/B,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,IAAA;AACnE,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvC,KAAa,kBAAI,IAAI,CAAC,YAAY,yBAAA;IAA7B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC;EACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC9C;;AAED,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;GAAA;EACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,WAAW,EAAC;EAC/D;;AAED,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;IAC5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAA;OAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;IACvC,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAC,EAAA;;IAE5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;EACd;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,aAAa,GAAG,YAAW;AAChC,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,IAAA;AACnE,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;GAC/B;EACF;AACD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA,EAAE;IAA7BA,IAAI,IAAI;;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;MAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;KAC7B,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;MACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAC;KAChC;GACF;EACF;;AAED,IAAI,CAAC,UAAU,GAAG,YAAW;AAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,OAAM;AAC7D,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;GAClC;EACF;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAmB;AACjF,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,KAAa,kBAAI,IAAI,CAAC,WAAW,yBAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAC;GAAA;;EAEd,KAAa,sBAAI,IAAI,CAAC,WAAW,+BAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3D,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC;EACnC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,qBAAqB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC;AACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvD,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,SAAS;IAChB,EAAA,KAAY,kBAAI,IAAI,CAAC,SAAS,yBAAA;MAAzB;QAAAA,IAAI,GAAG;;QACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;OAAA,EAAA;EAC7B;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1E,IAAI,IAAI,CAAC,WAAW;IAClB,EAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,YAAY,EAAC,EAAA;EACrH,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAClD;AACD,IAAI,CAAC,oBAAoB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACrC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACb,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,OAAM;;AAE5H,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;EAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAA;AACpF,IAAI,CAAC,KAAK,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzB,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACzD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAC;EACjB;AACD,IAAI,CAAC,SAAS,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7B,KAAY,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAApB;IAAAA,IAAI,GAAG;;IACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAC;GAAA;EACb;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;CAChC;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/deps/acorn/acorn-walk/dist/walk.mjs b/deps/acorn/acorn-walk/dist/walk.mjs index a7fcec855e12e7..ea5d4b0bc2041f 100644 --- a/deps/acorn/acorn-walk/dist/walk.mjs +++ b/deps/acorn/acorn-walk/dist/walk.mjs @@ -66,11 +66,15 @@ var Found = function Found(node, state) { this.node = node; this.state = state; // A full walk triggers the callback on each node function full(node, callback, baseVisitor, state, override) { - if (!baseVisitor) { baseVisitor = base - ; }(function c(node, st, override) { + if (!baseVisitor) { baseVisitor = base; } + var last + ;(function c(node, st, override) { var type = override || node.type; baseVisitor[type](node, st, c); - if (!override) { callback(node, st, type); } + if (last !== node) { + callback(node, st, type); + last = node; + } })(node, state, override); } @@ -78,13 +82,16 @@ function full(node, callback, baseVisitor, state, override) { // the callback on each node function fullAncestor(node, callback, baseVisitor, state) { if (!baseVisitor) { baseVisitor = base; } - var ancestors = [] + var ancestors = [], last ;(function c(node, st, override) { var type = override || node.type; var isNew = node !== ancestors[ancestors.length - 1]; if (isNew) { ancestors.push(node); } baseVisitor[type](node, st, c); - if (!override) { callback(node, st || ancestors, ancestors, type); } + if (last !== node) { + callback(node, st || ancestors, ancestors, type); + last = node; + } if (isNew) { ancestors.pop(); } })(node, state); } @@ -162,17 +169,10 @@ function findNodeBefore(node, pos, test, baseVisitor, state) { return max } -// Fallback to an Object.create polyfill for older environments. -var create = Object.create || function(proto) { - function Ctor() {} - Ctor.prototype = proto; - return new Ctor -}; - // Used to create a custom walker. Will fill in all missing node // type properties with the defaults. function make(funcs, baseVisitor) { - var visitor = create(baseVisitor || base); + var visitor = Object.create(baseVisitor || base); for (var type in funcs) { visitor[type] = funcs[type]; } return visitor } @@ -415,7 +415,7 @@ base.ImportDeclaration = function (node, st, c) { base.ImportExpression = function (node, st, c) { c(node.source, st, "Expression"); }; -base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore; +base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore; base.TaggedTemplateExpression = function (node, st, c) { c(node.tag, st, "Expression"); @@ -435,9 +435,9 @@ base.ClassBody = function (node, st, c) { c(elt, st); } }; -base.MethodDefinition = base.Property = function (node, st, c) { +base.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) { if (node.computed) { c(node.key, st, "Expression"); } - c(node.value, st, "Expression"); + if (node.value) { c(node.value, st, "Expression"); } }; export { ancestor, base, findNodeAfter, findNodeAround, findNodeAt, findNodeBefore, full, fullAncestor, make, recursive, simple }; diff --git a/deps/acorn/acorn-walk/dist/walk.mjs.map b/deps/acorn/acorn-walk/dist/walk.mjs.map deleted file mode 100644 index 2a94219c3bada4..00000000000000 --- a/deps/acorn/acorn-walk/dist/walk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"walk.mjs","sources":["../src/index.js"],"sourcesContent":["// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nexport function simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n baseVisitor[type](node, st, c)\n if (found) found(node, st)\n })(node, state, override)\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nexport function ancestor(node, visitors, baseVisitor, state) {\n let ancestors = []\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (found) found(node, st || ancestors, ancestors)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that's\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nexport function recursive(node, state, funcs, baseVisitor, override) {\n let visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c)\n })(node, state, override)\n}\n\nfunction makeTest(test) {\n if (typeof test === \"string\")\n return type => type === test\n else if (!test)\n return () => true\n else\n return test\n}\n\nclass Found {\n constructor(node, state) { this.node = node; this.state = state }\n}\n\n// A full walk triggers the callback on each node\nexport function full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st, type)\n })(node, state, override)\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nexport function fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n let ancestors = []\n ;(function c(node, st, override) {\n let type = override || node.type\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st || ancestors, ancestors, type)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn't find a matching node.\nexport function findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n test = makeTest(test)\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n baseVisitor[type](node, st, c)\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nexport function findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if (node.start > pos || node.end < pos) return\n baseVisitor[type](node, st, c)\n if (test(type, node)) throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nexport function findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n if (node.end < pos) return\n let type = override || node.type\n if (node.start >= pos && test(type, node)) throw new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nexport function findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n let max\n ;(function c(node, st, override) {\n if (node.start > pos) return\n let type = override || node.type\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n max = new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n return max\n}\n\n// Fallback to an Object.create polyfill for older environments.\nconst create = Object.create || function(proto) {\n function Ctor() {}\n Ctor.prototype = proto\n return new Ctor\n}\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nexport function make(funcs, baseVisitor) {\n let visitor = create(baseVisitor || base)\n for (let type in funcs) visitor[type] = funcs[type]\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st) }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nexport const base = {}\n\nbase.Program = base.BlockStatement = (node, st, c) => {\n for (let stmt of node.body)\n c(stmt, st, \"Statement\")\n}\nbase.Statement = skipThrough\nbase.EmptyStatement = ignore\nbase.ExpressionStatement = base.ParenthesizedExpression =\n (node, st, c) => c(node.expression, st, \"Expression\")\nbase.IfStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Statement\")\n if (node.alternate) c(node.alternate, st, \"Statement\")\n}\nbase.LabeledStatement = (node, st, c) => c(node.body, st, \"Statement\")\nbase.BreakStatement = base.ContinueStatement = ignore\nbase.WithStatement = (node, st, c) => {\n c(node.object, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.SwitchStatement = (node, st, c) => {\n c(node.discriminant, st, \"Expression\")\n for (let cs of node.cases) {\n if (cs.test) c(cs.test, st, \"Expression\")\n for (let cons of cs.consequent)\n c(cons, st, \"Statement\")\n }\n}\nbase.SwitchCase = (node, st, c) => {\n if (node.test) c(node.test, st, \"Expression\")\n for (let cons of node.consequent)\n c(cons, st, \"Statement\")\n}\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = (node, st, c) => {\n if (node.argument) c(node.argument, st, \"Expression\")\n}\nbase.ThrowStatement = base.SpreadElement =\n (node, st, c) => c(node.argument, st, \"Expression\")\nbase.TryStatement = (node, st, c) => {\n c(node.block, st, \"Statement\")\n if (node.handler) c(node.handler, st)\n if (node.finalizer) c(node.finalizer, st, \"Statement\")\n}\nbase.CatchClause = (node, st, c) => {\n if (node.param) c(node.param, st, \"Pattern\")\n c(node.body, st, \"Statement\")\n}\nbase.WhileStatement = base.DoWhileStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForStatement = (node, st, c) => {\n if (node.init) c(node.init, st, \"ForInit\")\n if (node.test) c(node.test, st, \"Expression\")\n if (node.update) c(node.update, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInStatement = base.ForOfStatement = (node, st, c) => {\n c(node.left, st, \"ForInit\")\n c(node.right, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInit = (node, st, c) => {\n if (node.type === \"VariableDeclaration\") c(node, st)\n else c(node, st, \"Expression\")\n}\nbase.DebuggerStatement = ignore\n\nbase.FunctionDeclaration = (node, st, c) => c(node, st, \"Function\")\nbase.VariableDeclaration = (node, st, c) => {\n for (let decl of node.declarations)\n c(decl, st)\n}\nbase.VariableDeclarator = (node, st, c) => {\n c(node.id, st, \"Pattern\")\n if (node.init) c(node.init, st, \"Expression\")\n}\n\nbase.Function = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n for (let param of node.params)\n c(param, st, \"Pattern\")\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\")\n}\n\nbase.Pattern = (node, st, c) => {\n if (node.type === \"Identifier\")\n c(node, st, \"VariablePattern\")\n else if (node.type === \"MemberExpression\")\n c(node, st, \"MemberPattern\")\n else\n c(node, st)\n}\nbase.VariablePattern = ignore\nbase.MemberPattern = skipThrough\nbase.RestElement = (node, st, c) => c(node.argument, st, \"Pattern\")\nbase.ArrayPattern = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Pattern\")\n }\n}\nbase.ObjectPattern = (node, st, c) => {\n for (let prop of node.properties) {\n if (prop.type === \"Property\") {\n if (prop.computed) c(prop.key, st, \"Expression\")\n c(prop.value, st, \"Pattern\")\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\")\n }\n }\n}\n\nbase.Expression = skipThrough\nbase.ThisExpression = base.Super = base.MetaProperty = ignore\nbase.ArrayExpression = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Expression\")\n }\n}\nbase.ObjectExpression = (node, st, c) => {\n for (let prop of node.properties)\n c(prop, st)\n}\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration\nbase.SequenceExpression = (node, st, c) => {\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateLiteral = (node, st, c) => {\n for (let quasi of node.quasis)\n c(quasi, st)\n\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateElement = ignore\nbase.UnaryExpression = base.UpdateExpression = (node, st, c) => {\n c(node.argument, st, \"Expression\")\n}\nbase.BinaryExpression = base.LogicalExpression = (node, st, c) => {\n c(node.left, st, \"Expression\")\n c(node.right, st, \"Expression\")\n}\nbase.AssignmentExpression = base.AssignmentPattern = (node, st, c) => {\n c(node.left, st, \"Pattern\")\n c(node.right, st, \"Expression\")\n}\nbase.ConditionalExpression = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Expression\")\n c(node.alternate, st, \"Expression\")\n}\nbase.NewExpression = base.CallExpression = (node, st, c) => {\n c(node.callee, st, \"Expression\")\n if (node.arguments)\n for (let arg of node.arguments)\n c(arg, st, \"Expression\")\n}\nbase.MemberExpression = (node, st, c) => {\n c(node.object, st, \"Expression\")\n if (node.computed) c(node.property, st, \"Expression\")\n}\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = (node, st, c) => {\n if (node.declaration)\n c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\")\n if (node.source) c(node.source, st, \"Expression\")\n}\nbase.ExportAllDeclaration = (node, st, c) => {\n c(node.source, st, \"Expression\")\n}\nbase.ImportDeclaration = (node, st, c) => {\n for (let spec of node.specifiers)\n c(spec, st)\n c(node.source, st, \"Expression\")\n}\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore\n\nbase.TaggedTemplateExpression = (node, st, c) => {\n c(node.tag, st, \"Expression\")\n c(node.quasi, st, \"Expression\")\n}\nbase.ClassDeclaration = base.ClassExpression = (node, st, c) => c(node, st, \"Class\")\nbase.Class = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n if (node.superClass) c(node.superClass, st, \"Expression\")\n c(node.body, st)\n}\nbase.ClassBody = (node, st, c) => {\n for (let elt of node.body)\n c(elt, st)\n}\nbase.MethodDefinition = base.Property = (node, st, c) => {\n if (node.computed) c(node.key, st, \"Expression\")\n c(node.value, st, \"Expression\")\n}\n"],"names":["let","const"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;AAkBA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACnE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxD,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;;AAKD,AAAO,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC3DA,IAAI,SAAS,GAAG,GAAE;EAClB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxDA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAC,EAAA;IAClD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;;;AAOD,AAAO,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;EACnEA,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS,CAAC,GAAG,WAAW,CACxE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE;EACtB,IAAI,OAAO,IAAI,KAAK,QAAQ;IAC1B,EAAA,OAAO,UAAA,IAAI,EAAC,SAAG,IAAI,KAAK,IAAI,GAAA,EAAA;OACzB,IAAI,CAAC,IAAI;IACZ,EAAA,OAAO,YAAG,SAAG,IAAI,GAAA,EAAA;;IAEjB,EAAA,OAAO,IAAI,EAAA;CACd;;AAED,IAAM,KAAK,GAAC,cACC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAK,EAAE,CAAA;;;AAInE,AAAO,SAAS,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACjE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,EAAA;GACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;AAID,AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC/D,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,SAAS,GAAG,EAAE,CACjB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChCA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,EAAA;IAC/D,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;AAKD,AAAO,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACrE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;WACpC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,EAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC,EAAA;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;WACrC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;UACjC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAClB,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAC5B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;;AAID,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC9C,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;MAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAChD,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACjE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC1BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;MACpE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;KAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,GAAG,CACN,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;IAC5BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;MAC1E,EAAA,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;IAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;EACf,OAAO,GAAG;CACX;;;AAGDC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,KAAK,EAAE;EAC9C,SAAS,IAAI,GAAG,EAAE;EAClB,IAAI,CAAC,SAAS,GAAG,MAAK;EACtB,OAAO,IAAI,IAAI;EAChB;;;;AAID,AAAO,SAAS,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;EACvCD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,EAAC;EACzC,KAAKA,IAAI,IAAI,IAAI,KAAK,EAAE,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC,EAAA;EACnD,OAAO,OAAO;CACf;;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAE;AACjD,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;;;;AAIlC,AAAOC,IAAM,IAAI,GAAG,GAAE;;AAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjD,KAAa,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAArB;IAAAD,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,SAAS,GAAG,YAAW;AAC5B,IAAI,CAAC,cAAc,GAAG,OAAM;AAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;EACrD,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACvD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,EAAC;EACnC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAA;AACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAM;AACrD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAC;EACtC,KAAW,kBAAI,IAAI,CAAC,KAAK,yBAAA,EAAE;IAAtBA,IAAI,EAAE;;IACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;IACzC,KAAa,sBAAI,EAAE,CAAC,UAAU,+BAAA;MAAzB;MAAAA,IAAI,IAAI;;MACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;KAAA;GAC3B;EACF;AACD,IAAI,CAAC,UAAU,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjF,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;EACtC,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACrD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAC,EAAA;EACrC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACjD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;OAC/C,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC/B;AACD,IAAI,CAAC,iBAAiB,GAAG,OAAM;;AAE/B,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,IAAA;AACnE,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvC,KAAa,kBAAI,IAAI,CAAC,YAAY,yBAAA;IAA7B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC;EACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC9C;;AAED,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;GAAA;EACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,WAAW,EAAC;EAC/D;;AAED,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;IAC5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAA;OAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;IACvC,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAC,EAAA;;IAE5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;EACd;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,aAAa,GAAG,YAAW;AAChC,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,IAAA;AACnE,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;GAC/B;EACF;AACD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA,EAAE;IAA7BA,IAAI,IAAI;;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;MAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;KAC7B,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;MACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAC;KAChC;GACF;EACF;;AAED,IAAI,CAAC,UAAU,GAAG,YAAW;AAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,OAAM;AAC7D,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;GAClC;EACF;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAmB;AACjF,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,KAAa,kBAAI,IAAI,CAAC,WAAW,yBAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAC;GAAA;;EAEd,KAAa,sBAAI,IAAI,CAAC,WAAW,+BAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3D,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC;EACnC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,qBAAqB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC;AACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvD,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,SAAS;IAChB,EAAA,KAAY,kBAAI,IAAI,CAAC,SAAS,yBAAA;MAAzB;QAAAA,IAAI,GAAG;;QACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;OAAA,EAAA;EAC7B;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1E,IAAI,IAAI,CAAC,WAAW;IAClB,EAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,YAAY,EAAC,EAAA;EACrH,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAClD;AACD,IAAI,CAAC,oBAAoB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACrC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACb,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,OAAM;;AAE5H,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;EAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAA;AACpF,IAAI,CAAC,KAAK,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzB,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACzD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAC;EACjB;AACD,IAAI,CAAC,SAAS,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7B,KAAY,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAApB;IAAAA,IAAI,GAAG;;IACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAC;GAAA;EACb;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;CAChC;;;;"} \ No newline at end of file diff --git a/deps/acorn/acorn-walk/package.json b/deps/acorn/acorn-walk/package.json index ccd942df896c23..118bb0be2c72f5 100644 --- a/deps/acorn/acorn-walk/package.json +++ b/deps/acorn/acorn-walk/package.json @@ -6,10 +6,17 @@ "types": "dist/walk.d.ts", "module": "dist/walk.mjs", "exports": { - "import": "./dist/walk.mjs", - "require": "./dist/walk.js" + ".": [ + { + "import": "./dist/walk.mjs", + "require": "./dist/walk.js", + "default": "./dist/walk.js" + }, + "./dist/walk.js" + ], + "./package.json": "./package.json" }, - "version": "8.0.0", + "version": "8.1.0", "engines": {"node": ">=0.4.0"}, "maintainers": [ { diff --git a/deps/acorn/acorn/CHANGELOG.md b/deps/acorn/acorn/CHANGELOG.md index 6489d0c397b379..d69ad881253118 100644 --- a/deps/acorn/acorn/CHANGELOG.md +++ b/deps/acorn/acorn/CHANGELOG.md @@ -1,3 +1,79 @@ +## 8.4.1 (2021-06-24) + +### Bug fixes + +Fix a bug where `allowAwaitOutsideFunction` would allow `await` in class field initializers, and setting `ecmaVersion` to 13 or higher would allow top-level await in non-module sources. + +## 8.4.0 (2021-06-11) + +### New features + +A new option, `allowSuperOutsideMethod`, can be used to suppress the error when `super` is used in the wrong context. + +## 8.3.0 (2021-05-31) + +### New features + +Default `allowAwaitOutsideFunction` to true for ECMAScript 2022 an higher. + +Add support for the `p` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag. + +## 8.2.4 (2021-05-04) + +### Bug fixes + +Fix spec conformity in corner case 'for await (async of ...)'. + +## 8.2.3 (2021-05-04) + +### Bug fixes + +Fix an issue where the library couldn't parse 'for (async of ...)'. + +Fix a bug in UTF-16 decoding that would read characters incorrectly in some circumstances. + +## 8.2.2 (2021-04-29) + +### Bug fixes + +Fix a bug where a class field initialized to an async arrow function wouldn't allow await inside it. Same issue existed for generator arrow functions with yield. + +## 8.2.1 (2021-04-24) + +### Bug fixes + +Fix a regression introduced in 8.2.0 where static or async class methods with keyword names fail to parse. + +## 8.2.0 (2021-04-24) + +### New features + +Add support for ES2022 class fields and private methods. + +## 8.1.1 (2021-04-12) + +### Various + +Stop shipping source maps in the NPM package. + +## 8.1.0 (2021-03-09) + +### Bug fixes + +Fix a spurious error in nested destructuring arrays. + +### New features + +Expose `allowAwaitOutsideFunction` in CLI interface. + +Make `allowImportExportAnywhere` also apply to `import.meta`. + +## 8.0.5 (2021-01-25) + +### Bug fixes + +Adjust package.json to work with Node 12.16.0 and 13.0-13.6. + ## 8.0.4 (2020-10-05) ### Bug fixes diff --git a/deps/acorn/acorn/LICENSE b/deps/acorn/acorn/LICENSE index cc5272c966db45..d6be6db2cfff57 100644 --- a/deps/acorn/acorn/LICENSE +++ b/deps/acorn/acorn/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (C) 2012-2018 by various contributors (see AUTHORS) +Copyright (C) 2012-2020 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/deps/acorn/acorn/README.md b/deps/acorn/acorn/README.md index 029086785fa256..f27a99444b6f3f 100644 --- a/deps/acorn/acorn/README.md +++ b/deps/acorn/acorn/README.md @@ -54,9 +54,10 @@ required): - **ecmaVersion**: Indicates the ECMAScript version to parse. Must be either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019), - 11 (2020), or 12 (2021, partial support), or `"latest"` (the latest - the library supports). This influences support for strict mode, the - set of reserved words, and support for new syntax features. + 11 (2020), 12 (2021, partial support), 13 (2022, partial support) + or `"latest"` (the latest the library supports). This influences + support for strict mode, the set of reserved words, and support + for new syntax features. **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being implemented by Acorn. Other proposed new features must be @@ -90,13 +91,19 @@ required): - **allowImportExportEverywhere**: By default, `import` and `export` declarations can only appear at a program's top level. Setting this - option to `true` allows them anywhere where a statement is allowed. - -- **allowAwaitOutsideFunction**: By default, `await` expressions can - only appear inside `async` functions. Setting this option to + option to `true` allows them anywhere where a statement is allowed, + and also allows `import.meta` expressions to appear in scripts + (when `sourceType` is not `"module"`). + +- **allowAwaitOutsideFunction**: If `false`, `await` expressions can + only appear inside `async` functions. Defaults to `true` for + `ecmaVersion` 2022 and later, `false` for lower versions. Setting this option to `true` allows to have top-level `await` expressions. They are still not allowed in non-`async` functions, though. +- **allowSuperOutsideMethod**: By default, `super` outside a method + raises an error. Set this to `true` to accept such code. + - **allowHashBang**: When this is enabled (off by default), if the code starts with the characters `#!` (as in a shellscript), the first line will be treated as a comment. @@ -250,6 +257,9 @@ options: - `--allow-hash-bang`: If the code starts with the characters #! (as in a shellscript), the first line will be treated as a comment. +- `--allow-await-outside-function`: Allows top-level `await` expressions. + See the `allowAwaitOutsideFunction` option for more information. + - `--compact`: No whitespace is used in the AST output. - `--silent`: Do not output the AST, just return the exit status. diff --git a/deps/acorn/acorn/dist/acorn.d.ts b/deps/acorn/acorn/dist/acorn.d.ts index f788637e88eb6e..8e8fbbcb426c3c 100644 --- a/deps/acorn/acorn/dist/acorn.d.ts +++ b/deps/acorn/acorn/dist/acorn.d.ts @@ -12,7 +12,7 @@ declare namespace acorn { } interface Options { - ecmaVersion: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 'latest' + ecmaVersion: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 'latest' sourceType?: 'script' | 'module' onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void @@ -20,6 +20,7 @@ declare namespace acorn { allowReturnOutsideFunction?: boolean allowImportExportEverywhere?: boolean allowAwaitOutsideFunction?: boolean + allowSuperOutsideMethod?: boolean allowHashBang?: boolean locations?: boolean onToken?: ((token: Token) => any) | Token[] @@ -88,6 +89,7 @@ declare namespace acorn { regexp: TokenType string: TokenType name: TokenType + privateId: TokenType eof: TokenType bracketL: TokenType bracketR: TokenType diff --git a/deps/acorn/acorn/dist/acorn.js b/deps/acorn/acorn/dist/acorn.js index d9b5920e43acfe..af24e36cf16d2e 100644 --- a/deps/acorn/acorn/dist/acorn.js +++ b/deps/acorn/acorn/dist/acorn.js @@ -152,6 +152,7 @@ regexp: new TokenType("regexp", startsExpr), string: new TokenType("string", startsExpr), name: new TokenType("name", startsExpr), + privateId: new TokenType("privateId", startsExpr), eof: new TokenType("eof"), // Punctuation token types. @@ -320,9 +321,10 @@ var defaultOptions = { // `ecmaVersion` indicates the ECMAScript version to parse. Must be // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 - // (2019), 11 (2020), 12 (2021), or `"latest"` (the latest version - // the library supports). This influences support for strict mode, - // the set of reserved words, and support for new syntax features. + // (2019), 11 (2020), 12 (2021), 13 (2022), or `"latest"` (the + // latest version the library supports). This influences support + // for strict mode, the set of reserved words, and support for + // new syntax features. ecmaVersion: null, // `sourceType` indicates the mode the code should be parsed in. // Can be either `"script"` or `"module"`. This influences global @@ -346,11 +348,16 @@ // error. allowReturnOutsideFunction: false, // When enabled, import/export statements are not constrained to - // appearing at the top of the program. + // appearing at the top of the program, and an import.meta expression + // in a script isn't considered an error. allowImportExportEverywhere: false, + // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022. // When enabled, await identifiers are allowed to appear at the top-level scope, // but they are still not allowed in non-async functions. - allowAwaitOutsideFunction: false, + allowAwaitOutsideFunction: null, + // When enabled, super identifiers are not constrained to + // appearing in methods and do not raise an error when they appear elsewhere. + allowSuperOutsideMethod: null, // When enabled, hashbang directive in the beginning of file // is allowed and treated as a line comment. allowHashBang: false, @@ -537,13 +544,14 @@ // Used to signify the start of a potential arrow function this.potentialArrowAt = -1; + this.potentialArrowInForAwait = false; // Positions to delayed-check that yield/await does not exist in default parameters. this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; // Labels in scope. this.labels = []; // Thus-far undefined exports. - this.undefinedExports = {}; + this.undefinedExports = Object.create(null); // If enabled, skip leading hashbang line. if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") @@ -555,9 +563,14 @@ // For RegExp validation this.regexpState = null; + + // The stack of private names. + // Each element has two properties: 'declared' and 'used'. + // When it exited from the outermost class definition, all used private names must be declared. + this.privateNameStack = []; }; - var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } }; + var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } }; Parser.prototype.parse = function parse () { var node = this.options.program || this.startNode(); @@ -566,12 +579,30 @@ }; prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; - prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }; - prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }; - prototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }; + prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.canAwait.get = function () { + for (var i = this.scopeStack.length - 1; i >= 0; i--) { + var scope = this.scopeStack[i]; + if (scope.inClassFieldInit) { return false } + if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } + } + return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction + }; + prototypeAccessors.allowSuper.get = function () { + var ref = this.currentThisScope(); + var flags = ref.flags; + var inClassFieldInit = ref.inClassFieldInit; + return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod + }; prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; - prototypeAccessors.inNonArrowFunction.get = function () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }; + prototypeAccessors.inNonArrowFunction.get = function () { + var ref = this.currentThisScope(); + var flags = ref.flags; + var inClassFieldInit = ref.inClassFieldInit; + return (flags & SCOPE_FUNCTION) > 0 || inClassFieldInit + }; Parser.extend = function extend () { var plugins = [], len = arguments.length; @@ -757,7 +788,7 @@ // to its body instead of creating a new node. pp$1.parseTopLevel = function(node) { - var exports = {}; + var exports = Object.create(null); if (!node.body) { node.body = []; } while (this.type !== types.eof) { var stmt = this.parseStatement(null, true, exports); @@ -787,13 +818,14 @@ // Statement) is allowed here. If context is not empty then only a Statement // is allowed. However, `let [` is an explicit negative lookahead for // ExpressionStatement, so special-case it first. - if (nextCh === 91) { return true } // '[' + if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral if (context) { return false } if (nextCh === 123) { return true } // '{' if (isIdentifierStart(nextCh, true)) { var pos = next + 1; - while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; } + while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; } + if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } var ident = this.input.slice(next, pos); if (!keywordRelationalOperator.test(ident)) { return true } } @@ -809,10 +841,11 @@ skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length; + var next = this.pos + skip[0].length, after; return !lineBreak.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && - (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8))) + (next + 8 === this.input.length || + !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00)) }; // Parse a single statement. @@ -952,7 +985,7 @@ pp$1.parseForStatement = function(node) { this.next(); - var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1; + var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1; this.labels.push(loopLabel); this.enterScope(0); this.expect(types.parenL); @@ -978,7 +1011,7 @@ return this.parseFor(node, init$1) } var refDestructuringErrors = new DestructuringErrors; - var init = this.parseExpression(true, refDestructuringErrors); + var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors); if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) { if (this.options.ecmaVersion >= 9) { if (this.type === types._in) { @@ -1324,6 +1357,7 @@ this.parseClassId(node, isStatement); this.parseClassSuper(node); + var privateNameMap = this.enterClassBody(); var classBody = this.startNode(); var hadConstructor = false; classBody.body = []; @@ -1335,77 +1369,154 @@ if (element.type === "MethodDefinition" && element.kind === "constructor") { if (hadConstructor) { this.raise(element.start, "Duplicate constructor in the same class"); } hadConstructor = true; + } else if (element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) { + this.raiseRecoverable(element.key.start, ("Identifier '#" + (element.key.name) + "' has already been declared")); } } } this.strict = oldStrict; this.next(); node.body = this.finishNode(classBody, "ClassBody"); + this.exitClassBody(); return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") }; pp$1.parseClassElement = function(constructorAllowsSuper) { - var this$1 = this; - if (this.eat(types.semi)) { return null } - var method = this.startNode(); - var tryContextual = function (k, noLineBreak) { - if ( noLineBreak === void 0 ) noLineBreak = false; - - var start = this$1.start, startLoc = this$1.startLoc; - if (!this$1.eatContextual(k)) { return false } - if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true } - if (method.key) { this$1.unexpected(); } - method.computed = false; - method.key = this$1.startNodeAt(start, startLoc); - method.key.name = k; - this$1.finishNode(method.key, "Identifier"); - return false - }; - - method.kind = "method"; - method.static = tryContextual("static"); - var isGenerator = this.eat(types.star); + var ecmaVersion = this.options.ecmaVersion; + var node = this.startNode(); + var keyName = ""; + var isGenerator = false; var isAsync = false; - if (!isGenerator) { - if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) { + var kind = "method"; + + // Parse modifiers + node.static = false; + if (this.eatContextual("static")) { + if (this.isClassElementNameStart() || this.type === types.star) { + node.static = true; + } else { + keyName = "static"; + } + } + if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) { + if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) { isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); - } else if (tryContextual("get")) { - method.kind = "get"; - } else if (tryContextual("set")) { - method.kind = "set"; + } else { + keyName = "async"; + } + } + if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) { + isGenerator = true; + } + if (!keyName && !isAsync && !isGenerator) { + var lastValue = this.value; + if (this.eatContextual("get") || this.eatContextual("set")) { + if (this.isClassElementNameStart()) { + kind = lastValue; + } else { + keyName = lastValue; + } } } - if (!method.key) { this.parsePropertyName(method); } + + // Parse element name + if (keyName) { + // 'async', 'get', 'set', or 'static' were not a keyword contextually. + // The last token is any of those. Make it the element name. + node.computed = false; + node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc); + node.key.name = keyName; + this.finishNode(node.key, "Identifier"); + } else { + this.parseClassElementName(node); + } + + // Parse element value + if (ecmaVersion < 13 || this.type === types.parenL || kind !== "method" || isGenerator || isAsync) { + var isConstructor = !node.static && checkKeyName(node, "constructor"); + var allowsDirectSuper = isConstructor && constructorAllowsSuper; + // Couldn't move this check into the 'parseClassMethod' method for backward compatibility. + if (isConstructor && kind !== "method") { this.raise(node.key.start, "Constructor can't have get/set modifier"); } + node.kind = isConstructor ? "constructor" : kind; + this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper); + } else { + this.parseClassField(node); + } + + return node + }; + + pp$1.isClassElementNameStart = function() { + return ( + this.type === types.name || + this.type === types.privateId || + this.type === types.num || + this.type === types.string || + this.type === types.bracketL || + this.type.keyword + ) + }; + + pp$1.parseClassElementName = function(element) { + if (this.type === types.privateId) { + if (this.value === "constructor") { + this.raise(this.start, "Classes can't have an element named '#constructor'"); + } + element.computed = false; + element.key = this.parsePrivateIdent(); + } else { + this.parsePropertyName(element); + } + }; + + pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { + // Check key and flags var key = method.key; - var allowsDirectSuper = false; - if (!method.computed && !method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "Literal" && key.value === "constructor")) { - if (method.kind !== "method") { this.raise(key.start, "Constructor can't have get/set modifier"); } + if (method.kind === "constructor") { if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } - method.kind = "constructor"; - allowsDirectSuper = constructorAllowsSuper; - } else if (method.static && key.type === "Identifier" && key.name === "prototype") { + } else if (method.static && checkKeyName(method, "prototype")) { this.raise(key.start, "Classes may not have a static property named prototype"); } - this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper); - if (method.kind === "get" && method.value.params.length !== 0) - { this.raiseRecoverable(method.value.start, "getter should have no params"); } - if (method.kind === "set" && method.value.params.length !== 1) - { this.raiseRecoverable(method.value.start, "setter should have exactly one param"); } - if (method.kind === "set" && method.value.params[0].type === "RestElement") - { this.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params"); } - return method - }; - pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { - method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); + // Parse value + var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); + + // Check value + if (method.kind === "get" && value.params.length !== 0) + { this.raiseRecoverable(value.start, "getter should have no params"); } + if (method.kind === "set" && value.params.length !== 1) + { this.raiseRecoverable(value.start, "setter should have exactly one param"); } + if (method.kind === "set" && value.params[0].type === "RestElement") + { this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); } + return this.finishNode(method, "MethodDefinition") }; + pp$1.parseClassField = function(field) { + if (checkKeyName(field, "constructor")) { + this.raise(field.key.start, "Classes can't have a field named 'constructor'"); + } else if (field.static && checkKeyName(field, "prototype")) { + this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); + } + + if (this.eat(types.eq)) { + // To raise SyntaxError if 'arguments' exists in the initializer. + var scope = this.currentThisScope(); + var inClassFieldInit = scope.inClassFieldInit; + scope.inClassFieldInit = true; + field.value = this.parseMaybeAssign(); + scope.inClassFieldInit = inClassFieldInit; + } else { + field.value = null; + } + this.semicolon(); + + return this.finishNode(field, "PropertyDefinition") + }; + pp$1.parseClassId = function(node, isStatement) { if (this.type === types.name) { node.id = this.parseIdent(); @@ -1422,6 +1533,65 @@ node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null; }; + pp$1.enterClassBody = function() { + var element = {declared: Object.create(null), used: []}; + this.privateNameStack.push(element); + return element.declared + }; + + pp$1.exitClassBody = function() { + var ref = this.privateNameStack.pop(); + var declared = ref.declared; + var used = ref.used; + var len = this.privateNameStack.length; + 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 (parent) { + parent.used.push(id); + } else { + this.raiseRecoverable(id.start, ("Private field '#" + (id.name) + "' must be declared in an enclosing class")); + } + } + } + }; + + function isPrivateNameConflicted(privateNameMap, element) { + var name = element.key.name; + var curr = privateNameMap[name]; + + var next = "true"; + if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) { + next = (element.static ? "s" : "i") + element.kind; + } + + // `class { get #a(){}; static set #a(_){} }` is also conflict. + if ( + curr === "iget" && next === "iset" || + curr === "iset" && next === "iget" || + curr === "sget" && next === "sset" || + curr === "sset" && next === "sget" + ) { + privateNameMap[name] = "true"; + return false + } else if (!curr) { + privateNameMap[name] = next; + return false + } else { + return true + } + } + + function checkKeyName(node, name) { + var computed = node.computed; + var key = node.key; + return !computed && ( + key.type === "Identifier" && key.name === name || + key.type === "Literal" && key.value === name + ) + } + // Parses module export declaration. pp$1.parseExport = function(node, exports) { @@ -2040,13 +2210,13 @@ // and object pattern might appear (so it's possible to raise // delayed syntax error at correct position). - pp$3.parseExpression = function(noIn, refDestructuringErrors) { + pp$3.parseExpression = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeAssign(noIn, refDestructuringErrors); + var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); if (this.type === types.comma) { var node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; - while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); } + while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } return this.finishNode(node, "SequenceExpression") } return expr @@ -2055,9 +2225,9 @@ // Parse an assignment expression. This includes applications of // operators like `+=`. - pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) { + pp$3.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { if (this.isContextual("yield")) { - if (this.inGenerator) { return this.parseYield(noIn) } + if (this.inGenerator) { return this.parseYield(forInit) } // The tokenizer will assume an expression is allowed after // `yield`, but this isn't that kind of yield else { this.exprAllowed = false; } @@ -2074,9 +2244,11 @@ } var startPos = this.start, startLoc = this.startLoc; - if (this.type === types.parenL || this.type === types.name) - { this.potentialArrowAt = this.start; } - var left = this.parseMaybeConditional(noIn, refDestructuringErrors); + if (this.type === types.parenL || this.type === types.name) { + this.potentialArrowAt = this.start; + this.potentialArrowInForAwait = forInit === "await"; + } + var left = this.parseMaybeConditional(forInit, refDestructuringErrors); if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } if (this.type.isAssign) { var node = this.startNodeAt(startPos, startLoc); @@ -2094,7 +2266,7 @@ { this.checkLValSimple(left); } node.left = left; this.next(); - node.right = this.parseMaybeAssign(noIn); + node.right = this.parseMaybeAssign(forInit); return this.finishNode(node, "AssignmentExpression") } else { if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } @@ -2106,16 +2278,16 @@ // Parse a ternary conditional (`?:`) operator. - pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) { + pp$3.parseMaybeConditional = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprOps(noIn, refDestructuringErrors); + var expr = this.parseExprOps(forInit, refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } if (this.eat(types.question)) { var node = this.startNodeAt(startPos, startLoc); node.test = expr; node.consequent = this.parseMaybeAssign(); this.expect(types.colon); - node.alternate = this.parseMaybeAssign(noIn); + node.alternate = this.parseMaybeAssign(forInit); return this.finishNode(node, "ConditionalExpression") } return expr @@ -2123,11 +2295,11 @@ // Start the precedence parser. - pp$3.parseExprOps = function(noIn, refDestructuringErrors) { + pp$3.parseExprOps = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeUnary(refDestructuringErrors, false); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn) + return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit) }; // Parse binary operators with the operator precedence parsing @@ -2136,9 +2308,9 @@ // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. - pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) { + pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { var prec = this.type.binop; - if (prec != null && (!noIn || this.type !== types._in)) { + if (prec != null && (!forInit || this.type !== types._in)) { if (prec > minPrec) { var logical = this.type === types.logicalOR || this.type === types.logicalAND; var coalesce = this.type === types.coalesce; @@ -2150,12 +2322,12 @@ var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; - var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn); + var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, forInit); var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); } - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) + return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit) } } return left @@ -2171,9 +2343,9 @@ // Parse unary operators, both prefix and postfix. - pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) { + pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec) { var startPos = this.start, startLoc = this.startLoc, expr; - if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) { + if (this.isContextual("await") && this.canAwait) { expr = this.parseAwait(); sawUnary = true; } else if (this.type.prefix) { @@ -2181,12 +2353,14 @@ node.operator = this.value; node.prefix = true; this.next(); - node.argument = this.parseMaybeUnary(null, true); + node.argument = this.parseMaybeUnary(null, true, update); this.checkExpressionErrors(refDestructuringErrors, true); if (update) { this.checkLValSimple(node.argument); } else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } + else if (node.operator === "delete" && isPrivateFieldAccess(node.argument)) + { this.raiseRecoverable(node.start, "Private fields can not be deleted"); } else { sawUnary = true; } expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); } else { @@ -2203,12 +2377,23 @@ } } - if (!sawUnary && this.eat(types.starstar)) - { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) } - else - { return expr } + if (!incDec && this.eat(types.starstar)) { + if (sawUnary) + { this.unexpected(this.lastTokStart); } + else + { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) } + } else { + return expr + } }; + function isPrivateFieldAccess(node) { + return ( + node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || + node.type === "ChainExpression" && isPrivateFieldAccess(node.expression) + ) + } + // Parse call, dot, and `[]`-subscript expressions. pp$3.parseExprSubscripts = function(refDestructuringErrors) { @@ -2220,6 +2405,7 @@ if (refDestructuringErrors && result.type === "MemberExpression") { if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } + if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; } } return result }; @@ -2256,9 +2442,15 @@ if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { var node = this.startNodeAt(startPos, startLoc); node.object = base; - node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never"); + if (computed) { + node.property = this.parseExpression(); + this.expect(types.bracketR); + } else if (this.type === types.privateId && base.type !== "Super") { + node.property = this.parsePrivateIdent(); + } else { + node.property = this.parseIdent(this.options.allowReserved !== "never"); + } node.computed = !!computed; - if (computed) { this.expect(types.bracketR); } if (optionalSupported) { node.optional = optional; } @@ -2344,7 +2536,8 @@ if (canBeArrow && !this.canInsertSemicolon()) { if (this.eat(types.arrow)) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc) { + if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc && + (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { id = this.parseIdent(false); if (this.canInsertSemicolon() || !this.eat(types.arrow)) { this.unexpected(); } @@ -2462,7 +2655,7 @@ { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } if (containsEsc) { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } - if (this.options.sourceType !== "module") + if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } return this.finishNode(node, "MetaProperty") @@ -2883,7 +3076,7 @@ // or "arguments" and duplicate parameters. pp$3.checkParams = function(node, allowDuplicates) { - var nameHash = {}; + var nameHash = Object.create(null); for (var i = 0, list = node.params; i < list.length; i += 1) { var param = list[i]; @@ -2930,6 +3123,8 @@ { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } if (this.inAsync && name === "await") { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } + if (this.currentThisScope().inClassFieldInit && name === "arguments") + { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); } if (this.keywords.test(name)) { this.raise(start, ("Unexpected keyword '" + name + "'")); } if (this.options.ecmaVersion < 6 && @@ -2974,9 +3169,29 @@ return node }; + pp$3.parsePrivateIdent = function() { + var node = this.startNode(); + if (this.type === types.privateId) { + node.name = this.value; + } else { + this.unexpected(); + } + this.next(); + this.finishNode(node, "PrivateIdentifier"); + + // For validating existence + if (this.privateNameStack.length === 0) { + this.raise(node.start, ("Private field '#" + (node.name) + "' must be declared in an enclosing class")); + } else { + this.privateNameStack[this.privateNameStack.length - 1].used.push(node); + } + + return node + }; + // Parses yield expression inside generator. - pp$3.parseYield = function(noIn) { + pp$3.parseYield = function(forInit) { if (!this.yieldPos) { this.yieldPos = this.start; } var node = this.startNode(); @@ -2986,7 +3201,7 @@ node.argument = null; } else { node.delegate = this.eat(types.star); - node.argument = this.parseMaybeAssign(noIn); + node.argument = this.parseMaybeAssign(forInit); } return this.finishNode(node, "YieldExpression") }; @@ -3034,6 +3249,8 @@ this.lexical = []; // A list of lexically-declared FunctionDeclaration names in the current lexical scope this.functions = []; + // A switch to disallow the identifier reference 'arguments' + this.inClassFieldInit = false; }; // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. @@ -3365,7 +3582,7 @@ var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; - this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : ""); + 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.source = ""; this.flags = ""; @@ -4510,9 +4727,9 @@ pp$9.fullCharCodeAtPos = function() { var code = this.input.charCodeAt(this.pos); - if (code <= 0xd7ff || code >= 0xe000) { return code } + if (code <= 0xd7ff || code >= 0xdc00) { return code } var next = this.input.charCodeAt(this.pos + 1); - return (code << 10) + next - 0x35fdc00 + return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00 }; pp$9.skipBlockComment = function() { @@ -4731,6 +4948,20 @@ return this.finishOp(types.question, 1) }; + pp$9.readToken_numberSign = function() { // '#' + var ecmaVersion = this.options.ecmaVersion; + var code = 35; // '#' + if (ecmaVersion >= 13) { + ++this.pos; + code = this.fullCharCodeAtPos(); + if (isIdentifierStart(code, true) || code === 92 /* '\' */) { + return this.finishToken(types.privateId, this.readWord1()) + } + } + + this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); + }; + pp$9.getTokenFromCode = function(code) { switch (code) { // The interpretation of a dot depends on whether it is followed @@ -4802,6 +5033,9 @@ case 126: // '~' return this.finishOp(types.prefix, 1) + + case 35: // '#' + return this.readToken_numberSign() } this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); @@ -5213,7 +5447,7 @@ // Acorn is a tiny, fast JavaScript parser written in JavaScript. - var version = "8.0.4"; + var version = "8.4.1"; Parser.acorn = { Parser: Parser, @@ -5289,4 +5523,3 @@ Object.defineProperty(exports, '__esModule', { value: true }); }))); -//# sourceMappingURL=acorn.js.map diff --git a/deps/acorn/acorn/dist/acorn.js.map b/deps/acorn/acorn/dist/acorn.js.map deleted file mode 100644 index 7781620d64592d..00000000000000 --- a/deps/acorn/acorn/dist/acorn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"acorn.js","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\nlet 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\"\nlet 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\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst 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]\n\n// eslint-disable-next-line comma-spacing\nconst 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]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n let pos = 0x10000\n for (let i = 0; i < set.length; i += 2) {\n pos += set[i]\n if (pos > code) return false\n pos += set[i + 1]\n if (pos >= code) return true\n }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n if (code < 65) return code === 36\n if (code < 91) return true\n if (code < 97) return code === 95\n if (code < 123) return true\n if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n if (astral === false) return false\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n if (code < 48) return code === 36\n if (code < 58) return true\n if (code < 65) return false\n if (code < 91) return true\n if (code < 97) return code === 95\n if (code < 123) return true\n if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n if (astral === false) return false\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n constructor(label, conf = {}) {\n this.label = label\n this.keyword = conf.keyword\n this.beforeExpr = !!conf.beforeExpr\n this.startsExpr = !!conf.startsExpr\n this.isLoop = !!conf.isLoop\n this.isAssign = !!conf.isAssign\n this.prefix = !!conf.prefix\n this.postfix = !!conf.postfix\n this.binop = conf.binop || null\n this.updateContext = null\n }\n}\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n options.keyword = name\n return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"/<=/>=\", 7),\n bitShift: binop(\"<>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace.js\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n constructor(line, col) {\n this.line = line\n this.column = col\n }\n\n offset(n) {\n return new Position(this.line, this.column + n)\n }\n}\n\nexport class SourceLocation {\n constructor(p, start, end) {\n this.start = start\n this.end = end\n if (p.sourceFile !== null) this.source = p.sourceFile\n }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n for (let line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur\n let match = lineBreakG.exec(input)\n if (match && match.index < offset) {\n ++line\n cur = match.index + match[0].length\n } else {\n return new Position(line, offset - cur)\n }\n }\n}\n","import {has, isArray} from \"./util.js\"\nimport {SourceLocation} from \"./locutil.js\"\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nexport const defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), or `\"latest\"` (the latest version\n // the library supports). This influences support for strict mode,\n // the set of reserved words, and support for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: false,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n}\n\n// Interpret and default an options object\n\nlet warnedAboutEcmaVersion = false\n\nexport function getOptions(opts) {\n let options = {}\n\n for (let opt in defaultOptions)\n options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\")\n }\n options.ecmaVersion = 11\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009\n }\n\n if (options.allowReserved == null)\n options.allowReserved = options.ecmaVersion < 5\n\n if (isArray(options.onToken)) {\n let tokens = options.onToken\n options.onToken = (token) => tokens.push(token)\n }\n if (isArray(options.onComment))\n options.onComment = pushComment(options, options.onComment)\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n let comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n }\n if (options.locations)\n comment.loc = new SourceLocation(this, startLoc, endLoc)\n if (options.ranges)\n comment.range = [start, end]\n array.push(comment)\n }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nexport const\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier.js\"\nimport {types as tt} from \"./tokentype.js\"\nimport {lineBreak} from \"./whitespace.js\"\nimport {getOptions} from \"./options.js\"\nimport {wordsRegexp} from \"./util.js\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags.js\"\n\nexport class Parser {\n constructor(options, input, startPos) {\n this.options = options = getOptions(options)\n this.sourceFile = options.sourceFile\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5])\n let reserved = \"\"\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]\n if (options.sourceType === \"module\") reserved += \" await\"\n }\n this.reservedWords = wordsRegexp(reserved)\n let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n this.reservedWordsStrict = wordsRegexp(reservedStrict)\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n this.input = String(input)\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n } else {\n this.pos = this.lineStart = 0\n this.curLine = 1\n }\n\n // Properties of the current token:\n // Its type\n this.type = tt.eof\n // For tokens that include more information than their type, the value\n this.value = null\n // Its start and end offset\n this.start = this.end = this.pos\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition()\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null\n this.lastTokStart = this.lastTokEnd = this.pos\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext()\n this.exprAllowed = true\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\"\n this.strict = this.inModule || this.strictDirective(this.pos)\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n // Labels in scope.\n this.labels = []\n // Thus-far undefined exports.\n this.undefinedExports = {}\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n this.skipLineComment(2)\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = []\n this.enterScope(SCOPE_TOP)\n\n // For RegExp validation\n this.regexpState = null\n }\n\n parse() {\n let node = this.options.program || this.startNode()\n this.nextToken()\n return this.parseTopLevel(node)\n }\n\n get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n get inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n static extend(...plugins) {\n let cls = this\n for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n return cls\n }\n\n static parse(input, options) {\n return new this(options, input).parse()\n }\n\n static parseExpressionAt(input, pos, options) {\n let parser = new this(options, input, pos)\n parser.nextToken()\n return parser.parseExpression()\n }\n\n static tokenizer(input, options) {\n return new this(options, input)\n }\n}\n","import {types as tt} from \"./tokentype.js\"\nimport {Parser} from \"./state.js\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace.js\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/\npp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start\n start += skipWhiteSpace.exec(this.input)[0].length\n let match = literal.exec(this.input.slice(start))\n if (!match) return false\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length\n let spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length\n let next = this.input.charAt(end)\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start\n start += skipWhiteSpace.exec(this.input)[0].length\n if (this.input[start] === \";\")\n start++\n }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n if (this.type === type) {\n this.next()\n return true\n } else {\n return false\n }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n if (!this.isContextual(name)) return false\n this.next()\n return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n return this.type === tt.eof ||\n this.type === tt.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n return true\n }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n if (!notNext)\n this.next()\n return true\n }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) return\n if (refDestructuringErrors.trailingComma > -1)\n this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) return false\n let {shorthandAssign, doubleProto} = refDestructuringErrors\n if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n if (shorthandAssign >= 0)\n this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n if (doubleProto >= 0)\n this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n if (this.awaitPos)\n this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n return this.isSimpleAssignTarget(expr.expression)\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype.js\"\nimport {Parser} from \"./state.js\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace.js\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier.js\"\nimport {has} from \"./util.js\"\nimport {DestructuringErrors} from \"./parseutil.js\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags.js\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n let exports = {}\n if (!node.body) node.body = []\n while (this.type !== tt.eof) {\n let stmt = this.parseStatement(null, true, exports)\n node.body.push(stmt)\n }\n if (this.inModule)\n for (let name of Object.keys(this.undefinedExports))\n this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n this.adaptDirectivePrologue(node.body)\n this.next()\n node.sourceType = this.options.sourceType\n return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n skipWhiteSpace.lastIndex = this.pos\n let skip = skipWhiteSpace.exec(this.input)\n let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91) return true // '['\n if (context) return false\n\n if (nextCh === 123) return true // '{'\n if (isIdentifierStart(nextCh, true)) {\n let pos = next + 1\n while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n let ident = this.input.slice(next, pos)\n if (!keywordRelationalOperator.test(ident)) return true\n }\n return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n return false\n\n skipWhiteSpace.lastIndex = this.pos\n let skip = skipWhiteSpace.exec(this.input)\n let next = this.pos + skip[0].length\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n let starttype = this.type, node = this.startNode(), kind\n\n if (this.isLet(context)) {\n starttype = tt._var\n kind = \"let\"\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case tt._debugger: return this.parseDebuggerStatement(node)\n case tt._do: return this.parseDoStatement(node)\n case tt._for: return this.parseForStatement(node)\n case tt._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n return this.parseFunctionStatement(node, false, !context)\n case tt._class:\n if (context) this.unexpected()\n return this.parseClass(node, true)\n case tt._if: return this.parseIfStatement(node)\n case tt._return: return this.parseReturnStatement(node)\n case tt._switch: return this.parseSwitchStatement(node)\n case tt._throw: return this.parseThrowStatement(node)\n case tt._try: return this.parseTryStatement(node)\n case tt._const: case tt._var:\n kind = kind || this.value\n if (context && kind !== \"var\") this.unexpected()\n return this.parseVarStatement(node, kind)\n case tt._while: return this.parseWhileStatement(node)\n case tt._with: return this.parseWithStatement(node)\n case tt.braceL: return this.parseBlock(true, node)\n case tt.semi: return this.parseEmptyStatement(node)\n case tt._export:\n case tt._import:\n if (this.options.ecmaVersion > 10 && starttype === tt._import) {\n skipWhiteSpace.lastIndex = this.pos\n let skip = skipWhiteSpace.exec(this.input)\n let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n return this.parseExpressionStatement(node, this.parseExpression())\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n if (!this.inModule)\n this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n }\n return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) this.unexpected()\n this.next()\n return this.parseFunctionStatement(node, true, !context)\n }\n\n let maybeName = this.value, expr = this.parseExpression()\n if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n return this.parseLabeledStatement(node, maybeName, expr, context)\n else return this.parseExpressionStatement(node, expr)\n }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n let isBreak = keyword === \"break\"\n this.next()\n if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n else if (this.type !== tt.name) this.unexpected()\n else {\n node.label = this.parseIdent()\n this.semicolon()\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n let i = 0\n for (; i < this.labels.length; ++i) {\n let lab = this.labels[i]\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n if (node.label && isBreak) break\n }\n }\n if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n this.next()\n this.semicolon()\n return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n this.next()\n this.labels.push(loopLabel)\n node.body = this.parseStatement(\"do\")\n this.labels.pop()\n this.expect(tt._while)\n node.test = this.parseParenExpression()\n if (this.options.ecmaVersion >= 6)\n this.eat(tt.semi)\n else\n this.semicolon()\n return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n this.next()\n let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n this.labels.push(loopLabel)\n this.enterScope(0)\n this.expect(tt.parenL)\n if (this.type === tt.semi) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, null)\n }\n let isLet = this.isLet()\n if (this.type === tt._var || this.type === tt._const || isLet) {\n let init = this.startNode(), kind = isLet ? \"let\" : this.value\n this.next()\n this.parseVar(init, true, kind)\n this.finishNode(init, \"VariableDeclaration\")\n if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === tt._in) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n } else node.await = awaitAt > -1\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, init)\n }\n let refDestructuringErrors = new DestructuringErrors\n let init = this.parseExpression(true, refDestructuringErrors)\n if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === tt._in) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n } else node.await = awaitAt > -1\n }\n this.toAssignable(init, false, refDestructuringErrors)\n this.checkLValPattern(init)\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true)\n }\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next()\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n this.next()\n node.test = this.parseParenExpression()\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\")\n node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n this.raise(this.start, \"'return' outside of function\")\n this.next()\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n else { node.argument = this.parseExpression(); this.semicolon() }\n return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n this.next()\n node.discriminant = this.parseParenExpression()\n node.cases = []\n this.expect(tt.braceL)\n this.labels.push(switchLabel)\n this.enterScope(0)\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n let cur\n for (let sawDefault = false; this.type !== tt.braceR;) {\n if (this.type === tt._case || this.type === tt._default) {\n let isCase = this.type === tt._case\n if (cur) this.finishNode(cur, \"SwitchCase\")\n node.cases.push(cur = this.startNode())\n cur.consequent = []\n this.next()\n if (isCase) {\n cur.test = this.parseExpression()\n } else {\n if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n sawDefault = true\n cur.test = null\n }\n this.expect(tt.colon)\n } else {\n if (!cur) this.unexpected()\n cur.consequent.push(this.parseStatement(null))\n }\n }\n this.exitScope()\n if (cur) this.finishNode(cur, \"SwitchCase\")\n this.next() // Closing brace\n this.labels.pop()\n return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n this.next()\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n node.argument = this.parseExpression()\n this.semicolon()\n return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n this.next()\n node.block = this.parseBlock()\n node.handler = null\n if (this.type === tt._catch) {\n let clause = this.startNode()\n this.next()\n if (this.eat(tt.parenL)) {\n clause.param = this.parseBindingAtom()\n let simple = clause.param.type === \"Identifier\"\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n this.expect(tt.parenR)\n } else {\n if (this.options.ecmaVersion < 10) this.unexpected()\n clause.param = null\n this.enterScope(0)\n }\n clause.body = this.parseBlock(false)\n this.exitScope()\n node.handler = this.finishNode(clause, \"CatchClause\")\n }\n node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n if (!node.handler && !node.finalizer)\n this.raise(node.start, \"Missing catch or finally clause\")\n return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n this.next()\n this.parseVar(node, false, kind)\n this.semicolon()\n return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n this.next()\n node.test = this.parseParenExpression()\n this.labels.push(loopLabel)\n node.body = this.parseStatement(\"while\")\n this.labels.pop()\n return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n this.next()\n node.object = this.parseParenExpression()\n node.body = this.parseStatement(\"with\")\n return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n this.next()\n return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (let label of this.labels)\n if (label.name === maybeName)\n this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n for (let i = this.labels.length - 1; i >= 0; i--) {\n let label = this.labels[i]\n if (label.statementStart === node.start) {\n // Update information about previous labels on this node\n label.statementStart = this.start\n label.kind = kind\n } else break\n }\n this.labels.push({name: maybeName, kind, statementStart: this.start})\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n this.labels.pop()\n node.label = expr\n return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n node.expression = expr\n this.semicolon()\n return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode(), exitStrict) {\n node.body = []\n this.expect(tt.braceL)\n if (createNewLexicalScope) this.enterScope(0)\n while (this.type !== tt.braceR) {\n let stmt = this.parseStatement(null)\n node.body.push(stmt)\n }\n if (exitStrict) this.strict = false\n this.next()\n if (createNewLexicalScope) this.exitScope()\n return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n node.init = init\n this.expect(tt.semi)\n node.test = this.type === tt.semi ? null : this.parseExpression()\n this.expect(tt.semi)\n node.update = this.type === tt.parenR ? null : this.parseExpression()\n this.expect(tt.parenR)\n node.body = this.parseStatement(\"for\")\n this.exitScope()\n this.labels.pop()\n return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n const isForIn = this.type === tt._in\n this.next()\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n `${\n isForIn ? \"for-in\" : \"for-of\"\n } loop variable declaration may not have an initializer`\n )\n }\n node.left = init\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign()\n this.expect(tt.parenR)\n node.body = this.parseStatement(\"for\")\n this.exitScope()\n this.labels.pop()\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n node.declarations = []\n node.kind = kind\n for (;;) {\n let decl = this.startNode()\n this.parseVarId(decl, kind)\n if (this.eat(tt.eq)) {\n decl.init = this.parseMaybeAssign(isFor)\n } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected()\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n } else {\n decl.init = null\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n if (!this.eat(tt.comma)) break\n }\n return node\n}\n\npp.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom()\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node)\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n this.unexpected()\n node.generator = this.eat(tt.star)\n }\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n }\n\n let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n this.enterScope(functionFlags(node.async, node.generator))\n\n if (!(statement & FUNC_STATEMENT))\n node.id = this.type === tt.name ? this.parseIdent() : null\n\n this.parseFunctionParams(node)\n this.parseFunctionBody(node, allowExpressionBody, false)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n this.expect(tt.parenL)\n node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n this.next()\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n const oldStrict = this.strict\n this.strict = true\n\n this.parseClassId(node, isStatement)\n this.parseClassSuper(node)\n let classBody = this.startNode()\n let hadConstructor = false\n classBody.body = []\n this.expect(tt.braceL)\n while (this.type !== tt.braceR) {\n const element = this.parseClassElement(node.superClass !== null)\n if (element) {\n classBody.body.push(element)\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n hadConstructor = true\n }\n }\n }\n this.strict = oldStrict\n this.next()\n node.body = this.finishNode(classBody, \"ClassBody\")\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(tt.semi)) return null\n\n let method = this.startNode()\n const tryContextual = (k, noLineBreak = false) => {\n const start = this.start, startLoc = this.startLoc\n if (!this.eatContextual(k)) return false\n if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n if (method.key) this.unexpected()\n method.computed = false\n method.key = this.startNodeAt(start, startLoc)\n method.key.name = k\n this.finishNode(method.key, \"Identifier\")\n return false\n }\n\n method.kind = \"method\"\n method.static = tryContextual(\"static\")\n let isGenerator = this.eat(tt.star)\n let isAsync = false\n if (!isGenerator) {\n if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n } else if (tryContextual(\"get\")) {\n method.kind = \"get\"\n } else if (tryContextual(\"set\")) {\n method.kind = \"set\"\n }\n }\n if (!method.key) this.parsePropertyName(method)\n let {key} = method\n let allowsDirectSuper = false\n if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n key.type === \"Literal\" && key.value === \"constructor\")) {\n if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n method.kind = \"constructor\"\n allowsDirectSuper = constructorAllowsSuper\n } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n this.raise(key.start, \"Classes may not have a static property named prototype\")\n }\n this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n if (method.kind === \"get\" && method.value.params.length !== 0)\n this.raiseRecoverable(method.value.start, \"getter should have no params\")\n if (method.kind === \"set\" && method.value.params.length !== 1)\n this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n if (this.type === tt.name) {\n node.id = this.parseIdent()\n if (isStatement)\n this.checkLValSimple(node.id, BIND_LEXICAL, false)\n } else {\n if (isStatement === true)\n this.unexpected()\n node.id = null\n }\n}\n\npp.parseClassSuper = function(node) {\n node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n this.next()\n // export * from '...'\n if (this.eat(tt.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseIdent(true)\n this.checkExport(exports, node.exported.name, this.lastTokStart)\n } else {\n node.exported = null\n }\n }\n this.expectContextual(\"from\")\n if (this.type !== tt.string) this.unexpected()\n node.source = this.parseExprAtom()\n this.semicolon()\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(tt._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart)\n let isAsync\n if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n let fNode = this.startNode()\n this.next()\n if (isAsync) this.next()\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === tt._class) {\n let cNode = this.startNode()\n node.declaration = this.parseClass(cNode, \"nullableID\")\n } else {\n node.declaration = this.parseMaybeAssign()\n this.semicolon()\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null)\n if (node.declaration.type === \"VariableDeclaration\")\n this.checkVariableExport(exports, node.declaration.declarations)\n else\n this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n node.specifiers = []\n node.source = null\n } else { // export { x, y as z } [from '...']\n node.declaration = null\n node.specifiers = this.parseExportSpecifiers(exports)\n if (this.eatContextual(\"from\")) {\n if (this.type !== tt.string) this.unexpected()\n node.source = this.parseExprAtom()\n } else {\n for (let spec of node.specifiers) {\n // check for keywords used as local names\n this.checkUnreserved(spec.local)\n // check if export is defined\n this.checkLocalExport(spec.local)\n }\n\n node.source = null\n }\n this.semicolon()\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n if (!exports) return\n if (has(exports, name))\n this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n let type = pat.type\n if (type === \"Identifier\")\n this.checkExport(exports, pat.name, pat.start)\n else if (type === \"ObjectPattern\")\n for (let prop of pat.properties)\n this.checkPatternExport(exports, prop)\n else if (type === \"ArrayPattern\")\n for (let elt of pat.elements) {\n if (elt) this.checkPatternExport(exports, elt)\n }\n else if (type === \"Property\")\n this.checkPatternExport(exports, pat.value)\n else if (type === \"AssignmentPattern\")\n this.checkPatternExport(exports, pat.left)\n else if (type === \"RestElement\")\n this.checkPatternExport(exports, pat.argument)\n else if (type === \"ParenthesizedExpression\")\n this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n if (!exports) return\n for (let decl of decls)\n this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n let nodes = [], first = true\n // export { x, y as z } [from '...']\n this.expect(tt.braceL)\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n let node = this.startNode()\n node.local = this.parseIdent(true)\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n this.checkExport(exports, node.exported.name, node.exported.start)\n nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n }\n return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n this.next()\n // import '...'\n if (this.type === tt.string) {\n node.specifiers = empty\n node.source = this.parseExprAtom()\n } else {\n node.specifiers = this.parseImportSpecifiers()\n this.expectContextual(\"from\")\n node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n }\n this.semicolon()\n return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n let nodes = [], first = true\n if (this.type === tt.name) {\n // import defaultObj, { x, y as z } from '...'\n let node = this.startNode()\n node.local = this.parseIdent()\n this.checkLValSimple(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n if (!this.eat(tt.comma)) return nodes\n }\n if (this.type === tt.star) {\n let node = this.startNode()\n this.next()\n this.expectContextual(\"as\")\n node.local = this.parseIdent()\n this.checkLValSimple(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n return nodes\n }\n this.expect(tt.braceL)\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n let node = this.startNode()\n node.imported = this.parseIdent(true)\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent()\n } else {\n this.checkUnreserved(node.imported)\n node.local = node.imported\n }\n this.checkLValSimple(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n }\n return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1)\n }\n}\npp.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n}\n","import {types as tt} from \"./tokentype.js\"\nimport {Parser} from \"./state.js\"\nimport {has} from \"./util.js\"\nimport {BIND_NONE, BIND_OUTSIDE, BIND_LEXICAL} from \"./scopeflags.js\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\"\n if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n for (let prop of node.properties) {\n this.toAssignable(prop, isBinding)\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\")\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n this.toAssignable(node.value, isBinding)\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\"\n if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n this.toAssignableList(node.elements, isBinding)\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\"\n this.toAssignable(node.argument, isBinding)\n if (node.argument.type === \"AssignmentPattern\")\n this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n node.type = \"AssignmentPattern\"\n delete node.operator\n this.toAssignable(node.left, isBinding)\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\")\n break\n\n case \"MemberExpression\":\n if (!isBinding) break\n\n default:\n this.raise(node.start, \"Assigning to rvalue\")\n }\n } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n let end = exprList.length\n for (let i = 0; i < end; i++) {\n let elt = exprList[i]\n if (elt) this.toAssignable(elt, isBinding)\n }\n if (end) {\n let last = exprList[end - 1]\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n this.unexpected(last.argument.start)\n }\n return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n let node = this.startNode()\n this.next()\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n this.unexpected()\n\n node.argument = this.parseBindingAtom()\n\n return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case tt.bracketL:\n let node = this.startNode()\n this.next()\n node.elements = this.parseBindingList(tt.bracketR, true, true)\n return this.finishNode(node, \"ArrayPattern\")\n\n case tt.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n let elts = [], first = true\n while (!this.eat(close)) {\n if (first) first = false\n else this.expect(tt.comma)\n if (allowEmpty && this.type === tt.comma) {\n elts.push(null)\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === tt.ellipsis) {\n let rest = this.parseRestBinding()\n this.parseBindingListItem(rest)\n elts.push(rest)\n if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n this.expect(close)\n break\n } else {\n let elem = this.parseMaybeDefault(this.start, this.startLoc)\n this.parseBindingListItem(elem)\n elts.push(elem)\n }\n }\n return elts\n}\n\npp.parseBindingListItem = function(param) {\n return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom()\n if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n let node = this.startNodeAt(startPos, startLoc)\n node.left = left\n node.right = this.parseMaybeAssign()\n return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp.checkLValSimple = function(expr, bindingType = BIND_NONE, checkClashes) {\n const isBind = bindingType !== BIND_NONE\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\")\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n this.raiseRecoverable(expr.start, \"Argument name clash\")\n checkClashes[expr.name] = true\n }\n if (bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\")\n break\n\n case \"MemberExpression\":\n if (isBind) this.raiseRecoverable(expr.start, \"Binding member expression\")\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) this.raiseRecoverable(expr.start, \"Binding parenthesized expression\")\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n }\n}\n\npp.checkLValPattern = function(expr, bindingType = BIND_NONE, checkClashes) {\n switch (expr.type) {\n case \"ObjectPattern\":\n for (let prop of expr.properties) {\n this.checkLValInnerPattern(prop, bindingType, checkClashes)\n }\n break\n\n case \"ArrayPattern\":\n for (let elem of expr.elements) {\n if (elem) this.checkLValInnerPattern(elem, bindingType, checkClashes)\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes)\n }\n}\n\npp.checkLValInnerPattern = function(expr, bindingType = BIND_NONE, checkClashes) {\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes)\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes)\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes)\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes)\n }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype.js\"\nimport {Parser} from \"./state.js\"\nimport {DestructuringErrors} from \"./parseutil.js\"\nimport {lineBreak} from \"./whitespace.js\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags.js\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n return\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n return\n let {key} = prop, name\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n let {kind} = prop\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0)\n refDestructuringErrors.doubleProto = key.start\n // Backwards-compat kludge. Can be removed in version 6.0\n } else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n }\n propHash.proto = true\n }\n return\n }\n name = \"$\" + name\n let other = propHash[name]\n if (other) {\n let redefinition\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set\n } else {\n redefinition = other.init || other[kind]\n }\n if (redefinition)\n this.raiseRecoverable(key.start, \"Redefinition of property\")\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n }\n }\n other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n if (this.type === tt.comma) {\n let node = this.startNodeAt(startPos, startLoc)\n node.expressions = [expr]\n while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) return this.parseYield(noIn)\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else this.exprAllowed = false\n }\n\n let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign\n oldTrailingComma = refDestructuringErrors.trailingComma\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1\n } else {\n refDestructuringErrors = new DestructuringErrors\n ownDestructuringErrors = true\n }\n\n let startPos = this.start, startLoc = this.startLoc\n if (this.type === tt.parenL || this.type === tt.name)\n this.potentialArrowAt = this.start\n let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n if (this.type.isAssign) {\n let node = this.startNodeAt(startPos, startLoc)\n node.operator = this.value\n if (this.type === tt.eq)\n left = this.toAssignable(left, false, refDestructuringErrors)\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n if (this.type === tt.eq)\n this.checkLValPattern(left)\n else\n this.checkLValSimple(left)\n node.left = left\n this.next()\n node.right = this.parseMaybeAssign(noIn)\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n }\n if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseExprOps(noIn, refDestructuringErrors)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n if (this.eat(tt.question)) {\n let node = this.startNodeAt(startPos, startLoc)\n node.test = expr\n node.consequent = this.parseMaybeAssign()\n this.expect(tt.colon)\n node.alternate = this.parseMaybeAssign(noIn)\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n let prec = this.type.binop\n if (prec != null && (!noIn || this.type !== tt._in)) {\n if (prec > minPrec) {\n let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n let coalesce = this.type === tt.coalesce\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = tt.logicalAND.binop\n }\n let op = this.value\n this.next()\n let startPos = this.start, startLoc = this.startLoc\n let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce)\n if ((logical && this.type === tt.coalesce) || (coalesce && (this.type === tt.logicalOR || this.type === tt.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\")\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n }\n }\n return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n let node = this.startNodeAt(startPos, startLoc)\n node.left = left\n node.operator = op\n node.right = right\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n let startPos = this.start, startLoc = this.startLoc, expr\n if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n expr = this.parseAwait()\n sawUnary = true\n } else if (this.type.prefix) {\n let node = this.startNode(), update = this.type === tt.incDec\n node.operator = this.value\n node.prefix = true\n this.next()\n node.argument = this.parseMaybeUnary(null, true)\n this.checkExpressionErrors(refDestructuringErrors, true)\n if (update) this.checkLValSimple(node.argument)\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n else sawUnary = true\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n while (this.type.postfix && !this.canInsertSemicolon()) {\n let node = this.startNodeAt(startPos, startLoc)\n node.operator = this.value\n node.prefix = false\n node.argument = expr\n this.checkLValSimple(expr)\n this.next()\n expr = this.finishNode(node, \"UpdateExpression\")\n }\n }\n\n if (!sawUnary && this.eat(tt.starstar))\n return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n else\n return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseExprAtom(refDestructuringErrors)\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n return expr\n let result = this.parseSubscripts(expr, startPos, startLoc)\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n }\n return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start\n let optionalChained = false\n\n while (true) {\n let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained)\n\n if (element.optional) optionalChained = true\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n const chainNode = this.startNodeAt(startPos, startLoc)\n chainNode.expression = element\n element = this.finishNode(chainNode, \"ChainExpression\")\n }\n return element\n }\n\n base = element\n }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) {\n let optionalSupported = this.options.ecmaVersion >= 11\n let optional = optionalSupported && this.eat(tt.questionDot)\n if (noCalls && optional) this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\")\n\n let computed = this.eat(tt.bracketL)\n if (computed || (optional && this.type !== tt.parenL && this.type !== tt.backQuote) || this.eat(tt.dot)) {\n let node = this.startNodeAt(startPos, startLoc)\n node.object = base\n node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== \"never\")\n node.computed = !!computed\n if (computed) this.expect(tt.bracketR)\n if (optionalSupported) {\n node.optional = optional\n }\n base = this.finishNode(node, \"MemberExpression\")\n } else if (!noCalls && this.eat(tt.parenL)) {\n let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false)\n this.checkYieldAwaitInDefaultParams()\n if (this.awaitIdentPos > 0)\n this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true)\n this.yieldPos = oldYieldPos || this.yieldPos\n this.awaitPos = oldAwaitPos || this.awaitPos\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n let node = this.startNodeAt(startPos, startLoc)\n node.callee = base\n node.arguments = exprList\n if (optionalSupported) {\n node.optional = optional\n }\n base = this.finishNode(node, \"CallExpression\")\n } else if (this.type === tt.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\")\n }\n let node = this.startNodeAt(startPos, startLoc)\n node.tag = base\n node.quasi = this.parseTemplate({isTagged: true})\n base = this.finishNode(node, \"TaggedTemplateExpression\")\n }\n return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === tt.slash) this.readRegexp()\n\n let node, canBeArrow = this.potentialArrowAt === this.start\n switch (this.type) {\n case tt._super:\n if (!this.allowSuper)\n this.raise(this.start, \"'super' keyword outside a method\")\n node = this.startNode()\n this.next()\n if (this.type === tt.parenL && !this.allowDirectSuper)\n this.raise(node.start, \"super() call outside constructor of a subclass\")\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n this.unexpected()\n return this.finishNode(node, \"Super\")\n\n case tt._this:\n node = this.startNode()\n this.next()\n return this.finishNode(node, \"ThisExpression\")\n\n case tt.name:\n let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n let id = this.parseIdent(false)\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(tt.arrow))\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n id = this.parseIdent(false)\n if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n this.unexpected()\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case tt.regexp:\n let value = this.value\n node = this.parseLiteral(value.value)\n node.regex = {pattern: value.pattern, flags: value.flags}\n return node\n\n case tt.num: case tt.string:\n return this.parseLiteral(this.value)\n\n case tt._null: case tt._true: case tt._false:\n node = this.startNode()\n node.value = this.type === tt._null ? null : this.type === tt._true\n node.raw = this.type.keyword\n this.next()\n return this.finishNode(node, \"Literal\")\n\n case tt.parenL:\n let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n refDestructuringErrors.parenthesizedAssign = start\n if (refDestructuringErrors.parenthesizedBind < 0)\n refDestructuringErrors.parenthesizedBind = start\n }\n return expr\n\n case tt.bracketL:\n node = this.startNode()\n this.next()\n node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n return this.finishNode(node, \"ArrayExpression\")\n\n case tt.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case tt._function:\n node = this.startNode()\n this.next()\n return this.parseFunction(node, 0)\n\n case tt._class:\n return this.parseClass(this.startNode(), false)\n\n case tt._new:\n return this.parseNew()\n\n case tt.backQuote:\n return this.parseTemplate()\n\n case tt._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected()\n }\n}\n\npp.parseExprImport = function() {\n const node = this.startNode()\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword import\")\n const meta = this.parseIdent(true)\n\n switch (this.type) {\n case tt.parenL:\n return this.parseDynamicImport(node)\n case tt.dot:\n node.meta = meta\n return this.parseImportMeta(node)\n default:\n this.unexpected()\n }\n}\n\npp.parseDynamicImport = function(node) {\n this.next() // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign()\n\n // Verify ending.\n if (!this.eat(tt.parenR)) {\n const errorPos = this.start\n if (this.eat(tt.comma) && this.eat(tt.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\")\n } else {\n this.unexpected(errorPos)\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n}\n\npp.parseImportMeta = function(node) {\n this.next() // skip `.`\n\n const containsEsc = this.containsEsc\n node.property = this.parseIdent(true)\n\n if (node.property.name !== \"meta\")\n this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\")\n if (containsEsc)\n this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\")\n if (this.options.sourceType !== \"module\")\n this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\")\n\n return this.finishNode(node, \"MetaProperty\")\n}\n\npp.parseLiteral = function(value) {\n let node = this.startNode()\n node.value = value\n node.raw = this.input.slice(this.start, this.end)\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\")\n this.next()\n return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n this.expect(tt.parenL)\n let val = this.parseExpression()\n this.expect(tt.parenR)\n return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n if (this.options.ecmaVersion >= 6) {\n this.next()\n\n let innerStartPos = this.start, innerStartLoc = this.startLoc\n let exprList = [], first = true, lastIsComma = false\n let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n this.yieldPos = 0\n this.awaitPos = 0\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== tt.parenR) {\n first ? first = false : this.expect(tt.comma)\n if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n lastIsComma = true\n break\n } else if (this.type === tt.ellipsis) {\n spreadStart = this.start\n exprList.push(this.parseParenItem(this.parseRestBinding()))\n if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n }\n }\n let innerEndPos = this.start, innerEndLoc = this.startLoc\n this.expect(tt.parenR)\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false)\n this.checkYieldAwaitInDefaultParams()\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n if (spreadStart) this.unexpected(spreadStart)\n this.checkExpressionErrors(refDestructuringErrors, true)\n this.yieldPos = oldYieldPos || this.yieldPos\n this.awaitPos = oldAwaitPos || this.awaitPos\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc)\n val.expressions = exprList\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n } else {\n val = exprList[0]\n }\n } else {\n val = this.parseParenExpression()\n }\n\n if (this.options.preserveParens) {\n let par = this.startNodeAt(startPos, startLoc)\n par.expression = val\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n}\n\npp.parseParenItem = function(item) {\n return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword new\")\n let node = this.startNode()\n let meta = this.parseIdent(true)\n if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n node.meta = meta\n let containsEsc = this.containsEsc\n node.property = this.parseIdent(true)\n if (node.property.name !== \"target\")\n this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\")\n if (containsEsc)\n this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\")\n if (!this.inNonArrowFunction)\n this.raiseRecoverable(node.start, \"'new.target' can only be used in functions\")\n return this.finishNode(node, \"MetaProperty\")\n }\n let startPos = this.start, startLoc = this.startLoc, isImport = this.type === tt._import\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\")\n }\n if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n else node.arguments = empty\n return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n let elem = this.startNode()\n if (this.type === tt.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n }\n elem.value = {\n raw: this.value,\n cooked: null\n }\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n }\n }\n this.next()\n elem.tail = this.type === tt.backQuote\n return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n let node = this.startNode()\n this.next()\n node.expressions = []\n let curElt = this.parseTemplateElement({isTagged})\n node.quasis = [curElt]\n while (!curElt.tail) {\n if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n this.expect(tt.dollarBraceL)\n node.expressions.push(this.parseExpression())\n this.expect(tt.braceR)\n node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n }\n this.next()\n return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n let node = this.startNode(), first = true, propHash = {}\n node.properties = []\n this.next()\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n const prop = this.parseProperty(isPattern, refDestructuringErrors)\n if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n node.properties.push(prop)\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false)\n if (this.type === tt.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\")\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === tt.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false\n prop.shorthand = false\n if (isPattern || refDestructuringErrors) {\n startPos = this.start\n startLoc = this.startLoc\n }\n if (!isPattern)\n isGenerator = this.eat(tt.star)\n }\n let containsEsc = this.containsEsc\n this.parsePropertyName(prop)\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n this.parsePropertyName(prop, refDestructuringErrors)\n } else {\n isAsync = false\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === tt.colon)\n this.unexpected()\n\n if (this.eat(tt.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n prop.kind = \"init\"\n } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n if (isPattern) this.unexpected()\n prop.kind = \"init\"\n prop.method = true\n prop.value = this.parseMethod(isGenerator, isAsync)\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== tt.comma && this.type !== tt.braceR && this.type !== tt.eq)) {\n if (isGenerator || isAsync) this.unexpected()\n prop.kind = prop.key.name\n this.parsePropertyName(prop)\n prop.value = this.parseMethod(false)\n let paramCount = prop.kind === \"get\" ? 0 : 1\n if (prop.value.params.length !== paramCount) {\n let start = prop.value.start\n if (prop.kind === \"get\")\n this.raiseRecoverable(start, \"getter should have no params\")\n else\n this.raiseRecoverable(start, \"setter should have exactly one param\")\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) this.unexpected()\n this.checkUnreserved(prop.key)\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n this.awaitIdentPos = startPos\n prop.kind = \"init\"\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key))\n } else if (this.type === tt.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n refDestructuringErrors.shorthandAssign = this.start\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key))\n } else {\n prop.value = this.copyNode(prop.key)\n }\n prop.shorthand = true\n } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(tt.bracketL)) {\n prop.computed = true\n prop.key = this.parseMaybeAssign()\n this.expect(tt.bracketR)\n return prop.key\n } else {\n prop.computed = false\n }\n }\n return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n node.id = null\n if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n this.initFunction(node)\n if (this.options.ecmaVersion >= 6)\n node.generator = isGenerator\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n this.expect(tt.parenL)\n node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n this.checkYieldAwaitInDefaultParams()\n this.parseFunctionBody(node, false, true)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n this.initFunction(node)\n if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n\n node.params = this.toAssignableList(params, true)\n this.parseFunctionBody(node, true, false)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n let isExpression = isArrowFunction && this.type !== tt.braceL\n let oldStrict = this.strict, useStrict = false\n\n if (isExpression) {\n node.body = this.parseMaybeAssign()\n node.expression = true\n this.checkParams(node, false)\n } else {\n let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end)\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n let oldLabels = this.labels\n this.labels = []\n if (useStrict) this.strict = true\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) this.checkLValSimple(node.id, BIND_OUTSIDE)\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict)\n node.expression = false\n this.adaptDirectivePrologue(node.body.body)\n this.labels = oldLabels\n }\n this.exitScope()\n}\n\npp.isSimpleParamList = function(params) {\n for (let param of params)\n if (param.type !== \"Identifier\") return false\n return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n let nameHash = {}\n for (let param of node.params)\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n let elts = [], first = true\n while (!this.eat(close)) {\n if (!first) {\n this.expect(tt.comma)\n if (allowTrailingComma && this.afterTrailingComma(close)) break\n } else first = false\n\n let elt\n if (allowEmpty && this.type === tt.comma)\n elt = null\n else if (this.type === tt.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors)\n if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n refDestructuringErrors.trailingComma = this.start\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors)\n }\n elts.push(elt)\n }\n return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n if (this.inGenerator && name === \"yield\")\n this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n if (this.inAsync && name === \"await\")\n this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n if (this.keywords.test(name))\n this.raise(start, `Unexpected keyword '${name}'`)\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n let node = this.startNode()\n if (this.type === tt.name) {\n node.name = this.value\n } else if (this.type.keyword) {\n node.name = this.type.keyword\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop()\n }\n } else {\n this.unexpected()\n }\n this.next(!!liberal)\n this.finishNode(node, \"Identifier\")\n if (!liberal) {\n this.checkUnreserved(node)\n if (node.name === \"await\" && !this.awaitIdentPos)\n this.awaitIdentPos = node.start\n }\n return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n if (!this.yieldPos) this.yieldPos = this.start\n\n let node = this.startNode()\n this.next()\n if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n node.delegate = false\n node.argument = null\n } else {\n node.delegate = this.eat(tt.star)\n node.argument = this.parseMaybeAssign(noIn)\n }\n return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n if (!this.awaitPos) this.awaitPos = this.start\n\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeUnary(null, true)\n return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state.js\"\nimport {Position, getLineInfo} from \"./locutil.js\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n let loc = getLineInfo(this.input, pos)\n message += \" (\" + loc.line + \":\" + loc.column + \")\"\n let err = new SyntaxError(message)\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n}\n","import {Parser} from \"./state.js\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags.js\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n constructor(flags) {\n this.flags = flags\n // A list of var-declared names in the current lexical scope\n this.var = []\n // A list of lexically-declared names in the current lexical scope\n this.lexical = []\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = []\n }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n let redeclared = false\n if (bindingType === BIND_LEXICAL) {\n const scope = this.currentScope()\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n scope.lexical.push(name)\n if (this.inModule && (scope.flags & SCOPE_TOP))\n delete this.undefinedExports[name]\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n const scope = this.currentScope()\n scope.lexical.push(name)\n } else if (bindingType === BIND_FUNCTION) {\n const scope = this.currentScope()\n if (this.treatFunctionsAsVar)\n redeclared = scope.lexical.indexOf(name) > -1\n else\n redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n scope.functions.push(name)\n } else {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n const scope = this.scopeStack[i]\n if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n redeclared = true\n break\n }\n scope.var.push(name)\n if (this.inModule && (scope.flags & SCOPE_TOP))\n delete this.undefinedExports[name]\n if (scope.flags & SCOPE_VAR) break\n }\n }\n if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id\n }\n}\n\npp.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n for (let i = this.scopeStack.length - 1;; i--) {\n let scope = this.scopeStack[i]\n if (scope.flags & SCOPE_VAR) return scope\n }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n for (let i = this.scopeStack.length - 1;; i--) {\n let scope = this.scopeStack[i]\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n }\n}\n","import {Parser} from \"./state.js\"\nimport {SourceLocation} from \"./locutil.js\"\n\nexport class Node {\n constructor(parser, pos, loc) {\n this.type = \"\"\n this.start = pos\n this.end = 0\n if (parser.options.locations)\n this.loc = new SourceLocation(parser, loc)\n if (parser.options.directSourceFile)\n this.sourceFile = parser.options.directSourceFile\n if (parser.options.ranges)\n this.range = [pos, 0]\n }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type\n node.end = pos\n if (this.options.locations)\n node.loc.end = loc\n if (this.options.ranges)\n node.range[1] = pos\n return node\n}\n\npp.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n}\n\npp.copyNode = function(node) {\n let newNode = new Node(this, node.start, this.startLoc)\n for (let prop in node) newNode[prop] = node[prop]\n return newNode\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state.js\"\nimport {types as tt} from \"./tokentype.js\"\nimport {lineBreak} from \"./whitespace.js\"\n\nexport class TokContext {\n constructor(token, isExpr, preserveSpace, override, generator) {\n this.token = token\n this.isExpr = !!isExpr\n this.preserveSpace = !!preserveSpace\n this.override = override\n this.generator = !!generator\n }\n}\n\nexport const types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n let parent = this.curContext()\n if (parent === types.f_expr || parent === types.f_stat)\n return true\n if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n return !parent.isExpr\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n return true\n if (prevType === tt.braceL)\n return parent === types.b_stat\n if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n return false\n return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n for (let i = this.context.length - 1; i >= 1; i--) {\n let context = this.context[i]\n if (context.token === \"function\")\n return context.generator\n }\n return false\n}\n\npp.updateContext = function(prevType) {\n let update, type = this.type\n if (type.keyword && prevType === tt.dot)\n this.exprAllowed = false\n else if (update = type.updateContext)\n update.call(this, prevType)\n else\n this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true\n return\n }\n let out = this.context.pop()\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop()\n }\n this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl)\n this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n this.context.push(statementParens ? types.p_stat : types.p_expr)\n this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== tt._else &&\n !(prevType === tt.semi && this.curContext() !== types.p_stat) &&\n !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n this.context.push(types.f_expr)\n else\n this.context.push(types.f_stat)\n this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n this.context.pop()\n else\n this.context.push(types.q_tmpl)\n this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n if (prevType === tt._function) {\n let index = this.context.length - 1\n if (this.context[index] === types.f_expr)\n this.context[index] = types.f_expr_gen\n else\n this.context[index] = types.f_gen\n }\n this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n let allowed = false\n if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n allowed = true\n }\n this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\"\nconst ecma11BinaryProperties = ecma10BinaryProperties\nconst ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\"\nconst unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties\n}\n\n// #table-unicode-general-category-values\nconst 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\"\n\n// #table-unicode-script-values\nconst 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\"\nconst ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\nconst ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\"\nconst ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\"\nconst unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n let d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n }\n d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n d.nonBinary.gc = d.nonBinary.General_Category\n d.nonBinary.sc = d.nonBinary.Script\n d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\nbuildUnicodeData(11)\nbuildUnicodeData(12)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n constructor(parser) {\n this.parser = parser\n this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion]\n this.source = \"\"\n this.flags = \"\"\n this.start = 0\n this.switchU = false\n this.switchN = false\n this.pos = 0\n this.lastIntValue = 0\n this.lastStringValue = \"\"\n this.lastAssertionIsQuantifiable = false\n this.numCapturingParens = 0\n this.maxBackReference = 0\n this.groupNames = []\n this.backReferenceNames = []\n }\n\n reset(start, pattern, flags) {\n const unicode = flags.indexOf(\"u\") !== -1\n this.start = start | 0\n this.source = pattern + \"\"\n this.flags = flags\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n }\n\n raise(message) {\n this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n }\n\n // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n at(i, forceU = false) {\n const s = this.source\n const l = s.length\n if (i >= l) {\n return -1\n }\n const c = s.charCodeAt(i)\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n const next = s.charCodeAt(i + 1)\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n }\n\n nextIndex(i, forceU = false) {\n const s = this.source\n const l = s.length\n if (i >= l) {\n return l\n }\n let c = s.charCodeAt(i), next\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n }\n\n current(forceU = false) {\n return this.at(this.pos, forceU)\n }\n\n lookahead(forceU = false) {\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n }\n\n advance(forceU = false) {\n this.pos = this.nextIndex(this.pos, forceU)\n }\n\n eat(ch, forceU = false) {\n if (this.current(forceU) === ch) {\n this.advance(forceU)\n return true\n }\n return false\n }\n}\n\nfunction codePointToString(ch) {\n if (ch <= 0xFFFF) return String.fromCharCode(ch)\n ch -= 0x10000\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n const validFlags = state.validFlags\n const flags = state.flags\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags.charAt(i)\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\")\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\")\n }\n }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n this.regexp_pattern(state)\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true\n this.regexp_pattern(state)\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n state.pos = 0\n state.lastIntValue = 0\n state.lastStringValue = \"\"\n state.lastAssertionIsQuantifiable = false\n state.numCapturingParens = 0\n state.maxBackReference = 0\n state.groupNames.length = 0\n state.backReferenceNames.length = 0\n\n this.regexp_disjunction(state)\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\")\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\")\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\")\n }\n for (const name of state.backReferenceNames) {\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\")\n }\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n this.regexp_alternative(state)\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state)\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\")\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\")\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\")\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state)\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n const start = state.pos\n state.lastAssertionIsQuantifiable = false\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n let lookbehind = false\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */)\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state)\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\")\n }\n state.lastAssertionIsQuantifiable = !lookbehind\n return true\n }\n }\n\n state.pos = start\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */)\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n const start = state.pos\n if (state.eat(0x7B /* { */)) {\n let min = 0, max = -1\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\")\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\")\n }\n state.pos = start\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n const start = state.pos\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n const start = state.pos\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state)\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\")\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state)\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\")\n }\n this.regexp_disjunction(state)\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1\n return true\n }\n state.raise(\"Unterminated group\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n const ch = state.current()\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n return false\n}\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n const start = state.pos\n let ch = 0\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance()\n }\n return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n const ch = state.current()\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance()\n return true\n }\n return false\n}\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\")\n }\n state.groupNames.push(state.lastStringValue)\n return\n }\n state.raise(\"Invalid group\")\n }\n}\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\"\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\")\n }\n return false\n}\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\"\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue)\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue)\n }\n return true\n }\n return false\n}\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n const start = state.pos\n const forceU = this.options.ecmaVersion >= 11\n let ch = state.current(forceU)\n state.advance(forceU)\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch\n return true\n }\n\n state.pos = start\n return false\n}\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// \n// \npp.regexp_eatRegExpIdentifierPart = function(state) {\n const start = state.pos\n const forceU = this.options.ecmaVersion >= 11\n let ch = state.current(forceU)\n state.advance(forceU)\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch\n return true\n }\n\n state.pos = start\n return false\n}\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\")\n }\n state.raise(\"Invalid escape\")\n }\n return false\n}\npp.regexp_eatBackReference = function(state) {\n const start = state.pos\n if (this.regexp_eatDecimalEscape(state)) {\n const n = state.lastIntValue\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue)\n return true\n }\n state.raise(\"Invalid named reference\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n}\npp.regexp_eatCControlLetter = function(state) {\n const start = state.pos\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n const ch = state.current()\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09 /* \\t */\n state.advance()\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A /* \\n */\n state.advance()\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B /* \\v */\n state.advance()\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C /* \\f */\n state.advance()\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D /* \\r */\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n const ch = state.current()\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20\n state.advance()\n return true\n }\n return false\n}\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU = false) {\n const start = state.pos\n const switchU = forceU || state.switchU\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n const lead = state.lastIntValue\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n const leadSurrogateEnd = state.pos\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n const trail = state.lastIntValue\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n return true\n }\n }\n state.pos = leadSurrogateEnd\n state.lastIntValue = lead\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\")\n }\n state.pos = start\n }\n\n return false\n}\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F /* / */\n return true\n }\n return false\n }\n\n const ch = state.current()\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0\n let ch = state.current()\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n state.advance()\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n const ch = state.current()\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1\n state.advance()\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1\n state.advance()\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\")\n }\n\n return false\n}\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n const start = state.pos\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n const name = state.lastStringValue\n if (this.regexp_eatUnicodePropertyValue(state)) {\n const value = state.lastStringValue\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n return true\n }\n }\n state.pos = start\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n const nameOrValue = state.lastStringValue\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n return true\n }\n return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n state.raise(\"Invalid property name\")\n if (!state.unicodeProperties.nonBinary[name].test(value))\n state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n let ch = 0\n state.lastStringValue = \"\"\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch)\n state.advance()\n }\n return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n let ch = 0\n state.lastStringValue = \"\"\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch)\n state.advance()\n }\n return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */)\n this.regexp_classRanges(state)\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n const left = state.lastIntValue\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n const right = state.lastIntValue\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\")\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\")\n }\n }\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n const start = state.pos\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n const ch = state.current()\n if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n state.raise(\"Invalid class escape\")\n }\n state.raise(\"Invalid escape\")\n }\n state.pos = start\n }\n\n const ch = state.current()\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n const start = state.pos\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08 /* */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n const ch = state.current()\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n const start = state.pos\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\")\n }\n state.pos = start\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n const start = state.pos\n let ch = 0\n state.lastIntValue = 0\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n state.advance()\n }\n return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n const start = state.pos\n let ch = 0\n state.lastIntValue = 0\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n state.advance()\n }\n return state.pos !== start\n}\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n const n1 = state.lastIntValue\n if (this.regexp_eatOctalDigit(state)) {\n const n2 = state.lastIntValue\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n } else {\n state.lastIntValue = n1 * 8 + n2\n }\n } else {\n state.lastIntValue = n1\n }\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n const ch = state.current()\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30 /* 0 */\n state.advance()\n return true\n }\n state.lastIntValue = 0\n return false\n}\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n const start = state.pos\n state.lastIntValue = 0\n for (let i = 0; i < length; ++i) {\n const ch = state.current()\n if (!isHexDigit(ch)) {\n state.pos = start\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n state.advance()\n }\n return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype.js\"\nimport {Parser} from \"./state.js\"\nimport {SourceLocation} from \"./locutil.js\"\nimport {RegExpValidationState} from \"./regexp.js\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace.js\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(p) {\n this.type = p.type\n this.value = p.value\n this.start = p.start\n this.end = p.end\n if (p.options.locations)\n this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n if (p.options.ranges)\n this.range = [p.start, p.end]\n }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword)\n if (this.options.onToken)\n this.options.onToken(new Token(this))\n\n this.lastTokEnd = this.end\n this.lastTokStart = this.start\n this.lastTokEndLoc = this.endLoc\n this.lastTokStartLoc = this.startLoc\n this.nextToken()\n}\n\npp.getToken = function() {\n this.next()\n return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n pp[Symbol.iterator] = function() {\n return {\n next: () => {\n let token = this.getToken()\n return {\n done: token.type === tt.eof,\n value: token\n }\n }\n }\n }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n let curContext = this.curContext()\n if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n this.start = this.pos\n if (this.options.locations) this.startLoc = this.curPosition()\n if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n if (curContext.override) return curContext.override(this)\n else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n return this.readWord()\n\n return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n let code = this.input.charCodeAt(this.pos)\n if (code <= 0xd7ff || code >= 0xe000) return code\n let next = this.input.charCodeAt(this.pos + 1)\n return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n let startLoc = this.options.onComment && this.curPosition()\n let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n this.pos = end + 2\n if (this.options.locations) {\n lineBreakG.lastIndex = start\n let match\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine\n this.lineStart = match.index + match[0].length\n }\n }\n if (this.options.onComment)\n this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n let start = this.pos\n let startLoc = this.options.onComment && this.curPosition()\n let ch = this.input.charCodeAt(this.pos += startSkip)\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos)\n }\n if (this.options.onComment)\n this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n let ch = this.input.charCodeAt(this.pos)\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos\n }\n case 10: case 8232: case 8233:\n ++this.pos\n if (this.options.locations) {\n ++this.curLine\n this.lineStart = this.pos\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment()\n break\n case 47:\n this.skipLineComment(2)\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos\n } else {\n break loop\n }\n }\n }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos\n if (this.options.locations) this.endLoc = this.curPosition()\n let prevType = this.type\n this.type = type\n this.value = val\n\n this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n let next = this.input.charCodeAt(this.pos + 1)\n if (next >= 48 && next <= 57) return this.readNumber(true)\n let next2 = this.input.charCodeAt(this.pos + 2)\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3\n return this.finishToken(tt.ellipsis)\n } else {\n ++this.pos\n return this.finishToken(tt.dot)\n }\n}\n\npp.readToken_slash = function() { // '/'\n let next = this.input.charCodeAt(this.pos + 1)\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n let tokentype = code === 42 ? tt.star : tt.modulo\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size\n tokentype = tt.starstar\n next = this.input.charCodeAt(this.pos + 2)\n }\n\n if (next === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n let next2 = this.input.charCodeAt(this.pos + 2)\n if (next2 === 61) return this.finishOp(tt.assign, 3)\n }\n return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // ` + +> Stability: 1 - Experimental + +A [`Blob`][] encapsulates immutable, raw data that can be safely shared across +multiple worker threads. + +### `new buffer.Blob([sources[, options]])` + + +* `sources` {string[]|ArrayBuffer[]|TypedArray[]|DataView[]|Blob[]} An array + of string, {ArrayBuffer}, {TypedArray}, {DataView}, or {Blob} objects, or + any mix of such objects, that will be stored within the `Blob`. +* `options` {Object} + * `encoding` {string} The character encoding to use for string sources. + **Default**: `'utf8'`. + * `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. + +Creates a new `Blob` object containing a concatenation of the given sources. + +{ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into +the 'Blob' and can therefore be safely modified after the 'Blob' is created. + +String sources are also copied into the `Blob`. + +### `blob.arrayBuffer()` + + +* Returns: {Promise} + +Returns a promise that fulfills with an {ArrayBuffer} containing a copy of +the `Blob` data. + +### `blob.size` + + +The total size of the `Blob` in bytes. + +### `blob.slice([start, [end, [type]]])` + + +* `start` {number} The starting index. +* `end` {number} The ending index. +* `type` {string} The content-type for the new `Blob` + +Creates and returns a new `Blob` containing a subset of this `Blob` objects +data. The original `Blob` is not alterered. + +### `blob.text()` + + +* Returns: {Promise} + +Returns a promise that resolves the contents of the `Blob` decoded as a UTF-8 +string. + +### `blob.type` + + +* Type: {string} + +The content-type of the `Blob`. + +### `Blob` objects and `MessageChannel` + +Once a {Blob} object is created, it can be sent via `MessagePort` to multiple +destinations without transfering or immediately copying the data. The data +contained by the `Blob` is copied only when the `arrayBuffer()` or `text()` +methods are called. + +```js +const { Blob } = require('buffer'); +const blob = new Blob(['hello there']); +const { setTimeout: delay } = require('timers/promises'); + +const mc1 = new MessageChannel(); +const mc2 = new MessageChannel(); + +mc1.port1.onmessage = async ({ data }) => { + console.log(await data.arrayBuffer()); + mc1.port1.close(); +}; + +mc2.port1.onmessage = async ({ data }) => { + await delay(1000); + console.log(await data.arrayBuffer()); + mc2.port1.close(); +}; + +mc1.port2.postMessage(blob); +mc2.port2.postMessage(blob); + +// The Blob is still usable after posting. +data.text().then(console.log); +``` + ## Class: `Buffer` The `Buffer` class is a global type for dealing with binary data directly. @@ -469,9 +590,10 @@ Returns the byte length of a string when encoded using `encoding`. This is not the same as [`String.prototype.length`][], which does not account for the encoding that is used to convert the string into bytes. -For `'base64'` and `'hex'`, this function assumes valid input. For strings that -contain non-base64/hex-encoded data (e.g. whitespace), the return value might be -greater than the length of a `Buffer` created from the string. +For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input. +For strings that contain non-base64/hex-encoded data (e.g. whitespace), the +return value might be greater than the length of a `Buffer` created from the +string. ```js const str = '\u00bd + \u00bc = \u00be'; @@ -3388,6 +3510,7 @@ introducing security vulnerabilities into an application. [UTF-8]: https://en.wikipedia.org/wiki/UTF-8 [WHATWG Encoding Standard]: https://encoding.spec.whatwg.org/ [`ArrayBuffer`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer +[`Blob`]: https://developer.mozilla.org/en-US/docs/Web/API/Blob [`Buffer.alloc()`]: #buffer_static_method_buffer_alloc_size_fill_encoding [`Buffer.allocUnsafe()`]: #buffer_static_method_buffer_allocunsafe_size [`Buffer.allocUnsafeSlow()`]: #buffer_static_method_buffer_allocunsafeslow_size @@ -3427,6 +3550,7 @@ introducing security vulnerabilities into an application. [`buffer.kMaxLength`]: #buffer_buffer_kmaxlength [`util.inspect()`]: util.md#util_util_inspect_object_options [`v8::TypedArray::kMaxLength`]: https://v8.github.io/api/head/classv8_1_1TypedArray.html#a54a48f4373da0850663c4393d843b9b0 +[base64url]: https://tools.ietf.org/html/rfc4648#section-5 [binary strings]: https://developer.mozilla.org/en-US/docs/Web/API/DOMString/Binary [endianness]: https://en.wikipedia.org/wiki/Endianness [iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 68931d0a860e68..13e8b1b6f7fae2 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -146,6 +146,13 @@ exec('"my script.cmd" a b', (err, stdout, stderr) => { > Stability: 1 - Experimental -Enable experimental support for custom conditional exports resolution +Enable experimental support for custom [conditional exports][] resolution conditions. Any number of custom string condition names are permitted. @@ -95,6 +95,12 @@ Any number of custom string condition names are permitted. The default Node.js conditions of `"node"`, `"default"`, `"import"`, and `"require"` will always apply as defined. +For example, to run a module with "development" resolutions: + +```console +$ node -C=development app.js +``` + ### `--cpu-prof` @@ -177,6 +183,19 @@ 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. +### `--dns-result-order=order` + + +Set the default value of `verbatim` in [`dns.lookup()`][] and +[`dnsPromises.lookup()`][]. The value could be: +* `ipv4first`: sets default `verbatim` `false`. +* `verbatim`: sets default `verbatim` `true`. + +The default is `ipv4first` and [`dns.setDefaultResultOrder()`][] have higher +priority than `--dns-result-order`. + ### `--enable-fips` -> Stability: 1 - Experimental +Enable [Source Map v3][Source Map] support for stack traces. -Enable experimental Source Map v3 support for stack traces. +When using a transpiler, such as TypeScript, strack traces thrown by an +application reference the transpiled code, not the original source position. +`--enable-source-maps` enables caching of Source Maps and makes a best +effort to report stack traces relative to the original source file. -Currently, overriding `Error.prepareStackTrace` is ignored when the -`--enable-source-maps` flag is set. +Overriding `Error.prepareStackTrace` prevents `--enable-source-maps` from +modifiying the stack trace. ### `--experimental-abortcontroller` + +> Stability: 1 - Experimental + +Writes a V8 heap snapshot to disk when the V8 heap usage is approaching the +heap limit. `count` should be a non-negative integer (in which case +Node.js will write no more than `max_count` snapshots to disk). + +When generating snapshots, garbage collection may be triggered and bring +the heap usage down, therefore multiple snapshots may be written to disk +before the Node.js instance finally runs out of memory. These heap snapshots +can be compared to determine what objects are being allocated during the +time consecutive snapshots are taken. It's not guaranteed that Node.js will +write exactly `max_count` snapshots to disk, but it will try +its best to generate at least one and up to `max_count` snapshots before the +Node.js instance runs out of memory when `max_count` is greater than `0`. + +Generating V8 snapshots takes time and memory (both memory managed by the +V8 heap and native memory outside the V8 heap). The bigger the heap is, +the more resources it needs. Node.js will adjust the V8 heap to accommondate +the additional V8 heap memory overhead, and try its best to avoid using up +all the memory avialable to the process. When the process uses +more memory than the system deems appropriate, the process may be terminated +abruptly by the system, depending on the system configuration. + +```console +$ node --max-old-space-size=100 --heapsnapshot-near-heap-limit=3 index.js +Wrote snapshot to Heap.20200430.100036.49580.0.001.heapsnapshot +Wrote snapshot to Heap.20200430.100037.49580.0.002.heapsnapshot +Wrote snapshot to Heap.20200430.100038.49580.0.003.heapsnapshot + +<--- Last few GCs ---> + +[49580:0x110000000] 4826 ms: Mark-sweep 130.6 (147.8) -> 130.5 (147.8) MB, 27.4 / 0.0 ms (average mu = 0.126, current mu = 0.034) allocation failure scavenge might not succeed +[49580:0x110000000] 4845 ms: Mark-sweep 130.6 (147.8) -> 130.6 (147.8) MB, 18.8 / 0.0 ms (average mu = 0.088, current mu = 0.031) allocation failure scavenge might not succeed + + +<--- JS stacktrace ---> + +FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory +.... +``` + ### `--heapsnapshot-signal=signal` + +Enable extra debug checks for memory leaks in Node.js internals. This is +usually only useful for developers debugging Node.js itself. + ### `--openssl-config=file` -* `--conditions` +* `--conditions`, `-C` * `--diagnostic-dir` * `--disable-proto` +* `--dns-result-order` * `--enable-fips` * `--enable-source-maps` * `--experimental-abortcontroller` @@ -1264,6 +1345,7 @@ Node.js options that are allowed are: * `--force-context-aware` * `--force-fips` * `--frozen-intrinsics` +* `--heapsnapshot-near-heap-limit` * `--heapsnapshot-signal` * `--http-parser` * `--icu-data-dir` @@ -1278,6 +1360,7 @@ Node.js options that are allowed are: * `--no-deprecation` * `--no-force-async-hooks-checks` * `--no-warnings` +* `--node-memory-debug` * `--openssl-config` * `--pending-deprecation` * `--policy-integrity` @@ -1599,11 +1682,15 @@ $ node --max-old-space-size=1536 index.js [`NODE_OPTIONS`]: #cli_node_options_options [`NO_COLOR`]: https://no-color.org [`SlowBuffer`]: buffer.md#buffer_class_slowbuffer +[`dns.lookup()`]: dns.md#dns_dns_lookup_hostname_options_callback +[`dns.setDefaultResultOrder()`]: dns.md#dns_dns_setdefaultresultorder_order +[`dnsPromises.lookup()`]: dns.md#dns_dnspromises_lookup_hostname_options [`process.setUncaughtExceptionCaptureCallback()`]: process.md#process_process_setuncaughtexceptioncapturecallback_fn [`tls.DEFAULT_MAX_VERSION`]: tls.md#tls_tls_default_max_version [`tls.DEFAULT_MIN_VERSION`]: tls.md#tls_tls_default_min_version [`unhandledRejection`]: process.md#process_event_unhandledrejection [`worker_threads.threadId`]: worker_threads.md#worker_threads_worker_threadid +[conditional exports]: packages.md#packages_conditional_exports [context-aware]: addons.md#addons_context_aware_addons [customizing ESM specifier resolution]: esm.md#esm_customizing_esm_specifier_resolution_algorithm [debugger]: debugger.md diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 99623e92eccddb..36307e6f7a297b 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -2855,7 +2855,7 @@ added: v14.17.0 `disableEntropyCache` to `true`. **Defaults**: `false`. * Returns: {string} -Generates a random [RFC 4122][] Version 4 UUID. The UUID is generated using a +Generates a random [RFC 4122][] version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator. ### `crypto.scrypt(password, salt, keylen[, options], callback)` diff --git a/doc/api/debugger.md b/doc/api/debugger.md index 66a97f36ec5ee9..b155738b073165 100644 --- a/doc/api/debugger.md +++ b/doc/api/debugger.md @@ -6,20 +6,22 @@ -Node.js includes an out-of-process debugging utility accessible via a -[V8 Inspector][] and built-in debugging client. To use it, start Node.js -with the `inspect` argument followed by the path to the script to debug; a -prompt will be displayed indicating successful launch of the debugger: +Node.js includes a command-line debugging utility. To use it, start Node.js +with the `inspect` argument followed by the path to the script to debug. ```console $ node inspect myscript.js -< Debugger listening on ws://127.0.0.1:9229/80e7a814-7cd3-49fb-921a-2e02228cd5ba +< Debugger listening on ws://127.0.0.1:9229/621111f9-ffcb-4e82-b718-48a145fa5db8 < For help, see: https://nodejs.org/en/docs/inspector +< < Debugger attached. -Break on start in myscript.js:1 -> 1 (function (exports, require, module, __filename, __dirname) { global.x = 5; - 2 setTimeout(() => { - 3 console.log('world'); +< + ok +Break on start in myscript.js:2 + 1 // myscript.js +> 2 global.x = 5; + 3 setTimeout(() => { + 4 debugger; debug> ``` @@ -44,28 +46,33 @@ Once the debugger is run, a breakpoint will occur at line 3: ```console $ node inspect myscript.js -< Debugger listening on ws://127.0.0.1:9229/80e7a814-7cd3-49fb-921a-2e02228cd5ba +< Debugger listening on ws://127.0.0.1:9229/621111f9-ffcb-4e82-b718-48a145fa5db8 < For help, see: https://nodejs.org/en/docs/inspector +< < Debugger attached. -Break on start in myscript.js:1 -> 1 (function (exports, require, module, __filename, __dirname) { global.x = 5; - 2 setTimeout(() => { - 3 debugger; +< + ok +Break on start in myscript.js:2 + 1 // myscript.js +> 2 global.x = 5; + 3 setTimeout(() => { + 4 debugger; debug> cont < hello -break in myscript.js:3 - 1 (function (exports, require, module, __filename, __dirname) { global.x = 5; - 2 setTimeout(() => { -> 3 debugger; - 4 console.log('world'); - 5 }, 1000); -debug> next +< break in myscript.js:4 - 2 setTimeout(() => { - 3 debugger; -> 4 console.log('world'); - 5 }, 1000); - 6 console.log('hello'); + 2 global.x = 5; + 3 setTimeout(() => { +> 4 debugger; + 5 console.log('world'); + 6 }, 1000); +debug> next +break in myscript.js:5 + 3 setTimeout(() => { + 4 debugger; +> 5 console.log('world'); + 6 }, 1000); + 7 console.log('hello'); debug> repl Press Ctrl+C to leave debug repl > x @@ -74,13 +81,15 @@ Press Ctrl+C to leave debug repl 4 debug> next < world -break in myscript.js:5 - 3 debugger; - 4 console.log('world'); -> 5 }, 1000); - 6 console.log('hello'); - 7 +< +break in myscript.js:6 + 4 debugger; + 5 console.log('world'); +> 6 }, 1000); + 7 console.log('hello'); + 8 debug> .exit +$ ``` The `repl` command allows code to be evaluated remotely. The `next` command @@ -129,11 +138,14 @@ is not loaded yet: ```console $ node inspect main.js -< Debugger listening on ws://127.0.0.1:9229/4e3db158-9791-4274-8909-914f7facf3bd +< Debugger listening on ws://127.0.0.1:9229/48a5b28a-550c-471b-b5e1-d13dd7165df9 < For help, see: https://nodejs.org/en/docs/inspector +< < Debugger attached. +< + ok Break on start in main.js:1 -> 1 (function (exports, require, module, __filename, __dirname) { const mod = require('./mod.js'); +> 1 const mod = require('./mod.js'); 2 mod.hello(); 3 mod.hello(); debug> setBreakpoint('mod.js', 22) @@ -239,6 +251,5 @@ Chrome DevTools doesn't support debugging [worker threads][] yet. [ndb][] can be used to debug them. [Chrome DevTools Protocol]: https://chromedevtools.github.io/devtools-protocol/ -[V8 Inspector]: #debugger_v8_inspector_integration_for_node_js [ndb]: https://github.com/GoogleChromeLabs/ndb/ [worker threads]: worker_threads.md diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index c37f6748deb9ab..484d565cc72d9d 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -1774,7 +1774,7 @@ Assigning properties to the top-level `this` as an alternative to `module.exports` is deprecated. Developers should use `exports` or `module.exports` instead. -### DEP0093: `crypto.fips` is deprecated and replaced. +### DEP0093: `crypto.fips` is deprecated and replaced + +Type: Documentation-only (supports [`--pending-deprecation`][]) + +Previously, `index.js` and extension searching lookups would apply to +`import 'pkg'` main entry point resolution, even when resolving ES modules. + +With this deprecation, all ES module main entry point resolutions require +an explicit [`"exports"` or `"main"` entry][] with the exact file extension. + [Legacy URL API]: url.md#url_legacy_url_api [NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf [RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3 [WHATWG URL API]: url.md#url_the_whatwg_url_api +[`"exports"` or `"main"` entry]: packages.md#packages_main_entry_point_export [`--pending-deprecation`]: cli.md#cli_pending_deprecation [`--throw-deprecation`]: cli.md#cli_throw_deprecation [`Buffer.allocUnsafeSlow(size)`]: buffer.md#buffer_static_method_buffer_allocunsafeslow_size diff --git a/doc/api/dgram.md b/doc/api/dgram.md index aec685ba8ce601..1e2d46f6159ceb 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -733,6 +733,9 @@ chained. + +* `order` {string} must be `'ipv4first'` or `'verbatim'`. + +Set the default value of `verbatim` in [`dns.lookup()`][] and +[`dnsPromises.lookup()`][]. The value could be: +* `ipv4first`: sets default `verbatim` `false`. +* `verbatim`: sets default `verbatim` `true`. + +The default is `ipv4first` and [`dns.setDefaultResultOrder()`][] have higher +priority than [`--dns-result-order`][]. When using [worker threads][], +[`dns.setDefaultResultOrder()`][] from the main thread won't affect the default +dns orders in workers. + ## `dns.setServers(servers)` + +* `order` {string} must be `'ipv4first'` or `'verbatim'`. + +Set the default value of `verbatim` in [`dns.lookup()`][] and +[`dnsPromises.lookup()`][]. The value could be: +* `ipv4first`: sets default `verbatim` `false`. +* `verbatim`: sets default `verbatim` `true`. + +The default is `ipv4first` and [`dnsPromises.setDefaultResultOrder()`][] have +higher priority than [`--dns-result-order`][]. When using [worker threads][], +[`dnsPromises.setDefaultResultOrder()`][] from the main thread won't affect the +default dns orders in workers. + ### `dnsPromises.setServers(servers)` + +A call to `process.dlopen()` failed. + ### `ERR_DEBUGGER_ERROR` + +An attempt was made to load a module that does not exist or was otherwise not +valid. + ### `ERR_INVALID_MODULE_SPECIFIER` @@ -1593,6 +1615,13 @@ A policy manifest resource had an invalid value for one of its fields. Update the manifest entry to match in order to resolve this error. See the documentation for [policy][] manifests for more information. + +### `ERR_MANIFEST_INVALID_SPECIFIER` + +A policy manifest resource had an invalid value for one of its dependency +mappings. Update the manifest entry to match to resolve this error. See the +documentation for [policy][] manifests for more information. + ### `ERR_MANIFEST_PARSE_POLICY` @@ -2597,7 +2626,7 @@ closed. [`new URL(input)`]: url.md#url_new_url_input_base [`new URLSearchParams(iterable)`]: url.md#url_new_urlsearchparams_iterable [`package.json`]: packages.md#packages_node_js_package_json_field_definitions -[`process.on('exit')`]: process.md#Event:-`'exit'` +[`process.on('exit')`]: process.md#process_event_exit [`process.send()`]: process.md#process_process_send_message_sendhandle_options_callback [`process.setUncaughtExceptionCaptureCallback()`]: process.md#process_process_setuncaughtexceptioncapturecallback_fn [`readable._read()`]: stream.md#stream_readable_read_size_1 diff --git a/doc/api/esm.md b/doc/api/esm.md index af029e36e39c3c..632569537b62e7 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -199,7 +199,13 @@ import _ from 'data:application/json,"world!"'; #### `node:` Imports `node:` URLs are supported as an alternative means to load Node.js builtin @@ -275,6 +281,10 @@ const buffer = readFileSync(new URL('./data.proto', import.meta.url)); added: - v13.9.0 - v12.16.2 +changes: + - version: v14.18.0 + pr-url: https://github.com/nodejs/node/pull/38587 + description: Add support for WHATWG `URL` object to `parentURL` parameter. --> > Stability: 1 - Experimental @@ -1322,17 +1332,17 @@ success! [`data:` URLs]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs [`export`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export [`import()`]: #esm_import_expressions -[`import.meta.url`]: #esm_import_meta_url [`import.meta.resolve`]: #esm_import_meta_resolve_specifier_parent +[`import.meta.url`]: #esm_import_meta_url [`import`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import [`module.createRequire()`]: module.md#module_module_createrequire_filename [`module.syncBuiltinESMExports()`]: module.md#module_module_syncbuiltinesmexports [`package.json`]: packages.md#packages_node_js_package_json_field_definitions [`process.dlopen`]: process.md#process_process_dlopen_module_filename_flags -[`transformSource` hook]: #esm_transformsource_source_context_defaulttransformsource [`string`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String +[`transformSource` hook]: #esm_transformsource_source_context_defaulttransformsource [`util.TextDecoder`]: util.md#util_class_util_textdecoder -[cjs-module-lexer]: https://github.com/guybedford/cjs-module-lexer/tree/1.2.1 +[cjs-module-lexer]: https://github.com/guybedford/cjs-module-lexer/tree/1.2.2 [custom https loader]: #esm_https_loader [special scheme]: https://url.spec.whatwg.org/#special-scheme [the official standard format]: https://tc39.github.io/ecma262/#sec-modules diff --git a/doc/api/events.md b/doc/api/events.md index 8d01f4851d7050..5cc49018e0ec11 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -1468,11 +1468,11 @@ target.removeEventListener('foo', handler, { capture: true }); added: v14.5.0 --> -* `event` {Object|Event} +* `event` {Event} +* 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`. The `event` -may be an `Event` object or any object with a `type` property whose value is -a `string`. +Dispatches the `event` to the list of handlers for `event.type`. The registered event listeners is synchronously invoked in the order they were registered. @@ -1620,8 +1620,8 @@ to the `EventTarget`. [`fs.ReadStream`]: fs.md#fs_class_fs_readstream [`net.Server`]: net.md#net_class_net_server [`process.on('warning')`]: process.md#process_event_warning -[stream]: stream.md [capturerejections]: #events_capture_rejections_of_promises +[error]: #events_error_events [rejection]: #events_emitter_symbol_for_nodejs_rejection_err_eventname_args [rejectionsymbol]: #events_events_capturerejectionsymbol -[error]: #events_error_events +[stream]: stream.md diff --git a/doc/api/fs.md b/doc/api/fs.md index 780d19e76ac181..88cbbb4afbc170 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -11,60 +11,51 @@ The `fs` module enables interacting with the file system in a way modeled on standard POSIX functions. -To use this module: +To use the promise-based APIs: -```js -const fs = require('fs'); +```mjs +import * as fs from 'fs/promises'; ``` -All file system operations have synchronous, callback, and promise-based -forms. +```cjs +const fs = require('fs/promises'); +``` -## Synchronous example +To use the callback and sync APIs: -The synchronous form blocks the Node.js event loop and further JavaScript -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 * as fs from 'fs'; +``` -```js +```cjs const fs = require('fs'); - -try { - fs.unlinkSync('/tmp/hello'); - console.log('successfully deleted /tmp/hello'); -} catch (err) { - // handle the error -} ``` -## Callback example +All file system operations have synchronous, callback, and promise-based +forms, and are accessible using both CommonJS syntax and ES6 Modules (ESM). -The callback form takes a completion callback function as its last -argument and invokes the operation asynchronously. The arguments passed to -the completion callback depend on the method, but the first argument is always -reserved for an exception. If the operation is completed successfully, then -the first argument is `null` or `undefined`. +## Promise example -```js -const fs = require('fs'); +Promise-based operations return a promise that is fulfilled when the +asynchronous operation is complete. -fs.unlink('/tmp/hello', (err) => { - if (err) throw err; +```mjs +import { unlink } from 'fs/promises'; + +try { + await unlink('/tmp/hello'); console.log('successfully deleted /tmp/hello'); -}); +} catch (error) { + console.error('there was an error:', error.message); +} ``` -## Promise example - -Promise-based operations return a `Promise` that is fulfilled when the -asynchronous operation is complete. - -```js -const fs = require('fs/promises'); +```cjs +const { unlink } = require('fs/promises'); (async function(path) { try { - await fs.unlink(path); + await unlink(path); console.log(`successfully deleted ${path}`); } catch (error) { console.error('there was an error:', error.message); @@ -72,1099 +63,1289 @@ const fs = require('fs/promises'); })('/tmp/hello'); ``` -## Ordering of callback and promise-based operations +## Callback example -There is no guaranteed ordering when using either the callback or -promise-based methods. For example, the following is prone to error -because the `fs.stat()` operation might complete before the `fs.rename()` -operation: +The callback form takes a completion callback function as its last +argument and invokes the operation asynchronously. The arguments passed to +the completion callback depend on the method, but the first argument is always +reserved for an exception. If the operation is completed successfully, then +the first argument is `null` or `undefined`. -```js -fs.rename('/tmp/hello', '/tmp/world', (err) => { - if (err) throw err; - console.log('renamed complete'); -}); -fs.stat('/tmp/world', (err, stats) => { +```mjs +import { unlink } from 'fs'; + +unlink('/tmp/hello', (err) => { if (err) throw err; - console.log(`stats: ${JSON.stringify(stats)}`); + console.log('successfully deleted /tmp/hello'); }); ``` -To correctly order the operations, move the `fs.stat()` call into the callback -of the `fs.rename()` operation: +```cjs +const { unlink } = require('fs'); -```js -fs.rename('/tmp/hello', '/tmp/world', (err) => { +unlink('/tmp/hello', (err) => { if (err) throw err; - fs.stat('/tmp/world', (err, stats) => { - if (err) throw err; - console.log(`stats: ${JSON.stringify(stats)}`); - }); + console.log('successfully deleted /tmp/hello'); }); ``` -Or, use the promise-based API: - -```js -const fs = require('fs/promises'); - -(async function(from, to) { - try { - await fs.rename(from, to); - const stats = await fs.stat(to); - console.log(`stats: ${JSON.stringify(stats)}`); - } catch (error) { - console.error('there was an error:', error.message); - } -})('/tmp/hello', '/tmp/world'); -``` - -## File paths - -Most `fs` operations accept filepaths that may be specified in the form of -a string, a [`Buffer`][], or a [`URL`][] object using the `file:` protocol. +The callback-based versions of the `fs` module APIs are preferable over +the use of the promise APIs when maximal performance (both in terms of +execution time and memory allocation are required). -String form paths are interpreted as UTF-8 character sequences identifying -the absolute or relative filename. Relative paths will be resolved relative -to the current working directory as determined by calling `process.cwd()`. +## Synchronous example -Example using an absolute path on POSIX: +The synchronous APIs block the Node.js event loop and further JavaScript +execution until the operation is complete. Exceptions are thrown immediately +and can be handled using `try…catch`, or can be allowed to bubble up. -```js -const fs = require('fs'); +```mjs +import { unlinkSync } from 'fs'; -fs.open('/open/some/file.txt', 'r', (err, fd) => { - if (err) throw err; - fs.close(fd, (err) => { - if (err) throw err; - }); -}); +try { + unlinkSync('/tmp/hello'); + console.log('successfully deleted /tmp/hello'); +} catch (err) { + // handle the error +} ``` -Example using a relative path on POSIX (relative to `process.cwd()`): +```cjs +const { unlinkSync } = require('fs'); -```js -fs.open('file.txt', 'r', (err, fd) => { - if (err) throw err; - fs.close(fd, (err) => { - if (err) throw err; - }); -}); +try { + unlinkSync('/tmp/hello'); + console.log('successfully deleted /tmp/hello'); +} catch (err) { + // handle the error +} ``` -Paths specified using a [`Buffer`][] are useful primarily on certain POSIX -operating systems that treat file paths as opaque byte sequences. On such -systems, it is possible for a single file path to contain sub-sequences that -use multiple character encodings. As with string paths, `Buffer` paths may -be relative or absolute: - -Example using an absolute path on POSIX: +## Promises API + -```js -fs.open(Buffer.from('/open/some/file.txt'), 'r', (err, fd) => { - if (err) throw err; - fs.close(fd, (err) => { - if (err) throw err; - }); -}); -``` +The `fs/promises` API provides asynchronous file system methods that return +promises. -On Windows, Node.js follows the concept of per-drive working directory. This -behavior can be observed when using a drive path without a backslash. For -example `fs.readdirSync('C:\\')` can potentially return a different result than -`fs.readdirSync('C:')`. For more information, see -[this MSDN page][MSDN-Rel-Path]. +The promise APIs use the underlying Node.js threadpool to perform file +system operations off the event loop thread. These operations are not +synchronized or threadsafe. Care must be taken when performing multiple +concurrent modifications on the same file or data corruption may occur. -### URL object support +### Class: `FileHandle` -For most `fs` module functions, the `path` or `filename` argument may be passed -as a WHATWG [`URL`][] object. Only [`URL`][] objects using the `file:` protocol -are supported. -```js -const fs = require('fs'); -const fileUrl = new URL('file:///tmp/hello'); +A {FileHandle} object is an object wrapper for a numeric file descriptor. -fs.readFileSync(fileUrl); -``` +Instances of the {FileHandle} object are created by the `fsPromises.open()` +method. -`file:` URLs are always absolute paths. +All {FileHandle} objects are {EventEmitter}s. -Using WHATWG [`URL`][] objects might introduce platform-specific behaviors. +If a {FileHandle} is not closed using the `filehandle.close()` method, it will +try to automatically close the file descriptor and emit a process warning, +helping to prevent memory leaks. Please do not rely on this behavior because +it can be unreliable and the file may not be closed. Instead, always explicitly +close {FileHandle}s. Node.js may change this behavior in the future. -On Windows, `file:` URLs with a host name convert to UNC paths, while `file:` -URLs with drive letters convert to local absolute paths. `file:` URLs without a -host name nor a drive letter will result in a throw: +#### `filehandle.appendFile(data[, options])` + -```js -// On Windows : +* `data` {string|Buffer|TypedArray|DataView} +* `options` {Object|string} + * `encoding` {string|null} **Default:** `'utf8'` +* Returns: {Promise} Fulfills with `undefined` upon success. -// - WHATWG file URLs with hostname convert to UNC path -// file://hostname/p/a/t/h/file => \\hostname\p\a\t\h\file -fs.readFileSync(new URL('file://hostname/p/a/t/h/file')); +Alias of [`filehandle.writeFile()`][]. -// - WHATWG file URLs with drive letters convert to absolute path -// file:///C:/tmp/hello => C:\tmp\hello -fs.readFileSync(new URL('file:///C:/tmp/hello')); +When operating on file handles, the mode cannot be changed from what it was set +to with [`fsPromises.open()`][]. Therefore, this is equivalent to +[`filehandle.writeFile()`][]. -// - WHATWG file URLs without hostname must have a drive letters -fs.readFileSync(new URL('file:///notdriveletter/p/a/t/h/file')); -fs.readFileSync(new URL('file:///c/p/a/t/h/file')); -// TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must be absolute -``` +#### `filehandle.chmod(mode)` + -`file:` URLs with drive letters must use `:` as a separator just after -the drive letter. Using another separator will result in a throw. +* `mode` {integer} the file mode bit mask. +* Returns: {Promise} Fulfills with `undefined` upon success. -On all other platforms, `file:` URLs with a host name are unsupported and will -result in a throw: +Modifies the permissions on the file. See chmod(2). -```js -// On other platforms: +#### `filehandle.chown(uid, gid)` + -// - WHATWG file URLs with hostname are unsupported -// file://hostname/p/a/t/h/file => throw! -fs.readFileSync(new URL('file://hostname/p/a/t/h/file')); -// TypeError [ERR_INVALID_FILE_URL_PATH]: must be absolute +* `uid` {integer} The file's new owner's user id. +* `gid` {integer} The file's new group's group id. +* Returns: {Promise} Fulfills with `undefined` upon success. -// - WHATWG file URLs convert to absolute path -// file:///tmp/hello => /tmp/hello -fs.readFileSync(new URL('file:///tmp/hello')); -``` +Changes the ownership of the file. A wrapper for chown(2). -A `file:` URL having encoded slash characters will result in a throw on all -platforms: +#### `filehandle.close()` + -```js -// On Windows -fs.readFileSync(new URL('file:///C:/p/a/t/h/%2F')); -fs.readFileSync(new URL('file:///C:/p/a/t/h/%2f')); -/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded -\ or / characters */ +* Returns: {Promise} Fulfills with `undefined` upon success. -// On POSIX -fs.readFileSync(new URL('file:///p/a/t/h/%2F')); -fs.readFileSync(new URL('file:///p/a/t/h/%2f')); -/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded -/ characters */ -``` +Closes the file handle after waiting for any pending operation on the handle to +complete. -On Windows, `file:` URLs having encoded backslash will result in a throw: +```mjs +import { open } from 'fs/promises'; -```js -// On Windows -fs.readFileSync(new URL('file:///C:/path/%5C')); -fs.readFileSync(new URL('file:///C:/path/%5c')); -/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded -\ or / characters */ +let filehandle; +try { + filehandle = await open('thefile.txt', 'r'); +} finally { + await filehandle?.close(); +} ``` -## File descriptors - -On POSIX systems, for every process, the kernel maintains a table of currently -open files and resources. Each open file is assigned a simple numeric -identifier called a *file descriptor*. At the system-level, all file system -operations use these file descriptors to identify and track each specific -file. Windows systems use a different but conceptually similar mechanism for -tracking resources. To simplify things for users, Node.js abstracts away the -specific differences between operating systems and assigns all open files a -numeric file descriptor. - -The `fs.open()` method is used to allocate a new file descriptor. Once -allocated, the file descriptor may be used to read data from, write data to, -or request information about the file. +#### `filehandle.datasync()` + -```js -fs.open('/open/some/file.txt', 'r', (err, fd) => { - if (err) throw err; - fs.fstat(fd, (err, stat) => { - if (err) throw err; - // use stat +* Returns: {Promise} Fulfills with `undefined` upon success. - // always close the file descriptor! - fs.close(fd, (err) => { - if (err) throw err; - }); - }); -}); -``` +Forces all currently queued I/O operations associated with the file to the +operating system's synchronized I/O completion state. Refer to the POSIX +fdatasync(2) documentation for details. -Most operating systems limit the number of file descriptors that may be open -at any given time so it is critical to close the descriptor when operations -are completed. Failure to do so will result in a memory leak that will -eventually cause an application to crash. +Unlike `filehandle.sync` this method does not flush modified metadata. -## Threadpool usage +#### `filehandle.fd` + -All file system APIs except `fs.FSWatcher()` and those that are explicitly -synchronous use libuv's threadpool, which can have surprising and negative -performance implications for some applications. See the -[`UV_THREADPOOL_SIZE`][] documentation for more information. +* {number} The numeric file descriptor managed by the {FileHandle} object. -## Class: `fs.Dir` +#### `filehandle.read(buffer, offset, length, position)` -A class representing a directory stream. - -Created by [`fs.opendir()`][], [`fs.opendirSync()`][], or -[`fsPromises.opendir()`][]. +* `buffer` {Buffer|TypedArray|DataView} A buffer that will be filled with the + file data read. +* `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` +* `position` {integer} 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. +* 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. -```js -const fs = require('fs'); +Reads data from the file and stores that in the given buffer. -async function print(path) { - const dir = await fs.promises.opendir(path); - for await (const dirent of dir) { - console.log(dirent.name); - } -} -print('./').catch(console.error); -``` +If the file is not modified concurrently, the end-of-file is reached when the +number of bytes read is zero. -### `dir.close()` +#### `filehandle.read([options])` +* `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` + * `position` {integer} 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. -* Returns: {Promise} - -Asynchronously close the directory's underlying resource handle. -Subsequent reads will result in errors. - -A `Promise` is returned that will be fulfilled after the resource has been -closed. +If the file is not modified concurrently, the end-of-file is reached when the +number of bytes read is zero. -### `dir.close(callback)` +#### `filehandle.readFile(options)` -* `callback` {Function} - * `err` {Error} +* `options` {Object|string} + * `encoding` {string|null} **Default:** `null` + * `signal` {AbortSignal} allows aborting an in-progress readFile +* Returns: {Promise} Fulfills upon a successful read with the contents of the + file. If no encoding is specified (using `options.encoding`), the data is + returned as a {Buffer} object. Otherwise, the data will be a string. -Asynchronously close the directory's underlying resource handle. -Subsequent reads will result in errors. +Asynchronously reads the entire contents of a file. -The `callback` will be called after the resource handle has been closed. +If `options` is a string, then it specifies the `encoding`. -### `dir.closeSync()` - +The {FileHandle} has to support reading. -Synchronously close the directory's underlying resource handle. -Subsequent reads will result in errors. +If one or more `filehandle.read()` calls are made on a file handle and then a +`filehandle.readFile()` call is made, the data will be read from the current +position till the end of the file. It doesn't always read from the beginning +of the file. -### `dir.path` +#### `filehandle.readv(buffers[, position])` -* {string} +* `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. +* Returns: {Promise} Fulfills upon success an object containing two properties: + * `bytesRead` {integer} the number of bytes read + * `buffers` {Buffer[]|TypedArray[]|DataView[]} property containing + a reference to the `buffers` input. -The read-only path of this directory as was provided to [`fs.opendir()`][], -[`fs.opendirSync()`][], or [`fsPromises.opendir()`][]. +Read from a file and write to an array of {ArrayBufferView}s -### `dir.read()` +#### `filehandle.stat([options])` -* Returns: {Promise} containing {fs.Dirent|null} - -Asynchronously read the next directory entry via readdir(3) as an -[`fs.Dirent`][]. - -After the read is completed, a `Promise` is returned that will be fulfilled -with an [`fs.Dirent`][], or `null` if there are no more directory entries to -read. - -Directory entries returned by this function are in no particular order as -provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory might not be -included in the iteration results. +* `options` {Object} + * `bigint` {boolean} Whether the numeric values in the returned + {fs.Stats} object should be `bigint`. **Default:** `false`. +* Returns: {Promise} Fulfills with an {fs.Stats} for the file. -### `dir.read(callback)` +#### `filehandle.sync()` -* `callback` {Function} - * `err` {Error} - * `dirent` {fs.Dirent|null} - -Asynchronously read the next directory entry via readdir(3) as an -[`fs.Dirent`][]. - -After the read is completed, the `callback` will be called with an -[`fs.Dirent`][], or `null` if there are no more directory entries to read. +* Returns: {Promise} Fufills with `undefined` upon success. -Directory entries returned by this function are in no particular order as -provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory might not be -included in the iteration results. +Request that all data for the open file descriptor is flushed to the storage +device. The specific implementation is operating system and device specific. +Refer to the POSIX fsync(2) documentation for more detail. -### `dir.readSync()` +#### `filehandle.truncate(len)` -* Returns: {fs.Dirent|null} - -Synchronously read the next directory entry via readdir(3) as an -[`fs.Dirent`][]. - -If there are no more directory entries to read, `null` will be returned. +* `len` {integer} **Default:** `0` +* Returns: {Promise} Fulfills with `undefined` upon success. -Directory entries returned by this function are in no particular order as -provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory might not be -included in the iteration results. +Truncates the file. -### `dir[Symbol.asyncIterator]()` - +If the file was larger than `len` bytes, only the first `len` bytes will be +retained in the file. -* Returns: {AsyncIterator} of {fs.Dirent} +The following example retains only the first four bytes of the file: -Asynchronously iterates over the directory via readdir(3) until all entries have -been read. +```mjs +import { open } from 'fs/promises'; -Entries returned by the async iterator are always an [`fs.Dirent`][]. -The `null` case from `dir.read()` is handled internally. +let filehandle = null; +try { + filehandle = await open('temp.txt', 'r+'); + await filehandle.truncate(4); +} finally { + await filehandle?.close(); +} +``` -See [`fs.Dir`][] for an example. +If the file previously was shorter than `len` bytes, it is extended, and the +extended part is filled with null bytes (`'\0'`): -Directory entries returned by this iterator are in no particular order as -provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory might not be -included in the iteration results. +If `len` is negative then `0` will be used. -## Class: `fs.Dirent` +#### `filehandle.utimes(atime, mtime)` -A representation of a directory entry, which can be a file or a subdirectory -within the directory, as returned by reading from an [`fs.Dir`][]. The -directory entry is a combination of the file name and file type pairs. +* `atime` {number|string|Date} +* `mtime` {number|string|Date} +* Returns: {Promise} -Additionally, when [`fs.readdir()`][] or [`fs.readdirSync()`][] is called with -the `withFileTypes` option set to `true`, the resulting array is filled with -`fs.Dirent` objects, rather than strings or `Buffers`. +Change the file system timestamps of the object referenced by the {FileHandle} +then resolves the promise with no arguments upon success. -### `dirent.isBlockDevice()` +This function does not work on AIX versions before 7.1, it will reject the +promise with an error using code `UV_ENOSYS`. + +#### `filehandle.write(buffer[, offset[, length[, position]]])` -* Returns: {boolean} - -Returns `true` if the `fs.Dirent` object describes a block device. +* `buffer` {Buffer|TypedArray|DataView|string|Object} +* `offset` {integer} The start position from within `buffer` where the data + to write begins. **Default:** `0` +* `length` {integer} The number of bytes from `buffer` to write. **Default:** + `buffer.byteLength` +* `position` {integer} The offset from the beginning of the file where the + data from `buffer` 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. +* Returns: {Promise} -### `dirent.isCharacterDevice()` - +Write `buffer` to the file. -* Returns: {boolean} +If `buffer` is a plain object, it must have an own (not inherited) `toString` +function property. -Returns `true` if the `fs.Dirent` object describes a character device. +The promise is resolved with an object containing two properties: -### `dirent.isDirectory()` - +* `bytesWritten` {integer} the number of bytes written +* `buffer` {Buffer|TypedArray|DataView|string|Object} a reference to the + `buffer` written. -* Returns: {boolean} +It is unsafe to use `filehandle.write()` multiple times on the same file +without waiting for the promise to be resolved (or rejected). For this +scenario, use [`fs.createWriteStream()`][]. -Returns `true` if the `fs.Dirent` object describes a file system -directory. +On Linux, positional writes do not work when the file is opened in append mode. +The kernel ignores the position argument and always appends the data to +the end of the file. -### `dirent.isFIFO()` +#### `filehandle.write(string[, position[, encoding]])` -* Returns: {boolean} +* `string` {string|Object} +* `position` {integer} 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. +* `encoding` {string} The expected string encoding. **Default:** `'utf8'` +* Returns: {Promise} -Returns `true` if the `fs.Dirent` object describes a first-in-first-out -(FIFO) pipe. +Write `string` to the file. If `string` is not a string, or an object with an +own `toString` function property, the promise is rejected with an error. -### `dirent.isFile()` - +The promise is resolved with an object containing two properties: -* Returns: {boolean} +* `bytesWritten` {integer} the number of bytes written +* `buffer` {string|Object} a reference to the `string` written. + +It is unsafe to use `filehandle.write()` multiple times on the same file +without waiting for the promise to be resolved (or rejected). For this +scenario, use [`fs.createWriteStream()`][]. -Returns `true` if the `fs.Dirent` object describes a regular file. +On Linux, positional writes do not work when the file is opened in append mode. +The kernel ignores the position argument and always appends the data to +the end of the file. -### `dirent.isSocket()` +#### `filehandle.writeFile(data, options)` -* Returns: {boolean} +* `data` {string|Buffer|TypedArray|DataView|Object|AsyncIterable|Iterable + |Stream} +* `options` {Object|string} + * `encoding` {string|null} The expected character encoding when `data` is a + string. **Default:** `'utf8'` +* Returns: {Promise} -Returns `true` if the `fs.Dirent` object describes a socket. +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, or an +object with an own `toString` function +property. The promise is resolved with no arguments upon success. -### `dirent.isSymbolicLink()` - +If `options` is a string, then it specifies the `encoding`. -* Returns: {boolean} +The {FileHandle} has to support writing. + +It is unsafe to use `filehandle.writeFile()` multiple times on the same file +without waiting for the promise to be resolved (or rejected). -Returns `true` if the `fs.Dirent` object describes a symbolic link. +If one or more `filehandle.write()` calls are made on a file handle and then a +`filehandle.writeFile()` call is made, the data will be written from the +current position till the end of the file. It doesn't always write from the +beginning of the file. -### `dirent.name` +#### `filehandle.writev(buffers[, position])` -* {string|Buffer} +* `buffers` {Buffer[]|TypedArray[]|DataView[]} +* `position` {integer} 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. +* Returns: {Promise} -The file name that this `fs.Dirent` object refers to. The type of this -value is determined by the `options.encoding` passed to [`fs.readdir()`][] or -[`fs.readdirSync()`][]. +Write an array of {ArrayBufferView}s to the file. -## Class: `fs.FSWatcher` - +The promise is resolved with an object containing a two properties: -* Extends {EventEmitter} +* `bytesWritten` {integer} the number of bytes written +* `buffers` {Buffer[]|TypedArray[]|DataView[]} a reference to the `buffers` + input. -A successful call to [`fs.watch()`][] method will return a new `fs.FSWatcher` -object. +It is unsafe to call `writev()` multiple times on the same file without waiting +for the promise to be resolved (or rejected). -All `fs.FSWatcher` objects emit a `'change'` event whenever a specific watched -file is modified. +On Linux, positional writes don't work when the file is opened in append mode. +The kernel ignores the position argument and always appends the data to +the end of the file. -### Event: `'change'` +### `fsPromises.access(path[, mode])` -* `eventType` {string} The type of change event that has occurred -* `filename` {string|Buffer} The filename that changed (if relevant/available) +* `path` {string|Buffer|URL} +* `mode` {integer} **Default:** `fs.constants.F_OK` +* Returns: {Promise} Fulfills with `undefined` upon success. -Emitted when something changes in a watched directory or file. -See more details in [`fs.watch()`][]. +Tests a user's permissions for the file or directory specified by `path`. +The `mode` argument is an optional integer that specifies the accessibility +checks to be performed. Check [File access constants][] for possible values +of `mode`. It is possible to create a mask consisting of the bitwise OR of +two or more values (e.g. `fs.constants.W_OK | fs.constants.R_OK`). -The `filename` argument may not be provided depending on operating system -support. If `filename` is provided, it will be provided as a `Buffer` if -`fs.watch()` is called with its `encoding` option set to `'buffer'`, otherwise -`filename` will be a UTF-8 string. +If the accessibility check is successful, the promise is resolved with no +value. If any of the accessibility checks fail, the promise is rejected +with an {Error} object. The following example checks if the file +`/etc/passwd` can be read and written by the current process. -```js -// Example when handled through fs.watch() listener -fs.watch('./tmp', { encoding: 'buffer' }, (eventType, filename) => { - if (filename) { - console.log(filename); - // Prints: - } -}); +```mjs +import { access } from 'fs/promises'; +import { constants } from 'fs'; + +try { + await access('/etc/passwd', constants.R_OK | constants.W_OK); + console.log('can access'); +} catch { + console.error('cannot access'); +} ``` -### Event: `'close'` +Using `fsPromises.access()` to check for the accessibility of a file before +calling `fsPromises.open()` is not recommended. Doing so introduces a race +condition, since other processes may change the file's state between the two +calls. Instead, user code should open/read/write the file directly and handle +the error raised if the file is not accessible. + +### `fsPromises.appendFile(path, data[, options])` -Emitted when the watcher stops watching for changes. The closed -`fs.FSWatcher` object is no longer usable in the event handler. +* `path` {string|Buffer|URL|FileHandle} filename or {FileHandle} +* `data` {string|Buffer} +* `options` {Object|string} + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'a'`. +* Returns: {Promise} Fulfills with `undefined` upon success. -### Event: `'error'` - +Asynchronously append data to a file, creating the file if it does not yet +exist. `data` can be a string or a {Buffer}. -* `error` {Error} +If `options` is a string, then it specifies the `encoding`. -Emitted when an error occurs while watching the file. The errored -`fs.FSWatcher` object is no longer usable in the event handler. +The `mode` option only affects the newly created file. See [`fs.open()`][] +for more details. + +The `path` may be specified as a {FileHandle} that has been opened +for appending (using `fsPromises.open()`). -### `watcher.close()` +### `fsPromises.chmod(path, mode)` -Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the -`fs.FSWatcher` object is no longer usable. +* `path` {string|Buffer|URL} +* `mode` {string|integer} +* Returns: {Promise} Fulfills with `undefined` upon success. + +Changes the permissions of a file. -### `watcher.ref()` +### `fsPromises.chown(path, uid, gid)` -* Returns: {fs.FSWatcher} - -When called, requests that the Node.js event loop *not* exit so long as the -`FSWatcher` is active. Calling `watcher.ref()` multiple times will have -no effect. +* `path` {string|Buffer|URL} +* `uid` {integer} +* `gid` {integer} +* Returns: {Promise} Fulfills with `undefined` upon success. -By default, all `FSWatcher` objects are "ref'ed", making it normally -unnecessary to call `watcher.ref()` unless `watcher.unref()` had been -called previously. +Changes the ownership of a file. -### `watcher.unref()` +### `fsPromises.copyFile(src, dest[, mode])` -* Returns: {fs.FSWatcher} +* `src` {string|Buffer|URL} source filename to copy +* `dest` {string|Buffer|URL} destination filename of the copy operation +* `mode` {integer} Optional modifiers that specify the behavior of the copy + operation. It is possible to create a mask consisting of the bitwise OR of + two or more values (e.g. + `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`) + **Default:** `0`. + * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` + already exists. + * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create + a copy-on-write reflink. If the platform does not support copy-on-write, + then a fallback copy mechanism is used. + * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + create a copy-on-write reflink. If the platform does not support + copy-on-write, then the operation will fail. +* Returns: {Promise} Fulfills with `undefined` upon success. -When called, the active `FSWatcher` object will not require the Node.js -event loop to remain active. If there is no other activity keeping the -event loop running, the process may exit before the `FSWatcher` object's -callback is invoked. Calling `watcher.unref()` multiple times will have -no effect. +Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it +already exists. -## Class: `fs.StatWatcher` - +No guarantees are made about the atomicity of the copy operation. If an +error occurs after the destination file has been opened for writing, an attempt +will be made to remove the destination. -* Extends {EventEmitter} +```mjs +import { constants } from 'fs'; +import { copyFile } from 'fs/promises'; -A successful call to `fs.watchFile()` method will return a new `fs.StatWatcher` -object. +try { + await copyFile('source.txt', 'destination.txt'); + console.log('source.txt was copied to destination.txt'); +} catch { + console.log('The file could not be copied'); +} + +// By using COPYFILE_EXCL, the operation will fail if destination.txt exists. +try { + await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + console.log('source.txt was copied to destination.txt'); +} catch { + console.log('The file could not be copied'); +} +``` -### `watcher.ref()` +### `fsPromises.lchmod(path, mode)` -* Returns: {fs.StatWatcher} +* `path` {string|Buffer|URL} +* `mode` {integer} +* Returns: {Promise} Fulfills with `undefined` upon success. -When called, requests that the Node.js event loop *not* exit so long as the -`StatWatcher` is active. Calling `watcher.ref()` multiple times will have -no effect. +Changes the permissions on a symbolic link. -By default, all `StatWatcher` objects are "ref'ed", making it normally -unnecessary to call `watcher.ref()` unless `watcher.unref()` had been -called previously. +This method is only implemented on macOS. -### `watcher.unref()` +### `fsPromises.lchown(path, uid, gid)` -* Returns: {fs.StatWatcher} +* `path` {string|Buffer|URL} +* `uid` {integer} +* `gid` {integer} +* Returns: {Promise} Fulfills with `undefined` upon success. -When called, the active `StatWatcher` object will not require the Node.js -event loop to remain active. If there is no other activity keeping the -event loop running, the process may exit before the `StatWatcher` object's -callback is invoked. Calling `watcher.unref()` multiple times will have -no effect. +Changes the ownership on a symbolic link. -## Class: `fs.ReadStream` +### `fsPromises.lutimes(path, atime, mtime)` -* Extends: {stream.Readable} - -Instances of `fs.ReadStream` are created and returned using the -[`fs.createReadStream()`][] function. - -### Event: `'close'` - +* `path` {string|Buffer|URL} +* `atime` {number|string|Date} +* `mtime` {number|string|Date} +* Returns: {Promise} Fulfills with `undefined` upon success. -Emitted when the `fs.ReadStream`'s underlying file descriptor has been closed. +Changes the access and modification times of a file in the same way as +[`fsPromises.utimes()`][], with the difference that if the path refers to a +symbolic link, then the link is not dereferenced: instead, the timestamps of +the symbolic link itself are changed. -### Event: `'open'` +### `fsPromises.link(existingPath, newPath)` -* `fd` {integer} Integer file descriptor used by the `ReadStream`. +* `existingPath` {string|Buffer|URL} +* `newPath` {string|Buffer|URL} +* Returns: {Promise} Fulfills with `undefined` upon success. -Emitted when the `fs.ReadStream`'s file descriptor has been opened. +Creates a new link from the `existingPath` to the `newPath`. See the POSIX +link(2) documentation for more detail. -### Event: `'ready'` +### `fsPromises.lstat(path[, options])` -Emitted when the `fs.ReadStream` is ready to be used. +* `path` {string|Buffer|URL} +* `options` {Object} + * `bigint` {boolean} Whether the numeric values in the returned + {fs.Stats} object should be `bigint`. **Default:** `false`. +* Returns: {Promise} Fulfills with the {fs.Stats} object for the given + symbolic link `path`. -Fires immediately after `'open'`. +Equivalent to [`fsPromises.stat()`][] unless `path` refers to a symbolic link, +in which case the link itself is stat-ed, not the file that it refers to. +Refer to the POSIX lstat(2) document for more detail. -### `readStream.bytesRead` +### `fsPromises.mkdir(path[, options])` -* {number} +* `path` {string|Buffer|URL} +* `options` {Object|integer} + * `recursive` {boolean} **Default:** `false` + * `mode` {string|integer} Not supported on Windows. **Default:** `0o777`. +* Returns: {Promise} Upon success, fulfills with `undefined` if `recursive` + is `false`, or the first directory path created if `recursive` is `true`. -The number of bytes that have been read so far. +Asynchronously creates a directory. + +The optional `options` argument can be an integer specifying `mode` (permission +and sticky bits), or an object with a `mode` property and a `recursive` +property indicating whether parent directories should be created. Calling +`fsPromises.mkdir()` when `path` is a directory that exists results in a +rejection only when `recursive` is false. -### `readStream.path` +### `fsPromises.mkdtemp(prefix[, options])` -* {string|Buffer} +* `prefix` {string} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {Promise} Fulfills with a string containing the filesystem path + of the newly created temporary directory. -The path to the file the stream is reading from as specified in the first -argument to `fs.createReadStream()`. If `path` is passed as a string, then -`readStream.path` will be a string. If `path` is passed as a `Buffer`, then -`readStream.path` will be a `Buffer`. +Creates a unique temporary directory. A unique directory name is generated by +appending six random characters to the end of the provided `prefix`. Due to +platform inconsistencies, avoid trailing `X` characters in `prefix`. Some +platforms, notably the BSDs, can return more than six random characters, and +replace trailing `X` characters in `prefix` with random characters. -### `readStream.pending` - +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use. -* {boolean} +```mjs +import { mkdtemp } from 'fs/promises'; -This property is `true` if the underlying file has not been opened yet, -i.e. before the `'ready'` event is emitted. +try { + await mkdtemp(path.join(os.tmpdir(), 'foo-')); +} catch (err) { + console.error(err); +} +``` + +The `fsPromises.mkdtemp()` method will append the six randomly selected +characters directly to the `prefix` string. For instance, given a directory +`/tmp`, if the intention is to create a temporary directory *within* `/tmp`, the +`prefix` must end with a trailing platform-specific path separator +(`require('path').sep`). -## Class: `fs.Stats` +### `fsPromises.open(path, flags[, mode])` -A `fs.Stats` object provides information about a file. - -Objects returned from [`fs.stat()`][], [`fs.lstat()`][] and [`fs.fstat()`][] and -their synchronous counterparts are of this type. -If `bigint` in the `options` passed to those methods is true, the numeric values -will be `bigint` instead of `number`, and the object will contain additional -nanosecond-precision properties suffixed with `Ns`. +* `path` {string|Buffer|URL} +* `flags` {string|number} See [support of file system `flags`][]. + **Default:** `'r'`. +* `mode` {string|integer} Sets the file mode (permission and sticky bits) + if the file is created. **Default:** `0o666` (readable and writable) +* Returns: {Promise} Fulfills with a {FileHandle} object. -```console -Stats { - dev: 2114, - ino: 48064969, - mode: 33188, - nlink: 1, - uid: 85, - gid: 100, - rdev: 0, - size: 527, - blksize: 4096, - blocks: 8, - atimeMs: 1318289051000.1, - mtimeMs: 1318289051000.1, - ctimeMs: 1318289051000.1, - birthtimeMs: 1318289051000.1, - atime: Mon, 10 Oct 2011 23:24:11 GMT, - mtime: Mon, 10 Oct 2011 23:24:11 GMT, - ctime: Mon, 10 Oct 2011 23:24:11 GMT, - birthtime: Mon, 10 Oct 2011 23:24:11 GMT } -``` +Opens a {FileHandle}. -`bigint` version: +Refer to the POSIX open(2) documentation for more detail. -```console -BigIntStats { - dev: 2114n, - ino: 48064969n, - mode: 33188n, - nlink: 1n, - uid: 85n, - gid: 100n, - rdev: 0n, - size: 527n, - blksize: 4096n, - blocks: 8n, - atimeMs: 1318289051000n, - mtimeMs: 1318289051000n, - ctimeMs: 1318289051000n, - birthtimeMs: 1318289051000n, - atimeNs: 1318289051000000000n, - mtimeNs: 1318289051000000000n, - ctimeNs: 1318289051000000000n, - birthtimeNs: 1318289051000000000n, - atime: Mon, 10 Oct 2011 23:24:11 GMT, - mtime: Mon, 10 Oct 2011 23:24:11 GMT, - ctime: Mon, 10 Oct 2011 23:24:11 GMT, - birthtime: Mon, 10 Oct 2011 23:24:11 GMT } -``` +Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented +by [Naming Files, Paths, and Namespaces][]. Under NTFS, if the filename contains +a colon, Node.js will open a file system stream, as described by +[this MSDN page][MSDN-Using-Streams]. -### `stats.isBlockDevice()` +### `fsPromises.opendir(path[, options])` -* Returns: {boolean} - -Returns `true` if the `fs.Stats` object describes a block device. +* `path` {string|Buffer|URL} +* `options` {Object} + * `encoding` {string|null} **Default:** `'utf8'` + * `bufferSize` {number} Number of directory entries that are buffered + internally when reading from the directory. Higher values lead to better + performance but higher memory usage. **Default:** `32` +* Returns: {Promise} Fulfills with an {fs.Dir}. -### `stats.isCharacterDevice()` - +Asynchronously open a directory for iterative scanning. See the POSIX +opendir(3) documentation for more detail. -* Returns: {boolean} +Creates an {fs.Dir}, which contains all further functions for reading from +and cleaning up the directory. -Returns `true` if the `fs.Stats` object describes a character device. +The `encoding` option sets the encoding for the `path` while opening the +directory and subsequent read operations. -### `stats.isDirectory()` - +Example using async iteration: -* Returns: {boolean} +```mjs +import { opendir } from 'fs/promises'; -Returns `true` if the `fs.Stats` object describes a file system directory. +try { + const dir = await opendir('./'); + for await (const dirent of dir) + console.log(dirent.name); +} catch (err) { + console.error(err); +} +``` -If the `fs.Stats` object was obtained from [`fs.lstat()`][], this method will -always return `false`. This is because [`fs.lstat()`][] returns information -about a symbolic link itself and not the path it resolves to. +When using the async iterator, the {fs.Dir} object will be automatically +closed after the iterator exits. -### `stats.isFIFO()` +### `fsPromises.readdir(path[, options])` -* Returns: {boolean} +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` + * `withFileTypes` {boolean} **Default:** `false` +* Returns: {Promise} Fulfills with an array of the names of the files in + the directory excluding `'.'` and `'..'`. -Returns `true` if the `fs.Stats` object describes a first-in-first-out (FIFO) -pipe. +Reads the contents of a directory. -### `stats.isFile()` - - -* Returns: {boolean} - -Returns `true` if the `fs.Stats` object describes a regular file. +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use for +the filenames. If the `encoding` is set to `'buffer'`, the filenames returned +will be passed as {Buffer} objects. -### `stats.isSocket()` - +If `options.withFileTypes` is set to `true`, the resolved array will contain +{fs.Dirent} objects. -* Returns: {boolean} +```mjs +import { readdir } from 'fs/promises'; -Returns `true` if the `fs.Stats` object describes a socket. +try { + const files = await readdir(path); + for (const file of files) + console.log(file); +} catch (err) { + console.error(err); +} +``` -### `stats.isSymbolicLink()` +### `fsPromises.readFile(path[, options])` -* Returns: {boolean} - -Returns `true` if the `fs.Stats` object describes a symbolic link. - -This method is only valid when using [`fs.lstat()`][]. - -### `stats.dev` - -* {number|bigint} - -The numeric identifier of the device containing the file. - -### `stats.ino` - -* {number|bigint} - -The file system specific "Inode" number for the file. - -### `stats.mode` - -* {number|bigint} - -A bit-field describing the file type and mode. - -### `stats.nlink` +* `path` {string|Buffer|URL|FileHandle} filename or `FileHandle` +* `options` {Object|string} + * `encoding` {string|null} **Default:** `null` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'r'`. + * `signal` {AbortSignal} allows aborting an in-progress readFile +* Returns: {Promise} Fulfills with the contents of the file. -* {number|bigint} +Asynchronously reads the entire contents of a file. -The number of hard-links that exist for the file. +If no encoding is specified (using `options.encoding`), the data is returned +as a {Buffer} object. Otherwise, the data will be a string. -### `stats.uid` +If `options` is a string, then it specifies the encoding. -* {number|bigint} +When the `path` is a directory, the behavior of `fsPromises.readFile()` is +platform-specific. On macOS, Linux, and Windows, the promise will be rejected +with an error. On FreeBSD, a representation of the directory's contents will be +returned. -The numeric user identifier of the user that owns the file (POSIX). +It is possible to abort an ongoing `readFile` using an {AbortSignal}. If a +request is aborted the promise returned is rejected with an `AbortError`: -### `stats.gid` +```mjs +import { readFile } from 'fs/promises'; -* {number|bigint} +try { + const controller = new AbortController(); + const { signal } = controller; + const promise = readFile(fileName, { signal }); -The numeric group identifier of the group that owns the file (POSIX). + // Abort the request before the promise settles. + controller.abort(); -### `stats.rdev` + await promise; +} catch (err) { + // When a request is aborted - err is an AbortError + console.error(err); +} +``` -* {number|bigint} +Aborting an ongoing request does not abort individual operating +system requests but rather the internal buffering `fs.readFile` performs. -A numeric device identifier if the file represents a device. +Any specified {FileHandle} has to support reading. -### `stats.size` +### `fsPromises.readlink(path[, options])` + +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {Promise} Fulfills with the `linkString` upon success. -* {number|bigint} +Reads the contents of the symbolic link referred to by `path`. See the POSIX +readlink(2) documentation for more detail. The promise is resolved with the +`linkString` upon success. -The size of the file in bytes. +The optional `options` argument can be a string specifying an encoding, or an +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. -### `stats.blksize` +### `fsPromises.realpath(path[, options])` + -* {number|bigint} +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {Promise} Fulfills with the resolved path upon success. -The file system block size for i/o operations. +Determines the actual location of `path` using the same semantics as the +`fs.realpath.native()` function. -### `stats.blocks` +Only paths that can be converted to UTF8 strings are supported. -* {number|bigint} +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use for +the path. If the `encoding` is set to `'buffer'`, the path returned will be +passed as a {Buffer} object. -The number of blocks allocated for this file. +On Linux, when Node.js is linked against musl libc, the procfs file system must +be mounted on `/proc` in order for this function to work. Glibc does not have +this restriction. -### `stats.atimeMs` +### `fsPromises.rename(oldPath, newPath)` -* {number|bigint} +* `oldPath` {string|Buffer|URL} +* `newPath` {string|Buffer|URL} +* Returns: {Promise} Fulfills with `undefined` upon success. -The timestamp indicating the last time this file was accessed expressed in -milliseconds since the POSIX Epoch. +Renames `oldPath` to `newPath`. -### `stats.mtimeMs` +### `fsPromises.rmdir(path[, options])` -* {number|bigint} - -The timestamp indicating the last time this file was modified expressed in -milliseconds since the POSIX Epoch. +* `path` {string|Buffer|URL} +* `options` {Object} + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js retries the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode, errors are not reported if `path` does not exist, and + operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. +* Returns: {Promise} Fulfills with `undefined` upon success. -### `stats.ctimeMs` - +Removes the directory identified by `path`. -* {number|bigint} +Using `fsPromises.rmdir()` on a file (not a directory) results in the +promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR` +error on POSIX. -The timestamp indicating the last time the file status was changed expressed -in milliseconds since the POSIX Epoch. +Setting `recursive` to `true` results in behavior similar to the Unix command +`rm -rf`: an error will not be raised for paths that do not exist, and paths +that represent files will be deleted. The permissive behavior of the +`recursive` option is deprecated, `ENOTDIR` and `ENOENT` will be thrown in +the future. -### `stats.birthtimeMs` +### `fsPromises.rm(path[, options])` -* {number|bigint} +* `path` {string|Buffer|URL} +* `options` {Object} + * `force` {boolean} When `true`, exceptions will be ignored if `path` does + not exist. **Default:** `false`. + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js will retry the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. +* Returns: {Promise} Fulfills with `undefined` upon success. -The timestamp indicating the creation time of this file expressed in -milliseconds since the POSIX Epoch. +Removes files and directories (modeled on the standard POSIX `rm` utility). -### `stats.atimeNs` +### `fsPromises.stat(path[, options])` -* {bigint} - -Only present when `bigint: true` is passed into the method that generates -the object. -The timestamp indicating the last time this file was accessed expressed in -nanoseconds since the POSIX Epoch. +* `path` {string|Buffer|URL} +* `options` {Object} + * `bigint` {boolean} Whether the numeric values in the returned + {fs.Stats} object should be `bigint`. **Default:** `false`. +* Returns: {Promise} Fulfills with the {fs.Stats} object for the + given `path`. -### `stats.mtimeNs` +### `fsPromises.symlink(target, path[, type])` -* {bigint} +* `target` {string|Buffer|URL} +* `path` {string|Buffer|URL} +* `type` {string} **Default:** `'file'` +* Returns: {Promise} Fulfills with `undefined` upon success. -Only present when `bigint: true` is passed into the method that generates -the object. -The timestamp indicating the last time this file was modified expressed in -nanoseconds since the POSIX Epoch. +Creates a symbolic link. + +The `type` argument is only used on Windows platforms and can be one of `'dir'`, +`'file'`, or `'junction'`. Windows junction points require the destination path +to be absolute. When using `'junction'`, the `target` argument will +automatically be normalized to absolute path. -### `stats.ctimeNs` +### `fsPromises.truncate(path[, len])` -* {bigint} +* `path` {string|Buffer|URL} +* `len` {integer} **Default:** `0` +* Returns: {Promise} Fulfills with `undefined` upon success. -Only present when `bigint: true` is passed into the method that generates -the object. -The timestamp indicating the last time the file status was changed expressed -in nanoseconds since the POSIX Epoch. +Truncates (shortens or extends the length) of the content at `path` to `len` +bytes. -### `stats.birthtimeNs` +### `fsPromises.unlink(path)` -* {bigint} +* `path` {string|Buffer|URL} +* Returns: {Promise} Fulfills with `undefined` upon success. -Only present when `bigint: true` is passed into the method that generates -the object. -The timestamp indicating the creation time of this file expressed in -nanoseconds since the POSIX Epoch. +If `path` refers to a symbolic link, then the link is removed without affecting +the file or directory to which that link refers. If the `path` refers to a file +path that is not a symbolic link, the file is deleted. See the POSIX unlink(2) +documentation for more detail. -### `stats.atime` +### `fsPromises.utimes(path, atime, mtime)` -* {Date} - -The timestamp indicating the last time this file was accessed. +* `path` {string|Buffer|URL} +* `atime` {number|string|Date} +* `mtime` {number|string|Date} +* Returns: {Promise} Fulfills with `undefined` upon success. -### `stats.mtime` - +Change the file system timestamps of the object referenced by `path`. -* {Date} +The `atime` and `mtime` arguments follow these rules: -The timestamp indicating the last time this file was modified. +* Values can be either numbers representing Unix epoch time, `Date`s, or a + numeric string like `'123456789.0'`. +* If the value can not be converted to a number, or is `NaN`, `Infinity` or + `-Infinity`, an `Error` will be thrown. -### `stats.ctime` +### `fsPromises.watch(filename[, options])` -* {Date} - -The timestamp indicating the last time the file status was changed. - -### `stats.birthtime` - - -* {Date} - -The timestamp indicating the creation time of this file. - -### Stat time values +* `filename` {string|Buffer|URL} +* `options` {string|Object} + * `persistent` {boolean} Indicates whether the process should continue to run + as long as files are being watched. **Default:** `true`. + * `recursive` {boolean} Indicates whether all subdirectories should be + watched, or only the current directory. This applies when a directory is + specified, and only on supported platforms (See [caveats][]). **Default:** + `false`. + * `encoding` {string} Specifies the character encoding to be used for the + filename passed to the listener. **Default:** `'utf8'`. + * `signal` {AbortSignal} An {AbortSignal} used to signal when the watcher + should stop. +* Returns: {AsyncIterator} of objects with the properties: + * `eventType` {string} The type of change + * `filename` {string|Buffer} The name of the file changed. -The `atimeMs`, `mtimeMs`, `ctimeMs`, `birthtimeMs` properties are -numeric values that hold the corresponding times in milliseconds. Their -precision is platform specific. When `bigint: true` is passed into the -method that generates the object, the properties will be [bigints][], -otherwise they will be [numbers][MDN-Number]. +Returns an async iterator that watches for changes on `filename`, where `filename` +is either a file or a directory. -The `atimeNs`, `mtimeNs`, `ctimeNs`, `birthtimeNs` properties are -[bigints][] that hold the corresponding times in nanoseconds. They are -only present when `bigint: true` is passed into the method that generates -the object. Their precision is platform specific. +```js +const { watch } = require('fs/promises'); -`atime`, `mtime`, `ctime`, and `birthtime` are -[`Date`][MDN-Date] object alternate representations of the various times. The -`Date` and number values are not connected. Assigning a new number value, or -mutating the `Date` value, will not be reflected in the corresponding alternate -representation. +const ac = new AbortController(); +const { signal } = ac; +setTimeout(() => ac.abort(), 10000); -The times in the stat object have the following semantics: +(async () => { + try { + const watcher = watch(__filename, { signal }); + for await (const event of watcher) + console.log(event); + } catch (err) { + if (err.name === 'AbortError') + return; + throw err; + } +})(); +``` -* `atime` "Access Time": Time when file data last accessed. Changed - by the mknod(2), utimes(2), and read(2) system calls. -* `mtime` "Modified Time": Time when file data last modified. - Changed by the mknod(2), utimes(2), and write(2) system calls. -* `ctime` "Change Time": Time when file status was last changed - (inode data modification). Changed by the chmod(2), chown(2), - link(2), mknod(2), rename(2), unlink(2), utimes(2), - read(2), and write(2) system calls. -* `birthtime` "Birth Time": Time of file creation. Set once when the - file is created. On filesystems where birthtime is not available, - this field may instead hold either the `ctime` or - `1970-01-01T00:00Z` (ie, Unix epoch timestamp `0`). This value may be greater - than `atime` or `mtime` in this case. On Darwin and other FreeBSD variants, - also set if the `atime` is explicitly set to an earlier value than the current - `birthtime` using the utimes(2) system call. +On most platforms, `'rename'` is emitted whenever a filename appears or +disappears in the directory. -Prior to Node.js 0.12, the `ctime` held the `birthtime` on Windows systems. As -of 0.12, `ctime` is not "creation time", and on Unix systems, it never was. +All the [caveats][] for `fs.watch()` also apply to `fsPromises.watch()`. -## Class: `fs.WriteStream` +### `fsPromises.writeFile(file, data[, options])` -* Extends {stream.Writable} +* `file` {string|Buffer|URL|FileHandle} filename or `FileHandle` +* `data` {string|Buffer|TypedArray|DataView|Object|AsyncIterable|Iterable + |Stream} +* `options` {Object|string} + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'w'`. + * `signal` {AbortSignal} allows aborting an in-progress writeFile +* Returns: {Promise} Fulfills with `undefined` upon success. -Instances of `fs.WriteStream` are created and returned using the -[`fs.createWriteStream()`][] function. +Asynchronously writes data to a file, replacing the file if it already exists. +`data` can be a string, a {Buffer}, or, an object with an own (not inherited) +`toString` function property. -### Event: `'close'` - +The `encoding` option is ignored if `data` is a buffer. -Emitted when the `WriteStream`'s underlying file descriptor has been closed. +If `options` is a string, then it specifies the encoding. -### Event: `'open'` - +The `mode` option only affects the newly created file. See [`fs.open()`][] +for more details. -* `fd` {integer} Integer file descriptor used by the `WriteStream`. +Any specified {FileHandle} has to support writing. -Emitted when the `WriteStream`'s file is opened. +It is unsafe to use `fsPromises.writeFile()` multiple times on the same file +without waiting for the promise to be settled. -### Event: `'ready'` - +Similarly to `fsPromises.readFile` - `fsPromises.writeFile` is a convenience +method that performs multiple `write` calls internally to write the buffer +passed to it. For performance sensitive code consider using +[`fs.createWriteStream()`][]. -Emitted when the `fs.WriteStream` is ready to be used. +It is possible to use an {AbortSignal} to cancel an `fsPromises.writeFile()`. +Cancelation is "best effort", and some amount of data is likely still +to be written. -Fires immediately after `'open'`. +```mjs +import { writeFile } from 'fs/promises'; -### `writeStream.bytesWritten` - +try { + const controller = new AbortController(); + const { signal } = controller; + const data = new Uint8Array(Buffer.from('Hello Node.js')); + const promise = writeFile('message.txt', data, { signal }); -The number of bytes written so far. Does not include data that is still queued -for writing. + // Abort the request before the promise settles. + controller.abort(); -### `writeStream.path` - + await promise; +} catch (err) { + // When a request is aborted - err is an AbortError + console.error(err); +} +``` -The path to the file the stream is writing to as specified in the first -argument to [`fs.createWriteStream()`][]. If `path` is passed as a string, then -`writeStream.path` will be a string. If `path` is passed as a `Buffer`, then -`writeStream.path` will be a `Buffer`. +Aborting an ongoing request does not abort individual operating +system requests but rather the internal buffering `fs.writeFile` performs. -### `writeStream.pending` - +## Callback API -* {boolean} +The callback APIs perform all operations asynchronously, without blocking the +event loop, then invoke a callback function upon completion or error. -This property is `true` if the underlying file has not been opened yet, -i.e. before the `'ready'` event is emitted. +The callback APIs use the underlying Node.js threadpool to perform file +system operations off the event loop thread. These operations are not +synchronized or threadsafe. Care must be taken when performing multiple +concurrent modifications on the same file or data corruption may occur. -## `fs.access(path[, mode], callback)` +### `fs.access(path[, mode], callback)` - -* `path` {string|Buffer|URL} -* `mode` {integer} **Default:** `fs.constants.F_OK` - -Synchronously tests a user's permissions for the file or directory specified -by `path`. The `mode` argument is an optional integer that specifies the -accessibility checks to be performed. Check [File access constants][] for -possible values of `mode`. It is possible to create a mask consisting of -the bitwise OR of two or more values -(e.g. `fs.constants.W_OK | fs.constants.R_OK`). - -If any of the accessibility checks fail, an `Error` will be thrown. Otherwise, -the method will return `undefined`. - -```js -try { - fs.accessSync('etc/passwd', fs.constants.R_OK | fs.constants.W_OK); - console.log('can read/write'); -} catch (err) { - console.error('no access!'); -} -``` - -## `fs.appendFile(path, data[, options], callback)` +### `fs.appendFile(path, data[, options], callback)` - -* `path` {string|Buffer|URL|number} filename or file descriptor -* `data` {string|Buffer} -* `options` {Object|string} - * `encoding` {string|null} **Default:** `'utf8'` - * `mode` {integer} **Default:** `0o666` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'a'`. - -Synchronously append data to a file, creating the file if it does not yet -exist. `data` can be a string or a [`Buffer`][]. - -```js -try { - fs.appendFileSync('message.txt', 'data to append'); - console.log('The "data to append" was appended to file!'); -} catch (err) { - /* Handle the error */ } -``` - -If `options` is a string, then it specifies the encoding: - -```js -fs.appendFileSync('message.txt', 'data to append', 'utf8'); -``` - -The `path` may be specified as a numeric file descriptor that has been opened -for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will -not be closed automatically. -```js -let fd; +open('message.txt', 'a', (err, fd) => { + if (err) throw err; -try { - fd = fs.openSync('message.txt', 'a'); - fs.appendFileSync(fd, 'data to append', 'utf8'); -} catch (err) { - /* Handle the error */ -} finally { - if (fd !== undefined) - fs.closeSync(fd); -} + try { + appendFile(fd, 'data to append', 'utf8', (err) => { + closeFd(fd); + if (err) throw err; + }); + } catch (err) { + closeFd(fd); + throw err; + } +}); ``` -## `fs.chmod(path, mode, callback)` +### `fs.chmod(path, mode, callback)` - -* `path` {string|Buffer|URL} -* `mode` {string|integer} - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.chmod()`][]. - -See also: chmod(2). - -## `fs.chown(path, uid, gid, callback)` - - -* `path` {string|Buffer|URL} -* `uid` {integer} -* `gid` {integer} - -Synchronously changes owner and group of a file. Returns `undefined`. -This is the synchronous version of [`fs.chown()`][]. - -See also: chown(2). +See the POSIX chown(2) documentation for more detail. -## `fs.close(fd[, callback])` +### `fs.close(fd[, callback])` - -* `fd` {integer} - -Synchronous close(2). Returns `undefined`. - -Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use -through any other `fs` operation may lead to undefined behavior. - -## `fs.constants` - -* {Object} - -Returns an object containing commonly used constants for file system -operations. The specific constants currently defined are described in -[FS constants][]. +See the POSIX close(2) documentation for more detail. -## `fs.copyFile(src, dest[, mode], callback)` +### `fs.copyFile(src, dest[, mode], callback)` - -* `src` {string|Buffer|URL} source filename to copy -* `dest` {string|Buffer|URL} destination filename of the copy operation -* `mode` {integer} modifiers for copy operation. **Default:** `0`. - -Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it -already exists. Returns `undefined`. Node.js makes no guarantees about the -atomicity of the copy operation. If an error occurs after the destination file -has been opened for writing, Node.js will attempt to remove the destination. - -`mode` is an optional integer that specifies the behavior -of the copy operation. It is possible to create a mask consisting of the bitwise -OR of two or more values (e.g. -`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). - -* `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already - exists. -* `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a - copy-on-write reflink. If the platform does not support copy-on-write, then a - fallback copy mechanism is used. -* `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to - create a copy-on-write reflink. If the platform does not support - copy-on-write, then the operation will fail. - -```js -const fs = require('fs'); -const { COPYFILE_EXCL } = fs.constants; - -// destination.txt will be created or overwritten by default. -fs.copyFileSync('source.txt', 'destination.txt'); -console.log('source.txt was copied to destination.txt'); +copyFile('source.txt', 'destination.txt', callback); // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. -fs.copyFileSync('source.txt', 'destination.txt', COPYFILE_EXCL); +copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback); ``` -## `fs.createReadStream(path[, options])` +### `fs.createReadStream(path[, options])` > Stability: 0 - Deprecated: Use [`fs.stat()`][] or [`fs.access()`][] instead. @@ -1947,9 +2006,11 @@ changes: Test whether or not the given path exists by checking with the file system. Then call the `callback` argument with either true or false: -```js -fs.exists('/etc/passwd', (exists) => { - console.log(exists ? 'it\'s there' : 'no passwd!'); +```mjs +import { exists } from 'fs'; + +exists('/etc/passwd', (e) => { + console.log(e ? 'it exists' : 'no passwd!'); }); ``` @@ -1967,14 +2028,23 @@ file directly and handle the error raised if the file does not exist. **write (NOT RECOMMENDED)** -```js -fs.exists('myfile', (exists) => { - if (exists) { +```mjs +import { exists, open, close } from 'fs'; + +exists('myfile', (e) => { + if (e) { console.error('myfile already exists'); } else { - fs.open('myfile', 'wx', (err, fd) => { + open('myfile', 'wx', (err, fd) => { if (err) throw err; - writeMyData(fd); + + try { + writeMyData(fd); + } finally { + close(fd, (err) => { + if (err) throw err; + }); + } }); } }); @@ -1982,8 +2052,9 @@ fs.exists('myfile', (exists) => { **write (RECOMMENDED)** -```js -fs.open('myfile', 'wx', (err, fd) => { +```mjs +import { open, close } from 'fs'; +open('myfile', 'wx', (err, fd) => { if (err) { if (err.code === 'EEXIST') { console.error('myfile already exists'); @@ -1993,18 +2064,33 @@ fs.open('myfile', 'wx', (err, fd) => { throw err; } - writeMyData(fd); + try { + writeMyData(fd); + } finally { + close(fd, (err) => { + if (err) throw err; + }); + } }); ``` **read (NOT RECOMMENDED)** -```js -fs.exists('myfile', (exists) => { - if (exists) { - fs.open('myfile', 'r', (err, fd) => { +```mjs +import { open, close, exists } from 'fs'; + +exists('myfile', (e) => { + if (e) { + open('myfile', 'r', (err, fd) => { if (err) throw err; - readMyData(fd); + + try { + readMyData(fd); + } finally { + close(fd, (err) => { + if (err) throw err; + }); + } }); } else { console.error('myfile does not exist'); @@ -2014,8 +2100,10 @@ fs.exists('myfile', (exists) => { **read (RECOMMENDED)** -```js -fs.open('myfile', 'r', (err, fd) => { +```mjs +import { open, close } from 'fs'; + +open('myfile', 'r', (err, fd) => { if (err) { if (err.code === 'ENOENT') { console.error('myfile does not exist'); @@ -2025,7 +2113,13 @@ fs.open('myfile', 'r', (err, fd) => { throw err; } - readMyData(fd); + try { + readMyData(fd); + } finally { + close(fd, (err) => { + if (err) throw err; + }); + } }); ``` @@ -2037,35 +2131,7 @@ In general, check for the existence of a file only if the file won’t be used directly, for example when its existence is a signal from another process. -## `fs.existsSync(path)` - - -* `path` {string|Buffer|URL} -* Returns: {boolean} - -Returns `true` if the path exists, `false` otherwise. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.exists()`][]. - -`fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback` -parameter to `fs.exists()` accepts parameters that are inconsistent with other -Node.js callbacks. `fs.existsSync()` does not use a callback. - -```js -if (fs.existsSync('/etc/passwd')) { - console.log('The path exists.'); -} -``` - -## `fs.fchmod(fd, mode, callback)` +### `fs.fchmod(fd, mode, callback)` - -* `fd` {integer} -* `mode` {string|integer} +See the POSIX fchmod(2) documentation for more detail. -Synchronous fchmod(2). Returns `undefined`. - -## `fs.fchown(fd, uid, gid, callback)` +### `fs.fchown(fd, uid, gid, callback)` - -* `fd` {integer} -* `uid` {integer} -* `gid` {integer} +Sets the owner of the file. No arguments other than a possible exception are +given to the completion callback. -Synchronous fchown(2). Returns `undefined`. +See the POSIX fchown(2) documentation for more detail. -## `fs.fdatasync(fd, callback)` +### `fs.fdatasync(fd, callback)` - -* `fd` {integer} - -Synchronous fdatasync(2). Returns `undefined`. +Forces all currently queued I/O operations associated with the file to the +operating system's synchronized I/O completion state. Refer to the POSIX +fdatasync(2) documentation for details. No arguments other than a possible +exception are given to the completion callback. -## `fs.fstat(fd[, options], callback)` +### `fs.fstat(fd[, options], callback)` - -* `fd` {integer} -* `options` {Object} - * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. -* Returns: {fs.Stats} +Invokes the callback with the {fs.Stats} for the file descriptor. -Synchronous fstat(2). +See the POSIX fstat(2) documentation for more detail. -## `fs.fsync(fd, callback)` +### `fs.fsync(fd, callback)` - -* `fd` {integer} - -Synchronous fsync(2). Returns `undefined`. +Request that all data for the open file descriptor is flushed to the storage +device. The specific implementation is operating system and device specific. +Refer to the POSIX fsync(2) documentation for more detail. No arguments other +than a possible exception are given to the completion callback. -## `fs.ftruncate(fd[, len], callback)` +### `fs.ftruncate(fd[, len], callback)` - -* `fd` {integer} -* `len` {integer} **Default:** `0` - -Returns `undefined`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.ftruncate()`][]. +If `len` is negative then `0` will be used. -## `fs.futimes(fd, atime, mtime, callback)` +### `fs.futimes(fd, atime, mtime, callback)` - -* `fd` {integer} -* `atime` {number|string|Date} -* `mtime` {number|string|Date} - -Synchronous version of [`fs.futimes()`][]. Returns `undefined`. - -## `fs.lchmod(path, mode, callback)` +### `fs.lchmod(path, mode, callback)` +Changes the permissions on a symbolic link. No arguments other than a possible +exception are given to the completion callback. -* `path` {string|Buffer|URL} -* `mode` {integer} +This method is only implemented on macOS. -Synchronous lchmod(2). Returns `undefined`. +See the POSIX lchmod(2) documentation for more detail. -## `fs.lchown(path, uid, gid, callback)` +### `fs.lchown(path, uid, gid, callback)` - -* `path` {string|Buffer|URL} -* `uid` {integer} -* `gid` {integer} - -Synchronous lchown(2). Returns `undefined`. - -## `fs.lutimes(path, atime, mtime, callback)` - * `path` {string|Buffer|URL} @@ -2458,20 +2421,7 @@ symbolic link itself are changed. No arguments other than a possible exception are given to the completion callback. -## `fs.lutimesSync(path, atime, mtime)` - - -* `path` {string|Buffer|URL} -* `atime` {number|string|Date} -* `mtime` {number|string|Date} - -Change the file system timestamps of the symbolic link referenced by `path`. -Returns `undefined`, or throws an exception when parameters are incorrect or -the operation fails. This is the synchronous version of [`fs.lutimes()`][]. - -## `fs.link(existingPath, newPath, callback)` +### `fs.link(existingPath, newPath, callback)` - -* `existingPath` {string|Buffer|URL} -* `newPath` {string|Buffer|URL} +Creates a new link from the `existingPath` to the `newPath`. See the POSIX +link(2) documentation for more detail. No arguments other than a possible +exception are given to the completion callback. -Synchronous link(2). Returns `undefined`. - -## `fs.lstat(path[, options], callback)` +### `fs.lstat(path[, options], callback)` - -* `path` {string|Buffer|URL} -* `options` {Object} - * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. - * `throwIfNoEntry` {boolean} Whether an exception will be thrown - if no file system entry exists, rather than returning `undefined`. - **Default:** `true`. -* Returns: {fs.Stats} +Retrieves the {fs.Stats} for the symbolic link referred to by the path. +The callback gets two arguments `(err, stats)` where `stats` is a {fs.Stats} +object. `lstat()` is identical to `stat()`, except that if `path` is a symbolic +link, then the link itself is stat-ed, not the file that it refers to. -Synchronous lstat(2). +See the POSIX lstat(2) documentation for more details. -## `fs.mkdir(path[, options], callback)` +### `fs.mkdir(path[, options], callback)` - -* `path` {string|Buffer|URL} -* `options` {Object|integer} - * `recursive` {boolean} **Default:** `false` - * `mode` {string|integer} Not supported on Windows. **Default:** `0o777`. -* Returns: {string|undefined} - -Synchronously creates a directory. Returns `undefined`, or if `recursive` is -`true`, the first directory path created. -This is the synchronous version of [`fs.mkdir()`][]. - -See also: mkdir(2). +See the POSIX mkdir(2) documentation for more details. -## `fs.mkdtemp(prefix[, options], callback)` +### `fs.mkdtemp(prefix[, options], callback)` - -* `prefix` {string} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {string} - -Returns the created directory path. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.mkdtemp()`][]. - -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use. - -## `fs.open(path[, flags[, mode]], callback)` +### `fs.open(path[, flags[, mode]], callback)` * `path` {string|Buffer|URL} @@ -2785,7 +2664,7 @@ changes: * `err` {Error} * `fd` {integer} -Asynchronous file open. See open(2). +Asynchronous file open. See the POSIX open(2) documentation for more details. `mode` sets the file mode (permission and sticky bits), but only if the file was created. On Windows, only the write permission can be manipulated; see @@ -2801,7 +2680,7 @@ a colon, Node.js will open a file system stream, as described by Functions based on `fs.open()` exhibit this behavior as well: `fs.writeFile()`, `fs.readFile()`, etc. -## `fs.opendir(path[, options], callback)` +### `fs.opendir(path[, options], callback)` - -* `path` {string|Buffer|URL} -* `options` {Object} - * `encoding` {string|null} **Default:** `'utf8'` - * `bufferSize` {number} Number of directory entries that are buffered - internally when reading from the directory. Higher values lead to better - performance but higher memory usage. **Default:** `32` -* Returns: {fs.Dir} - -Synchronously open a directory. See opendir(3). +Asynchronously open a directory. See the POSIX opendir(3) documentation for +more details. -Creates an [`fs.Dir`][], which contains all further functions for reading from +Creates an {fs.Dir}, which contains all further functions for reading from and cleaning up the directory. The `encoding` option sets the encoding for the `path` while opening the directory and subsequent read operations. -## `fs.openSync(path[, flags, mode])` - - -* `path` {string|Buffer|URL} -* `flags` {string|number} **Default:** `'r'`. - See [support of file system `flags`][]. -* `mode` {string|integer} **Default:** `0o666` -* Returns: {number} - -Returns an integer representing the file descriptor. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.open()`][]. - -## `fs.read(fd, buffer, offset, length, position, callback)` +### `fs.read(fd, buffer, offset, length, position, callback)` * `fd` {integer} -* `buffer` {Buffer|TypedArray|DataView} -* `offset` {integer} -* `length` {integer} -* `position` {integer} +* `buffer` {Buffer|TypedArray|DataView} The buffer that the data will be + written to. **Default:** `Buffer.alloc(16384)` +* `offset` {integer} The position in `buffer` to write the data to. **Default:** + `0` +* `length` {integer} The number of bytes to read. **Default:** + `buffer.byteLength` +* `position` {integer|bigint} Specifies where to begin reading from in the + file. If `position` is `null` or `-1 `, data will be read from the current + file position, and the file position will be updated. If `position` is an + integer, the file position will be unchanged. * `callback` {Function} * `err` {Error} * `bytesRead` {integer} @@ -2912,30 +2744,23 @@ changes: Read data from the file specified by `fd`. -`buffer` is the buffer that the data (read from the fd) will be written to. - -`offset` is the offset in the buffer to start writing at. - -`length` is an integer specifying the number of bytes to read. - -`position` is an argument specifying where to begin reading from in the file. -If `position` is `null`, data will be read from the current file position, -and the file position will be updated. -If `position` is an integer, the file position will remain unchanged. - The callback is given the three arguments, `(err, bytesRead, buffer)`. If the file is not modified concurrently, the end-of-file is reached when the number of bytes read is zero. If this method is invoked as its [`util.promisify()`][]ed version, it returns -a `Promise` for an `Object` with `bytesRead` and `buffer` properties. +a promise for an `Object` with `bytesRead` and `buffer` properties. -## `fs.read(fd, [options,] callback)` +### `fs.read(fd, [options,] callback)` - -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` - * `withFileTypes` {boolean} **Default:** `false` -* Returns: {string[]|Buffer[]|fs.Dirent[]} - -Synchronous readdir(3). - -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use for -the filenames returned. If the `encoding` is set to `'buffer'`, -the filenames returned will be passed as `Buffer` objects. - -If `options.withFileTypes` is set to `true`, the result will contain -[`fs.Dirent`][] objects. +{fs.Dirent} objects. -## `fs.readFile(path[, options], callback)` +### `fs.readFile(path[, options], callback)` - -* `path` {string|Buffer|URL|integer} filename or file descriptor -* `options` {Object|string} - * `encoding` {string|null} **Default:** `null` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'r'`. -* Returns: {string|Buffer} - -Returns the contents of the `path`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.readFile()`][]. - -If the `encoding` option is specified then this function returns a -string. Otherwise it returns a buffer. - -Similar to [`fs.readFile()`][], when the path is a directory, the behavior of -`fs.readFileSync()` is platform-specific. - -```js -// macOS, Linux, and Windows -fs.readFileSync(''); -// => [Error: EISDIR: illegal operation on a directory, read ] - -// FreeBSD -fs.readFileSync(''); // => -``` - -## `fs.readlink(path[, options], callback)` +### `fs.readlink(path[, options], callback)` -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {string|Buffer} +* `fd` {integer} +* `buffers` {ArrayBufferView[]} +* `position` {integer} +* `callback` {Function} + * `err` {Error} + * `bytesRead` {integer} + * `buffers` {ArrayBufferView[]} -Synchronous readlink(2). Returns the symbolic link's string value. - -The optional `options` argument can be a string specifying an encoding, or an -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)` - - -* `fd` {integer} -* `buffer` {Buffer|TypedArray|DataView} -* `offset` {integer} -* `length` {integer} -* `position` {integer} -* Returns: {number} - -Returns the number of `bytesRead`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.read()`][]. - -## `fs.readSync(fd, buffer, [options])` - - -* `fd` {integer} -* `buffer` {Buffer|TypedArray|DataView} -* `options` {Object} - * `offset` {integer} **Default:** `0` - * `length` {integer} **Default:** `buffer.length` - * `position` {integer} **Default:** `null` -* Returns: {number} - -Returns the number of `bytesRead`. - -Similar to the above `fs.readSync` function, this version takes an optional `options` object. -If no `options` object is specified, it will default with the above values. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.read()`][]. - -## `fs.readv(fd, buffers[, position], callback)` - - -* `fd` {integer} -* `buffers` {ArrayBufferView[]} -* `position` {integer} -* `callback` {Function} - * `err` {Error} - * `bytesRead` {integer} - * `buffers` {ArrayBufferView[]} - -Read from a file specified by `fd` and write to an array of `ArrayBufferView`s -using `readv()`. +Read from a file specified by `fd` and write to an array of `ArrayBufferView`s +using `readv()`. `position` is the offset from the beginning of the file from where data should be read. If `typeof position !== 'number'`, the data will be read @@ -3322,22 +3021,9 @@ The callback will be given three arguments: `err`, `bytesRead`, and `buffers`. `bytesRead` is how many bytes were read from the file. If this method is invoked as its [`util.promisify()`][]ed version, it returns -a `Promise` for an `Object` with `bytesRead` and `buffers` properties. +a promise for an `Object` with `bytesRead` and `buffers` properties. -## `fs.readvSync(fd, buffers[, position])` - - -* `fd` {integer} -* `buffers` {ArrayBufferView[]} -* `position` {integer} -* Returns: {number} The number of bytes read. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.readv()`][]. - -## `fs.realpath(path[, options], callback)` +### `fs.realpath(path[, options], callback)` @@ -3419,66 +3105,13 @@ Only paths that can be converted to UTF8 strings are supported. The optional `options` argument can be a string specifying an encoding, or an object with an `encoding` property specifying the character encoding to use for the path passed to the callback. If the `encoding` is set to `'buffer'`, -the path returned will be passed as a `Buffer` object. - -On Linux, when Node.js is linked against musl libc, the procfs file system must -be mounted on `/proc` in order for this function to work. Glibc does not have -this restriction. - -## `fs.realpathSync(path[, options])` - - -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {string|Buffer} - -Returns the resolved pathname. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.realpath()`][]. - -## `fs.realpathSync.native(path[, options])` - - -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {string|Buffer} - -Synchronous realpath(3). - -Only paths that can be converted to UTF8 strings are supported. - -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use for -the path returned. If the `encoding` is set to `'buffer'`, -the path returned will be passed as a `Buffer` object. +the path returned will be passed as a {Buffer} object. On Linux, when Node.js is linked against musl libc, the procfs file system must be mounted on `/proc` in order for this function to work. Glibc does not have this restriction. -## `fs.rename(oldPath, newPath, callback)` +### `fs.rename(oldPath, newPath, callback)` - -* `oldPath` {string|Buffer|URL} -* `newPath` {string|Buffer|URL} - -Synchronous rename(2). Returns `undefined`. - -## `fs.rmdir(path[, options], callback)` +### `fs.rmdir(path[, options], callback)` - -* `path` {string|Buffer|URL} -* `options` {Object} - * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js retries the operation with a linear - backoff wait of `retryDelay` milliseconds longer on each try. This option - represents the number of retries. This option is ignored if the `recursive` - option is not `true`. **Default:** `0`. - * `recursive` {boolean} If `true`, perform a recursive directory removal. In - recursive mode, errors are not reported if `path` does not exist, and - operations are retried on failure. **Default:** `false`. - * `retryDelay` {integer} The amount of time in milliseconds to wait between - retries. This option is ignored if the `recursive` option is not `true`. - **Default:** `100`. - -Synchronous rmdir(2). Returns `undefined`. - -Using `fs.rmdirSync()` on a file (not a directory) results in an `ENOENT` error -on Windows and an `ENOTDIR` error on POSIX. - -Setting `recursive` to `true` results in behavior similar to the Unix command -`rm -rf`: an error will not be raised for paths that do not exist, and paths -that represent files will be deleted. The permissive behavior of the -`recursive` option is deprecated, `ENOTDIR` and `ENOENT` will be thrown in -the future. - -## `fs.rm(path[, options], callback)` +### `fs.rm(path[, options], callback)` @@ -3666,30 +3240,7 @@ Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). No arguments other than a possible exception are given to the completion callback. -## `fs.rmSync(path[, options])` - - -* `path` {string|Buffer|URL} -* `options` {Object} - * `force` {boolean} When `true`, exceptions will be ignored if `path` does - not exist. **Default:** `false`. - * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js will retry the operation with a linear - backoff wait of `retryDelay` milliseconds longer on each try. This option - represents the number of retries. This option is ignored if the `recursive` - option is not `true`. **Default:** `0`. - * `recursive` {boolean} If `true`, perform a recursive directory removal. In - recursive mode operations are retried on failure. **Default:** `false`. - * `retryDelay` {integer} The amount of time in milliseconds to wait between - retries. This option is ignored if the `recursive` option is not `true`. - **Default:** `100`. - -Synchronously removes files and directories (modeled on the standard POSIX `rm` -utility). Returns `undefined`. - -## `fs.stat(path[, options], callback)` +### `fs.stat(path[, options], callback)` - -* `path` {string|Buffer|URL} -* `options` {Object} - * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. - * `throwIfNoEntry` {boolean} Whether an exception will be thrown - if no file system entry exists, rather than returning `undefined`. - **Default:** `true`. -* Returns: {fs.Stats} - -Synchronous stat(2). - -## `fs.symlink(target, path[, type], callback)` +### `fs.symlink(target, path[, type], callback)` - -* `target` {string|Buffer|URL} -* `path` {string|Buffer|URL} -* `type` {string} - -Returns `undefined`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.symlink()`][]. - -## `fs.truncate(path[, len], callback)` - * `path` {string|Buffer|URL} @@ -3918,28 +3423,34 @@ changes: * `callback` {Function} * `err` {Error} -Asynchronous truncate(2). No arguments other than a possible exception are +Truncates the file. No arguments other than a possible exception are given to the completion callback. A file descriptor can also be passed as the first argument. In this case, `fs.ftruncate()` is called. -Passing a file descriptor is deprecated and may result in an error being thrown -in the future. - -## `fs.truncateSync(path[, len])` - - -* `path` {string|Buffer|URL} -* `len` {integer} **Default:** `0` +```mjs +import { truncate } from 'fs'; +// Assuming that 'path/file.txt' is a regular file. +truncate('path/file.txt', (err) => { + if (err) throw err; + console.log('path/file.txt was truncated'); +}); +``` -Synchronous truncate(2). Returns `undefined`. A file descriptor can also be -passed as the first argument. In this case, `fs.ftruncateSync()` is called. +```cjs +const { truncate } = require('fs'); +// Assuming that 'path/file.txt' is a regular file. +truncate('path/file.txt', (err) => { + if (err) throw err; + console.log('path/file.txt was truncated'); +}); +``` Passing a file descriptor is deprecated and may result in an error being thrown in the future. -## `fs.unlink(path, callback)` +See the POSIX truncate(2) documentation for more details. + +### `fs.unlink(path, callback)` - -* `path` {string|Buffer|URL} - -Synchronous unlink(2). Returns `undefined`. +See the POSIX unlink(2) documentation for more details. -## `fs.unwatchFile(filename[, listener])` +### `fs.unwatchFile(filename[, listener])` @@ -4011,7 +3509,7 @@ Using [`fs.watch()`][] is more efficient than `fs.watchFile()` and `fs.unwatchFile()`. `fs.watch()` should be used instead of `fs.watchFile()` and `fs.unwatchFile()` when possible. -## `fs.utimes(path, atime, mtime, callback)` +### `fs.utimes(path, atime, mtime, callback)` - -* `path` {string|Buffer|URL} -* `atime` {number|string|Date} -* `mtime` {number|string|Date} - -Returns `undefined`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.utimes()`][]. - -## `fs.watch(filename[, options][, listener])` +### `fs.watch(filename[, options][, listener])` @@ -4145,7 +3616,7 @@ when the option is used on a platform that does not support it. On Windows, no events will be emitted if the watched directory is moved or renamed. An `EPERM` error is reported when the watched directory is deleted. -#### Availability +##### Availability @@ -4170,7 +3641,7 @@ when using virtualization software such as Vagrant or Docker. It is still possible to use `fs.watchFile()`, which uses stat polling, but this method is slower and less reliable. -#### Inodes +##### Inodes @@ -4184,7 +3655,7 @@ AIX files retain the same inode for the lifetime of a file. Saving and closing a watched file on AIX will result in two notifications (one for adding new content, and one for truncation). -#### Filename argument +##### Filename argument @@ -4193,8 +3664,9 @@ macOS, Windows, and AIX. Even on supported platforms, `filename` is not always 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`. -```js -fs.watch('somedir', (eventType, filename) => { +```mjs +import { watch } from 'fs'; +watch('somedir', (eventType, filename) => { console.log(`event type is: ${eventType}`); if (filename) { console.log(`filename provided: ${filename}`); @@ -4204,7 +3676,7 @@ fs.watch('somedir', (eventType, filename) => { }); ``` -## `fs.watchFile(filename[, options], listener)` +### `fs.watchFile(filename[, options], listener)` * `filename` {string|Buffer|URL} @@ -4239,8 +3711,10 @@ target should be polled in milliseconds. The `listener` gets two arguments the current stat object and the previous stat object: -```js -fs.watchFile('message.text', (curr, prev) => { +```mjs +import { watchFile } from 'fs'; + +watchFile('message.text', (curr, prev) => { console.log(`the current mtime is: ${curr.mtime}`); console.log(`the previous mtime was: ${prev.mtime}`); }); @@ -4272,7 +3746,7 @@ 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)` - -* `file` {string|Buffer|URL|integer} filename or file descriptor -* `data` {string|Buffer|TypedArray|DataView|Object} -* `options` {Object|string} - * `encoding` {string|null} **Default:** `'utf8'` - * `mode` {integer} **Default:** `0o666` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'w'`. - -Returns `undefined`. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.writeFile()`][]. - -## `fs.writeSync(fd, buffer[, offset[, length[, position]]])` - - -* `fd` {integer} -* `buffer` {Buffer|TypedArray|DataView|string|Object} -* `offset` {integer} -* `length` {integer} -* `position` {integer} -* Returns: {number} The number of bytes written. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.write(fd, buffer...)`][]. - -## `fs.writeSync(fd, string[, position[, encoding]])` - - -* `fd` {integer} -* `string` {string|Object} -* `position` {integer} -* `encoding` {string} -* Returns: {number} The number of bytes written. - -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.write(fd, string...)`][]. - -## `fs.writev(fd, buffers[, position], callback)` +### `fs.writev(fd, buffers[, position], callback)` @@ -4642,7 +4033,7 @@ at the current position. The callback will be given three arguments: `err`, `bytesWritten`, and `buffers`. `bytesWritten` is how many bytes were written from `buffers`. -If this method is [`util.promisify()`][]ed, it returns a `Promise` for an +If this method is [`util.promisify()`][]ed, it returns a promise for an `Object` with `bytesWritten` and `buffers` properties. It is unsafe to use `fs.writev()` multiple times on the same file without @@ -4652,235 +4043,272 @@ On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file. -## `fs.writevSync(fd, buffers[, position])` - - -* `fd` {integer} -* `buffers` {ArrayBufferView[]} -* `position` {integer} -* Returns: {number} The number of bytes written. +## Synchronous API -For detailed information, see the documentation of the asynchronous version of -this API: [`fs.writev()`][]. +The synchronous APIs perform all operations synchronously, blocking the +event loop until the operation completes or fails. -## `fs` Promises API +### `fs.accessSync(path[, mode])` -The `fs.promises` API provides an alternative set of asynchronous file system -methods that return `Promise` objects rather than using callbacks. The -API is accessible via `require('fs').promises` or `require('fs/promises')`. - -### Class: `FileHandle` - +* `path` {string|Buffer|URL} +* `mode` {integer} **Default:** `fs.constants.F_OK` -A `FileHandle` object is a wrapper for a numeric file descriptor. -Instances of `FileHandle` are distinct from numeric file descriptors -in that they provide an object oriented API for working with files. +Synchronously tests a user's permissions for the file or directory specified +by `path`. The `mode` argument is an optional integer that specifies the +accessibility checks to be performed. Check [File access constants][] for +possible values of `mode`. It is possible to create a mask consisting of +the bitwise OR of two or more values +(e.g. `fs.constants.W_OK | fs.constants.R_OK`). -If a `FileHandle` is not closed using the -`filehandle.close()` method, it might automatically close the file descriptor -and will emit a process warning, thereby helping to prevent memory leaks. -Please do not rely on this behavior because it is unreliable and -the file may not be closed. Instead, always explicitly close `FileHandle`s. -Node.js may change this behavior in the future. +If any of the accessibility checks fail, an `Error` will be thrown. Otherwise, +the method will return `undefined`. -Instances of the `FileHandle` object are created internally by the -`fsPromises.open()` method. +```mjs +import { accessSync, constants } from 'fs'; -Unlike the callback-based API (`fs.fstat()`, `fs.fchown()`, `fs.fchmod()`, and -so on), a numeric file descriptor is not used by the promise-based API. Instead, -the promise-based API uses the `FileHandle` class in order to help avoid -accidental leaking of unclosed file descriptors after a `Promise` is fulfilled -or rejected. +try { + accessSync('etc/passwd', constants.R_OK | constants.W_OK); + console.log('can read/write'); +} catch (err) { + console.error('no access!'); +} +``` -#### `filehandle.appendFile(data, options)` +### `fs.appendFileSync(path, data[, options])` +* `path` {string|Buffer|URL|number} filename or file descriptor * `data` {string|Buffer} * `options` {Object|string} * `encoding` {string|null} **Default:** `'utf8'` -* Returns: {Promise} - -Alias of [`filehandle.writeFile()`][]. + * `mode` {integer} **Default:** `0o666` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'a'`. -When operating on file handles, the mode cannot be changed from what it was set -to with [`fsPromises.open()`][]. Therefore, this is equivalent to -[`filehandle.writeFile()`][]. +Synchronously append data to a file, creating the file if it does not yet +exist. `data` can be a string or a {Buffer}. -#### `filehandle.chmod(mode)` - +The `mode` option only affects the newly created file. See [`fs.open()`][] +for more details. -* `mode` {integer} -* Returns: {Promise} +```mjs +import { appendFileSync } from 'fs'; -Modifies the permissions on the file. The `Promise` is fulfilled with no -arguments upon success. +try { + appendFileSync('message.txt', 'data to append'); + console.log('The "data to append" was appended to file!'); +} catch (err) { + /* Handle the error */ +} +``` -#### `filehandle.chown(uid, gid)` - +If `options` is a string, then it specifies the encoding: -* `uid` {integer} -* `gid` {integer} -* Returns: {Promise} +```mjs +import { appendFileSync } from 'fs'; -Changes the ownership of the file then fulfills the `Promise` with no arguments -upon success. +appendFileSync('message.txt', 'data to append', 'utf8'); +``` -#### `filehandle.close()` - +The `path` may be specified as a numeric file descriptor that has been opened +for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will +not be closed automatically. -* Returns: {Promise} A `Promise` that will be fulfilled once the underlying - file descriptor is closed, or will be rejected if an error occurs while - closing. +```mjs +import { openSync, closeSync, appendFileSync } from 'fs'; -Closes the file handle after waiting for any pending operation on the handle to -complete. +let fd; -```js -const fsPromises = require('fs').promises; -async function openAndClose() { - let filehandle; - try { - filehandle = await fsPromises.open('thefile.txt', 'r'); - } finally { - if (filehandle !== undefined) - await filehandle.close(); - } +try { + fd = openSync('message.txt', 'a'); + appendFileSync(fd, 'data to append', 'utf8'); +} catch (err) { + /* Handle the error */ +} finally { + if (fd !== undefined) + closeSync(fd); } ``` -#### `filehandle.datasync()` +### `fs.chmodSync(path, mode)` -* Returns: {Promise} +* `path` {string|Buffer|URL} +* `mode` {string|integer} -Asynchronous fdatasync(2). The `Promise` is fulfilled with no arguments upon -success. +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.chmod()`][]. -#### `filehandle.fd` +See the POSIX chmod(2) documentation for more detail. + +### `fs.chownSync(path, uid, gid)` -* {number} The numeric file descriptor managed by the `FileHandle` object. +* `path` {string|Buffer|URL} +* `uid` {integer} +* `gid` {integer} + +Synchronously changes owner and group of a file. Returns `undefined`. +This is the synchronous version of [`fs.chown()`][]. + +See the POSIX chown(2) documentation for more detail. -#### `filehandle.read(buffer, offset, length, position)` +### `fs.closeSync(fd)` -* `buffer` {Buffer|Uint8Array} -* `offset` {integer} -* `length` {integer} -* `position` {integer} -* Returns: {Promise} +* `fd` {integer} -Read data from the file. +Closes the file descriptor. Returns `undefined`. -`buffer` is the buffer that the data will be written to. +Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use +through any other `fs` operation may lead to undefined behavior. -`offset` is the offset in the buffer to start writing at. +See the POSIX close(2) documentation for more detail. -`length` is an integer specifying the number of bytes to read. +### `fs.copyFileSync(src, dest[, mode])` + -`position` is an argument specifying where to begin reading from in the file. -If `position` is `null`, data will be read from the current file position, -and the file position will be updated. -If `position` is an integer, the file position will remain unchanged. +* `src` {string|Buffer|URL} source filename to copy +* `dest` {string|Buffer|URL} destination filename of the copy operation +* `mode` {integer} modifiers for copy operation. **Default:** `0`. -Following successful read, the `Promise` is fulfilled with an object with a -`bytesRead` property specifying the number of bytes read, and a `buffer` -property that is a reference to the passed in `buffer` argument. +Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it +already exists. Returns `undefined`. Node.js makes no guarantees about the +atomicity of the copy operation. If an error occurs after the destination file +has been opened for writing, Node.js will attempt to remove the destination. -If the file is not modified concurrently, the end-of-file is reached when the -number of bytes read is zero. +`mode` is an optional integer that specifies the behavior +of the copy operation. It is possible to create a mask consisting of the bitwise +OR of two or more values (e.g. +`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). -#### `filehandle.read(options)` - -* `options` {Object} - * `buffer` {Buffer|Uint8Array} **Default:** `Buffer.alloc(16384)` - * `offset` {integer} **Default:** `0` - * `length` {integer} **Default:** `buffer.length` - * `position` {integer} **Default:** `null` -* Returns: {Promise} +* `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + exists. +* `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + copy-on-write reflink. If the platform does not support copy-on-write, then a + fallback copy mechanism is used. +* `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + create a copy-on-write reflink. If the platform does not support + copy-on-write, then the operation will fail. -#### `filehandle.readFile(options)` +```mjs +import { copyFileSync, constants } from 'fs'; + +// destination.txt will be created or overwritten by default. +copyFileSync('source.txt', 'destination.txt'); +console.log('source.txt was copied to destination.txt'); + +// By using COPYFILE_EXCL, the operation will fail if destination.txt exists. +copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL); +``` + +### `fs.existsSync(path)` -* `options` {Object|string} - * `encoding` {string|null} **Default:** `null` - * `signal` {AbortSignal} allows aborting an in-progress readFile -* Returns: {Promise} +* `path` {string|Buffer|URL} +* Returns: {boolean} -Asynchronously reads the entire contents of a file. +Returns `true` if the path exists, `false` otherwise. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.exists()`][]. -The `Promise` is fulfilled with the contents of the file. If no encoding is -specified (using `options.encoding`), the data is returned as a `Buffer` -object. Otherwise, the data will be a string. +`fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback` +parameter to `fs.exists()` accepts parameters that are inconsistent with other +Node.js callbacks. `fs.existsSync()` does not use a callback. -If `options` is a string, then it specifies the encoding. +```mjs +import { existsSync } from 'fs'; -The `FileHandle` has to support reading. +if (existsSync('/etc/passwd')) + console.log('The path exists.'); +``` -If one or more `filehandle.read()` calls are made on a file handle and then a -`filehandle.readFile()` call is made, the data will be read from the current -position till the end of the file. It doesn't always read from the beginning -of the file. +### `fs.fchmodSync(fd, mode)` + -#### `filehandle.readv(buffers[, position])` +* `fd` {integer} +* `mode` {string|integer} + +Sets the permissions on the file. Returns `undefined`. + +See the POSIX fchmod(2) documentation for more detail. + +### `fs.fchownSync(fd, uid, gid)` -* `buffers` {ArrayBufferView[]} -* `position` {integer} -* Returns: {Promise} +* `fd` {integer} +* `uid` {integer} The file's new owner's user id. +* `gid` {integer} The file's new group's group id. -Read from a file and write to an array of `ArrayBufferView`s +Sets the owner of the file. Returns `undefined`. -The `Promise` is fulfilled with an object containing a `bytesRead` property -identifying the number of bytes read, and a `buffers` property containing -a reference to the `buffers` input. +See the POSIX fchown(2) documentation for more detail. -`position` is the offset from the beginning of the file where this data -should be read from. If `typeof position !== 'number'`, the data will be read -from the current position. +### `fs.fdatasyncSync(fd)` + -#### `filehandle.stat([options])` +* `fd` {integer} + +Forces all currently queued I/O operations associated with the file to the +operating system's synchronized I/O completion state. Refer to the POSIX +fdatasync(2) documentation for details. Returns `undefined`. + +### `fs.fstatSync(fd[, options])` +* `fd` {integer} * `options` {Object} * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. -* Returns: {Promise} + {fs.Stats} object should be `bigint`. **Default:** `false`. +* Returns: {fs.Stats} -Retrieves the [`fs.Stats`][] for the file. +Retrieves the {fs.Stats} for the file descriptor. -#### `filehandle.sync()` +See the POSIX fstat(2) documentation for more detail. + +### `fs.fsyncSync(fd)` -* Returns: {Promise} +* `fd` {integer} -Asynchronous fsync(2). The `Promise` is fulflled with no arguments 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. +Refer to the POSIX fsync(2) documentation for more detail. Returns `undefined`. -#### `filehandle.truncate(len)` +### `fs.ftruncateSync(fd[, len])` +* `fd` {integer} * `len` {integer} **Default:** `0` -* Returns: {Promise} -Truncates the file then fulfills the `Promise` with no arguments upon success. +Truncates the file descriptor. Returns `undefined`. -If the file was larger than `len` bytes, only the first `len` bytes will be -retained in the file. +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.ftruncate()`][]. -For example, the following program retains only the first four bytes of the -file: +### `fs.futimesSync(fd, atime, mtime)` + -```js -const fs = require('fs'); -const fsPromises = fs.promises; +* `fd` {integer} +* `atime` {number|string|Date} +* `mtime` {number|string|Date} -console.log(fs.readFileSync('temp.txt', 'utf8')); -// Prints: Node.js +Synchronous version of [`fs.futimes()`][]. Returns `undefined`. -async function doTruncate() { - let filehandle = null; - try { - filehandle = await fsPromises.open('temp.txt', 'r+'); - await filehandle.truncate(4); - } finally { - if (filehandle) { - // Close the file if it is opened. - await filehandle.close(); - } - } - console.log(fs.readFileSync('temp.txt', 'utf8')); // Prints: Node -} +### `fs.lchmodSync(path, mode)` + -doTruncate().catch(console.error); -``` +* `path` {string|Buffer|URL} +* `mode` {integer} -If the file previously was shorter than `len` bytes, it is extended, and the -extended part is filled with null bytes (`'\0'`): +Changes the permissions on a symbolic link. Returns `undefined`. -```js -const fs = require('fs'); -const fsPromises = fs.promises; +This method is only implemented on macOS. -console.log(fs.readFileSync('temp.txt', 'utf8')); -// Prints: Node.js +See the POSIX lchmod(2) documentation for more detail. -async function doTruncate() { - let filehandle = null; - try { - filehandle = await fsPromises.open('temp.txt', 'r+'); - await filehandle.truncate(10); - } finally { - if (filehandle) { - // Close the file if it is opened. - await filehandle.close(); - } - } - console.log(fs.readFileSync('temp.txt', 'utf8')); // Prints Node.js\0\0\0 -} +### `fs.lchownSync(path, uid, gid)` + -doTruncate().catch(console.error); -``` +* `path` {string|Buffer|URL} +* `uid` {integer} The file's new owner's user id. +* `gid` {integer} The file's new group's group id. -The last three bytes are null bytes (`'\0'`), to compensate the over-truncation. +Set the owner for the path. Returns `undefined`. -#### `filehandle.utimes(atime, mtime)` +See the POSIX lchown(2) documentation for more details. + +### `fs.lutimesSync(path, atime, mtime)` +* `path` {string|Buffer|URL} * `atime` {number|string|Date} * `mtime` {number|string|Date} -* Returns: {Promise} - -Change the file system timestamps of the object referenced by the `FileHandle` -then fulfills the `Promise` with no arguments upon success. -This function does not work on AIX versions before 7.1, it will reject the -`Promise` with an error using code `UV_ENOSYS`. +Change the file system timestamps of the symbolic link referenced by `path`. +Returns `undefined`, or throws an exception when parameters are incorrect or +the operation fails. This is the synchronous version of [`fs.lutimes()`][]. -#### `filehandle.write(buffer[, offset[, length[, position]]])` +### `fs.linkSync(existingPath, newPath)` -* `buffer` {Buffer|Uint8Array|string|Object} +* `existingPath` {string|Buffer|URL} +* `newPath` {string|Buffer|URL} + +Creates a new link from the `existingPath` to the `newPath`. See the POSIX +link(2) documentation for more detail. Returns `undefined`. + +### `fs.lstatSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `bigint` {boolean} Whether the numeric values in the returned + {fs.Stats} object should be `bigint`. **Default:** `false`. + * `throwIfNoEntry` {boolean} Whether an exception will be thrown + if no file system entry exists, rather than returning `undefined`. + **Default:** `true`. +* Returns: {fs.Stats} + +Retrieves the {fs.Stats} for the symbolic link referred to by `path`. + +See the POSIX lstat(2) documentation for more details. + +### `fs.mkdirSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object|integer} + * `recursive` {boolean} **Default:** `false` + * `mode` {string|integer} Not supported on Windows. **Default:** `0o777`. +* Returns: {string|undefined} + +Synchronously creates a directory. Returns `undefined`, or if `recursive` is +`true`, the first directory path created. +This is the synchronous version of [`fs.mkdir()`][]. + +See the POSIX mkdir(2) documentation for more details. + +### `fs.mkdtempSync(prefix[, options])` + + +* `prefix` {string} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {string} + +Returns the created directory path. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.mkdtemp()`][]. + +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use. + +### `fs.opendirSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `encoding` {string|null} **Default:** `'utf8'` + * `bufferSize` {number} Number of directory entries that are buffered + internally when reading from the directory. Higher values lead to better + performance but higher memory usage. **Default:** `32` +* Returns: {fs.Dir} + +Synchronously open a directory. See opendir(3). + +Creates an {fs.Dir}, which contains all further functions for reading from +and cleaning up the directory. + +The `encoding` option sets the encoding for the `path` while opening the +directory and subsequent read operations. + +### `fs.openSync(path[, flags[, mode]])` + + +* `path` {string|Buffer|URL} +* `flags` {string|number} **Default:** `'r'`. + See [support of file system `flags`][]. +* `mode` {string|integer} **Default:** `0o666` +* Returns: {number} + +Returns an integer representing the file descriptor. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.open()`][]. + +### `fs.readdirSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` + * `withFileTypes` {boolean} **Default:** `false` +* Returns: {string[]|Buffer[]|fs.Dirent[]} + +Reads the contents of the directory. + +See the POSIX readdir(3) documentation for more details. + +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use for +the filenames returned. If the `encoding` is set to `'buffer'`, +the filenames returned will be passed as {Buffer} objects. + +If `options.withFileTypes` is set to `true`, the result will contain +{fs.Dirent} objects. + +### `fs.readFileSync(path[, options])` + + +* `path` {string|Buffer|URL|integer} filename or file descriptor +* `options` {Object|string} + * `encoding` {string|null} **Default:** `null` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'r'`. +* Returns: {string|Buffer} + +Returns the contents of the `path`. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.readFile()`][]. + +If the `encoding` option is specified then this function returns a +string. Otherwise it returns a buffer. + +Similar to [`fs.readFile()`][], when the path is a directory, the behavior of +`fs.readFileSync()` is platform-specific. + +```mjs +import { readFileSync } from 'fs'; + +// macOS, Linux, and Windows +readFileSync(''); +// => [Error: EISDIR: illegal operation on a directory, read ] + +// FreeBSD +readFileSync(''); // => +``` + +### `fs.readlinkSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {string|Buffer} + +Returns the symbolic link's string value. + +See the POSIX readlink(2) documentation for more details. + +The optional `options` argument can be a string specifying an encoding, or an +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)` + + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView} +* `offset` {integer} +* `length` {integer} +* `position` {integer|bigint} +* Returns: {number} + +Returns the number of `bytesRead`. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.read()`][]. + +### `fs.readSync(fd, buffer, [options])` + + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView} +* `options` {Object} + * `offset` {integer} **Default:** `0` + * `length` {integer} **Default:** `buffer.byteLength` + * `position` {integer|bigint} **Default:** `null` +* Returns: {number} + +Returns the number of `bytesRead`. + +Similar to the above `fs.readSync` function, this version takes an optional `options` object. +If no `options` object is specified, it will default with the above values. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.read()`][]. + +### `fs.readvSync(fd, buffers[, position])` + + +* `fd` {integer} +* `buffers` {ArrayBufferView[]} +* `position` {integer} +* Returns: {number} The number of bytes read. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.readv()`][]. + +### `fs.realpathSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {string|Buffer} + +Returns the resolved pathname. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.realpath()`][]. + +### `fs.realpathSync.native(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {string|Object} + * `encoding` {string} **Default:** `'utf8'` +* Returns: {string|Buffer} + +Synchronous realpath(3). + +Only paths that can be converted to UTF8 strings are supported. + +The optional `options` argument can be a string specifying an encoding, or an +object with an `encoding` property specifying the character encoding to use for +the path returned. If the `encoding` is set to `'buffer'`, +the path returned will be passed as a {Buffer} object. + +On Linux, when Node.js is linked against musl libc, the procfs file system must +be mounted on `/proc` in order for this function to work. Glibc does not have +this restriction. + +### `fs.renameSync(oldPath, newPath)` + + +* `oldPath` {string|Buffer|URL} +* `newPath` {string|Buffer|URL} + +Renames the file from `oldPath` to `newPath`. Returns `undefined`. + +See the POSIX rename(2) documentation for more details. + +### `fs.rmdirSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js retries the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode, errors are not reported if `path` does not exist, and + operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. + +Synchronous rmdir(2). Returns `undefined`. + +Using `fs.rmdirSync()` on a file (not a directory) results in an `ENOENT` error +on Windows and an `ENOTDIR` error on POSIX. + +Setting `recursive` to `true` results in behavior similar to the Unix command +`rm -rf`: an error will not be raised for paths that do not exist, and paths +that represent files will be deleted. The permissive behavior of the +`recursive` option is deprecated, `ENOTDIR` and `ENOENT` will be thrown in +the future. + +### `fs.rmSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `force` {boolean} When `true`, exceptions will be ignored if `path` does + not exist. **Default:** `false`. + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js will retry the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. + +Synchronously removes files and directories (modeled on the standard POSIX `rm` +utility). Returns `undefined`. + +### `fs.statSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `bigint` {boolean} Whether the numeric values in the returned + {fs.Stats} object should be `bigint`. **Default:** `false`. + * `throwIfNoEntry` {boolean} Whether an exception will be thrown + if no file system entry exists, rather than returning `undefined`. + **Default:** `true`. +* Returns: {fs.Stats} + +Retrieves the {fs.Stats} for the path. + +### `fs.symlinkSync(target, path[, type])` + + +* `target` {string|Buffer|URL} +* `path` {string|Buffer|URL} +* `type` {string} + +Returns `undefined`. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.symlink()`][]. + +### `fs.truncateSync(path[, len])` + + +* `path` {string|Buffer|URL} +* `len` {integer} **Default:** `0` + +Truncates the file. Returns `undefined`. A file descriptor can also be +passed as the first argument. In this case, `fs.ftruncateSync()` is called. + +Passing a file descriptor is deprecated and may result in an error being thrown +in the future. + +### `fs.unlinkSync(path)` + + +* `path` {string|Buffer|URL} + +Synchronous unlink(2). Returns `undefined`. + +### `fs.utimesSync(path, atime, mtime)` + + +* `path` {string|Buffer|URL} +* `atime` {number|string|Date} +* `mtime` {number|string|Date} + +Returns `undefined`. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.utimes()`][]. + +### `fs.writeFileSync(file, data[, options])` + + +* `file` {string|Buffer|URL|integer} filename or file descriptor +* `data` {string|Buffer|TypedArray|DataView|Object} +* `options` {Object|string} + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} See [support of file system `flags`][]. **Default:** `'w'`. + +Returns `undefined`. + +If `data` is a plain object, it must have an own (not inherited) `toString` +function property. + +The `mode` option only affects the newly created file. See [`fs.open()`][] +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]]])` + + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView|string|Object} * `offset` {integer} * `length` {integer} * `position` {integer} +* Returns: {number} The number of bytes written. + +If `buffer` is a plain object, it must have an own (not inherited) `toString` +function property. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.write(fd, buffer...)`][]. + +### `fs.writeSync(fd, string[, position[, encoding]])` + + +* `fd` {integer} +* `string` {string|Object} +* `position` {integer} +* `encoding` {string} +* Returns: {number} The number of bytes written. + +If `string` is a plain object, it must have an own (not inherited) `toString` +function property. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.write(fd, string...)`][]. + +### `fs.writevSync(fd, buffers[, position])` + + +* `fd` {integer} +* `buffers` {ArrayBufferView[]} +* `position` {integer} +* Returns: {number} The number of bytes written. + +For detailed information, see the documentation of the asynchronous version of +this API: [`fs.writev()`][]. + +## Common Objects + +The common objects are shared by all of the file system API variants +(promise, callback, and synchronous). + +### Class: `fs.Dir` + + +A class representing a directory stream. + +Created by [`fs.opendir()`][], [`fs.opendirSync()`][], or +[`fsPromises.opendir()`][]. + +```mjs +import { opendir } from 'fs/promises'; + +try { + const dir = await opendir('./'); + for await (const dirent of dir) + console.log(dirent.name); +} catch (err) { + console.error(err); +} +``` + +When using the async iterator, the {fs.Dir} object will be automatically +closed after the iterator exits. + +#### `dir.close()` + + * Returns: {Promise} -Write `buffer` to the file. +Asynchronously close the directory's underlying resource handle. +Subsequent reads will result in errors. + +A promise is returned that will be resolved after the resource has been +closed. + +#### `dir.close(callback)` + + +* `callback` {Function} + * `err` {Error} + +Asynchronously close the directory's underlying resource handle. +Subsequent reads will result in errors. + +The `callback` will be called after the resource handle has been closed. + +#### `dir.closeSync()` + + +Synchronously close the directory's underlying resource handle. +Subsequent reads will result in errors. + +#### `dir.path` + + +* {string} + +The read-only path of this directory as was provided to [`fs.opendir()`][], +[`fs.opendirSync()`][], or [`fsPromises.opendir()`][]. + +#### `dir.read()` + + +* Returns: {Promise} containing {fs.Dirent|null} + +Asynchronously read the next directory entry via readdir(3) as an +{fs.Dirent}. + +A promise is returned that will be resolved with an {fs.Dirent}, or `null` +if there are no more directory entries to read. + +Directory entries returned by this function are in no particular order as +provided by the operating system's underlying directory mechanisms. +Entries added or removed while iterating over the directory might not be +included in the iteration results. + +#### `dir.read(callback)` + + +* `callback` {Function} + * `err` {Error} + * `dirent` {fs.Dirent|null} + +Asynchronously read the next directory entry via readdir(3) as an +{fs.Dirent}. + +After the read is completed, the `callback` will be called with an +{fs.Dirent}, or `null` if there are no more directory entries to read. + +Directory entries returned by this function are in no particular order as +provided by the operating system's underlying directory mechanisms. +Entries added or removed while iterating over the directory might not be +included in the iteration results. + +#### `dir.readSync()` + + +* Returns: {fs.Dirent|null} + +Synchronously read the next directory entry as an {fs.Dirent}. See the +POSIX readdir(3) documentation for more detail. + +If there are no more directory entries to read, `null` will be returned. + +Directory entries returned by this function are in no particular order as +provided by the operating system's underlying directory mechanisms. +Entries added or removed while iterating over the directory might not be +included in the iteration results. + +#### `dir[Symbol.asyncIterator]()` + + +* Returns: {AsyncIterator} of {fs.Dirent} + +Asynchronously iterates over the directory until all entries have +been read. Refer to the POSIX readdir(3) documentation for more detail. + +Entries returned by the async iterator are always an {fs.Dirent}. +The `null` case from `dir.read()` is handled internally. + +See {fs.Dir} for an example. + +Directory entries returned by this iterator are in no particular order as +provided by the operating system's underlying directory mechanisms. +Entries added or removed while iterating over the directory might not be +included in the iteration results. + +### Class: `fs.Dirent` + + +A representation of a directory entry, which can be a file or a subdirectory +within the directory, as returned by reading from an {fs.Dir}. The +directory entry is a combination of the file name and file type pairs. + +Additionally, when [`fs.readdir()`][] or [`fs.readdirSync()`][] is called with +the `withFileTypes` option set to `true`, the resulting array is filled with +{fs.Dirent} objects, rather than strings or {Buffer}s. + +#### `dirent.isBlockDevice()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a block device. + +#### `dirent.isCharacterDevice()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a character device. + +#### `dirent.isDirectory()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a file system +directory. + +#### `dirent.isFIFO()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a first-in-first-out +(FIFO) pipe. + +#### `dirent.isFile()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a regular file. + +#### `dirent.isSocket()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a socket. + +#### `dirent.isSymbolicLink()` + + +* Returns: {boolean} + +Returns `true` if the {fs.Dirent} object describes a symbolic link. + +#### `dirent.name` + + +* {string|Buffer} + +The file name that this {fs.Dirent} object refers to. The type of this +value is determined by the `options.encoding` passed to [`fs.readdir()`][] or +[`fs.readdirSync()`][]. + +### Class: `fs.FSWatcher` + + +* Extends {EventEmitter} -The `Promise` is fulfilled with an object containing a `bytesWritten` property -identifying the number of bytes written, and a `buffer` property containing -a reference to the `buffer` written. +A successful call to [`fs.watch()`][] method will return a new {fs.FSWatcher} +object. -`offset` determines the part of the buffer to be written, and `length` is -an integer specifying the number of bytes to write. +All {fs.FSWatcher} objects emit a `'change'` event whenever a specific watched +file is modified. -`position` refers to the offset from the beginning of the file where this data -should be written. If `typeof position !== 'number'`, the data will be written -at the current position. See pwrite(2). +#### Event: `'change'` + -It is unsafe to use `filehandle.write()` multiple times on the same file -without waiting for the `Promise` to be fulfilled (or rejected). For this -scenario, use [`fs.createWriteStream()`][]. +* `eventType` {string} The type of change event that has occurred +* `filename` {string|Buffer} The filename that changed (if relevant/available) -On Linux, positional writes do not work when the file is opened in append mode. -The kernel ignores the position argument and always appends the data to -the end of the file. +Emitted when something changes in a watched directory or file. +See more details in [`fs.watch()`][]. -#### `filehandle.write(string[, position[, encoding]])` +The `filename` argument may not be provided depending on operating system +support. If `filename` is provided, it will be provided as a {Buffer} if +`fs.watch()` is called with its `encoding` option set to `'buffer'`, otherwise +`filename` will be a UTF-8 string. + +```mjs +import { watch } from 'fs'; +// Example when handled through fs.watch() listener +watch('./tmp', { encoding: 'buffer' }, (eventType, filename) => { + if (filename) { + console.log(filename); + // Prints: + } +}); +``` + +#### Event: `'close'` -* `string` {string|Object} -* `position` {integer} -* `encoding` {string} **Default:** `'utf8'` -* Returns: {Promise} +Emitted when the watcher stops watching for changes. The closed +{fs.FSWatcher} object is no longer usable in the event handler. -Write `string` to the file. If `string` is not a string, or an -object with an own `toString` function property, then an exception is thrown. +#### Event: `'error'` + -The `Promise` is fulfilled with an object containing a `bytesWritten` property -identifying the number of bytes written, and a `buffer` property containing -a reference to the `string` written. +* `error` {Error} -`position` refers to the offset from the beginning of the file where this data -should be written. If the type of `position` is not a `number` the data -will be written at the current position. See pwrite(2). +Emitted when an error occurs while watching the file. The errored +{fs.FSWatcher} object is no longer usable in the event handler. -`encoding` is the expected string encoding. +#### `watcher.close()` + -It is unsafe to use `filehandle.write()` multiple times on the same file -without waiting for the `Promise` to be fulfilled (or rejected). For this -scenario, use [`fs.createWriteStream()`][]. +Stop watching for changes on the given {fs.FSWatcher}. Once stopped, the +{fs.FSWatcher} object is no longer usable. -On Linux, positional writes do not work when the file is opened in append mode. -The kernel ignores the position argument and always appends the data to -the end of the file. +#### `watcher.ref()` + -#### `filehandle.writeFile(data, options)` +* Returns: {fs.FSWatcher} + +When called, requests that the Node.js event loop *not* exit so long as the +{fs.FSWatcher} is active. Calling `watcher.ref()` multiple times will have +no effect. + +By default, all {fs.FSWatcher} objects are "ref'ed", making it normally +unnecessary to call `watcher.ref()` unless `watcher.unref()` had been +called previously. + +#### `watcher.unref()` -* `data` {string|Buffer|Uint8Array|Object} -* `options` {Object|string} - * `encoding` {string|null} **Default:** `'utf8'` -* Returns: {Promise} +* Returns: {fs.FSWatcher} -Asynchronously writes data to a file, replacing the file if it already exists. -`data` can be a string, a buffer, or an object with an own `toString` function -property. The `Promise` is fulfilled with no arguments upon success. +When called, the active {fs.FSWatcher} object will not require the Node.js +event loop to remain active. If there is no other activity keeping the +event loop running, the process may exit before the {fs.FSWatcher} object's +callback is invoked. Calling `watcher.unref()` multiple times will have +no effect. -The `encoding` option is ignored if `data` is a buffer. +### Class: `fs.StatWatcher` + -If `options` is a string, then it specifies the encoding. +* Extends {EventEmitter} -The `FileHandle` has to support writing. +A successful call to `fs.watchFile()` method will return a new {fs.StatWatcher} +object. -It is unsafe to use `filehandle.writeFile()` multiple times on the same file -without waiting for the `Promise` to be fulfilled (or rejected). +#### `watcher.ref()` + -If one or more `filehandle.write()` calls are made on a file handle and then a -`filehandle.writeFile()` call is made, the data will be written from the -current position till the end of the file. It doesn't always write from the -beginning of the file. +* Returns: {fs.StatWatcher} -#### `filehandle.writev(buffers[, position])` +When called, requests that the Node.js event loop *not* exit so long as the +{fs.StatWatcher} is active. Calling `watcher.ref()` multiple times will have +no effect. + +By default, all {fs.StatWatcher} objects are "ref'ed", making it normally +unnecessary to call `watcher.ref()` unless `watcher.unref()` had been +called previously. + +#### `watcher.unref()` -* `buffers` {ArrayBufferView[]} -* `position` {integer} -* Returns: {Promise} +* Returns: {fs.StatWatcher} + +When called, the active {fs.StatWatcher} object will not require the Node.js +event loop to remain active. If there is no other activity keeping the +event loop running, the process may exit before the {fs.StatWatcher} object's +callback is invoked. Calling `watcher.unref()` multiple times will have +no effect. -Write an array of `ArrayBufferView`s to the file. +### Class: `fs.ReadStream` + -The `Promise` is fulfilled with an object containing a `bytesWritten` property -identifying the number of bytes written, and a `buffers` property containing -a reference to the `buffers` input. +* Extends: {stream.Readable} -`position` is the offset from the beginning of the file where this data -should be written. If `typeof position !== 'number'`, the data will be written -at the current position. +Instances of {fs.ReadStream} are created and returned using the +[`fs.createReadStream()`][] function. -It is unsafe to call `writev()` multiple times on the same file without waiting -for the previous operation to complete. +#### Event: `'close'` + -On Linux, positional writes don't work when the file is opened in append mode. -The kernel ignores the position argument and always appends the data to -the end of the file. +Emitted when the {fs.ReadStream}'s underlying file descriptor has been closed. -### `fsPromises.access(path[, mode])` +#### Event: `'open'` -* `path` {string|Buffer|URL} -* `mode` {integer} **Default:** `fs.constants.F_OK` -* Returns: {Promise} +* `fd` {integer} Integer file descriptor used by the {fs.ReadStream}. -Tests a user's permissions for the file or directory specified by `path`. -The `mode` argument is an optional integer that specifies the accessibility -checks to be performed. Check [File access constants][] for possible values -of `mode`. It is possible to create a mask consisting of the bitwise OR of -two or more values (e.g. `fs.constants.W_OK | fs.constants.R_OK`). +Emitted when the {fs.ReadStream}'s file descriptor has been opened. -If the accessibility check is successful, the `Promise` is fulfilled with no -value. If any of the accessibility checks fail, the `Promise` is rejected -with an `Error` object. The following example checks if the file -`/etc/passwd` can be read and written by the current process. +#### Event: `'ready'` + -```js -const fs = require('fs'); -const fsPromises = fs.promises; +Emitted when the {fs.ReadStream} is ready to be used. -fsPromises.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK) - .then(() => console.log('can access')) - .catch(() => console.error('cannot access')); -``` +Fires immediately after `'open'`. -Using `fsPromises.access()` to check for the accessibility of a file before -calling `fsPromises.open()` is not recommended. Doing so introduces a race -condition, since other processes may change the file's state between the two -calls. Instead, user code should open/read/write the file directly and handle -the error raised if the file is not accessible. +#### `readStream.bytesRead` + -### `fsPromises.appendFile(path, data[, options])` +* {number} + +The number of bytes that have been read so far. + +#### `readStream.path` -* `path` {string|Buffer|URL|FileHandle} filename or `FileHandle` -* `data` {string|Buffer} -* `options` {Object|string} - * `encoding` {string|null} **Default:** `'utf8'` - * `mode` {integer} **Default:** `0o666` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'a'`. -* Returns: {Promise} +* {string|Buffer} -Asynchronously append data to a file, creating the file if it does not yet -exist. `data` can be a string or a [`Buffer`][]. The `Promise` will be -fulfilled with no arguments upon success. +The path to the file the stream is reading from as specified in the first +argument to `fs.createReadStream()`. If `path` is passed as a string, then +`readStream.path` will be a string. If `path` is passed as a {Buffer}, then +`readStream.path` will be a {Buffer}. -If `options` is a string, then it specifies the encoding. +#### `readStream.pending` + -The `path` may be specified as a `FileHandle` that has been opened -for appending (using `fsPromises.open()`). +* {boolean} + +This property is `true` if the underlying file has not been opened yet, +i.e. before the `'ready'` event is emitted. + +### Class: `fs.Stats` + + +A {fs.Stats} object provides information about a file. + +Objects returned from [`fs.stat()`][], [`fs.lstat()`][] and [`fs.fstat()`][] and +their synchronous counterparts are of this type. +If `bigint` in the `options` passed to those methods is true, the numeric values +will be `bigint` instead of `number`, and the object will contain additional +nanosecond-precision properties suffixed with `Ns`. + +```console +Stats { + dev: 2114, + ino: 48064969, + mode: 33188, + nlink: 1, + uid: 85, + gid: 100, + rdev: 0, + size: 527, + blksize: 4096, + blocks: 8, + atimeMs: 1318289051000.1, + mtimeMs: 1318289051000.1, + ctimeMs: 1318289051000.1, + birthtimeMs: 1318289051000.1, + atime: Mon, 10 Oct 2011 23:24:11 GMT, + mtime: Mon, 10 Oct 2011 23:24:11 GMT, + ctime: Mon, 10 Oct 2011 23:24:11 GMT, + birthtime: Mon, 10 Oct 2011 23:24:11 GMT } +``` + +`bigint` version: + +```console +BigIntStats { + dev: 2114n, + ino: 48064969n, + mode: 33188n, + nlink: 1n, + uid: 85n, + gid: 100n, + rdev: 0n, + size: 527n, + blksize: 4096n, + blocks: 8n, + atimeMs: 1318289051000n, + mtimeMs: 1318289051000n, + ctimeMs: 1318289051000n, + birthtimeMs: 1318289051000n, + atimeNs: 1318289051000000000n, + mtimeNs: 1318289051000000000n, + ctimeNs: 1318289051000000000n, + birthtimeNs: 1318289051000000000n, + atime: Mon, 10 Oct 2011 23:24:11 GMT, + mtime: Mon, 10 Oct 2011 23:24:11 GMT, + ctime: Mon, 10 Oct 2011 23:24:11 GMT, + birthtime: Mon, 10 Oct 2011 23:24:11 GMT } +``` -### `fsPromises.chmod(path, mode)` +#### `stats.isBlockDevice()` -* `path` {string|Buffer|URL} -* `mode` {string|integer} -* Returns: {Promise} +* Returns: {boolean} -Changes the permissions of a file then fulfills the `Promise` with no -arguments upon succces. +Returns `true` if the {fs.Stats} object describes a block device. -### `fsPromises.chown(path, uid, gid)` +#### `stats.isCharacterDevice()` -* `path` {string|Buffer|URL} -* `uid` {integer} -* `gid` {integer} -* Returns: {Promise} +* Returns: {boolean} -Changes the ownership of a file then fulfills the `Promise` with no arguments -upon success. +Returns `true` if the {fs.Stats} object describes a character device. -### `fsPromises.copyFile(src, dest[, mode])` +#### `stats.isDirectory()` -* `src` {string|Buffer|URL} source filename to copy -* `dest` {string|Buffer|URL} destination filename of the copy operation -* `mode` {integer} modifiers for copy operation. **Default:** `0`. -* Returns: {Promise} - -Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it -already exists. The `Promise` will be fulfilled with no arguments upon success. - -Node.js makes no guarantees about the atomicity of the copy operation. If an -error occurs after the destination file has been opened for writing, Node.js -will attempt to remove the destination. - -`mode` is an optional integer that specifies the behavior -of the copy operation. It is possible to create a mask consisting of the bitwise -OR of two or more values (e.g. -`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). - -* `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already - exists. -* `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a - copy-on-write reflink. If the platform does not support copy-on-write, then a - fallback copy mechanism is used. -* `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to - create a copy-on-write reflink. If the platform does not support - copy-on-write, then the operation will fail. - -```js -const { - promises: fsPromises, - constants: { - COPYFILE_EXCL - } -} = require('fs'); +* Returns: {boolean} -// destination.txt will be created or overwritten by default. -fsPromises.copyFile('source.txt', 'destination.txt') - .then(() => console.log('source.txt was copied to destination.txt')) - .catch(() => console.log('The file could not be copied')); +Returns `true` if the {fs.Stats} object describes a file system directory. -// By using COPYFILE_EXCL, the operation will fail if destination.txt exists. -fsPromises.copyFile('source.txt', 'destination.txt', COPYFILE_EXCL) - .then(() => console.log('source.txt was copied to destination.txt')) - .catch(() => console.log('The file could not be copied')); -``` +If the {fs.Stats} object was obtained from [`fs.lstat()`][], this method will +always return `false`. This is because [`fs.lstat()`][] returns information +about a symbolic link itself and not the path it resolves to. -### `fsPromises.lchmod(path, mode)` +#### `stats.isFIFO()` -* `path` {string|Buffer|URL} -* `mode` {integer} -* Returns: {Promise} +* Returns: {boolean} -Changes the permissions on a symbolic link then fulfills the `Promise` with -no arguments upon success. This method is only implemented on macOS. +Returns `true` if the {fs.Stats} object describes a first-in-first-out (FIFO) +pipe. -### `fsPromises.lchown(path, uid, gid)` +#### `stats.isFile()` -* `path` {string|Buffer|URL} -* `uid` {integer} -* `gid` {integer} -* Returns: {Promise} +* Returns: {boolean} -Changes the ownership on a symbolic link then fulfills the `Promise` with -no arguments upon success. +Returns `true` if the {fs.Stats} object describes a regular file. -### `fsPromises.lutimes(path, atime, mtime)` +#### `stats.isSocket()` -* `path` {string|Buffer|URL} -* `atime` {number|string|Date} -* `mtime` {number|string|Date} -* Returns: {Promise} - -Changes the access and modification times of a file in the same way as -[`fsPromises.utimes()`][], with the difference that if the path refers to a -symbolic link, then the link is not dereferenced: instead, the timestamps of -the symbolic link itself are changed. +* Returns: {boolean} -Upon success, the `Promise` is fulfilled without arguments. +Returns `true` if the {fs.Stats} object describes a socket. -### `fsPromises.link(existingPath, newPath)` +#### `stats.isSymbolicLink()` -* `existingPath` {string|Buffer|URL} -* `newPath` {string|Buffer|URL} -* Returns: {Promise} - -Asynchronous link(2). The `Promise` is fulfilled with no arguments upon success. - -### `fsPromises.lstat(path[, options])` - +* Returns: {boolean} -* `path` {string|Buffer|URL} -* `options` {Object} - * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. -* Returns: {Promise} +Returns `true` if the {fs.Stats} object describes a symbolic link. -Asynchronous lstat(2). The `Promise` is fulfilled with the [`fs.Stats`][] -object for the given symbolic link `path`. +This method is only valid when using [`fs.lstat()`][]. -### `fsPromises.mkdir(path[, options])` - +#### `stats.dev` -* `path` {string|Buffer|URL} -* `options` {Object|integer} - * `recursive` {boolean} **Default:** `false` - * `mode` {string|integer} Not supported on Windows. **Default:** `0o777`. -* Returns: {Promise} +* {number|bigint} -Asynchronously creates a directory then fulfills the `Promise` with either no -arguments, or the first directory path created if `recursive` is `true`. +The numeric identifier of the device containing the file. -The optional `options` argument can be an integer specifying `mode` (permission -and sticky bits), or an object with a `mode` property and a `recursive` -property indicating whether parent directories should be created. Calling -`fsPromises.mkdir()` when `path` is a directory that exists results in a -rejection only when `recursive` is false. +#### `stats.ino` -### `fsPromises.mkdtemp(prefix[, options])` - +* {number|bigint} -* `prefix` {string} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {Promise} +The file system specific "Inode" number for the file. -Creates a unique temporary directory and fulfills the `Promise` with the -created directory path. A unique directory name is generated by appending six -random characters to the end of the provided `prefix`. Due to platform -inconsistencies, avoid trailing `X` characters in `prefix`. Some platforms, -notably the BSDs, can return more than six random characters, and replace -trailing `X` characters in `prefix` with random characters. +#### `stats.mode` -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use. +* {number|bigint} -```js -fsPromises.mkdtemp(path.join(os.tmpdir(), 'foo-')) - .catch(console.error); -``` +A bit-field describing the file type and mode. -The `fsPromises.mkdtemp()` method will append the six randomly selected -characters directly to the `prefix` string. For instance, given a directory -`/tmp`, if the intention is to create a temporary directory *within* `/tmp`, the -`prefix` must end with a trailing platform-specific path separator -(`require('path').sep`). +#### `stats.nlink` -### `fsPromises.open(path, flags[, mode])` - +* {number|bigint} -* `path` {string|Buffer|URL} -* `flags` {string|number} See [support of file system `flags`][]. - **Default:** `'r'`. -* `mode` {string|integer} **Default:** `0o666` (readable and writable) -* Returns: {Promise} +The number of hard-links that exist for the file. -Asynchronous file open that returns a `Promise` that, when fulfilled, yields a -`FileHandle` object. See open(2). +#### `stats.uid` -`mode` sets the file mode (permission and sticky bits), but only if the file was -created. +* {number|bigint} -Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented -by [Naming Files, Paths, and Namespaces][]. Under NTFS, if the filename contains -a colon, Node.js will open a file system stream, as described by -[this MSDN page][MSDN-Using-Streams]. +The numeric user identifier of the user that owns the file (POSIX). -### `fsPromises.opendir(path[, options])` - +#### `stats.gid` -* `path` {string|Buffer|URL} -* `options` {Object} - * `encoding` {string|null} **Default:** `'utf8'` - * `bufferSize` {number} Number of directory entries that are buffered - internally when reading from the directory. Higher values lead to better - performance but higher memory usage. **Default:** `32` -* Returns: {Promise} containing {fs.Dir} +* {number|bigint} -Asynchronously open a directory. See opendir(3). +The numeric group identifier of the group that owns the file (POSIX). -Creates an [`fs.Dir`][], which contains all further functions for reading from -and cleaning up the directory. +#### `stats.rdev` -The `encoding` option sets the encoding for the `path` while opening the -directory and subsequent read operations. +* {number|bigint} -Example using async iteration: +A numeric device identifier if the file represents a device. -```js -const fs = require('fs'); +#### `stats.size` -async function print(path) { - const dir = await fs.promises.opendir(path); - for await (const dirent of dir) { - console.log(dirent.name); - } -} -print('./').catch(console.error); -``` +* {number|bigint} -### `fsPromises.readdir(path[, options])` - +The size of the file in bytes. -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` - * `withFileTypes` {boolean} **Default:** `false` -* Returns: {Promise} +#### `stats.blksize` -Reads the contents of a directory then fulfills the `Promise` with an array -of the names of the files in the directory excluding `'.'` and `'..'`. +* {number|bigint} -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use for -the filenames. If the `encoding` is set to `'buffer'`, the filenames returned -will be passed as `Buffer` objects. +The file system block size for i/o operations. -If `options.withFileTypes` is set to `true`, the array will contain -[`fs.Dirent`][] objects. +#### `stats.blocks` -```js -const fs = require('fs'); +* {number|bigint} -async function print(path) { - const files = await fs.promises.readdir(path); - for (const file of files) { - console.log(file); - } -} -print('./').catch(console.error); -``` +The number of blocks allocated for this file. -### `fsPromises.readFile(path[, options])` +#### `stats.atimeMs` -* `path` {string|Buffer|URL|FileHandle} filename or `FileHandle` -* `options` {Object|string} - * `encoding` {string|null} **Default:** `null` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'r'`. - * `signal` {AbortSignal} allows aborting an in-progress readFile -* Returns: {Promise} - -Asynchronously reads the entire contents of a file. +* {number|bigint} -The `Promise` is fulfilled with the contents of the file. If no encoding is -specified (using `options.encoding`), the data is returned as a `Buffer` -object. Otherwise, the data will be a string. +The timestamp indicating the last time this file was accessed expressed in +milliseconds since the POSIX Epoch. -If `options` is a string, then it specifies the encoding. +#### `stats.mtimeMs` + -When the `path` is a directory, the behavior of `fsPromises.readFile()` is -platform-specific. On macOS, Linux, and Windows, the promise will be rejected -with an error. On FreeBSD, a representation of the directory's contents will be -returned. +* {number|bigint} -It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a -request is aborted the promise returned is rejected with an `AbortError`: +The timestamp indicating the last time this file was modified expressed in +milliseconds since the POSIX Epoch. -```js -const controller = new AbortController(); -const signal = controller.signal; -readFile(fileName, { signal }).then((file) => { /* ... */ }); -// Abort the request -controller.abort(); -``` +#### `stats.ctimeMs` + -Aborting an ongoing request does not abort individual operating -system requests but rather the internal buffering `fs.readFile` performs. +* {number|bigint} -Any specified `FileHandle` has to support reading. +The timestamp indicating the last time the file status was changed expressed +in milliseconds since the POSIX Epoch. -### `fsPromises.readlink(path[, options])` +#### `stats.birthtimeMs` -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {Promise} - -Asynchronous readlink(2). The `Promise` is fulfilled with the `linkString` upon -success. +* {number|bigint} -The optional `options` argument can be a string specifying an encoding, or an -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. +The timestamp indicating the creation time of this file expressed in +milliseconds since the POSIX Epoch. -### `fsPromises.realpath(path[, options])` +#### `stats.atimeNs` -* `path` {string|Buffer|URL} -* `options` {string|Object} - * `encoding` {string} **Default:** `'utf8'` -* Returns: {Promise} +* {bigint} -Determines the actual location of `path` using the same semantics as the -`fs.realpath.native()` function then fulfills the `Promise` with the resolved -path. +Only present when `bigint: true` is passed into the method that generates +the object. +The timestamp indicating the last time this file was accessed expressed in +nanoseconds since the POSIX Epoch. -Only paths that can be converted to UTF8 strings are supported. +#### `stats.mtimeNs` + -The optional `options` argument can be a string specifying an encoding, or an -object with an `encoding` property specifying the character encoding to use for -the path. If the `encoding` is set to `'buffer'`, the path returned will be -passed as a `Buffer` object. +* {bigint} -On Linux, when Node.js is linked against musl libc, the procfs file system must -be mounted on `/proc` in order for this function to work. Glibc does not have -this restriction. +Only present when `bigint: true` is passed into the method that generates +the object. +The timestamp indicating the last time this file was modified expressed in +nanoseconds since the POSIX Epoch. -### `fsPromises.rename(oldPath, newPath)` +#### `stats.ctimeNs` -* `oldPath` {string|Buffer|URL} -* `newPath` {string|Buffer|URL} -* Returns: {Promise} +* {bigint} -Renames `oldPath` to `newPath` and fulfills the `Promise` with no arguments -upon success. +Only present when `bigint: true` is passed into the method that generates +the object. +The timestamp indicating the last time the file status was changed expressed +in nanoseconds since the POSIX Epoch. -### `fsPromises.rmdir(path[, options])` +#### `stats.birthtimeNs` -* `path` {string|Buffer|URL} -* `options` {Object} - * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js retries the operation with a linear - backoff wait of `retryDelay` milliseconds longer on each try. This option - represents the number of retries. This option is ignored if the `recursive` - option is not `true`. **Default:** `0`. - * `recursive` {boolean} If `true`, perform a recursive directory removal. In - recursive mode, errors are not reported if `path` does not exist, and - operations are retried on failure. **Default:** `false`. - * `retryDelay` {integer} The amount of time in milliseconds to wait between - retries. This option is ignored if the `recursive` option is not `true`. - **Default:** `100`. -* Returns: {Promise} +* {bigint} -Removes the directory identified by `path` then fulfills the `Promise` with -no arguments upon success. +Only present when `bigint: true` is passed into the method that generates +the object. +The timestamp indicating the creation time of this file expressed in +nanoseconds since the POSIX Epoch. -Using `fsPromises.rmdir()` on a file (not a directory) results in the -`Promise` being rejected with an `ENOENT` error on Windows and an `ENOTDIR` -error on POSIX. +#### `stats.atime` + -Setting `recursive` to `true` results in behavior similar to the Unix command -`rm -rf`: an error will not be raised for paths that do not exist, and paths -that represent files will be deleted. The permissive behavior of the -`recursive` option is deprecated, `ENOTDIR` and `ENOENT` will be thrown in -the future. +* {Date} -### `fsPromises.rm(path[, options])` +The timestamp indicating the last time this file was accessed. + +#### `stats.mtime` -* `path` {string|Buffer|URL} -* `options` {Object} - * `force` {boolean} When `true`, exceptions will be ignored if `path` does - not exist. **Default:** `false`. - * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js will retry the operation with a linear - backoff wait of `retryDelay` milliseconds longer on each try. This option - represents the number of retries. This option is ignored if the `recursive` - option is not `true`. **Default:** `0`. - * `recursive` {boolean} If `true`, perform a recursive directory removal. In - recursive mode operations are retried on failure. **Default:** `false`. - * `retryDelay` {integer} The amount of time in milliseconds to wait between - retries. This option is ignored if the `recursive` option is not `true`. - **Default:** `100`. +* {Date} -Removes files and directories (modeled on the standard POSIX `rm` utility). -Fulfills the `Promise` with no arguments on success. +The timestamp indicating the last time this file was modified. -### `fsPromises.stat(path[, options])` +#### `stats.ctime` -* `path` {string|Buffer|URL} -* `options` {Object} - * `bigint` {boolean} Whether the numeric values in the returned - [`fs.Stats`][] object should be `bigint`. **Default:** `false`. -* Returns: {Promise} +* {Date} -The `Promise` is fulfilled with the [`fs.Stats`][] object for the given `path`. +The timestamp indicating the last time the file status was changed. -### `fsPromises.symlink(target, path[, type])` +#### `stats.birthtime` -* `target` {string|Buffer|URL} -* `path` {string|Buffer|URL} -* `type` {string} **Default:** `'file'` -* Returns: {Promise} +* {Date} -Creates a symbolic link then fulfills the `Promise` with no arguments upon -success. +The timestamp indicating the creation time of this file. -The `type` argument is only used on Windows platforms and can be one of `'dir'`, -`'file'`, or `'junction'`. Windows junction points require the destination path -to be absolute. When using `'junction'`, the `target` argument will -automatically be normalized to absolute path. +#### Stat time values -### `fsPromises.truncate(path[, len])` - +The `atimeMs`, `mtimeMs`, `ctimeMs`, `birthtimeMs` properties are +numeric values that hold the corresponding times in milliseconds. Their +precision is platform specific. When `bigint: true` is passed into the +method that generates the object, the properties will be [bigints][], +otherwise they will be [numbers][MDN-Number]. -* `path` {string|Buffer|URL} -* `len` {integer} **Default:** `0` -* Returns: {Promise} +The `atimeNs`, `mtimeNs`, `ctimeNs`, `birthtimeNs` properties are +[bigints][] that hold the corresponding times in nanoseconds. They are +only present when `bigint: true` is passed into the method that generates +the object. Their precision is platform specific. -Truncates the `path` then fulfills the `Promise` with no arguments upon -success. The `path` *must* be a string or `Buffer`. +`atime`, `mtime`, `ctime`, and `birthtime` are +[`Date`][MDN-Date] object alternate representations of the various times. The +`Date` and number values are not connected. Assigning a new number value, or +mutating the `Date` value, will not be reflected in the corresponding alternate +representation. -### `fsPromises.unlink(path)` +The times in the stat object have the following semantics: + +* `atime` "Access Time": Time when file data last accessed. Changed + by the mknod(2), utimes(2), and read(2) system calls. +* `mtime` "Modified Time": Time when file data last modified. + Changed by the mknod(2), utimes(2), and write(2) system calls. +* `ctime` "Change Time": Time when file status was last changed + (inode data modification). Changed by the chmod(2), chown(2), + link(2), mknod(2), rename(2), unlink(2), utimes(2), + read(2), and write(2) system calls. +* `birthtime` "Birth Time": Time of file creation. Set once when the + file is created. On filesystems where birthtime is not available, + this field may instead hold either the `ctime` or + `1970-01-01T00:00Z` (ie, Unix epoch timestamp `0`). This value may be greater + than `atime` or `mtime` in this case. On Darwin and other FreeBSD variants, + also set if the `atime` is explicitly set to an earlier value than the current + `birthtime` using the utimes(2) system call. + +Prior to Node.js 0.12, the `ctime` held the `birthtime` on Windows systems. As +of 0.12, `ctime` is not "creation time", and on Unix systems, it never was. + +### Class: `fs.WriteStream` -* `path` {string|Buffer|URL} -* Returns: {Promise} +* Extends {stream.Writable} -Asynchronous unlink(2). The `Promise` is fulfilled with no arguments upon -success. +Instances of {fs.WriteStream} are created and returned using the +[`fs.createWriteStream()`][] function. -### `fsPromises.utimes(path, atime, mtime)` +#### Event: `'close'` -* `path` {string|Buffer|URL} -* `atime` {number|string|Date} -* `mtime` {number|string|Date} -* Returns: {Promise} +Emitted when the {fs.WriteStream}'s underlying file descriptor has been closed. -Change the file system timestamps of the object referenced by `path` then -fulfills the `Promise` with no arguments upon success. +#### Event: `'open'` + -The `atime` and `mtime` arguments follow these rules: +* `fd` {integer} Integer file descriptor used by the {fs.WriteStream}. -* Values can be either numbers representing Unix epoch time, `Date`s, or a - numeric string like `'123456789.0'`. -* If the value can not be converted to a number, or is `NaN`, `Infinity` or - `-Infinity`, an `Error` will be thrown. +Emitted when the {fs.WriteStream}'s file is opened. -### `fsPromises.writeFile(file, data[, options])` +#### Event: `'ready'` -* `file` {string|Buffer|URL|FileHandle} filename or `FileHandle` -* `data` {string|Buffer|Uint8Array|Object} -* `options` {Object|string} - * `encoding` {string|null} **Default:** `'utf8'` - * `mode` {integer} **Default:** `0o666` - * `flag` {string} See [support of file system `flags`][]. **Default:** `'w'`. - * `signal` {AbortSignal} allows aborting an in-progress writeFile -* Returns: {Promise} +Emitted when the {fs.WriteStream} is ready to be used. -Asynchronously writes data to a file, replacing the file if it already exists. -`data` can be a string, a buffer, or an object with an own `toString` function -property. The `Promise` is fulfilled with no arguments upon success. +Fires immediately after `'open'`. -The `encoding` option is ignored if `data` is a buffer. +#### `writeStream.bytesWritten` + -If `options` is a string, then it specifies the encoding. +The number of bytes written so far. Does not include data that is still queued +for writing. -Any specified `FileHandle` has to support writing. +#### `writeStream.close([callback])` + -It is unsafe to use `fsPromises.writeFile()` multiple times on the same file -without waiting for the `Promise` to be fulfilled (or rejected). +* `callback` {Function} + * `err` {Error} -Similarly to `fsPromises.readFile` - `fsPromises.writeFile` is a convenience -method that performs multiple `write` calls internally to write the buffer -passed to it. For performance sensitive code consider using -[`fs.createWriteStream()`][]. +Closes `writeStream`. Optionally accepts a +callback that will be executed once the `writeStream` +is closed. -It is possible to use an {AbortSignal} to cancel an `fsPromises.writeFile()`. -Cancelation is "best effort", and some amount of data is likely still -to be written. +#### `writeStream.path` + -```js -const controller = new AbortController(); -const { signal } = controller; -const data = new Uint8Array(Buffer.from('Hello Node.js')); -(async () => { - try { - await fs.writeFile('message.txt', data, { signal }); - } catch (err) { - // When a request is aborted - err is an AbortError - } -})(); -// When the request should be aborted -controller.abort(); -``` +The path to the file the stream is writing to as specified in the first +argument to [`fs.createWriteStream()`][]. If `path` is passed as a string, then +`writeStream.path` will be a string. If `path` is passed as a {Buffer}, then +`writeStream.path` will be a {Buffer}. -Aborting an ongoing request does not abort individual operating -system requests but rather the internal buffering `fs.writeFile` performs. +#### `writeStream.pending` + + +* {boolean} + +This property is `true` if the underlying file has not been opened yet, +i.e. before the `'ready'` event is emitted. -## FS constants +### `fs.constants` + +* {Object} + +Returns an object containing commonly used constants for file system +operations. + +#### FS constants The following constants are exported by `fs.constants`. @@ -5829,21 +6009,21 @@ To use more than one constant, use the bitwise OR `|` operator. Example: -```js -const fs = require('fs'); +```mjs +import { open, constants } from 'fs'; const { O_RDWR, O_CREAT, O_EXCL -} = fs.constants; +} = constants; -fs.open('/path/to/my/file', O_RDWR | O_CREAT | O_EXCL, (err, fd) => { +open('/path/to/my/file', O_RDWR | O_CREAT | O_EXCL, (err, fd) => { // ... }); ``` -### File access constants +##### File access constants The following constants are meant for use with [`fs.access()`][]. @@ -5875,7 +6055,7 @@ The following constants are meant for use with [`fs.access()`][]. -### File copy constants +##### File copy constants The following constants are meant for use with [`fs.copyFile()`][]. @@ -5903,7 +6083,7 @@ The following constants are meant for use with [`fs.copyFile()`][]. -### File open constants +##### File open constants The following constants are meant for use with `fs.open()`. @@ -5997,9 +6177,9 @@ The following constants are meant for use with `fs.open()`. -### File type constants +##### File type constants -The following constants are meant for use with the [`fs.Stats`][] object's +The following constants are meant for use with the {fs.Stats} object's `mode` property for determining a file's type. @@ -6041,9 +6221,9 @@ The following constants are meant for use with the [`fs.Stats`][] object's
-### File mode constants +##### File mode constants -The following constants are meant for use with the [`fs.Stats`][] object's +The following constants are meant for use with the {fs.Stats} object's `mode` property for determining the access permissions for a file. @@ -6101,7 +6281,321 @@ The following constants are meant for use with the [`fs.Stats`][] object's
-## File system flags +## Notes + +### Ordering of callback and promise-based operations + +Because they are executed asynchronously by the underlying thread pool, +there is no guaranteed ordering when using either the callback or +promise-based methods. + +For example, the following is prone to error because the `fs.stat()` +operation might complete before the `fs.rename()` operation: + +```js +fs.rename('/tmp/hello', '/tmp/world', (err) => { + if (err) throw err; + console.log('renamed complete'); +}); +fs.stat('/tmp/world', (err, stats) => { + if (err) throw err; + console.log(`stats: ${JSON.stringify(stats)}`); +}); +``` + +It is important to correctly order the operations by awaiting the results +of one before invoking the other: + +```mjs +import { rename, stat } from 'fs/promises'; + +const from = '/tmp/hello'; +const to = '/tmp/world'; + +try { + await rename(from, to); + const stats = await stat(to); + console.log(`stats: ${JSON.stringify(stats)}`); +} catch (error) { + console.error('there was an error:', error.message); +} +``` + +```cjs +const { rename, stat } = require('fs/promises'); + +(async function(from, to) { + try { + await rename(from, to); + const stats = await stat(to); + console.log(`stats: ${JSON.stringify(stats)}`); + } catch (error) { + console.error('there was an error:', error.message); + } +})('/tmp/hello', '/tmp/world'); +``` + +Or, when using the callback APIs, move the `fs.stat()` call into the callback +of the `fs.rename()` operation: + +```mjs +import { rename, stat } from 'fs'; + +rename('/tmp/hello', '/tmp/world', (err) => { + if (err) throw err; + stat('/tmp/world', (err, stats) => { + if (err) throw err; + console.log(`stats: ${JSON.stringify(stats)}`); + }); +}); +``` + +```cjs +const { rename, stat } = require('fs/promises'); + +rename('/tmp/hello', '/tmp/world', (err) => { + if (err) throw err; + stat('/tmp/world', (err, stats) => { + if (err) throw err; + console.log(`stats: ${JSON.stringify(stats)}`); + }); +}); +``` + +### File paths + +Most `fs` operations accept file paths that may be specified in the form of +a string, a {Buffer}, or a {URL} object using the `file:` protocol. + +#### String paths + +String form paths are interpreted as UTF-8 character sequences identifying +the absolute or relative filename. Relative paths will be resolved relative +to the current working directory as determined by calling `process.cwd()`. + +Example using an absolute path on POSIX: + +```mjs +import { open } from 'fs/promises'; + +let fd; +try { + fd = await open('/open/some/file.txt', 'r'); + // Do something with the file +} finally { + await fd.close(); +} +``` + +Example using a relative path on POSIX (relative to `process.cwd()`): + +```mjs +import { open } from 'fs/promises'; + +let fd; +try { + fd = await open('file.txt', 'r'); + // Do something with the file +} finally { + await fd.close(); +} +``` + +#### File URL paths + +For most `fs` module functions, the `path` or `filename` argument may be passed +as a {URL} object using the `file:` protocol. + +```mjs +import { readFileSync } from 'fs'; + +readFileSync(new URL('file:///tmp/hello')); +``` + +`file:` URLs are always absolute paths. + +##### Platform-specific considerations + +On Windows, `file:` {URL}s with a host name convert to UNC paths, while `file:` +{URL}s with drive letters convert to local absolute paths. `file:` {URL}s +without a host name nor a drive letter will result in an error: + +```mjs +import { readFileSync } from 'fs'; +// On Windows : + +// - WHATWG file URLs with hostname convert to UNC path +// file://hostname/p/a/t/h/file => \\hostname\p\a\t\h\file +readFileSync(new URL('file://hostname/p/a/t/h/file')); + +// - WHATWG file URLs with drive letters convert to absolute path +// file:///C:/tmp/hello => C:\tmp\hello +readFileSync(new URL('file:///C:/tmp/hello')); + +// - WHATWG file URLs without hostname must have a drive letters +readFileSync(new URL('file:///notdriveletter/p/a/t/h/file')); +readFileSync(new URL('file:///c/p/a/t/h/file')); +// TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must be absolute +``` + +`file:` {URL}s with drive letters must use `:` as a separator just after +the drive letter. Using another separator will result in an error. + +On all other platforms, `file:` {URL}s with a host name are unsupported and +will result in an error: + +```mjs +import { readFileSync } from 'fs'; +// On other platforms: + +// - WHATWG file URLs with hostname are unsupported +// file://hostname/p/a/t/h/file => throw! +readFileSync(new URL('file://hostname/p/a/t/h/file')); +// TypeError [ERR_INVALID_FILE_URL_PATH]: must be absolute + +// - WHATWG file URLs convert to absolute path +// file:///tmp/hello => /tmp/hello +readFileSync(new URL('file:///tmp/hello')); +``` + +A `file:` {URL} having encoded slash characters will result in an error on all +platforms: + +```mjs +import { readFileSync } from 'fs'; + +// On Windows +readFileSync(new URL('file:///C:/p/a/t/h/%2F')); +readFileSync(new URL('file:///C:/p/a/t/h/%2f')); +/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded +\ or / characters */ + +// On POSIX +readFileSync(new URL('file:///p/a/t/h/%2F')); +readFileSync(new URL('file:///p/a/t/h/%2f')); +/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded +/ characters */ +``` + +On Windows, `file:` {URL}s having encoded backslash will result in an error: + +```mjs +import { readFileSync } from 'fs'; + +// On Windows +readFileSync(new URL('file:///C:/path/%5C')); +readFileSync(new URL('file:///C:/path/%5c')); +/* TypeError [ERR_INVALID_FILE_URL_PATH]: File URL path must not include encoded +\ or / characters */ +``` + +#### Buffer paths + +Paths specified using a {Buffer} are useful primarily on certain POSIX +operating systems that treat file paths as opaque byte sequences. On such +systems, it is possible for a single file path to contain sub-sequences that +use multiple character encodings. As with string paths, {Buffer} paths may +be relative or absolute: + +Example using an absolute path on POSIX: + +```mjs +import { open } from 'fs/promises'; + +let fd; +try { + fd = await open(Buffer.from('/open/some/file.txt'), 'r'); + // Do something with the file +} finally { + await fd.close(); +} +``` + +#### Per-drive working directories on Windows + +On Windows, Node.js follows the concept of per-drive working directory. This +behavior can be observed when using a drive path without a backslash. For +example `fs.readdirSync('C:\\')` can potentially return a different result than +`fs.readdirSync('C:')`. For more information, see +[this MSDN page][MSDN-Rel-Path]. + +### File descriptors + +On POSIX systems, for every process, the kernel maintains a table of currently +open files and resources. Each open file is assigned a simple numeric +identifier called a *file descriptor*. At the system-level, all file system +operations use these file descriptors to identify and track each specific +file. Windows systems use a different but conceptually similar mechanism for +tracking resources. To simplify things for users, Node.js abstracts away the +differences between operating systems and assigns all open files a numeric file +descriptor. + +The callback-based `fs.open()`, and synchronous `fs.openSync()` methods open a +file and allocate a new file descriptor. Once allocated, the file descriptor may +be used to read data from, write data to, or request information about the file. + +Operating systems limit the number of file descriptors that may be open +at any given time so it is critical to close the descriptor when operations +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'; + +function closeFd(fd) { + close(fd, (err) => { + if (err) throw err; + }); +} + +open('/open/some/file.txt', 'r', (err, fd) => { + if (err) throw err; + try { + fstat(fd, (err, stat) => { + if (err) { + closeFd(fd); + throw err; + } + + // use stat + + closeFd(fd); + }); + } catch (err) { + closeFd(fd); + throw err; + } +}); +``` + +The promise-based APIs use a {FileHandle} object in place of the numeric +file descriptor. These objects are better managed by the system to ensure +that resources are not leaked. However, it is still required that they are +closed when operations are completed: + +```mjs +import { open } from 'fs/promises'; + +let file; +try { + file = await open('/open/some/file.txt', 'r'); + const stat = await file.stat(); + // use stat +} finally { + await file.close(); +} +``` + +### Threadpool usage + +All callback and promise-based file system APIs ( with the exception of +`fs.FSWatcher()`) use libuv's threadpool. This can have surprising and negative +performance implications for some applications. See the +[`UV_THREADPOOL_SIZE`][] documentation for more information. + +### File system flags The following flags are available wherever the `flag` option takes a string. @@ -6191,9 +6685,7 @@ A call to `fs.ftruncate()` or `filehandle.truncate()` can be used to reset the file contents. [#25741]: https://github.com/nodejs/node/issues/25741 -[Caveats]: #fs_caveats [Common System Errors]: errors.md#errors_common_system_errors -[FS constants]: #fs_fs_constants_1 [File access constants]: #fs_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 @@ -6202,29 +6694,21 @@ the file contents. [Naming Files, Paths, and Namespaces]: https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file [Readable Stream]: stream.md#stream_class_stream_readable [Writable Stream]: stream.md#stream_class_stream_writable -[`AHAFS`]: https://www.ibm.com/developerworks/aix/library/au-aix_event_infrastructure/ +[`AHAFS`]: https://developer.ibm.com/articles/au-aix_event_infrastructure/ [`Buffer.byteLength`]: buffer.md#buffer_static_method_buffer_bytelength_string_encoding -[`Buffer`]: buffer.md#buffer_buffer [`FSEvents`]: https://developer.apple.com/documentation/coreservices/file_system_events [`Number.MAX_SAFE_INTEGER`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER [`ReadDirectoryChangesW`]: https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-readdirectorychangesw -[`ReadStream`]: #fs_class_fs_readstream -[`URL`]: url.md#url_the_whatwg_url_api [`UV_THREADPOOL_SIZE`]: cli.md#cli_uv_threadpool_size_size -[`WriteStream`]: #fs_class_fs_writestream [`event ports`]: https://illumos.org/man/port_create [`filehandle.writeFile()`]: #fs_filehandle_writefile_data_options -[`fs.Dir`]: #fs_class_fs_dir -[`fs.Dirent`]: #fs_class_fs_dirent -[`fs.FSWatcher`]: #fs_class_fs_fswatcher -[`fs.Stats`]: #fs_class_fs_stats [`fs.access()`]: #fs_fs_access_path_mode_callback [`fs.chmod()`]: #fs_fs_chmod_path_mode_callback [`fs.chown()`]: #fs_fs_chown_path_uid_gid_callback [`fs.copyFile()`]: #fs_fs_copyfile_src_dest_mode_callback [`fs.createReadStream()`]: #fs_fs_createreadstream_path_options [`fs.createWriteStream()`]: #fs_fs_createwritestream_path_options -[`fs.exists()`]: fs.md#fs_fs_exists_path_callback +[`fs.exists()`]: #fs_fs_exists_path_callback [`fs.fstat()`]: #fs_fs_fstat_fd_options_callback [`fs.ftruncate()`]: #fs_fs_ftruncate_fd_len_callback [`fs.futimes()`]: #fs_fs_futimes_fd_atime_mtime_callback @@ -6253,13 +6737,13 @@ the file contents. [`fs.writev()`]: #fs_fs_writev_fd_buffers_position_callback [`fsPromises.open()`]: #fs_fspromises_open_path_flags_mode [`fsPromises.opendir()`]: #fs_fspromises_opendir_path_options +[`fsPromises.stat()`]: #fs_fspromises_stat_path_options [`fsPromises.utimes()`]: #fs_fspromises_utimes_path_atime_mtime [`inotify(7)`]: https://man7.org/linux/man-pages/man7/inotify.7.html [`kqueue(2)`]: https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2 -[`net.Socket`]: net.md#net_class_net_socket -[`stat()`]: fs.md#fs_fs_stat_path_options_callback [`util.promisify()`]: util.md#util_util_promisify_original [bigints]: https://tc39.github.io/proposal-bigint +[caveats]: #fs_caveats [chcp]: https://ss64.com/nt/chcp.html [inode]: https://en.wikipedia.org/wiki/Inode [support of file system `flags`]: #fs_file_system_flags diff --git a/doc/api/globals.md b/doc/api/globals.md index e577372b5c4cf6..a824f50899bd97 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -18,7 +18,7 @@ that are part of the JavaScript language itself, which are also globally accessible. ## Class: `AbortController` - @@ -242,7 +242,7 @@ within each turn of the Node.js event loop. // before any other promise jobs. DataHandler.prototype.load = async function load(key) { - const hit = this._cache.get(url); + const hit = this._cache.get(key); if (hit !== undefined) { queueMicrotask(() => { this.emit('load', hit); @@ -251,7 +251,7 @@ DataHandler.prototype.load = async function load(key) { } const data = await fetchData(key); - this._cache.set(url, data); + this._cache.set(key, data); this.emit('load', data); }; ``` diff --git a/doc/api/http.md b/doc/api/http.md index 1df8bc6a48ccc8..5f6d3804eedcf5 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1002,11 +1002,11 @@ added: v0.1.29 * `callback` {Function} * Returns: {boolean} -Sends a chunk of the body. By calling this method -many times, a request body can be sent to a -server. In that case, it is suggested to use the -`['Transfer-Encoding', 'chunked']` header line when -creating the request. +Sends a chunk of the body. This method can be called multiple times. If no +`Content-Length` is set, data will automatically be encoded in HTTP Chunked +transfer encoding, so that server knows when the data ends. The +`Transfer-Encoding: chunked` header is added. Calling [`request.end()`][] +is necessary to finish sending the request. The `encoding` argument is optional and only applies when `chunk` is a string. Defaults to `'utf8'`. @@ -2626,6 +2626,37 @@ Returns a new instance of [`http.Server`][]. The `requestListener` is a function which is automatically added to the [`'request'`][] event. +```cjs +const http = require('http'); + +// Create a local server to receive data from +const server = http.createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ + data: 'Hello World!' + })); +}); + +server.listen(8000); +``` + +```cjs +const http = require('http'); + +// Create a local server to receive data from +const server = http.createServer(); + +// Listen to the request event +server.on('request', (request, res) => { + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ + data: 'Hello World!' + })); +}); + +server.listen(8000); +``` + ## `http.get(options[, callback])` ## `http.get(url[, options][, callback])` + +* `windowSize` {number} + +Sets the local endpoint's window size. +The `windowSize` is the total window size to set, not +the delta. + +```js +const http2 = require('http2'); + +const server = http2.createServer(); +const expectedWindowSize = 2 ** 20; +server.on('connect', (session) => { + + // Set local window size to be 2 ** 20 + session.setLocalWindowSize(expectedWindowSize); +}); +``` + #### `http2session.setTimeout(msecs, callback)` + +* {symbol} + +This symbol can be set as a property on the HTTP/2 headers object with an array +value in order to provide a list of headers considered sensitive. +See [Sensitive headers][] for more details. + ### Headers object Headers are represented as own-properties on JavaScript objects. The property @@ -2620,6 +2654,32 @@ server.on('stream', (stream, headers) => { }); ``` +#### Sensitive headers + +HTTP2 headers can be marked as sensitive, which means that the HTTP/2 +header compression algorithm will never index them. This can make sense for +header values with low entropy and that may be considered valuable to an +attacker, for example `Cookie` or `Authorization`. To achieve this, add +the header name to the `[http2.sensitiveHeaders]` property as an array: + +```js +const headers = { + ':status': '200', + 'content-type': 'text-plain', + 'cookie': 'some-cookie', + 'other-sensitive-header': 'very secret data', + [http2.sensitiveHeaders]: ['cookie', 'other-sensitive-header'] +}; + +stream.respond(headers); +``` + +For some headers, such as `Authorization` and short `Cookie` headers, +this flag is set automatically. + +This property is also set for received headers. It will contain the names of +all headers marked as sensitive, including ones marked that way automatically. + ### Settings object -> Stability: 1 - Experimental +> Stability: 2 - Stable diff --git a/doc/api/modules.md b/doc/api/modules.md index 1667c149953773..6c86efc3ad1f41 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -78,7 +78,7 @@ Because `module` provides a `filename` property (normally equivalent to `__filename`), the entry point of the current application can be obtained by checking `require.main.filename`. -## Addenda: Package manager tips +## Package manager tips @@ -131,7 +131,7 @@ variable. Since the module lookups using `node_modules` folders are all relative, and based on the real path of the files making the calls to `require()`, the packages themselves can be anywhere. -## Addenda: The `.mjs` extension +## The `.mjs` extension It is not possible to `require()` files that have the `.mjs` extension. Attempting to do so will throw [an error][]. The `.mjs` extension is @@ -280,6 +280,12 @@ irrespective of whether or not `./foo` and `./FOO` are the same file. ## Core modules + Node.js has several modules compiled into the binary. These modules are described in greater detail elsewhere in this documentation. @@ -291,6 +297,11 @@ 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 +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. + ## Cycles @@ -642,8 +653,20 @@ error. Adding or replacing entries is also possible. This cache is checked before native modules and if a name matching a native module is added to the cache, -no require call is -going to receive the native module anymore. Use with care! +only `node:`-prefixed require calls are going to receive the native module. +Use with care! + + +```js +const assert = require('assert'); +const realFs = require('fs'); + +const fakeFs = {}; +require.cache.fs = { exports: fakeFs }; + +assert.strictEqual(require('fs'), fakeFs); +assert.strictEqual(require('node:fs'), realFs); +``` #### `require.extensions` + +> Stability: 1 - Experimental + +```c +NAPI_EXTERN napi_status +node_api_get_module_file_name(napi_env env, const char** result); + +``` + +* `[in] env`: The environment that the API is invoked under. +* `[out] result`: A URL containing the absolute path of the + location from which the add-on was loaded. For a file on the local + file system it will start with `file://`. The string is null-terminated and + owned by `env` and must thus not be modified or freed. + +`result` may be an empty string if the add-on loading process fails to establish +the add-on's file name during loading. + [ABI Stability]: https://nodejs.org/en/docs/guides/abi-stability/ [AppVeyor]: https://www.appveyor.com [C++ Addons]: addons.md diff --git a/doc/api/net.md b/doc/api/net.md index eb5cf0126c5393..abf57a570c30cb 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -55,6 +55,132 @@ net.createServer().listen( path.join('\\\\?\\pipe', process.cwd(), 'myctl')); ``` +## Class: `net.BlockList` + + +The `BlockList` object can be used with some network APIs to specify rules for +disabling inbound or outbound access to specific IP addresses, IP ranges, or +IP subnets. + +### `blockList.addAddress(address[, type])` + + +* `address` {string|net.SocketAddress} An IPv4 or IPv6 address. +* `type` {string} Either `'ipv4'` or `'ipv6'`. **Default:** `'ipv4'`. + +Adds a rule to block the given IP address. + +### `blockList.addRange(start, end[, type])` + + +* `start` {string|net.SocketAddress} The starting IPv4 or IPv6 address in the + range. +* `end` {string|net.SocketAddress} The ending IPv4 or IPv6 address in the range. +* `type` {string} Either `'ipv4'` or `'ipv6'`. **Default:** `'ipv4'`. + +Adds a rule to block a range of IP addresses from `start` (inclusive) to +`end` (inclusive). + +### `blockList.addSubnet(net, prefix[, type])` + + +* `net` {string|net.SocketAddress} The network IPv4 or IPv6 address. +* `prefix` {number} The number of CIDR prefix bits. For IPv4, this + must be a value between `0` and `32`. For IPv6, this must be between + `0` and `128`. +* `type` {string} Either `'ipv4'` or `'ipv6'`. **Default**: `'ipv4'`. + +Adds a rule to block a range of IP addresses specified as a subnet mask. + +### `blockList.check(address[, type])` + + +* `address` {string|net.SocketAddress} The IP address to check +* `type` {string} Either `'ipv4'` or `'ipv6'`. **Default:** `'ipv4'`. +* Returns: {boolean} + +Returns `true` if the given IP address matches any of the rules added to the +`BlockList`. + +```js +const blockList = new net.BlockList(); +blockList.addAddress('123.123.123.123'); +blockList.addRange('10.0.0.1', '10.0.0.10'); +blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + +console.log(blockList.check('123.123.123.123')); // Prints: true +console.log(blockList.check('10.0.0.3')); // Prints: true +console.log(blockList.check('222.111.111.222')); // Prints: false + +// IPv6 notation for IPv4 addresses works: +console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true +console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true +``` + +### `blockList.rules` + + +* Type: {string[]} + +The list of rules added to the blocklist. + +## Class: `net.SocketAddress` + +### `new net.SocketAddress([options])` + + +* `options` {Object} + * `address` {string} The network address as either an IPv4 or IPv6 string. + **Default**: `'127.0.0.1'` if `family` is `'ipv4'`; `'::'` if `family` is + `'ipv6'`. + * `family` {string} One of either `'ipv4'` or 'ipv6'`. **Default**: `'ipv4'`. + * `flowlabel` {number} An IPv6 flow-label used only if `family` is `'ipv6'`. + * `port` {number} An IP port. + +### `socketaddress.address` + + +* Type {string} + +### `socketaddress.family` + + +* Type {string} Either `'ipv4'` or `'ipv6'`. + +### `socketaddress.flowlabel` + + +* Type {number} + +### `socketaddress.port` + + +* Type {number} + ## Class: `net.Server` + +* {string} + +The platform-specific file path of the null device. + +* `\\.\nul` on Windows +* `/dev/null` on POSIX + ## `os.endianness()` @@ -433,7 +433,7 @@ can be written: ``` ### Conditional exports - + +* `options` {Object} + * `min` {number|bigint} The minimum recordable value. Must be an integer + value greater than 0. **Defaults**: `1`. + * `max` {number|bigint} The maximum recordable value. Must be an integer + value greater than `min`. **Defaults**: `Number.MAX_SAFE_INTEGER`. + * `figures` {number} The number of accuracy digits. Must be a number between + `1` and `5`. **Defaults**: `3`. +* Returns {RecordableHistogram} + +Returns a {RecordableHistogram}. + ## `perf_hooks.monitorEventLoopDelay([options])` -Tracks the event loop delay at a given sampling rate. The constructor of -this class not exposed to users. - -_This property is an extension by Node.js. It is not available in Web browsers._ - -#### `histogram.disable()` - - -* Returns: {boolean} - -Disables the event loop delay sample timer. Returns `true` if the timer was -stopped, `false` if it was already stopped. - -#### `histogram.enable()` +## Class: `Histogram` -* Returns: {boolean} - -Enables the event loop delay sample timer. Returns `true` if the timer was -started, `false` if it was already started. - -#### `histogram.exceeds` +### `histogram.exceeds` @@ -726,7 +718,7 @@ added: v11.10.0 The number of times the event loop delay exceeded the maximum 1 hour event loop delay threshold. -#### `histogram.max` +### `histogram.max` @@ -735,7 +727,7 @@ added: v11.10.0 The maximum recorded event loop delay. -#### `histogram.mean` +### `histogram.mean` @@ -744,7 +736,7 @@ added: v11.10.0 The mean of the recorded event loop delays. -#### `histogram.min` +### `histogram.min` @@ -753,7 +745,7 @@ added: v11.10.0 The minimum recorded event loop delay. -#### `histogram.percentile(percentile)` +### `histogram.percentile(percentile)` @@ -763,7 +755,7 @@ added: v11.10.0 Returns the value at the given percentile. -#### `histogram.percentiles` +### `histogram.percentiles` @@ -772,14 +764,14 @@ added: v11.10.0 Returns a `Map` object detailing the accumulated percentile distribution. -#### `histogram.reset()` +### `histogram.reset()` Resets the collected histogram data. -#### `histogram.stddev` +### `histogram.stddev` @@ -788,6 +780,56 @@ added: v11.10.0 The standard deviation of the recorded event loop delays. +## Class: `IntervalHistogram extends Histogram` + +A `Histogram` that is periodically updated on a given interval. + +### `histogram.disable()` + + +* Returns: {boolean} + +Disables the update interval timer. Returns `true` if the timer was +stopped, `false` if it was already stopped. + +### `histogram.enable()` + + +* Returns: {boolean} + +Enables the update interval timer. Returns `true` if the timer was +started, `false` if it was already started. + +### Cloning an `IntervalHistogram` + +{IntervalHistogram} instances can be cloned via {MessagePort}. On the receiving +end, the histogram is cloned as a plain {Histogram} object that does not +implement the `enable()` and `disable()` methods. + +## Class: `RecordableHistogram extends Histogram` + + +### `histogram.record(val)` + + +* `val` {number|bigint} The amount to record in the histogram. + +### `histogram.recordDelta()` + + +Calculates the amount of time (in nanoseconds) that has passed since the +previous call to `recordDelta()` and records that amount in the histogram. + ## Examples ### Measuring the duration of async operations diff --git a/doc/api/policy.md b/doc/api/policy.md index 6cca07f8ba59b2..01b3eba0a33084 100644 --- a/doc/api/policy.md +++ b/doc/api/policy.md @@ -57,7 +57,7 @@ by defining an "onerror" field in a policy manifest. The following values are available to change the behavior: * `"exit"`: will exit the process immediately. - No cleanup code will be allowed to run. + No cleanup code will be allowed to run. * `"log"`: will log the error at the site of the failure. * `"throw"`: will throw a JS error at the site of the failure. This is the default. @@ -80,9 +80,9 @@ compatible with the browser [integrity attribute](https://www.w3.org/TR/SRI/#the-integrity-attribute) associated with absolute URLs. -When using `require()` all resources involved in loading are checked for -integrity if a policy manifest has been specified. If a resource does not match -the integrity listed in the manifest, an error will be thrown. +When using `require()` or `import` all resources involved in loading are checked +for integrity if a policy manifest has been specified. If a resource does not +match the integrity listed in the manifest, an error will be thrown. An example policy file that would allow loading a file `checked.js`: @@ -107,7 +107,7 @@ and hash fragment. `./a.js?b` will not be used when attempting to load `./a.js` and vice versa. To generate integrity strings, a script such as -`printf "sha384-$(cat checked.js | openssl dgst -sha384 -binary | base64)"` +`node -e 'process.stdout.write("sha256-");process.stdin.pipe(crypto.createHash("sha256").setEncoding("base64")).pipe(process.stdout)' < FILE` can be used. Integrity can be specified as the boolean value `true` to accept any @@ -140,13 +140,37 @@ The dependencies are keyed by the requested specifier string and have values of either `true`, `null`, a string pointing to a module to be resolved, or a conditions object. -The specifier string does not perform any searching and must match exactly -what is provided to the `require()` or `import`. Therefore, multiple specifiers -may be needed in the policy if it uses multiple different strings to point -to the same module (such as excluding the extension). +The specifier string does not perform any searching and must match exactly what +is provided to the `require()` or `import` except for a canonicalization step. +Therefore, multiple specifiers may be needed in the policy if it uses multiple +different strings to point to the same module (such as excluding the extension). -If the value of the redirection is `true` the default searching algorithms are -used to find the module. +Specifier strings are canonicalized but not resolved prior to be used for +matching in order to have some compatibility with import maps, for example if a +resource `file:///C:/app/server.js` was given the following redirection from a +policy located at `file:///C:/app/policy.json`: + +```json +{ + "resources": { + "file:///C:/app/utils.js": { + "dependencies": { + "./utils.js": "./utils-v2.js" + } + } + } +} +``` + +Any specifier used to load `file:///C:/app/utils.js` would then be intercepted +and redirected to `file:///C:/app/utils-v2.js` instead regardless of using an +absolute or relative specifier. However, if a specifier that is not an absolute +or relative URL string is used, it would not be intercepted. So, if an import +such as `import('#utils')` was used, it would not be intercepted. + +If the value of the redirection is `true`, a "dependencies" field at the top of +the policy file will be used. If that field at the top of the policy file is +`true` the default node searching algorithms are used to find the module. If the value of the redirection is a string, it is resolved relative to the manifest and then immediately used without searching. @@ -207,7 +231,8 @@ is found by recursively reducing the resource URL by removing segments for hash fragment. This leads to the eventual reduction of the URL to its origin. If the URL is non-special the scope will be located by the URL's origin. If no scope is found for the origin or in the case of opaque origins, a protocol -string can be used as a scope. +string can be used as a scope. If no scope is found for the URL's protocol, a +final empty string `""` scope will be used. Note, `blob:` URLs adopt their origin from the path they contain, and so a scope of `"blob:https://nodejs.org"` will have no effect since no URL can have an @@ -216,6 +241,61 @@ origin of `blob:https://nodejs.org`; URLs starting with thus `https:` for its protocol scope. For opaque origin `blob:` URLs they will have `blob:` for their protocol scope since they do not adopt origins. +#### Example + +```json +{ + "scopes": { + "file:///C:/app/": {}, + "file:": {}, + "": {} + } +} +``` + +Given a file located at `file:///C:/app/bin/main.js`, the following scopes would +be checked in order: + +1. `"file:///C:/app/bin/"` + +This determines the policy for all file based resources within +`"file:///C:/app/bin/"`. This is not in the `"scopes"` field of the policy and +would be skipped. Adding this scope to the policy would cause it to be used +prior to the `"file:///C:/app/"` scope. + +2. `"file:///C:/app/"` + +This determines the policy for all file based resources within +`"file:///C:/app/"`. This is in the `"scopes"` field of the policy and it would +determine the policy for the resource at `file:///C:/app/bin/main.js`. If the +scope has `"cascade": true`, any unsatisfied queries about the resource would +delegate to the next relevant scope for `file:///C:/app/bin/main.js`, `"file:"`. + +3. `"file:///C:/"` + +This determines the policy for all file based resources within `"file:///C:/"`. +This is not in the `"scopes"` field of the policy and would be skipped. It would +not be used for `file:///C:/app/bin/main.js` unless `"file:///"` is set to +cascade or is not in the `"scopes"` of the policy. + +4. `"file:///"` + +This determines the policy for all file based resources on the `localhost`. This +is not in the `"scopes"` field of the policy and would be skipped. It would not +be used for `file:///C:/app/bin/main.js` unless `"file:///"` is set to cascade +or is not in the `"scopes"` of the policy. + +5. `"file:"` + +This determines the policy for all file based resources. It would not be used +for `file:///C:/app/bin/main.js` unless `"file:///"` is set to cascade or is not +in the `"scopes"` of the policy. + +6. `""` + +This determines the policy for all resources. It would not be used for +`file:///C:/app/bin/main.js` unless `"file:"` is set to cascade. + #### Integrity using scopes Setting an integrity to `true` on a scope will set the integrity for any @@ -284,5 +364,64 @@ The following example, would allow access to `fs` for all `data:` resources: } ``` -[relative-URL string]: https://url.spec.whatwg.org/#relative-url-with-fragment-string +#### Example: [import maps][] emulation + +Given an import map: + +```json +{ + "imports": { + "react": "./app/node_modules/react/index.js" + }, + "scopes": { + "./ssr/": { + "react": "./app/node_modules/server-side-react/index.js" + } + } +} +``` + +```json +{ + "dependencies": true, + "scopes": { + "": { + "cascade": true, + "dependencies": { + "react": "./app/node_modules/react/index.js" + } + }, + "./ssr/": { + "cascade": true, + "dependencies": { + "react": "./app/node_modules/server-side-react/index.js" + } + } + } +} +``` + +Import maps assume you can get any resource by default. This means +`"dependencies"` at the top level of the policy should be set to `true`. +Policies require this to be opt-in since it enables all resources of the +application cross linkage which doesn't make sense for many scenarios. They also +assume any given scope has access to any scope above its allowed dependencies; +all scopes emulating import maps must set `"cascade": true`. + +Import maps only have a single top level scope for their "imports". So for +emulating `"imports"` use the `""` scope. For emulating `"scopes"` use the +`"scopes"` in a similar manner to how `"scopes"` works in import maps. + +Caveats: Policies do not use string matching for various finding of scope. They +do URL traversals. This means things like `blob:` and `data:` URLs might not be +entirely interoperable between the two systems. For example import maps can +partially match a `data:` or `blob:` URL by partitioning the URL on a `/` +character, policies intentionally cannot. For `blob:` URLs import map scopes do +not adopt the origin of the `blob:` URL. + +Additionally, import maps only work on `import` so it may be desirable to add a +`"import"` condition to all dependency mappings. + +[import maps]: https://url.spec.whatwg.org/#relative-url-with-fragment-string +[relative-url string]: https://url.spec.whatwg.org/#relative-url-with-fragment-string [special schemes]: https://url.spec.whatwg.org/#special-scheme diff --git a/doc/api/process.md b/doc/api/process.md index 6eaf5b511323c9..601fc892532c07 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -455,6 +455,15 @@ of the custom deprecation. The `*-deprecation` command-line flags only affect warnings that use the name `'DeprecationWarning'`. +### Event: `'worker'` + + +* `worker` {Worker} The {Worker} that was created. + +The `'worker'` event is emitted after a new {Worker} thread has been created. + #### Emitting custom warnings See the [`process.emitWarning()`][process_emit_warning] method for issuing @@ -1573,26 +1582,19 @@ changes: * `external` {integer} * `arrayBuffers` {integer} -The `process.memoryUsage()` method returns an object describing the memory usage -of the Node.js process measured in bytes. - -For example, the code: +Returns an object describing the memory usage of the Node.js process measured in +bytes. ```js console.log(process.memoryUsage()); -``` - -Will generate: - - -```js -{ - rss: 4935680, - heapTotal: 1826816, - heapUsed: 650472, - external: 49879, - arrayBuffers: 9386 -} +// Prints: +// { +// rss: 4935680, +// heapTotal: 1826816, +// heapUsed: 650472, +// external: 49879, +// arrayBuffers: 9386 +// } ``` * `heapTotal` and `heapUsed` refer to V8's memory usage. @@ -1610,6 +1612,32 @@ Will generate: When using [`Worker`][] threads, `rss` will be a value that is valid for the entire process, while the other fields will only refer to the current thread. +The `process.memoryUsage()` method iterates over each page to gather +information about memory usage which might be slow depending on the +program memory allocations. + +## `process.memoryUsage.rss()` + + +* Returns: {integer} + +The `process.memoryUsage.rss()` method returns an integer representing the +Resident Set Size (RSS) in bytes. + +The Resident Set Size, is the amount of space occupied in the main +memory device (that is a subset of the total allocated memory) for the +process, including all C++ and JavaScript objects and code. + +This is the same value as the `rss` property provided by `process.memoryUsage()` +but `process.memoryUsage.rss()` is faster. + +```js +console.log(process.memoryUsage.rss()); +// 35655680 +``` + ## `process.nextTick(callback[, ...args])` + +> Stability: 1 - Experimental + +* `val` {boolean} + +This function enables or disables the [Source Map v3][Source Map] support for +stack traces. + +It provides same features as launching Node.js process with commandline options +`--enable-source-maps`. + +Only source maps in JavaScript files that are loaded after source maps has been +enabled will be parsed and loaded. + ## `process.setUncaughtExceptionCaptureCallback(fn)` + +The `'history'` event is emitted whenever the history array has changed. + +The listener function is called with an array containing the history array. +It will reflect all changes, added lines and removed lines due to +`historySize` and `removeHistoryDuplicates`. + +The primary purpose is to allow a listener to persist the history. +It is also possible for the listener to change the history object. This +could be useful to prevent certain lines to be added to the history, like +a password. + +```js +rl.on('history', (history) => { + console.log(`Received: ${history}`); +}); +``` + ### Event: `'pause'` * `query` {string} A statement or query to write to `output`, prepended to the prompt. +* `options` {Object} + * `signal` {AbortSignal} Optionally allows the `question()` to be canceled + using an `AbortController`. * `callback` {Function} A callback function that is invoked with the user's input in response to the `query`. @@ -254,6 +279,10 @@ paused. If the `readline.Interface` was created with `output` set to `null` or `undefined` the `query` is not written. +The `callback` function passed to `rl.question()` does not follow the typical +pattern of accepting an `Error` object or `null` as the first argument. +The `callback` is called with the provided answer as the only argument. + Example usage: ```js @@ -262,9 +291,41 @@ rl.question('What is your favorite food? ', (answer) => { }); ``` -The `callback` function passed to `rl.question()` does not follow the typical -pattern of accepting an `Error` object or `null` as the first argument. -The `callback` is called with the provided answer as the only argument. +Using an `AbortController` to cancel a question. + +```js +const ac = new AbortController(); +const signal = ac.signal; + +rl.question('What is your favorite food? ', { signal }, (answer) => { + console.log(`Oh, so your favorite food is ${answer}`); +}); + +signal.addEventListener('abort', () => { + console.log('The food question timed out'); +}, { once: true }); + +setTimeout(() => ac.abort(), 10000); +``` + +If this method is invoked as it's util.promisify()ed version, it returns a +Promise that fulfills with the answer. If the question is canceled using +an `AbortController` it will reject with an `AbortError`. + +```js +const util = require('util'); +const question = util.promisify(rl.question).bind(rl); + +async function questionExample() { + try { + const answer = await question('What is you favorite food? '); + console.log(`Oh, so your favorite food is ${answer}`); + } catch (err) { + console.error('Question rejected', err); + } +} +questionExample(); +``` ### `rl.resume()` -* {string|undefined} +* {string} The current input data being processed by node. @@ -479,6 +544,12 @@ the current position of the cursor down. + +* {boolean} + +Allows determining if the stream has been or is about to be read. +Returns true if `'data'`, `'end'`, `'error'` or `'close'` has been +emitted. + ##### `readable.readableEncoding` + +* `url` {URL} The [WHATWG URL][] object to convert to an options object. +* Returns: {Object} Options object + * `protocol` {string} Protocol to use. + * `hostname` {string} A domain name or IP address of the server to issue the + request to. + * `hash` {string} The fragment portion of the URL. + * `search` {string} The serialized query portion of the URL. + * `pathname` {string} The path portion of the URL. + * `path` {string} Request path. Should include query string if any. + E.G. `'/index.html?page=12'`. An exception is thrown when the request path + contains illegal characters. Currently, only spaces are rejected but that + may change in the future. + * `href` {string} The serialized URL. + * `port` {number} Port of remote server. + * `auth` {string} Basic authentication i.e. `'user:password'` to compute an + Authorization header. + +This utility function converts a URL object into an ordinary options object as +expected by the [`http.request()`][] and [`https.request()`][] APIs. + +```js +const { urlToHttpOptions } = require('url'); +const myURL = new URL('https://a:b@測試?abc#foo'); + +console.log(urlToHttpOptions(myUrl)); +/** +{ + protocol: 'https:', + hostname: 'xn--g6w251d', + hash: '#foo', + search: '?abc', + pathname: '/', + path: '/?abc', + href: 'https://a:b@xn--g6w251d/?abc#foo', + auth: 'a:b' +} +*/ +``` + ## Legacy URL API + +* `string` {string} + +Returns the `string` after replacing any surrogate code points +(or equivalently, any unpaired surrogate code units) with the +Unicode "replacement character" U+FFFD. + ## `util.types` + +The `v8.stopCoverage()` method allows the user to stop the coverage collection +started by [`NODE_V8_COVERAGE`][], so that V8 can release the execution count +records and optimize code. This can be used in conjunction with +[`v8.takeCoverage()`][] if the user wants to collect the coverage on demand. + +## `v8.takeCoverage()` + + + +The `v8.takeCoverage()` method allows the user to write the coverage started by +[`NODE_V8_COVERAGE`][] to disk on demand. This method can be invoked multiple +times during the lifetime of the process. Each time the execution counter will +be reset and a new coverage report will be written to the directory specified +by [`NODE_V8_COVERAGE`][]. + +When the process is about to exit, one last coverage will still be written to +disk unless [`v8.stopCoverage()`][] is invoked before the process exits. + ## `v8.writeHeapSnapshot([filename])` - -> Stability: 1 - Experimental - -Measure the memory known to V8 and used by all contexts known to the -current V8 isolate, or the main context. - -* `options` {Object} Optional. - * `mode` {string} Either `'summary'` or `'detailed'`. In summary mode, - only the memory measured for the main context will be returned. In - detailed mode, the measure measured for all contexts known to the - current V8 isolate will be returned. - **Default:** `'summary'` - * `execution` {string} Either `'default'` or `'eager'`. With default - execution, the promise will not resolve until after the next scheduled - garbage collection starts, which may take a while (or never if the program - exits before the next GC). With eager execution, the GC will be started - right away to measure the memory. - **Default:** `'default'` -* Returns: {Promise} If the memory is successfully measured the promise will - resolve with an object containing information about the memory usage. - -The format of the object that the returned Promise may resolve with is -specific to the V8 engine and may change from one version of V8 to the next. - -The returned result is different from the statistics returned by -`v8.getHeapSpaceStatistics()` in that `vm.measureMemory()` measure the -memory reachable by each V8 specific contexts in the current instance of -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'); -// Measure the memory used by the main context. -vm.measureMemory({ mode: 'summary' }) - // This is the same as vm.measureMemory() - .then((result) => { - // The current format is: - // { - // total: { - // jsMemoryEstimate: 2418479, jsMemoryRange: [ 2418479, 2745799 ] - // } - // } - console.log(result); - }); - -const context = vm.createContext({ a: 1 }); -vm.measureMemory({ mode: 'detailed', execution: 'eager' }) - .then((result) => { - // Reference the context here so that it won't be GC'ed - // until the measurement is complete. - console.log(context.a); - // { - // total: { - // jsMemoryEstimate: 2574732, - // jsMemoryRange: [ 2574732, 2904372 ] - // }, - // current: { - // jsMemoryEstimate: 2438996, - // jsMemoryRange: [ 2438996, 2768636 ] - // }, - // other: [ - // { - // jsMemoryEstimate: 135736, - // jsMemoryRange: [ 135736, 465376 ] - // } - // ] - // } - console.log(result); - }); -``` - ## Class: `vm.Module` + +> Stability: 1 - Experimental + +Measure the memory known to V8 and used by all contexts known to the +current V8 isolate, or the main context. + +* `options` {Object} Optional. + * `mode` {string} Either `'summary'` or `'detailed'`. In summary mode, + only the memory measured for the main context will be returned. In + detailed mode, the measure measured for all contexts known to the + current V8 isolate will be returned. + **Default:** `'summary'` + * `execution` {string} Either `'default'` or `'eager'`. With default + execution, the promise will not resolve until after the next scheduled + garbage collection starts, which may take a while (or never if the program + exits before the next GC). With eager execution, the GC will be started + right away to measure the memory. + **Default:** `'default'` +* Returns: {Promise} If the memory is successfully measured the promise will + resolve with an object containing information about the memory usage. + +The format of the object that the returned Promise may resolve with is +specific to the V8 engine and may change from one version of V8 to the next. + +The returned result is different from the statistics returned by +`v8.getHeapSpaceStatistics()` in that `vm.measureMemory()` measure the +memory reachable by each V8 specific contexts in the current instance of +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'); +// Measure the memory used by the main context. +vm.measureMemory({ mode: 'summary' }) + // This is the same as vm.measureMemory() + .then((result) => { + // The current format is: + // { + // total: { + // jsMemoryEstimate: 2418479, jsMemoryRange: [ 2418479, 2745799 ] + // } + // } + console.log(result); + }); + +const context = vm.createContext({ a: 1 }); +vm.measureMemory({ mode: 'detailed', execution: 'eager' }) + .then((result) => { + // Reference the context here so that it won't be GC'ed + // until the measurement is complete. + console.log(context.a); + // { + // total: { + // jsMemoryEstimate: 2574732, + // jsMemoryRange: [ 2574732, 2904372 ] + // }, + // current: { + // jsMemoryEstimate: 2438996, + // jsMemoryRange: [ 2438996, 2768636 ] + // }, + // other: [ + // { + // jsMemoryEstimate: 135736, + // jsMemoryRange: [ 135736, 465376 ] + // } + // ] + // } + console.log(result); + }); +``` + ## `vm.runInContext(code, contextifiedObject[, options])` + +> Stability: 1 - Experimental + +* `key` {any} Any arbitrary, cloneable JavaScript value that can be used as a + {Map} key. +* Returns: {any} + +Within a worker thread, `worker.getEnvironmentData()` returns a clone +of data passed to the spawning thread's `worker.setEnvironmentData()`. +Every new `Worker` receives its own copy of the environment data +automatically. + +```js +const { + Worker, + isMainThread, + setEnvironmentData, + getEnvironmentData, +} = require('worker_threads'); + +if (isMainThread) { + setEnvironmentData('Hello', 'World!'); + const worker = new Worker(__filename); +} else { + console.log(getEnvironmentData('Hello')); // Prints 'World!'. +} +``` + ## `worker.isMainThread` + +> Stability: 1 - Experimental + +* `key` {any} Any arbitrary, cloneable JavaScript value that can be used as a + {Map} key. +* `value` {any} Any arbitrary, cloneable JavaScript value that will be cloned + and passed automatically to all new `Worker` instances. If `value` is passed + as `undefined`, any previously set value for the `key` will be deleted. + +The `worker.setEnvironmentData()` API sets the content of +`worker.getEnvironmentData()` in the current thread and all new `Worker` +instances spawned from the current context. + ## `worker.threadId` -## Exercise: Make a PR adding yourself to the README +## Exercise: Make a pull request adding yourself to the README * Example: @@ -204,13 +204,15 @@ needs to be pointed out separately during the onboarding. so that when the commit lands, the nomination issue url will be automatically closed. * Label your pull request with the `doc`, `notable-change`, and `fast-track` - labels. -* Run CI on the PR. Use the `node-test-pull-request` CI task. + labels. The `fast-track` label should cause the Node.js GitHub bot to post a + comment in the pull request asking collaborators to approve the pull request + by leaving a 👍 reaction on the comment. +* Run CI on the pull request. Use the `node-test-pull-request` CI task. * After two Collaborator approvals for the change and two Collaborator approvals for fast-tracking, land the PR. -* Leave a comment in the PR: `Please 👍 this comment to approve fast-tracking`. * If there are not enough approvals within a reasonable time, consider the - single approval of the onboarding TSC member sufficient, and land the PR. + single approval of the onboarding TSC member sufficient, and land the pull + request. * Be sure to add the `PR-URL: ` and appropriate `Reviewed-By:` metadata. * [`node-core-utils`][] automates the generation of metadata and the landing @@ -224,7 +226,7 @@ needs to be pointed out separately during the onboarding. * Don't worry about making mistakes: everybody makes them, there's a lot to internalize and that takes time (and we recognize that!) * Almost any mistake you could make can be fixed or reverted. -* The existing Collaborators trust you and are grateful for your help! +* The existing collaborators trust you and are grateful for your help! * Other repositories: * [https://github.com/nodejs/TSC](https://github.com/nodejs/TSC) * [https://github.com/nodejs/build](https://github.com/nodejs/build) @@ -239,7 +241,8 @@ needs to be pointed out separately during the onboarding. the [summit](https://github.com/nodejs/summit) repository for details. [Code of Conduct]: https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md -[Landing Pull Requests]: doc/guides/collaborator-guide.md#landing-pull-requests +[Labels]: doc/guides/collaborator-guide.md#labels +[Landing pull requests]: doc/guides/collaborator-guide.md#landing-pull-requests [Publicizing or hiding organization membership]: https://help.github.com/articles/publicizing-or-hiding-organization-membership/ [`author-ready`]: doc/guides/collaborator-guide.md#author-ready-pull-requests [`core-validate-commit`]: https://github.com/nodejs/core-validate-commit diff --git a/src/README.md b/src/README.md index dd9a9df449f147..91b9f3817a36b0 100644 --- a/src/README.md +++ b/src/README.md @@ -405,11 +405,7 @@ void Initialize(Local target, env->SetProtoMethodNoSideEffect(channel_wrap, "getServers", GetServers); - Local channel_wrap_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "ChannelWrap"); - channel_wrap->SetClassName(channel_wrap_string); - target->Set(env->context(), channel_wrap_string, - channel_wrap->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "ChannelWrap", channel_wrap); } // Run the `Initialize` function when loading this module through @@ -1040,7 +1036,7 @@ static void GetUserInfo(const FunctionCallbackInfo& args) { [exception handling]: #exception-handling [internal field]: #internal-fields [introduction for V8 embedders]: https://v8.dev/docs/embed +[libuv]: https://libuv.org/ [libuv handles]: #libuv-handles-and-requests [libuv requests]: #libuv-handles-and-requests -[libuv]: https://libuv.org/ [reference documentation for the libuv API]: http://docs.libuv.org/en/v1.x/ diff --git a/src/api/async_resource.cc b/src/api/async_resource.cc index 0a2437fe6eda5c..3c4fbdadbc462c 100644 --- a/src/api/async_resource.cc +++ b/src/api/async_resource.cc @@ -62,10 +62,8 @@ async_id AsyncResource::get_trigger_async_id() const { return async_context_.trigger_async_id; } -// TODO(addaleax): We shouldn’t need to use env_->isolate() if we’re just going -// to end up using the Isolate* to figure out the Environment* again. AsyncResource::CallbackScope::CallbackScope(AsyncResource* res) - : node::CallbackScope(res->env_->isolate(), + : node::CallbackScope(res->env_, res->resource_.Get(res->env_->isolate()), res->async_context_) {} diff --git a/src/api/callback.cc b/src/api/callback.cc index 2a1c6301414176..798a28662f3077 100644 --- a/src/api/callback.cc +++ b/src/api/callback.cc @@ -18,12 +18,17 @@ using v8::String; using v8::Value; CallbackScope::CallbackScope(Isolate* isolate, + Local object, + async_context async_context) + : CallbackScope(Environment::GetCurrent(isolate), object, async_context) {} + +CallbackScope::CallbackScope(Environment* env, Local object, async_context asyncContext) - : private_(new InternalCallbackScope(Environment::GetCurrent(isolate), + : private_(new InternalCallbackScope(env, object, asyncContext)), - try_catch_(isolate) { + try_catch_(env->isolate()) { try_catch_.SetVerbose(true); } diff --git a/src/api/encoding.cc b/src/api/encoding.cc index 6df4a7faf30393..f64aeee15c3b34 100644 --- a/src/api/encoding.cc +++ b/src/api/encoding.cc @@ -68,6 +68,8 @@ enum encoding ParseEncoding(const char* encoding, } else if (encoding[1] == 'a') { if (strncmp(encoding + 2, "se64", 5) == 0) return BASE64; + if (strncmp(encoding + 2, "se64url", 8) == 0) + return BASE64URL; } if (StringEqualNoCase(encoding, "binary")) return LATIN1; // BINARY is a deprecated alias of LATIN1. @@ -75,6 +77,8 @@ enum encoding ParseEncoding(const char* encoding, return BUFFER; if (StringEqualNoCase(encoding, "base64")) return BASE64; + if (StringEqualNoCase(encoding, "base64url")) + return BASE64URL; break; case 'a': diff --git a/src/api/environment.cc b/src/api/environment.cc index 5426d5392a29fc..52c67b91c3b034 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -228,9 +228,11 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) { s.fatal_error_callback : OnFatalError; isolate->SetFatalErrorHandler(fatal_error_cb); - auto* prepare_stack_trace_cb = s.prepare_stack_trace_callback ? - s.prepare_stack_trace_callback : PrepareStackTraceCallback; - isolate->SetPrepareStackTraceCallback(prepare_stack_trace_cb); + if ((s.flags & SHOULD_NOT_SET_PREPARE_STACK_TRACE_CALLBACK) == 0) { + auto* prepare_stack_trace_cb = s.prepare_stack_trace_callback ? + s.prepare_stack_trace_callback : PrepareStackTraceCallback; + isolate->SetPrepareStackTraceCallback(prepare_stack_trace_cb); + } } void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s) { @@ -464,6 +466,14 @@ MultiIsolatePlatform* GetMainThreadMultiIsolatePlatform() { return per_process::v8_platform.Platform(); } +IsolateData* GetEnvironmentIsolateData(Environment* env) { + return env->isolate_data(); +} + +ArrayBufferAllocator* GetArrayBufferAllocator(IsolateData* isolate_data) { + return isolate_data->node_allocator(); +} + MultiIsolatePlatform* GetMultiIsolatePlatform(Environment* env) { return GetMultiIsolatePlatform(env->isolate_data()); } diff --git a/src/api/hooks.cc b/src/api/hooks.cc index dcc0964ebbd9a4..79fa896a10e91d 100644 --- a/src/api/hooks.cc +++ b/src/api/hooks.cc @@ -9,8 +9,11 @@ using v8::Context; using v8::HandleScope; using v8::Integer; using v8::Isolate; +using v8::Just; using v8::Local; +using v8::Maybe; using v8::NewStringType; +using v8::Nothing; using v8::Object; using v8::String; using v8::Value; @@ -30,6 +33,10 @@ void AtExit(Environment* env, void (*cb)(void* arg), void* arg) { } void EmitBeforeExit(Environment* env) { + USE(EmitProcessBeforeExit(env)); +} + +Maybe EmitProcessBeforeExit(Environment* env) { TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), "BeforeExit", env); if (!env->destroy_async_id_list()->empty()) @@ -40,39 +47,49 @@ void EmitBeforeExit(Environment* env) { Local exit_code_v; if (!env->process_object()->Get(env->context(), env->exit_code_string()) - .ToLocal(&exit_code_v)) return; + .ToLocal(&exit_code_v)) return Nothing(); Local exit_code; - if (!exit_code_v->ToInteger(env->context()).ToLocal(&exit_code)) return; + if (!exit_code_v->ToInteger(env->context()).ToLocal(&exit_code)) { + return Nothing(); + } - // TODO(addaleax): Provide variants of EmitExit() and EmitBeforeExit() that - // actually forward empty MaybeLocal<>s (and check env->can_call_into_js()). - USE(ProcessEmit(env, "beforeExit", exit_code)); + return ProcessEmit(env, "beforeExit", exit_code).IsEmpty() ? + Nothing() : Just(true); } int EmitExit(Environment* env) { + return EmitProcessExit(env).FromMaybe(1); +} + +Maybe EmitProcessExit(Environment* env) { // process.emit('exit') HandleScope handle_scope(env->isolate()); Context::Scope context_scope(env->context()); Local process_object = env->process_object(); - process_object + + // TODO(addaleax): It might be nice to share process._exiting and + // process.exitCode via getter/setter pairs that pass data directly to the + // native side, so that we don't manually have to read and write JS properties + // here. These getters could use e.g. a typed array for performance. + if (process_object ->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_exiting"), - True(env->isolate())) - .Check(); + True(env->isolate())).IsNothing()) return Nothing(); Local exit_code = env->exit_code_string(); - int code = process_object->Get(env->context(), exit_code) - .ToLocalChecked() - ->Int32Value(env->context()) - .ToChecked(); - ProcessEmit(env, "exit", Integer::New(env->isolate(), code)); - - // Reload exit code, it may be changed by `emit('exit')` - return process_object->Get(env->context(), exit_code) - .ToLocalChecked() - ->Int32Value(env->context()) - .ToChecked(); + Local code_v; + int code; + if (!process_object->Get(env->context(), exit_code).ToLocal(&code_v) || + !code_v->Int32Value(env->context()).To(&code) || + ProcessEmit(env, "exit", Integer::New(env->isolate(), code)).IsEmpty() || + // Reload exit code, it may be changed by `emit('exit')` + !process_object->Get(env->context(), exit_code).ToLocal(&code_v) || + !code_v->Int32Value(env->context()).To(&code)) { + return Nothing(); + } + + return Just(code); } typedef void (*CleanupHook)(void* arg); diff --git a/src/async_wrap.cc b/src/async_wrap.cc index 2dfcf96e5620ec..7590ab0197dfd6 100644 --- a/src/async_wrap.cc +++ b/src/async_wrap.cc @@ -38,19 +38,12 @@ using v8::Global; using v8::HandleScope; using v8::Integer; using v8::Isolate; -using v8::Just; using v8::Local; -using v8::Maybe; using v8::MaybeLocal; -using v8::Name; using v8::Nothing; using v8::Number; using v8::Object; -using v8::ObjectTemplate; -using v8::Promise; -using v8::PromiseHookType; using v8::PropertyAttribute; -using v8::PropertyCallbackInfo; using v8::ReadOnly; using v8::String; using v8::Uint32; @@ -200,255 +193,6 @@ void AsyncWrap::EmitAfter(Environment* env, double async_id) { // TODO(addaleax): Remove once we're on C++17. constexpr double AsyncWrap::kInvalidAsyncId; -static Maybe GetAssignedPromiseAsyncId(Environment* env, - Local promise, - Local id_symbol) { - Local maybe_async_id; - if (!promise->Get(env->context(), id_symbol).ToLocal(&maybe_async_id)) { - return Nothing(); - } - return maybe_async_id->IsNumber() - ? maybe_async_id->NumberValue(env->context()) - : Just(AsyncWrap::kInvalidAsyncId); -} - -class PromiseWrap : public AsyncWrap { - public: - PromiseWrap(Environment* env, Local object, bool silent) - : AsyncWrap(env, object, PROVIDER_PROMISE, kInvalidAsyncId, silent) { - MakeWeak(); - } - - PromiseWrap(Environment* env, Local object, double asyncId, - double triggerAsyncId) - : AsyncWrap(env, object, PROVIDER_PROMISE, asyncId, triggerAsyncId) { - MakeWeak(); - } - - SET_NO_MEMORY_INFO() - SET_MEMORY_INFO_NAME(PromiseWrap) - SET_SELF_SIZE(PromiseWrap) - - static PromiseWrap* New(Environment* env, - Local promise, - bool silent); - static void GetAsyncId(Local property, - const PropertyCallbackInfo& args); - static void GetTriggerAsyncId(Local property, - const PropertyCallbackInfo& args); - - static void Initialize(Environment* env); -}; - -PromiseWrap* PromiseWrap::New(Environment* env, - Local promise, - bool silent) { - Local context = env->context(); - - Local obj; - if (!env->promise_wrap_template()->NewInstance(context).ToLocal(&obj)) - return nullptr; - - CHECK_NULL(promise->GetAlignedPointerFromInternalField(0)); - promise->SetInternalField(0, obj); - - // Skip for init events - if (silent) { - double async_id; - double trigger_async_id; - if (!GetAssignedPromiseAsyncId(env, promise, env->async_id_symbol()) - .To(&async_id)) return nullptr; - if (!GetAssignedPromiseAsyncId(env, promise, env->trigger_async_id_symbol()) - .To(&trigger_async_id)) return nullptr; - - if (async_id != AsyncWrap::kInvalidAsyncId && - trigger_async_id != AsyncWrap::kInvalidAsyncId) { - return new PromiseWrap( - env, obj, async_id, trigger_async_id); - } - } - - return new PromiseWrap(env, obj, silent); -} - -void PromiseWrap::GetAsyncId(Local property, - const PropertyCallbackInfo& info) { - Isolate* isolate = info.GetIsolate(); - HandleScope scope(isolate); - - PromiseWrap* wrap = Unwrap(info.Holder()); - double value = wrap->get_async_id(); - - info.GetReturnValue().Set(Number::New(isolate, value)); -} - -void PromiseWrap::GetTriggerAsyncId(Local property, - const PropertyCallbackInfo& info) { - Isolate* isolate = info.GetIsolate(); - HandleScope scope(isolate); - - PromiseWrap* wrap = Unwrap(info.Holder()); - double value = wrap->get_trigger_async_id(); - - info.GetReturnValue().Set(Number::New(isolate, value)); -} - -void PromiseWrap::Initialize(Environment* env) { - Isolate* isolate = env->isolate(); - HandleScope scope(isolate); - - Local ctor = FunctionTemplate::New(isolate); - ctor->SetClassName(FIXED_ONE_BYTE_STRING(isolate, "PromiseWrap")); - - Local promise_wrap_template = ctor->InstanceTemplate(); - env->set_promise_wrap_template(promise_wrap_template); - - promise_wrap_template->SetInternalFieldCount( - PromiseWrap::kInternalFieldCount); - - promise_wrap_template->SetAccessor( - env->async_id_symbol(), - PromiseWrap::GetAsyncId); - - promise_wrap_template->SetAccessor( - env->trigger_async_id_symbol(), - PromiseWrap::GetTriggerAsyncId); -} - -static PromiseWrap* extractPromiseWrap(Local promise) { - // This check is imperfect. If the internal field is set, it should - // be an object. If it's not, we just ignore it. Ideally v8 would - // have had GetInternalField returning a MaybeLocal but this works - // for now. - Local obj = promise->GetInternalField(0); - return obj->IsObject() ? Unwrap(obj.As()) : nullptr; -} - -static uint16_t ToAsyncHooksType(PromiseHookType type) { - switch (type) { - case PromiseHookType::kInit: return AsyncHooks::kInit; - case PromiseHookType::kBefore: return AsyncHooks::kBefore; - case PromiseHookType::kAfter: return AsyncHooks::kAfter; - case PromiseHookType::kResolve: return AsyncHooks::kPromiseResolve; - } - UNREACHABLE(); -} - -// Simplified JavaScript hook fast-path for when there is no destroy hook -static void FastPromiseHook(PromiseHookType type, Local promise, - Local parent) { - Local context = promise->CreationContext(); - Environment* env = Environment::GetCurrent(context); - if (env == nullptr) return; - - if (type == PromiseHookType::kBefore && - env->async_hooks()->fields()[AsyncHooks::kBefore] == 0) { - double async_id; - double trigger_async_id; - if (!GetAssignedPromiseAsyncId(env, promise, env->async_id_symbol()) - .To(&async_id)) return; - if (!GetAssignedPromiseAsyncId(env, promise, env->trigger_async_id_symbol()) - .To(&trigger_async_id)) return; - - if (async_id != AsyncWrap::kInvalidAsyncId && - trigger_async_id != AsyncWrap::kInvalidAsyncId) { - env->async_hooks()->push_async_context( - async_id, trigger_async_id, promise); - return; - } - } - - if (type == PromiseHookType::kAfter && - env->async_hooks()->fields()[AsyncHooks::kAfter] == 0) { - double async_id; - if (!GetAssignedPromiseAsyncId(env, promise, env->async_id_symbol()) - .To(&async_id)) return; - - if (async_id != AsyncWrap::kInvalidAsyncId) { - if (env->execution_async_id() == async_id) { - // This condition might not be true if async_hooks was enabled during - // the promise callback execution. - env->async_hooks()->pop_async_context(async_id); - } - return; - } - } - - if (type == PromiseHookType::kResolve && - env->async_hooks()->fields()[AsyncHooks::kPromiseResolve] == 0) { - return; - } - - // Getting up to this point means either init type or - // that there are active hooks of another type. - // In both cases fast-path JS hook should be called. - - Local argv[] = { - Integer::New(env->isolate(), ToAsyncHooksType(type)), - promise, - parent - }; - - TryCatchScope try_catch(env, TryCatchScope::CatchMode::kFatal); - Local promise_hook = env->promise_hook_handler(); - USE(promise_hook->Call(context, Undefined(env->isolate()), 3, argv)); -} - -static void FullPromiseHook(PromiseHookType type, Local promise, - Local parent) { - Local context = promise->CreationContext(); - - Environment* env = Environment::GetCurrent(context); - if (env == nullptr) return; - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "EnvPromiseHook", env); - - PromiseWrap* wrap = extractPromiseWrap(promise); - if (type == PromiseHookType::kInit || wrap == nullptr) { - bool silent = type != PromiseHookType::kInit; - - // set parent promise's async Id as this promise's triggerAsyncId - if (parent->IsPromise()) { - // parent promise exists, current promise - // is a chained promise, so we set parent promise's id as - // current promise's triggerAsyncId - Local parent_promise = parent.As(); - PromiseWrap* parent_wrap = extractPromiseWrap(parent_promise); - if (parent_wrap == nullptr) { - parent_wrap = PromiseWrap::New(env, parent_promise, true); - if (parent_wrap == nullptr) return; - } - - AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope(parent_wrap); - wrap = PromiseWrap::New(env, promise, silent); - } else { - wrap = PromiseWrap::New(env, promise, silent); - } - } - - if (wrap == nullptr) return; - - if (type == PromiseHookType::kBefore) { - env->async_hooks()->push_async_context(wrap->get_async_id(), - wrap->get_trigger_async_id(), wrap->object()); - wrap->EmitTraceEventBefore(); - AsyncWrap::EmitBefore(wrap->env(), wrap->get_async_id()); - } else if (type == PromiseHookType::kAfter) { - wrap->EmitTraceEventAfter(wrap->provider_type(), wrap->get_async_id()); - AsyncWrap::EmitAfter(wrap->env(), wrap->get_async_id()); - if (env->execution_async_id() == wrap->get_async_id()) { - // This condition might not be true if async_hooks was enabled during - // the promise callback execution. - // Popping it off the stack can be skipped in that case, because it is - // known that it would correspond to exactly one call with - // PromiseHookType::kBefore that was not witnessed by the PromiseHook. - env->async_hooks()->pop_async_context(wrap->get_async_id()); - } - } else if (type == PromiseHookType::kResolve) { - AsyncWrap::EmitPromiseResolve(wrap->env(), wrap->get_async_id()); - } -} - static void SetupHooks(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -480,29 +224,16 @@ static void SetupHooks(const FunctionCallbackInfo& args) { #undef SET_HOOK_FN } -static void EnablePromiseHook(const FunctionCallbackInfo& args) { +static void SetPromiseHooks(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - if (args[0]->IsFunction()) { - env->set_promise_hook_handler(args[0].As()); - args.GetIsolate()->SetPromiseHook(FastPromiseHook); - } else { - args.GetIsolate()->SetPromiseHook(FullPromiseHook); - } + env->async_hooks()->SetJSPromiseHooks( + args[0]->IsFunction() ? args[0].As() : Local(), + args[1]->IsFunction() ? args[1].As() : Local(), + args[2]->IsFunction() ? args[2].As() : Local(), + args[3]->IsFunction() ? args[3].As() : Local()); } - -static void DisablePromiseHook(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - env->set_promise_hook_handler(Local()); - - // The per-Isolate API provides no way of knowing whether there are multiple - // users of the PromiseHook. That hopefully goes away when V8 introduces - // a per-context API. - args.GetIsolate()->SetPromiseHook(nullptr); -} - - class DestroyParam { public: double asyncId; @@ -669,8 +400,7 @@ void AsyncWrap::Initialize(Local target, env->SetMethod(target, "executionAsyncResource", ExecutionAsyncResource); env->SetMethod(target, "clearAsyncIdStack", ClearAsyncIdStack); env->SetMethod(target, "queueDestroyAsyncId", QueueDestroyAsyncId); - env->SetMethod(target, "enablePromiseHook", EnablePromiseHook); - env->SetMethod(target, "disablePromiseHook", DisablePromiseHook); + env->SetMethod(target, "setPromiseHooks", SetPromiseHooks); env->SetMethod(target, "registerDestroyHook", RegisterDestroyHook); PropertyAttribute ReadOnlyDontDelete = @@ -754,12 +484,8 @@ void AsyncWrap::Initialize(Local target, FIXED_ONE_BYTE_STRING(env->isolate(), "AsyncWrap"), AsyncWrapObject::GetConstructorTemplate(env) ->GetFunction(env->context()).ToLocalChecked()).Check(); - - // TODO(qard): maybe this should be GetConstructorTemplate instead? - PromiseWrap::Initialize(env); } - AsyncWrap::AsyncWrap(Environment* env, Local object, ProviderType provider, diff --git a/src/async_wrap.h b/src/async_wrap.h index 81d0db01c950ec..71012dd09c2a1b 100644 --- a/src/async_wrap.h +++ b/src/async_wrap.h @@ -38,6 +38,7 @@ namespace node { V(ELDHISTOGRAM) \ V(FILEHANDLE) \ V(FILEHANDLECLOSEREQ) \ + V(FIXEDSIZEBLOBCOPY) \ V(FSEVENTWRAP) \ V(FSREQCALLBACK) \ V(FSREQPROMISE) \ diff --git a/src/base64-inl.h b/src/base64-inl.h index 9efb9d076ea8e5..1b6cdd93f002a4 100644 --- a/src/base64-inl.h +++ b/src/base64-inl.h @@ -123,12 +123,13 @@ size_t base64_decode(char* const dst, const size_t dstlen, inline size_t base64_encode(const char* src, size_t slen, char* dst, - size_t dlen) { + size_t dlen, + Base64Mode mode) { // We know how much we'll write, just make sure that there's space. - CHECK(dlen >= base64_encoded_size(slen) && + CHECK(dlen >= base64_encoded_size(slen, mode) && "not enough space provided for base64 encode"); - dlen = base64_encoded_size(slen); + dlen = base64_encoded_size(slen, mode); unsigned a; unsigned b; @@ -137,9 +138,7 @@ inline size_t base64_encode(const char* src, unsigned k; unsigned n; - static const char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789+/"; + const char* table = base64_select_table(mode); i = 0; k = 0; @@ -164,8 +163,10 @@ inline size_t base64_encode(const char* src, a = src[i + 0] & 0xff; dst[k + 0] = table[a >> 2]; dst[k + 1] = table[(a & 3) << 4]; - dst[k + 2] = '='; - dst[k + 3] = '='; + if (mode == Base64Mode::NORMAL) { + dst[k + 2] = '='; + dst[k + 3] = '='; + } break; case 2: a = src[i + 0] & 0xff; @@ -173,7 +174,8 @@ inline size_t base64_encode(const char* src, dst[k + 0] = table[a >> 2]; dst[k + 1] = table[((a & 3) << 4) | (b >> 4)]; dst[k + 2] = table[(b & 0x0f) << 2]; - dst[k + 3] = '='; + if (mode == Base64Mode::NORMAL) + dst[k + 3] = '='; break; } diff --git a/src/base64.h b/src/base64.h index e58baa5f6e4692..cf6e82539a5f91 100644 --- a/src/base64.h +++ b/src/base64.h @@ -5,13 +5,40 @@ #include "util.h" +#include #include #include namespace node { //// Base 64 //// -static inline constexpr size_t base64_encoded_size(size_t size) { - return ((size + 2) / 3 * 4); + +enum class Base64Mode { + NORMAL, + URL +}; + +static constexpr char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +static constexpr char base64_table_url[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789-_"; + +static inline const char* base64_select_table(Base64Mode mode) { + switch (mode) { + case Base64Mode::NORMAL: return base64_table; + case Base64Mode::URL: return base64_table_url; + default: UNREACHABLE(); + } +} + +static inline constexpr size_t base64_encoded_size( + size_t size, + Base64Mode mode = Base64Mode::NORMAL) { + return mode == Base64Mode::NORMAL + ? ((size + 2) / 3 * 4) + : std::ceil(static_cast(size * 4) / 3); } // Doesn't check for padding at the end. Can be 1-2 bytes over. @@ -32,7 +59,8 @@ size_t base64_decode(char* const dst, const size_t dstlen, inline size_t base64_encode(const char* src, size_t slen, char* dst, - size_t dlen); + size_t dlen, + Base64Mode mode = Base64Mode::NORMAL); } // namespace node diff --git a/src/base_object-inl.h b/src/base_object-inl.h index 0b620ab864f67b..43bcdc6404fe79 100644 --- a/src/base_object-inl.h +++ b/src/base_object-inl.h @@ -207,7 +207,7 @@ void BaseObject::decrease_refcount() { unsigned int new_refcount = --metadata->strong_ptr_count; if (new_refcount == 0) { if (metadata->is_detached) { - delete this; + OnGCCollect(); } else if (metadata->wants_weak_jsobj && !persistent_handle_.IsEmpty()) { MakeWeak(); } diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index 83308dbfafb2d1..7f5769569d5dad 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -63,7 +63,10 @@ using v8::HandleScope; using v8::Int32; using v8::Integer; using v8::Isolate; +using v8::Just; using v8::Local; +using v8::Maybe; +using v8::Nothing; using v8::Null; using v8::Object; using v8::String; @@ -631,9 +634,14 @@ int ParseSoaReply( } } // anonymous namespace -ChannelWrap::ChannelWrap(Environment* env, Local object, int timeout) +ChannelWrap::ChannelWrap( + Environment* env, + Local object, + int timeout, + int tries) : AsyncWrap(env, object, PROVIDER_DNSCHANNEL), - timeout_(timeout) { + timeout_(timeout), + tries_(tries) { MakeWeak(); Setup(); @@ -647,11 +655,13 @@ void ChannelWrap::MemoryInfo(MemoryTracker* tracker) const { void ChannelWrap::New(const FunctionCallbackInfo& args) { CHECK(args.IsConstructCall()); - CHECK_EQ(args.Length(), 1); + CHECK_EQ(args.Length(), 2); CHECK(args[0]->IsInt32()); + CHECK(args[1]->IsInt32()); const int timeout = args[0].As()->Value(); + const int tries = args[1].As()->Value(); Environment* env = Environment::GetCurrent(args); - new ChannelWrap(env, args.This(), timeout); + new ChannelWrap(env, args.This(), timeout, tries); } GetAddrInfoReqWrap::GetAddrInfoReqWrap( @@ -704,6 +714,7 @@ void ChannelWrap::Setup() { options.sock_state_cb = ares_sockstate_cb; options.sock_state_cb_data = this; options.timeout = timeout_; + options.tries = tries_; int r; if (!library_inited_) { @@ -717,7 +728,8 @@ void ChannelWrap::Setup() { /* We do the call to ares_init_option for caller. */ const int optmask = - ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS | ARES_OPT_SOCK_STATE_CB; + ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS | + ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES; r = ares_init_options(&channel_, &options, optmask); if (r != ARES_SUCCESS) { @@ -1434,7 +1446,7 @@ void AfterGetAddrInfo(uv_getaddrinfo_t* req, int status, struct addrinfo* res) { if (status == 0) { Local results = Array::New(env->isolate()); - auto add = [&] (bool want_ipv4, bool want_ipv6) { + auto add = [&] (bool want_ipv4, bool want_ipv6) -> Maybe { for (auto p = res; p != nullptr; p = p->ai_next) { CHECK_EQ(p->ai_socktype, SOCK_STREAM); @@ -1454,14 +1466,19 @@ void AfterGetAddrInfo(uv_getaddrinfo_t* req, int status, struct addrinfo* res) { continue; Local s = OneByteString(env->isolate(), ip); - results->Set(env->context(), n, s).Check(); + if (results->Set(env->context(), n, s).IsNothing()) + return Nothing(); n++; } + return Just(true); }; - add(true, verbatim); - if (verbatim == false) - add(false, true); + if (add(true, verbatim).IsNothing()) + return; + if (verbatim == false) { + if (add(false, true).IsNothing()) + return; + } // No responses were found to return if (n == 0) { @@ -1898,32 +1915,17 @@ void Initialize(Local target, Local aiw = BaseObject::MakeLazilyInitializedJSTemplate(env); aiw->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local addrInfoWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "GetAddrInfoReqWrap"); - aiw->SetClassName(addrInfoWrapString); - target->Set(env->context(), - addrInfoWrapString, - aiw->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "GetAddrInfoReqWrap", aiw); Local niw = BaseObject::MakeLazilyInitializedJSTemplate(env); niw->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local nameInfoWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "GetNameInfoReqWrap"); - niw->SetClassName(nameInfoWrapString); - target->Set(env->context(), - nameInfoWrapString, - niw->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "GetNameInfoReqWrap", niw); Local qrw = BaseObject::MakeLazilyInitializedJSTemplate(env); qrw->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local queryWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "QueryReqWrap"); - qrw->SetClassName(queryWrapString); - target->Set(env->context(), - queryWrapString, - qrw->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "QueryReqWrap", qrw); Local channel_wrap = env->NewFunctionTemplate(ChannelWrap::New); @@ -1950,11 +1952,7 @@ void Initialize(Local target, env->SetProtoMethod(channel_wrap, "setLocalAddress", SetLocalAddress); env->SetProtoMethod(channel_wrap, "cancel", Cancel); - Local channelWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "ChannelWrap"); - channel_wrap->SetClassName(channelWrapString); - target->Set(env->context(), channelWrapString, - channel_wrap->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "ChannelWrap", channel_wrap); } } // namespace cares_wrap diff --git a/src/cares_wrap.h b/src/cares_wrap.h index 8647868efde231..60f99e65edf348 100644 --- a/src/cares_wrap.h +++ b/src/cares_wrap.h @@ -147,7 +147,11 @@ struct NodeAresTask final : public MemoryRetainer { class ChannelWrap final : public AsyncWrap { public: - ChannelWrap(Environment* env, v8::Local object, int timeout); + ChannelWrap( + Environment* env, + v8::Local object, + int timeout, + int tries); ~ChannelWrap() override; static void New(const v8::FunctionCallbackInfo& args); @@ -181,6 +185,7 @@ class ChannelWrap final : public AsyncWrap { bool is_servers_default_ = true; bool library_inited_ = false; int timeout_; + int tries_; int active_query_count_ = 0; NodeAresTask::List task_list_; }; diff --git a/src/debug_utils.h b/src/debug_utils.h index ecc53b0c2b0aa0..cec5eb6daf1217 100644 --- a/src/debug_utils.h +++ b/src/debug_utils.h @@ -41,6 +41,7 @@ void FWrite(FILE* file, const std::string& str); // from a provider type to a debug category. #define DEBUG_CATEGORY_NAMES(V) \ NODE_ASYNC_PROVIDER_TYPES(V) \ + V(DIAGNOSTICS) \ V(HUGEPAGES) \ V(INSPECTOR_SERVER) \ V(INSPECTOR_PROFILER) \ diff --git a/src/env-inl.h b/src/env-inl.h index e5c9d0eed1b60c..533a8284e9a187 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -118,6 +118,25 @@ v8::Local AsyncHooks::native_execution_async_resource(size_t i) { return PersistentToLocal::Strong(native_execution_async_resources_[i]); } +inline void AsyncHooks::SetJSPromiseHooks(v8::Local init, + v8::Local before, + v8::Local after, + v8::Local resolve) { + js_promise_hooks_[0].Reset(env()->isolate(), init); + js_promise_hooks_[1].Reset(env()->isolate(), before); + js_promise_hooks_[2].Reset(env()->isolate(), after); + 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--; + continue; + } + PersistentToLocal::Weak(env()->isolate(), *it) + ->SetPromiseHooks(init, before, after, resolve); + } +} + inline v8::Local AsyncHooks::provider_string(int idx) { return env()->isolate_data()->async_wrap_provider(idx); } @@ -240,6 +259,46 @@ void AsyncHooks::clear_async_id_stack() { fields_[kStackLength] = 0; } +inline void AsyncHooks::AddContext(v8::Local ctx) { + ctx->SetPromiseHooks( + js_promise_hooks_[0].IsEmpty() ? + v8::Local() : + PersistentToLocal::Strong(js_promise_hooks_[0]), + js_promise_hooks_[1].IsEmpty() ? + v8::Local() : + PersistentToLocal::Strong(js_promise_hooks_[1]), + js_promise_hooks_[2].IsEmpty() ? + v8::Local() : + PersistentToLocal::Strong(js_promise_hooks_[2]), + js_promise_hooks_[3].IsEmpty() ? + v8::Local() : + PersistentToLocal::Strong(js_promise_hooks_[3])); + + size_t id = contexts_.size(); + contexts_.resize(id + 1); + contexts_[id].Reset(env()->isolate(), ctx); + contexts_[id].SetWeak(); +} + +inline void AsyncHooks::RemoveContext(v8::Local ctx) { + v8::Isolate* isolate = env()->isolate(); + v8::HandleScope handle_scope(isolate); + 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) { + it->Reset(); + contexts_.erase(it); + break; + } + } +} + // The DefaultTriggerAsyncIdScope(AsyncWrap*) constructor is defined in // async_wrap-inl.h to avoid a circular dependency. @@ -333,6 +392,8 @@ inline void Environment::AssignToContext(v8::Local context, #if HAVE_INSPECTOR inspector_agent()->ContextCreated(context, info); #endif // HAVE_INSPECTOR + + this->async_hooks()->AddContext(context); } inline Environment* Environment::GetCurrent(v8::Isolate* isolate) { @@ -643,6 +704,22 @@ inline const std::string& Environment::exec_path() const { return exec_path_; } +inline std::string Environment::GetCwd() { + char cwd[PATH_MAX_BYTES]; + size_t size = PATH_MAX_BYTES; + const int err = uv_cwd(cwd, &size); + + if (err == 0) { + CHECK_GT(size, 0); + return cwd; + } + + // This can fail if the cwd is deleted. In that case, fall back to + // exec_path. + const std::string& exec_path = exec_path_; + return exec_path.substr(0, exec_path.find_last_of(kPathSeparator)); +} + #if HAVE_INSPECTOR inline void Environment::set_coverage_directory(const char* dir) { coverage_directory_ = std::string(dir); @@ -829,6 +906,10 @@ inline bool Environment::tracks_unmanaged_fds() const { return flags_ & EnvironmentFlags::kTrackUnmanagedFds; } +inline bool Environment::hide_console_windows() const { + return flags_ & EnvironmentFlags::kHideConsoleWindows; +} + bool Environment::filehandle_close_warning() const { return emit_filehandle_warning_; } @@ -1046,6 +1127,27 @@ inline void Environment::SetInstanceMethod(v8::Local that, t->SetClassName(name_string); } +inline void Environment::SetConstructorFunction( + v8::Local that, + const char* name, + v8::Local tmpl, + SetConstructorFunctionFlag flag) { + SetConstructorFunction(that, OneByteString(isolate(), name), tmpl, flag); +} + +inline void Environment::SetConstructorFunction( + v8::Local that, + v8::Local name, + v8::Local tmpl, + SetConstructorFunctionFlag flag) { + if (LIKELY(flag == SetConstructorFunctionFlag::SET_CLASS_NAME)) + tmpl->SetClassName(name); + that->Set( + context(), + name, + tmpl->GetFunction(context()).ToLocalChecked()).Check(); +} + void Environment::AddCleanupHook(CleanupCallback fn, void* arg) { auto insertion_info = cleanup_hooks_.emplace(CleanupHookCallback { fn, arg, cleanup_hook_counter_++ diff --git a/src/env.cc b/src/env.cc index 30b7ab671f5373..870aab0d8b80ee 100644 --- a/src/env.cc +++ b/src/env.cc @@ -3,6 +3,7 @@ #include "async_wrap.h" #include "base_object-inl.h" #include "debug_utils-inl.h" +#include "diagnosticfilename-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" #include "node_context_data.h" @@ -22,6 +23,7 @@ #include #include #include +#include #include namespace node { @@ -423,7 +425,7 @@ Environment::Environment(IsolateData* isolate_data, // By default, always abort when --abort-on-uncaught-exception was passed. should_abort_on_uncaught_toggle_[0] = 1; - if (options_->no_force_async_hooks_checks) { + if (!options_->force_async_hooks_checks) { async_hooks_.no_force_checks(); } @@ -465,6 +467,11 @@ Environment::~Environment() { // FreeEnvironment() should have set this. CHECK(is_stopping()); + if (options_->heap_snapshot_near_heap_limit > heap_limit_snapshot_taken_) { + isolate_->RemoveNearHeapLimitCallback(Environment::NearHeapLimitCallback, + 0); + } + isolate()->GetHeapProfiler()->RemoveBuildEmbedderGraphCallback( BuildEmbedderGraph, this); @@ -997,6 +1004,7 @@ void AsyncHooks::MemoryInfo(MemoryTracker* tracker) const { tracker->TrackField("async_ids_stack", async_ids_stack_); tracker->TrackField("fields", fields_); tracker->TrackField("async_id_fields", async_id_fields_); + tracker->TrackField("js_promise_hooks", js_promise_hooks_); } void AsyncHooks::grow_async_ids_stack() { @@ -1096,6 +1104,25 @@ void Environment::VerifyNoStrongBaseObjects() { }); } +uint64_t GuessMemoryAvailableToTheProcess() { + uint64_t free_in_system = uv_get_free_memory(); + size_t allowed = uv_get_constrained_memory(); + if (allowed == 0) { + return free_in_system; + } + size_t rss; + int err = uv_resident_set_memory(&rss); + if (err) { + return free_in_system; + } + if (allowed < rss) { + // Something is probably wrong. Fallback to the free memory. + return free_in_system; + } + // There may still be room for swap, but we will just leave it here. + return allowed - rss; +} + void Environment::BuildEmbedderGraph(Isolate* isolate, EmbedderGraph* graph, void* data) { @@ -1108,6 +1135,126 @@ void Environment::BuildEmbedderGraph(Isolate* isolate, }); } +size_t Environment::NearHeapLimitCallback(void* data, + size_t current_heap_limit, + size_t initial_heap_limit) { + Environment* env = static_cast(data); + + Debug(env, + DebugCategory::DIAGNOSTICS, + "Invoked NearHeapLimitCallback, processing=%d, " + "current_limit=%" PRIu64 ", " + "initial_limit=%" PRIu64 "\n", + env->is_processing_heap_limit_callback_, + static_cast(current_heap_limit), + static_cast(initial_heap_limit)); + + size_t max_young_gen_size = env->isolate_data()->max_young_gen_size; + size_t young_gen_size = 0; + size_t old_gen_size = 0; + + v8::HeapSpaceStatistics stats; + size_t num_heap_spaces = env->isolate()->NumberOfHeapSpaces(); + for (size_t i = 0; i < num_heap_spaces; ++i) { + env->isolate()->GetHeapSpaceStatistics(&stats, i); + if (strcmp(stats.space_name(), "new_space") == 0 || + strcmp(stats.space_name(), "new_large_object_space") == 0) { + young_gen_size += stats.space_used_size(); + } else { + old_gen_size += stats.space_used_size(); + } + } + + Debug(env, + DebugCategory::DIAGNOSTICS, + "max_young_gen_size=%" PRIu64 ", " + "young_gen_size=%" PRIu64 ", " + "old_gen_size=%" PRIu64 ", " + "total_size=%" PRIu64 "\n", + static_cast(max_young_gen_size), + static_cast(young_gen_size), + static_cast(old_gen_size), + static_cast(young_gen_size + old_gen_size)); + + uint64_t available = GuessMemoryAvailableToTheProcess(); + // TODO(joyeecheung): get a better estimate about the native memory + // usage into the overhead, e.g. based on the count of objects. + uint64_t estimated_overhead = max_young_gen_size; + Debug(env, + DebugCategory::DIAGNOSTICS, + "Estimated available memory=%" PRIu64 ", " + "estimated overhead=%" PRIu64 "\n", + static_cast(available), + static_cast(estimated_overhead)); + + // This might be hit when the snapshot is being taken in another + // NearHeapLimitCallback invocation. + // When taking the snapshot, objects in the young generation may be + // promoted to the old generation, result in increased heap usage, + // but it should be no more than the young generation size. + // Ideally, this should be as small as possible - the heap limit + // can only be restored when the heap usage falls down below the + // new limit, so in a heap with unbounded growth the isolate + // may eventually crash with this new limit - effectively raising + // the heap limit to the new one. + if (env->is_processing_heap_limit_callback_) { + size_t new_limit = initial_heap_limit + max_young_gen_size; + Debug(env, + DebugCategory::DIAGNOSTICS, + "Not generating snapshots in nested callback. " + "new_limit=%" PRIu64 "\n", + static_cast(new_limit)); + return new_limit; + } + + // Estimate whether the snapshot is going to use up all the memory + // available to the process. If so, just give up to prevent the system + // from killing the process for a system OOM. + if (estimated_overhead > available) { + Debug(env, + DebugCategory::DIAGNOSTICS, + "Not generating snapshots because it's too risky.\n"); + env->isolate()->RemoveNearHeapLimitCallback(NearHeapLimitCallback, + initial_heap_limit); + return current_heap_limit; + } + + // Take the snapshot synchronously. + env->is_processing_heap_limit_callback_ = true; + + std::string dir = env->options()->diagnostic_dir; + if (dir.empty()) { + dir = env->GetCwd(); + } + DiagnosticFilename name(env, "Heap", "heapsnapshot"); + std::string filename = dir + kPathSeparator + (*name); + + Debug(env, DebugCategory::DIAGNOSTICS, "Start generating %s...\n", *name); + + // Remove the callback first in case it's triggered when generating + // the snapshot. + env->isolate()->RemoveNearHeapLimitCallback(NearHeapLimitCallback, + initial_heap_limit); + + heap::WriteSnapshot(env->isolate(), filename.c_str()); + env->heap_limit_snapshot_taken_ += 1; + + // Don't take more snapshots than the number specified by + // --heapsnapshot-near-heap-limit. + if (env->heap_limit_snapshot_taken_ < + env->options_->heap_snapshot_near_heap_limit) { + env->isolate()->AddNearHeapLimitCallback(NearHeapLimitCallback, env); + } + + FPrintF(stderr, "Wrote snapshot to %s\n", filename.c_str()); + // Tell V8 to reset the heap limit once the heap usage falls down to + // 95% of the initial limit. + env->isolate()->AutomaticallyRestoreInitialHeapLimit(0.95); + + env->is_processing_heap_limit_callback_ = false; + return initial_heap_limit; +} + inline size_t Environment::SelfSize() const { size_t size = sizeof(*this); // Remove non pointer fields that will be tracked in MemoryInfo() diff --git a/src/env.h b/src/env.h index 1e930170bcecd7..b6967afb899114 100644 --- a/src/env.h +++ b/src/env.h @@ -179,6 +179,7 @@ constexpr size_t kFsStatsBufferLength = V(asn1curve_string, "asn1Curve") \ V(async_ids_stack_string, "async_ids_stack") \ V(bits_string, "bits") \ + V(block_list_string, "blockList") \ V(buffer_string, "buffer") \ V(bytes_parsed_string, "bytesParsed") \ V(bytes_read_string, "bytesRead") \ @@ -206,6 +207,7 @@ constexpr size_t kFsStatsBufferLength = V(crypto_rsa_pss_string, "rsa-pss") \ V(cwd_string, "cwd") \ V(data_string, "data") \ + V(default_is_true_string, "defaultIsTrue") \ V(deserialize_info_string, "deserializeInfo") \ V(dest_string, "dest") \ V(destroyed_string, "destroyed") \ @@ -248,9 +250,11 @@ constexpr size_t kFsStatsBufferLength = V(fd_string, "fd") \ V(fields_string, "fields") \ V(file_string, "file") \ + V(filename_string, "filename") \ V(fingerprint256_string, "fingerprint256") \ V(fingerprint_string, "fingerprint") \ V(flags_string, "flags") \ + V(flowlabel_string, "flowlabel") \ V(fragment_string, "fragment") \ V(function_string, "function") \ V(get_data_clone_error_string, "_getDataCloneError") \ @@ -319,6 +323,7 @@ constexpr size_t kFsStatsBufferLength = V(options_string, "options") \ V(order_string, "order") \ V(output_string, "output") \ + V(overlapped_string, "overlapped") \ V(parse_error_string, "Parse Error") \ V(password_string, "password") \ V(path_string, "path") \ @@ -409,6 +414,8 @@ constexpr size_t kFsStatsBufferLength = V(async_wrap_object_ctor_template, v8::FunctionTemplate) \ V(base_object_ctor_template, v8::FunctionTemplate) \ V(binding_data_ctor_template, v8::FunctionTemplate) \ + V(blob_constructor_template, v8::FunctionTemplate) \ + V(blocklist_constructor_template, v8::FunctionTemplate) \ V(compiled_fn_entry_template, v8::ObjectTemplate) \ V(dir_instance_template, v8::ObjectTemplate) \ V(fd_constructor_template, v8::ObjectTemplate) \ @@ -416,11 +423,12 @@ constexpr size_t kFsStatsBufferLength = V(filehandlereadwrap_template, v8::ObjectTemplate) \ V(fsreqpromise_constructor_template, v8::ObjectTemplate) \ V(handle_wrap_ctor_template, v8::FunctionTemplate) \ - V(histogram_instance_template, v8::ObjectTemplate) \ + V(histogram_ctor_template, v8::FunctionTemplate) \ V(http2settings_constructor_template, v8::ObjectTemplate) \ V(http2stream_constructor_template, v8::ObjectTemplate) \ V(http2ping_constructor_template, v8::ObjectTemplate) \ V(i18n_converter_template, v8::ObjectTemplate) \ + V(intervalhistogram_constructor_template, v8::FunctionTemplate) \ V(libuv_stream_wrap_ctor_template, v8::FunctionTemplate) \ V(message_port_constructor_template, v8::FunctionTemplate) \ V(microtask_queue_ctor_template, v8::FunctionTemplate) \ @@ -430,6 +438,7 @@ constexpr size_t kFsStatsBufferLength = V(script_context_constructor_template, v8::FunctionTemplate) \ V(secure_context_constructor_template, v8::FunctionTemplate) \ V(shutdown_wrap_template, v8::ObjectTemplate) \ + V(socketaddress_constructor_template, v8::FunctionTemplate) \ V(streambaseoutputstream_constructor_template, v8::ObjectTemplate) \ V(tcp_constructor_template, v8::FunctionTemplate) \ V(tty_constructor_template, v8::FunctionTemplate) \ @@ -470,6 +479,8 @@ constexpr size_t kFsStatsBufferLength = V(internal_binding_loader, v8::Function) \ V(immediate_callback_function, v8::Function) \ V(inspector_console_extension_installer, v8::Function) \ + V(inspector_disable_async_hooks, v8::Function) \ + V(inspector_enable_async_hooks, v8::Function) \ V(messaging_deserialize_create_object, v8::Function) \ V(message_port, v8::Object) \ V(native_module_require, v8::Function) \ @@ -532,6 +543,7 @@ class IsolateData : public MemoryRetainer { #undef VP inline v8::Local async_wrap_provider(int index) const; + size_t max_young_gen_size = 1; std::unordered_map> static_str_map; inline v8::Isolate* isolate() const; @@ -648,6 +660,11 @@ class AsyncHooks : public MemoryRetainer { // The `js_execution_async_resources` array contains the value in that case. inline v8::Local native_execution_async_resource(size_t index); + inline void SetJSPromiseHooks(v8::Local init, + v8::Local before, + v8::Local after, + v8::Local resolve); + inline v8::Local provider_string(int idx); inline void no_force_checks(); @@ -658,6 +675,9 @@ class AsyncHooks : public MemoryRetainer { inline bool pop_async_context(double async_id); inline void clear_async_id_stack(); // Used in fatal exceptions. + inline void AddContext(v8::Local ctx); + inline void RemoveContext(v8::Local ctx); + AsyncHooks(const AsyncHooks&) = delete; AsyncHooks& operator=(const AsyncHooks&) = delete; AsyncHooks(AsyncHooks&&) = delete; @@ -701,6 +721,10 @@ class AsyncHooks : public MemoryRetainer { v8::Global js_execution_async_resources_; std::vector> native_execution_async_resources_; + + std::vector> contexts_; + + std::array, 4> js_promise_hooks_; }; class ImmediateInfo : public MemoryRetainer { @@ -840,6 +864,9 @@ class Environment : public MemoryRetainer { void VerifyNoStrongBaseObjects(); // Should be called before InitializeInspector() void InitializeDiagnostics(); + + std::string GetCwd(); + #if HAVE_INSPECTOR // If the environment is created for a worker, pass parent_handle and // the ownership if transferred into the Environment. @@ -1031,6 +1058,7 @@ class Environment : public MemoryRetainer { inline bool owns_process_state() const; inline bool owns_inspector() const; inline bool tracks_unmanaged_fds() const; + inline bool hide_console_windows() const; inline uint64_t thread_id() const; inline worker::Worker* worker_context() const; Environment* worker_parent_env() const; @@ -1096,6 +1124,23 @@ class Environment : public MemoryRetainer { const char* name, v8::FunctionCallback callback); + enum class SetConstructorFunctionFlag { + NONE, + SET_CLASS_NAME, + }; + + inline void SetConstructorFunction(v8::Local that, + const char* name, + v8::Local tmpl, + SetConstructorFunctionFlag flag = + SetConstructorFunctionFlag::SET_CLASS_NAME); + + inline void SetConstructorFunction(v8::Local that, + v8::Local name, + v8::Local tmpl, + SetConstructorFunctionFlag flag = + SetConstructorFunctionFlag::SET_CLASS_NAME); + void AtExit(void (*cb)(void* arg), void* arg); void RunAtExitCallbacks(); @@ -1186,6 +1231,9 @@ class Environment : public MemoryRetainer { inline void RemoveCleanupHook(CleanupCallback cb, void* arg); void RunCleanup(); + static size_t NearHeapLimitCallback(void* data, + size_t current_heap_limit, + size_t initial_heap_limit); static void BuildEmbedderGraph(v8::Isolate* isolate, v8::EmbedderGraph* graph, void* data); @@ -1306,6 +1354,9 @@ class Environment : public MemoryRetainer { std::vector argv_; std::string exec_path_; + bool is_processing_heap_limit_callback_ = false; + int64_t heap_limit_snapshot_taken_ = 0; + uint32_t module_id_counter_ = 0; uint32_t script_id_counter_ = 0; uint32_t function_id_counter_ = 0; diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index faa650b7a10cf9..b79da7e83622c9 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -95,11 +95,9 @@ void FSEventWrap::Initialize(Local target, void* priv) { Environment* env = Environment::GetCurrent(context); - auto fsevent_string = FIXED_ONE_BYTE_STRING(env->isolate(), "FSEvent"); Local t = env->NewFunctionTemplate(New); t->InstanceTemplate()->SetInternalFieldCount( FSEventWrap::kInternalFieldCount); - t->SetClassName(fsevent_string); t->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "start", Start); @@ -116,9 +114,7 @@ void FSEventWrap::Initialize(Local target, Local(), static_cast(ReadOnly | DontDelete | DontEnum)); - target->Set(env->context(), - fsevent_string, - t->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "FSEvent", t); } diff --git a/src/handle_wrap.cc b/src/handle_wrap.cc index 447c0842b90d99..d8582918bb616a 100644 --- a/src/handle_wrap.cc +++ b/src/handle_wrap.cc @@ -84,7 +84,16 @@ void HandleWrap::Close(Local close_callback) { void HandleWrap::OnGCCollect() { - Close(); + // When all references to a HandleWrap are lost and the object is supposed to + // be destroyed, we first call Close() to clean up the underlying libuv + // handle. The OnClose callback then acquires and destroys another reference + // to that object, and when that reference is lost, we perform the default + // action (i.e. destroying `this`). + if (state_ != kClosed) { + Close(); + } else { + BaseObject::OnGCCollect(); + } } diff --git a/src/heap_utils.cc b/src/heap_utils.cc index 449feb9e78d0e1..71bfd59ac3ea69 100644 --- a/src/heap_utils.cc +++ b/src/heap_utils.cc @@ -313,7 +313,9 @@ inline void TakeSnapshot(Isolate* isolate, v8::OutputStream* out) { snapshot->Serialize(out, HeapSnapshot::kJSON); } -inline bool WriteSnapshot(Isolate* isolate, const char* filename) { +} // namespace + +bool WriteSnapshot(Isolate* isolate, const char* filename) { FILE* fp = fopen(filename, "w"); if (fp == nullptr) return false; @@ -323,8 +325,6 @@ inline bool WriteSnapshot(Isolate* isolate, const char* filename) { return true; } -} // namespace - void DeleteHeapSnapshot(const HeapSnapshot* snapshot) { const_cast(snapshot)->Delete(); } diff --git a/src/histogram-inl.h b/src/histogram-inl.h index 58911dae8f2dae..18a1668512e1ce 100644 --- a/src/histogram-inl.h +++ b/src/histogram-inl.h @@ -10,30 +10,34 @@ namespace node { void Histogram::Reset() { + Mutex::ScopedLock lock(mutex_); hdr_reset(histogram_.get()); -} - -bool Histogram::Record(int64_t value) { - return hdr_record_value(histogram_.get(), value); + exceeds_ = 0; + prev_ = 0; } int64_t Histogram::Min() { + Mutex::ScopedLock lock(mutex_); return hdr_min(histogram_.get()); } int64_t Histogram::Max() { + Mutex::ScopedLock lock(mutex_); return hdr_max(histogram_.get()); } double Histogram::Mean() { + Mutex::ScopedLock lock(mutex_); return hdr_mean(histogram_.get()); } double Histogram::Stddev() { + Mutex::ScopedLock lock(mutex_); return hdr_stddev(histogram_.get()); } double Histogram::Percentile(double percentile) { + Mutex::ScopedLock lock(mutex_); CHECK_GT(percentile, 0); CHECK_LE(percentile, 100); return static_cast( @@ -42,6 +46,7 @@ double Histogram::Percentile(double percentile) { template void Histogram::Percentiles(Iterator&& fn) { + Mutex::ScopedLock lock(mutex_); hdr_iter iter; hdr_iter_percentile_init(&iter, histogram_.get(), 1); while (hdr_iter_next(&iter)) { @@ -51,29 +56,29 @@ void Histogram::Percentiles(Iterator&& fn) { } } -bool HistogramBase::RecordDelta() { +bool Histogram::Record(int64_t value) { + Mutex::ScopedLock lock(mutex_); + return hdr_record_value(histogram_.get(), value); +} + +uint64_t Histogram::RecordDelta() { + Mutex::ScopedLock lock(mutex_); uint64_t time = uv_hrtime(); - bool ret = true; + uint64_t delta = 0; if (prev_ > 0) { - int64_t delta = time - prev_; + delta = time - prev_; if (delta > 0) { - ret = Record(delta); - TraceDelta(delta); - if (!ret) { - if (exceeds_ < 0xFFFFFFFF) - exceeds_++; - TraceExceeds(delta); - } + if (!hdr_record_value(histogram_.get(), delta) && exceeds_ < 0xFFFFFFFF) + exceeds_++; } } prev_ = time; - return ret; + return delta; } -void HistogramBase::ResetState() { - Reset(); - exceeds_ = 0; - prev_ = 0; +size_t Histogram::GetMemorySize() const { + Mutex::ScopedLock lock(mutex_); + return hdr_get_memory_size(histogram_.get()); } } // namespace node diff --git a/src/histogram.cc b/src/histogram.cc index 8d1eb77b1bc88e..d21cf2883a0ca8 100644 --- a/src/histogram.cc +++ b/src/histogram.cc @@ -1,15 +1,17 @@ #include "histogram.h" // NOLINT(build/include_inline) #include "histogram-inl.h" +#include "base_object-inl.h" #include "memory_tracker-inl.h" - +#include "node_errors.h" namespace node { +using v8::BigInt; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; using v8::Local; using v8::Map; using v8::Number; -using v8::ObjectTemplate; +using v8::Object; using v8::String; using v8::Value; @@ -19,71 +21,88 @@ Histogram::Histogram(int64_t lowest, int64_t highest, int figures) { histogram_.reset(histogram); } +void Histogram::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackFieldWithSize("histogram", GetMemorySize()); +} + +HistogramImpl::HistogramImpl(int64_t lowest, int64_t highest, int figures) + : histogram_(new Histogram(lowest, highest, figures)) {} + +HistogramImpl::HistogramImpl(std::shared_ptr histogram) + : histogram_(std::move(histogram)) {} + HistogramBase::HistogramBase( Environment* env, - v8::Local wrap, + Local wrap, int64_t lowest, int64_t highest, int figures) : BaseObject(env, wrap), - Histogram(lowest, highest, figures) { + HistogramImpl(lowest, highest, figures) { + MakeWeak(); +} + +HistogramBase::HistogramBase( + Environment* env, + Local wrap, + std::shared_ptr histogram) + : BaseObject(env, wrap), + HistogramImpl(std::move(histogram)) { MakeWeak(); } void HistogramBase::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackFieldWithSize("histogram", GetMemorySize()); + tracker->TrackField("histogram", histogram()); } void HistogramBase::GetMin(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Min()); + double value = static_cast((*histogram)->Min()); args.GetReturnValue().Set(value); } void HistogramBase::GetMax(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Max()); + double value = static_cast((*histogram)->Max()); args.GetReturnValue().Set(value); } void HistogramBase::GetMean(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Mean()); + args.GetReturnValue().Set((*histogram)->Mean()); } void HistogramBase::GetExceeds(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Exceeds()); + double value = static_cast((*histogram)->Exceeds()); args.GetReturnValue().Set(value); } void HistogramBase::GetStddev(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Stddev()); + args.GetReturnValue().Set((*histogram)->Stddev()); } -void HistogramBase::GetPercentile( - const FunctionCallbackInfo& args) { +void HistogramBase::GetPercentile(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); CHECK(args[0]->IsNumber()); double percentile = args[0].As()->Value(); - args.GetReturnValue().Set(histogram->Percentile(percentile)); + args.GetReturnValue().Set((*histogram)->Percentile(percentile)); } -void HistogramBase::GetPercentiles( - const FunctionCallbackInfo& args) { +void HistogramBase::GetPercentiles(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); CHECK(args[0]->IsMap()); Local map = args[0].As(); - histogram->Percentiles([map, env](double key, double value) { + (*histogram)->Percentiles([map, env](double key, double value) { map->Set( env->context(), Number::New(env->isolate(), key), @@ -94,48 +113,254 @@ void HistogramBase::GetPercentiles( void HistogramBase::DoReset(const FunctionCallbackInfo& args) { HistogramBase* histogram; ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - histogram->ResetState(); + (*histogram)->Reset(); +} + +void HistogramBase::RecordDelta(const FunctionCallbackInfo& args) { + HistogramBase* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + (*histogram)->RecordDelta(); } -BaseObjectPtr HistogramBase::New( +void HistogramBase::Record(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK_IMPLIES(!args[0]->IsNumber(), args[0]->IsBigInt()); + bool lossless = true; + int64_t value = args[0]->IsBigInt() + ? args[0].As()->Int64Value(&lossless) + : static_cast(args[0].As()->Value()); + if (!lossless || value < 1) + return THROW_ERR_OUT_OF_RANGE(env, "value is out of range"); + HistogramBase* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + (*histogram)->Record(value); +} + +BaseObjectPtr HistogramBase::Create( Environment* env, int64_t lowest, int64_t highest, int figures) { - CHECK_LE(lowest, highest); - CHECK_GT(figures, 0); - v8::Local obj; - auto tmpl = env->histogram_instance_template(); - if (!tmpl->NewInstance(env->context()).ToLocal(&obj)) - return {}; - - return MakeDetachedBaseObject( + Local obj; + if (!GetConstructorTemplate(env) + ->InstanceTemplate() + ->NewInstance(env->context()).ToLocal(&obj)) { + return BaseObjectPtr(); + } + + return MakeBaseObject( env, obj, lowest, highest, figures); } -void HistogramBase::Initialize(Environment* env) { - // Guard against multiple initializations - if (!env->histogram_instance_template().IsEmpty()) - return; +BaseObjectPtr HistogramBase::Create( + Environment* env, + std::shared_ptr histogram) { + Local obj; + if (!GetConstructorTemplate(env) + ->InstanceTemplate() + ->NewInstance(env->context()).ToLocal(&obj)) { + return BaseObjectPtr(); + } + return MakeBaseObject(env, obj, std::move(histogram)); +} + +void HistogramBase::New(const FunctionCallbackInfo& args) { + CHECK(args.IsConstructCall()); + Environment* env = Environment::GetCurrent(args); + new HistogramBase(env, args.This()); +} + +Local HistogramBase::GetConstructorTemplate( + Environment* env) { + Local tmpl = env->histogram_ctor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(New); + Local classname = + FIXED_ONE_BYTE_STRING(env->isolate(), "Histogram"); + tmpl->SetClassName(classname); + tmpl->Inherit(BaseObject::GetConstructorTemplate(env)); + + tmpl->InstanceTemplate()->SetInternalFieldCount( + HistogramBase::kInternalFieldCount); + env->SetProtoMethodNoSideEffect(tmpl, "exceeds", GetExceeds); + env->SetProtoMethodNoSideEffect(tmpl, "min", GetMin); + env->SetProtoMethodNoSideEffect(tmpl, "max", GetMax); + env->SetProtoMethodNoSideEffect(tmpl, "mean", GetMean); + env->SetProtoMethodNoSideEffect(tmpl, "stddev", GetStddev); + env->SetProtoMethodNoSideEffect(tmpl, "percentile", GetPercentile); + env->SetProtoMethodNoSideEffect(tmpl, "percentiles", GetPercentiles); + env->SetProtoMethod(tmpl, "reset", DoReset); + env->SetProtoMethod(tmpl, "record", Record); + env->SetProtoMethod(tmpl, "recordDelta", RecordDelta); + env->set_histogram_ctor_template(tmpl); + } + return tmpl; +} + +void HistogramBase::Initialize(Environment* env, Local target) { + env->SetConstructorFunction(target, "Histogram", GetConstructorTemplate(env)); +} + +BaseObjectPtr HistogramBase::HistogramTransferData::Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) { + return Create(env, std::move(histogram_)); +} + +std::unique_ptr HistogramBase::CloneForMessaging() const { + return std::make_unique(this); +} + +void HistogramBase::HistogramTransferData::MemoryInfo( + MemoryTracker* tracker) const { + tracker->TrackField("histogram", histogram_); +} + +Local IntervalHistogram::GetConstructorTemplate( + Environment* env) { + Local tmpl = env->intervalhistogram_constructor_template(); + if (tmpl.IsEmpty()) { + tmpl = FunctionTemplate::New(env->isolate()); + tmpl->Inherit(HandleWrap::GetConstructorTemplate(env)); + tmpl->InstanceTemplate()->SetInternalFieldCount( + HistogramBase::kInternalFieldCount); + env->SetProtoMethodNoSideEffect(tmpl, "exceeds", GetExceeds); + env->SetProtoMethodNoSideEffect(tmpl, "min", GetMin); + env->SetProtoMethodNoSideEffect(tmpl, "max", GetMax); + env->SetProtoMethodNoSideEffect(tmpl, "mean", GetMean); + env->SetProtoMethodNoSideEffect(tmpl, "stddev", GetStddev); + env->SetProtoMethodNoSideEffect(tmpl, "percentile", GetPercentile); + env->SetProtoMethodNoSideEffect(tmpl, "percentiles", GetPercentiles); + env->SetProtoMethod(tmpl, "reset", DoReset); + env->SetProtoMethod(tmpl, "start", Start); + env->SetProtoMethod(tmpl, "stop", Stop); + env->set_intervalhistogram_constructor_template(tmpl); + } + return tmpl; +} + +IntervalHistogram::IntervalHistogram( + Environment* env, + Local wrap, + AsyncWrap::ProviderType type, + int32_t interval, + int64_t lowest, + int64_t highest, + int figures) + : HandleWrap( + env, + wrap, + reinterpret_cast(&timer_), + type), + HistogramImpl(lowest, highest, figures), + interval_(interval) { + MakeWeak(); + uv_timer_init(env->event_loop(), &timer_); +} + +void IntervalHistogram::TimerCB(uv_timer_t* handle) { + IntervalHistogram* histogram = + ContainerOf(&IntervalHistogram::timer_, handle); + histogram->OnInterval(); +} + +void IntervalHistogram::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("histogram", histogram()); +} + +void IntervalHistogram::OnStart(StartFlags flags) { + if (enabled_ || IsHandleClosing()) return; + enabled_ = true; + if (flags == StartFlags::RESET) + histogram()->Reset(); + uv_timer_start(&timer_, TimerCB, interval_, interval_); + uv_unref(reinterpret_cast(&timer_)); +} + +void IntervalHistogram::OnStop() { + if (!enabled_ || IsHandleClosing()) return; + enabled_ = false; + uv_timer_stop(&timer_); +} + +void IntervalHistogram::Start(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + histogram->OnStart(args[0]->IsTrue() ? StartFlags::RESET : StartFlags::NONE); +} + +void IntervalHistogram::Stop(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + histogram->OnStop(); +} + +void IntervalHistogram::GetMin(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + double value = static_cast((*histogram)->Min()); + args.GetReturnValue().Set(value); +} + +void IntervalHistogram::GetMax(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + double value = static_cast((*histogram)->Max()); + args.GetReturnValue().Set(value); +} + +void IntervalHistogram::GetMean(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + args.GetReturnValue().Set((*histogram)->Mean()); +} + +void IntervalHistogram::GetExceeds(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + double value = static_cast((*histogram)->Exceeds()); + args.GetReturnValue().Set(value); +} - Local histogram = FunctionTemplate::New(env->isolate()); - Local classname = FIXED_ONE_BYTE_STRING(env->isolate(), "Histogram"); - histogram->SetClassName(classname); +void IntervalHistogram::GetStddev(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + args.GetReturnValue().Set((*histogram)->Stddev()); +} - Local histogramt = - histogram->InstanceTemplate(); +void IntervalHistogram::GetPercentile(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + CHECK(args[0]->IsNumber()); + double percentile = args[0].As()->Value(); + args.GetReturnValue().Set((*histogram)->Percentile(percentile)); +} - histogramt->SetInternalFieldCount(1); - env->SetProtoMethod(histogram, "exceeds", HistogramBase::GetExceeds); - env->SetProtoMethod(histogram, "min", HistogramBase::GetMin); - env->SetProtoMethod(histogram, "max", HistogramBase::GetMax); - env->SetProtoMethod(histogram, "mean", HistogramBase::GetMean); - env->SetProtoMethod(histogram, "stddev", HistogramBase::GetStddev); - env->SetProtoMethod(histogram, "percentile", HistogramBase::GetPercentile); - env->SetProtoMethod(histogram, "percentiles", HistogramBase::GetPercentiles); - env->SetProtoMethod(histogram, "reset", HistogramBase::DoReset); +void IntervalHistogram::GetPercentiles( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + CHECK(args[0]->IsMap()); + Local map = args[0].As(); + (*histogram)->Percentiles([map, env](double key, double value) { + map->Set( + env->context(), + Number::New(env->isolate(), key), + Number::New(env->isolate(), value)).IsEmpty(); + }); +} + +void IntervalHistogram::DoReset(const FunctionCallbackInfo& args) { + IntervalHistogram* histogram; + ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); + (*histogram)->Reset(); +} - env->set_histogram_instance_template(histogramt); +std::unique_ptr +IntervalHistogram::CloneForMessaging() const { + return std::make_unique(histogram()); } } // namespace node diff --git a/src/histogram.h b/src/histogram.h index e92c31c4724ac6..8c164f54cfd9ed 100644 --- a/src/histogram.h +++ b/src/histogram.h @@ -5,20 +5,25 @@ #include "hdr_histogram.h" #include "base_object.h" +#include "memory_tracker.h" +#include "node_messaging.h" #include "util.h" +#include "v8.h" +#include "uv.h" #include #include #include +#include namespace node { constexpr int kDefaultHistogramFigures = 3; -class Histogram { +class Histogram : public MemoryRetainer { public: Histogram( - int64_t lowest = std::numeric_limits::min(), + int64_t lowest = 1, int64_t highest = std::numeric_limits::max(), int figures = kDefaultHistogramFigures); virtual ~Histogram() = default; @@ -30,32 +35,61 @@ class Histogram { inline double Mean(); inline double Stddev(); inline double Percentile(double percentile); + inline int64_t Exceeds() const { return exceeds_; } + + inline uint64_t RecordDelta(); // Iterator is a function type that takes two doubles as argument, one for // percentile and one for the value at that percentile. template inline void Percentiles(Iterator&& fn); - size_t GetMemorySize() const { - return hdr_get_memory_size(histogram_.get()); - } + inline size_t GetMemorySize() const; + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(Histogram) + SET_SELF_SIZE(Histogram) private: using HistogramPointer = DeleteFnPtr; HistogramPointer histogram_; + int64_t exceeds_ = 0; + uint64_t prev_ = 0; + + Mutex mutex_; }; -class HistogramBase : public BaseObject, public Histogram { +class HistogramImpl { public: - virtual ~HistogramBase() = default; + HistogramImpl(int64_t lowest, int64_t highest, int figures); + explicit HistogramImpl(std::shared_ptr histogram); - virtual void TraceDelta(int64_t delta) {} - virtual void TraceExceeds(int64_t delta) {} + Histogram* operator->() { return histogram_.get(); } - inline bool RecordDelta(); - inline void ResetState(); + protected: + const std::shared_ptr& histogram() const { return histogram_; } - int64_t Exceeds() const { return exceeds_; } + private: + std::shared_ptr histogram_; +}; + +class HistogramBase : public BaseObject, public HistogramImpl { + public: + static v8::Local GetConstructorTemplate( + Environment* env); + static void Initialize(Environment* env, v8::Local target); + + static BaseObjectPtr Create( + Environment* env, + int64_t lowest = 1, + int64_t highest = std::numeric_limits::max(), + int figures = kDefaultHistogramFigures); + + static BaseObjectPtr Create( + Environment* env, + std::shared_ptr histogram); + + static void New(const v8::FunctionCallbackInfo& args); void MemoryInfo(MemoryTracker* tracker) const override; SET_MEMORY_INFO_NAME(HistogramBase) @@ -71,24 +105,103 @@ class HistogramBase : public BaseObject, public Histogram { static void GetPercentiles( const v8::FunctionCallbackInfo& args); static void DoReset(const v8::FunctionCallbackInfo& args); - static void Initialize(Environment* env); + static void Record(const v8::FunctionCallbackInfo& args); + static void RecordDelta(const v8::FunctionCallbackInfo& args); - static BaseObjectPtr New( + HistogramBase( Environment* env, - int64_t lowest = std::numeric_limits::min(), + v8::Local wrap, + int64_t lowest = 1, int64_t highest = std::numeric_limits::max(), int figures = kDefaultHistogramFigures); HistogramBase( Environment* env, v8::Local wrap, - int64_t lowest = std::numeric_limits::min(), + std::shared_ptr histogram); + + TransferMode GetTransferMode() const override { + return TransferMode::kCloneable; + } + std::unique_ptr CloneForMessaging() const override; + + class HistogramTransferData : public worker::TransferData { + public: + explicit HistogramTransferData(const HistogramBase* histogram) + : histogram_(histogram->histogram()) {} + + explicit HistogramTransferData(std::shared_ptr histogram) + : histogram_(std::move(histogram)) {} + + BaseObjectPtr Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) override; + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(HistogramTransferData) + SET_SELF_SIZE(HistogramTransferData) + + private: + std::shared_ptr histogram_; + }; +}; + +class IntervalHistogram : public HandleWrap, public HistogramImpl { + public: + enum class StartFlags { + NONE, + RESET + }; + + static v8::Local GetConstructorTemplate( + Environment* env); + + static BaseObjectPtr Create( + Environment* env, + int64_t lowest = 1, + int64_t highest = std::numeric_limits::max(), + int figures = kDefaultHistogramFigures); + + virtual void OnInterval() = 0; + + void MemoryInfo(MemoryTracker* tracker) const override; + + IntervalHistogram( + Environment* env, + v8::Local wrap, + AsyncWrap::ProviderType type, + int32_t interval, + int64_t lowest = 1, int64_t highest = std::numeric_limits::max(), int figures = kDefaultHistogramFigures); + static void GetMin(const v8::FunctionCallbackInfo& args); + static void GetMax(const v8::FunctionCallbackInfo& args); + static void GetMean(const v8::FunctionCallbackInfo& args); + static void GetExceeds(const v8::FunctionCallbackInfo& args); + static void GetStddev(const v8::FunctionCallbackInfo& args); + static void GetPercentile( + const v8::FunctionCallbackInfo& args); + static void GetPercentiles( + const v8::FunctionCallbackInfo& args); + static void DoReset(const v8::FunctionCallbackInfo& args); + static void Start(const v8::FunctionCallbackInfo& args); + static void Stop(const v8::FunctionCallbackInfo& args); + + TransferMode GetTransferMode() const override { + return TransferMode::kCloneable; + } + std::unique_ptr CloneForMessaging() const override; + private: - int64_t exceeds_ = 0; - uint64_t prev_ = 0; + static void TimerCB(uv_timer_t* handle); + void OnStart(StartFlags flags = StartFlags::RESET); + void OnStop(); + + bool enabled_ = false; + int32_t interval_ = 0; + uv_timer_t timer_; }; } // namespace node diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index ebe451106b24af..cd2ff5617539e3 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -40,7 +40,6 @@ using node::FatalError; using v8::Context; using v8::Function; -using v8::Global; using v8::HandleScope; using v8::Isolate; using v8::Local; @@ -804,8 +803,8 @@ void Agent::PauseOnNextJavascriptStatement(const std::string& reason) { void Agent::RegisterAsyncHook(Isolate* isolate, Local enable_function, Local disable_function) { - enable_async_hook_function_.Reset(isolate, enable_function); - disable_async_hook_function_.Reset(isolate, disable_function); + parent_env_->set_inspector_enable_async_hooks(enable_function); + parent_env_->set_inspector_disable_async_hooks(disable_function); if (pending_enable_async_hook_) { CHECK(!pending_disable_async_hook_); pending_enable_async_hook_ = false; @@ -818,8 +817,10 @@ void Agent::RegisterAsyncHook(Isolate* isolate, } void Agent::EnableAsyncHook() { - if (!enable_async_hook_function_.IsEmpty()) { - ToggleAsyncHook(parent_env_->isolate(), enable_async_hook_function_); + HandleScope scope(parent_env_->isolate()); + Local enable = parent_env_->inspector_enable_async_hooks(); + if (!enable.IsEmpty()) { + ToggleAsyncHook(parent_env_->isolate(), enable); } else if (pending_disable_async_hook_) { CHECK(!pending_enable_async_hook_); pending_disable_async_hook_ = false; @@ -829,8 +830,10 @@ void Agent::EnableAsyncHook() { } void Agent::DisableAsyncHook() { - if (!disable_async_hook_function_.IsEmpty()) { - ToggleAsyncHook(parent_env_->isolate(), disable_async_hook_function_); + HandleScope scope(parent_env_->isolate()); + Local disable = parent_env_->inspector_enable_async_hooks(); + if (!disable.IsEmpty()) { + ToggleAsyncHook(parent_env_->isolate(), disable); } else if (pending_enable_async_hook_) { CHECK(!pending_disable_async_hook_); pending_enable_async_hook_ = false; @@ -839,8 +842,7 @@ void Agent::DisableAsyncHook() { } } -void Agent::ToggleAsyncHook(Isolate* isolate, - const Global& fn) { +void Agent::ToggleAsyncHook(Isolate* isolate, Local fn) { // Guard against running this during cleanup -- no async events will be // emitted anyway at that point anymore, and calling into JS is not possible. // This should probably not be something we're attempting in the first place, @@ -851,7 +853,7 @@ void Agent::ToggleAsyncHook(Isolate* isolate, CHECK(!fn.IsEmpty()); auto context = parent_env_->context(); v8::TryCatch try_catch(isolate); - USE(fn.Get(isolate)->Call(context, Undefined(isolate), 0, nullptr)); + USE(fn->Call(context, Undefined(isolate), 0, nullptr)); if (try_catch.HasCaught() && !try_catch.HasTerminated()) { PrintCaughtException(isolate, context, try_catch); FatalError("\nnode::inspector::Agent::ToggleAsyncHook", diff --git a/src/inspector_agent.h b/src/inspector_agent.h index 1c8d496ba27a9e..744e139df8f87a 100644 --- a/src/inspector_agent.h +++ b/src/inspector_agent.h @@ -117,8 +117,7 @@ class Agent { inline Environment* env() const { return parent_env_; } private: - void ToggleAsyncHook(v8::Isolate* isolate, - const v8::Global& fn); + void ToggleAsyncHook(v8::Isolate* isolate, v8::Local fn); node::Environment* parent_env_; // Encapsulates majority of the Inspector functionality @@ -137,8 +136,6 @@ class Agent { bool pending_enable_async_hook_ = false; bool pending_disable_async_hook_ = false; - v8::Global enable_async_hook_function_; - v8::Global disable_async_hook_function_; }; } // namespace inspector diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc index f1eb5fe7fd7448..c2d59effe0eebd 100644 --- a/src/inspector_js_api.cc +++ b/src/inspector_js_api.cc @@ -101,19 +101,17 @@ class JSBindingsConnection : public AsyncWrap { } static void Bind(Environment* env, Local target) { - Local class_name = ConnectionType::GetClassName(env); Local tmpl = env->NewFunctionTemplate(JSBindingsConnection::New); tmpl->InstanceTemplate()->SetInternalFieldCount( JSBindingsConnection::kInternalFieldCount); - tmpl->SetClassName(class_name); tmpl->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(tmpl, "dispatch", JSBindingsConnection::Dispatch); env->SetProtoMethod(tmpl, "disconnect", JSBindingsConnection::Disconnect); - target->Set(env->context(), - class_name, - tmpl->GetFunction(env->context()).ToLocalChecked()) - .ToChecked(); + env->SetConstructorFunction( + target, + ConnectionType::GetClassName(env), + tmpl); } static void New(const FunctionCallbackInfo& info) { diff --git a/src/inspector_profiler.cc b/src/inspector_profiler.cc index 03cf2f6e5ca76b..092b263ada2fdd 100644 --- a/src/inspector_profiler.cc +++ b/src/inspector_profiler.cc @@ -9,6 +9,7 @@ #include "util-inl.h" #include "v8-inspector.h" +#include #include namespace node { @@ -36,10 +37,11 @@ V8ProfilerConnection::V8ProfilerConnection(Environment* env) false)), env_(env) {} -size_t V8ProfilerConnection::DispatchMessage(const char* method, - const char* params) { +uint32_t V8ProfilerConnection::DispatchMessage(const char* method, + const char* params, + bool is_profile_request) { std::stringstream ss; - size_t id = next_id(); + uint32_t id = next_id(); ss << R"({ "id": )" << id; DCHECK(method != nullptr); ss << R"(, "method": ")" << method << '"'; @@ -50,12 +52,15 @@ size_t V8ProfilerConnection::DispatchMessage(const char* method, std::string message = ss.str(); const uint8_t* message_data = reinterpret_cast(message.c_str()); + // Save the id of the profile request to identify its response. + if (is_profile_request) { + profile_ids_.insert(id); + } Debug(env(), DebugCategory::INSPECTOR_PROFILER, "Dispatching message %s\n", message.c_str()); session_->Dispatch(StringView(message_data, message.length())); - // TODO(joyeecheung): use this to identify the ending message. return id; } @@ -77,21 +82,10 @@ void V8ProfilerConnection::V8ProfilerSessionDelegate::SendMessageToFrontend( Environment* env = connection_->env(); Isolate* isolate = env->isolate(); HandleScope handle_scope(isolate); - Context::Scope context_scope(env->context()); + Local context = env->context(); + Context::Scope context_scope(context); - // TODO(joyeecheung): always parse the message so that we can use the id to - // identify ending messages as well as printing the message in the debug - // output when there is an error. const char* type = connection_->type(); - Debug(env, - DebugCategory::INSPECTOR_PROFILER, - "Receive %s profile message, ending = %s\n", - type, - connection_->ending() ? "true" : "false"); - if (!connection_->ending()) { - return; - } - // Convert StringView to a Local. Local message_str; if (!String::NewFromTwoByte(isolate, @@ -99,11 +93,62 @@ void V8ProfilerConnection::V8ProfilerSessionDelegate::SendMessageToFrontend( NewStringType::kNormal, message.length()) .ToLocal(&message_str)) { - fprintf(stderr, "Failed to convert %s profile message\n", type); + fprintf( + stderr, "Failed to convert %s profile message to V8 string\n", type); + return; + } + + Debug(env, + DebugCategory::INSPECTOR_PROFILER, + "Receive %s profile message\n", + type); + + Local parsed; + if (!v8::JSON::Parse(context, message_str).ToLocal(&parsed) || + !parsed->IsObject()) { + fprintf(stderr, "Failed to parse %s profile result as JSON object\n", type); + return; + } + + Local response = parsed.As(); + Local id_v; + if (!response->Get(context, FIXED_ONE_BYTE_STRING(isolate, "id")) + .ToLocal(&id_v) || + !id_v->IsUint32()) { + Utf8Value str(isolate, message_str); + fprintf( + stderr, "Cannot retrieve id from the response message:\n%s\n", *str); + return; + } + uint32_t id = id_v.As()->Value(); + + if (!connection_->HasProfileId(id)) { + Utf8Value str(isolate, message_str); + Debug(env, DebugCategory::INSPECTOR_PROFILER, "%s\n", *str); + return; + } else { + Debug(env, + DebugCategory::INSPECTOR_PROFILER, + "Writing profile response (id = %" PRIu64 ")\n", + static_cast(id)); + } + + // Get message.result from the response. + Local result_v; + if (!response->Get(context, FIXED_ONE_BYTE_STRING(isolate, "result")) + .ToLocal(&result_v)) { + fprintf(stderr, "Failed to get 'result' from %s profile response\n", type); return; } - connection_->WriteProfile(message_str); + if (!result_v->IsObject()) { + fprintf( + stderr, "'result' from %s profile response is not an object\n", type); + return; + } + + connection_->WriteProfile(result_v.As()); + connection_->RemoveProfileId(id); } static bool EnsureDirectory(const std::string& directory, const char* type) { @@ -138,45 +183,9 @@ std::string V8CoverageConnection::GetFilename() const { return filename; } -static MaybeLocal ParseProfile(Environment* env, - Local message, - const char* type) { - Local context = env->context(); - Isolate* isolate = env->isolate(); - - // Get message.result from the response - Local parsed; - if (!v8::JSON::Parse(context, message).ToLocal(&parsed) || - !parsed->IsObject()) { - fprintf(stderr, "Failed to parse %s profile result as JSON object\n", type); - return MaybeLocal(); - } - - Local result_v; - if (!parsed.As() - ->Get(context, FIXED_ONE_BYTE_STRING(isolate, "result")) - .ToLocal(&result_v)) { - fprintf(stderr, "Failed to get 'result' from %s profile message\n", type); - return MaybeLocal(); - } - - if (!result_v->IsObject()) { - fprintf( - stderr, "'result' from %s profile message is not an object\n", type); - return MaybeLocal(); - } - - return result_v.As(); -} - -void V8ProfilerConnection::WriteProfile(Local message) { +void V8ProfilerConnection::WriteProfile(Local result) { Local context = env_->context(); - // Get message.result from the response. - Local result; - if (!ParseProfile(env_, message, type()).ToLocal(&result)) { - return; - } // Generate the profile output from the subclass. Local profile; if (!GetProfile(result).ToLocal(&profile)) { @@ -203,7 +212,7 @@ void V8ProfilerConnection::WriteProfile(Local message) { WriteResult(env_, path.c_str(), result_s); } -void V8CoverageConnection::WriteProfile(Local message) { +void V8CoverageConnection::WriteProfile(Local result) { Isolate* isolate = env_->isolate(); Local context = env_->context(); HandleScope handle_scope(isolate); @@ -219,11 +228,6 @@ void V8CoverageConnection::WriteProfile(Local message) { return; } - // Get message.result from the response. - Local result; - if (!ParseProfile(env_, message, type()).ToLocal(&result)) { - return; - } // Generate the profile output from the subclass. Local profile; if (!GetProfile(result).ToLocal(&profile)) { @@ -287,10 +291,23 @@ void V8CoverageConnection::Start() { R"({ "callCount": true, "detailed": true })"); } +void V8CoverageConnection::TakeCoverage() { + DispatchMessage("Profiler.takePreciseCoverage", nullptr, true); +} + +void V8CoverageConnection::StopCoverage() { + DispatchMessage("Profiler.stopPreciseCoverage"); +} + void V8CoverageConnection::End() { - CHECK_EQ(ending_, false); + Debug(env_, + DebugCategory::INSPECTOR_PROFILER, + "V8CoverageConnection::End(), ending = %d\n", ending_); + if (ending_) { + return; + } ending_ = true; - DispatchMessage("Profiler.takePreciseCoverage"); + TakeCoverage(); } std::string V8CpuProfilerConnection::GetDirectory() const { @@ -327,9 +344,14 @@ void V8CpuProfilerConnection::Start() { } void V8CpuProfilerConnection::End() { - CHECK_EQ(ending_, false); + Debug(env_, + DebugCategory::INSPECTOR_PROFILER, + "V8CpuProfilerConnection::End(), ending = %d\n", ending_); + if (ending_) { + return; + } ending_ = true; - DispatchMessage("Profiler.stop"); + DispatchMessage("Profiler.stop", nullptr, true); } std::string V8HeapProfilerConnection::GetDirectory() const { @@ -365,51 +387,37 @@ void V8HeapProfilerConnection::Start() { } void V8HeapProfilerConnection::End() { - CHECK_EQ(ending_, false); + Debug(env_, + DebugCategory::INSPECTOR_PROFILER, + "V8HeapProfilerConnection::End(), ending = %d\n", ending_); + if (ending_) { + return; + } ending_ = true; - DispatchMessage("HeapProfiler.stopSampling"); + DispatchMessage("HeapProfiler.stopSampling", nullptr, true); } // For now, we only support coverage profiling, but we may add more // in the future. static void EndStartedProfilers(Environment* env) { + // TODO(joyeechueng): merge these connections and use one session per env. Debug(env, DebugCategory::INSPECTOR_PROFILER, "EndStartedProfilers\n"); V8ProfilerConnection* connection = env->cpu_profiler_connection(); - if (connection != nullptr && !connection->ending()) { - Debug(env, DebugCategory::INSPECTOR_PROFILER, "Ending cpu profiling\n"); + if (connection != nullptr) { connection->End(); } connection = env->heap_profiler_connection(); - if (connection != nullptr && !connection->ending()) { - Debug(env, DebugCategory::INSPECTOR_PROFILER, "Ending heap profiling\n"); + if (connection != nullptr) { connection->End(); } connection = env->coverage_connection(); - if (connection != nullptr && !connection->ending()) { - Debug( - env, DebugCategory::INSPECTOR_PROFILER, "Ending coverage collection\n"); + if (connection != nullptr) { connection->End(); } } -std::string GetCwd(Environment* env) { - char cwd[PATH_MAX_BYTES]; - size_t size = PATH_MAX_BYTES; - const int err = uv_cwd(cwd, &size); - - if (err == 0) { - CHECK_GT(size, 0); - return cwd; - } - - // This can fail if the cwd is deleted. In that case, fall back to - // exec_path. - const std::string& exec_path = env->exec_path(); - return exec_path.substr(0, exec_path.find_last_of(kPathSeparator)); -} - void StartProfilers(Environment* env) { AtExit(env, [](void* env) { EndStartedProfilers(static_cast(env)); @@ -427,7 +435,7 @@ void StartProfilers(Environment* env) { if (env->options()->cpu_prof) { const std::string& dir = env->options()->cpu_prof_dir; env->set_cpu_prof_interval(env->options()->cpu_prof_interval); - env->set_cpu_prof_dir(dir.empty() ? GetCwd(env) : dir); + env->set_cpu_prof_dir(dir.empty() ? env->GetCwd() : dir); if (env->options()->cpu_prof_name.empty()) { DiagnosticFilename filename(env, "CPU", "cpuprofile"); env->set_cpu_prof_name(*filename); @@ -442,7 +450,7 @@ void StartProfilers(Environment* env) { if (env->options()->heap_prof) { const std::string& dir = env->options()->heap_prof_dir; env->set_heap_prof_interval(env->options()->heap_prof_interval); - env->set_heap_prof_dir(dir.empty() ? GetCwd(env) : dir); + env->set_heap_prof_dir(dir.empty() ? env->GetCwd() : dir); if (env->options()->heap_prof_name.empty()) { DiagnosticFilename filename(env, "Heap", "heapprofile"); env->set_heap_prof_name(*filename); @@ -469,6 +477,37 @@ static void SetSourceMapCacheGetter(const FunctionCallbackInfo& args) { env->set_source_map_cache_getter(args[0].As()); } +static void TakeCoverage(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + V8CoverageConnection* connection = env->coverage_connection(); + + Debug( + env, + DebugCategory::INSPECTOR_PROFILER, + "TakeCoverage, connection %s nullptr\n", + connection == nullptr ? "==" : "!="); + + if (connection != nullptr) { + Debug(env, DebugCategory::INSPECTOR_PROFILER, "taking coverage\n"); + connection->TakeCoverage(); + } +} + +static void StopCoverage(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + V8CoverageConnection* connection = env->coverage_connection(); + + Debug(env, + DebugCategory::INSPECTOR_PROFILER, + "StopCoverage, connection %s nullptr\n", + connection == nullptr ? "==" : "!="); + + if (connection != nullptr) { + Debug(env, DebugCategory::INSPECTOR_PROFILER, "Stopping coverage\n"); + connection->StopCoverage(); + } +} + static void Initialize(Local target, Local unused, Local context, @@ -476,6 +515,8 @@ static void Initialize(Local target, Environment* env = Environment::GetCurrent(context); env->SetMethod(target, "setCoverageDirectory", SetCoverageDirectory); env->SetMethod(target, "setSourceMapCacheGetter", SetSourceMapCacheGetter); + env->SetMethod(target, "takeCoverage", TakeCoverage); + env->SetMethod(target, "stopCoverage", StopCoverage); } } // namespace profiler diff --git a/src/inspector_profiler.h b/src/inspector_profiler.h index 187bc0d1c49a16..be74153b0c37ac 100644 --- a/src/inspector_profiler.h +++ b/src/inspector_profiler.h @@ -7,6 +7,7 @@ #error("This header can only be used when inspector is enabled") #endif +#include #include "inspector_agent.h" namespace node { @@ -39,7 +40,9 @@ class V8ProfilerConnection { // The optional `params` should be formatted in JSON. // The strings should be in one byte characters - which is enough for // the commands we use here. - size_t DispatchMessage(const char* method, const char* params = nullptr); + uint32_t DispatchMessage(const char* method, + const char* params = nullptr, + bool is_profile_request = false); // Use DispatchMessage() to dispatch necessary inspector messages // to start and end the profiling. @@ -58,12 +61,19 @@ class V8ProfilerConnection { // which will be then written as a JSON. virtual v8::MaybeLocal GetProfile( v8::Local result) = 0; - virtual void WriteProfile(v8::Local message); + virtual void WriteProfile(v8::Local result); + + bool HasProfileId(uint32_t id) const { + return profile_ids_.find(id) != profile_ids_.end(); + } + + void RemoveProfileId(uint32_t id) { profile_ids_.erase(id); } private: - size_t next_id() { return id_++; } + uint32_t next_id() { return id_++; } std::unique_ptr session_; - size_t id_ = 1; + uint32_t id_ = 1; + std::unordered_set profile_ids_; protected: Environment* env_ = nullptr; @@ -82,8 +92,10 @@ class V8CoverageConnection : public V8ProfilerConnection { std::string GetDirectory() const override; std::string GetFilename() const override; v8::MaybeLocal GetProfile(v8::Local result) override; - void WriteProfile(v8::Local message) override; + void WriteProfile(v8::Local result) override; void WriteSourceMapCache(); + void TakeCoverage(); + void StopCoverage(); private: std::unique_ptr session_; diff --git a/src/inspector_socket_server.cc b/src/inspector_socket_server.cc index 29e0c128026ed0..299664da9a1693 100644 --- a/src/inspector_socket_server.cc +++ b/src/inspector_socket_server.cc @@ -234,6 +234,7 @@ void PrintDebuggerReadyMessage( const std::string& host, const std::vector& server_sockets, const std::vector& ids, + const char* verb, bool publish_uid_stderr, FILE* out) { if (!publish_uid_stderr || out == nullptr) { @@ -241,7 +242,8 @@ void PrintDebuggerReadyMessage( } for (const auto& server_socket : server_sockets) { for (const std::string& id : ids) { - fprintf(out, "Debugger listening on %s\n", + fprintf(out, "Debugger %s on %s\n", + verb, FormatWsAddress(host, server_socket->port(), id, true).c_str()); } } @@ -300,6 +302,7 @@ void InspectorSocketServer::SessionTerminated(int session_id) { PrintDebuggerReadyMessage(host_, server_sockets_, delegate_->GetTargetIds(), + "ending", inspect_publish_uid_.console, out_); } @@ -425,6 +428,7 @@ bool InspectorSocketServer::Start() { PrintDebuggerReadyMessage(host_, server_sockets_, delegate_->GetTargetIds(), + "listening", inspect_publish_uid_.console, out_); return true; diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 28c4af857e5354..e71c2222232e1b 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -188,296 +188,6 @@ inline static napi_status ConcludeDeferred(napi_env env, return GET_RETURN_STATUS(env); } -// Wrapper around v8impl::Persistent that implements reference counting. -class RefBase : protected Finalizer, RefTracker { - protected: - RefBase(napi_env env, - uint32_t initial_refcount, - bool delete_self, - napi_finalize finalize_callback, - void* finalize_data, - void* finalize_hint) - : Finalizer(env, finalize_callback, finalize_data, finalize_hint), - _refcount(initial_refcount), - _delete_self(delete_self) { - Link(finalize_callback == nullptr - ? &env->reflist - : &env->finalizing_reflist); - } - - public: - static RefBase* New(napi_env env, - uint32_t initial_refcount, - bool delete_self, - napi_finalize finalize_callback, - void* finalize_data, - void* finalize_hint) { - return new RefBase(env, - initial_refcount, - delete_self, - finalize_callback, - finalize_data, - finalize_hint); - } - - virtual ~RefBase() { Unlink(); } - - inline void* Data() { - return _finalize_data; - } - - // Delete is called in 2 ways. Either from the finalizer or - // from one of Unwrap or napi_delete_reference. - // - // When it is called from Unwrap or napi_delete_reference we only - // want to do the delete if the finalizer has already run or - // cannot have been queued to run (ie the reference count is > 0), - // otherwise we may crash when the finalizer does run. - // If the finalizer may have been queued and has not already run - // delay the delete until the finalizer runs by not doing the delete - // and setting _delete_self to true so that the finalizer will - // delete it when it runs. - // - // The second way this is called is from - // the finalizer and _delete_self is set. In this case we - // know we need to do the deletion so just do it. - static inline void Delete(RefBase* reference) { - if ((reference->RefCount() != 0) || - (reference->_delete_self) || - (reference->_finalize_ran)) { - delete reference; - } else { - // defer until finalizer runs as - // it may already be queued - reference->_delete_self = true; - } - } - - inline uint32_t Ref() { - return ++_refcount; - } - - inline uint32_t Unref() { - if (_refcount == 0) { - return 0; - } - return --_refcount; - } - - inline uint32_t RefCount() { - return _refcount; - } - - protected: - inline void Finalize(bool is_env_teardown = false) override { - // In addition to being called during environment teardown, this method is - // also the entry point for the garbage collector. During environment - // teardown we have to remove the garbage collector's reference to this - // method so that, if, as part of the user's callback, JS gets executed, - // resulting in a garbage collection pass, this method is not re-entered as - // part of that pass, because that'll cause a double free (as seen in - // https://github.com/nodejs/node/issues/37236). - // - // Since this class does not have access to the V8 persistent reference, - // this method is overridden in the `Reference` class below. Therein the - // weak callback is removed, ensuring that the garbage collector does not - // re-enter this method, and the method chains up to continue the process of - // environment-teardown-induced finalization. - - // During environment teardown we have to convert a strong reference to - // a weak reference to force the deferring behavior if the user's finalizer - // happens to delete this reference so that the code in this function that - // follows the call to the user's finalizer may safely access variables from - // this instance. - if (is_env_teardown && RefCount() > 0) _refcount = 0; - - if (_finalize_callback != nullptr) { - // This ensures that we never call the finalizer twice. - napi_finalize fini = _finalize_callback; - _finalize_callback = nullptr; - _env->CallFinalizer(fini, _finalize_data, _finalize_hint); - } - - // this is safe because if a request to delete the reference - // is made in the finalize_callback it will defer deletion - // to this block and set _delete_self to true - if (_delete_self || is_env_teardown) { - Delete(this); - } else { - _finalize_ran = true; - } - } - - private: - uint32_t _refcount; - bool _delete_self; -}; - -class Reference : public RefBase { - using SecondPassCallParameterRef = Reference*; - - protected: - template - Reference(napi_env env, v8::Local value, Args&&... args) - : RefBase(env, std::forward(args)...), - _persistent(env->isolate, value), - _secondPassParameter(new SecondPassCallParameterRef(this)), - _secondPassScheduled(false) { - if (RefCount() == 0) { - SetWeak(); - } - } - - public: - static inline Reference* New(napi_env env, - v8::Local value, - uint32_t initial_refcount, - bool delete_self, - napi_finalize finalize_callback = nullptr, - void* finalize_data = nullptr, - void* finalize_hint = nullptr) { - return new Reference(env, - value, - initial_refcount, - delete_self, - finalize_callback, - finalize_data, - finalize_hint); - } - - virtual ~Reference() { - // If the second pass callback is scheduled, it will delete the - // parameter passed to it, otherwise it will never be scheduled - // and we need to delete it here. - if (!_secondPassScheduled) { - delete _secondPassParameter; - } - } - - inline uint32_t Ref() { - uint32_t refcount = RefBase::Ref(); - if (refcount == 1) { - ClearWeak(); - } - return refcount; - } - - inline uint32_t Unref() { - uint32_t old_refcount = RefCount(); - uint32_t refcount = RefBase::Unref(); - if (old_refcount == 1 && refcount == 0) { - SetWeak(); - } - return refcount; - } - - inline v8::Local Get() { - if (_persistent.IsEmpty()) { - return v8::Local(); - } else { - return v8::Local::New(_env->isolate, _persistent); - } - } - - protected: - inline void Finalize(bool is_env_teardown = false) override { - if (is_env_teardown) env_teardown_finalize_started_ = true; - if (!is_env_teardown && env_teardown_finalize_started_) return; - - // During env teardown, `~napi_env()` alone is responsible for finalizing. - // Thus, we don't want any stray gc passes to trigger a second call to - // `RefBase::Finalize()`. ClearWeak will ensure that even if the - // gc is in progress no Finalization will be run for this Reference - // by the gc. - if (is_env_teardown) { - ClearWeak(); - } - - // Chain up to perform the rest of the finalization. - RefBase::Finalize(is_env_teardown); - } - - private: - // ClearWeak is marking the Reference so that the gc should not - // collect it, but it is possible that a second pass callback - // may have been scheduled already if we are in shutdown. We clear - // the secondPassParameter so that even if it has been - // secheduled no Finalization will be run. - inline void ClearWeak() { - if (!_persistent.IsEmpty()) { - _persistent.ClearWeak(); - } - if (_secondPassParameter != nullptr) { - *_secondPassParameter = nullptr; - } - } - - // Mark the reference as weak and eligible for collection - // by the gc. - inline void SetWeak() { - if (_secondPassParameter == nullptr) { - // This means that the Reference has already been processed - // by the second pass callback, so its already been Finalized, do - // nothing - return; - } - _persistent.SetWeak( - _secondPassParameter, FinalizeCallback, - v8::WeakCallbackType::kParameter); - *_secondPassParameter = this; - } - - // The N-API finalizer callback may make calls into the engine. V8's heap is - // not in a consistent state during the weak callback, and therefore it does - // not support calls back into it. However, it provides a mechanism for adding - // a finalizer which may make calls back into the engine by allowing us to - // attach such a second-pass finalizer from the first pass finalizer. Thus, - // we do that here to ensure that the N-API finalizer callback is free to call - // into the engine. - static void FinalizeCallback( - const v8::WeakCallbackInfo& data) { - SecondPassCallParameterRef* parameter = data.GetParameter(); - Reference* reference = *parameter; - if (reference == nullptr) { - return; - } - - // The reference must be reset during the first pass. - reference->_persistent.Reset(); - // Mark the parameter not delete-able until the second pass callback is - // invoked. - reference->_secondPassScheduled = true; - data.SetSecondPassCallback(SecondPassCallback); - } - - // Second pass callbacks are scheduled with platform tasks. At env teardown, - // the tasks may have already be scheduled and we are unable to cancel the - // second pass callback task. We have to make sure that parameter is kept - // alive until the second pass callback is been invoked. In order to do - // this and still allow our code to Finalize/delete the Reference during - // shutdown we have to use a separately allocated parameter instead - // of a parameter within the Reference object itself. This is what - // is stored in _secondPassParameter and it is allocated in the - // constructor for the Reference. - static void SecondPassCallback( - const v8::WeakCallbackInfo& data) { - SecondPassCallParameterRef* parameter = data.GetParameter(); - Reference* reference = *parameter; - delete parameter; - if (reference == nullptr) { - // the reference itself has already been deleted so nothing to do - return; - } - reference->_secondPassParameter = nullptr; - reference->Finalize(); - } - - bool env_teardown_finalize_started_ = false; - v8impl::Persistent _persistent; - SecondPassCallParameterRef* _secondPassParameter; - bool _secondPassScheduled; -}; - enum UnwrapAction { KeepWrap, RemoveWrap @@ -596,12 +306,16 @@ class CallbackWrapperBase : public CallbackWrapper { napi_env env = _bundle->env; napi_callback cb = _bundle->cb; - napi_value result; + napi_value result = nullptr; + bool exceptionOccurred = false; env->CallIntoModule([&](napi_env env) { result = cb(env, cbinfo_wrapper); + }, [&](napi_env env, v8::Local value) { + exceptionOccurred = true; + env->isolate->ThrowException(value); }); - if (result != nullptr) { + if (!exceptionOccurred && (result != nullptr)) { this->SetReturnValue(result); } } @@ -740,6 +454,270 @@ inline napi_status Wrap(napi_env env, } // end of anonymous namespace +// Wrapper around v8impl::Persistent that implements reference counting. +RefBase::RefBase(napi_env env, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) + : Finalizer(env, finalize_callback, finalize_data, finalize_hint), + _refcount(initial_refcount), + _delete_self(delete_self) { + Link(finalize_callback == nullptr ? &env->reflist : &env->finalizing_reflist); +} + +RefBase* RefBase::New(napi_env env, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) { + return new RefBase(env, + initial_refcount, + delete_self, + finalize_callback, + finalize_data, + finalize_hint); +} + +RefBase::~RefBase() { + Unlink(); +} + +void* RefBase::Data() { + return _finalize_data; +} + +// Delete is called in 2 ways. Either from the finalizer or +// from one of Unwrap or napi_delete_reference. +// +// When it is called from Unwrap or napi_delete_reference we only +// want to do the delete if the finalizer has already run or +// cannot have been queued to run (ie the reference count is > 0), +// otherwise we may crash when the finalizer does run. +// If the finalizer may have been queued and has not already run +// delay the delete until the finalizer runs by not doing the delete +// and setting _delete_self to true so that the finalizer will +// delete it when it runs. +// +// The second way this is called is from +// the finalizer and _delete_self is set. In this case we +// know we need to do the deletion so just do it. +void RefBase::Delete(RefBase* reference) { + if ((reference->RefCount() != 0) || (reference->_delete_self) || + (reference->_finalize_ran)) { + delete reference; + } else { + // defer until finalizer runs as + // it may already be queued + reference->_delete_self = true; + } +} + +uint32_t RefBase::Ref() { + return ++_refcount; +} + +uint32_t RefBase::Unref() { + if (_refcount == 0) { + return 0; + } + return --_refcount; +} + +uint32_t RefBase::RefCount() { + return _refcount; +} + +void RefBase::Finalize(bool is_env_teardown) { + // In addition to being called during environment teardown, this method is + // also the entry point for the garbage collector. During environment + // teardown we have to remove the garbage collector's reference to this + // method so that, if, as part of the user's callback, JS gets executed, + // resulting in a garbage collection pass, this method is not re-entered as + // part of that pass, because that'll cause a double free (as seen in + // https://github.com/nodejs/node/issues/37236). + // + // Since this class does not have access to the V8 persistent reference, + // this method is overridden in the `Reference` class below. Therein the + // weak callback is removed, ensuring that the garbage collector does not + // re-enter this method, and the method chains up to continue the process of + // environment-teardown-induced finalization. + + // During environment teardown we have to convert a strong reference to + // a weak reference to force the deferring behavior if the user's finalizer + // happens to delete this reference so that the code in this function that + // follows the call to the user's finalizer may safely access variables from + // this instance. + if (is_env_teardown && RefCount() > 0) _refcount = 0; + + if (_finalize_callback != nullptr) { + // This ensures that we never call the finalizer twice. + napi_finalize fini = _finalize_callback; + _finalize_callback = nullptr; + _env->CallFinalizer(fini, _finalize_data, _finalize_hint); + } + + // this is safe because if a request to delete the reference + // is made in the finalize_callback it will defer deletion + // to this block and set _delete_self to true + if (_delete_self || is_env_teardown) { + Delete(this); + } else { + _finalize_ran = true; + } +} + +template +Reference::Reference(napi_env env, v8::Local value, Args&&... args) + : RefBase(env, std::forward(args)...), + _persistent(env->isolate, value), + _secondPassParameter(new SecondPassCallParameterRef(this)), + _secondPassScheduled(false) { + if (RefCount() == 0) { + SetWeak(); + } +} + +Reference* Reference::New(napi_env env, + v8::Local value, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) { + return new Reference(env, + value, + initial_refcount, + delete_self, + finalize_callback, + finalize_data, + finalize_hint); +} + +Reference::~Reference() { + // If the second pass callback is scheduled, it will delete the + // parameter passed to it, otherwise it will never be scheduled + // and we need to delete it here. + if (!_secondPassScheduled) { + delete _secondPassParameter; + } +} + +uint32_t Reference::Ref() { + uint32_t refcount = RefBase::Ref(); + if (refcount == 1) { + ClearWeak(); + } + return refcount; +} + +uint32_t Reference::Unref() { + uint32_t old_refcount = RefCount(); + uint32_t refcount = RefBase::Unref(); + if (old_refcount == 1 && refcount == 0) { + SetWeak(); + } + return refcount; +} + +v8::Local Reference::Get() { + if (_persistent.IsEmpty()) { + return v8::Local(); + } else { + return v8::Local::New(_env->isolate, _persistent); + } +} + +void Reference::Finalize(bool is_env_teardown) { + // During env teardown, `~napi_env()` alone is responsible for finalizing. + // Thus, we don't want any stray gc passes to trigger a second call to + // `RefBase::Finalize()`. ClearWeak will ensure that even if the + // gc is in progress no Finalization will be run for this Reference + // by the gc. + if (is_env_teardown) { + ClearWeak(); + } + + // Chain up to perform the rest of the finalization. + RefBase::Finalize(is_env_teardown); +} + +// ClearWeak is marking the Reference so that the gc should not +// collect it, but it is possible that a second pass callback +// may have been scheduled already if we are in shutdown. We clear +// the secondPassParameter so that even if it has been +// scheduled no Finalization will be run. +void Reference::ClearWeak() { + if (!_persistent.IsEmpty()) { + _persistent.ClearWeak(); + } + if (_secondPassParameter != nullptr) { + *_secondPassParameter = nullptr; + } +} + +// Mark the reference as weak and eligible for collection +// by the gc. +void Reference::SetWeak() { + if (_secondPassParameter == nullptr) { + // This means that the Reference has already been processed + // by the second pass callback, so its already been Finalized, do + // nothing + return; + } + _persistent.SetWeak( + _secondPassParameter, FinalizeCallback, v8::WeakCallbackType::kParameter); + *_secondPassParameter = this; +} + +// The N-API finalizer callback may make calls into the engine. V8's heap is +// not in a consistent state during the weak callback, and therefore it does +// not support calls back into it. However, it provides a mechanism for adding +// a finalizer which may make calls back into the engine by allowing us to +// attach such a second-pass finalizer from the first pass finalizer. Thus, +// we do that here to ensure that the N-API finalizer callback is free to call +// into the engine. +void Reference::FinalizeCallback( + const v8::WeakCallbackInfo& data) { + SecondPassCallParameterRef* parameter = data.GetParameter(); + Reference* reference = *parameter; + if (reference == nullptr) { + return; + } + + // The reference must be reset during the first pass. + reference->_persistent.Reset(); + // Mark the parameter not delete-able until the second pass callback is + // invoked. + reference->_secondPassScheduled = true; + + data.SetSecondPassCallback(SecondPassCallback); +} + +// Second pass callbacks are scheduled with platform tasks. At env teardown, +// the tasks may have already be scheduled and we are unable to cancel the +// second pass callback task. We have to make sure that parameter is kept +// alive until the second pass callback is been invoked. In order to do +// this and still allow our code to Finalize/delete the Reference during +// shutdown we have to use a separately allocated parameter instead +// of a parameter within the Reference object itself. This is what +// is stored in _secondPassParameter and it is allocated in the +// constructor for the Reference. +void Reference::SecondPassCallback( + const v8::WeakCallbackInfo& data) { + SecondPassCallParameterRef* parameter = data.GetParameter(); + Reference* reference = *parameter; + delete parameter; + if (reference == nullptr) { + // the reference itself has already been deleted so nothing to do + return; + } + reference->_secondPassParameter = nullptr; + reference->Finalize(); +} + } // end of namespace v8impl // Warning: Keep in-sync with napi_status enum @@ -2662,7 +2640,7 @@ napi_status napi_new_instance(napi_env env, auto maybe = ctor->NewInstance(context, argc, reinterpret_cast*>(const_cast(argv))); - CHECK_MAYBE_EMPTY(env, maybe, napi_generic_failure); + CHECK_MAYBE_EMPTY(env, maybe, napi_pending_exception); *result = v8impl::JsValueFromV8LocalValue(maybe.ToLocalChecked()); return GET_RETURN_STATUS(env); diff --git a/src/js_native_api_v8.h b/src/js_native_api_v8.h index f619248a84326a..91c2eeb98989ca 100644 --- a/src/js_native_api_v8.h +++ b/src/js_native_api_v8.h @@ -366,6 +366,80 @@ class TryCatch : public v8::TryCatch { napi_env _env; }; +// Wrapper around v8impl::Persistent that implements reference counting. +class RefBase : protected Finalizer, RefTracker { + protected: + RefBase(napi_env env, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint); + + public: + static RefBase* New(napi_env env, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint); + + static inline void Delete(RefBase* reference); + + virtual ~RefBase(); + void* Data(); + uint32_t Ref(); + uint32_t Unref(); + uint32_t RefCount(); + + protected: + void Finalize(bool is_env_teardown = false) override; + + private: + uint32_t _refcount; + bool _delete_self; +}; + +class Reference : public RefBase { + using SecondPassCallParameterRef = Reference*; + + protected: + template + Reference(napi_env env, v8::Local value, Args&&... args); + + public: + static Reference* New(napi_env env, + v8::Local value, + uint32_t initial_refcount, + bool delete_self, + napi_finalize finalize_callback = nullptr, + void* finalize_data = nullptr, + void* finalize_hint = nullptr); + + virtual ~Reference(); + uint32_t Ref(); + uint32_t Unref(); + v8::Local Get(); + + protected: + void Finalize(bool is_env_teardown = false) override; + + private: + void ClearWeak(); + void SetWeak(); + + static void FinalizeCallback( + const v8::WeakCallbackInfo& data); + static void SecondPassCallback( + const v8::WeakCallbackInfo& data); + + v8impl::Persistent _persistent; + SecondPassCallParameterRef* _secondPassParameter; + bool _secondPassScheduled; + + FRIEND_TEST(JsNativeApiV8Test, Reference); +}; + } // end of namespace v8impl #define STATUS_CALL(call) \ diff --git a/src/js_native_api_v8_internals.h b/src/js_native_api_v8_internals.h index ddd219818cdfa9..8428390ef1eaf3 100644 --- a/src/js_native_api_v8_internals.h +++ b/src/js_native_api_v8_internals.h @@ -16,6 +16,7 @@ #include "node_version.h" #include "env.h" #include "node_internals.h" +#include "gtest/gtest_prod.h" #define NAPI_ARRAYSIZE(array) \ node::arraysize((array)) diff --git a/src/js_stream.cc b/src/js_stream.cc index e4da0ce747e3a0..399e073efba697 100644 --- a/src/js_stream.cc +++ b/src/js_stream.cc @@ -19,7 +19,6 @@ using v8::HandleScope; using v8::Int32; using v8::Local; using v8::Object; -using v8::String; using v8::Value; @@ -200,9 +199,6 @@ void JSStream::Initialize(Local target, Environment* env = Environment::GetCurrent(context); Local t = env->NewFunctionTemplate(New); - Local jsStreamString = - FIXED_ONE_BYTE_STRING(env->isolate(), "JSStream"); - t->SetClassName(jsStreamString); t->InstanceTemplate() ->SetInternalFieldCount(StreamBase::kInternalFieldCount); t->Inherit(AsyncWrap::GetConstructorTemplate(env)); @@ -213,9 +209,7 @@ void JSStream::Initialize(Local target, env->SetProtoMethod(t, "emitEOF", EmitEOF); StreamBase::AddMethods(env, t); - target->Set(env->context(), - jsStreamString, - t->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "JSStream", t); } } // namespace node diff --git a/src/js_udp_wrap.cc b/src/js_udp_wrap.cc index c51683141186f0..6a9bda5cad1ecb 100644 --- a/src/js_udp_wrap.cc +++ b/src/js_udp_wrap.cc @@ -16,7 +16,6 @@ using v8::HandleScope; using v8::Int32; using v8::Local; using v8::Object; -using v8::String; using v8::Value; // JSUDPWrap is a testing utility used by test/common/udppair.js @@ -195,9 +194,6 @@ void JSUDPWrap::Initialize(Local target, Environment* env = Environment::GetCurrent(context); Local t = env->NewFunctionTemplate(New); - Local js_udp_wrap_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "JSUDPWrap"); - t->SetClassName(js_udp_wrap_string); t->InstanceTemplate() ->SetInternalFieldCount(UDPWrapBase::kUDPWrapBaseField + 1); t->Inherit(AsyncWrap::GetConstructorTemplate(env)); @@ -207,9 +203,7 @@ void JSUDPWrap::Initialize(Local target, env->SetProtoMethod(t, "onSendDone", OnSendDone); env->SetProtoMethod(t, "onAfterBind", OnAfterBind); - target->Set(env->context(), - js_udp_wrap_string, - t->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "JSUDPWrap", t); } diff --git a/src/module_wrap.cc b/src/module_wrap.cc index 1da35f9f2fdaa3..b80e23327e818e 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -733,10 +733,8 @@ void ModuleWrap::Initialize(Local target, Local context, void* priv) { Environment* env = Environment::GetCurrent(context); - Isolate* isolate = env->isolate(); Local tpl = env->NewFunctionTemplate(New); - tpl->SetClassName(FIXED_ONE_BYTE_STRING(isolate, "ModuleWrap")); tpl->InstanceTemplate()->SetInternalFieldCount( ModuleWrap::kInternalFieldCount); tpl->Inherit(BaseObject::GetConstructorTemplate(env)); @@ -752,8 +750,8 @@ void ModuleWrap::Initialize(Local target, env->SetProtoMethodNoSideEffect(tpl, "getStaticDependencySpecifiers", GetStaticDependencySpecifiers); - target->Set(env->context(), FIXED_ONE_BYTE_STRING(isolate, "ModuleWrap"), - tpl->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "ModuleWrap", tpl); + env->SetMethod(target, "setImportModuleDynamicallyCallback", SetImportModuleDynamicallyCallback); diff --git a/src/node.cc b/src/node.cc index b3823235def9bf..e0e74d83c3010d 100644 --- a/src/node.cc +++ b/src/node.cc @@ -26,6 +26,7 @@ #include "debug_utils-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" +#include "histogram-inl.h" #include "node_binding.h" #include "node_errors.h" #include "node_internals.h" @@ -267,6 +268,10 @@ static void AtomicsWaitCallback(Isolate::AtomicsWaitEvent event, void Environment::InitializeDiagnostics() { isolate_->GetHeapProfiler()->AddBuildEmbedderGraphCallback( Environment::BuildEmbedderGraph, this); + if (options_->heap_snapshot_near_heap_limit > 0) { + isolate_->AddNearHeapLimitCallback(Environment::NearHeapLimitCallback, + this); + } if (options_->trace_uncaught) isolate_->SetCaptureStackTraceForUncaughtExceptions(true); if (options_->trace_atomics_wait) { @@ -1077,9 +1082,9 @@ int Start(int argc, char** argv) { const std::vector* indexes = nullptr; std::vector external_references; - bool force_no_snapshot = - per_process::cli_options->per_isolate->no_node_snapshot; - if (!force_no_snapshot) { + bool use_no_snapshot = + per_process::cli_options->per_isolate->node_snapshot; + if (use_no_snapshot) { v8::StartupData* blob = NodeMainInstance::GetEmbeddedSnapshotBlob(); if (blob != nullptr) { // TODO(joyeecheung): collect external references and set it in diff --git a/src/node.h b/src/node.h index 38e0ef50f9b283..8d4ec2276b1990 100644 --- a/src/node.h +++ b/src/node.h @@ -336,7 +336,8 @@ class NODE_EXTERN MultiIsolatePlatform : public v8::Platform { enum IsolateSettingsFlags { MESSAGE_LISTENER_WITH_ERROR_LEVEL = 1 << 0, DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1, - SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK = 1 << 2 + SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK = 1 << 2, + SHOULD_NOT_SET_PREPARE_STACK_TRACE_CALLBACK = 1 << 3 }; struct IsolateSettings { @@ -423,7 +424,11 @@ enum Flags : uint64_t { kNoRegisterESMLoader = 1 << 3, // Set this flag to make Node.js track "raw" file descriptors, i.e. managed // by fs.open() and fs.close(), and close them during FreeEnvironment(). - kTrackUnmanagedFds = 1 << 4 + kTrackUnmanagedFds = 1 << 4, + // Set this flag to force hiding console windows when spawning child + // processes. This is usually used when embedding Node.js in GUI programs on + // Windows. + kHideConsoleWindows = 1 << 5 }; } // namespace EnvironmentFlags @@ -499,6 +504,8 @@ NODE_EXTERN void DefaultProcessExitHandler(Environment* env, int exit_code); // This may return nullptr if context is not associated with a Node instance. NODE_EXTERN Environment* GetCurrentEnvironment(v8::Local context); +NODE_EXTERN IsolateData* GetEnvironmentIsolateData(Environment* env); +NODE_EXTERN ArrayBufferAllocator* GetArrayBufferAllocator(IsolateData* data); NODE_EXTERN void OnFatalError(const char* location, const char* message); NODE_EXTERN void PromiseRejectCallback(v8::PromiseRejectMessage message); @@ -539,8 +546,19 @@ NODE_EXTERN void FreePlatform(MultiIsolatePlatform* platform); NODE_EXTERN v8::TracingController* GetTracingController(); NODE_EXTERN void SetTracingController(v8::TracingController* controller); -NODE_EXTERN void EmitBeforeExit(Environment* env); -NODE_EXTERN int EmitExit(Environment* env); +// Run `process.emit('beforeExit')` as it would usually happen when Node.js is +// run in standalone mode. +NODE_EXTERN v8::Maybe EmitProcessBeforeExit(Environment* env); +NODE_DEPRECATED("Use Maybe version (EmitProcessBeforeExit) instead", + NODE_EXTERN void EmitBeforeExit(Environment* env)); +// Run `process.emit('exit')` as it would usually happen when Node.js is run +// in standalone mode. The return value corresponds to the exit code. +NODE_EXTERN v8::Maybe EmitProcessExit(Environment* env); +NODE_DEPRECATED("Use Maybe version (EmitProcessExit) instead", + NODE_EXTERN int EmitExit(Environment* env)); + +// Runs hooks added through `AtExit()`. This is part of `FreeEnvironment()`, +// so calling it manually is typically not necessary. NODE_EXTERN void RunAtExit(Environment* env); // This may return nullptr if the current v8::Context is not associated @@ -650,7 +668,18 @@ inline void NODE_SET_PROTOTYPE_METHOD(v8::Local recv, #define NODE_SET_PROTOTYPE_METHOD node::NODE_SET_PROTOTYPE_METHOD // BINARY is a deprecated alias of LATIN1. -enum encoding {ASCII, UTF8, BASE64, UCS2, BINARY, HEX, BUFFER, LATIN1 = BINARY}; +// BASE64URL is not currently exposed to the JavaScript side. +enum encoding { + ASCII, + UTF8, + BASE64, + UCS2, + BINARY, + HEX, + BUFFER, + BASE64URL, + LATIN1 = BINARY +}; NODE_EXTERN enum encoding ParseEncoding( v8::Isolate* isolate, @@ -958,6 +987,9 @@ class NODE_EXTERN CallbackScope { CallbackScope(v8::Isolate* isolate, v8::Local resource, async_context asyncContext); + CallbackScope(Environment* env, + v8::Local resource, + async_context asyncContext); ~CallbackScope(); void operator=(const CallbackScope&) = delete; diff --git a/src/node_api.cc b/src/node_api.cc index de5727d0694ae9..b1b85073508672 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -4,6 +4,7 @@ #include "js_native_api_v8.h" #include "memory_tracker-inl.h" #include "node_api.h" +#include "node_api_internals.h" #include "node_binding.h" #include "node_buffer.h" #include "node_errors.h" @@ -15,46 +16,36 @@ #include #include -struct node_napi_env__ : public napi_env__ { - explicit node_napi_env__(v8::Local context): - napi_env__(context) { - CHECK_NOT_NULL(node_env()); - } - - inline node::Environment* node_env() const { - return node::Environment::GetCurrent(context()); - } +node_napi_env__::node_napi_env__(v8::Local context, + const std::string& module_filename) + : napi_env__(context), filename(module_filename) { + CHECK_NOT_NULL(node_env()); +} - bool can_call_into_js() const override { - return node_env()->can_call_into_js(); - } +bool node_napi_env__::can_call_into_js() const { + return node_env()->can_call_into_js(); +} - v8::Maybe mark_arraybuffer_as_untransferable( - v8::Local ab) const override { - return ab->SetPrivate( - context(), - node_env()->untransferable_object_private_symbol(), - v8::True(isolate)); - } +v8::Maybe node_napi_env__::mark_arraybuffer_as_untransferable( + v8::Local ab) const { + return ab->SetPrivate(context(), + node_env()->untransferable_object_private_symbol(), + v8::True(isolate)); +} - void CallFinalizer(napi_finalize cb, void* data, void* hint) override { - // 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 lamba is freed - EnvRefHolder liveEnv(static_cast(this)); - node_env()->SetImmediate([=, liveEnv = std::move(liveEnv)] - (node::Environment* node_env) { - napi_env env = liveEnv.env(); - v8::HandleScope handle_scope(env->isolate); - v8::Context::Scope context_scope(env->context()); - env->CallIntoModule([&](napi_env env) { - cb(env, data, hint); +void node_napi_env__::CallFinalizer(napi_finalize cb, void* data, void* hint) { + // 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 lamba is freed + EnvRefHolder liveEnv(static_cast(this)); + node_env()->SetImmediate( + [=, liveEnv = std::move(liveEnv)](node::Environment* node_env) { + napi_env env = liveEnv.env(); + v8::HandleScope handle_scope(env->isolate); + v8::Context::Scope context_scope(env->context()); + env->CallIntoModule([&](napi_env env) { cb(env, data, hint); }); }); - }); - } -}; - -typedef node_napi_env__* node_napi_env; +} namespace v8impl { @@ -93,10 +84,11 @@ class BufferFinalizer : private Finalizer { }; }; -static inline napi_env NewEnv(v8::Local context) { +static inline napi_env +NewEnv(v8::Local context, const std::string& module_filename) { node_napi_env result; - result = new node_napi_env__(context); + result = new node_napi_env__(context, module_filename); // TODO(addaleax): There was previously code that tried to delete the // napi_env when its v8::Context was garbage collected; // However, as long as N-API addons using this napi_env are in place, @@ -547,7 +539,7 @@ class AsyncContext { class CallbackScope : public node::CallbackScope { public: explicit CallbackScope(AsyncContext* async_context) - : node::CallbackScope(async_context->node_env()->isolate(), + : node::CallbackScope(async_context->node_env(), async_context->resource_.Get( async_context->node_env()->isolate()), async_context->async_context()) {} @@ -579,16 +571,35 @@ void napi_module_register_by_symbol(v8::Local exports, v8::Local module, v8::Local context, napi_addon_register_func init) { + node::Environment* node_env = node::Environment::GetCurrent(context); + std::string module_filename = ""; if (init == nullptr) { - node::Environment* node_env = node::Environment::GetCurrent(context); CHECK_NOT_NULL(node_env); node_env->ThrowError( "Module has no declared entry point."); return; } + // We set `env->filename` from `module.filename` here, but we could just as + // easily add a private property to `exports` in `process.dlopen`, which + // receives the file name from JS, and retrieve *that* here. Thus, we are not + // endorsing commonjs here by making use of `module.filename`. + v8::Local filename_js; + v8::Local modobj; + if (module->ToObject(context).ToLocal(&modobj) && + modobj->Get(context, node_env->filename_string()).ToLocal(&filename_js) && + filename_js->IsString()) { + node::Utf8Value filename(node_env->isolate(), filename_js); // Cast + + // Turn the absolute path into a URL. Currently the absolute path is always + // a file system path. + // TODO(gabrielschulhof): Pass the `filename` through unchanged if/when we + // receive it as a URL already. + module_filename = std::string("file://") + (*filename); + } + // Create a new napi_env for this specific module. - napi_env env = v8impl::NewEnv(context); + napi_env env = v8impl::NewEnv(context, module_filename); napi_value _exports; env->CallIntoModule([&](napi_env env) { @@ -1287,3 +1298,11 @@ 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) { + CHECK_ENV(env); + CHECK_ARG(env, result); + + *result = static_cast(env)->GetFilename(); + return napi_clear_last_error(env); +} diff --git a/src/node_api.h b/src/node_api.h index 7c2c84398cc5fe..1772c67c15afb2 100644 --- a/src/node_api.h +++ b/src/node_api.h @@ -263,6 +263,13 @@ NAPI_EXTERN napi_status napi_remove_async_cleanup_hook( #endif // NAPI_VERSION >= 8 +#ifdef NAPI_EXPERIMENTAL + +NAPI_EXTERN napi_status +node_api_get_module_file_name(napi_env env, const char** result); + +#endif // NAPI_EXPERIMENTAL + EXTERN_C_END #endif // SRC_NODE_API_H_ diff --git a/src/node_api_internals.h b/src/node_api_internals.h new file mode 100644 index 00000000000000..318ada38083435 --- /dev/null +++ b/src/node_api_internals.h @@ -0,0 +1,30 @@ +#ifndef SRC_NODE_API_INTERNALS_H_ +#define SRC_NODE_API_INTERNALS_H_ + +#include "v8.h" +#define NAPI_EXPERIMENTAL +#include "env-inl.h" +#include "js_native_api_v8.h" +#include "node_api.h" +#include "util-inl.h" + +struct node_napi_env__ : public napi_env__ { + node_napi_env__(v8::Local context, + const std::string& module_filename); + + 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; + + inline node::Environment* node_env() const { + return node::Environment::GetCurrent(context()); + } + inline const char* GetFilename() const { return filename.c_str(); } + + std::string filename; +}; + +using node_napi_env = node_napi_env__*; + +#endif // SRC_NODE_API_INTERNALS_H_ diff --git a/src/node_binding.cc b/src/node_binding.cc index 8665b2827583d3..8b34d601146579 100644 --- a/src/node_binding.cc +++ b/src/node_binding.cc @@ -5,6 +5,8 @@ #include "node_native_module_env.h" #include "util.h" +#include + #if HAVE_OPENSSL #define NODE_BUILTIN_OPENSSL_MODULES(V) V(crypto) V(tls_wrap) #else @@ -37,6 +39,7 @@ // __attribute__((constructor)) like mechanism in GCC. #define NODE_BUILTIN_STANDARD_MODULES(V) \ V(async_wrap) \ + V(block_list) \ V(buffer) \ V(cares_wrap) \ V(config) \ @@ -415,13 +418,13 @@ void DLOpen(const FunctionCallbackInfo& args) { CHECK_NULL(thread_local_modpending); if (args.Length() < 2) { - env->ThrowError("process.dlopen needs at least 2 arguments."); - return; + return THROW_ERR_MISSING_ARGS( + env, "process.dlopen needs at least 2 arguments"); } int32_t flags = DLib::kDefaultFlags; if (args.Length() > 2 && !args[2]->Int32Value(context).To(&flags)) { - return env->ThrowTypeError("flag argument must be an integer."); + return THROW_ERR_INVALID_ARG_TYPE(env, "flag argument must be an integer."); } Local module; @@ -447,15 +450,13 @@ void DLOpen(const FunctionCallbackInfo& args) { thread_local_modpending = nullptr; if (!is_opened) { - Local errmsg = - OneByteString(env->isolate(), dlib->errmsg_.c_str()); + std::string errmsg = dlib->errmsg_.c_str(); dlib->Close(); #ifdef _WIN32 // Windows needs to add the filename into the error message - errmsg = String::Concat( - env->isolate(), errmsg, args[1]->ToString(context).ToLocalChecked()); + errmsg += *filename; #endif // _WIN32 - env->isolate()->ThrowException(Exception::Error(errmsg)); + THROW_ERR_DLOPEN_FAILED(env, errmsg.c_str()); return false; } @@ -485,7 +486,7 @@ void DLOpen(const FunctionCallbackInfo& args) { sizeof(errmsg), "Module did not self-register: '%s'.", *filename); - env->ThrowError(errmsg); + THROW_ERR_DLOPEN_FAILED(env, errmsg); return false; } } @@ -516,7 +517,7 @@ void DLOpen(const FunctionCallbackInfo& args) { // NOTE: `mp` is allocated inside of the shared library's memory, calling // `dlclose` will deallocate it dlib->Close(); - env->ThrowError(errmsg); + THROW_ERR_DLOPEN_FAILED(env, errmsg); return false; } CHECK_EQ(mp->nm_flags & NM_F_BUILTIN, 0); @@ -529,7 +530,7 @@ void DLOpen(const FunctionCallbackInfo& args) { mp->nm_register_func(exports, module, mp->nm_priv); } else { dlib->Close(); - env->ThrowError("Module has no declared entry point."); + THROW_ERR_DLOPEN_FAILED(env, "Module has no declared entry point."); return false; } @@ -568,12 +569,6 @@ static Local InitModule(Environment* env, return exports; } -static void ThrowIfNoSuchModule(Environment* env, const char* module_v) { - char errmsg[1024]; - snprintf(errmsg, sizeof(errmsg), "No such module: %s", module_v); - env->ThrowError(errmsg); -} - void GetInternalBinding(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -602,7 +597,9 @@ void GetInternalBinding(const FunctionCallbackInfo& args) { env->isolate())) .FromJust()); } else { - return ThrowIfNoSuchModule(env, *module_v); + char errmsg[1024]; + snprintf(errmsg, sizeof(errmsg), "No such module: %s", *module_v); + return THROW_ERR_INVALID_MODULE(env, errmsg); } args.GetReturnValue().Set(exports); @@ -637,7 +634,7 @@ void GetLinkedBinding(const FunctionCallbackInfo& args) { sizeof(errmsg), "No such module was linked: %s", *module_name_v); - return env->ThrowError(errmsg); + return THROW_ERR_INVALID_MODULE(env, errmsg); } Local module = Object::New(env->isolate()); @@ -652,7 +649,9 @@ void GetLinkedBinding(const FunctionCallbackInfo& args) { } else if (mod->nm_register_func != nullptr) { mod->nm_register_func(exports, module, mod->nm_priv); } else { - return env->ThrowError("Linked module has no declared entry point."); + return THROW_ERR_INVALID_MODULE( + env, + "Linked moduled has no declared entry point."); } auto effective_exports = diff --git a/src/node_blob.cc b/src/node_blob.cc new file mode 100644 index 00000000000000..aaea61fb65357c --- /dev/null +++ b/src/node_blob.cc @@ -0,0 +1,324 @@ +#include "node_blob.h" +#include "async_wrap-inl.h" +#include "base_object-inl.h" +#include "env-inl.h" +#include "memory_tracker-inl.h" +#include "node_errors.h" +#include "threadpoolwork-inl.h" +#include "v8.h" + +#include + +namespace node { + +using v8::Array; +using v8::ArrayBuffer; +using v8::ArrayBufferView; +using v8::BackingStore; +using v8::Context; +using v8::EscapableHandleScope; +using v8::Function; +using v8::FunctionCallbackInfo; +using v8::FunctionTemplate; +using v8::HandleScope; +using v8::Local; +using v8::MaybeLocal; +using v8::Number; +using v8::Object; +using v8::Uint32; +using v8::Undefined; +using v8::Value; + +void Blob::Initialize(Environment* env, v8::Local target) { + env->SetMethod(target, "createBlob", New); + FixedSizeBlobCopyJob::Initialize(env, target); +} + +Local Blob::GetConstructorTemplate(Environment* env) { + Local tmpl = env->blob_constructor_template(); + if (tmpl.IsEmpty()) { + tmpl = FunctionTemplate::New(env->isolate()); + tmpl->InstanceTemplate()->SetInternalFieldCount( + BaseObject::kInternalFieldCount); + tmpl->Inherit(BaseObject::GetConstructorTemplate(env)); + tmpl->SetClassName( + FIXED_ONE_BYTE_STRING(env->isolate(), "Blob")); + env->SetProtoMethod(tmpl, "toArrayBuffer", ToArrayBuffer); + env->SetProtoMethod(tmpl, "slice", ToSlice); + env->set_blob_constructor_template(tmpl); + } + return tmpl; +} + +bool Blob::HasInstance(Environment* env, v8::Local object) { + return GetConstructorTemplate(env)->HasInstance(object); +} + +BaseObjectPtr Blob::Create( + Environment* env, + const std::vector store, + size_t length) { + + HandleScope scope(env->isolate()); + + Local ctor; + if (!GetConstructorTemplate(env)->GetFunction(env->context()).ToLocal(&ctor)) + return BaseObjectPtr(); + + Local obj; + if (!ctor->NewInstance(env->context()).ToLocal(&obj)) + return BaseObjectPtr(); + + return MakeBaseObject(env, obj, store, length); +} + +void Blob::New(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(args[0]->IsArray()); // sources + CHECK(args[1]->IsUint32()); // length + + std::vector entries; + + size_t length = args[1].As()->Value(); + size_t len = 0; + Local ary = args[0].As(); + for (size_t n = 0; n < ary->Length(); n++) { + Local entry; + if (!ary->Get(env->context(), n).ToLocal(&entry)) + return; + CHECK(entry->IsArrayBufferView() || Blob::HasInstance(env, entry)); + if (entry->IsArrayBufferView()) { + Local view = entry.As(); + CHECK_EQ(view->ByteOffset(), 0); + std::shared_ptr store = view->Buffer()->GetBackingStore(); + size_t byte_length = view->ByteLength(); + view->Buffer()->Detach(); // The Blob will own the backing store now. + entries.emplace_back(BlobEntry{std::move(store), byte_length, 0}); + len += byte_length; + } else { + Blob* blob; + ASSIGN_OR_RETURN_UNWRAP(&blob, entry); + auto source = blob->entries(); + entries.insert(entries.end(), source.begin(), source.end()); + len += blob->length(); + } + } + CHECK_EQ(length, len); + + BaseObjectPtr blob = Create(env, entries, length); + if (blob) + args.GetReturnValue().Set(blob->object()); +} + +void Blob::ToArrayBuffer(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Blob* blob; + ASSIGN_OR_RETURN_UNWRAP(&blob, args.Holder()); + Local ret; + if (blob->GetArrayBuffer(env).ToLocal(&ret)) + args.GetReturnValue().Set(ret); +} + +void Blob::ToSlice(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Blob* blob; + ASSIGN_OR_RETURN_UNWRAP(&blob, args.Holder()); + CHECK(args[0]->IsUint32()); + CHECK(args[1]->IsUint32()); + size_t start = args[0].As()->Value(); + size_t end = args[1].As()->Value(); + BaseObjectPtr slice = blob->Slice(env, start, end); + if (slice) + args.GetReturnValue().Set(slice->object()); +} + +void Blob::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackFieldWithSize("store", length_); +} + +MaybeLocal Blob::GetArrayBuffer(Environment* env) { + EscapableHandleScope scope(env->isolate()); + size_t len = length(); + std::shared_ptr store = + ArrayBuffer::NewBackingStore(env->isolate(), len); + if (len > 0) { + unsigned char* dest = static_cast(store->Data()); + size_t total = 0; + for (const auto& entry : entries()) { + unsigned char* src = static_cast(entry.store->Data()); + src += entry.offset; + memcpy(dest, src, entry.length); + dest += entry.length; + total += entry.length; + CHECK_LE(total, len); + } + } + + return scope.Escape(ArrayBuffer::New(env->isolate(), store)); +} + +BaseObjectPtr Blob::Slice(Environment* env, size_t start, size_t end) { + CHECK_LE(start, length()); + CHECK_LE(end, length()); + CHECK_LE(start, end); + + std::vector slices; + size_t total = end - start; + size_t remaining = total; + + if (total == 0) return Create(env, slices, 0); + + for (const auto& entry : entries()) { + if (start + entry.offset > entry.store->ByteLength()) { + start -= entry.length; + continue; + } + + size_t offset = entry.offset + start; + size_t len = std::min(remaining, entry.store->ByteLength() - offset); + slices.emplace_back(BlobEntry{entry.store, len, offset}); + + remaining -= len; + start = 0; + + if (remaining == 0) + break; + } + + return Create(env, slices, total); +} + +Blob::Blob( + Environment* env, + v8::Local obj, + const std::vector& store, + size_t length) + : BaseObject(env, obj), + store_(store), + length_(length) { + MakeWeak(); +} + +BaseObjectPtr +Blob::BlobTransferData::Deserialize( + Environment* env, + Local context, + std::unique_ptr self) { + if (context != env->context()) { + THROW_ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE(env); + return {}; + } + return Blob::Create(env, store_, length_); +} + +BaseObject::TransferMode Blob::GetTransferMode() const { + return BaseObject::TransferMode::kCloneable; +} + +std::unique_ptr Blob::CloneForMessaging() const { + return std::make_unique(store_, length_); +} + +FixedSizeBlobCopyJob::FixedSizeBlobCopyJob( + Environment* env, + Local object, + Blob* blob, + FixedSizeBlobCopyJob::Mode mode) + : AsyncWrap(env, object, AsyncWrap::PROVIDER_FIXEDSIZEBLOBCOPY), + ThreadPoolWork(env), + mode_(mode) { + if (mode == FixedSizeBlobCopyJob::Mode::SYNC) MakeWeak(); + source_ = blob->entries(); + length_ = blob->length(); +} + +void FixedSizeBlobCopyJob::AfterThreadPoolWork(int status) { + Environment* env = AsyncWrap::env(); + CHECK_EQ(mode_, Mode::ASYNC); + CHECK(status == 0 || status == UV_ECANCELED); + std::unique_ptr ptr(this); + HandleScope handle_scope(env->isolate()); + Context::Scope context_scope(env->context()); + Local args[2]; + + if (status == UV_ECANCELED) { + args[0] = Number::New(env->isolate(), status), + args[1] = Undefined(env->isolate()); + } else { + args[0] = Undefined(env->isolate()); + args[1] = ArrayBuffer::New(env->isolate(), destination_); + } + + ptr->MakeCallback(env->ondone_string(), arraysize(args), args); +} + +void FixedSizeBlobCopyJob::DoThreadPoolWork() { + unsigned char* dest = static_cast(destination_->Data()); + if (length_ > 0) { + size_t total = 0; + for (const auto& entry : source_) { + unsigned char* src = static_cast(entry.store->Data()); + src += entry.offset; + memcpy(dest, src, entry.length); + dest += entry.length; + total += entry.length; + CHECK_LE(total, length_); + } + } +} + +void FixedSizeBlobCopyJob::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackFieldWithSize("source", length_); + tracker->TrackFieldWithSize( + "destination", + destination_ ? destination_->ByteLength() : 0); +} + +void FixedSizeBlobCopyJob::Initialize(Environment* env, Local target) { + v8::Local job = env->NewFunctionTemplate(New); + job->Inherit(AsyncWrap::GetConstructorTemplate(env)); + job->InstanceTemplate()->SetInternalFieldCount( + AsyncWrap::kInternalFieldCount); + env->SetProtoMethod(job, "run", Run); + env->SetConstructorFunction(target, "FixedSizeBlobCopyJob", job); +} + +void FixedSizeBlobCopyJob::New(const FunctionCallbackInfo& args) { + static constexpr size_t kMaxSyncLength = 4096; + static constexpr size_t kMaxEntryCount = 4; + + Environment* env = Environment::GetCurrent(args); + CHECK(args.IsConstructCall()); + CHECK(args[0]->IsObject()); + CHECK(Blob::HasInstance(env, args[0])); + + Blob* blob; + ASSIGN_OR_RETURN_UNWRAP(&blob, args[0]); + + // This is a fairly arbitrary heuristic. We want to avoid deferring to + // the threadpool if the amount of data being copied is small and there + // aren't that many entries to copy. + FixedSizeBlobCopyJob::Mode mode = + (blob->length() < kMaxSyncLength && + blob->entries().size() < kMaxEntryCount) ? + FixedSizeBlobCopyJob::Mode::SYNC : + FixedSizeBlobCopyJob::Mode::ASYNC; + + new FixedSizeBlobCopyJob(env, args.This(), blob, mode); +} + +void FixedSizeBlobCopyJob::Run(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + FixedSizeBlobCopyJob* job; + ASSIGN_OR_RETURN_UNWRAP(&job, args.Holder()); + job->destination_ = + ArrayBuffer::NewBackingStore(env->isolate(), job->length_); + if (job->mode() == FixedSizeBlobCopyJob::Mode::ASYNC) + return job->ScheduleWork(); + + job->DoThreadPoolWork(); + args.GetReturnValue().Set( + ArrayBuffer::New(env->isolate(), job->destination_)); +} + +} // namespace node diff --git a/src/node_blob.h b/src/node_blob.h new file mode 100644 index 00000000000000..c54ed2f2920385 --- /dev/null +++ b/src/node_blob.h @@ -0,0 +1,133 @@ +#ifndef SRC_NODE_BLOB_H_ +#define SRC_NODE_BLOB_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include "async_wrap.h" +#include "base_object.h" +#include "env.h" +#include "memory_tracker.h" +#include "node_internals.h" +#include "node_worker.h" +#include "v8.h" + +#include + +namespace node { + +struct BlobEntry { + std::shared_ptr store; + size_t length; + size_t offset; +}; + +class Blob : public BaseObject { + public: + static void Initialize(Environment* env, v8::Local target); + + static void New(const v8::FunctionCallbackInfo& args); + static void ToArrayBuffer(const v8::FunctionCallbackInfo& args); + static void ToSlice(const v8::FunctionCallbackInfo& args); + + static v8::Local GetConstructorTemplate( + Environment* env); + + static BaseObjectPtr Create( + Environment* env, + const std::vector store, + size_t length); + + static bool HasInstance(Environment* env, v8::Local object); + + const std::vector entries() const { + return store_; + } + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(Blob) + SET_SELF_SIZE(Blob) + + // Copies the contents of the Blob into an ArrayBuffer. + v8::MaybeLocal GetArrayBuffer(Environment* env); + + BaseObjectPtr Slice(Environment* env, size_t start, size_t end); + + inline size_t length() const { return length_; } + + class BlobTransferData : public worker::TransferData { + public: + explicit BlobTransferData( + const std::vector& store, + size_t length) + : store_(store), + length_(length) {} + + BaseObjectPtr Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) override; + + SET_MEMORY_INFO_NAME(BlobTransferData) + SET_SELF_SIZE(BlobTransferData) + SET_NO_MEMORY_INFO() + + private: + std::vector store_; + size_t length_ = 0; + }; + + BaseObject::TransferMode GetTransferMode() const override; + std::unique_ptr CloneForMessaging() const override; + + Blob( + Environment* env, + v8::Local obj, + const std::vector& store, + size_t length); + + private: + std::vector store_; + size_t length_ = 0; +}; + +class FixedSizeBlobCopyJob : public AsyncWrap, public ThreadPoolWork { + public: + enum class Mode { + SYNC, + ASYNC + }; + + static void Initialize(Environment* env, v8::Local target); + static void New(const v8::FunctionCallbackInfo& args); + static void Run(const v8::FunctionCallbackInfo& args); + + bool IsNotIndicativeOfMemoryLeakAtExit() const override { + return true; + } + + void DoThreadPoolWork() override; + void AfterThreadPoolWork(int status) override; + + Mode mode() const { return mode_; } + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(FixedSizeBlobCopyJob) + SET_SELF_SIZE(FixedSizeBlobCopyJob) + + private: + FixedSizeBlobCopyJob( + Environment* env, + v8::Local object, + Blob* blob, + Mode mode = Mode::ASYNC); + + Mode mode_; + std::vector source_; + std::shared_ptr destination_; + size_t length_ = 0; +}; + +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#endif // SRC_NODE_BLOB_H_ diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 8781c02b2f6e70..6a66bd833ae345 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -22,6 +22,7 @@ #include "node_buffer.h" #include "allocated_buffer-inl.h" #include "node.h" +#include "node_blob.h" #include "node_errors.h" #include "node_internals.h" @@ -1163,6 +1164,7 @@ void Initialize(Local target, env->SetMethodNoSideEffect(target, "asciiSlice", StringSlice); env->SetMethodNoSideEffect(target, "base64Slice", StringSlice); + env->SetMethodNoSideEffect(target, "base64urlSlice", StringSlice); env->SetMethodNoSideEffect(target, "latin1Slice", StringSlice); env->SetMethodNoSideEffect(target, "hexSlice", StringSlice); env->SetMethodNoSideEffect(target, "ucs2Slice", StringSlice); @@ -1170,11 +1172,14 @@ void Initialize(Local target, env->SetMethod(target, "asciiWrite", StringWrite); env->SetMethod(target, "base64Write", StringWrite); + env->SetMethod(target, "base64urlWrite", StringWrite); env->SetMethod(target, "latin1Write", StringWrite); env->SetMethod(target, "hexWrite", StringWrite); env->SetMethod(target, "ucs2Write", StringWrite); env->SetMethod(target, "utf8Write", StringWrite); + Blob::Initialize(env, target); + // It can be a nullptr when running inside an isolate where we // do not own the ArrayBuffer allocator. if (NodeArrayBufferAllocator* allocator = diff --git a/src/node_contextify.cc b/src/node_contextify.cc index e5fbaa196f87a6..c17018be6e32bf 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -127,6 +127,11 @@ ContextifyContext::ContextifyContext( ContextifyContext::~ContextifyContext() { env()->RemoveCleanupHook(CleanupHook, this); + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); + + env()->async_hooks() + ->RemoveContext(PersistentToLocal::Weak(isolate, context_)); } @@ -1287,21 +1292,11 @@ void MicrotaskQueueWrap::New(const FunctionCallbackInfo& args) { void MicrotaskQueueWrap::Init(Environment* env, Local target) { HandleScope scope(env->isolate()); - Local class_name = - FIXED_ONE_BYTE_STRING(env->isolate(), "MicrotaskQueue"); - Local tmpl = env->NewFunctionTemplate(New); tmpl->InstanceTemplate()->SetInternalFieldCount( ContextifyScript::kInternalFieldCount); - tmpl->SetClassName(class_name); - - if (target->Set(env->context(), - class_name, - tmpl->GetFunction(env->context()).ToLocalChecked()) - .IsNothing()) { - return; - } env->set_microtask_queue_ctor_template(tmpl); + env->SetConstructorFunction(target, "MicrotaskQueue", tmpl); } diff --git a/src/node_dir.cc b/src/node_dir.cc index a6800a8350d766..9275aac17d6b33 100644 --- a/src/node_dir.cc +++ b/src/node_dir.cc @@ -39,7 +39,6 @@ using v8::Null; using v8::Number; using v8::Object; using v8::ObjectTemplate; -using v8::String; using v8::Value; #define TRACE_NAME(name) "fs_dir.sync." #name @@ -349,7 +348,6 @@ void Initialize(Local target, Local context, void* priv) { Environment* env = Environment::GetCurrent(context); - Isolate* isolate = env->isolate(); env->SetMethod(target, "opendir", OpenDir); @@ -360,13 +358,7 @@ void Initialize(Local target, env->SetProtoMethod(dir, "close", DirHandle::Close); Local dirt = dir->InstanceTemplate(); dirt->SetInternalFieldCount(DirHandle::kInternalFieldCount); - Local handleString = - FIXED_ONE_BYTE_STRING(isolate, "DirHandle"); - dir->SetClassName(handleString); - target - ->Set(context, handleString, - dir->GetFunction(env->context()).ToLocalChecked()) - .FromJust(); + env->SetConstructorFunction(target, "DirHandle", dir); env->set_dir_instance_template(dirt); } diff --git a/src/node_errors.cc b/src/node_errors.cc index 43e9705ec89800..94e19f70aa288f 100644 --- a/src/node_errors.cc +++ b/src/node_errors.cc @@ -424,7 +424,10 @@ void OnFatalError(const char* location, const char* message) { } Isolate* isolate = Isolate::GetCurrent(); - Environment* env = Environment::GetCurrent(isolate); + Environment* env = nullptr; + if (isolate != nullptr) { + env = Environment::GetCurrent(isolate); + } bool report_on_fatalerror; { Mutex::ScopedLock lock(node::per_process::cli_options_mutex); @@ -816,9 +819,10 @@ void SetPrepareStackTraceCallback(const FunctionCallbackInfo& args) { env->set_prepare_stack_trace_callback(args[0].As()); } -static void EnableSourceMaps(const FunctionCallbackInfo& args) { +static void SetSourceMapsEnabled(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - env->set_source_maps_enabled(true); + CHECK(args[0]->IsBoolean()); + env->set_source_maps_enabled(args[0].As()->Value()); } static void SetEnhanceStackForFatalException( @@ -859,7 +863,7 @@ void Initialize(Local target, Environment* env = Environment::GetCurrent(context); env->SetMethod( target, "setPrepareStackTraceCallback", SetPrepareStackTraceCallback); - env->SetMethod(target, "enableSourceMaps", EnableSourceMaps); + env->SetMethod(target, "setSourceMapsEnabled", SetSourceMapsEnabled); env->SetMethod(target, "setEnhanceStackForFatalException", SetEnhanceStackForFatalException); diff --git a/src/node_errors.h b/src/node_errors.h index ebea88bcf6ddb4..7b67c4e9eb95b7 100644 --- a/src/node_errors.h +++ b/src/node_errors.h @@ -38,10 +38,13 @@ void OnFatalError(const char* location, const char* message); V(ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH, RangeError) \ V(ERR_CRYPTO_UNKNOWN_CIPHER, Error) \ V(ERR_CRYPTO_UNKNOWN_DH_GROUP, Error) \ + V(ERR_DLOPEN_FAILED, Error) \ V(ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE, Error) \ + V(ERR_INVALID_ADDRESS, Error) \ V(ERR_INVALID_ARG_VALUE, TypeError) \ V(ERR_OSSL_EVP_INVALID_DIGEST, Error) \ V(ERR_INVALID_ARG_TYPE, TypeError) \ + V(ERR_INVALID_MODULE, Error) \ V(ERR_INVALID_THIS, TypeError) \ V(ERR_INVALID_TRANSFER_OBJECT, TypeError) \ V(ERR_MEMORY_ALLOCATION_FAILED, Error) \ @@ -106,8 +109,11 @@ ERRORS_WITH_CODE(V) "Input buffers must have the same byte length") \ V(ERR_CRYPTO_UNKNOWN_CIPHER, "Unknown cipher") \ V(ERR_CRYPTO_UNKNOWN_DH_GROUP, "Unknown DH group") \ + V(ERR_DLOPEN_FAILED, "DLOpen failed") \ V(ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE, \ "Context not associated with Node.js environment") \ + V(ERR_INVALID_ADDRESS, "Invalid socket address") \ + V(ERR_INVALID_MODULE, "No such module") \ V(ERR_INVALID_THIS, "Value of \"this\" is the wrong type") \ V(ERR_INVALID_TRANSFER_OBJECT, "Found invalid object in transferList") \ V(ERR_MEMORY_ALLOCATION_FAILED, "Failed to allocate memory") \ diff --git a/src/node_file.cc b/src/node_file.cc index 58727908a2cfd9..118796a48df7c8 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -51,6 +51,7 @@ namespace node { namespace fs { using v8::Array; +using v8::BigInt; using v8::Boolean; using v8::Context; using v8::EscapableHandleScope; @@ -2037,8 +2038,10 @@ static void Read(const FunctionCallbackInfo& args) { const size_t len = static_cast(args[3].As()->Value()); CHECK(Buffer::IsWithinBounds(off, len, buffer_length)); - CHECK(IsSafeJsInt(args[4])); - const int64_t pos = args[4].As()->Value(); + CHECK(IsSafeJsInt(args[4]) || args[4]->IsBigInt()); + const int64_t pos = args[4]->IsNumber() ? + args[4].As()->Value() : + args[4].As()->Int64Value(); char* buf = buffer_data + off; uv_buf_t uvbuf = uv_buf_init(buf, len); @@ -2469,13 +2472,7 @@ void Initialize(Local target, fst->InstanceTemplate()->SetInternalFieldCount( FSReqBase::kInternalFieldCount); fst->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local wrapString = - FIXED_ONE_BYTE_STRING(isolate, "FSReqCallback"); - fst->SetClassName(wrapString); - target - ->Set(context, wrapString, - fst->GetFunction(env->context()).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "FSReqCallback", fst); // Create FunctionTemplate for FileHandleReadWrap. There’s no need // to do anything in the constructor, so we only store the instance template. @@ -2506,14 +2503,8 @@ void Initialize(Local target, env->SetProtoMethod(fd, "releaseFD", FileHandle::ReleaseFD); Local fdt = fd->InstanceTemplate(); fdt->SetInternalFieldCount(StreamBase::kInternalFieldCount); - Local handleString = - FIXED_ONE_BYTE_STRING(isolate, "FileHandle"); - fd->SetClassName(handleString); StreamBase::AddMethods(env, fd); - target - ->Set(context, handleString, - fd->GetFunction(env->context()).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "FileHandle", fd); env->set_fd_constructor_template(fdt); // Create FunctionTemplate for FileHandle::CloseReq diff --git a/src/node_http2.cc b/src/node_http2.cc index e5b2e9365c12e6..83e8b5fc6bfee5 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -2,6 +2,7 @@ #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" @@ -1215,22 +1216,29 @@ void Http2Session::HandleHeadersFrame(const nghttp2_frame* frame) { // this way for performance reasons (it's faster to generate and pass an // array than it is to generate and pass the object). - std::vector> headers_v(stream->headers_count() * 2); + MaybeStackBuffer, 64> headers_v(stream->headers_count() * 2); + MaybeStackBuffer, 32> sensitive_v(stream->headers_count()); + size_t sensitive_count = 0; + stream->TransferHeaders([&](const Http2Header& header, size_t i) { headers_v[i * 2] = header.GetName(this).ToLocalChecked(); headers_v[i * 2 + 1] = header.GetValue(this).ToLocalChecked(); + if (header.flags() & NGHTTP2_NV_FLAG_NO_INDEX) + sensitive_v[sensitive_count++] = headers_v[i * 2]; }); CHECK_EQ(stream->headers_count(), 0); DecrementCurrentSessionMemory(stream->current_headers_length_); stream->current_headers_length_ = 0; - Local args[5] = { - stream->object(), - Integer::New(isolate, id), - Integer::New(isolate, stream->headers_category()), - Integer::New(isolate, frame->hd.flags), - Array::New(isolate, headers_v.data(), headers_v.size())}; + Local args[] = { + stream->object(), + Integer::New(isolate, id), + Integer::New(isolate, stream->headers_category()), + Integer::New(isolate, frame->hd.flags), + Array::New(isolate, headers_v.out(), headers_v.length()), + Array::New(isolate, sensitive_v.out(), sensitive_count), + }; MakeCallback(env()->http2session_on_headers_function(), arraysize(args), args); } @@ -2433,6 +2441,25 @@ void Http2Session::SetNextStreamID(const FunctionCallbackInfo& args) { Debug(session, "set next stream id to %d", id); } +// Set local window size (local endpoints's window size) to the given +// window_size for the stream denoted by 0. +// This function returns 0 if it succeeds, or one of a negative codes +void Http2Session::SetLocalWindowSize( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Http2Session* session; + ASSIGN_OR_RETURN_UNWRAP(&session, args.Holder()); + + int32_t window_size = args[0]->Int32Value(env->context()).ToChecked(); + + int result = nghttp2_session_set_local_window_size( + session->session(), NGHTTP2_FLAG_NONE, 0, window_size); + + args.GetReturnValue().Set(result); + + Debug(session, "set local window size to %d", window_size); +} + // A TypedArray instance is shared between C++ and JS land to contain the // SETTINGS (either remote or local). RefreshSettings updates the current // values established for each of the settings so those can be read in JS land. @@ -3051,9 +3078,6 @@ void Initialize(Local target, env->SetMethod(target, "packSettings", PackSettings); env->SetMethod(target, "setCallbackFunctions", SetCallbackFunctions); - Local http2SessionClassName = - FIXED_ONE_BYTE_STRING(isolate, "Http2Session"); - Local ping = FunctionTemplate::New(env->isolate()); ping->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Ping")); ping->Inherit(AsyncWrap::GetConstructorTemplate(env)); @@ -3062,14 +3086,12 @@ void Initialize(Local target, env->set_http2ping_constructor_template(pingt); Local setting = FunctionTemplate::New(env->isolate()); - setting->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Setting")); setting->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local settingt = setting->InstanceTemplate(); settingt->SetInternalFieldCount(AsyncWrap::kInternalFieldCount); env->set_http2settings_constructor_template(settingt); Local stream = FunctionTemplate::New(env->isolate()); - stream->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Stream")); env->SetProtoMethod(stream, "id", Http2Stream::GetID); env->SetProtoMethod(stream, "destroy", Http2Stream::Destroy); env->SetProtoMethod(stream, "priority", Http2Stream::Priority); @@ -3084,13 +3106,10 @@ void Initialize(Local target, Local streamt = stream->InstanceTemplate(); streamt->SetInternalFieldCount(StreamBase::kInternalFieldCount); env->set_http2stream_constructor_template(streamt); - target->Set(context, - FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Stream"), - stream->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Http2Stream", stream); Local session = env->NewFunctionTemplate(Http2Session::New); - session->SetClassName(http2SessionClassName); session->InstanceTemplate()->SetInternalFieldCount( Http2Session::kInternalFieldCount); session->Inherit(AsyncWrap::GetConstructorTemplate(env)); @@ -3105,6 +3124,8 @@ void Initialize(Local target, env->SetProtoMethod(session, "request", Http2Session::Request); env->SetProtoMethod(session, "setNextStreamID", Http2Session::SetNextStreamID); + env->SetProtoMethod(session, "setLocalWindowSize", + Http2Session::SetLocalWindowSize); env->SetProtoMethod(session, "updateChunksSent", Http2Session::UpdateChunksSent); env->SetProtoMethod(session, "refreshState", Http2Session::RefreshState); @@ -3114,9 +3135,7 @@ void Initialize(Local target, env->SetProtoMethod( session, "remoteSettings", Http2Session::RefreshSettings); - target->Set(context, - http2SessionClassName, - session->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Http2Session", session); Local constants = Object::New(isolate); diff --git a/src/node_http2.h b/src/node_http2.h index 417318b1b49c70..9c7ffce2c41955 100644 --- a/src/node_http2.h +++ b/src/node_http2.h @@ -116,7 +116,6 @@ using Nghttp2SessionCallbacksPointer = struct Http2HeadersTraits { typedef nghttp2_nv nv_t; - static const uint8_t kNoneFlag = NGHTTP2_NV_FLAG_NONE; }; struct Http2RcBufferPointerTraits { @@ -700,6 +699,8 @@ class Http2Session : public AsyncWrap, static void Settings(const v8::FunctionCallbackInfo& args); static void Request(const v8::FunctionCallbackInfo& args); static void SetNextStreamID(const v8::FunctionCallbackInfo& args); + static void SetLocalWindowSize( + const v8::FunctionCallbackInfo& args); static void Goaway(const v8::FunctionCallbackInfo& args); static void UpdateChunksSent(const v8::FunctionCallbackInfo& args); static void RefreshState(const v8::FunctionCallbackInfo& args); @@ -1116,6 +1117,7 @@ class Origins { V(NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE) \ V(NGHTTP2_ERR_INVALID_ARGUMENT) \ V(NGHTTP2_ERR_STREAM_CLOSED) \ + V(NGHTTP2_ERR_NOMEM) \ V(STREAM_OPTION_EMPTY_PAYLOAD) \ V(STREAM_OPTION_GET_TRAILERS) diff --git a/src/node_http_common-inl.h b/src/node_http_common-inl.h index 7cd4bdec99c3d6..6ddc99e7d4e897 100644 --- a/src/node_http_common-inl.h +++ b/src/node_http_common-inl.h @@ -55,13 +55,14 @@ NgHeaders::NgHeaders(Environment* env, v8::Local headers) { return; } - nva[n].flags = T::kNoneFlag; nva[n].name = reinterpret_cast(p); nva[n].namelen = strlen(p); p += nva[n].namelen + 1; nva[n].value = reinterpret_cast(p); nva[n].valuelen = strlen(p); p += nva[n].valuelen + 1; + nva[n].flags = *p; + p++; } } @@ -189,6 +190,11 @@ size_t NgHeader::length() const { return name_.len() + value_.len(); } +template +uint8_t NgHeader::flags() const { + return flags_; +} + } // namespace node #endif // SRC_NODE_HTTP_COMMON_INL_H_ diff --git a/src/node_http_common.h b/src/node_http_common.h index c7e4d34af24196..8017c0d7aad30c 100644 --- a/src/node_http_common.h +++ b/src/node_http_common.h @@ -460,6 +460,7 @@ struct NgHeaderBase : public MemoryRetainer { virtual std::string name() const = 0; virtual std::string value() const = 0; virtual size_t length() const = 0; + virtual uint8_t flags() const = 0; virtual std::string ToString() const; }; @@ -505,6 +506,7 @@ class NgHeader final : public NgHeaderBase { inline std::string name() const override; inline std::string value() const override; inline size_t length() const override; + inline uint8_t flags() const override; void MemoryInfo(MemoryTracker* tracker) const override; diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc index cb44320c380e02..d3184bb1a14c92 100644 --- a/src/node_http_parser.cc +++ b/src/node_http_parser.cc @@ -956,7 +956,6 @@ void InitializeHttpParser(Local target, Local t = env->NewFunctionTemplate(Parser::New); t->InstanceTemplate()->SetInternalFieldCount(Parser::kInternalFieldCount); - t->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "HTTPParser")); t->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "REQUEST"), Integer::New(env->isolate(), HTTP_REQUEST)); @@ -999,9 +998,7 @@ void InitializeHttpParser(Local target, env->SetProtoMethod(t, "unconsume", Parser::Unconsume); env->SetProtoMethod(t, "getCurrentBuffer", Parser::GetCurrentBuffer); - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(env->isolate(), "HTTPParser"), - t->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "HTTPParser", t); } } // anonymous namespace diff --git a/src/node_i18n.cc b/src/node_i18n.cc index 63a6db7a49bc64..e4bc79ebc20800 100644 --- a/src/node_i18n.cc +++ b/src/node_i18n.cc @@ -441,11 +441,24 @@ void ConverterObject::Decode(const FunctionCallbackInfo& args) { UErrorCode status = U_ZERO_ERROR; MaybeStackBuffer result; MaybeLocal ret; - size_t limit = converter->min_char_size() * input.length(); + + UBool flush = (flags & CONVERTER_FLAGS_FLUSH) == CONVERTER_FLAGS_FLUSH; + + // When flushing the final chunk, the limit is the maximum + // of either the input buffer length or the number of pending + // characters times the min char size. + size_t limit = converter->min_char_size() * + (!flush ? + input.length() : + std::max( + input.length(), + static_cast( + ucnv_toUCountPending(converter->conv(), &status)))); + status = U_ZERO_ERROR; + if (limit > 0) result.AllocateSufficientStorage(limit); - UBool flush = (flags & CONVERTER_FLAGS_FLUSH) == CONVERTER_FLAGS_FLUSH; auto cleanup = OnScopeLeave([&]() { if (flush) { // Reset the converter state. diff --git a/src/node_internals.h b/src/node_internals.h index aa7180e18544ca..7d31640bedffc1 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -39,11 +39,6 @@ #include #include -// Custom constants used by both node_constants.cc and node_zlib.cc -#define Z_MIN_WINDOWBITS 8 -#define Z_MAX_WINDOWBITS 15 -#define Z_DEFAULT_WINDOWBITS 15 - struct sockaddr; namespace node { @@ -363,6 +358,10 @@ class DiagnosticFilename { std::string filename_; }; +namespace heap { +bool WriteSnapshot(v8::Isolate* isolate, const char* filename); +} + class TraceEventScope { public: TraceEventScope(const char* category, diff --git a/src/node_main_instance.cc b/src/node_main_instance.cc index 0678d1a748edf6..c0db2764525dad 100644 --- a/src/node_main_instance.cc +++ b/src/node_main_instance.cc @@ -89,6 +89,8 @@ NodeMainInstance::NodeMainInstance( // complete. SetIsolateErrorHandlers(isolate_, s); } + isolate_data_->max_young_gen_size = + params->constraints.max_young_generation_size_in_bytes(); } void NodeMainInstance::Dispose() { @@ -135,7 +137,8 @@ int NodeMainInstance::Run() { if (more && !env->is_stopping()) continue; if (!uv_loop_alive(env->event_loop())) { - EmitBeforeExit(env.get()); + if (EmitProcessBeforeExit(env.get()).IsNothing()) + break; } // Emit `beforeExit` if the loop became alive either after emitting @@ -148,7 +151,7 @@ int NodeMainInstance::Run() { env->set_trace_sync_io(false); if (!env->is_stopping()) env->VerifyNoStrongBaseObjects(); - exit_code = EmitExit(env.get()); + exit_code = EmitProcessExit(env.get()).FromMaybe(1); } ResetStdio(); diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 24b0c48bd76a02..b743ec72b45ee2 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -1316,32 +1316,24 @@ static void InitMessaging(Local target, Environment* env = Environment::GetCurrent(context); { - Local message_channel_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "MessageChannel"); - Local templ = env->NewFunctionTemplate(MessageChannel); - templ->SetClassName(message_channel_string); - target->Set(context, - message_channel_string, - templ->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction( + target, + "MessageChannel", + env->NewFunctionTemplate(MessageChannel)); } { - Local js_transferable_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "JSTransferable"); Local t = env->NewFunctionTemplate(JSTransferable::New); t->Inherit(BaseObject::GetConstructorTemplate(env)); - t->SetClassName(js_transferable_string); t->InstanceTemplate()->SetInternalFieldCount( JSTransferable::kInternalFieldCount); - target->Set(context, - js_transferable_string, - t->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "JSTransferable", t); } - target->Set(context, - env->message_port_constructor_string(), - GetMessagePortConstructorTemplate(env) - ->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction( + target, + env->message_port_constructor_string(), + GetMessagePortConstructorTemplate(env)); // These are not methods on the MessagePort prototype, because // the browser equivalents do not provide them. diff --git a/src/node_native_module.cc b/src/node_native_module.cc index 9776d12cc1b488..5dab47f8208e43 100644 --- a/src/node_native_module.cc +++ b/src/node_native_module.cc @@ -71,6 +71,7 @@ void NativeModuleLoader::InitializeModuleCategories() { std::vector prefixes = { #if !HAVE_OPENSSL "internal/crypto/", + "internal/debugger/", #endif // !HAVE_OPENSSL "internal/bootstrap/", @@ -221,7 +222,10 @@ MaybeLocal NativeModuleLoader::LoadBuiltinModuleSource(Isolate* isolate, isolate, contents.c_str(), v8::NewStringType::kNormal, contents.length()); #else const auto source_it = source_.find(id); - CHECK_NE(source_it, source_.end()); + if (UNLIKELY(source_it == source_.end())) { + fprintf(stderr, "Cannot find native builtin: \"%s\".\n", id); + ABORT(); + } return source_it->second.ToStringChecked(isolate); #endif // NODE_BUILTIN_MODULES_PATH } diff --git a/src/node_options-inl.h b/src/node_options-inl.h index 4e1a12296bc77e..7facb22afc3c9b 100644 --- a/src/node_options-inl.h +++ b/src/node_options-inl.h @@ -23,12 +23,14 @@ template void OptionsParser::AddOption(const char* name, const char* help_text, bool Options::* field, - OptionEnvvarSettings env_setting) { + OptionEnvvarSettings env_setting, + bool default_is_true) { options_.emplace(name, OptionInfo{kBoolean, std::make_shared>(field), env_setting, - help_text}); + help_text, + default_is_true}); } template @@ -186,7 +188,8 @@ auto OptionsParser::Convert( return OptionInfo{original.type, Convert(original.field, get_child), original.env_setting, - original.help_text}; + original.help_text, + original.default_is_true}; } template @@ -225,6 +228,10 @@ inline std::string RequiresArgumentErr(const std::string& arg) { return arg + " requires an argument"; } +inline std::string NegationImpliesBooleanError(const std::string& arg) { + return arg + " is an invalid negation because it is not a boolean option"; +} + // We store some of the basic information around a single Parse call inside // this struct, to separate storage of command line arguments and their // handling. In particular, this makes it easier to introduce 'synthetic' @@ -325,6 +332,13 @@ void OptionsParser::Parse( name[i] = '-'; } + // Convert --no-foo to --foo and keep in mind that we're negating. + bool is_negation = false; + if (name.find("--no-") == 0) { + name.erase(2, 3); // remove no- + is_negation = true; + } + { auto it = aliases_.end(); // Expand aliases: @@ -367,7 +381,12 @@ void OptionsParser::Parse( } { - auto implications = implications_.equal_range(name); + std::string implied_name = name; + if (is_negation) { + // Implications for negated options are defined with "--no-". + implied_name.insert(2, "no-"); + } + auto implications = implications_.equal_range(implied_name); for (auto it = implications.first; it != implications.second; ++it) { if (it->second.type == kV8Option) { v8_args->push_back(it->second.name); @@ -384,6 +403,13 @@ void OptionsParser::Parse( } const OptionInfo& info = it->second; + + // Some V8 options can be negated and they are validated by V8 later. + if (is_negation && info.type != kBoolean && info.type != kV8Option) { + errors->push_back(NegationImpliesBooleanError(arg)); + break; + } + std::string value; if (info.type != kBoolean && info.type != kNoOp && info.type != kV8Option) { if (equals_index != std::string::npos) { @@ -412,7 +438,7 @@ void OptionsParser::Parse( switch (info.type) { case kBoolean: - *Lookup(info.field, options) = true; + *Lookup(info.field, options) = !is_negation; break; case kInteger: *Lookup(info.field, options) = std::atoll(value.c_str()); diff --git a/src/node_options.cc b/src/node_options.cc index 3c9fe815dffb37..cee6fc1773140b 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -118,6 +118,10 @@ void EnvironmentOptions::CheckOptions(std::vector* errors) { "used, not both"); } + if (heap_snapshot_near_heap_limit < 0) { + errors->push_back("--heap-snapshot-near-heap-limit must not be negative"); + } + #if HAVE_INSPECTOR if (!cpu_prof) { if (!cpu_prof_name.empty()) { @@ -272,11 +276,19 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { "additional user conditions for conditional exports and imports", &EnvironmentOptions::conditions, kAllowedInEnvironment); + AddAlias("-C", "--conditions"); AddOption("--diagnostic-dir", "set dir for all output files" " (default: current working directory)", &EnvironmentOptions::diagnostic_dir, kAllowedInEnvironment); + AddOption("--dns-result-order", + "set default value of verbatim in dns.lookup. Options are " + "'ipv4first' (IPv4 addresses are placed before IPv6 addresses) " + "'verbatim' (addresses are in the order the DNS resolver " + "returned)", + &EnvironmentOptions::dns_result_order, + kAllowedInEnvironment); AddOption("--enable-source-maps", "experimental Source Map V3 support", &EnvironmentOptions::enable_source_maps, @@ -343,6 +355,12 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { "Generate heap snapshot on specified signal", &EnvironmentOptions::heap_snapshot_signal, kAllowedInEnvironment); + AddOption("--heapsnapshot-near-heap-limit", + "Generate heap snapshots whenever V8 is approaching " + "the heap limit. No more than the specified number of " + "heap snapshots will be generated.", + &EnvironmentOptions::heap_snapshot_near_heap_limit, + kAllowedInEnvironment); AddOption("--http-parser", "", NoOp{}, kAllowedInEnvironment); AddOption("--insecure-http-parser", "use an insecure HTTP parser that accepts invalid HTTP headers", @@ -359,18 +377,21 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { kAllowedInEnvironment); AddAlias("--es-module-specifier-resolution", "--experimental-specifier-resolution"); - AddOption("--no-deprecation", + AddOption("--deprecation", "silence deprecation warnings", - &EnvironmentOptions::no_deprecation, - kAllowedInEnvironment); - AddOption("--no-force-async-hooks-checks", + &EnvironmentOptions::deprecation, + kAllowedInEnvironment, + true); + AddOption("--force-async-hooks-checks", "disable checks for async_hooks", - &EnvironmentOptions::no_force_async_hooks_checks, - kAllowedInEnvironment); - AddOption("--no-warnings", + &EnvironmentOptions::force_async_hooks_checks, + kAllowedInEnvironment, + true); + AddOption("--warnings", "silence all process warnings", - &EnvironmentOptions::no_warnings, - kAllowedInEnvironment); + &EnvironmentOptions::warnings, + kAllowedInEnvironment, + true); AddOption("--force-context-aware", "disable loading non-context-aware addons", &EnvironmentOptions::force_context_aware, @@ -561,9 +582,9 @@ PerIsolateOptionsParser::PerIsolateOptionsParser( "track heap object allocations for heap snapshots", &PerIsolateOptions::track_heap_objects, kAllowedInEnvironment); - AddOption("--no-node-snapshot", + AddOption("--node-snapshot", "", // It's a debug-only option. - &PerIsolateOptions::no_node_snapshot, + &PerIsolateOptions::node_snapshot, kAllowedInEnvironment); // Explicitly add some V8 flags to mark them as allowed in NODE_OPTIONS. @@ -770,6 +791,12 @@ PerProcessOptionsParser::PerProcessOptionsParser( kAllowedInEnvironment); Insert(iop, &PerProcessOptions::get_per_isolate_options); + + AddOption("--node-memory-debug", + "Run with extra debug checks for memory leaks in Node.js itself", + NoOp{}, kAllowedInEnvironment); + Implies("--node-memory-debug", "--debug-arraybuffer-allocations"); + Implies("--node-memory-debug", "--verify-base-objects"); } inline std::string RemoveBrackets(const std::string& host) { @@ -967,6 +994,10 @@ void GetOptions(const FunctionCallbackInfo& args) { env->type_string(), Integer::New(isolate, static_cast(option_info.type))) .FromMaybe(false) || + !info->Set(context, + env->default_is_true_string(), + Boolean::New(isolate, option_info.default_is_true)) + .FromMaybe(false) || info->Set(context, env->value_string(), value).IsNothing() || options->Set(context, name, info).IsEmpty()) { return; diff --git a/src/node_options.h b/src/node_options.h index 58a21e0d4f9bd6..a02d43bf5f98df 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -101,6 +101,7 @@ class EnvironmentOptions : public Options { public: bool abort_on_uncaught_exception = false; std::vector conditions; + std::string dns_result_order; bool enable_source_maps = false; bool experimental_abortcontroller = false; bool experimental_json_modules = false; @@ -116,11 +117,12 @@ class EnvironmentOptions : public Options { bool experimental_vm_modules = false; bool expose_internals = false; bool frozen_intrinsics = false; + int64_t heap_snapshot_near_heap_limit = 0; std::string heap_snapshot_signal; uint64_t max_http_header_size = 16 * 1024; - bool no_deprecation = false; - bool no_force_async_hooks_checks = false; - bool no_warnings = false; + bool deprecation = true; + bool force_async_hooks_checks = true; + bool warnings = true; bool force_context_aware = false; bool pending_deprecation = false; bool preserve_symlinks = false; @@ -192,7 +194,7 @@ class PerIsolateOptions : public Options { public: std::shared_ptr per_env { new EnvironmentOptions() }; bool track_heap_objects = false; - bool no_node_snapshot = false; + bool node_snapshot = true; bool report_uncaught_exception = false; bool report_on_signal = false; bool experimental_top_level_await = true; @@ -300,7 +302,8 @@ class OptionsParser { void AddOption(const char* name, const char* help_text, bool Options::* field, - OptionEnvvarSettings env_setting = kDisallowedInEnvironment); + OptionEnvvarSettings env_setting = kDisallowedInEnvironment, + bool default_is_true = false); void AddOption(const char* name, const char* help_text, uint64_t Options::* field, @@ -423,6 +426,7 @@ class OptionsParser { std::shared_ptr field; OptionEnvvarSettings env_setting; std::string help_text; + bool default_is_true = false; }; // An implied option is composed of the information on where to store a diff --git a/src/node_perf.cc b/src/node_perf.cc index 546cbfc911485e..2f6fab9242f656 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -1,4 +1,5 @@ #include "aliased_buffer.h" +#include "histogram-inl.h" #include "memory_tracker-inl.h" #include "node_internals.h" #include "node_perf.h" @@ -19,10 +20,10 @@ using v8::FunctionTemplate; using v8::GCCallbackFlags; using v8::GCType; using v8::HandleScope; +using v8::Int32; using v8::Integer; using v8::Isolate; using v8::Local; -using v8::Map; using v8::MaybeLocal; using v8::Number; using v8::Object; @@ -401,156 +402,45 @@ void LoopIdleTime(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(1.0 * idle_time / 1e6); } - // Event Loop Timing Histogram -namespace { -static void ELDHistogramMin(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Min()); - args.GetReturnValue().Set(value); -} - -static void ELDHistogramMax(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Max()); - args.GetReturnValue().Set(value); -} - -static void ELDHistogramMean(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Mean()); -} - -static void ELDHistogramExceeds(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - double value = static_cast(histogram->Exceeds()); - args.GetReturnValue().Set(value); -} - -static void ELDHistogramStddev(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Stddev()); -} - -static void ELDHistogramPercentile(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - CHECK(args[0]->IsNumber()); - double percentile = args[0].As()->Value(); - args.GetReturnValue().Set(histogram->Percentile(percentile)); -} - -static void ELDHistogramPercentiles(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - CHECK(args[0]->IsMap()); - Local map = args[0].As(); - histogram->Percentiles([&](double key, double value) { - map->Set(env->context(), - Number::New(env->isolate(), key), - Number::New(env->isolate(), value)).IsEmpty(); - }); -} - -static void ELDHistogramEnable(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Enable()); -} - -static void ELDHistogramDisable(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - args.GetReturnValue().Set(histogram->Disable()); -} - -static void ELDHistogramReset(const FunctionCallbackInfo& args) { - ELDHistogram* histogram; - ASSIGN_OR_RETURN_UNWRAP(&histogram, args.Holder()); - histogram->ResetState(); -} - -static void ELDHistogramNew(const FunctionCallbackInfo& args) { +void ELDHistogram::New(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); CHECK(args.IsConstructCall()); - int32_t resolution = args[0]->IntegerValue(env->context()).FromJust(); + int32_t resolution = args[0].As()->Value(); CHECK_GT(resolution, 0); new ELDHistogram(env, args.This(), resolution); } -} // namespace + +void ELDHistogram::Initialize(Environment* env, Local target) { + Local tmpl = env->NewFunctionTemplate(New); + tmpl->Inherit(IntervalHistogram::GetConstructorTemplate(env)); + tmpl->InstanceTemplate()->SetInternalFieldCount( + ELDHistogram::kInternalFieldCount); + env->SetConstructorFunction(target, "ELDHistogram", tmpl); +} ELDHistogram::ELDHistogram( Environment* env, Local wrap, - int32_t resolution) : HandleWrap(env, - wrap, - reinterpret_cast(&timer_), - AsyncWrap::PROVIDER_ELDHISTOGRAM), - Histogram(1, 3.6e12), - resolution_(resolution) { - MakeWeak(); - uv_timer_init(env->event_loop(), &timer_); -} - -void ELDHistogram::DelayIntervalCallback(uv_timer_t* req) { - ELDHistogram* histogram = ContainerOf(&ELDHistogram::timer_, req); - histogram->RecordDelta(); + int32_t interval) + : IntervalHistogram( + env, + wrap, + AsyncWrap::PROVIDER_ELDHISTOGRAM, + interval, 1, 3.6e12, 3) {} + +void ELDHistogram::OnInterval() { + uint64_t delta = histogram()->RecordDelta(); TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), - "min", histogram->Min()); + "delay", delta); TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), - "max", histogram->Max()); + "min", histogram()->Min()); TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), - "mean", histogram->Mean()); + "max", histogram()->Max()); TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), - "stddev", histogram->Stddev()); -} - -bool ELDHistogram::RecordDelta() { - uint64_t time = uv_hrtime(); - bool ret = true; - if (prev_ > 0) { - int64_t delta = time - prev_; - if (delta > 0) { - ret = Record(delta); - TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), - "delay", delta); - if (!ret) { - if (exceeds_ < 0xFFFFFFFF) - exceeds_++; - ProcessEmitWarning( - env(), - "Event loop delay exceeded 1 hour: %" PRId64 " nanoseconds", - delta); - } - } - } - prev_ = time; - return ret; -} - -bool ELDHistogram::Enable() { - if (enabled_ || IsHandleClosing()) return false; - enabled_ = true; - prev_ = 0; - uv_timer_start(&timer_, - DelayIntervalCallback, - resolution_, - resolution_); - uv_unref(reinterpret_cast(&timer_)); - return true; -} - -bool ELDHistogram::Disable() { - if (!enabled_ || IsHandleClosing()) return false; - enabled_ = false; - uv_timer_stop(&timer_); - return true; + "mean", histogram()->Mean()); + TRACE_COUNTER1(TRACING_CATEGORY_NODE2(perf, event_loop), + "stddev", histogram()->Stddev()); } void Initialize(Local target, @@ -643,25 +533,8 @@ void Initialize(Local target, constants, attr).ToChecked(); - Local eldh_classname = FIXED_ONE_BYTE_STRING(isolate, "ELDHistogram"); - Local eldh = - env->NewFunctionTemplate(ELDHistogramNew); - eldh->SetClassName(eldh_classname); - eldh->InstanceTemplate()->SetInternalFieldCount( - ELDHistogram::kInternalFieldCount); - eldh->Inherit(BaseObject::GetConstructorTemplate(env)); - env->SetProtoMethod(eldh, "exceeds", ELDHistogramExceeds); - env->SetProtoMethod(eldh, "min", ELDHistogramMin); - env->SetProtoMethod(eldh, "max", ELDHistogramMax); - env->SetProtoMethod(eldh, "mean", ELDHistogramMean); - env->SetProtoMethod(eldh, "stddev", ELDHistogramStddev); - env->SetProtoMethod(eldh, "percentile", ELDHistogramPercentile); - env->SetProtoMethod(eldh, "percentiles", ELDHistogramPercentiles); - env->SetProtoMethod(eldh, "enable", ELDHistogramEnable); - env->SetProtoMethod(eldh, "disable", ELDHistogramDisable); - env->SetProtoMethod(eldh, "reset", ELDHistogramReset); - target->Set(context, eldh_classname, - eldh->GetFunction(env->context()).ToLocalChecked()).Check(); + HistogramBase::Initialize(env, target); + ELDHistogram::Initialize(env, target); } } // namespace performance diff --git a/src/node_perf.h b/src/node_perf.h index a8a913bddeaad0..ddd99b33040381 100644 --- a/src/node_perf.h +++ b/src/node_perf.h @@ -6,7 +6,7 @@ #include "node.h" #include "node_perf_common.h" #include "base_object-inl.h" -#include "histogram-inl.h" +#include "histogram.h" #include "v8.h" #include "uv.h" @@ -140,37 +140,20 @@ class GCPerformanceEntry : public PerformanceEntry { PerformanceGCFlags gcflags_; }; -class ELDHistogram : public HandleWrap, public Histogram { +class ELDHistogram : public IntervalHistogram { public: - ELDHistogram(Environment* env, - v8::Local wrap, - int32_t resolution); - - bool RecordDelta(); - bool Enable(); - bool Disable(); - void ResetState() { - Reset(); - exceeds_ = 0; - prev_ = 0; - } - int64_t Exceeds() const { return exceeds_; } + static void Initialize(Environment* env, v8::Local target); + static void New(const v8::FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackFieldWithSize("histogram", GetMemorySize()); - } + ELDHistogram( + Environment* env, + v8::Local wrap, + int32_t interval); + + void OnInterval() override; SET_MEMORY_INFO_NAME(ELDHistogram) SET_SELF_SIZE(ELDHistogram) - - private: - static void DelayIntervalCallback(uv_timer_t* req); - - bool enabled_ = false; - int32_t resolution_ = 0; - int64_t exceeds_ = 0; - uint64_t prev_ = 0; - uv_timer_t timer_; }; } // namespace performance diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc index 29950aeb5b1680..69e910a8598881 100644 --- a/src/node_process_methods.cc +++ b/src/node_process_methods.cc @@ -193,7 +193,7 @@ static void Kill(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(err); } -static void MemoryUsage(const FunctionCallbackInfo& args) { +static void Rss(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); size_t rss; @@ -201,6 +201,12 @@ static void MemoryUsage(const FunctionCallbackInfo& args) { if (err) return env->ThrowUVException(err, "uv_resident_set_memory"); + args.GetReturnValue().Set(static_cast(rss)); +} + +static void MemoryUsage(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); // V8 memory usage HeapStatistics v8_heap_stats; @@ -213,6 +219,11 @@ static void MemoryUsage(const FunctionCallbackInfo& args) { Local ab = get_fields_array_buffer(args, 0, 5); double* fields = static_cast(ab->GetBackingStore()->Data()); + size_t rss; + int err = uv_resident_set_memory(&rss); + if (err) + return env->ThrowUVException(err, "uv_resident_set_memory"); + fields[0] = rss; fields[1] = v8_heap_stats.total_heap_size(); fields[2] = v8_heap_stats.used_heap_size(); @@ -450,6 +461,7 @@ static void InitializeProcessMethods(Local target, env->SetMethod(target, "umask", Umask); env->SetMethod(target, "_rawDebug", RawDebug); env->SetMethod(target, "memoryUsage", MemoryUsage); + env->SetMethod(target, "rss", Rss); env->SetMethod(target, "cpuUsage", CPUUsage); env->SetMethod(target, "hrtime", Hrtime); env->SetMethod(target, "hrtimeBigInt", HrtimeBigInt); diff --git a/src/node_report.cc b/src/node_report.cc index 13f87b1e52e5d6..a91d16d5f11e64 100644 --- a/src/node_report.cc +++ b/src/node_report.cc @@ -267,20 +267,22 @@ static void WriteNodeReport(Isolate* isolate, PrintVersionInformation(&writer); writer.json_objectend(); - writer.json_objectstart("javascriptStack"); - // Report summary JavaScript error stack backtrace - PrintJavaScriptErrorStack(&writer, isolate, error, trigger); + if (isolate != nullptr) { + writer.json_objectstart("javascriptStack"); + // Report summary JavaScript error stack backtrace + PrintJavaScriptErrorStack(&writer, isolate, error, trigger); - // Report summary JavaScript error properties backtrace - PrintJavaScriptErrorProperties(&writer, isolate, error); - writer.json_objectend(); // the end of 'javascriptStack' + // Report summary JavaScript error properties backtrace + PrintJavaScriptErrorProperties(&writer, isolate, error); + writer.json_objectend(); // the end of 'javascriptStack' + + // Report V8 Heap and Garbage Collector information + PrintGCStatistics(&writer, isolate); + } // Report native stack backtrace PrintNativeStack(&writer); - // Report V8 Heap and Garbage Collector information - PrintGCStatistics(&writer, isolate); - // Report OS and current thread resource usage PrintResourceUsage(&writer); diff --git a/src/node_serdes.cc b/src/node_serdes.cc index 0cd3e005953b61..835179d511417a 100644 --- a/src/node_serdes.cc +++ b/src/node_serdes.cc @@ -475,13 +475,8 @@ void Initialize(Local target, "_setTreatArrayBufferViewsAsHostObjects", SerializerContext::SetTreatArrayBufferViewsAsHostObjects); - Local serializerString = - FIXED_ONE_BYTE_STRING(env->isolate(), "Serializer"); - ser->SetClassName(serializerString); ser->ReadOnlyPrototype(); - target->Set(env->context(), - serializerString, - ser->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Serializer", ser); Local des = env->NewFunctionTemplate(DeserializerContext::New); @@ -503,14 +498,9 @@ void Initialize(Local target, env->SetProtoMethod(des, "readDouble", DeserializerContext::ReadDouble); env->SetProtoMethod(des, "_readRawBytes", DeserializerContext::ReadRawBytes); - Local deserializerString = - FIXED_ONE_BYTE_STRING(env->isolate(), "Deserializer"); des->SetLength(1); des->ReadOnlyPrototype(); - des->SetClassName(deserializerString); - target->Set(env->context(), - deserializerString, - des->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Deserializer", des); } } // anonymous namespace diff --git a/src/node_sockaddr-inl.h b/src/node_sockaddr-inl.h index a9d0ed061a126c..e5d8985771ebf2 100644 --- a/src/node_sockaddr-inl.h +++ b/src/node_sockaddr-inl.h @@ -4,9 +4,11 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "node.h" +#include "env-inl.h" #include "node_internals.h" #include "node_sockaddr.h" #include "util-inl.h" +#include "memory_tracker-inl.h" #include @@ -87,11 +89,11 @@ SocketAddress& SocketAddress::operator=(const SocketAddress& addr) { } const sockaddr& SocketAddress::operator*() const { - return *this->data(); + return *data(); } const sockaddr* SocketAddress::operator->() const { - return this->data(); + return data(); } size_t SocketAddress::length() const { @@ -164,6 +166,95 @@ bool SocketAddress::operator==(const SocketAddress& other) const { bool SocketAddress::operator!=(const SocketAddress& other) const { return !(*this == other); } + +bool SocketAddress::operator<(const SocketAddress& other) const { + return compare(other) == CompareResult::LESS_THAN; +} + +bool SocketAddress::operator>(const SocketAddress& other) const { + return compare(other) == CompareResult::GREATER_THAN; +} + +bool SocketAddress::operator<=(const SocketAddress& other) const { + CompareResult c = compare(other); + return c == CompareResult::NOT_COMPARABLE ? false : + c <= CompareResult::SAME; +} + +bool SocketAddress::operator>=(const SocketAddress& other) const { + return compare(other) >= CompareResult::SAME; +} + +template +SocketAddressLRU::SocketAddressLRU( + size_t max_size) + : max_size_(max_size) {} + +template +typename T::Type* SocketAddressLRU::Peek( + const SocketAddress& address) const { + auto it = map_.find(address); + return it == std::end(map_) ? nullptr : &it->second->second; +} + +template +void SocketAddressLRU::CheckExpired() { + auto it = list_.rbegin(); + while (it != list_.rend()) { + if (T::CheckExpired(it->first, it->second)) { + map_.erase(it->first); + list_.pop_back(); + it = list_.rbegin(); + continue; + } else { + break; + } + } +} + +template +void SocketAddressLRU::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackFieldWithSize("list", size() * sizeof(Pair)); +} + +// If an item already exists for the given address, bump up it's +// position in the LRU list and return it. If the item does not +// exist, create it. If an item is created, check the size of the +// cache and adjust if necessary. Whether the item exists or not, +// purge expired items. +template +typename T::Type* SocketAddressLRU::Upsert( + const SocketAddress& address) { + + auto on_exit = OnScopeLeave([&]() { CheckExpired(); }); + + auto it = map_.find(address); + if (it != std::end(map_)) { + list_.splice(list_.begin(), list_, it->second); + T::Touch(it->first, &it->second->second); + return &it->second->second; + } + + list_.push_front(Pair(address, { })); + map_[address] = list_.begin(); + T::Touch(list_.begin()->first, &list_.begin()->second); + + // Drop the last item in the list if we are + // over the size limit... + if (map_.size() > max_size_) { + auto last = list_.end(); + map_.erase((--last)->first); + list_.pop_back(); + } + + return &map_[address]->second; +} + +v8::MaybeLocal SocketAddressBlockList::Rule::ToV8String( + Environment* env) { + std::string str = ToString(); + return ToV8Value(env->context(), str); +} } // namespace node #endif // NODE_WANT_INTERNALS diff --git a/src/node_sockaddr.cc b/src/node_sockaddr.cc index 74fe123529abbd..ff160064a729e9 100644 --- a/src/node_sockaddr.cc +++ b/src/node_sockaddr.cc @@ -1,8 +1,27 @@ #include "node_sockaddr-inl.h" // NOLINT(build/include) +#include "env-inl.h" +#include "base_object-inl.h" +#include "memory_tracker-inl.h" +#include "node_errors.h" #include "uv.h" +#include +#include +#include + namespace node { +using v8::Array; +using v8::Context; +using v8::FunctionCallbackInfo; +using v8::FunctionTemplate; +using v8::Int32; +using v8::Local; +using v8::MaybeLocal; +using v8::Object; +using v8::Uint32; +using v8::Value; + namespace { template SocketAddress FromUVHandle(F fn, const T& handle) { @@ -92,4 +111,775 @@ SocketAddress SocketAddress::FromPeerName(const uv_udp_t& handle) { return FromUVHandle(uv_udp_getpeername, handle); } +namespace { +constexpr uint8_t mask[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff }; + +bool is_match_ipv4( + const SocketAddress& one, + const SocketAddress& two) { + const sockaddr_in* one_in = + reinterpret_cast(one.data()); + const sockaddr_in* two_in = + reinterpret_cast(two.data()); + return memcmp(&one_in->sin_addr, &two_in->sin_addr, sizeof(uint32_t)) == 0; +} + +bool is_match_ipv6( + const SocketAddress& one, + const SocketAddress& two) { + const sockaddr_in6* one_in = + reinterpret_cast(one.data()); + const sockaddr_in6* two_in = + reinterpret_cast(two.data()); + return memcmp(&one_in->sin6_addr, &two_in->sin6_addr, 16) == 0; +} + +bool is_match_ipv4_ipv6( + const SocketAddress& ipv4, + const SocketAddress& ipv6) { + const sockaddr_in* check_ipv4 = + reinterpret_cast(ipv4.data()); + const sockaddr_in6* check_ipv6 = + reinterpret_cast(ipv6.data()); + + const uint8_t* ptr = + reinterpret_cast(&check_ipv6->sin6_addr); + + return memcmp(ptr, mask, sizeof(mask)) == 0 && + memcmp(ptr + sizeof(mask), + &check_ipv4->sin_addr, + sizeof(uint32_t)) == 0; +} + +SocketAddress::CompareResult compare_ipv4( + const SocketAddress& one, + const SocketAddress& two) { + const sockaddr_in* one_in = + reinterpret_cast(one.data()); + const sockaddr_in* two_in = + reinterpret_cast(two.data()); + const uint32_t s_addr_one = ntohl(one_in->sin_addr.s_addr); + const uint32_t s_addr_two = ntohl(two_in->sin_addr.s_addr); + + if (s_addr_one < s_addr_two) + return SocketAddress::CompareResult::LESS_THAN; + else if (s_addr_one == s_addr_two) + return SocketAddress::CompareResult::SAME; + else + return SocketAddress::CompareResult::GREATER_THAN; +} + +SocketAddress::CompareResult compare_ipv6( + const SocketAddress& one, + const SocketAddress& two) { + const sockaddr_in6* one_in = + reinterpret_cast(one.data()); + const sockaddr_in6* two_in = + reinterpret_cast(two.data()); + int ret = memcmp(&one_in->sin6_addr, &two_in->sin6_addr, 16); + if (ret < 0) + return SocketAddress::CompareResult::LESS_THAN; + else if (ret > 0) + return SocketAddress::CompareResult::GREATER_THAN; + return SocketAddress::CompareResult::SAME; +} + +SocketAddress::CompareResult compare_ipv4_ipv6( + const SocketAddress& ipv4, + const SocketAddress& ipv6) { + const sockaddr_in* ipv4_in = + reinterpret_cast(ipv4.data()); + const sockaddr_in6 * ipv6_in = + reinterpret_cast(ipv6.data()); + + const uint8_t* ptr = + reinterpret_cast(&ipv6_in->sin6_addr); + + if (memcmp(ptr, mask, sizeof(mask)) != 0) + return SocketAddress::CompareResult::NOT_COMPARABLE; + + int ret = memcmp( + &ipv4_in->sin_addr, + ptr + sizeof(mask), + sizeof(uint32_t)); + + if (ret < 0) + return SocketAddress::CompareResult::LESS_THAN; + else if (ret > 0) + return SocketAddress::CompareResult::GREATER_THAN; + return SocketAddress::CompareResult::SAME; +} + +bool in_network_ipv4( + const SocketAddress& ip, + const SocketAddress& net, + int prefix) { + uint32_t mask = ((1 << prefix) - 1) << (32 - prefix); + + const sockaddr_in* ip_in = + reinterpret_cast(ip.data()); + const sockaddr_in* net_in = + reinterpret_cast(net.data()); + + return (htonl(ip_in->sin_addr.s_addr) & mask) == + (htonl(net_in->sin_addr.s_addr) & mask); +} + +bool in_network_ipv6( + const SocketAddress& ip, + const SocketAddress& net, + int prefix) { + // Special case, if prefix == 128, then just do a + // straight comparison. + if (prefix == 128) + return compare_ipv6(ip, net) == SocketAddress::CompareResult::SAME; + + uint8_t r = prefix % 8; + int len = (prefix - r) / 8; + uint8_t mask = ((1 << r) - 1) << (8 - r); + + const sockaddr_in6* ip_in = + reinterpret_cast(ip.data()); + const sockaddr_in6* net_in = + reinterpret_cast(net.data()); + + if (memcmp(&ip_in->sin6_addr, &net_in->sin6_addr, len) != 0) + return false; + + const uint8_t* p1 = reinterpret_cast( + ip_in->sin6_addr.s6_addr); + const uint8_t* p2 = reinterpret_cast( + net_in->sin6_addr.s6_addr); + + return (p1[len] & mask) == (p2[len] & mask); +} + +bool in_network_ipv4_ipv6( + const SocketAddress& ip, + const SocketAddress& net, + int prefix) { + + if (prefix == 128) + return compare_ipv4_ipv6(ip, net) == SocketAddress::CompareResult::SAME; + + uint8_t r = prefix % 8; + int len = (prefix - r) / 8; + uint8_t mask = ((1 << r) - 1) << (8 - r); + + const sockaddr_in* ip_in = + reinterpret_cast(ip.data()); + const sockaddr_in6* net_in = + reinterpret_cast(net.data()); + + uint8_t ip_mask[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0, 0, 0}; + uint8_t* ptr = ip_mask; + memcpy(ptr + 12, &ip_in->sin_addr, 4); + + if (memcmp(ptr, &net_in->sin6_addr, len) != 0) + return false; + + ptr += len; + const uint8_t* p2 = reinterpret_cast( + net_in->sin6_addr.s6_addr); + + return (ptr[0] & mask) == (p2[len] & mask); +} + +bool in_network_ipv6_ipv4( + const SocketAddress& ip, + const SocketAddress& net, + int prefix) { + if (prefix == 32) + return compare_ipv4_ipv6(net, ip) == SocketAddress::CompareResult::SAME; + + uint32_t m = ((1 << prefix) - 1) << (32 - prefix); + + const sockaddr_in6* ip_in = + reinterpret_cast(ip.data()); + const sockaddr_in* net_in = + reinterpret_cast(net.data()); + + const uint8_t* ptr = + reinterpret_cast(&ip_in->sin6_addr); + + if (memcmp(ptr, mask, sizeof(mask)) != 0) + return false; + + ptr += sizeof(mask); + uint32_t check = ptr[0] << 24 | ptr[1] << 16 | ptr[2] << 8 | ptr[3]; + + return (check & m) == (htonl(net_in->sin_addr.s_addr) & m); +} +} // namespace + +// TODO(@jasnell): The implementations of is_match, compare, and +// is_in_network have not been performance optimized and could +// likely benefit from work on more performant approaches. + +bool SocketAddress::is_match(const SocketAddress& other) const { + switch (family()) { + case AF_INET: + switch (other.family()) { + case AF_INET: return is_match_ipv4(*this, other); + case AF_INET6: return is_match_ipv4_ipv6(*this, other); + } + break; + case AF_INET6: + switch (other.family()) { + case AF_INET: return is_match_ipv4_ipv6(other, *this); + case AF_INET6: return is_match_ipv6(*this, other); + } + break; + } + return false; +} + +SocketAddress::CompareResult SocketAddress::compare( + const SocketAddress& other) const { + switch (family()) { + case AF_INET: + switch (other.family()) { + case AF_INET: return compare_ipv4(*this, other); + case AF_INET6: return compare_ipv4_ipv6(*this, other); + } + break; + case AF_INET6: + switch (other.family()) { + case AF_INET: { + CompareResult c = compare_ipv4_ipv6(other, *this); + switch (c) { + case SocketAddress::CompareResult::NOT_COMPARABLE: + // Fall through + case SocketAddress::CompareResult::SAME: + return c; + case SocketAddress::CompareResult::GREATER_THAN: + return SocketAddress::CompareResult::LESS_THAN; + case SocketAddress::CompareResult::LESS_THAN: + return SocketAddress::CompareResult::GREATER_THAN; + } + break; + } + case AF_INET6: return compare_ipv6(*this, other); + } + break; + } + return SocketAddress::CompareResult::NOT_COMPARABLE; +} + +bool SocketAddress::is_in_network( + const SocketAddress& other, + int prefix) const { + + switch (family()) { + case AF_INET: + switch (other.family()) { + case AF_INET: return in_network_ipv4(*this, other, prefix); + case AF_INET6: return in_network_ipv4_ipv6(*this, other, prefix); + } + break; + case AF_INET6: + switch (other.family()) { + case AF_INET: return in_network_ipv6_ipv4(*this, other, prefix); + case AF_INET6: return in_network_ipv6(*this, other, prefix); + } + break; + } + + return false; +} + +SocketAddressBlockList::SocketAddressBlockList( + std::shared_ptr parent) + : parent_(parent) {} + +void SocketAddressBlockList::AddSocketAddress( + const std::shared_ptr& address) { + Mutex::ScopedLock lock(mutex_); + std::unique_ptr rule = + std::make_unique(address); + rules_.emplace_front(std::move(rule)); + address_rules_[*address.get()] = rules_.begin(); +} + +void SocketAddressBlockList::RemoveSocketAddress( + const std::shared_ptr& address) { + Mutex::ScopedLock lock(mutex_); + auto it = address_rules_.find(*address.get()); + if (it != std::end(address_rules_)) { + rules_.erase(it->second); + address_rules_.erase(it); + } +} + +void SocketAddressBlockList::AddSocketAddressRange( + const std::shared_ptr& start, + const std::shared_ptr& end) { + Mutex::ScopedLock lock(mutex_); + std::unique_ptr rule = + std::make_unique(start, end); + rules_.emplace_front(std::move(rule)); +} + +void SocketAddressBlockList::AddSocketAddressMask( + const std::shared_ptr& network, + int prefix) { + Mutex::ScopedLock lock(mutex_); + std::unique_ptr rule = + std::make_unique(network, prefix); + rules_.emplace_front(std::move(rule)); +} + +bool SocketAddressBlockList::Apply( + const std::shared_ptr& address) { + Mutex::ScopedLock lock(mutex_); + for (const auto& rule : rules_) { + if (rule->Apply(address)) + return true; + } + return parent_ ? parent_->Apply(address) : false; +} + +SocketAddressBlockList::SocketAddressRule::SocketAddressRule( + const std::shared_ptr& address_) + : address(address_) {} + +SocketAddressBlockList::SocketAddressRangeRule::SocketAddressRangeRule( + const std::shared_ptr& start_, + const std::shared_ptr& end_) + : start(start_), + end(end_) {} + +SocketAddressBlockList::SocketAddressMaskRule::SocketAddressMaskRule( + const std::shared_ptr& network_, + int prefix_) + : network(network_), + prefix(prefix_) {} + +bool SocketAddressBlockList::SocketAddressRule::Apply( + const std::shared_ptr& address) { + return this->address->is_match(*address.get()); +} + +std::string SocketAddressBlockList::SocketAddressRule::ToString() { + std::string ret = "Address: "; + ret += address->family() == AF_INET ? "IPv4" : "IPv6"; + ret += " "; + ret += address->address(); + return ret; +} + +bool SocketAddressBlockList::SocketAddressRangeRule::Apply( + const std::shared_ptr& address) { + return *address.get() >= *start.get() && + *address.get() <= *end.get(); +} + +std::string SocketAddressBlockList::SocketAddressRangeRule::ToString() { + std::string ret = "Range: "; + ret += start->family() == AF_INET ? "IPv4" : "IPv6"; + ret += " "; + ret += start->address(); + ret += "-"; + ret += end->address(); + return ret; +} + +bool SocketAddressBlockList::SocketAddressMaskRule::Apply( + const std::shared_ptr& address) { + return address->is_in_network(*network.get(), prefix); +} + +std::string SocketAddressBlockList::SocketAddressMaskRule::ToString() { + std::string ret = "Subnet: "; + ret += network->family() == AF_INET ? "IPv4" : "IPv6"; + ret += " "; + ret += network->address(); + ret += "/" + std::to_string(prefix); + return ret; +} + +MaybeLocal SocketAddressBlockList::ListRules(Environment* env) { + Mutex::ScopedLock lock(mutex_); + std::vector> rules; + if (!ListRules(env, &rules)) + return MaybeLocal(); + return Array::New(env->isolate(), rules.data(), rules.size()); +} + +bool SocketAddressBlockList::ListRules( + Environment* env, + std::vector>* rules) { + if (parent_ && !parent_->ListRules(env, rules)) + return false; + for (const auto& rule : rules_) { + Local str; + if (!rule->ToV8String(env).ToLocal(&str)) + return false; + rules->push_back(str); + } + return true; +} + +void SocketAddressBlockList::MemoryInfo(node::MemoryTracker* tracker) const { + tracker->TrackField("rules", rules_); +} + +void SocketAddressBlockList::SocketAddressRule::MemoryInfo( + node::MemoryTracker* tracker) const { + tracker->TrackField("address", address); +} + +void SocketAddressBlockList::SocketAddressRangeRule::MemoryInfo( + node::MemoryTracker* tracker) const { + tracker->TrackField("start", start); + tracker->TrackField("end", end); +} + +void SocketAddressBlockList::SocketAddressMaskRule::MemoryInfo( + node::MemoryTracker* tracker) const { + tracker->TrackField("network", network); +} + +SocketAddressBlockListWrap::SocketAddressBlockListWrap( + Environment* env, + Local wrap, + std::shared_ptr blocklist) + : BaseObject(env, wrap), + blocklist_(std::move(blocklist)) { + MakeWeak(); +} + +BaseObjectPtr SocketAddressBlockListWrap::New( + Environment* env) { + Local obj; + if (!env->blocklist_constructor_template() + ->InstanceTemplate() + ->NewInstance(env->context()).ToLocal(&obj)) { + return BaseObjectPtr(); + } + BaseObjectPtr wrap = + MakeBaseObject(env, obj); + CHECK(wrap); + return wrap; +} + +BaseObjectPtr SocketAddressBlockListWrap::New( + Environment* env, + std::shared_ptr blocklist) { + Local obj; + if (!env->blocklist_constructor_template() + ->InstanceTemplate() + ->NewInstance(env->context()).ToLocal(&obj)) { + return BaseObjectPtr(); + } + BaseObjectPtr wrap = + MakeBaseObject( + env, + obj, + std::move(blocklist)); + CHECK(wrap); + return wrap; +} + +void SocketAddressBlockListWrap::New( + const FunctionCallbackInfo& args) { + CHECK(args.IsConstructCall()); + Environment* env = Environment::GetCurrent(args); + new SocketAddressBlockListWrap(env, args.This()); +} + +void SocketAddressBlockListWrap::AddAddress( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBlockListWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); + + CHECK(SocketAddressBase::HasInstance(env, args[0])); + SocketAddressBase* addr; + ASSIGN_OR_RETURN_UNWRAP(&addr, args[0]); + + wrap->blocklist_->AddSocketAddress(addr->address()); + + args.GetReturnValue().Set(true); +} + +void SocketAddressBlockListWrap::AddRange( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBlockListWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); + + CHECK(SocketAddressBase::HasInstance(env, args[0])); + CHECK(SocketAddressBase::HasInstance(env, args[1])); + + SocketAddressBase* start_addr; + SocketAddressBase* end_addr; + ASSIGN_OR_RETURN_UNWRAP(&start_addr, args[0]); + ASSIGN_OR_RETURN_UNWRAP(&end_addr, args[1]); + + // Starting address must come before the end address + if (*start_addr->address().get() > *end_addr->address().get()) + return args.GetReturnValue().Set(false); + + wrap->blocklist_->AddSocketAddressRange( + start_addr->address(), + end_addr->address()); + + args.GetReturnValue().Set(true); +} + +void SocketAddressBlockListWrap::AddSubnet( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBlockListWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); + + CHECK(SocketAddressBase::HasInstance(env, args[0])); + CHECK(args[1]->IsInt32()); + + SocketAddressBase* addr; + ASSIGN_OR_RETURN_UNWRAP(&addr, args[0]); + + int32_t prefix; + if (!args[1]->Int32Value(env->context()).To(&prefix)) { + return; + } + + CHECK_IMPLIES(addr->address()->family() == AF_INET, prefix <= 32); + CHECK_IMPLIES(addr->address()->family() == AF_INET6, prefix <= 128); + CHECK_GE(prefix, 0); + + wrap->blocklist_->AddSocketAddressMask(addr->address(), prefix); + + args.GetReturnValue().Set(true); +} + +void SocketAddressBlockListWrap::Check( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBlockListWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); + + CHECK(SocketAddressBase::HasInstance(env, args[0])); + SocketAddressBase* addr; + ASSIGN_OR_RETURN_UNWRAP(&addr, args[0]); + + args.GetReturnValue().Set(wrap->blocklist_->Apply(addr->address())); +} + +void SocketAddressBlockListWrap::GetRules( + const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBlockListWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); + Local rules; + if (wrap->blocklist_->ListRules(env).ToLocal(&rules)) + args.GetReturnValue().Set(rules); +} + +void SocketAddressBlockListWrap::MemoryInfo(MemoryTracker* tracker) const { + blocklist_->MemoryInfo(tracker); +} + +std::unique_ptr +SocketAddressBlockListWrap::CloneForMessaging() const { + return std::make_unique(this); +} + +bool SocketAddressBlockListWrap::HasInstance( + Environment* env, + Local value) { + return GetConstructorTemplate(env)->HasInstance(value); +} + +Local SocketAddressBlockListWrap::GetConstructorTemplate( + Environment* env) { + Local tmpl = env->blocklist_constructor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(SocketAddressBlockListWrap::New); + tmpl->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "BlockList")); + tmpl->Inherit(BaseObject::GetConstructorTemplate(env)); + tmpl->InstanceTemplate()->SetInternalFieldCount(kInternalFieldCount); + env->SetProtoMethod(tmpl, "addAddress", AddAddress); + env->SetProtoMethod(tmpl, "addRange", AddRange); + env->SetProtoMethod(tmpl, "addSubnet", AddSubnet); + env->SetProtoMethod(tmpl, "check", Check); + env->SetProtoMethod(tmpl, "getRules", GetRules); + env->set_blocklist_constructor_template(tmpl); + } + return tmpl; +} + +void SocketAddressBlockListWrap::Initialize( + Local target, + Local unused, + Local context, + void* priv) { + Environment* env = Environment::GetCurrent(context); + + env->SetConstructorFunction( + target, + "BlockList", + GetConstructorTemplate(env), + Environment::SetConstructorFunctionFlag::NONE); + + SocketAddressBase::Initialize(env, target); + + NODE_DEFINE_CONSTANT(target, AF_INET); + NODE_DEFINE_CONSTANT(target, AF_INET6); +} + +BaseObjectPtr SocketAddressBlockListWrap::TransferData::Deserialize( + Environment* env, + Local context, + std::unique_ptr self) { + return New(env, std::move(blocklist_)); +} + +void SocketAddressBlockListWrap::TransferData::MemoryInfo( + MemoryTracker* tracker) const { + blocklist_->MemoryInfo(tracker); +} + +bool SocketAddressBase::HasInstance(Environment* env, Local value) { + return GetConstructorTemplate(env)->HasInstance(value); +} + +Local SocketAddressBase::GetConstructorTemplate( + Environment* env) { + Local tmpl = env->socketaddress_constructor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(New); + tmpl->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "SocketAddress")); + tmpl->InstanceTemplate()->SetInternalFieldCount( + SocketAddressBase::kInternalFieldCount); + tmpl->Inherit(BaseObject::GetConstructorTemplate(env)); + env->SetProtoMethod(tmpl, "detail", Detail); + env->SetProtoMethod(tmpl, "legacyDetail", LegacyDetail); + env->SetProtoMethodNoSideEffect(tmpl, "flowlabel", GetFlowLabel); + env->set_socketaddress_constructor_template(tmpl); + } + return tmpl; +} + +void SocketAddressBase::Initialize(Environment* env, Local target) { + env->SetConstructorFunction( + target, + "SocketAddress", + GetConstructorTemplate(env), + Environment::SetConstructorFunctionFlag::NONE); +} + +BaseObjectPtr SocketAddressBase::Create( + Environment* env, + std::shared_ptr address) { + Local obj; + if (!GetConstructorTemplate(env) + ->InstanceTemplate() + ->NewInstance(env->context()).ToLocal(&obj)) { + return BaseObjectPtr(); + } + + return MakeBaseObject(env, obj, std::move(address)); +} + +void SocketAddressBase::New(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(args.IsConstructCall()); + CHECK(args[0]->IsString()); // address + CHECK(args[1]->IsInt32()); // port + CHECK(args[2]->IsInt32()); // family + CHECK(args[3]->IsUint32()); // flow label + + Utf8Value address(env->isolate(), args[0]); + int32_t port = args[1].As()->Value(); + int32_t family = args[2].As()->Value(); + uint32_t flow_label = args[3].As()->Value(); + + std::shared_ptr addr = std::make_shared(); + + if (!SocketAddress::New(family, *address, port, addr.get())) + return THROW_ERR_INVALID_ADDRESS(env); + + addr->set_flow_label(flow_label); + + new SocketAddressBase(env, args.This(), std::move(addr)); +} + +void SocketAddressBase::Detail(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(args[0]->IsObject()); + Local detail = args[0].As(); + + SocketAddressBase* base; + ASSIGN_OR_RETURN_UNWRAP(&base, args.Holder()); + + Local address; + if (!ToV8Value(env->context(), base->address_->address()).ToLocal(&address)) + return; + + if (detail->Set(env->context(), env->address_string(), address).IsJust() && + detail->Set( + env->context(), + env->port_string(), + Int32::New(env->isolate(), base->address_->port())).IsJust() && + detail->Set( + env->context(), + env->family_string(), + Int32::New(env->isolate(), base->address_->family())).IsJust() && + detail->Set( + env->context(), + env->flowlabel_string(), + Uint32::New(env->isolate(), base->address_->flow_label())) + .IsJust()) { + args.GetReturnValue().Set(detail); + } +} + +void SocketAddressBase::GetFlowLabel(const FunctionCallbackInfo& args) { + SocketAddressBase* base; + ASSIGN_OR_RETURN_UNWRAP(&base, args.Holder()); + args.GetReturnValue().Set(base->address_->flow_label()); +} + +void SocketAddressBase::LegacyDetail(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + SocketAddressBase* base; + ASSIGN_OR_RETURN_UNWRAP(&base, args.Holder()); + args.GetReturnValue().Set(base->address_->ToJS(env)); +} + +SocketAddressBase::SocketAddressBase( + Environment* env, + Local wrap, + std::shared_ptr address) + : BaseObject(env, wrap), + address_(std::move(address)) { + MakeWeak(); +} + +void SocketAddressBase::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("address", address_); +} + +std::unique_ptr +SocketAddressBase::CloneForMessaging() const { + return std::make_unique(this); +} + +void SocketAddressBase::TransferData::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("address", address_); +} + +BaseObjectPtr SocketAddressBase::TransferData::Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) { + return SocketAddressBase::Create(env, std::move(address_)); +} + } // namespace node + +NODE_MODULE_CONTEXT_AWARE_INTERNAL( + block_list, + node::SocketAddressBlockListWrap::Initialize) diff --git a/src/node_sockaddr.h b/src/node_sockaddr.h index c0d006a4d6e681..abd28d3e4aa7c5 100644 --- a/src/node_sockaddr.h +++ b/src/node_sockaddr.h @@ -3,12 +3,17 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#include "env.h" #include "memory_tracker.h" +#include "base_object.h" #include "node.h" +#include "node_worker.h" #include "uv.h" #include "v8.h" +#include #include +#include #include namespace node { @@ -17,6 +22,13 @@ class Environment; class SocketAddress : public MemoryRetainer { public: + enum class CompareResult { + NOT_COMPARABLE = -2, + LESS_THAN, + SAME, + GREATER_THAN + }; + struct Hash { size_t operator()(const SocketAddress& addr) const; }; @@ -24,6 +36,11 @@ class SocketAddress : public MemoryRetainer { inline bool operator==(const SocketAddress& other) const; inline bool operator!=(const SocketAddress& other) const; + inline bool operator<(const SocketAddress& other) const; + inline bool operator>(const SocketAddress& other) const; + inline bool operator<=(const SocketAddress& other) const; + inline bool operator>=(const SocketAddress& other) const; + inline static bool is_numeric_host(const char* hostname); inline static bool is_numeric_host(const char* hostname, int family); @@ -77,6 +94,20 @@ class SocketAddress : public MemoryRetainer { inline std::string address() const; inline int port() const; + // Returns true if the given other SocketAddress is a match + // for this one. The addresses are a match if: + // 1. They are the same family and match identically + // 2. They are different family but match semantically ( + // for instance, an IPv4 addres in IPv6 notation) + bool is_match(const SocketAddress& other) const; + + // Compares this SocketAddress to the given other SocketAddress. + CompareResult compare(const SocketAddress& other) const; + + // Returns true if this SocketAddress is within the subnet + // identified by the given network address and CIDR prefix. + bool is_in_network(const SocketAddress& network, int prefix) const; + // If the SocketAddress is an IPv6 address, returns the // current value of the IPv6 flow label, if set. Otherwise // returns 0. @@ -116,6 +147,256 @@ class SocketAddress : public MemoryRetainer { sockaddr_storage address_; }; +class SocketAddressBase : public BaseObject { + public: + static bool HasInstance(Environment* env, v8::Local value); + static v8::Local GetConstructorTemplate( + Environment* env); + static void Initialize(Environment* env, v8::Local target); + static BaseObjectPtr Create( + Environment* env, + std::shared_ptr address); + + static void New(const v8::FunctionCallbackInfo& args); + static void Detail(const v8::FunctionCallbackInfo& args); + static void LegacyDetail(const v8::FunctionCallbackInfo& args); + static void GetFlowLabel(const v8::FunctionCallbackInfo& args); + + SocketAddressBase( + Environment* env, + v8::Local wrap, + std::shared_ptr address); + + inline const std::shared_ptr& address() const { + return address_; + } + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressBase) + SET_SELF_SIZE(SocketAddressBase) + + TransferMode GetTransferMode() const override { + return TransferMode::kCloneable; + } + std::unique_ptr CloneForMessaging() const override; + + class TransferData : public worker::TransferData { + public: + inline explicit TransferData(const SocketAddressBase* wrap) + : address_(wrap->address_) {} + + inline explicit TransferData(std::shared_ptr address) + : address_(std::move(address)) {} + + BaseObjectPtr Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) override; + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressBase::TransferData) + SET_SELF_SIZE(TransferData) + + private: + std::shared_ptr address_; + }; + + private: + std::shared_ptr address_; +}; + +template +class SocketAddressLRU : public MemoryRetainer { + public: + using Type = typename T::Type; + + inline explicit SocketAddressLRU(size_t max_size); + + // If the item already exists, returns a reference to + // the existing item, adjusting items position in the + // LRU. If the item does not exist, emplaces the item + // and returns the new item. + Type* Upsert(const SocketAddress& address); + + // Returns a reference to the item if it exists, or + // nullptr. The position in the LRU is not modified. + Type* Peek(const SocketAddress& address) const; + + size_t size() const { return map_.size(); } + size_t max_size() const { return max_size_; } + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressLRU) + SET_SELF_SIZE(SocketAddressLRU) + + private: + using Pair = std::pair; + using Iterator = typename std::list::iterator; + + void CheckExpired(); + + std::list list_; + SocketAddress::Map map_; + size_t max_size_; +}; + +// A BlockList is used to evaluate whether a given +// SocketAddress should be accepted for inbound or +// outbound network activity. +class SocketAddressBlockList : public MemoryRetainer { + public: + explicit SocketAddressBlockList( + std::shared_ptr parent = {}); + ~SocketAddressBlockList() = default; + + void AddSocketAddress(const std::shared_ptr& address); + + void RemoveSocketAddress(const std::shared_ptr& address); + + void AddSocketAddressRange( + const std::shared_ptr& start, + const std::shared_ptr& end); + + void AddSocketAddressMask( + const std::shared_ptr& address, + int prefix); + + bool Apply(const std::shared_ptr& address); + + size_t size() const { return rules_.size(); } + + v8::MaybeLocal ListRules(Environment* env); + + struct Rule : public MemoryRetainer { + virtual bool Apply(const std::shared_ptr& address) = 0; + inline v8::MaybeLocal ToV8String(Environment* env); + virtual std::string ToString() = 0; + }; + + struct SocketAddressRule final : Rule { + std::shared_ptr address; + + explicit SocketAddressRule(const std::shared_ptr& address); + + bool Apply(const std::shared_ptr& address) override; + std::string ToString() override; + + void MemoryInfo(node::MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressRule) + SET_SELF_SIZE(SocketAddressRule) + }; + + struct SocketAddressRangeRule final : Rule { + std::shared_ptr start; + std::shared_ptr end; + + SocketAddressRangeRule( + const std::shared_ptr& start, + const std::shared_ptr& end); + + bool Apply(const std::shared_ptr& address) override; + std::string ToString() override; + + void MemoryInfo(node::MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressRangeRule) + SET_SELF_SIZE(SocketAddressRangeRule) + }; + + struct SocketAddressMaskRule final : Rule { + std::shared_ptr network; + int prefix; + + SocketAddressMaskRule( + const std::shared_ptr& address, + int prefix); + + bool Apply(const std::shared_ptr& address) override; + std::string ToString() override; + + void MemoryInfo(node::MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressMaskRule) + SET_SELF_SIZE(SocketAddressMaskRule) + }; + + void MemoryInfo(node::MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressBlockList) + SET_SELF_SIZE(SocketAddressBlockList) + + private: + bool ListRules( + Environment* env, + std::vector>* vec); + + std::shared_ptr parent_; + std::list> rules_; + SocketAddress::Map>::iterator> address_rules_; + + Mutex mutex_; +}; + +class SocketAddressBlockListWrap : public BaseObject { + public: + static bool HasInstance(Environment* env, v8::Local value); + static v8::Local GetConstructorTemplate( + Environment* env); + static void Initialize(v8::Local target, + v8::Local unused, + v8::Local context, + void* priv); + + static BaseObjectPtr New(Environment* env); + static BaseObjectPtr New( + Environment* env, + std::shared_ptr blocklist); + + static void New(const v8::FunctionCallbackInfo& args); + static void AddAddress(const v8::FunctionCallbackInfo& args); + static void AddRange(const v8::FunctionCallbackInfo& args); + static void AddSubnet(const v8::FunctionCallbackInfo& args); + static void Check(const v8::FunctionCallbackInfo& args); + static void GetRules(const v8::FunctionCallbackInfo& args); + + SocketAddressBlockListWrap( + Environment* env, + v8::Local wrap, + std::shared_ptr blocklist = + std::make_shared()); + + void MemoryInfo(node::MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressBlockListWrap) + SET_SELF_SIZE(SocketAddressBlockListWrap) + + TransferMode GetTransferMode() const override { + return TransferMode::kCloneable; + } + std::unique_ptr CloneForMessaging() const override; + + class TransferData : public worker::TransferData { + public: + inline explicit TransferData(const SocketAddressBlockListWrap* wrap) + : blocklist_(wrap->blocklist_) {} + + inline explicit TransferData( + std::shared_ptr blocklist) + : blocklist_(std::move(blocklist)) {} + + BaseObjectPtr Deserialize( + Environment* env, + v8::Local context, + std::unique_ptr self) override; + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(SocketAddressBlockListWrap::TransferData) + SET_SELF_SIZE(TransferData) + + private: + std::shared_ptr blocklist_; + }; + + private: + std::shared_ptr blocklist_; +}; + } // namespace node #endif // NOE_WANT_INTERNALS diff --git a/src/node_stat_watcher.cc b/src/node_stat_watcher.cc index 70903525baa735..344ea6bb7ea2e6 100644 --- a/src/node_stat_watcher.cc +++ b/src/node_stat_watcher.cc @@ -38,7 +38,6 @@ using v8::HandleScope; using v8::Integer; using v8::Local; using v8::Object; -using v8::String; using v8::Uint32; using v8::Value; @@ -49,15 +48,11 @@ void StatWatcher::Initialize(Environment* env, Local target) { Local t = env->NewFunctionTemplate(StatWatcher::New); t->InstanceTemplate()->SetInternalFieldCount( StatWatcher::kInternalFieldCount); - Local statWatcherString = - FIXED_ONE_BYTE_STRING(env->isolate(), "StatWatcher"); - t->SetClassName(statWatcherString); t->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "start", StatWatcher::Start); - target->Set(env->context(), statWatcherString, - t->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "StatWatcher", t); } diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc index 58813a9083a560..b36a5fc0bf774a 100644 --- a/src/node_trace_events.cc +++ b/src/node_trace_events.cc @@ -135,10 +135,7 @@ void NodeCategorySet::Initialize(Local target, env->SetProtoMethod(category_set, "enable", NodeCategorySet::Enable); env->SetProtoMethod(category_set, "disable", NodeCategorySet::Disable); - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(env->isolate(), "CategorySet"), - category_set->GetFunction(env->context()).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "CategorySet", category_set); Local isTraceCategoryEnabled = FIXED_ONE_BYTE_STRING(env->isolate(), "isTraceCategoryEnabled"); diff --git a/src/node_util.cc b/src/node_util.cc index eac09f8d44fcbd..7ea8cf8fe6bfc8 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -333,19 +333,15 @@ void Initialize(Local target, env->should_abort_on_uncaught_toggle().GetJSArray()) .FromJust()); - Local weak_ref_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "WeakReference"); Local weak_ref = env->NewFunctionTemplate(WeakReference::New); weak_ref->InstanceTemplate()->SetInternalFieldCount( WeakReference::kInternalFieldCount); - weak_ref->SetClassName(weak_ref_string); weak_ref->Inherit(BaseObject::GetConstructorTemplate(env)); env->SetProtoMethod(weak_ref, "get", WeakReference::Get); env->SetProtoMethod(weak_ref, "incRef", WeakReference::IncRef); env->SetProtoMethod(weak_ref, "decRef", WeakReference::DecRef); - target->Set(context, weak_ref_string, - weak_ref->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "WeakReference", weak_ref); env->SetMethod(target, "guessHandleType", GuessHandleType); } diff --git a/src/node_version.h b/src/node_version.h index bdcb46a313a351..f7880e89ec6c3b 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -23,13 +23,13 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 14 -#define NODE_MINOR_VERSION 17 -#define NODE_PATCH_VERSION 7 +#define NODE_MINOR_VERSION 18 +#define NODE_PATCH_VERSION 0 #define NODE_VERSION_IS_LTS 1 #define NODE_VERSION_LTS_CODENAME "Fermium" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) diff --git a/src/node_wasi.cc b/src/node_wasi.cc index 52e85c38be1660..ffcc37c5274c98 100644 --- a/src/node_wasi.cc +++ b/src/node_wasi.cc @@ -1678,9 +1678,7 @@ static void Initialize(Local target, Environment* env = Environment::GetCurrent(context); Local tmpl = env->NewFunctionTemplate(WASI::New); - auto wasi_wrap_string = FIXED_ONE_BYTE_STRING(env->isolate(), "WASI"); tmpl->InstanceTemplate()->SetInternalFieldCount(WASI::kInternalFieldCount); - tmpl->SetClassName(wasi_wrap_string); tmpl->Inherit(BaseObject::GetConstructorTemplate(env)); env->SetProtoMethod(tmpl, "args_get", WASI::ArgsGet); @@ -1733,9 +1731,7 @@ static void Initialize(Local target, env->SetInstanceMethod(tmpl, "_setMemory", WASI::_SetMemory); - target->Set(env->context(), - wasi_wrap_string, - tmpl->GetFunction(context).ToLocalChecked()).ToChecked(); + env->SetConstructorFunction(target, "WASI", tmpl); } diff --git a/src/node_watchdog.cc b/src/node_watchdog.cc index 8bd3b283b5329d..ff2a0229087138 100644 --- a/src/node_watchdog.cc +++ b/src/node_watchdog.cc @@ -124,19 +124,12 @@ void TraceSigintWatchdog::Init(Environment* env, Local target) { Local constructor = env->NewFunctionTemplate(New); constructor->InstanceTemplate()->SetInternalFieldCount( TraceSigintWatchdog::kInternalFieldCount); - Local js_sigint_watch_dog = - FIXED_ONE_BYTE_STRING(env->isolate(), "TraceSigintWatchdog"); - constructor->SetClassName(js_sigint_watch_dog); constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(constructor, "start", Start); env->SetProtoMethod(constructor, "stop", Stop); - target - ->Set(env->context(), - js_sigint_watch_dog, - constructor->GetFunction(env->context()).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "TraceSigintWatchdog", constructor); } void TraceSigintWatchdog::New(const FunctionCallbackInfo& args) { diff --git a/src/node_worker.cc b/src/node_worker.cc index e2f70f6b357766..db14616427c71e 100644 --- a/src/node_worker.cc +++ b/src/node_worker.cc @@ -1,5 +1,6 @@ #include "node_worker.h" #include "debug_utils-inl.h" +#include "histogram-inl.h" #include "memory_tracker-inl.h" #include "node_errors.h" #include "node_buffer.h" @@ -157,6 +158,9 @@ class WorkerThreadData { Isolate::Initialize(isolate, params); SetIsolateUpForNode(isolate); + // Be sure it's called before Environment::InitializeDiagnostics() + // so that this callback stays when the callback of + // --heapsnapshot-near-heap-limit gets is popped. isolate->AddNearHeapLimitCallback(Worker::NearHeapLimit, w); { @@ -175,6 +179,8 @@ class WorkerThreadData { if (w_->per_isolate_opts_) isolate_data_->set_options(std::move(w_->per_isolate_opts_)); isolate_data_->set_worker_context(w_); + isolate_data_->max_young_gen_size = + params.constraints.max_young_generation_size_in_bytes(); } Mutex::ScopedLock lock(w_->mutex_); @@ -352,7 +358,8 @@ void Worker::Run() { more = uv_loop_alive(&data.loop_); if (more && !is_stopped()) continue; - EmitBeforeExit(env_.get()); + if (EmitProcessBeforeExit(env_.get()).IsNothing()) + break; // Emit `beforeExit` if the loop became alive either after emitting // event, or after running some callbacks. @@ -368,7 +375,7 @@ void Worker::Run() { bool stopped = is_stopped(); if (!stopped) { env_->VerifyNoStrongBaseObjects(); - exit_code = EmitExit(env_.get()); + exit_code = EmitProcessExit(env_.get()).FromMaybe(1); } Mutex::ScopedLock lock(mutex_); if (exit_code_ == 0 && !stopped) @@ -588,6 +595,8 @@ void Worker::New(const FunctionCallbackInfo& args) { CHECK(args[4]->IsBoolean()); if (args[4]->IsTrue() || env->tracks_unmanaged_fds()) worker->environment_flags_ |= EnvironmentFlags::kTrackUnmanagedFds; + if (env->hide_console_windows()) + worker->environment_flags_ |= EnvironmentFlags::kHideConsoleWindows; } void Worker::StartThread(const FunctionCallbackInfo& args) { @@ -842,12 +851,7 @@ void InitWorker(Local target, env->SetProtoMethod(w, "loopIdleTime", Worker::LoopIdleTime); env->SetProtoMethod(w, "loopStartTime", Worker::LoopStartTime); - Local workerString = - FIXED_ONE_BYTE_STRING(env->isolate(), "Worker"); - w->SetClassName(workerString); - target->Set(env->context(), - workerString, - w->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Worker", w); } { diff --git a/src/node_zlib.cc b/src/node_zlib.cc index efb11debf8f40d..b8733229b0b06b 100644 --- a/src/node_zlib.cc +++ b/src/node_zlib.cc @@ -54,7 +54,6 @@ using v8::Int32; using v8::Integer; using v8::Local; using v8::Object; -using v8::String; using v8::Uint32Array; using v8::Value; @@ -72,6 +71,9 @@ namespace { #define Z_MIN_LEVEL -1 #define Z_MAX_LEVEL 9 #define Z_DEFAULT_LEVEL Z_DEFAULT_COMPRESSION +#define Z_MIN_WINDOWBITS 8 +#define Z_MAX_WINDOWBITS 15 +#define Z_DEFAULT_WINDOWBITS 15 #define ZLIB_ERROR_CODES(V) \ V(Z_OK) \ @@ -1262,11 +1264,7 @@ struct MakeClass { env->SetProtoMethod(z, "params", Stream::Params); env->SetProtoMethod(z, "reset", Stream::Reset); - Local zlibString = OneByteString(env->isolate(), name); - z->SetClassName(zlibString); - target->Set(env->context(), - zlibString, - z->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, name, z); } }; diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 1396395463dfed..7ec3c66a78bb95 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -43,7 +43,6 @@ using v8::Int32; using v8::Local; using v8::MaybeLocal; using v8::Object; -using v8::String; using v8::Value; MaybeLocal PipeWrap::Instantiate(Environment* env, @@ -69,8 +68,6 @@ void PipeWrap::Initialize(Local target, Environment* env = Environment::GetCurrent(context); Local t = env->NewFunctionTemplate(New); - Local pipeString = FIXED_ONE_BYTE_STRING(env->isolate(), "Pipe"); - t->SetClassName(pipeString); t->InstanceTemplate() ->SetInternalFieldCount(StreamBase::kInternalFieldCount); @@ -87,20 +84,13 @@ void PipeWrap::Initialize(Local target, env->SetProtoMethod(t, "fchmod", Fchmod); - target->Set(env->context(), - pipeString, - t->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Pipe", t); env->set_pipe_constructor_template(t); // Create FunctionTemplate for PipeConnectWrap. auto cwt = BaseObject::MakeLazilyInitializedJSTemplate(env); cwt->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local wrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "PipeConnectWrap"); - cwt->SetClassName(wrapString); - target->Set(env->context(), - wrapString, - cwt->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "PipeConnectWrap", cwt); // Define constants Local constants = Object::New(env->isolate()); diff --git a/src/process_wrap.cc b/src/process_wrap.cc index 3d1065c9922183..679429286b8907 100644 --- a/src/process_wrap.cc +++ b/src/process_wrap.cc @@ -54,18 +54,13 @@ class ProcessWrap : public HandleWrap { Local constructor = env->NewFunctionTemplate(New); constructor->InstanceTemplate()->SetInternalFieldCount( ProcessWrap::kInternalFieldCount); - Local processString = - FIXED_ONE_BYTE_STRING(env->isolate(), "Process"); - constructor->SetClassName(processString); constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(constructor, "spawn", Spawn); env->SetProtoMethod(constructor, "kill", Kill); - target->Set(env->context(), - processString, - constructor->GetFunction(context).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "Process", constructor); } SET_NO_MEMORY_INFO() @@ -125,6 +120,11 @@ class ProcessWrap : public HandleWrap { options->stdio[i].flags = static_cast( UV_CREATE_PIPE | UV_READABLE_PIPE | UV_WRITABLE_PIPE); options->stdio[i].data.stream = StreamForWrap(env, stdio); + } else if (type->StrictEquals(env->overlapped_string())) { + options->stdio[i].flags = static_cast( + UV_CREATE_PIPE | UV_READABLE_PIPE | UV_WRITABLE_PIPE | + UV_OVERLAPPED_PIPE); + options->stdio[i].data.stream = StreamForWrap(env, stdio); } else if (type->StrictEquals(env->wrap_string())) { options->stdio[i].flags = UV_INHERIT_STREAM; options->stdio[i].data.stream = StreamForWrap(env, stdio); @@ -238,6 +238,10 @@ class ProcessWrap : public HandleWrap { options.flags |= UV_PROCESS_WINDOWS_HIDE; } + if (env->hide_console_windows()) { + options.flags |= UV_PROCESS_WINDOWS_HIDE_CONSOLE; + } + // options.windows_verbatim_arguments Local wva_v = js_options->Get(context, env->windows_verbatim_arguments_string()) diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc index ac7be821ea4fb3..e8a1500d2e9961 100644 --- a/src/signal_wrap.cc +++ b/src/signal_wrap.cc @@ -35,7 +35,6 @@ using v8::HandleScope; using v8::Integer; using v8::Local; using v8::Object; -using v8::String; using v8::Value; void DecreaseSignalHandlerCount(int signum); @@ -55,17 +54,12 @@ class SignalWrap : public HandleWrap { Local constructor = env->NewFunctionTemplate(New); constructor->InstanceTemplate()->SetInternalFieldCount( SignalWrap::kInternalFieldCount); - Local signalString = - FIXED_ONE_BYTE_STRING(env->isolate(), "Signal"); - constructor->SetClassName(signalString); constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(constructor, "start", Start); env->SetProtoMethod(constructor, "stop", Stop); - target->Set(env->context(), signalString, - constructor->GetFunction(env->context()).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "Signal", constructor); } SET_NO_MEMORY_INFO() diff --git a/src/stream_pipe.cc b/src/stream_pipe.cc index 1422f9e0ea548e..afd7ec36eef294 100644 --- a/src/stream_pipe.cc +++ b/src/stream_pipe.cc @@ -13,7 +13,6 @@ using v8::FunctionTemplate; using v8::HandleScope; using v8::Local; using v8::Object; -using v8::String; using v8::Value; StreamPipe::StreamPipe(StreamBase* source, @@ -293,20 +292,14 @@ void InitializeStreamPipe(Local target, // Create FunctionTemplate for FileHandle::CloseReq Local pipe = env->NewFunctionTemplate(StreamPipe::New); - Local stream_pipe_string = - FIXED_ONE_BYTE_STRING(env->isolate(), "StreamPipe"); env->SetProtoMethod(pipe, "unpipe", StreamPipe::Unpipe); env->SetProtoMethod(pipe, "start", StreamPipe::Start); env->SetProtoMethod(pipe, "isClosed", StreamPipe::IsClosed); env->SetProtoMethod(pipe, "pendingWrites", StreamPipe::PendingWrites); pipe->Inherit(AsyncWrap::GetConstructorTemplate(env)); - pipe->SetClassName(stream_pipe_string); pipe->InstanceTemplate()->SetInternalFieldCount( StreamPipe::kInternalFieldCount); - target - ->Set(context, stream_pipe_string, - pipe->GetFunction(context).ToLocalChecked()) - .Check(); + env->SetConstructorFunction(target, "StreamPipe", pipe); } } // anonymous namespace diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index bd396110fccade..a1fa5e94b73711 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -49,7 +49,6 @@ using v8::Object; using v8::PropertyAttribute; using v8::ReadOnly; using v8::Signature; -using v8::String; using v8::Value; @@ -67,9 +66,6 @@ void LibuvStreamWrap::Initialize(Local target, Local sw = FunctionTemplate::New(env->isolate(), is_construct_call_callback); sw->InstanceTemplate()->SetInternalFieldCount(StreamReq::kInternalFieldCount); - Local wrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "ShutdownWrap"); - sw->SetClassName(wrapString); // we need to set handle and callback to null, // so that those fields are created and functions @@ -88,22 +84,15 @@ void LibuvStreamWrap::Initialize(Local target, sw->Inherit(AsyncWrap::GetConstructorTemplate(env)); - target->Set(env->context(), - wrapString, - sw->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "ShutdownWrap", sw); env->set_shutdown_wrap_template(sw->InstanceTemplate()); Local ww = FunctionTemplate::New(env->isolate(), is_construct_call_callback); ww->InstanceTemplate()->SetInternalFieldCount( StreamReq::kInternalFieldCount); - Local writeWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "WriteWrap"); - ww->SetClassName(writeWrapString); ww->Inherit(AsyncWrap::GetConstructorTemplate(env)); - target->Set(env->context(), - writeWrapString, - ww->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "WriteWrap", ww); env->set_write_wrap_template(ww->InstanceTemplate()); NODE_DEFINE_CONSTANT(target, kReadBytesOrError); diff --git a/src/string_bytes.cc b/src/string_bytes.cc index c1b3229e6077c9..daff1424d22e5a 100644 --- a/src/string_bytes.cc +++ b/src/string_bytes.cc @@ -358,6 +358,8 @@ size_t StringBytes::Write(Isolate* isolate, break; } + case BASE64URL: + // Fall through case BASE64: if (str->IsExternalOneByte()) { auto ext = str->GetExternalOneByteStringResource(); @@ -425,6 +427,8 @@ Maybe StringBytes::StorageSize(Isolate* isolate, data_size = str->Length() * sizeof(uint16_t); break; + case BASE64URL: + // Fall through case BASE64: data_size = base64_decoded_size_fast(str->Length()); break; @@ -466,6 +470,8 @@ Maybe StringBytes::Size(Isolate* isolate, case UCS2: return Just(str->Length() * sizeof(uint16_t)); + case BASE64URL: + // Fall through case BASE64: { String::Value value(isolate, str); return Just(base64_decoded_size(*value, value.length())); @@ -691,6 +697,20 @@ MaybeLocal StringBytes::Encode(Isolate* isolate, return ExternOneByteString::New(isolate, dst, dlen, error); } + case BASE64URL: { + size_t dlen = base64_encoded_size(buflen, Base64Mode::URL); + char* dst = node::UncheckedMalloc(dlen); + if (dst == nullptr) { + *error = node::ERR_MEMORY_ALLOCATION_FAILED(isolate); + return MaybeLocal(); + } + + size_t written = base64_encode(buf, buflen, dst, dlen, Base64Mode::URL); + CHECK_EQ(written, dlen); + + return ExternOneByteString::New(isolate, dst, dlen, error); + } + case HEX: { size_t dlen = buflen * 2; char* dst = node::UncheckedMalloc(dlen); diff --git a/src/string_decoder.cc b/src/string_decoder.cc index 779d60356d609d..fc37cbe29e40bf 100644 --- a/src/string_decoder.cc +++ b/src/string_decoder.cc @@ -69,7 +69,10 @@ MaybeLocal StringDecoder::DecodeData(Isolate* isolate, size_t nread = *nread_ptr; - if (Encoding() == UTF8 || Encoding() == UCS2 || Encoding() == BASE64) { + if (Encoding() == UTF8 || + Encoding() == UCS2 || + Encoding() == BASE64 || + Encoding() == BASE64URL) { // See if we want bytes to finish a character from the previous // chunk; if so, copy the new bytes to the missing bytes buffer // and create a small string from it that is to be prepended to the @@ -197,7 +200,7 @@ MaybeLocal StringDecoder::DecodeData(Isolate* isolate, state_[kBufferedBytes] = 2; state_[kMissingBytes] = 2; } - } else if (Encoding() == BASE64) { + } else if (Encoding() == BASE64 || Encoding() == BASE64URL) { state_[kBufferedBytes] = nread % 3; if (state_[kBufferedBytes] > 0) state_[kMissingBytes] = 3 - BufferedBytes(); @@ -310,6 +313,7 @@ void InitializeStringDecoder(Local target, ADD_TO_ENCODINGS_ARRAY(ASCII, "ascii"); ADD_TO_ENCODINGS_ARRAY(UTF8, "utf8"); ADD_TO_ENCODINGS_ARRAY(BASE64, "base64"); + ADD_TO_ENCODINGS_ARRAY(BASE64URL, "base64url"); ADD_TO_ENCODINGS_ARRAY(UCS2, "utf16le"); ADD_TO_ENCODINGS_ARRAY(HEX, "hex"); ADD_TO_ENCODINGS_ARRAY(BUFFER, "buffer"); diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index fa45bd118d4724..cd7174984e2e36 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -74,8 +74,6 @@ void TCPWrap::Initialize(Local target, Environment* env = Environment::GetCurrent(context); Local t = env->NewFunctionTemplate(New); - Local tcpString = FIXED_ONE_BYTE_STRING(env->isolate(), "TCP"); - t->SetClassName(tcpString); t->InstanceTemplate()->SetInternalFieldCount(StreamBase::kInternalFieldCount); // Init properties @@ -103,21 +101,14 @@ void TCPWrap::Initialize(Local target, env->SetProtoMethod(t, "setSimultaneousAccepts", SetSimultaneousAccepts); #endif - target->Set(env->context(), - tcpString, - t->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "TCP", t); env->set_tcp_constructor_template(t); // Create FunctionTemplate for TCPConnectWrap. Local cwt = BaseObject::MakeLazilyInitializedJSTemplate(env); cwt->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local wrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "TCPConnectWrap"); - cwt->SetClassName(wrapString); - target->Set(env->context(), - wrapString, - cwt->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "TCPConnectWrap", cwt); // Define constants Local constants = Object::New(env->isolate()); diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc index a2cb185551800b..203eb1e9415926 100644 --- a/src/udp_wrap.cc +++ b/src/udp_wrap.cc @@ -43,7 +43,6 @@ using v8::Object; using v8::PropertyAttribute; using v8::ReadOnly; using v8::Signature; -using v8::String; using v8::Uint32; using v8::Undefined; using v8::Value; @@ -134,9 +133,6 @@ void UDPWrap::Initialize(Local target, Local t = env->NewFunctionTemplate(New); t->InstanceTemplate()->SetInternalFieldCount( UDPWrapBase::kInternalFieldCount); - Local udpString = - FIXED_ONE_BYTE_STRING(env->isolate(), "UDP"); - t->SetClassName(udpString); enum PropertyAttribute attributes = static_cast(ReadOnly | DontDelete); @@ -182,9 +178,7 @@ void UDPWrap::Initialize(Local target, t->Inherit(HandleWrap::GetConstructorTemplate(env)); - target->Set(env->context(), - udpString, - t->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "UDP", t); env->set_udp_constructor_function( t->GetFunction(env->context()).ToLocalChecked()); @@ -192,12 +186,7 @@ void UDPWrap::Initialize(Local target, Local swt = BaseObject::MakeLazilyInitializedJSTemplate(env); swt->Inherit(AsyncWrap::GetConstructorTemplate(env)); - Local sendWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "SendWrap"); - swt->SetClassName(sendWrapString); - target->Set(env->context(), - sendWrapString, - swt->GetFunction(env->context()).ToLocalChecked()).Check(); + env->SetConstructorFunction(target, "SendWrap", swt); Local constants = Object::New(env->isolate()); NODE_DEFINE_CONSTANT(constants, UV_UDP_IPV6ONLY); diff --git a/src/uv.cc b/src/uv.cc index dbec7e505e2d71..009136cef6bac5 100644 --- a/src/uv.cc +++ b/src/uv.cc @@ -108,11 +108,10 @@ void Initialize(Local target, void* priv) { Environment* env = Environment::GetCurrent(context); Isolate* isolate = env->isolate(); - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(isolate, "errname"), - env->NewFunctionTemplate(ErrName) - ->GetFunction(env->context()) - .ToLocalChecked()).Check(); + env->SetConstructorFunction( + target, + "errname", + env->NewFunctionTemplate(ErrName)); // TODO(joyeecheung): This should be deprecated in user land in favor of // `util.getSystemErrorName(err)`. diff --git a/test/abort/test-worker-abort-uncaught-exception.js b/test/abort/test-worker-abort-uncaught-exception.js index 63f7acdddc7fd7..141e2cacdbe69b 100644 --- a/test/abort/test-worker-abort-uncaught-exception.js +++ b/test/abort/test-worker-abort-uncaught-exception.js @@ -12,7 +12,7 @@ if (process.argv[2] === 'child') { } const child = spawn(process.execPath, [ - '--abort-on-uncaught-exception', __filename, 'child' + '--abort-on-uncaught-exception', __filename, 'child', ]); child.on('exit', common.mustCall((code, sig) => { if (common.isWindows) { diff --git a/test/addons/async-hooks-promise/binding.cc b/test/addons/async-hooks-promise/binding.cc deleted file mode 100644 index 8fe6b9471bcee5..00000000000000 --- a/test/addons/async-hooks-promise/binding.cc +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -namespace { - -using v8::FunctionCallbackInfo; -using v8::Isolate; -using v8::Local; -using v8::Object; -using v8::Promise; -using v8::String; -using v8::Value; - -static void ThrowError(Isolate* isolate, const char* err_msg) { - Local str = String::NewFromOneByte( - isolate, - reinterpret_cast(err_msg)).ToLocalChecked(); - isolate->ThrowException(str); -} - -static void GetPromiseField(const FunctionCallbackInfo& args) { - auto isolate = args.GetIsolate(); - - if (!args[0]->IsPromise()) - return ThrowError(isolate, "arg is not an Promise"); - - auto p = args[0].As(); - if (p->InternalFieldCount() < 1) - return ThrowError(isolate, "Promise has no internal field"); - - auto l = p->GetInternalField(0); - args.GetReturnValue().Set(l); -} - -inline void Initialize(v8::Local binding) { - NODE_SET_METHOD(binding, "getPromiseField", GetPromiseField); -} - -NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) - -} // anonymous namespace diff --git a/test/addons/async-hooks-promise/binding.gyp b/test/addons/async-hooks-promise/binding.gyp deleted file mode 100644 index 55fbe7050f18e4..00000000000000 --- a/test/addons/async-hooks-promise/binding.gyp +++ /dev/null @@ -1,9 +0,0 @@ -{ - 'targets': [ - { - 'target_name': 'binding', - 'sources': [ 'binding.cc' ], - 'includes': ['../common.gypi'], - } - ] -} diff --git a/test/addons/async-hooks-promise/test.js b/test/addons/async-hooks-promise/test.js deleted file mode 100644 index d38bf9bd978103..00000000000000 --- a/test/addons/async-hooks-promise/test.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; -// Flags: --expose-internals - -const common = require('../../common'); -const assert = require('assert'); -const async_hooks = require('async_hooks'); -const { async_id_symbol, - trigger_async_id_symbol } = require('internal/async_hooks').symbols; -const binding = require(`./build/${common.buildType}/binding`); - -if (process.env.NODE_TEST_WITH_ASYNC_HOOKS) { - common.skip('cannot test with env var NODE_TEST_WITH_ASYNC_HOOKS'); - return; -} - -// Baseline to make sure the internal field isn't being set. -assert.strictEqual( - binding.getPromiseField(Promise.resolve(1)), - 0); - -const emptyHook = async_hooks.createHook({}).enable(); - -// Check that no PromiseWrap is created when there are no hook callbacks. -assert.strictEqual( - binding.getPromiseField(Promise.resolve(1)), - 0); - -emptyHook.disable(); - -let lastResource; -let lastAsyncId; -let lastTriggerAsyncId; -const initOnlyHook = async_hooks.createHook({ - init(asyncId, type, triggerAsyncId, resource) { - lastAsyncId = asyncId; - lastTriggerAsyncId = triggerAsyncId; - lastResource = resource; - } -}).enable(); - -// Check that no PromiseWrap is created when only using an init hook. -{ - const promise = Promise.resolve(1); - assert.strictEqual(binding.getPromiseField(promise), 0); - assert.strictEqual(lastResource, promise); - assert.strictEqual(lastAsyncId, promise[async_id_symbol]); - assert.strictEqual(lastTriggerAsyncId, promise[trigger_async_id_symbol]); -} - -initOnlyHook.disable(); - -lastResource = null; -const hookWithDestroy = async_hooks.createHook({ - init(asyncId, type, triggerAsyncId, resource) { - lastAsyncId = asyncId; - lastTriggerAsyncId = triggerAsyncId; - lastResource = resource; - }, - - destroy() { - - } -}).enable(); - -// Check that the internal field returns the same PromiseWrap passed to init(). -{ - const promise = Promise.resolve(1); - const promiseWrap = binding.getPromiseField(promise); - assert.strictEqual(lastResource, promiseWrap); - assert.strictEqual(lastAsyncId, promiseWrap[async_id_symbol]); - assert.strictEqual(lastTriggerAsyncId, promiseWrap[trigger_async_id_symbol]); -} - -hookWithDestroy.disable(); - -// Check that internal fields are no longer being set. This needs to be delayed -// a bit because the `disable()` call only schedules disabling the hook in a -// future microtask. -setImmediate(() => { - assert.strictEqual( - binding.getPromiseField(Promise.resolve(1)), - 0); - - const noDestroyHook = async_hooks.createHook({ - init(asyncId, type, triggerAsyncId, resource) { - lastAsyncId = asyncId; - lastTriggerAsyncId = triggerAsyncId; - lastResource = resource; - }, - - before() {}, - after() {}, - resolve() {} - }).enable(); - - // Check that no PromiseWrap is created when there is no destroy hook. - const promise = Promise.resolve(1); - assert.strictEqual(binding.getPromiseField(promise), 0); - assert.strictEqual(lastResource, promise); - assert.strictEqual(lastAsyncId, promise[async_id_symbol]); - assert.strictEqual(lastTriggerAsyncId, promise[trigger_async_id_symbol]); - - noDestroyHook.disable(); -}); diff --git a/test/addons/parse-encoding/binding.cc b/test/addons/parse-encoding/binding.cc index cdbd8e44466db8..7fae5bf4bdb61c 100644 --- a/test/addons/parse-encoding/binding.cc +++ b/test/addons/parse-encoding/binding.cc @@ -6,6 +6,7 @@ namespace { #define ENCODING_MAP(V) \ V(ASCII) \ V(BASE64) \ + V(BASE64URL) \ V(BUFFER) \ V(HEX) \ V(LATIN1) \ diff --git a/test/addons/parse-encoding/test.js b/test/addons/parse-encoding/test.js index 1456115a926f3e..da52f2dc4248af 100644 --- a/test/addons/parse-encoding/test.js +++ b/test/addons/parse-encoding/test.js @@ -8,6 +8,7 @@ assert.strictEqual(parseEncoding(''), 'UNKNOWN'); assert.strictEqual(parseEncoding('ascii'), 'ASCII'); assert.strictEqual(parseEncoding('base64'), 'BASE64'); +assert.strictEqual(parseEncoding('base64url'), 'BASE64URL'); assert.strictEqual(parseEncoding('binary'), 'LATIN1'); assert.strictEqual(parseEncoding('buffer'), 'BUFFER'); assert.strictEqual(parseEncoding('hex'), 'HEX'); diff --git a/test/addons/register-signal-handler/test.js b/test/addons/register-signal-handler/test.js index f56bb2f411024c..145baf2da610e6 100644 --- a/test/addons/register-signal-handler/test.js +++ b/test/addons/register-signal-handler/test.js @@ -34,7 +34,7 @@ for (const raiseSignal of [ 'SIGABRT', 'SIGSEGV' ]) { { reset: true, count: 1, stderr: [signo], code: 0, signal: null }, { reset: true, count: 2, stderr: [signo], code: null, signal: raiseSignal }, { reset: false, count: 1, stderr: [signo], code: 0, signal: null }, - { reset: false, count: 2, stderr: [signo, signo], code: 0, signal: null } + { reset: false, count: 2, stderr: [signo, signo], code: 0, signal: null }, ]) { // We do not want to generate core files when running this test as an // addon test. We require this file as an abort test as well, though, diff --git a/test/addons/worker-addon/test.js b/test/addons/worker-addon/test.js index f2df4665f53068..f9923638d48767 100644 --- a/test/addons/worker-addon/test.js +++ b/test/addons/worker-addon/test.js @@ -48,7 +48,7 @@ for (const { test, expected } of [ // musl doesn't support unloading, so the output may be missing // a dtor + ctor pair. expected: [ - 'ctor cleanup dtor ctor cleanup dtor ' + 'ctor cleanup dtor ctor cleanup dtor ', ].concat(libcMayBeMusl ? [ 'ctor cleanup cleanup dtor ', ] : []) @@ -57,7 +57,7 @@ for (const { test, expected } of [ console.log('spawning test', test); const proc = child_process.spawnSync(process.execPath, [ __filename, - test + test, ]); process.stderr.write(proc.stderr.toString()); assert.strictEqual(proc.stderr.toString(), ''); diff --git a/test/async-hooks/test-async-local-storage-run-resource.js b/test/async-hooks/test-async-local-storage-run-resource.js deleted file mode 100644 index 21bc70051bd718..00000000000000 --- a/test/async-hooks/test-async-local-storage-run-resource.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; -require('../common'); -const assert = require('assert'); -const { - AsyncLocalStorage, - executionAsyncResource -} = require('async_hooks'); - -const asyncLocalStorage = new AsyncLocalStorage(); - -const outerResource = executionAsyncResource(); - -const store = new Map(); -asyncLocalStorage.run(store, () => { - assert.strictEqual(asyncLocalStorage.getStore(), store); - const innerResource = executionAsyncResource(); - assert.notStrictEqual(innerResource, outerResource); - asyncLocalStorage.run(store, () => { - assert.strictEqual(asyncLocalStorage.getStore(), store); - assert.strictEqual(executionAsyncResource(), innerResource); - const otherStore = new Map(); - asyncLocalStorage.run(otherStore, () => { - assert.strictEqual(asyncLocalStorage.getStore(), otherStore); - assert.notStrictEqual(executionAsyncResource(), innerResource); - assert.notStrictEqual(executionAsyncResource(), outerResource); - }); - }); -}); - -assert.strictEqual(executionAsyncResource(), outerResource); diff --git a/test/async-hooks/test-graph.tls-write.js b/test/async-hooks/test-graph.tls-write.js index 078dd27c36088c..b493ac819dfbcd 100644 --- a/test/async-hooks/test-graph.tls-write.js +++ b/test/async-hooks/test-graph.tls-write.js @@ -65,7 +65,7 @@ function onexit() { { type: 'TCPCONNECTWRAP', id: 'tcpconnect:1', triggerAsyncId: 'tcp:1' }, { type: 'TCPWRAP', id: 'tcp:2', triggerAsyncId: 'tcpserver:1' }, - { type: 'TLSWRAP', id: 'tls:2', triggerAsyncId: 'tcpserver:1' } + { type: 'TLSWRAP', id: 'tls:2', triggerAsyncId: 'tcpserver:1' }, ] ); } diff --git a/test/cctest/gtest/gtest-all.cc b/test/cctest/gtest/gtest-all.cc deleted file mode 100644 index a73baecaa67883..00000000000000 --- a/test/cctest/gtest/gtest-all.cc +++ /dev/null @@ -1,11735 +0,0 @@ -// Copyright 2008, Google Inc. -// 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. - -// -// Google C++ Testing and Mocking Framework (Google Test) -// -// Sometimes it's desirable to build Google Test by compiling a single file. -// This file serves this purpose. - -// This line ensures that gtest.h can be compiled on its own, even -// when it's fused. -#include "gtest/gtest.h" - -// The following lines pull in the real gtest *.cc files. -// Copyright 2005, Google Inc. -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) - -// Copyright 2007, Google Inc. -// 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. - -// -// Utilities for testing Google Test itself and code that uses Google Test -// (e.g. frameworks built on top of Google Test). - -// GOOGLETEST_CM0004 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_SPI_H_ -#define GTEST_INCLUDE_GTEST_GTEST_SPI_H_ - - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// This helper class can be used to mock out Google Test failure reporting -// so that we can test Google Test or code that builds on Google Test. -// -// An object of this class appends a TestPartResult object to the -// TestPartResultArray object given in the constructor whenever a Google Test -// failure is reported. It can either intercept only failures that are -// generated in the same thread that created this object or it can intercept -// all generated failures. The scope of this mock object can be controlled with -// the second argument to the two arguments constructor. -class GTEST_API_ ScopedFakeTestPartResultReporter - : public TestPartResultReporterInterface { - public: - // The two possible mocking modes of this object. - enum InterceptMode { - INTERCEPT_ONLY_CURRENT_THREAD, // Intercepts only thread local failures. - INTERCEPT_ALL_THREADS // Intercepts all failures. - }; - - // The c'tor sets this object as the test part result reporter used - // by Google Test. The 'result' parameter specifies where to report the - // results. This reporter will only catch failures generated in the current - // thread. DEPRECATED - explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result); - - // Same as above, but you can choose the interception scope of this object. - ScopedFakeTestPartResultReporter(InterceptMode intercept_mode, - TestPartResultArray* result); - - // The d'tor restores the previous test part result reporter. - ~ScopedFakeTestPartResultReporter() override; - - // Appends the TestPartResult object to the TestPartResultArray - // received in the constructor. - // - // This method is from the TestPartResultReporterInterface - // interface. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - void Init(); - - const InterceptMode intercept_mode_; - TestPartResultReporterInterface* old_reporter_; - TestPartResultArray* const result_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter); -}; - -namespace internal { - -// A helper class for implementing EXPECT_FATAL_FAILURE() and -// EXPECT_NONFATAL_FAILURE(). Its destructor verifies that the given -// TestPartResultArray contains exactly one failure that has the given -// type and contains the given substring. If that's not the case, a -// non-fatal failure will be generated. -class GTEST_API_ SingleFailureChecker { - public: - // The constructor remembers the arguments. - SingleFailureChecker(const TestPartResultArray* results, - TestPartResult::Type type, const std::string& substr); - ~SingleFailureChecker(); - private: - const TestPartResultArray* const results_; - const TestPartResult::Type type_; - const std::string substr_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker); -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// A set of macros for testing Google Test assertions or code that's expected -// to generate Google Test fatal failures. It verifies that the given -// statement will cause exactly one fatal Google Test failure with 'substr' -// being part of the failure message. -// -// There are two different versions of this macro. EXPECT_FATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_FATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - 'statement' cannot reference local non-static variables or -// non-static members of the current object. -// - 'statement' cannot return a value. -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. The AcceptsMacroThatExpandsToUnprotectedComma test in -// gtest_unittest.cc will fail to compile if we do that. -#define EXPECT_FATAL_FAILURE(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper {\ - public:\ - static void Execute() { statement; }\ - };\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ - GTestExpectFatalFailureHelper::Execute();\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper {\ - public:\ - static void Execute() { statement; }\ - };\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ALL_THREADS, >est_failures);\ - GTestExpectFatalFailureHelper::Execute();\ - }\ - } while (::testing::internal::AlwaysFalse()) - -// A macro for testing Google Test assertions or code that's expected to -// generate Google Test non-fatal failures. It asserts that the given -// statement will cause exactly one non-fatal Google Test failure with 'substr' -// being part of the failure message. -// -// There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// 'statement' is allowed to reference local variables and members of -// the current object. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. If we do that, the code won't compile when the user gives -// EXPECT_NONFATAL_FAILURE() a statement that contains a macro that -// expands to code containing an unprotected comma. The -// AcceptsMacroThatExpandsToUnprotectedComma test in gtest_unittest.cc -// catches that. -// -// For the same reason, we have to write -// if (::testing::internal::AlwaysTrue()) { statement; } -// instead of -// GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) -// to avoid an MSVC warning on unreachable code. -#define EXPECT_NONFATAL_FAILURE(statement, substr) \ - do {\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ - if (::testing::internal::AlwaysTrue()) { statement; }\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do {\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ - >est_failures);\ - if (::testing::internal::AlwaysTrue()) { statement; }\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#endif // GTEST_INCLUDE_GTEST_GTEST_SPI_H_ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include // NOLINT -#include -#include - -#if GTEST_OS_LINUX - -# define GTEST_HAS_GETTIMEOFDAY_ 1 - -# include // NOLINT -# include // NOLINT -# include // NOLINT -// Declares vsnprintf(). This header is not available on Windows. -# include // NOLINT -# include // NOLINT -# include // NOLINT -# include // NOLINT -# include - -#elif GTEST_OS_ZOS -# define GTEST_HAS_GETTIMEOFDAY_ 1 -# include // NOLINT - -// On z/OS we additionally need strings.h for strcasecmp. -# include // NOLINT - -#elif GTEST_OS_WINDOWS_MOBILE // We are on Windows CE. - -# include // NOLINT -# undef min - -#elif GTEST_OS_WINDOWS // We are on Windows proper. - -# include // NOLINT -# include // NOLINT -# include // NOLINT -# include // NOLINT - -# if GTEST_OS_WINDOWS_MINGW -// MinGW has gettimeofday() but not _ftime64(). -# define GTEST_HAS_GETTIMEOFDAY_ 1 -# include // NOLINT -# endif // GTEST_OS_WINDOWS_MINGW - -// cpplint thinks that the header is already included, so we want to -// silence it. -# include // NOLINT -# undef min - -#else - -// Assume other platforms have gettimeofday(). -# define GTEST_HAS_GETTIMEOFDAY_ 1 - -// cpplint thinks that the header is already included, so we want to -// silence it. -# include // NOLINT -# include // NOLINT - -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_EXCEPTIONS -# include -#endif - -#if GTEST_CAN_STREAM_RESULTS_ -# include // NOLINT -# include // NOLINT -# include // NOLINT -# include // NOLINT -#endif - -// Copyright 2005, Google Inc. -// 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. - -// Utility functions and classes used by the Google C++ testing framework.// -// This file contains purely Google Test's internal implementation. Please -// DO NOT #INCLUDE IT IN A USER PROGRAM. - -#ifndef GTEST_SRC_GTEST_INTERNAL_INL_H_ -#define GTEST_SRC_GTEST_INTERNAL_INL_H_ - -#ifndef _WIN32_WCE -# include -#endif // !_WIN32_WCE -#include -#include // For strtoll/_strtoul64/malloc/free. -#include // For memmove. - -#include -#include -#include -#include - - -#if GTEST_CAN_STREAM_RESULTS_ -# include // NOLINT -# include // NOLINT -#endif - -#if GTEST_OS_WINDOWS -# include // NOLINT -#endif // GTEST_OS_WINDOWS - - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// Declares the flags. -// -// We don't want the users to modify this flag in the code, but want -// Google Test's own unit tests to be able to access it. Therefore we -// declare it here as opposed to in gtest.h. -GTEST_DECLARE_bool_(death_test_use_fork); - -namespace internal { - -// The value of GetTestTypeId() as seen from within the Google Test -// library. This is solely for testing GetTestTypeId(). -GTEST_API_ extern const TypeId kTestTypeIdInGoogleTest; - -// Names of the flags (needed for parsing Google Test flags). -const char kAlsoRunDisabledTestsFlag[] = "also_run_disabled_tests"; -const char kBreakOnFailureFlag[] = "break_on_failure"; -const char kCatchExceptionsFlag[] = "catch_exceptions"; -const char kColorFlag[] = "color"; -const char kFilterFlag[] = "filter"; -const char kListTestsFlag[] = "list_tests"; -const char kOutputFlag[] = "output"; -const char kPrintTimeFlag[] = "print_time"; -const char kPrintUTF8Flag[] = "print_utf8"; -const char kRandomSeedFlag[] = "random_seed"; -const char kRepeatFlag[] = "repeat"; -const char kShuffleFlag[] = "shuffle"; -const char kStackTraceDepthFlag[] = "stack_trace_depth"; -const char kStreamResultToFlag[] = "stream_result_to"; -const char kThrowOnFailureFlag[] = "throw_on_failure"; -const char kFlagfileFlag[] = "flagfile"; - -// A valid random seed must be in [1, kMaxRandomSeed]. -const int kMaxRandomSeed = 99999; - -// g_help_flag is true iff the --help flag or an equivalent form is -// specified on the command line. -GTEST_API_ extern bool g_help_flag; - -// Returns the current time in milliseconds. -GTEST_API_ TimeInMillis GetTimeInMillis(); - -// Returns true iff Google Test should use colors in the output. -GTEST_API_ bool ShouldUseColor(bool stdout_is_tty); - -// Formats the given time in milliseconds as seconds. -GTEST_API_ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms); - -// Converts the given time in milliseconds to a date string in the ISO 8601 -// format, without the timezone information. N.B.: due to the use the -// non-reentrant localtime() function, this function is not thread safe. Do -// not use it in any code that can be called from multiple threads. -GTEST_API_ std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms); - -// Parses a string for an Int32 flag, in the form of "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -GTEST_API_ bool ParseInt32Flag( - const char* str, const char* flag, Int32* value); - -// Returns a random seed in range [1, kMaxRandomSeed] based on the -// given --gtest_random_seed flag value. -inline int GetRandomSeedFromFlag(Int32 random_seed_flag) { - const unsigned int raw_seed = (random_seed_flag == 0) ? - static_cast(GetTimeInMillis()) : - static_cast(random_seed_flag); - - // Normalizes the actual seed to range [1, kMaxRandomSeed] such that - // it's easy to type. - const int normalized_seed = - static_cast((raw_seed - 1U) % - static_cast(kMaxRandomSeed)) + 1; - return normalized_seed; -} - -// Returns the first valid random seed after 'seed'. The behavior is -// undefined if 'seed' is invalid. The seed after kMaxRandomSeed is -// considered to be 1. -inline int GetNextRandomSeed(int seed) { - GTEST_CHECK_(1 <= seed && seed <= kMaxRandomSeed) - << "Invalid random seed " << seed << " - must be in [1, " - << kMaxRandomSeed << "]."; - const int next_seed = seed + 1; - return (next_seed > kMaxRandomSeed) ? 1 : next_seed; -} - -// This class saves the values of all Google Test flags in its c'tor, and -// restores them in its d'tor. -class GTestFlagSaver { - public: - // The c'tor. - GTestFlagSaver() { - also_run_disabled_tests_ = GTEST_FLAG(also_run_disabled_tests); - break_on_failure_ = GTEST_FLAG(break_on_failure); - catch_exceptions_ = GTEST_FLAG(catch_exceptions); - color_ = GTEST_FLAG(color); - death_test_style_ = GTEST_FLAG(death_test_style); - death_test_use_fork_ = GTEST_FLAG(death_test_use_fork); - filter_ = GTEST_FLAG(filter); - internal_run_death_test_ = GTEST_FLAG(internal_run_death_test); - list_tests_ = GTEST_FLAG(list_tests); - output_ = GTEST_FLAG(output); - print_time_ = GTEST_FLAG(print_time); - print_utf8_ = GTEST_FLAG(print_utf8); - random_seed_ = GTEST_FLAG(random_seed); - repeat_ = GTEST_FLAG(repeat); - shuffle_ = GTEST_FLAG(shuffle); - stack_trace_depth_ = GTEST_FLAG(stack_trace_depth); - stream_result_to_ = GTEST_FLAG(stream_result_to); - throw_on_failure_ = GTEST_FLAG(throw_on_failure); - } - - // The d'tor is not virtual. DO NOT INHERIT FROM THIS CLASS. - ~GTestFlagSaver() { - GTEST_FLAG(also_run_disabled_tests) = also_run_disabled_tests_; - GTEST_FLAG(break_on_failure) = break_on_failure_; - GTEST_FLAG(catch_exceptions) = catch_exceptions_; - GTEST_FLAG(color) = color_; - GTEST_FLAG(death_test_style) = death_test_style_; - GTEST_FLAG(death_test_use_fork) = death_test_use_fork_; - GTEST_FLAG(filter) = filter_; - GTEST_FLAG(internal_run_death_test) = internal_run_death_test_; - GTEST_FLAG(list_tests) = list_tests_; - GTEST_FLAG(output) = output_; - GTEST_FLAG(print_time) = print_time_; - GTEST_FLAG(print_utf8) = print_utf8_; - GTEST_FLAG(random_seed) = random_seed_; - GTEST_FLAG(repeat) = repeat_; - GTEST_FLAG(shuffle) = shuffle_; - GTEST_FLAG(stack_trace_depth) = stack_trace_depth_; - GTEST_FLAG(stream_result_to) = stream_result_to_; - GTEST_FLAG(throw_on_failure) = throw_on_failure_; - } - - private: - // Fields for saving the original values of flags. - bool also_run_disabled_tests_; - bool break_on_failure_; - bool catch_exceptions_; - std::string color_; - std::string death_test_style_; - bool death_test_use_fork_; - std::string filter_; - std::string internal_run_death_test_; - bool list_tests_; - std::string output_; - bool print_time_; - bool print_utf8_; - internal::Int32 random_seed_; - internal::Int32 repeat_; - bool shuffle_; - internal::Int32 stack_trace_depth_; - std::string stream_result_to_; - bool throw_on_failure_; -} GTEST_ATTRIBUTE_UNUSED_; - -// Converts a Unicode code point to a narrow string in UTF-8 encoding. -// code_point parameter is of type UInt32 because wchar_t may not be -// wide enough to contain a code point. -// If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted -// to "(Invalid Unicode 0xXXXXXXXX)". -GTEST_API_ std::string CodePointToUtf8(UInt32 code_point); - -// Converts a wide string to a narrow string in UTF-8 encoding. -// The wide string is assumed to have the following encoding: -// UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin) -// UTF-32 if sizeof(wchar_t) == 4 (on Linux) -// Parameter str points to a null-terminated wide string. -// Parameter num_chars may additionally limit the number -// of wchar_t characters processed. -1 is used when the entire string -// should be processed. -// If the string contains code points that are not valid Unicode code points -// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding -// and contains invalid UTF-16 surrogate pairs, values in those pairs -// will be encoded as individual Unicode characters from Basic Normal Plane. -GTEST_API_ std::string WideStringToUtf8(const wchar_t* str, int num_chars); - -// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file -// if the variable is present. If a file already exists at this location, this -// function will write over it. If the variable is present, but the file cannot -// be created, prints an error and exits. -void WriteToShardStatusFileIfNeeded(); - -// Checks whether sharding is enabled by examining the relevant -// environment variable values. If the variables are present, -// but inconsistent (e.g., shard_index >= total_shards), prints -// an error and exits. If in_subprocess_for_death_test, sharding is -// disabled because it must only be applied to the original test -// process. Otherwise, we could filter out death tests we intended to execute. -GTEST_API_ bool ShouldShard(const char* total_shards_str, - const char* shard_index_str, - bool in_subprocess_for_death_test); - -// Parses the environment variable var as an Int32. If it is unset, -// returns default_val. If it is not an Int32, prints an error and -// and aborts. -GTEST_API_ Int32 Int32FromEnvOrDie(const char* env_var, Int32 default_val); - -// Given the total number of shards, the shard index, and the test id, -// returns true iff the test should be run on this shard. The test id is -// some arbitrary but unique non-negative integer assigned to each test -// method. Assumes that 0 <= shard_index < total_shards. -GTEST_API_ bool ShouldRunTestOnShard( - int total_shards, int shard_index, int test_id); - -// STL container utilities. - -// Returns the number of elements in the given container that satisfy -// the given predicate. -template -inline int CountIf(const Container& c, Predicate predicate) { - // Implemented as an explicit loop since std::count_if() in libCstd on - // Solaris has a non-standard signature. - int count = 0; - for (typename Container::const_iterator it = c.begin(); it != c.end(); ++it) { - if (predicate(*it)) - ++count; - } - return count; -} - -// Applies a function/functor to each element in the container. -template -void ForEach(const Container& c, Functor functor) { - std::for_each(c.begin(), c.end(), functor); -} - -// Returns the i-th element of the vector, or default_value if i is not -// in range [0, v.size()). -template -inline E GetElementOr(const std::vector& v, int i, E default_value) { - return (i < 0 || i >= static_cast(v.size())) ? default_value : v[i]; -} - -// Performs an in-place shuffle of a range of the vector's elements. -// 'begin' and 'end' are element indices as an STL-style range; -// i.e. [begin, end) are shuffled, where 'end' == size() means to -// shuffle to the end of the vector. -template -void ShuffleRange(internal::Random* random, int begin, int end, - std::vector* v) { - const int size = static_cast(v->size()); - GTEST_CHECK_(0 <= begin && begin <= size) - << "Invalid shuffle range start " << begin << ": must be in range [0, " - << size << "]."; - GTEST_CHECK_(begin <= end && end <= size) - << "Invalid shuffle range finish " << end << ": must be in range [" - << begin << ", " << size << "]."; - - // Fisher-Yates shuffle, from - // http://en.wikipedia.org/wiki/Fisher-Yates_shuffle - for (int range_width = end - begin; range_width >= 2; range_width--) { - const int last_in_range = begin + range_width - 1; - const int selected = begin + random->Generate(range_width); - std::swap((*v)[selected], (*v)[last_in_range]); - } -} - -// Performs an in-place shuffle of the vector's elements. -template -inline void Shuffle(internal::Random* random, std::vector* v) { - ShuffleRange(random, 0, static_cast(v->size()), v); -} - -// A function for deleting an object. Handy for being used as a -// functor. -template -static void Delete(T* x) { - delete x; -} - -// A predicate that checks the key of a TestProperty against a known key. -// -// TestPropertyKeyIs is copyable. -class TestPropertyKeyIs { - public: - // Constructor. - // - // TestPropertyKeyIs has NO default constructor. - explicit TestPropertyKeyIs(const std::string& key) : key_(key) {} - - // Returns true iff the test name of test property matches on key_. - bool operator()(const TestProperty& test_property) const { - return test_property.key() == key_; - } - - private: - std::string key_; -}; - -// Class UnitTestOptions. -// -// This class contains functions for processing options the user -// specifies when running the tests. It has only static members. -// -// In most cases, the user can specify an option using either an -// environment variable or a command line flag. E.g. you can set the -// test filter using either GTEST_FILTER or --gtest_filter. If both -// the variable and the flag are present, the latter overrides the -// former. -class GTEST_API_ UnitTestOptions { - public: - // Functions for processing the gtest_output flag. - - // Returns the output format, or "" for normal printed output. - static std::string GetOutputFormat(); - - // Returns the absolute path of the requested output file, or the - // default (test_detail.xml in the original working directory) if - // none was explicitly specified. - static std::string GetAbsolutePathToOutputFile(); - - // Functions for processing the gtest_filter flag. - - // Returns true iff the wildcard pattern matches the string. The - // first ':' or '\0' character in pattern marks the end of it. - // - // This recursive algorithm isn't very efficient, but is clear and - // works well enough for matching test names, which are short. - static bool PatternMatchesString(const char *pattern, const char *str); - - // Returns true iff the user-specified filter matches the test suite - // name and the test name. - static bool FilterMatchesTest(const std::string& test_suite_name, - const std::string& test_name); - -#if GTEST_OS_WINDOWS - // Function for supporting the gtest_catch_exception flag. - - // Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the - // given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise. - // This function is useful as an __except condition. - static int GTestShouldProcessSEH(DWORD exception_code); -#endif // GTEST_OS_WINDOWS - - // Returns true if "name" matches the ':' separated list of glob-style - // filters in "filter". - static bool MatchesFilter(const std::string& name, const char* filter); -}; - -// Returns the current application's name, removing directory path if that -// is present. Used by UnitTestOptions::GetOutputFile. -GTEST_API_ FilePath GetCurrentExecutableName(); - -// The role interface for getting the OS stack trace as a string. -class OsStackTraceGetterInterface { - public: - OsStackTraceGetterInterface() {} - virtual ~OsStackTraceGetterInterface() {} - - // Returns the current OS stack trace as an std::string. Parameters: - // - // max_depth - the maximum number of stack frames to be included - // in the trace. - // skip_count - the number of top frames to be skipped; doesn't count - // against max_depth. - virtual std::string CurrentStackTrace(int max_depth, int skip_count) = 0; - - // UponLeavingGTest() should be called immediately before Google Test calls - // user code. It saves some information about the current stack that - // CurrentStackTrace() will use to find and hide Google Test stack frames. - virtual void UponLeavingGTest() = 0; - - // This string is inserted in place of stack frames that are part of - // Google Test's implementation. - static const char* const kElidedFramesMarker; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(OsStackTraceGetterInterface); -}; - -// A working implementation of the OsStackTraceGetterInterface interface. -class OsStackTraceGetter : public OsStackTraceGetterInterface { - public: - OsStackTraceGetter() {} - - std::string CurrentStackTrace(int max_depth, int skip_count) override; - void UponLeavingGTest() override; - - private: -#if GTEST_HAS_ABSL - Mutex mutex_; // Protects all internal state. - - // We save the stack frame below the frame that calls user code. - // We do this because the address of the frame immediately below - // the user code changes between the call to UponLeavingGTest() - // and any calls to the stack trace code from within the user code. - void* caller_frame_ = nullptr; -#endif // GTEST_HAS_ABSL - - GTEST_DISALLOW_COPY_AND_ASSIGN_(OsStackTraceGetter); -}; - -// Information about a Google Test trace point. -struct TraceInfo { - const char* file; - int line; - std::string message; -}; - -// This is the default global test part result reporter used in UnitTestImpl. -// This class should only be used by UnitTestImpl. -class DefaultGlobalTestPartResultReporter - : public TestPartResultReporterInterface { - public: - explicit DefaultGlobalTestPartResultReporter(UnitTestImpl* unit_test); - // Implements the TestPartResultReporterInterface. Reports the test part - // result in the current test. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - UnitTestImpl* const unit_test_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultGlobalTestPartResultReporter); -}; - -// This is the default per thread test part result reporter used in -// UnitTestImpl. This class should only be used by UnitTestImpl. -class DefaultPerThreadTestPartResultReporter - : public TestPartResultReporterInterface { - public: - explicit DefaultPerThreadTestPartResultReporter(UnitTestImpl* unit_test); - // Implements the TestPartResultReporterInterface. The implementation just - // delegates to the current global test part result reporter of *unit_test_. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - UnitTestImpl* const unit_test_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultPerThreadTestPartResultReporter); -}; - -// The private implementation of the UnitTest class. We don't protect -// the methods under a mutex, as this class is not accessible by a -// user and the UnitTest class that delegates work to this class does -// proper locking. -class GTEST_API_ UnitTestImpl { - public: - explicit UnitTestImpl(UnitTest* parent); - virtual ~UnitTestImpl(); - - // There are two different ways to register your own TestPartResultReporter. - // You can register your own repoter to listen either only for test results - // from the current thread or for results from all threads. - // By default, each per-thread test result repoter just passes a new - // TestPartResult to the global test result reporter, which registers the - // test part result for the currently running test. - - // Returns the global test part result reporter. - TestPartResultReporterInterface* GetGlobalTestPartResultReporter(); - - // Sets the global test part result reporter. - void SetGlobalTestPartResultReporter( - TestPartResultReporterInterface* reporter); - - // Returns the test part result reporter for the current thread. - TestPartResultReporterInterface* GetTestPartResultReporterForCurrentThread(); - - // Sets the test part result reporter for the current thread. - void SetTestPartResultReporterForCurrentThread( - TestPartResultReporterInterface* reporter); - - // Gets the number of successful test suites. - int successful_test_suite_count() const; - - // Gets the number of failed test suites. - int failed_test_suite_count() const; - - // Gets the number of all test suites. - int total_test_suite_count() const; - - // Gets the number of all test suites that contain at least one test - // that should run. - int test_suite_to_run_count() const; - - // Gets the number of successful tests. - int successful_test_count() const; - - // Gets the number of skipped tests. - int skipped_test_count() const; - - // Gets the number of failed tests. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Gets the number of all tests. - int total_test_count() const; - - // Gets the number of tests that should run. - int test_to_run_count() const; - - // Gets the time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Gets the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Returns true iff the unit test passed (i.e. all test suites passed). - bool Passed() const { return !Failed(); } - - // Returns true iff the unit test failed (i.e. some test suite failed - // or something outside of all tests failed). - bool Failed() const { - return failed_test_suite_count() > 0 || ad_hoc_test_result()->Failed(); - } - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - const TestSuite* GetTestSuite(int i) const { - const int index = GetElementOr(test_suite_indices_, i, -1); - return index < 0 ? nullptr : test_suites_[i]; - } - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* GetTestCase(int i) const { return GetTestSuite(i); } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - TestSuite* GetMutableSuiteCase(int i) { - const int index = GetElementOr(test_suite_indices_, i, -1); - return index < 0 ? nullptr : test_suites_[index]; - } - - // Provides access to the event listener list. - TestEventListeners* listeners() { return &listeners_; } - - // Returns the TestResult for the test that's currently running, or - // the TestResult for the ad hoc test if no test is running. - TestResult* current_test_result(); - - // Returns the TestResult for the ad hoc test. - const TestResult* ad_hoc_test_result() const { return &ad_hoc_test_result_; } - - // Sets the OS stack trace getter. - // - // Does nothing if the input and the current OS stack trace getter - // are the same; otherwise, deletes the old getter and makes the - // input the current getter. - void set_os_stack_trace_getter(OsStackTraceGetterInterface* getter); - - // Returns the current OS stack trace getter if it is not NULL; - // otherwise, creates an OsStackTraceGetter, makes it the current - // getter, and returns it. - OsStackTraceGetterInterface* os_stack_trace_getter(); - - // Returns the current OS stack trace as an std::string. - // - // The maximum number of stack frames to be included is specified by - // the gtest_stack_trace_depth flag. The skip_count parameter - // specifies the number of top frames to be skipped, which doesn't - // count against the number of frames to be included. - // - // For example, if Foo() calls Bar(), which in turn calls - // CurrentOsStackTraceExceptTop(1), Foo() will be included in the - // trace but Bar() and CurrentOsStackTraceExceptTop() won't. - std::string CurrentOsStackTraceExceptTop(int skip_count) GTEST_NO_INLINE_; - - // Finds and returns a TestSuite with the given name. If one doesn't - // exist, creates one and returns it. - // - // Arguments: - // - // test_suite_name: name of the test suite - // type_param: the name of the test's type parameter, or NULL if - // this is not a typed or a type-parameterized test. - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - TestSuite* GetTestSuite(const char* test_suite_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc); - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - TestCase* GetTestCase(const char* test_case_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) { - return GetTestSuite(test_case_name, type_param, set_up_tc, tear_down_tc); - } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Adds a TestInfo to the unit test. - // - // Arguments: - // - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - // test_info: the TestInfo object - void AddTestInfo(internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc, - TestInfo* test_info) { - // In order to support thread-safe death tests, we need to - // remember the original working directory when the test program - // was first invoked. We cannot do this in RUN_ALL_TESTS(), as - // the user may have changed the current directory before calling - // RUN_ALL_TESTS(). Therefore we capture the current directory in - // AddTestInfo(), which is called to register a TEST or TEST_F - // before main() is reached. - if (original_working_dir_.IsEmpty()) { - original_working_dir_.Set(FilePath::GetCurrentDir()); - GTEST_CHECK_(!original_working_dir_.IsEmpty()) - << "Failed to get the current working directory."; - } - - GetTestSuite(test_info->test_suite_name(), test_info->type_param(), - set_up_tc, tear_down_tc) - ->AddTestInfo(test_info); - } - - // Returns ParameterizedTestSuiteRegistry object used to keep track of - // value-parameterized tests and instantiate and register them. - internal::ParameterizedTestSuiteRegistry& parameterized_test_registry() { - return parameterized_test_registry_; - } - - // Sets the TestSuite object for the test that's currently running. - void set_current_test_suite(TestSuite* a_current_test_suite) { - current_test_suite_ = a_current_test_suite; - } - - // Sets the TestInfo object for the test that's currently running. If - // current_test_info is NULL, the assertion results will be stored in - // ad_hoc_test_result_. - void set_current_test_info(TestInfo* a_current_test_info) { - current_test_info_ = a_current_test_info; - } - - // Registers all parameterized tests defined using TEST_P and - // INSTANTIATE_TEST_SUITE_P, creating regular tests for each test/parameter - // combination. This method can be called more then once; it has guards - // protecting from registering the tests more then once. If - // value-parameterized tests are disabled, RegisterParameterizedTests is - // present but does nothing. - void RegisterParameterizedTests(); - - // Runs all tests in this UnitTest object, prints the result, and - // returns true if all tests are successful. If any exception is - // thrown during a test, this test is considered to be failed, but - // the rest of the tests will still be run. - bool RunAllTests(); - - // Clears the results of all tests, except the ad hoc tests. - void ClearNonAdHocTestResult() { - ForEach(test_suites_, TestSuite::ClearTestSuiteResult); - } - - // Clears the results of ad-hoc test assertions. - void ClearAdHocTestResult() { - ad_hoc_test_result_.Clear(); - } - - // Adds a TestProperty to the current TestResult object when invoked in a - // context of a test or a test suite, or to the global property set. If the - // result already contains a property with the same key, the value will be - // updated. - void RecordProperty(const TestProperty& test_property); - - enum ReactionToSharding { - HONOR_SHARDING_PROTOCOL, - IGNORE_SHARDING_PROTOCOL - }; - - // Matches the full name of each test against the user-specified - // filter to decide whether the test should run, then records the - // result in each TestSuite and TestInfo object. - // If shard_tests == HONOR_SHARDING_PROTOCOL, further filters tests - // based on sharding variables in the environment. - // Returns the number of tests that should run. - int FilterTests(ReactionToSharding shard_tests); - - // Prints the names of the tests matching the user-specified filter flag. - void ListTestsMatchingFilter(); - - const TestSuite* current_test_suite() const { return current_test_suite_; } - TestInfo* current_test_info() { return current_test_info_; } - const TestInfo* current_test_info() const { return current_test_info_; } - - // Returns the vector of environments that need to be set-up/torn-down - // before/after the tests are run. - std::vector& environments() { return environments_; } - - // Getters for the per-thread Google Test trace stack. - std::vector& gtest_trace_stack() { - return *(gtest_trace_stack_.pointer()); - } - const std::vector& gtest_trace_stack() const { - return gtest_trace_stack_.get(); - } - -#if GTEST_HAS_DEATH_TEST - void InitDeathTestSubprocessControlInfo() { - internal_run_death_test_flag_.reset(ParseInternalRunDeathTestFlag()); - } - // Returns a pointer to the parsed --gtest_internal_run_death_test - // flag, or NULL if that flag was not specified. - // This information is useful only in a death test child process. - // Must not be called before a call to InitGoogleTest. - const InternalRunDeathTestFlag* internal_run_death_test_flag() const { - return internal_run_death_test_flag_.get(); - } - - // Returns a pointer to the current death test factory. - internal::DeathTestFactory* death_test_factory() { - return death_test_factory_.get(); - } - - void SuppressTestEventsIfInSubprocess(); - - friend class ReplaceDeathTestFactory; -#endif // GTEST_HAS_DEATH_TEST - - // Initializes the event listener performing XML output as specified by - // UnitTestOptions. Must not be called before InitGoogleTest. - void ConfigureXmlOutput(); - -#if GTEST_CAN_STREAM_RESULTS_ - // Initializes the event listener for streaming test results to a socket. - // Must not be called before InitGoogleTest. - void ConfigureStreamingOutput(); -#endif - - // Performs initialization dependent upon flag values obtained in - // ParseGoogleTestFlagsOnly. Is called from InitGoogleTest after the call to - // ParseGoogleTestFlagsOnly. In case a user neglects to call InitGoogleTest - // this function is also called from RunAllTests. Since this function can be - // called more than once, it has to be idempotent. - void PostFlagParsingInit(); - - // Gets the random seed used at the start of the current test iteration. - int random_seed() const { return random_seed_; } - - // Gets the random number generator. - internal::Random* random() { return &random_; } - - // Shuffles all test suites, and the tests within each test suite, - // making sure that death tests are still run first. - void ShuffleTests(); - - // Restores the test suites and tests to their order before the first shuffle. - void UnshuffleTests(); - - // Returns the value of GTEST_FLAG(catch_exceptions) at the moment - // UnitTest::Run() starts. - bool catch_exceptions() const { return catch_exceptions_; } - - private: - friend class ::testing::UnitTest; - - // Used by UnitTest::Run() to capture the state of - // GTEST_FLAG(catch_exceptions) at the moment it starts. - void set_catch_exceptions(bool value) { catch_exceptions_ = value; } - - // The UnitTest object that owns this implementation object. - UnitTest* const parent_; - - // The working directory when the first TEST() or TEST_F() was - // executed. - internal::FilePath original_working_dir_; - - // The default test part result reporters. - DefaultGlobalTestPartResultReporter default_global_test_part_result_reporter_; - DefaultPerThreadTestPartResultReporter - default_per_thread_test_part_result_reporter_; - - // Points to (but doesn't own) the global test part result reporter. - TestPartResultReporterInterface* global_test_part_result_repoter_; - - // Protects read and write access to global_test_part_result_reporter_. - internal::Mutex global_test_part_result_reporter_mutex_; - - // Points to (but doesn't own) the per-thread test part result reporter. - internal::ThreadLocal - per_thread_test_part_result_reporter_; - - // The vector of environments that need to be set-up/torn-down - // before/after the tests are run. - std::vector environments_; - - // The vector of TestSuites in their original order. It owns the - // elements in the vector. - std::vector test_suites_; - - // Provides a level of indirection for the test suite list to allow - // easy shuffling and restoring the test suite order. The i-th - // element of this vector is the index of the i-th test suite in the - // shuffled order. - std::vector test_suite_indices_; - - // ParameterizedTestRegistry object used to register value-parameterized - // tests. - internal::ParameterizedTestSuiteRegistry parameterized_test_registry_; - - // Indicates whether RegisterParameterizedTests() has been called already. - bool parameterized_tests_registered_; - - // Index of the last death test suite registered. Initially -1. - int last_death_test_suite_; - - // This points to the TestSuite for the currently running test. It - // changes as Google Test goes through one test suite after another. - // When no test is running, this is set to NULL and Google Test - // stores assertion results in ad_hoc_test_result_. Initially NULL. - TestSuite* current_test_suite_; - - // This points to the TestInfo for the currently running test. It - // changes as Google Test goes through one test after another. When - // no test is running, this is set to NULL and Google Test stores - // assertion results in ad_hoc_test_result_. Initially NULL. - TestInfo* current_test_info_; - - // Normally, a user only writes assertions inside a TEST or TEST_F, - // or inside a function called by a TEST or TEST_F. Since Google - // Test keeps track of which test is current running, it can - // associate such an assertion with the test it belongs to. - // - // If an assertion is encountered when no TEST or TEST_F is running, - // Google Test attributes the assertion result to an imaginary "ad hoc" - // test, and records the result in ad_hoc_test_result_. - TestResult ad_hoc_test_result_; - - // The list of event listeners that can be used to track events inside - // Google Test. - TestEventListeners listeners_; - - // The OS stack trace getter. Will be deleted when the UnitTest - // object is destructed. By default, an OsStackTraceGetter is used, - // but the user can set this field to use a custom getter if that is - // desired. - OsStackTraceGetterInterface* os_stack_trace_getter_; - - // True iff PostFlagParsingInit() has been called. - bool post_flag_parse_init_performed_; - - // The random number seed used at the beginning of the test run. - int random_seed_; - - // Our random number generator. - internal::Random random_; - - // The time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp_; - - // How long the test took to run, in milliseconds. - TimeInMillis elapsed_time_; - -#if GTEST_HAS_DEATH_TEST - // The decomposed components of the gtest_internal_run_death_test flag, - // parsed when RUN_ALL_TESTS is called. - std::unique_ptr internal_run_death_test_flag_; - std::unique_ptr death_test_factory_; -#endif // GTEST_HAS_DEATH_TEST - - // A per-thread stack of traces created by the SCOPED_TRACE() macro. - internal::ThreadLocal > gtest_trace_stack_; - - // The value of GTEST_FLAG(catch_exceptions) at the moment RunAllTests() - // starts. - bool catch_exceptions_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTestImpl); -}; // class UnitTestImpl - -// Convenience function for accessing the global UnitTest -// implementation object. -inline UnitTestImpl* GetUnitTestImpl() { - return UnitTest::GetInstance()->impl(); -} - -#if GTEST_USES_SIMPLE_RE - -// Internal helper functions for implementing the simple regular -// expression matcher. -GTEST_API_ bool IsInSet(char ch, const char* str); -GTEST_API_ bool IsAsciiDigit(char ch); -GTEST_API_ bool IsAsciiPunct(char ch); -GTEST_API_ bool IsRepeat(char ch); -GTEST_API_ bool IsAsciiWhiteSpace(char ch); -GTEST_API_ bool IsAsciiWordChar(char ch); -GTEST_API_ bool IsValidEscape(char ch); -GTEST_API_ bool AtomMatchesChar(bool escaped, char pattern, char ch); -GTEST_API_ bool ValidateRegex(const char* regex); -GTEST_API_ bool MatchRegexAtHead(const char* regex, const char* str); -GTEST_API_ bool MatchRepetitionAndRegexAtHead( - bool escaped, char ch, char repeat, const char* regex, const char* str); -GTEST_API_ bool MatchRegexAnywhere(const char* regex, const char* str); - -#endif // GTEST_USES_SIMPLE_RE - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. -GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, char** argv); -GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv); - -#if GTEST_HAS_DEATH_TEST - -// Returns the message describing the last system error, regardless of the -// platform. -GTEST_API_ std::string GetLastErrnoDescription(); - -// Attempts to parse a string into a positive integer pointed to by the -// number parameter. Returns true if that is possible. -// GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we can use -// it here. -template -bool ParseNaturalNumber(const ::std::string& str, Integer* number) { - // Fail fast if the given string does not begin with a digit; - // this bypasses strtoXXX's "optional leading whitespace and plus - // or minus sign" semantics, which are undesirable here. - if (str.empty() || !IsDigit(str[0])) { - return false; - } - errno = 0; - - char* end; - // BiggestConvertible is the largest integer type that system-provided - // string-to-number conversion routines can return. - -# if GTEST_OS_WINDOWS && !defined(__GNUC__) - - // MSVC and C++ Builder define __int64 instead of the standard long long. - typedef unsigned __int64 BiggestConvertible; - const BiggestConvertible parsed = _strtoui64(str.c_str(), &end, 10); - -# else - - typedef unsigned long long BiggestConvertible; // NOLINT - const BiggestConvertible parsed = strtoull(str.c_str(), &end, 10); - -# endif // GTEST_OS_WINDOWS && !defined(__GNUC__) - - const bool parse_success = *end == '\0' && errno == 0; - - GTEST_CHECK_(sizeof(Integer) <= sizeof(parsed)); - - const Integer result = static_cast(parsed); - if (parse_success && static_cast(result) == parsed) { - *number = result; - return true; - } - return false; -} -#endif // GTEST_HAS_DEATH_TEST - -// TestResult contains some private methods that should be hidden from -// Google Test user but are required for testing. This class allow our tests -// to access them. -// -// This class is supplied only for the purpose of testing Google Test's own -// constructs. Do not use it in user tests, either directly or indirectly. -class TestResultAccessor { - public: - static void RecordProperty(TestResult* test_result, - const std::string& xml_element, - const TestProperty& property) { - test_result->RecordProperty(xml_element, property); - } - - static void ClearTestPartResults(TestResult* test_result) { - test_result->ClearTestPartResults(); - } - - static const std::vector& test_part_results( - const TestResult& test_result) { - return test_result.test_part_results(); - } -}; - -#if GTEST_CAN_STREAM_RESULTS_ - -// Streams test results to the given port on the given host machine. -class StreamingListener : public EmptyTestEventListener { - public: - // Abstract base class for writing strings to a socket. - class AbstractSocketWriter { - public: - virtual ~AbstractSocketWriter() {} - - // Sends a string to the socket. - virtual void Send(const std::string& message) = 0; - - // Closes the socket. - virtual void CloseConnection() {} - - // Sends a string and a newline to the socket. - void SendLn(const std::string& message) { Send(message + "\n"); } - }; - - // Concrete class for actually writing strings to a socket. - class SocketWriter : public AbstractSocketWriter { - public: - SocketWriter(const std::string& host, const std::string& port) - : sockfd_(-1), host_name_(host), port_num_(port) { - MakeConnection(); - } - - ~SocketWriter() override { - if (sockfd_ != -1) - CloseConnection(); - } - - // Sends a string to the socket. - void Send(const std::string& message) override { - GTEST_CHECK_(sockfd_ != -1) - << "Send() can be called only when there is a connection."; - - const int len = static_cast(message.length()); - if (write(sockfd_, message.c_str(), len) != len) { - GTEST_LOG_(WARNING) - << "stream_result_to: failed to stream to " - << host_name_ << ":" << port_num_; - } - } - - private: - // Creates a client socket and connects to the server. - void MakeConnection(); - - // Closes the socket. - void CloseConnection() override { - GTEST_CHECK_(sockfd_ != -1) - << "CloseConnection() can be called only when there is a connection."; - - close(sockfd_); - sockfd_ = -1; - } - - int sockfd_; // socket file descriptor - const std::string host_name_; - const std::string port_num_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(SocketWriter); - }; // class SocketWriter - - // Escapes '=', '&', '%', and '\n' characters in str as "%xx". - static std::string UrlEncode(const char* str); - - StreamingListener(const std::string& host, const std::string& port) - : socket_writer_(new SocketWriter(host, port)) { - Start(); - } - - explicit StreamingListener(AbstractSocketWriter* socket_writer) - : socket_writer_(socket_writer) { Start(); } - - void OnTestProgramStart(const UnitTest& /* unit_test */) override { - SendLn("event=TestProgramStart"); - } - - void OnTestProgramEnd(const UnitTest& unit_test) override { - // Note that Google Test current only report elapsed time for each - // test iteration, not for the entire test program. - SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed())); - - // Notify the streaming server to stop. - socket_writer_->CloseConnection(); - } - - void OnTestIterationStart(const UnitTest& /* unit_test */, - int iteration) override { - SendLn("event=TestIterationStart&iteration=" + - StreamableToString(iteration)); - } - - void OnTestIterationEnd(const UnitTest& unit_test, - int /* iteration */) override { - SendLn("event=TestIterationEnd&passed=" + - FormatBool(unit_test.Passed()) + "&elapsed_time=" + - StreamableToString(unit_test.elapsed_time()) + "ms"); - } - - // Note that "event=TestCaseStart" is a wire format and has to remain - // "case" for compatibilty - void OnTestCaseStart(const TestCase& test_case) override { - SendLn(std::string("event=TestCaseStart&name=") + test_case.name()); - } - - // Note that "event=TestCaseEnd" is a wire format and has to remain - // "case" for compatibilty - void OnTestCaseEnd(const TestCase& test_case) override { - SendLn("event=TestCaseEnd&passed=" + FormatBool(test_case.Passed()) + - "&elapsed_time=" + StreamableToString(test_case.elapsed_time()) + - "ms"); - } - - void OnTestStart(const TestInfo& test_info) override { - SendLn(std::string("event=TestStart&name=") + test_info.name()); - } - - void OnTestEnd(const TestInfo& test_info) override { - SendLn("event=TestEnd&passed=" + - FormatBool((test_info.result())->Passed()) + - "&elapsed_time=" + - StreamableToString((test_info.result())->elapsed_time()) + "ms"); - } - - void OnTestPartResult(const TestPartResult& test_part_result) override { - const char* file_name = test_part_result.file_name(); - if (file_name == nullptr) file_name = ""; - SendLn("event=TestPartResult&file=" + UrlEncode(file_name) + - "&line=" + StreamableToString(test_part_result.line_number()) + - "&message=" + UrlEncode(test_part_result.message())); - } - - private: - // Sends the given message and a newline to the socket. - void SendLn(const std::string& message) { socket_writer_->SendLn(message); } - - // Called at the start of streaming to notify the receiver what - // protocol we are using. - void Start() { SendLn("gtest_streaming_protocol_version=1.0"); } - - std::string FormatBool(bool value) { return value ? "1" : "0"; } - - const std::unique_ptr socket_writer_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener); -}; // class StreamingListener - -#endif // GTEST_CAN_STREAM_RESULTS_ - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_SRC_GTEST_INTERNAL_INL_H_ - -#if GTEST_OS_WINDOWS -# define vsnprintf _vsnprintf -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_MAC -#ifndef GTEST_OS_IOS -#include -#endif -#endif - -#if GTEST_HAS_ABSL -#include "absl/debugging/failure_signal_handler.h" -#include "absl/debugging/stacktrace.h" -#include "absl/debugging/symbolize.h" -#include "absl/strings/str_cat.h" -#endif // GTEST_HAS_ABSL - -namespace testing { - -using internal::CountIf; -using internal::ForEach; -using internal::GetElementOr; -using internal::Shuffle; - -// Constants. - -// A test whose test suite name or test name matches this filter is -// disabled and not run. -static const char kDisableTestFilter[] = "DISABLED_*:*/DISABLED_*"; - -// A test suite whose name matches this filter is considered a death -// test suite and will be run before test suites whose name doesn't -// match this filter. -static const char kDeathTestSuiteFilter[] = "*DeathTest:*DeathTest/*"; - -// A test filter that matches everything. -static const char kUniversalFilter[] = "*"; - -// The default output format. -static const char kDefaultOutputFormat[] = "xml"; -// The default output file. -static const char kDefaultOutputFile[] = "test_detail"; - -// The environment variable name for the test shard index. -static const char kTestShardIndex[] = "GTEST_SHARD_INDEX"; -// The environment variable name for the total number of test shards. -static const char kTestTotalShards[] = "GTEST_TOTAL_SHARDS"; -// The environment variable name for the test shard status file. -static const char kTestShardStatusFile[] = "GTEST_SHARD_STATUS_FILE"; - -namespace internal { - -// The text used in failure messages to indicate the start of the -// stack trace. -const char kStackTraceMarker[] = "\nStack trace:\n"; - -// g_help_flag is true iff the --help flag or an equivalent form is -// specified on the command line. -bool g_help_flag = false; - -// Utilty function to Open File for Writing -static FILE* OpenFileForWriting(const std::string& output_file) { - FILE* fileout = nullptr; - FilePath output_file_path(output_file); - FilePath output_dir(output_file_path.RemoveFileName()); - - if (output_dir.CreateDirectoriesRecursively()) { - fileout = posix::FOpen(output_file.c_str(), "w"); - } - if (fileout == nullptr) { - GTEST_LOG_(FATAL) << "Unable to open file \"" << output_file << "\""; - } - return fileout; -} - -} // namespace internal - -// Bazel passes in the argument to '--test_filter' via the TESTBRIDGE_TEST_ONLY -// environment variable. -static const char* GetDefaultFilter() { - const char* const testbridge_test_only = - internal::posix::GetEnv("TESTBRIDGE_TEST_ONLY"); - if (testbridge_test_only != nullptr) { - return testbridge_test_only; - } - return kUniversalFilter; -} - -GTEST_DEFINE_bool_( - also_run_disabled_tests, - internal::BoolFromGTestEnv("also_run_disabled_tests", false), - "Run disabled tests too, in addition to the tests normally being run."); - -GTEST_DEFINE_bool_( - break_on_failure, - internal::BoolFromGTestEnv("break_on_failure", false), - "True iff a failed assertion should be a debugger break-point."); - -GTEST_DEFINE_bool_( - catch_exceptions, - internal::BoolFromGTestEnv("catch_exceptions", true), - "True iff " GTEST_NAME_ - " should catch exceptions and treat them as test failures."); - -GTEST_DEFINE_string_( - color, - internal::StringFromGTestEnv("color", "auto"), - "Whether to use colors in the output. Valid values: yes, no, " - "and auto. 'auto' means to use colors if the output is " - "being sent to a terminal and the TERM environment variable " - "is set to a terminal type that supports colors."); - -GTEST_DEFINE_string_( - filter, - internal::StringFromGTestEnv("filter", GetDefaultFilter()), - "A colon-separated list of glob (not regex) patterns " - "for filtering the tests to run, optionally followed by a " - "'-' and a : separated list of negative patterns (tests to " - "exclude). A test is run if it matches one of the positive " - "patterns and does not match any of the negative patterns."); - -GTEST_DEFINE_bool_( - install_failure_signal_handler, - internal::BoolFromGTestEnv("install_failure_signal_handler", false), - "If true and supported on the current platform, " GTEST_NAME_ " should " - "install a signal handler that dumps debugging information when fatal " - "signals are raised."); - -GTEST_DEFINE_bool_(list_tests, false, - "List all tests without running them."); - -// The net priority order after flag processing is thus: -// --gtest_output command line flag -// GTEST_OUTPUT environment variable -// XML_OUTPUT_FILE environment variable -// '' -GTEST_DEFINE_string_( - output, - internal::StringFromGTestEnv("output", - internal::OutputFlagAlsoCheckEnvVar().c_str()), - "A format (defaults to \"xml\" but can be specified to be \"json\"), " - "optionally followed by a colon and an output file name or directory. " - "A directory is indicated by a trailing pathname separator. " - "Examples: \"xml:filename.xml\", \"xml::directoryname/\". " - "If a directory is specified, output files will be created " - "within that directory, with file-names based on the test " - "executable's name and, if necessary, made unique by adding " - "digits."); - -GTEST_DEFINE_bool_( - print_time, - internal::BoolFromGTestEnv("print_time", true), - "True iff " GTEST_NAME_ - " should display elapsed time in text output."); - -GTEST_DEFINE_bool_( - print_utf8, - internal::BoolFromGTestEnv("print_utf8", true), - "True iff " GTEST_NAME_ - " prints UTF8 characters as text."); - -GTEST_DEFINE_int32_( - random_seed, - internal::Int32FromGTestEnv("random_seed", 0), - "Random number seed to use when shuffling test orders. Must be in range " - "[1, 99999], or 0 to use a seed based on the current time."); - -GTEST_DEFINE_int32_( - repeat, - internal::Int32FromGTestEnv("repeat", 1), - "How many times to repeat each test. Specify a negative number " - "for repeating forever. Useful for shaking out flaky tests."); - -GTEST_DEFINE_bool_( - show_internal_stack_frames, false, - "True iff " GTEST_NAME_ " should include internal stack frames when " - "printing test failure stack traces."); - -GTEST_DEFINE_bool_( - shuffle, - internal::BoolFromGTestEnv("shuffle", false), - "True iff " GTEST_NAME_ - " should randomize tests' order on every run."); - -GTEST_DEFINE_int32_( - stack_trace_depth, - internal::Int32FromGTestEnv("stack_trace_depth", kMaxStackTraceDepth), - "The maximum number of stack frames to print when an " - "assertion fails. The valid range is 0 through 100, inclusive."); - -GTEST_DEFINE_string_( - stream_result_to, - internal::StringFromGTestEnv("stream_result_to", ""), - "This flag specifies the host name and the port number on which to stream " - "test results. Example: \"localhost:555\". The flag is effective only on " - "Linux."); - -GTEST_DEFINE_bool_( - throw_on_failure, - internal::BoolFromGTestEnv("throw_on_failure", false), - "When this flag is specified, a failed assertion will throw an exception " - "if exceptions are enabled or exit the program with a non-zero code " - "otherwise. For use with an external test framework."); - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -GTEST_DEFINE_string_( - flagfile, - internal::StringFromGTestEnv("flagfile", ""), - "This flag specifies the flagfile to read command-line flags from."); -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -namespace internal { - -// Generates a random number from [0, range), using a Linear -// Congruential Generator (LCG). Crashes if 'range' is 0 or greater -// than kMaxRange. -UInt32 Random::Generate(UInt32 range) { - // These constants are the same as are used in glibc's rand(3). - // Use wider types than necessary to prevent unsigned overflow diagnostics. - state_ = static_cast(1103515245ULL*state_ + 12345U) % kMaxRange; - - GTEST_CHECK_(range > 0) - << "Cannot generate a number in the range [0, 0)."; - GTEST_CHECK_(range <= kMaxRange) - << "Generation of a number in [0, " << range << ") was requested, " - << "but this can only generate numbers in [0, " << kMaxRange << ")."; - - // Converting via modulus introduces a bit of downward bias, but - // it's simple, and a linear congruential generator isn't too good - // to begin with. - return state_ % range; -} - -// GTestIsInitialized() returns true iff the user has initialized -// Google Test. Useful for catching the user mistake of not initializing -// Google Test before calling RUN_ALL_TESTS(). -static bool GTestIsInitialized() { return GetArgvs().size() > 0; } - -// Iterates over a vector of TestSuites, keeping a running sum of the -// results of calling a given int-returning method on each. -// Returns the sum. -static int SumOverTestSuiteList(const std::vector& case_list, - int (TestSuite::*method)() const) { - int sum = 0; - for (size_t i = 0; i < case_list.size(); i++) { - sum += (case_list[i]->*method)(); - } - return sum; -} - -// Returns true iff the test suite passed. -static bool TestSuitePassed(const TestSuite* test_suite) { - return test_suite->should_run() && test_suite->Passed(); -} - -// Returns true iff the test suite failed. -static bool TestSuiteFailed(const TestSuite* test_suite) { - return test_suite->should_run() && test_suite->Failed(); -} - -// Returns true iff test_suite contains at least one test that should -// run. -static bool ShouldRunTestSuite(const TestSuite* test_suite) { - return test_suite->should_run(); -} - -// AssertHelper constructor. -AssertHelper::AssertHelper(TestPartResult::Type type, - const char* file, - int line, - const char* message) - : data_(new AssertHelperData(type, file, line, message)) { -} - -AssertHelper::~AssertHelper() { - delete data_; -} - -// Message assignment, for assertion streaming support. -void AssertHelper::operator=(const Message& message) const { - UnitTest::GetInstance()-> - AddTestPartResult(data_->type, data_->file, data_->line, - AppendUserMessage(data_->message, message), - UnitTest::GetInstance()->impl() - ->CurrentOsStackTraceExceptTop(1) - // Skips the stack frame for this function itself. - ); // NOLINT -} - -// A copy of all command line arguments. Set by InitGoogleTest(). -static ::std::vector g_argvs; - -::std::vector GetArgvs() { -#if defined(GTEST_CUSTOM_GET_ARGVS_) - // GTEST_CUSTOM_GET_ARGVS_() may return a container of std::string or - // ::string. This code converts it to the appropriate type. - const auto& custom = GTEST_CUSTOM_GET_ARGVS_(); - return ::std::vector(custom.begin(), custom.end()); -#else // defined(GTEST_CUSTOM_GET_ARGVS_) - return g_argvs; -#endif // defined(GTEST_CUSTOM_GET_ARGVS_) -} - -// Returns the current application's name, removing directory path if that -// is present. -FilePath GetCurrentExecutableName() { - FilePath result; - -#if GTEST_OS_WINDOWS || GTEST_OS_OS2 - result.Set(FilePath(GetArgvs()[0]).RemoveExtension("exe")); -#else - result.Set(FilePath(GetArgvs()[0])); -#endif // GTEST_OS_WINDOWS - - return result.RemoveDirectoryName(); -} - -// Functions for processing the gtest_output flag. - -// Returns the output format, or "" for normal printed output. -std::string UnitTestOptions::GetOutputFormat() { - const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); - const char* const colon = strchr(gtest_output_flag, ':'); - return (colon == nullptr) - ? std::string(gtest_output_flag) - : std::string(gtest_output_flag, colon - gtest_output_flag); -} - -// Returns the name of the requested output file, or the default if none -// was explicitly specified. -std::string UnitTestOptions::GetAbsolutePathToOutputFile() { - const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); - - std::string format = GetOutputFormat(); - if (format.empty()) - format = std::string(kDefaultOutputFormat); - - const char* const colon = strchr(gtest_output_flag, ':'); - if (colon == nullptr) - return internal::FilePath::MakeFileName( - internal::FilePath( - UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(kDefaultOutputFile), 0, - format.c_str()).string(); - - internal::FilePath output_name(colon + 1); - if (!output_name.IsAbsolutePath()) - output_name = internal::FilePath::ConcatPaths( - internal::FilePath(UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(colon + 1)); - - if (!output_name.IsDirectory()) - return output_name.string(); - - internal::FilePath result(internal::FilePath::GenerateUniqueFileName( - output_name, internal::GetCurrentExecutableName(), - GetOutputFormat().c_str())); - return result.string(); -} - -// Returns true iff the wildcard pattern matches the string. The -// first ':' or '\0' character in pattern marks the end of it. -// -// This recursive algorithm isn't very efficient, but is clear and -// works well enough for matching test names, which are short. -bool UnitTestOptions::PatternMatchesString(const char *pattern, - const char *str) { - switch (*pattern) { - case '\0': - case ':': // Either ':' or '\0' marks the end of the pattern. - return *str == '\0'; - case '?': // Matches any single character. - return *str != '\0' && PatternMatchesString(pattern + 1, str + 1); - case '*': // Matches any string (possibly empty) of characters. - return (*str != '\0' && PatternMatchesString(pattern, str + 1)) || - PatternMatchesString(pattern + 1, str); - default: // Non-special character. Matches itself. - return *pattern == *str && - PatternMatchesString(pattern + 1, str + 1); - } -} - -bool UnitTestOptions::MatchesFilter( - const std::string& name, const char* filter) { - const char *cur_pattern = filter; - for (;;) { - if (PatternMatchesString(cur_pattern, name.c_str())) { - return true; - } - - // Finds the next pattern in the filter. - cur_pattern = strchr(cur_pattern, ':'); - - // Returns if no more pattern can be found. - if (cur_pattern == nullptr) { - return false; - } - - // Skips the pattern separator (the ':' character). - cur_pattern++; - } -} - -// Returns true iff the user-specified filter matches the test suite -// name and the test name. -bool UnitTestOptions::FilterMatchesTest(const std::string& test_suite_name, - const std::string& test_name) { - const std::string& full_name = test_suite_name + "." + test_name.c_str(); - - // Split --gtest_filter at '-', if there is one, to separate into - // positive filter and negative filter portions - const char* const p = GTEST_FLAG(filter).c_str(); - const char* const dash = strchr(p, '-'); - std::string positive; - std::string negative; - if (dash == nullptr) { - positive = GTEST_FLAG(filter).c_str(); // Whole string is a positive filter - negative = ""; - } else { - positive = std::string(p, dash); // Everything up to the dash - negative = std::string(dash + 1); // Everything after the dash - if (positive.empty()) { - // Treat '-test1' as the same as '*-test1' - positive = kUniversalFilter; - } - } - - // A filter is a colon-separated list of patterns. It matches a - // test if any pattern in it matches the test. - return (MatchesFilter(full_name, positive.c_str()) && - !MatchesFilter(full_name, negative.c_str())); -} - -#if GTEST_HAS_SEH -// Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the -// given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise. -// This function is useful as an __except condition. -int UnitTestOptions::GTestShouldProcessSEH(DWORD exception_code) { - // Google Test should handle a SEH exception if: - // 1. the user wants it to, AND - // 2. this is not a breakpoint exception, AND - // 3. this is not a C++ exception (VC++ implements them via SEH, - // apparently). - // - // SEH exception code for C++ exceptions. - // (see http://support.microsoft.com/kb/185294 for more information). - const DWORD kCxxExceptionCode = 0xe06d7363; - - bool should_handle = true; - - if (!GTEST_FLAG(catch_exceptions)) - should_handle = false; - else if (exception_code == EXCEPTION_BREAKPOINT) - should_handle = false; - else if (exception_code == kCxxExceptionCode) - should_handle = false; - - return should_handle ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH; -} -#endif // GTEST_HAS_SEH - -} // namespace internal - -// The c'tor sets this object as the test part result reporter used by -// Google Test. The 'result' parameter specifies where to report the -// results. Intercepts only failures from the current thread. -ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter( - TestPartResultArray* result) - : intercept_mode_(INTERCEPT_ONLY_CURRENT_THREAD), - result_(result) { - Init(); -} - -// The c'tor sets this object as the test part result reporter used by -// Google Test. The 'result' parameter specifies where to report the -// results. -ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter( - InterceptMode intercept_mode, TestPartResultArray* result) - : intercept_mode_(intercept_mode), - result_(result) { - Init(); -} - -void ScopedFakeTestPartResultReporter::Init() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - if (intercept_mode_ == INTERCEPT_ALL_THREADS) { - old_reporter_ = impl->GetGlobalTestPartResultReporter(); - impl->SetGlobalTestPartResultReporter(this); - } else { - old_reporter_ = impl->GetTestPartResultReporterForCurrentThread(); - impl->SetTestPartResultReporterForCurrentThread(this); - } -} - -// The d'tor restores the test part result reporter used by Google Test -// before. -ScopedFakeTestPartResultReporter::~ScopedFakeTestPartResultReporter() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - if (intercept_mode_ == INTERCEPT_ALL_THREADS) { - impl->SetGlobalTestPartResultReporter(old_reporter_); - } else { - impl->SetTestPartResultReporterForCurrentThread(old_reporter_); - } -} - -// Increments the test part result count and remembers the result. -// This method is from the TestPartResultReporterInterface interface. -void ScopedFakeTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - result_->Append(result); -} - -namespace internal { - -// Returns the type ID of ::testing::Test. We should always call this -// instead of GetTypeId< ::testing::Test>() to get the type ID of -// testing::Test. This is to work around a suspected linker bug when -// using Google Test as a framework on Mac OS X. The bug causes -// GetTypeId< ::testing::Test>() to return different values depending -// on whether the call is from the Google Test framework itself or -// from user test code. GetTestTypeId() is guaranteed to always -// return the same value, as it always calls GetTypeId<>() from the -// gtest.cc, which is within the Google Test framework. -TypeId GetTestTypeId() { - return GetTypeId(); -} - -// The value of GetTestTypeId() as seen from within the Google Test -// library. This is solely for testing GetTestTypeId(). -extern const TypeId kTestTypeIdInGoogleTest = GetTestTypeId(); - -// This predicate-formatter checks that 'results' contains a test part -// failure of the given type and that the failure message contains the -// given substring. -static AssertionResult HasOneFailure(const char* /* results_expr */, - const char* /* type_expr */, - const char* /* substr_expr */, - const TestPartResultArray& results, - TestPartResult::Type type, - const std::string& substr) { - const std::string expected(type == TestPartResult::kFatalFailure ? - "1 fatal failure" : - "1 non-fatal failure"); - Message msg; - if (results.size() != 1) { - msg << "Expected: " << expected << "\n" - << " Actual: " << results.size() << " failures"; - for (int i = 0; i < results.size(); i++) { - msg << "\n" << results.GetTestPartResult(i); - } - return AssertionFailure() << msg; - } - - const TestPartResult& r = results.GetTestPartResult(0); - if (r.type() != type) { - return AssertionFailure() << "Expected: " << expected << "\n" - << " Actual:\n" - << r; - } - - if (strstr(r.message(), substr.c_str()) == nullptr) { - return AssertionFailure() << "Expected: " << expected << " containing \"" - << substr << "\"\n" - << " Actual:\n" - << r; - } - - return AssertionSuccess(); -} - -// The constructor of SingleFailureChecker remembers where to look up -// test part results, what type of failure we expect, and what -// substring the failure message should contain. -SingleFailureChecker::SingleFailureChecker(const TestPartResultArray* results, - TestPartResult::Type type, - const std::string& substr) - : results_(results), type_(type), substr_(substr) {} - -// The destructor of SingleFailureChecker verifies that the given -// TestPartResultArray contains exactly one failure that has the given -// type and contains the given substring. If that's not the case, a -// non-fatal failure will be generated. -SingleFailureChecker::~SingleFailureChecker() { - EXPECT_PRED_FORMAT3(HasOneFailure, *results_, type_, substr_); -} - -DefaultGlobalTestPartResultReporter::DefaultGlobalTestPartResultReporter( - UnitTestImpl* unit_test) : unit_test_(unit_test) {} - -void DefaultGlobalTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - unit_test_->current_test_result()->AddTestPartResult(result); - unit_test_->listeners()->repeater()->OnTestPartResult(result); -} - -DefaultPerThreadTestPartResultReporter::DefaultPerThreadTestPartResultReporter( - UnitTestImpl* unit_test) : unit_test_(unit_test) {} - -void DefaultPerThreadTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - unit_test_->GetGlobalTestPartResultReporter()->ReportTestPartResult(result); -} - -// Returns the global test part result reporter. -TestPartResultReporterInterface* -UnitTestImpl::GetGlobalTestPartResultReporter() { - internal::MutexLock lock(&global_test_part_result_reporter_mutex_); - return global_test_part_result_repoter_; -} - -// Sets the global test part result reporter. -void UnitTestImpl::SetGlobalTestPartResultReporter( - TestPartResultReporterInterface* reporter) { - internal::MutexLock lock(&global_test_part_result_reporter_mutex_); - global_test_part_result_repoter_ = reporter; -} - -// Returns the test part result reporter for the current thread. -TestPartResultReporterInterface* -UnitTestImpl::GetTestPartResultReporterForCurrentThread() { - return per_thread_test_part_result_reporter_.get(); -} - -// Sets the test part result reporter for the current thread. -void UnitTestImpl::SetTestPartResultReporterForCurrentThread( - TestPartResultReporterInterface* reporter) { - per_thread_test_part_result_reporter_.set(reporter); -} - -// Gets the number of successful test suites. -int UnitTestImpl::successful_test_suite_count() const { - return CountIf(test_suites_, TestSuitePassed); -} - -// Gets the number of failed test suites. -int UnitTestImpl::failed_test_suite_count() const { - return CountIf(test_suites_, TestSuiteFailed); -} - -// Gets the number of all test suites. -int UnitTestImpl::total_test_suite_count() const { - return static_cast(test_suites_.size()); -} - -// Gets the number of all test suites that contain at least one test -// that should run. -int UnitTestImpl::test_suite_to_run_count() const { - return CountIf(test_suites_, ShouldRunTestSuite); -} - -// Gets the number of successful tests. -int UnitTestImpl::successful_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::successful_test_count); -} - -// Gets the number of skipped tests. -int UnitTestImpl::skipped_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::skipped_test_count); -} - -// Gets the number of failed tests. -int UnitTestImpl::failed_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::failed_test_count); -} - -// Gets the number of disabled tests that will be reported in the XML report. -int UnitTestImpl::reportable_disabled_test_count() const { - return SumOverTestSuiteList(test_suites_, - &TestSuite::reportable_disabled_test_count); -} - -// Gets the number of disabled tests. -int UnitTestImpl::disabled_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::disabled_test_count); -} - -// Gets the number of tests to be printed in the XML report. -int UnitTestImpl::reportable_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::reportable_test_count); -} - -// Gets the number of all tests. -int UnitTestImpl::total_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::total_test_count); -} - -// Gets the number of tests that should run. -int UnitTestImpl::test_to_run_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::test_to_run_count); -} - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// CurrentOsStackTraceExceptTop(1), Foo() will be included in the -// trace but Bar() and CurrentOsStackTraceExceptTop() won't. -std::string UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { - return os_stack_trace_getter()->CurrentStackTrace( - static_cast(GTEST_FLAG(stack_trace_depth)), - skip_count + 1 - // Skips the user-specified number of frames plus this function - // itself. - ); // NOLINT -} - -// Returns the current time in milliseconds. -TimeInMillis GetTimeInMillis() { -#if GTEST_OS_WINDOWS_MOBILE || defined(__BORLANDC__) - // Difference between 1970-01-01 and 1601-01-01 in milliseconds. - // http://analogous.blogspot.com/2005/04/epoch.html - const TimeInMillis kJavaEpochToWinFileTimeDelta = - static_cast(116444736UL) * 100000UL; - const DWORD kTenthMicrosInMilliSecond = 10000; - - SYSTEMTIME now_systime; - FILETIME now_filetime; - ULARGE_INTEGER now_int64; - GetSystemTime(&now_systime); - if (SystemTimeToFileTime(&now_systime, &now_filetime)) { - now_int64.LowPart = now_filetime.dwLowDateTime; - now_int64.HighPart = now_filetime.dwHighDateTime; - now_int64.QuadPart = (now_int64.QuadPart / kTenthMicrosInMilliSecond) - - kJavaEpochToWinFileTimeDelta; - return now_int64.QuadPart; - } - return 0; -#elif GTEST_OS_WINDOWS && !GTEST_HAS_GETTIMEOFDAY_ - __timeb64 now; - - // MSVC 8 deprecates _ftime64(), so we want to suppress warning 4996 - // (deprecated function) there. - GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - _ftime64(&now); - GTEST_DISABLE_MSC_DEPRECATED_POP_() - - return static_cast(now.time) * 1000 + now.millitm; -#elif GTEST_HAS_GETTIMEOFDAY_ - struct timeval now; - gettimeofday(&now, nullptr); - return static_cast(now.tv_sec) * 1000 + now.tv_usec / 1000; -#else -# error "Don't know how to get the current time on your system." -#endif -} - -// Utilities - -// class String. - -#if GTEST_OS_WINDOWS_MOBILE -// Creates a UTF-16 wide string from the given ANSI string, allocating -// memory using new. The caller is responsible for deleting the return -// value using delete[]. Returns the wide string, or NULL if the -// input is NULL. -LPCWSTR String::AnsiToUtf16(const char* ansi) { - if (!ansi) return nullptr; - const int length = strlen(ansi); - const int unicode_length = - MultiByteToWideChar(CP_ACP, 0, ansi, length, nullptr, 0); - WCHAR* unicode = new WCHAR[unicode_length + 1]; - MultiByteToWideChar(CP_ACP, 0, ansi, length, - unicode, unicode_length); - unicode[unicode_length] = 0; - return unicode; -} - -// Creates an ANSI string from the given wide string, allocating -// memory using new. The caller is responsible for deleting the return -// value using delete[]. Returns the ANSI string, or NULL if the -// input is NULL. -const char* String::Utf16ToAnsi(LPCWSTR utf16_str) { - if (!utf16_str) return nullptr; - const int ansi_length = WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, nullptr, - 0, nullptr, nullptr); - char* ansi = new char[ansi_length + 1]; - WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, ansi, ansi_length, nullptr, - nullptr); - ansi[ansi_length] = 0; - return ansi; -} - -#endif // GTEST_OS_WINDOWS_MOBILE - -// Compares two C strings. Returns true iff they have the same content. -// -// Unlike strcmp(), this function can handle NULL argument(s). A NULL -// C string is considered different to any non-NULL C string, -// including the empty string. -bool String::CStringEquals(const char * lhs, const char * rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - - return strcmp(lhs, rhs) == 0; -} - -#if GTEST_HAS_STD_WSTRING - -// Converts an array of wide chars to a narrow string using the UTF-8 -// encoding, and streams the result to the given Message object. -static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, - Message* msg) { - for (size_t i = 0; i != length; ) { // NOLINT - if (wstr[i] != L'\0') { - *msg << WideStringToUtf8(wstr + i, static_cast(length - i)); - while (i != length && wstr[i] != L'\0') - i++; - } else { - *msg << '\0'; - i++; - } - } -} - -#endif // GTEST_HAS_STD_WSTRING - -void SplitString(const ::std::string& str, char delimiter, - ::std::vector< ::std::string>* dest) { - ::std::vector< ::std::string> parsed; - ::std::string::size_type pos = 0; - while (::testing::internal::AlwaysTrue()) { - const ::std::string::size_type colon = str.find(delimiter, pos); - if (colon == ::std::string::npos) { - parsed.push_back(str.substr(pos)); - break; - } else { - parsed.push_back(str.substr(pos, colon - pos)); - pos = colon + 1; - } - } - dest->swap(parsed); -} - -} // namespace internal - -// Constructs an empty Message. -// We allocate the stringstream separately because otherwise each use of -// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's -// stack frame leading to huge stack frames in some cases; gcc does not reuse -// the stack space. -Message::Message() : ss_(new ::std::stringstream) { - // By default, we want there to be enough precision when printing - // a double to a Message. - *ss_ << std::setprecision(std::numeric_limits::digits10 + 2); -} - -// These two overloads allow streaming a wide C string to a Message -// using the UTF-8 encoding. -Message& Message::operator <<(const wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); -} -Message& Message::operator <<(wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); -} - -#if GTEST_HAS_STD_WSTRING -// Converts the given wide string to a narrow string using the UTF-8 -// encoding, and streams the result to this Message object. -Message& Message::operator <<(const ::std::wstring& wstr) { - internal::StreamWideCharsToMessage(wstr.c_str(), wstr.length(), this); - return *this; -} -#endif // GTEST_HAS_STD_WSTRING - -// Gets the text streamed to this object so far as an std::string. -// Each '\0' character in the buffer is replaced with "\\0". -std::string Message::GetString() const { - return internal::StringStreamToString(ss_.get()); -} - -// AssertionResult constructors. -// Used in EXPECT_TRUE/FALSE(assertion_result). -AssertionResult::AssertionResult(const AssertionResult& other) - : success_(other.success_), - message_(other.message_.get() != nullptr - ? new ::std::string(*other.message_) - : static_cast< ::std::string*>(nullptr)) {} - -// Swaps two AssertionResults. -void AssertionResult::swap(AssertionResult& other) { - using std::swap; - swap(success_, other.success_); - swap(message_, other.message_); -} - -// Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. -AssertionResult AssertionResult::operator!() const { - AssertionResult negation(!success_); - if (message_.get() != nullptr) negation << *message_; - return negation; -} - -// Makes a successful assertion result. -AssertionResult AssertionSuccess() { - return AssertionResult(true); -} - -// Makes a failed assertion result. -AssertionResult AssertionFailure() { - return AssertionResult(false); -} - -// Makes a failed assertion result with the given failure message. -// Deprecated; use AssertionFailure() << message. -AssertionResult AssertionFailure(const Message& message) { - return AssertionFailure() << message; -} - -namespace internal { - -namespace edit_distance { -std::vector CalculateOptimalEdits(const std::vector& left, - const std::vector& right) { - std::vector > costs( - left.size() + 1, std::vector(right.size() + 1)); - std::vector > best_move( - left.size() + 1, std::vector(right.size() + 1)); - - // Populate for empty right. - for (size_t l_i = 0; l_i < costs.size(); ++l_i) { - costs[l_i][0] = static_cast(l_i); - best_move[l_i][0] = kRemove; - } - // Populate for empty left. - for (size_t r_i = 1; r_i < costs[0].size(); ++r_i) { - costs[0][r_i] = static_cast(r_i); - best_move[0][r_i] = kAdd; - } - - for (size_t l_i = 0; l_i < left.size(); ++l_i) { - for (size_t r_i = 0; r_i < right.size(); ++r_i) { - if (left[l_i] == right[r_i]) { - // Found a match. Consume it. - costs[l_i + 1][r_i + 1] = costs[l_i][r_i]; - best_move[l_i + 1][r_i + 1] = kMatch; - continue; - } - - const double add = costs[l_i + 1][r_i]; - const double remove = costs[l_i][r_i + 1]; - const double replace = costs[l_i][r_i]; - if (add < remove && add < replace) { - costs[l_i + 1][r_i + 1] = add + 1; - best_move[l_i + 1][r_i + 1] = kAdd; - } else if (remove < add && remove < replace) { - costs[l_i + 1][r_i + 1] = remove + 1; - best_move[l_i + 1][r_i + 1] = kRemove; - } else { - // We make replace a little more expensive than add/remove to lower - // their priority. - costs[l_i + 1][r_i + 1] = replace + 1.00001; - best_move[l_i + 1][r_i + 1] = kReplace; - } - } - } - - // Reconstruct the best path. We do it in reverse order. - std::vector best_path; - for (size_t l_i = left.size(), r_i = right.size(); l_i > 0 || r_i > 0;) { - EditType move = best_move[l_i][r_i]; - best_path.push_back(move); - l_i -= move != kAdd; - r_i -= move != kRemove; - } - std::reverse(best_path.begin(), best_path.end()); - return best_path; -} - -namespace { - -// Helper class to convert string into ids with deduplication. -class InternalStrings { - public: - size_t GetId(const std::string& str) { - IdMap::iterator it = ids_.find(str); - if (it != ids_.end()) return it->second; - size_t id = ids_.size(); - return ids_[str] = id; - } - - private: - typedef std::map IdMap; - IdMap ids_; -}; - -} // namespace - -std::vector CalculateOptimalEdits( - const std::vector& left, - const std::vector& right) { - std::vector left_ids, right_ids; - { - InternalStrings intern_table; - for (size_t i = 0; i < left.size(); ++i) { - left_ids.push_back(intern_table.GetId(left[i])); - } - for (size_t i = 0; i < right.size(); ++i) { - right_ids.push_back(intern_table.GetId(right[i])); - } - } - return CalculateOptimalEdits(left_ids, right_ids); -} - -namespace { - -// Helper class that holds the state for one hunk and prints it out to the -// stream. -// It reorders adds/removes when possible to group all removes before all -// adds. It also adds the hunk header before printint into the stream. -class Hunk { - public: - Hunk(size_t left_start, size_t right_start) - : left_start_(left_start), - right_start_(right_start), - adds_(), - removes_(), - common_() {} - - void PushLine(char edit, const char* line) { - switch (edit) { - case ' ': - ++common_; - FlushEdits(); - hunk_.push_back(std::make_pair(' ', line)); - break; - case '-': - ++removes_; - hunk_removes_.push_back(std::make_pair('-', line)); - break; - case '+': - ++adds_; - hunk_adds_.push_back(std::make_pair('+', line)); - break; - } - } - - void PrintTo(std::ostream* os) { - PrintHeader(os); - FlushEdits(); - for (std::list >::const_iterator it = - hunk_.begin(); - it != hunk_.end(); ++it) { - *os << it->first << it->second << "\n"; - } - } - - bool has_edits() const { return adds_ || removes_; } - - private: - void FlushEdits() { - hunk_.splice(hunk_.end(), hunk_removes_); - hunk_.splice(hunk_.end(), hunk_adds_); - } - - // Print a unified diff header for one hunk. - // The format is - // "@@ -, +, @@" - // where the left/right parts are omitted if unnecessary. - void PrintHeader(std::ostream* ss) const { - *ss << "@@ "; - if (removes_) { - *ss << "-" << left_start_ << "," << (removes_ + common_); - } - if (removes_ && adds_) { - *ss << " "; - } - if (adds_) { - *ss << "+" << right_start_ << "," << (adds_ + common_); - } - *ss << " @@\n"; - } - - size_t left_start_, right_start_; - size_t adds_, removes_, common_; - std::list > hunk_, hunk_adds_, hunk_removes_; -}; - -} // namespace - -// Create a list of diff hunks in Unified diff format. -// Each hunk has a header generated by PrintHeader above plus a body with -// lines prefixed with ' ' for no change, '-' for deletion and '+' for -// addition. -// 'context' represents the desired unchanged prefix/suffix around the diff. -// If two hunks are close enough that their contexts overlap, then they are -// joined into one hunk. -std::string CreateUnifiedDiff(const std::vector& left, - const std::vector& right, - size_t context) { - const std::vector edits = CalculateOptimalEdits(left, right); - - size_t l_i = 0, r_i = 0, edit_i = 0; - std::stringstream ss; - while (edit_i < edits.size()) { - // Find first edit. - while (edit_i < edits.size() && edits[edit_i] == kMatch) { - ++l_i; - ++r_i; - ++edit_i; - } - - // Find the first line to include in the hunk. - const size_t prefix_context = std::min(l_i, context); - Hunk hunk(l_i - prefix_context + 1, r_i - prefix_context + 1); - for (size_t i = prefix_context; i > 0; --i) { - hunk.PushLine(' ', left[l_i - i].c_str()); - } - - // Iterate the edits until we found enough suffix for the hunk or the input - // is over. - size_t n_suffix = 0; - for (; edit_i < edits.size(); ++edit_i) { - if (n_suffix >= context) { - // Continue only if the next hunk is very close. - std::vector::const_iterator it = edits.begin() + edit_i; - while (it != edits.end() && *it == kMatch) ++it; - if (it == edits.end() || (it - edits.begin()) - edit_i >= context) { - // There is no next edit or it is too far away. - break; - } - } - - EditType edit = edits[edit_i]; - // Reset count when a non match is found. - n_suffix = edit == kMatch ? n_suffix + 1 : 0; - - if (edit == kMatch || edit == kRemove || edit == kReplace) { - hunk.PushLine(edit == kMatch ? ' ' : '-', left[l_i].c_str()); - } - if (edit == kAdd || edit == kReplace) { - hunk.PushLine('+', right[r_i].c_str()); - } - - // Advance indices, depending on edit type. - l_i += edit != kAdd; - r_i += edit != kRemove; - } - - if (!hunk.has_edits()) { - // We are done. We don't want this hunk. - break; - } - - hunk.PrintTo(&ss); - } - return ss.str(); -} - -} // namespace edit_distance - -namespace { - -// The string representation of the values received in EqFailure() are already -// escaped. Split them on escaped '\n' boundaries. Leave all other escaped -// characters the same. -std::vector SplitEscapedString(const std::string& str) { - std::vector lines; - size_t start = 0, end = str.size(); - if (end > 2 && str[0] == '"' && str[end - 1] == '"') { - ++start; - --end; - } - bool escaped = false; - for (size_t i = start; i + 1 < end; ++i) { - if (escaped) { - escaped = false; - if (str[i] == 'n') { - lines.push_back(str.substr(start, i - start - 1)); - start = i + 1; - } - } else { - escaped = str[i] == '\\'; - } - } - lines.push_back(str.substr(start, end - start)); - return lines; -} - -} // namespace - -// Constructs and returns the message for an equality assertion -// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. -// -// The first four parameters are the expressions used in the assertion -// and their values, as strings. For example, for ASSERT_EQ(foo, bar) -// where foo is 5 and bar is 6, we have: -// -// lhs_expression: "foo" -// rhs_expression: "bar" -// lhs_value: "5" -// rhs_value: "6" -// -// The ignoring_case parameter is true iff the assertion is a -// *_STRCASEEQ*. When it's true, the string "Ignoring case" will -// be inserted into the message. -AssertionResult EqFailure(const char* lhs_expression, - const char* rhs_expression, - const std::string& lhs_value, - const std::string& rhs_value, - bool ignoring_case) { - Message msg; - msg << "Expected equality of these values:"; - msg << "\n " << lhs_expression; - if (lhs_value != lhs_expression) { - msg << "\n Which is: " << lhs_value; - } - msg << "\n " << rhs_expression; - if (rhs_value != rhs_expression) { - msg << "\n Which is: " << rhs_value; - } - - if (ignoring_case) { - msg << "\nIgnoring case"; - } - - if (!lhs_value.empty() && !rhs_value.empty()) { - const std::vector lhs_lines = - SplitEscapedString(lhs_value); - const std::vector rhs_lines = - SplitEscapedString(rhs_value); - if (lhs_lines.size() > 1 || rhs_lines.size() > 1) { - msg << "\nWith diff:\n" - << edit_distance::CreateUnifiedDiff(lhs_lines, rhs_lines); - } - } - - return AssertionFailure() << msg; -} - -// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -std::string GetBoolAssertionFailureMessage( - const AssertionResult& assertion_result, - const char* expression_text, - const char* actual_predicate_value, - const char* expected_predicate_value) { - const char* actual_message = assertion_result.message(); - Message msg; - msg << "Value of: " << expression_text - << "\n Actual: " << actual_predicate_value; - if (actual_message[0] != '\0') - msg << " (" << actual_message << ")"; - msg << "\nExpected: " << expected_predicate_value; - return msg.GetString(); -} - -// Helper function for implementing ASSERT_NEAR. -AssertionResult DoubleNearPredFormat(const char* expr1, - const char* expr2, - const char* abs_error_expr, - double val1, - double val2, - double abs_error) { - const double diff = fabs(val1 - val2); - if (diff <= abs_error) return AssertionSuccess(); - - return AssertionFailure() - << "The difference between " << expr1 << " and " << expr2 - << " is " << diff << ", which exceeds " << abs_error_expr << ", where\n" - << expr1 << " evaluates to " << val1 << ",\n" - << expr2 << " evaluates to " << val2 << ", and\n" - << abs_error_expr << " evaluates to " << abs_error << "."; -} - - -// Helper template for implementing FloatLE() and DoubleLE(). -template -AssertionResult FloatingPointLE(const char* expr1, - const char* expr2, - RawType val1, - RawType val2) { - // Returns success if val1 is less than val2, - if (val1 < val2) { - return AssertionSuccess(); - } - - // or if val1 is almost equal to val2. - const FloatingPoint lhs(val1), rhs(val2); - if (lhs.AlmostEquals(rhs)) { - return AssertionSuccess(); - } - - // Note that the above two checks will both fail if either val1 or - // val2 is NaN, as the IEEE floating-point standard requires that - // any predicate involving a NaN must return false. - - ::std::stringstream val1_ss; - val1_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << val1; - - ::std::stringstream val2_ss; - val2_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << val2; - - return AssertionFailure() - << "Expected: (" << expr1 << ") <= (" << expr2 << ")\n" - << " Actual: " << StringStreamToString(&val1_ss) << " vs " - << StringStreamToString(&val2_ss); -} - -} // namespace internal - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -AssertionResult FloatLE(const char* expr1, const char* expr2, - float val1, float val2) { - return internal::FloatingPointLE(expr1, expr2, val1, val2); -} - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -AssertionResult DoubleLE(const char* expr1, const char* expr2, - double val1, double val2) { - return internal::FloatingPointLE(expr1, expr2, val1, val2); -} - -namespace internal { - -// The helper function for {ASSERT|EXPECT}_EQ with int or enum -// arguments. -AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, - BiggestInt lhs, - BiggestInt rhs) { - if (lhs == rhs) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, - rhs_expression, - FormatForComparisonFailureMessage(lhs, rhs), - FormatForComparisonFailureMessage(rhs, lhs), - false); -} - -// A macro for implementing the helper functions needed to implement -// ASSERT_?? and EXPECT_?? with integer or enum arguments. It is here -// just to avoid copy-and-paste of similar code. -#define GTEST_IMPL_CMP_HELPER_(op_name, op)\ -AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ - BiggestInt val1, BiggestInt val2) {\ - if (val1 op val2) {\ - return AssertionSuccess();\ - } else {\ - return AssertionFailure() \ - << "Expected: (" << expr1 << ") " #op " (" << expr2\ - << "), actual: " << FormatForComparisonFailureMessage(val1, val2)\ - << " vs " << FormatForComparisonFailureMessage(val2, val1);\ - }\ -} - -// Implements the helper function for {ASSERT|EXPECT}_NE with int or -// enum arguments. -GTEST_IMPL_CMP_HELPER_(NE, !=) -// Implements the helper function for {ASSERT|EXPECT}_LE with int or -// enum arguments. -GTEST_IMPL_CMP_HELPER_(LE, <=) -// Implements the helper function for {ASSERT|EXPECT}_LT with int or -// enum arguments. -GTEST_IMPL_CMP_HELPER_(LT, < ) -// Implements the helper function for {ASSERT|EXPECT}_GE with int or -// enum arguments. -GTEST_IMPL_CMP_HELPER_(GE, >=) -// Implements the helper function for {ASSERT|EXPECT}_GT with int or -// enum arguments. -GTEST_IMPL_CMP_HELPER_(GT, > ) - -#undef GTEST_IMPL_CMP_HELPER_ - -// The helper function for {ASSERT|EXPECT}_STREQ. -AssertionResult CmpHelperSTREQ(const char* lhs_expression, - const char* rhs_expression, - const char* lhs, - const char* rhs) { - if (String::CStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, - rhs_expression, - PrintToString(lhs), - PrintToString(rhs), - false); -} - -// The helper function for {ASSERT|EXPECT}_STRCASEEQ. -AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression, - const char* rhs_expression, - const char* lhs, - const char* rhs) { - if (String::CaseInsensitiveCStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, - rhs_expression, - PrintToString(lhs), - PrintToString(rhs), - true); -} - -// The helper function for {ASSERT|EXPECT}_STRNE. -AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2) { - if (!String::CStringEquals(s1, s2)) { - return AssertionSuccess(); - } else { - return AssertionFailure() << "Expected: (" << s1_expression << ") != (" - << s2_expression << "), actual: \"" - << s1 << "\" vs \"" << s2 << "\""; - } -} - -// The helper function for {ASSERT|EXPECT}_STRCASENE. -AssertionResult CmpHelperSTRCASENE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2) { - if (!String::CaseInsensitiveCStringEquals(s1, s2)) { - return AssertionSuccess(); - } else { - return AssertionFailure() - << "Expected: (" << s1_expression << ") != (" - << s2_expression << ") (ignoring case), actual: \"" - << s1 << "\" vs \"" << s2 << "\""; - } -} - -} // namespace internal - -namespace { - -// Helper functions for implementing IsSubString() and IsNotSubstring(). - -// This group of overloaded functions return true iff needle is a -// substring of haystack. NULL is considered a substring of itself -// only. - -bool IsSubstringPred(const char* needle, const char* haystack) { - if (needle == nullptr || haystack == nullptr) return needle == haystack; - - return strstr(haystack, needle) != nullptr; -} - -bool IsSubstringPred(const wchar_t* needle, const wchar_t* haystack) { - if (needle == nullptr || haystack == nullptr) return needle == haystack; - - return wcsstr(haystack, needle) != nullptr; -} - -// StringType here can be either ::std::string or ::std::wstring. -template -bool IsSubstringPred(const StringType& needle, - const StringType& haystack) { - return haystack.find(needle) != StringType::npos; -} - -// This function implements either IsSubstring() or IsNotSubstring(), -// depending on the value of the expected_to_be_substring parameter. -// StringType here can be const char*, const wchar_t*, ::std::string, -// or ::std::wstring. -template -AssertionResult IsSubstringImpl( - bool expected_to_be_substring, - const char* needle_expr, const char* haystack_expr, - const StringType& needle, const StringType& haystack) { - if (IsSubstringPred(needle, haystack) == expected_to_be_substring) - return AssertionSuccess(); - - const bool is_wide_string = sizeof(needle[0]) > 1; - const char* const begin_string_quote = is_wide_string ? "L\"" : "\""; - return AssertionFailure() - << "Value of: " << needle_expr << "\n" - << " Actual: " << begin_string_quote << needle << "\"\n" - << "Expected: " << (expected_to_be_substring ? "" : "not ") - << "a substring of " << haystack_expr << "\n" - << "Which is: " << begin_string_quote << haystack << "\""; -} - -} // namespace - -// IsSubstring() and IsNotSubstring() check whether needle is a -// substring of haystack (NULL is considered a substring of itself -// only), and return an appropriate error message when they fail. - -AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -#if GTEST_HAS_STD_WSTRING -AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} -#endif // GTEST_HAS_STD_WSTRING - -namespace internal { - -#if GTEST_OS_WINDOWS - -namespace { - -// Helper function for IsHRESULT{SuccessFailure} predicates -AssertionResult HRESULTFailureHelper(const char* expr, - const char* expected, - long hr) { // NOLINT -# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_TV_TITLE - - // Windows CE doesn't support FormatMessage. - const char error_text[] = ""; - -# else - - // Looks up the human-readable system message for the HRESULT code - // and since we're not passing any params to FormatMessage, we don't - // want inserts expanded. - const DWORD kFlags = FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS; - const DWORD kBufSize = 4096; - // Gets the system's human readable message string for this HRESULT. - char error_text[kBufSize] = { '\0' }; - DWORD message_length = ::FormatMessageA(kFlags, - 0, // no source, we're asking system - hr, // the error - 0, // no line width restrictions - error_text, // output buffer - kBufSize, // buf size - nullptr); // no arguments for inserts - // Trims tailing white space (FormatMessage leaves a trailing CR-LF) - for (; message_length && IsSpace(error_text[message_length - 1]); - --message_length) { - error_text[message_length - 1] = '\0'; - } - -# endif // GTEST_OS_WINDOWS_MOBILE - - const std::string error_hex("0x" + String::FormatHexInt(hr)); - return ::testing::AssertionFailure() - << "Expected: " << expr << " " << expected << ".\n" - << " Actual: " << error_hex << " " << error_text << "\n"; -} - -} // namespace - -AssertionResult IsHRESULTSuccess(const char* expr, long hr) { // NOLINT - if (SUCCEEDED(hr)) { - return AssertionSuccess(); - } - return HRESULTFailureHelper(expr, "succeeds", hr); -} - -AssertionResult IsHRESULTFailure(const char* expr, long hr) { // NOLINT - if (FAILED(hr)) { - return AssertionSuccess(); - } - return HRESULTFailureHelper(expr, "fails", hr); -} - -#endif // GTEST_OS_WINDOWS - -// Utility functions for encoding Unicode text (wide strings) in -// UTF-8. - -// A Unicode code-point can have up to 21 bits, and is encoded in UTF-8 -// like this: -// -// Code-point length Encoding -// 0 - 7 bits 0xxxxxxx -// 8 - 11 bits 110xxxxx 10xxxxxx -// 12 - 16 bits 1110xxxx 10xxxxxx 10xxxxxx -// 17 - 21 bits 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - -// The maximum code-point a one-byte UTF-8 sequence can represent. -const UInt32 kMaxCodePoint1 = (static_cast(1) << 7) - 1; - -// The maximum code-point a two-byte UTF-8 sequence can represent. -const UInt32 kMaxCodePoint2 = (static_cast(1) << (5 + 6)) - 1; - -// The maximum code-point a three-byte UTF-8 sequence can represent. -const UInt32 kMaxCodePoint3 = (static_cast(1) << (4 + 2*6)) - 1; - -// The maximum code-point a four-byte UTF-8 sequence can represent. -const UInt32 kMaxCodePoint4 = (static_cast(1) << (3 + 3*6)) - 1; - -// Chops off the n lowest bits from a bit pattern. Returns the n -// lowest bits. As a side effect, the original bit pattern will be -// shifted to the right by n bits. -inline UInt32 ChopLowBits(UInt32* bits, int n) { - const UInt32 low_bits = *bits & ((static_cast(1) << n) - 1); - *bits >>= n; - return low_bits; -} - -// Converts a Unicode code point to a narrow string in UTF-8 encoding. -// code_point parameter is of type UInt32 because wchar_t may not be -// wide enough to contain a code point. -// If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted -// to "(Invalid Unicode 0xXXXXXXXX)". -std::string CodePointToUtf8(UInt32 code_point) { - if (code_point > kMaxCodePoint4) { - return "(Invalid Unicode 0x" + String::FormatHexInt(code_point) + ")"; - } - - char str[5]; // Big enough for the largest valid code point. - if (code_point <= kMaxCodePoint1) { - str[1] = '\0'; - str[0] = static_cast(code_point); // 0xxxxxxx - } else if (code_point <= kMaxCodePoint2) { - str[2] = '\0'; - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xC0 | code_point); // 110xxxxx - } else if (code_point <= kMaxCodePoint3) { - str[3] = '\0'; - str[2] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xE0 | code_point); // 1110xxxx - } else { // code_point <= kMaxCodePoint4 - str[4] = '\0'; - str[3] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[2] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xF0 | code_point); // 11110xxx - } - return str; -} - -// The following two functions only make sense if the system -// uses UTF-16 for wide string encoding. All supported systems -// with 16 bit wchar_t (Windows, Cygwin) do use UTF-16. - -// Determines if the arguments constitute UTF-16 surrogate pair -// and thus should be combined into a single Unicode code point -// using CreateCodePointFromUtf16SurrogatePair. -inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) { - return sizeof(wchar_t) == 2 && - (first & 0xFC00) == 0xD800 && (second & 0xFC00) == 0xDC00; -} - -// Creates a Unicode code point from UTF16 surrogate pair. -inline UInt32 CreateCodePointFromUtf16SurrogatePair(wchar_t first, - wchar_t second) { - const UInt32 mask = (1 << 10) - 1; - return (sizeof(wchar_t) == 2) ? - (((first & mask) << 10) | (second & mask)) + 0x10000 : - // This function should not be called when the condition is - // false, but we provide a sensible default in case it is. - static_cast(first); -} - -// Converts a wide string to a narrow string in UTF-8 encoding. -// The wide string is assumed to have the following encoding: -// UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin) -// UTF-32 if sizeof(wchar_t) == 4 (on Linux) -// Parameter str points to a null-terminated wide string. -// Parameter num_chars may additionally limit the number -// of wchar_t characters processed. -1 is used when the entire string -// should be processed. -// If the string contains code points that are not valid Unicode code points -// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding -// and contains invalid UTF-16 surrogate pairs, values in those pairs -// will be encoded as individual Unicode characters from Basic Normal Plane. -std::string WideStringToUtf8(const wchar_t* str, int num_chars) { - if (num_chars == -1) - num_chars = static_cast(wcslen(str)); - - ::std::stringstream stream; - for (int i = 0; i < num_chars; ++i) { - UInt32 unicode_code_point; - - if (str[i] == L'\0') { - break; - } else if (i + 1 < num_chars && IsUtf16SurrogatePair(str[i], str[i + 1])) { - unicode_code_point = CreateCodePointFromUtf16SurrogatePair(str[i], - str[i + 1]); - i++; - } else { - unicode_code_point = static_cast(str[i]); - } - - stream << CodePointToUtf8(unicode_code_point); - } - return StringStreamToString(&stream); -} - -// Converts a wide C string to an std::string using the UTF-8 encoding. -// NULL will be converted to "(null)". -std::string String::ShowWideCString(const wchar_t * wide_c_str) { - if (wide_c_str == nullptr) return "(null)"; - - return internal::WideStringToUtf8(wide_c_str, -1); -} - -// Compares two wide C strings. Returns true iff they have the same -// content. -// -// Unlike wcscmp(), this function can handle NULL argument(s). A NULL -// C string is considered different to any non-NULL C string, -// including the empty string. -bool String::WideCStringEquals(const wchar_t * lhs, const wchar_t * rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - - return wcscmp(lhs, rhs) == 0; -} - -// Helper function for *_STREQ on wide strings. -AssertionResult CmpHelperSTREQ(const char* lhs_expression, - const char* rhs_expression, - const wchar_t* lhs, - const wchar_t* rhs) { - if (String::WideCStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, - rhs_expression, - PrintToString(lhs), - PrintToString(rhs), - false); -} - -// Helper function for *_STRNE on wide strings. -AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, - const wchar_t* s2) { - if (!String::WideCStringEquals(s1, s2)) { - return AssertionSuccess(); - } - - return AssertionFailure() << "Expected: (" << s1_expression << ") != (" - << s2_expression << "), actual: " - << PrintToString(s1) - << " vs " << PrintToString(s2); -} - -// Compares two C strings, ignoring case. Returns true iff they have -// the same content. -// -// Unlike strcasecmp(), this function can handle NULL argument(s). A -// NULL C string is considered different to any non-NULL C string, -// including the empty string. -bool String::CaseInsensitiveCStringEquals(const char * lhs, const char * rhs) { - if (lhs == nullptr) return rhs == nullptr; - if (rhs == nullptr) return false; - return posix::StrCaseCmp(lhs, rhs) == 0; -} - - // Compares two wide C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. -bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - -#if GTEST_OS_WINDOWS - return _wcsicmp(lhs, rhs) == 0; -#elif GTEST_OS_LINUX && !GTEST_OS_LINUX_ANDROID - return wcscasecmp(lhs, rhs) == 0; -#else - // Android, Mac OS X and Cygwin don't define wcscasecmp. - // Other unknown OSes may not define it either. - wint_t left, right; - do { - left = towlower(*lhs++); - right = towlower(*rhs++); - } while (left && left == right); - return left == right; -#endif // OS selector -} - -// Returns true iff str ends with the given suffix, ignoring case. -// Any string is considered to end with an empty suffix. -bool String::EndsWithCaseInsensitive( - const std::string& str, const std::string& suffix) { - const size_t str_len = str.length(); - const size_t suffix_len = suffix.length(); - return (str_len >= suffix_len) && - CaseInsensitiveCStringEquals(str.c_str() + str_len - suffix_len, - suffix.c_str()); -} - -// Formats an int value as "%02d". -std::string String::FormatIntWidth2(int value) { - std::stringstream ss; - ss << std::setfill('0') << std::setw(2) << value; - return ss.str(); -} - -// Formats an int value as "%X". -std::string String::FormatHexInt(int value) { - std::stringstream ss; - ss << std::hex << std::uppercase << value; - return ss.str(); -} - -// Formats a byte as "%02X". -std::string String::FormatByte(unsigned char value) { - std::stringstream ss; - ss << std::setfill('0') << std::setw(2) << std::hex << std::uppercase - << static_cast(value); - return ss.str(); -} - -// Converts the buffer in a stringstream to an std::string, converting NUL -// bytes to "\\0" along the way. -std::string StringStreamToString(::std::stringstream* ss) { - const ::std::string& str = ss->str(); - const char* const start = str.c_str(); - const char* const end = start + str.length(); - - std::string result; - result.reserve(2 * (end - start)); - for (const char* ch = start; ch != end; ++ch) { - if (*ch == '\0') { - result += "\\0"; // Replaces NUL with "\\0"; - } else { - result += *ch; - } - } - - return result; -} - -// Appends the user-supplied message to the Google-Test-generated message. -std::string AppendUserMessage(const std::string& gtest_msg, - const Message& user_msg) { - // Appends the user message if it's non-empty. - const std::string user_msg_string = user_msg.GetString(); - if (user_msg_string.empty()) { - return gtest_msg; - } - - return gtest_msg + "\n" + user_msg_string; -} - -} // namespace internal - -// class TestResult - -// Creates an empty TestResult. -TestResult::TestResult() - : death_test_count_(0), - elapsed_time_(0) { -} - -// D'tor. -TestResult::~TestResult() { -} - -// Returns the i-th test part result among all the results. i can -// range from 0 to total_part_count() - 1. If i is not in that range, -// aborts the program. -const TestPartResult& TestResult::GetTestPartResult(int i) const { - if (i < 0 || i >= total_part_count()) - internal::posix::Abort(); - return test_part_results_.at(i); -} - -// Returns the i-th test property. i can range from 0 to -// test_property_count() - 1. If i is not in that range, aborts the -// program. -const TestProperty& TestResult::GetTestProperty(int i) const { - if (i < 0 || i >= test_property_count()) - internal::posix::Abort(); - return test_properties_.at(i); -} - -// Clears the test part results. -void TestResult::ClearTestPartResults() { - test_part_results_.clear(); -} - -// Adds a test part result to the list. -void TestResult::AddTestPartResult(const TestPartResult& test_part_result) { - test_part_results_.push_back(test_part_result); -} - -// Adds a test property to the list. If a property with the same key as the -// supplied property is already represented, the value of this test_property -// replaces the old value for that key. -void TestResult::RecordProperty(const std::string& xml_element, - const TestProperty& test_property) { - if (!ValidateTestProperty(xml_element, test_property)) { - return; - } - internal::MutexLock lock(&test_properites_mutex_); - const std::vector::iterator property_with_matching_key = - std::find_if(test_properties_.begin(), test_properties_.end(), - internal::TestPropertyKeyIs(test_property.key())); - if (property_with_matching_key == test_properties_.end()) { - test_properties_.push_back(test_property); - return; - } - property_with_matching_key->SetValue(test_property.value()); -} - -// The list of reserved attributes used in the element of XML -// output. -static const char* const kReservedTestSuitesAttributes[] = { - "disabled", - "errors", - "failures", - "name", - "random_seed", - "tests", - "time", - "timestamp" -}; - -// The list of reserved attributes used in the element of XML -// output. -static const char* const kReservedTestSuiteAttributes[] = { - "disabled", - "errors", - "failures", - "name", - "tests", - "time" -}; - -// The list of reserved attributes used in the element of XML output. -static const char* const kReservedTestCaseAttributes[] = { - "classname", "name", "status", "time", "type_param", - "value_param", "file", "line"}; - -// Use a slightly different set for allowed output to ensure existing tests can -// still RecordProperty("result") -static const char* const kReservedOutputTestCaseAttributes[] = { - "classname", "name", "status", "time", "type_param", - "value_param", "file", "line", "result"}; - -template -std::vector ArrayAsVector(const char* const (&array)[kSize]) { - return std::vector(array, array + kSize); -} - -static std::vector GetReservedAttributesForElement( - const std::string& xml_element) { - if (xml_element == "testsuites") { - return ArrayAsVector(kReservedTestSuitesAttributes); - } else if (xml_element == "testsuite") { - return ArrayAsVector(kReservedTestSuiteAttributes); - } else if (xml_element == "testcase") { - return ArrayAsVector(kReservedTestCaseAttributes); - } else { - GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; - } - // This code is unreachable but some compilers may not realizes that. - return std::vector(); -} - -// TODO(jdesprez): Merge the two getReserved attributes once skip is improved -static std::vector GetReservedOutputAttributesForElement( - const std::string& xml_element) { - if (xml_element == "testsuites") { - return ArrayAsVector(kReservedTestSuitesAttributes); - } else if (xml_element == "testsuite") { - return ArrayAsVector(kReservedTestSuiteAttributes); - } else if (xml_element == "testcase") { - return ArrayAsVector(kReservedOutputTestCaseAttributes); - } else { - GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; - } - // This code is unreachable but some compilers may not realizes that. - return std::vector(); -} - -static std::string FormatWordList(const std::vector& words) { - Message word_list; - for (size_t i = 0; i < words.size(); ++i) { - if (i > 0 && words.size() > 2) { - word_list << ", "; - } - if (i == words.size() - 1) { - word_list << "and "; - } - word_list << "'" << words[i] << "'"; - } - return word_list.GetString(); -} - -static bool ValidateTestPropertyName( - const std::string& property_name, - const std::vector& reserved_names) { - if (std::find(reserved_names.begin(), reserved_names.end(), property_name) != - reserved_names.end()) { - ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name - << " (" << FormatWordList(reserved_names) - << " are reserved by " << GTEST_NAME_ << ")"; - return false; - } - return true; -} - -// Adds a failure if the key is a reserved attribute of the element named -// xml_element. Returns true if the property is valid. -bool TestResult::ValidateTestProperty(const std::string& xml_element, - const TestProperty& test_property) { - return ValidateTestPropertyName(test_property.key(), - GetReservedAttributesForElement(xml_element)); -} - -// Clears the object. -void TestResult::Clear() { - test_part_results_.clear(); - test_properties_.clear(); - death_test_count_ = 0; - elapsed_time_ = 0; -} - -// Returns true off the test part was skipped. -static bool TestPartSkipped(const TestPartResult& result) { - return result.skipped(); -} - -// Returns true iff the test was skipped. -bool TestResult::Skipped() const { - return !Failed() && CountIf(test_part_results_, TestPartSkipped) > 0; -} - -// Returns true iff the test failed. -bool TestResult::Failed() const { - for (int i = 0; i < total_part_count(); ++i) { - if (GetTestPartResult(i).failed()) - return true; - } - return false; -} - -// Returns true iff the test part fatally failed. -static bool TestPartFatallyFailed(const TestPartResult& result) { - return result.fatally_failed(); -} - -// Returns true iff the test fatally failed. -bool TestResult::HasFatalFailure() const { - return CountIf(test_part_results_, TestPartFatallyFailed) > 0; -} - -// Returns true iff the test part non-fatally failed. -static bool TestPartNonfatallyFailed(const TestPartResult& result) { - return result.nonfatally_failed(); -} - -// Returns true iff the test has a non-fatal failure. -bool TestResult::HasNonfatalFailure() const { - return CountIf(test_part_results_, TestPartNonfatallyFailed) > 0; -} - -// Gets the number of all test parts. This is the sum of the number -// of successful test parts and the number of failed test parts. -int TestResult::total_part_count() const { - return static_cast(test_part_results_.size()); -} - -// Returns the number of the test properties. -int TestResult::test_property_count() const { - return static_cast(test_properties_.size()); -} - -// class Test - -// Creates a Test object. - -// The c'tor saves the states of all flags. -Test::Test() - : gtest_flag_saver_(new GTEST_FLAG_SAVER_) { -} - -// The d'tor restores the states of all flags. The actual work is -// done by the d'tor of the gtest_flag_saver_ field, and thus not -// visible here. -Test::~Test() { -} - -// Sets up the test fixture. -// -// A sub-class may override this. -void Test::SetUp() { -} - -// Tears down the test fixture. -// -// A sub-class may override this. -void Test::TearDown() { -} - -// Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const std::string& key, const std::string& value) { - UnitTest::GetInstance()->RecordProperty(key, value); -} - -// Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const std::string& key, int value) { - Message value_message; - value_message << value; - RecordProperty(key, value_message.GetString().c_str()); -} - -namespace internal { - -void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const std::string& message) { - // This function is a friend of UnitTest and as such has access to - // AddTestPartResult. - UnitTest::GetInstance()->AddTestPartResult( - result_type, - nullptr, // No info about the source file where the exception occurred. - -1, // We have no info on which line caused the exception. - message, - ""); // No stack trace, either. -} - -} // namespace internal - -// Google Test requires all tests in the same test suite to use the same test -// fixture class. This function checks if the current test has the -// same fixture class as the first test in the current test suite. If -// yes, it returns true; otherwise it generates a Google Test failure and -// returns false. -bool Test::HasSameFixtureClass() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - const TestSuite* const test_suite = impl->current_test_suite(); - - // Info about the first test in the current test suite. - const TestInfo* const first_test_info = test_suite->test_info_list()[0]; - const internal::TypeId first_fixture_id = first_test_info->fixture_class_id_; - const char* const first_test_name = first_test_info->name(); - - // Info about the current test. - const TestInfo* const this_test_info = impl->current_test_info(); - const internal::TypeId this_fixture_id = this_test_info->fixture_class_id_; - const char* const this_test_name = this_test_info->name(); - - if (this_fixture_id != first_fixture_id) { - // Is the first test defined using TEST? - const bool first_is_TEST = first_fixture_id == internal::GetTestTypeId(); - // Is this test defined using TEST? - const bool this_is_TEST = this_fixture_id == internal::GetTestTypeId(); - - if (first_is_TEST || this_is_TEST) { - // Both TEST and TEST_F appear in same test suite, which is incorrect. - // Tell the user how to fix this. - - // Gets the name of the TEST and the name of the TEST_F. Note - // that first_is_TEST and this_is_TEST cannot both be true, as - // the fixture IDs are different for the two tests. - const char* const TEST_name = - first_is_TEST ? first_test_name : this_test_name; - const char* const TEST_F_name = - first_is_TEST ? this_test_name : first_test_name; - - ADD_FAILURE() - << "All tests in the same test suite must use the same test fixture\n" - << "class, so mixing TEST_F and TEST in the same test suite is\n" - << "illegal. In test suite " << this_test_info->test_suite_name() - << ",\n" - << "test " << TEST_F_name << " is defined using TEST_F but\n" - << "test " << TEST_name << " is defined using TEST. You probably\n" - << "want to change the TEST to TEST_F or move it to another test\n" - << "case."; - } else { - // Two fixture classes with the same name appear in two different - // namespaces, which is not allowed. Tell the user how to fix this. - ADD_FAILURE() - << "All tests in the same test suite must use the same test fixture\n" - << "class. However, in test suite " - << this_test_info->test_suite_name() << ",\n" - << "you defined test " << first_test_name << " and test " - << this_test_name << "\n" - << "using two different test fixture classes. This can happen if\n" - << "the two classes are from different namespaces or translation\n" - << "units and have the same name. You should probably rename one\n" - << "of the classes to put the tests into different test suites."; - } - return false; - } - - return true; -} - -#if GTEST_HAS_SEH - -// Adds an "exception thrown" fatal failure to the current test. This -// function returns its result via an output parameter pointer because VC++ -// prohibits creation of objects with destructors on stack in functions -// using __try (see error C2712). -static std::string* FormatSehExceptionMessage(DWORD exception_code, - const char* location) { - Message message; - message << "SEH exception with code 0x" << std::setbase(16) << - exception_code << std::setbase(10) << " thrown in " << location << "."; - - return new std::string(message.GetString()); -} - -#endif // GTEST_HAS_SEH - -namespace internal { - -#if GTEST_HAS_EXCEPTIONS - -// Adds an "exception thrown" fatal failure to the current test. -static std::string FormatCxxExceptionMessage(const char* description, - const char* location) { - Message message; - if (description != nullptr) { - message << "C++ exception with description \"" << description << "\""; - } else { - message << "Unknown C++ exception"; - } - message << " thrown in " << location << "."; - - return message.GetString(); -} - -static std::string PrintTestPartResultToString( - const TestPartResult& test_part_result); - -GoogleTestFailureException::GoogleTestFailureException( - const TestPartResult& failure) - : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} - -#endif // GTEST_HAS_EXCEPTIONS - -// We put these helper functions in the internal namespace as IBM's xlC -// compiler rejects the code if they were declared static. - -// Runs the given method and handles SEH exceptions it throws, when -// SEH is supported; returns the 0-value for type Result in case of an -// SEH exception. (Microsoft compilers cannot handle SEH and C++ -// exceptions in the same function. Therefore, we provide a separate -// wrapper function for handling SEH exceptions.) -template -Result HandleSehExceptionsInMethodIfSupported( - T* object, Result (T::*method)(), const char* location) { -#if GTEST_HAS_SEH - __try { - return (object->*method)(); - } __except (internal::UnitTestOptions::GTestShouldProcessSEH( // NOLINT - GetExceptionCode())) { - // We create the exception message on the heap because VC++ prohibits - // creation of objects with destructors on stack in functions using __try - // (see error C2712). - std::string* exception_message = FormatSehExceptionMessage( - GetExceptionCode(), location); - internal::ReportFailureInUnknownLocation(TestPartResult::kFatalFailure, - *exception_message); - delete exception_message; - return static_cast(0); - } -#else - (void)location; - return (object->*method)(); -#endif // GTEST_HAS_SEH -} - -// Runs the given method and catches and reports C++ and/or SEH-style -// exceptions, if they are supported; returns the 0-value for type -// Result in case of an SEH exception. -template -Result HandleExceptionsInMethodIfSupported( - T* object, Result (T::*method)(), const char* location) { - // NOTE: The user code can affect the way in which Google Test handles - // exceptions by setting GTEST_FLAG(catch_exceptions), but only before - // RUN_ALL_TESTS() starts. It is technically possible to check the flag - // after the exception is caught and either report or re-throw the - // exception based on the flag's value: - // - // try { - // // Perform the test method. - // } catch (...) { - // if (GTEST_FLAG(catch_exceptions)) - // // Report the exception as failure. - // else - // throw; // Re-throws the original exception. - // } - // - // However, the purpose of this flag is to allow the program to drop into - // the debugger when the exception is thrown. On most platforms, once the - // control enters the catch block, the exception origin information is - // lost and the debugger will stop the program at the point of the - // re-throw in this function -- instead of at the point of the original - // throw statement in the code under test. For this reason, we perform - // the check early, sacrificing the ability to affect Google Test's - // exception handling in the method where the exception is thrown. - if (internal::GetUnitTestImpl()->catch_exceptions()) { -#if GTEST_HAS_EXCEPTIONS - try { - return HandleSehExceptionsInMethodIfSupported(object, method, location); - } catch (const AssertionException&) { // NOLINT - // This failure was reported already. - } catch (const internal::GoogleTestFailureException&) { // NOLINT - // This exception type can only be thrown by a failed Google - // Test assertion with the intention of letting another testing - // framework catch it. Therefore we just re-throw it. - throw; - } catch (const std::exception& e) { // NOLINT - internal::ReportFailureInUnknownLocation( - TestPartResult::kFatalFailure, - FormatCxxExceptionMessage(e.what(), location)); - } catch (...) { // NOLINT - internal::ReportFailureInUnknownLocation( - TestPartResult::kFatalFailure, - FormatCxxExceptionMessage(nullptr, location)); - } - return static_cast(0); -#else - return HandleSehExceptionsInMethodIfSupported(object, method, location); -#endif // GTEST_HAS_EXCEPTIONS - } else { - return (object->*method)(); - } -} - -} // namespace internal - -// Runs the test and updates the test result. -void Test::Run() { - if (!HasSameFixtureClass()) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported(this, &Test::SetUp, "SetUp()"); - // We will run the test only if SetUp() was successful and didn't call - // GTEST_SKIP(). - if (!HasFatalFailure() && !IsSkipped()) { - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &Test::TestBody, "the test body"); - } - - // However, we want to clean up as much as possible. Hence we will - // always call TearDown(), even if SetUp() or the test body has - // failed. - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &Test::TearDown, "TearDown()"); -} - -// Returns true iff the current test has a fatal failure. -bool Test::HasFatalFailure() { - return internal::GetUnitTestImpl()->current_test_result()->HasFatalFailure(); -} - -// Returns true iff the current test has a non-fatal failure. -bool Test::HasNonfatalFailure() { - return internal::GetUnitTestImpl()->current_test_result()-> - HasNonfatalFailure(); -} - -// Returns true iff the current test was skipped. -bool Test::IsSkipped() { - return internal::GetUnitTestImpl()->current_test_result()->Skipped(); -} - -// class TestInfo - -// Constructs a TestInfo object. It assumes ownership of the test factory -// object. -TestInfo::TestInfo(const std::string& a_test_suite_name, - const std::string& a_name, const char* a_type_param, - const char* a_value_param, - internal::CodeLocation a_code_location, - internal::TypeId fixture_class_id, - internal::TestFactoryBase* factory) - : test_suite_name_(a_test_suite_name), - name_(a_name), - type_param_(a_type_param ? new std::string(a_type_param) : nullptr), - value_param_(a_value_param ? new std::string(a_value_param) : nullptr), - location_(a_code_location), - fixture_class_id_(fixture_class_id), - should_run_(false), - is_disabled_(false), - matches_filter_(false), - factory_(factory), - result_() {} - -// Destructs a TestInfo object. -TestInfo::~TestInfo() { delete factory_; } - -namespace internal { - -// Creates a new TestInfo object and registers it with Google Test; -// returns the created object. -// -// Arguments: -// -// test_suite_name: name of the test suite -// name: name of the test -// type_param: the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. -// value_param: text representation of the test's value parameter, -// or NULL if this is not a value-parameterized test. -// code_location: code location where the test is defined -// fixture_class_id: ID of the test fixture class -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -// factory: pointer to the factory that creates a test object. -// The newly created TestInfo instance will assume -// ownership of the factory object. -TestInfo* MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, CodeLocation code_location, - TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, - TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory) { - TestInfo* const test_info = - new TestInfo(test_suite_name, name, type_param, value_param, - code_location, fixture_class_id, factory); - GetUnitTestImpl()->AddTestInfo(set_up_tc, tear_down_tc, test_info); - return test_info; -} - -void ReportInvalidTestSuiteType(const char* test_suite_name, - CodeLocation code_location) { - Message errors; - errors - << "Attempted redefinition of test suite " << test_suite_name << ".\n" - << "All tests in the same test suite must use the same test fixture\n" - << "class. However, in test suite " << test_suite_name << ", you tried\n" - << "to define a test using a fixture class different from the one\n" - << "used earlier. This can happen if the two fixture classes are\n" - << "from different namespaces and have the same name. You should\n" - << "probably rename one of the classes to put the tests into different\n" - << "test suites."; - - GTEST_LOG_(ERROR) << FormatFileLocation(code_location.file.c_str(), - code_location.line) - << " " << errors.GetString(); -} -} // namespace internal - -namespace { - -// A predicate that checks the test name of a TestInfo against a known -// value. -// -// This is used for implementation of the TestSuite class only. We put -// it in the anonymous namespace to prevent polluting the outer -// namespace. -// -// TestNameIs is copyable. -class TestNameIs { - public: - // Constructor. - // - // TestNameIs has NO default constructor. - explicit TestNameIs(const char* name) - : name_(name) {} - - // Returns true iff the test name of test_info matches name_. - bool operator()(const TestInfo * test_info) const { - return test_info && test_info->name() == name_; - } - - private: - std::string name_; -}; - -} // namespace - -namespace internal { - -// This method expands all parameterized tests registered with macros TEST_P -// and INSTANTIATE_TEST_SUITE_P into regular tests and registers those. -// This will be done just once during the program runtime. -void UnitTestImpl::RegisterParameterizedTests() { - if (!parameterized_tests_registered_) { - parameterized_test_registry_.RegisterTests(); - parameterized_tests_registered_ = true; - } -} - -} // namespace internal - -// Creates the test object, runs it, records its result, and then -// deletes it. -void TestInfo::Run() { - if (!should_run_) return; - - // Tells UnitTest where to store test result. - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_info(this); - - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - - // Notifies the unit test event listeners that a test is about to start. - repeater->OnTestStart(*this); - - const TimeInMillis start = internal::GetTimeInMillis(); - - impl->os_stack_trace_getter()->UponLeavingGTest(); - - // Creates the test object. - Test* const test = internal::HandleExceptionsInMethodIfSupported( - factory_, &internal::TestFactoryBase::CreateTest, - "the test fixture's constructor"); - - // Runs the test if the constructor didn't generate a fatal failure or invoke - // GTEST_SKIP(). - // Note that the object will not be null - if (!Test::HasFatalFailure() && !Test::IsSkipped()) { - // This doesn't throw as all user code that can throw are wrapped into - // exception handling code. - test->Run(); - } - - if (test != nullptr) { - // Deletes the test object. - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - test, &Test::DeleteSelf_, "the test fixture's destructor"); - } - - result_.set_elapsed_time(internal::GetTimeInMillis() - start); - - // Notifies the unit test event listener that a test has just finished. - repeater->OnTestEnd(*this); - - // Tells UnitTest to stop associating assertion results to this - // test. - impl->set_current_test_info(nullptr); -} - -// class TestSuite - -// Gets the number of successful tests in this test suite. -int TestSuite::successful_test_count() const { - return CountIf(test_info_list_, TestPassed); -} - -// Gets the number of successful tests in this test suite. -int TestSuite::skipped_test_count() const { - return CountIf(test_info_list_, TestSkipped); -} - -// Gets the number of failed tests in this test suite. -int TestSuite::failed_test_count() const { - return CountIf(test_info_list_, TestFailed); -} - -// Gets the number of disabled tests that will be reported in the XML report. -int TestSuite::reportable_disabled_test_count() const { - return CountIf(test_info_list_, TestReportableDisabled); -} - -// Gets the number of disabled tests in this test suite. -int TestSuite::disabled_test_count() const { - return CountIf(test_info_list_, TestDisabled); -} - -// Gets the number of tests to be printed in the XML report. -int TestSuite::reportable_test_count() const { - return CountIf(test_info_list_, TestReportable); -} - -// Get the number of tests in this test suite that should run. -int TestSuite::test_to_run_count() const { - return CountIf(test_info_list_, ShouldRunTest); -} - -// Gets the number of all tests. -int TestSuite::total_test_count() const { - return static_cast(test_info_list_.size()); -} - -// Creates a TestSuite with the given name. -// -// Arguments: -// -// name: name of the test suite -// a_type_param: the name of the test suite's type parameter, or NULL if -// this is not a typed or a type-parameterized test suite. -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -TestSuite::TestSuite(const char* a_name, const char* a_type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) - : name_(a_name), - type_param_(a_type_param ? new std::string(a_type_param) : nullptr), - set_up_tc_(set_up_tc), - tear_down_tc_(tear_down_tc), - should_run_(false), - elapsed_time_(0) {} - -// Destructor of TestSuite. -TestSuite::~TestSuite() { - // Deletes every Test in the collection. - ForEach(test_info_list_, internal::Delete); -} - -// Returns the i-th test among all the tests. i can range from 0 to -// total_test_count() - 1. If i is not in that range, returns NULL. -const TestInfo* TestSuite::GetTestInfo(int i) const { - const int index = GetElementOr(test_indices_, i, -1); - return index < 0 ? nullptr : test_info_list_[index]; -} - -// Returns the i-th test among all the tests. i can range from 0 to -// total_test_count() - 1. If i is not in that range, returns NULL. -TestInfo* TestSuite::GetMutableTestInfo(int i) { - const int index = GetElementOr(test_indices_, i, -1); - return index < 0 ? nullptr : test_info_list_[index]; -} - -// Adds a test to this test suite. Will delete the test upon -// destruction of the TestSuite object. -void TestSuite::AddTestInfo(TestInfo* test_info) { - test_info_list_.push_back(test_info); - test_indices_.push_back(static_cast(test_indices_.size())); -} - -// Runs every test in this TestSuite. -void TestSuite::Run() { - if (!should_run_) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_suite(this); - - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - - // Call both legacy and the new API - repeater->OnTestSuiteStart(*this); -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI - repeater->OnTestCaseStart(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI - - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &TestSuite::RunSetUpTestSuite, "SetUpTestSuite()"); - - const internal::TimeInMillis start = internal::GetTimeInMillis(); - for (int i = 0; i < total_test_count(); i++) { - GetMutableTestInfo(i)->Run(); - } - elapsed_time_ = internal::GetTimeInMillis() - start; - - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &TestSuite::RunTearDownTestSuite, "TearDownTestSuite()"); - - // Call both legacy and the new API - repeater->OnTestSuiteEnd(*this); -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI - repeater->OnTestCaseEnd(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI - - impl->set_current_test_suite(nullptr); -} - -// Clears the results of all tests in this test suite. -void TestSuite::ClearResult() { - ad_hoc_test_result_.Clear(); - ForEach(test_info_list_, TestInfo::ClearTestResult); -} - -// Shuffles the tests in this test suite. -void TestSuite::ShuffleTests(internal::Random* random) { - Shuffle(random, &test_indices_); -} - -// Restores the test order to before the first shuffle. -void TestSuite::UnshuffleTests() { - for (size_t i = 0; i < test_indices_.size(); i++) { - test_indices_[i] = static_cast(i); - } -} - -// Formats a countable noun. Depending on its quantity, either the -// singular form or the plural form is used. e.g. -// -// FormatCountableNoun(1, "formula", "formuli") returns "1 formula". -// FormatCountableNoun(5, "book", "books") returns "5 books". -static std::string FormatCountableNoun(int count, - const char * singular_form, - const char * plural_form) { - return internal::StreamableToString(count) + " " + - (count == 1 ? singular_form : plural_form); -} - -// Formats the count of tests. -static std::string FormatTestCount(int test_count) { - return FormatCountableNoun(test_count, "test", "tests"); -} - -// Formats the count of test suites. -static std::string FormatTestSuiteCount(int test_suite_count) { - return FormatCountableNoun(test_suite_count, "test suite", "test suites"); -} - -// Converts a TestPartResult::Type enum to human-friendly string -// representation. Both kNonFatalFailure and kFatalFailure are translated -// to "Failure", as the user usually doesn't care about the difference -// between the two when viewing the test result. -static const char * TestPartResultTypeToString(TestPartResult::Type type) { - switch (type) { - case TestPartResult::kSkip: - return "Skipped"; - case TestPartResult::kSuccess: - return "Success"; - - case TestPartResult::kNonFatalFailure: - case TestPartResult::kFatalFailure: -#ifdef _MSC_VER - return "error: "; -#else - return "Failure\n"; -#endif - default: - return "Unknown result type"; - } -} - -namespace internal { - -// Prints a TestPartResult to an std::string. -static std::string PrintTestPartResultToString( - const TestPartResult& test_part_result) { - return (Message() - << internal::FormatFileLocation(test_part_result.file_name(), - test_part_result.line_number()) - << " " << TestPartResultTypeToString(test_part_result.type()) - << test_part_result.message()).GetString(); -} - -// Prints a TestPartResult. -static void PrintTestPartResult(const TestPartResult& test_part_result) { - const std::string& result = - PrintTestPartResultToString(test_part_result); - printf("%s\n", result.c_str()); - fflush(stdout); - // If the test program runs in Visual Studio or a debugger, the - // following statements add the test part result message to the Output - // window such that the user can double-click on it to jump to the - // corresponding source code location; otherwise they do nothing. -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - // We don't call OutputDebugString*() on Windows Mobile, as printing - // to stdout is done by OutputDebugString() there already - we don't - // want the same message printed twice. - ::OutputDebugStringA(result.c_str()); - ::OutputDebugStringA("\n"); -#endif -} - -// class PrettyUnitTestResultPrinter -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \ - !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW - -// Returns the character attribute for the given color. -static WORD GetColorAttribute(GTestColor color) { - switch (color) { - case COLOR_RED: return FOREGROUND_RED; - case COLOR_GREEN: return FOREGROUND_GREEN; - case COLOR_YELLOW: return FOREGROUND_RED | FOREGROUND_GREEN; - default: return 0; - } -} - -static int GetBitOffset(WORD color_mask) { - if (color_mask == 0) return 0; - - int bitOffset = 0; - while ((color_mask & 1) == 0) { - color_mask >>= 1; - ++bitOffset; - } - return bitOffset; -} - -static WORD GetNewColor(GTestColor color, WORD old_color_attrs) { - // Let's reuse the BG - static const WORD background_mask = BACKGROUND_BLUE | BACKGROUND_GREEN | - BACKGROUND_RED | BACKGROUND_INTENSITY; - static const WORD foreground_mask = FOREGROUND_BLUE | FOREGROUND_GREEN | - FOREGROUND_RED | FOREGROUND_INTENSITY; - const WORD existing_bg = old_color_attrs & background_mask; - - WORD new_color = - GetColorAttribute(color) | existing_bg | FOREGROUND_INTENSITY; - static const int bg_bitOffset = GetBitOffset(background_mask); - static const int fg_bitOffset = GetBitOffset(foreground_mask); - - if (((new_color & background_mask) >> bg_bitOffset) == - ((new_color & foreground_mask) >> fg_bitOffset)) { - new_color ^= FOREGROUND_INTENSITY; // invert intensity - } - return new_color; -} - -#else - -// Returns the ANSI color code for the given color. COLOR_DEFAULT is -// an invalid input. -static const char* GetAnsiColorCode(GTestColor color) { - switch (color) { - case COLOR_RED: return "1"; - case COLOR_GREEN: return "2"; - case COLOR_YELLOW: return "3"; - default: - return nullptr; - } -} - -#endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - -// Returns true iff Google Test should use colors in the output. -bool ShouldUseColor(bool stdout_is_tty) { - const char* const gtest_color = GTEST_FLAG(color).c_str(); - - if (String::CaseInsensitiveCStringEquals(gtest_color, "auto")) { -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW - // On Windows the TERM variable is usually not set, but the - // console there does support colors. - return stdout_is_tty; -#else - // On non-Windows platforms, we rely on the TERM variable. - const char* const term = posix::GetEnv("TERM"); - const bool term_supports_color = - String::CStringEquals(term, "xterm") || - String::CStringEquals(term, "xterm-color") || - String::CStringEquals(term, "xterm-256color") || - String::CStringEquals(term, "screen") || - String::CStringEquals(term, "screen-256color") || - String::CStringEquals(term, "tmux") || - String::CStringEquals(term, "tmux-256color") || - String::CStringEquals(term, "rxvt-unicode") || - String::CStringEquals(term, "rxvt-unicode-256color") || - String::CStringEquals(term, "linux") || - String::CStringEquals(term, "cygwin"); - return stdout_is_tty && term_supports_color; -#endif // GTEST_OS_WINDOWS - } - - return String::CaseInsensitiveCStringEquals(gtest_color, "yes") || - String::CaseInsensitiveCStringEquals(gtest_color, "true") || - String::CaseInsensitiveCStringEquals(gtest_color, "t") || - String::CStringEquals(gtest_color, "1"); - // We take "yes", "true", "t", and "1" as meaning "yes". If the - // value is neither one of these nor "auto", we treat it as "no" to - // be conservative. -} - -// Helpers for printing colored strings to stdout. Note that on Windows, we -// cannot simply emit special characters and have the terminal change colors. -// This routine must actually emit the characters rather than return a string -// that would be colored when printed, as can be done on Linux. -void ColoredPrintf(GTestColor color, const char* fmt, ...) { - va_list args; - va_start(args, fmt); - -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS || GTEST_OS_IOS || \ - GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT - const bool use_color = AlwaysFalse(); -#else - static const bool in_color_mode = - ShouldUseColor(posix::IsATTY(posix::FileNo(stdout)) != 0); - const bool use_color = in_color_mode && (color != COLOR_DEFAULT); -#endif // GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS - - if (!use_color) { - vprintf(fmt, args); - va_end(args); - return; - } - -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \ - !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW - const HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE); - - // Gets the current text color. - CONSOLE_SCREEN_BUFFER_INFO buffer_info; - GetConsoleScreenBufferInfo(stdout_handle, &buffer_info); - const WORD old_color_attrs = buffer_info.wAttributes; - const WORD new_color = GetNewColor(color, old_color_attrs); - - // We need to flush the stream buffers into the console before each - // SetConsoleTextAttribute call lest it affect the text that is already - // printed but has not yet reached the console. - fflush(stdout); - SetConsoleTextAttribute(stdout_handle, new_color); - - vprintf(fmt, args); - - fflush(stdout); - // Restores the text color. - SetConsoleTextAttribute(stdout_handle, old_color_attrs); -#else - printf("\033[0;3%sm", GetAnsiColorCode(color)); - vprintf(fmt, args); - printf("\033[m"); // Resets the terminal to default. -#endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - va_end(args); -} - -// Text printed in Google Test's text output and --gtest_list_tests -// output to label the type parameter and value parameter for a test. -static const char kTypeParamLabel[] = "TypeParam"; -static const char kValueParamLabel[] = "GetParam()"; - -static void PrintFullTestCommentIfPresent(const TestInfo& test_info) { - const char* const type_param = test_info.type_param(); - const char* const value_param = test_info.value_param(); - - if (type_param != nullptr || value_param != nullptr) { - printf(", where "); - if (type_param != nullptr) { - printf("%s = %s", kTypeParamLabel, type_param); - if (value_param != nullptr) printf(" and "); - } - if (value_param != nullptr) { - printf("%s = %s", kValueParamLabel, value_param); - } - } -} - -// This class implements the TestEventListener interface. -// -// Class PrettyUnitTestResultPrinter is copyable. -class PrettyUnitTestResultPrinter : public TestEventListener { - public: - PrettyUnitTestResultPrinter() {} - static void PrintTestName(const char* test_suite, const char* test) { - printf("%s.%s", test_suite, test); - } - - // The following methods override what's in the TestEventListener class. - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& unit_test, int iteration) override; - void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override; - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} - void OnTestCaseStart(const TestSuite& test_suite) override; - void OnTestStart(const TestInfo& test_info) override; - void OnTestPartResult(const TestPartResult& result) override; - void OnTestEnd(const TestInfo& test_info) override; - void OnTestCaseEnd(const TestSuite& test_suite) override; - void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override; - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} - - private: - static void PrintFailedTests(const UnitTest& unit_test); - static void PrintSkippedTests(const UnitTest& unit_test); -}; - - // Fired before each iteration of tests starts. -void PrettyUnitTestResultPrinter::OnTestIterationStart( - const UnitTest& unit_test, int iteration) { - if (GTEST_FLAG(repeat) != 1) - printf("\nRepeating all tests (iteration %d) . . .\n\n", iteration + 1); - - const char* const filter = GTEST_FLAG(filter).c_str(); - - // Prints the filter if it's not *. This reminds the user that some - // tests may be skipped. - if (!String::CStringEquals(filter, kUniversalFilter)) { - ColoredPrintf(COLOR_YELLOW, - "Note: %s filter = %s\n", GTEST_NAME_, filter); - } - - if (internal::ShouldShard(kTestTotalShards, kTestShardIndex, false)) { - const Int32 shard_index = Int32FromEnvOrDie(kTestShardIndex, -1); - ColoredPrintf(COLOR_YELLOW, - "Note: This is test shard %d of %s.\n", - static_cast(shard_index) + 1, - internal::posix::GetEnv(kTestTotalShards)); - } - - if (GTEST_FLAG(shuffle)) { - ColoredPrintf(COLOR_YELLOW, - "Note: Randomizing tests' orders with a seed of %d .\n", - unit_test.random_seed()); - } - - ColoredPrintf(COLOR_GREEN, "[==========] "); - printf("Running %s from %s.\n", - FormatTestCount(unit_test.test_to_run_count()).c_str(), - FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str()); - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart( - const UnitTest& /*unit_test*/) { - ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("Global test environment set-up.\n"); - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestSuite& test_suite) { - const std::string counts = - FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests"); - ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("%s from %s", counts.c_str(), test_suite.name()); - if (test_suite.type_param() == nullptr) { - printf("\n"); - } else { - printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param()); - } - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) { - ColoredPrintf(COLOR_GREEN, "[ RUN ] "); - PrintTestName(test_info.test_suite_name(), test_info.name()); - printf("\n"); - fflush(stdout); -} - -// Called after an assertion failure. -void PrettyUnitTestResultPrinter::OnTestPartResult( - const TestPartResult& result) { - switch (result.type()) { - // If the test part succeeded, or was skipped, - // we don't need to do anything. - case TestPartResult::kSkip: - case TestPartResult::kSuccess: - return; - default: - // Print failure message from the assertion - // (e.g. expected this and got that). - PrintTestPartResult(result); - fflush(stdout); - } -} - -void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { - if (test_info.result()->Passed()) { - ColoredPrintf(COLOR_GREEN, "[ OK ] "); - } else if (test_info.result()->Skipped()) { - ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] "); - } else { - ColoredPrintf(COLOR_RED, "[ FAILED ] "); - } - PrintTestName(test_info.test_suite_name(), test_info.name()); - if (test_info.result()->Failed()) - PrintFullTestCommentIfPresent(test_info); - - if (GTEST_FLAG(print_time)) { - printf(" (%s ms)\n", internal::StreamableToString( - test_info.result()->elapsed_time()).c_str()); - } else { - printf("\n"); - } - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestSuite& test_suite) { - if (!GTEST_FLAG(print_time)) return; - - const std::string counts = - FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests"); - ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("%s from %s (%s ms total)\n\n", counts.c_str(), test_suite.name(), - internal::StreamableToString(test_suite.elapsed_time()).c_str()); - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart( - const UnitTest& /*unit_test*/) { - ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("Global test environment tear-down\n"); - fflush(stdout); -} - -// Internal helper for printing the list of failed tests. -void PrettyUnitTestResultPrinter::PrintFailedTests(const UnitTest& unit_test) { - const int failed_test_count = unit_test.failed_test_count(); - if (failed_test_count == 0) { - return; - } - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - const TestSuite& test_suite = *unit_test.GetTestSuite(i); - if (!test_suite.should_run() || (test_suite.failed_test_count() == 0)) { - continue; - } - for (int j = 0; j < test_suite.total_test_count(); ++j) { - const TestInfo& test_info = *test_suite.GetTestInfo(j); - if (!test_info.should_run() || !test_info.result()->Failed()) { - continue; - } - ColoredPrintf(COLOR_RED, "[ FAILED ] "); - printf("%s.%s", test_suite.name(), test_info.name()); - PrintFullTestCommentIfPresent(test_info); - printf("\n"); - } - } -} - -// Internal helper for printing the list of skipped tests. -void PrettyUnitTestResultPrinter::PrintSkippedTests(const UnitTest& unit_test) { - const int skipped_test_count = unit_test.skipped_test_count(); - if (skipped_test_count == 0) { - return; - } - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - const TestSuite& test_suite = *unit_test.GetTestSuite(i); - if (!test_suite.should_run() || (test_suite.skipped_test_count() == 0)) { - continue; - } - for (int j = 0; j < test_suite.total_test_count(); ++j) { - const TestInfo& test_info = *test_suite.GetTestInfo(j); - if (!test_info.should_run() || !test_info.result()->Skipped()) { - continue; - } - ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] "); - printf("%s.%s", test_suite.name(), test_info.name()); - printf("\n"); - } - } -} - -void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - ColoredPrintf(COLOR_GREEN, "[==========] "); - printf("%s from %s ran.", - FormatTestCount(unit_test.test_to_run_count()).c_str(), - FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str()); - if (GTEST_FLAG(print_time)) { - printf(" (%s ms total)", - internal::StreamableToString(unit_test.elapsed_time()).c_str()); - } - printf("\n"); - ColoredPrintf(COLOR_GREEN, "[ PASSED ] "); - printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str()); - - const int skipped_test_count = unit_test.skipped_test_count(); - if (skipped_test_count > 0) { - ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] "); - printf("%s, listed below:\n", FormatTestCount(skipped_test_count).c_str()); - PrintSkippedTests(unit_test); - } - - int num_failures = unit_test.failed_test_count(); - if (!unit_test.Passed()) { - const int failed_test_count = unit_test.failed_test_count(); - ColoredPrintf(COLOR_RED, "[ FAILED ] "); - printf("%s, listed below:\n", FormatTestCount(failed_test_count).c_str()); - PrintFailedTests(unit_test); - printf("\n%2d FAILED %s\n", num_failures, - num_failures == 1 ? "TEST" : "TESTS"); - } - - int num_disabled = unit_test.reportable_disabled_test_count(); - if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) { - if (!num_failures) { - printf("\n"); // Add a spacer if no FAILURE banner is displayed. - } - ColoredPrintf(COLOR_YELLOW, - " YOU HAVE %d DISABLED %s\n\n", - num_disabled, - num_disabled == 1 ? "TEST" : "TESTS"); - } - // Ensure that Google Test output is printed before, e.g., heapchecker output. - fflush(stdout); -} - -// End PrettyUnitTestResultPrinter - -// class TestEventRepeater -// -// This class forwards events to other event listeners. -class TestEventRepeater : public TestEventListener { - public: - TestEventRepeater() : forwarding_enabled_(true) {} - ~TestEventRepeater() override; - void Append(TestEventListener *listener); - TestEventListener* Release(TestEventListener* listener); - - // Controls whether events will be forwarded to listeners_. Set to false - // in death test child processes. - bool forwarding_enabled() const { return forwarding_enabled_; } - void set_forwarding_enabled(bool enable) { forwarding_enabled_ = enable; } - - void OnTestProgramStart(const UnitTest& unit_test) override; - void OnTestIterationStart(const UnitTest& unit_test, int iteration) override; - void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override; - void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) override; -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI - void OnTestCaseStart(const TestSuite& parameter) override; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI - void OnTestSuiteStart(const TestSuite& parameter) override; - void OnTestStart(const TestInfo& test_info) override; - void OnTestPartResult(const TestPartResult& result) override; - void OnTestEnd(const TestInfo& test_info) override; -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI - void OnTestCaseEnd(const TestSuite& parameter) override; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI - void OnTestSuiteEnd(const TestSuite& parameter) override; - void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override; - void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) override; - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void OnTestProgramEnd(const UnitTest& unit_test) override; - - private: - // Controls whether events will be forwarded to listeners_. Set to false - // in death test child processes. - bool forwarding_enabled_; - // The list of listeners that receive events. - std::vector listeners_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventRepeater); -}; - -TestEventRepeater::~TestEventRepeater() { - ForEach(listeners_, Delete); -} - -void TestEventRepeater::Append(TestEventListener *listener) { - listeners_.push_back(listener); -} - -TestEventListener* TestEventRepeater::Release(TestEventListener *listener) { - for (size_t i = 0; i < listeners_.size(); ++i) { - if (listeners_[i] == listener) { - listeners_.erase(listeners_.begin() + i); - return listener; - } - } - - return nullptr; -} - -// Since most methods are very similar, use macros to reduce boilerplate. -// This defines a member that forwards the call to all listeners. -#define GTEST_REPEATER_METHOD_(Name, Type) \ -void TestEventRepeater::Name(const Type& parameter) { \ - if (forwarding_enabled_) { \ - for (size_t i = 0; i < listeners_.size(); i++) { \ - listeners_[i]->Name(parameter); \ - } \ - } \ -} -// This defines a member that forwards the call to all listeners in reverse -// order. -#define GTEST_REVERSE_REPEATER_METHOD_(Name, Type) \ -void TestEventRepeater::Name(const Type& parameter) { \ - if (forwarding_enabled_) { \ - for (int i = static_cast(listeners_.size()) - 1; i >= 0; i--) { \ - listeners_[i]->Name(parameter); \ - } \ - } \ -} - -GTEST_REPEATER_METHOD_(OnTestProgramStart, UnitTest) -GTEST_REPEATER_METHOD_(OnEnvironmentsSetUpStart, UnitTest) -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REPEATER_METHOD_(OnTestCaseStart, TestSuite) -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REPEATER_METHOD_(OnTestSuiteStart, TestSuite) -GTEST_REPEATER_METHOD_(OnTestStart, TestInfo) -GTEST_REPEATER_METHOD_(OnTestPartResult, TestPartResult) -GTEST_REPEATER_METHOD_(OnEnvironmentsTearDownStart, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsSetUpEnd, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsTearDownEnd, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnTestEnd, TestInfo) -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REVERSE_REPEATER_METHOD_(OnTestCaseEnd, TestSuite) -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REVERSE_REPEATER_METHOD_(OnTestSuiteEnd, TestSuite) -GTEST_REVERSE_REPEATER_METHOD_(OnTestProgramEnd, UnitTest) - -#undef GTEST_REPEATER_METHOD_ -#undef GTEST_REVERSE_REPEATER_METHOD_ - -void TestEventRepeater::OnTestIterationStart(const UnitTest& unit_test, - int iteration) { - if (forwarding_enabled_) { - for (size_t i = 0; i < listeners_.size(); i++) { - listeners_[i]->OnTestIterationStart(unit_test, iteration); - } - } -} - -void TestEventRepeater::OnTestIterationEnd(const UnitTest& unit_test, - int iteration) { - if (forwarding_enabled_) { - for (int i = static_cast(listeners_.size()) - 1; i >= 0; i--) { - listeners_[i]->OnTestIterationEnd(unit_test, iteration); - } - } -} - -// End TestEventRepeater - -// This class generates an XML output file. -class XmlUnitTestResultPrinter : public EmptyTestEventListener { - public: - explicit XmlUnitTestResultPrinter(const char* output_file); - - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void ListTestsMatchingFilter(const std::vector& test_suites); - - // Prints an XML summary of all unit tests. - static void PrintXmlTestsList(std::ostream* stream, - const std::vector& test_suites); - - private: - // Is c a whitespace character that is normalized to a space character - // when it appears in an XML attribute value? - static bool IsNormalizableWhitespace(char c) { - return c == 0x9 || c == 0xA || c == 0xD; - } - - // May c appear in a well-formed XML document? - static bool IsValidXmlCharacter(char c) { - return IsNormalizableWhitespace(c) || c >= 0x20; - } - - // Returns an XML-escaped copy of the input string str. If - // is_attribute is true, the text is meant to appear as an attribute - // value, and normalizable whitespace is preserved by replacing it - // with character references. - static std::string EscapeXml(const std::string& str, bool is_attribute); - - // Returns the given string with all characters invalid in XML removed. - static std::string RemoveInvalidXmlCharacters(const std::string& str); - - // Convenience wrapper around EscapeXml when str is an attribute value. - static std::string EscapeXmlAttribute(const std::string& str) { - return EscapeXml(str, true); - } - - // Convenience wrapper around EscapeXml when str is not an attribute value. - static std::string EscapeXmlText(const char* str) { - return EscapeXml(str, false); - } - - // Verifies that the given attribute belongs to the given element and - // streams the attribute as XML. - static void OutputXmlAttribute(std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value); - - // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. - static void OutputXmlCDataSection(::std::ostream* stream, const char* data); - - // Streams an XML representation of a TestInfo object. - static void OutputXmlTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info); - - // Prints an XML representation of a TestSuite object - static void PrintXmlTestSuite(::std::ostream* stream, - const TestSuite& test_suite); - - // Prints an XML summary of unit_test to output stream out. - static void PrintXmlUnitTest(::std::ostream* stream, - const UnitTest& unit_test); - - // Produces a string representing the test properties in a result as space - // delimited XML attributes based on the property key="value" pairs. - // When the std::string is not empty, it includes a space at the beginning, - // to delimit this attribute from prior attributes. - static std::string TestPropertiesAsXmlAttributes(const TestResult& result); - - // Streams an XML representation of the test properties of a TestResult - // object. - static void OutputXmlTestProperties(std::ostream* stream, - const TestResult& result); - - // The output file. - const std::string output_file_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(XmlUnitTestResultPrinter); -}; - -// Creates a new XmlUnitTestResultPrinter. -XmlUnitTestResultPrinter::XmlUnitTestResultPrinter(const char* output_file) - : output_file_(output_file) { - if (output_file_.empty()) { - GTEST_LOG_(FATAL) << "XML output file may not be null"; - } -} - -// Called after the unit test ends. -void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - FILE* xmlout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintXmlUnitTest(&stream, unit_test); - fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); - fclose(xmlout); -} - -void XmlUnitTestResultPrinter::ListTestsMatchingFilter( - const std::vector& test_suites) { - FILE* xmlout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintXmlTestsList(&stream, test_suites); - fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); - fclose(xmlout); -} - -// Returns an XML-escaped copy of the input string str. If is_attribute -// is true, the text is meant to appear as an attribute value, and -// normalizable whitespace is preserved by replacing it with character -// references. -// -// Invalid XML characters in str, if any, are stripped from the output. -// It is expected that most, if not all, of the text processed by this -// module will consist of ordinary English text. -// If this module is ever modified to produce version 1.1 XML output, -// most invalid characters can be retained using character references. -std::string XmlUnitTestResultPrinter::EscapeXml( - const std::string& str, bool is_attribute) { - Message m; - - for (size_t i = 0; i < str.size(); ++i) { - const char ch = str[i]; - switch (ch) { - case '<': - m << "<"; - break; - case '>': - m << ">"; - break; - case '&': - m << "&"; - break; - case '\'': - if (is_attribute) - m << "'"; - else - m << '\''; - break; - case '"': - if (is_attribute) - m << """; - else - m << '"'; - break; - default: - if (IsValidXmlCharacter(ch)) { - if (is_attribute && IsNormalizableWhitespace(ch)) - m << "&#x" << String::FormatByte(static_cast(ch)) - << ";"; - else - m << ch; - } - break; - } - } - - return m.GetString(); -} - -// Returns the given string with all characters invalid in XML removed. -// Currently invalid characters are dropped from the string. An -// alternative is to replace them with certain characters such as . or ?. -std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters( - const std::string& str) { - std::string output; - output.reserve(str.size()); - for (std::string::const_iterator it = str.begin(); it != str.end(); ++it) - if (IsValidXmlCharacter(*it)) - output.push_back(*it); - - return output; -} - -// The following routines generate an XML representation of a UnitTest -// object. -// GOOGLETEST_CM0009 DO NOT DELETE -// -// This is how Google Test concepts map to the DTD: -// -// <-- corresponds to a UnitTest object -// <-- corresponds to a TestSuite object -// <-- corresponds to a TestInfo object -// ... -// ... -// ... -// <-- individual assertion failures -// -// -// - -// Formats the given time in milliseconds as seconds. -std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) { - ::std::stringstream ss; - ss << (static_cast(ms) * 1e-3); - return ss.str(); -} - -static bool PortableLocaltime(time_t seconds, struct tm* out) { -#if defined(_MSC_VER) - return localtime_s(out, &seconds) == 0; -#elif defined(__MINGW32__) || defined(__MINGW64__) - // MINGW provides neither localtime_r nor localtime_s, but uses - // Windows' localtime(), which has a thread-local tm buffer. - struct tm* tm_ptr = localtime(&seconds); // NOLINT - if (tm_ptr == nullptr) return false; - *out = *tm_ptr; - return true; -#else - return localtime_r(&seconds, out) != nullptr; -#endif -} - -// Converts the given epoch time in milliseconds to a date string in the ISO -// 8601 format, without the timezone information. -std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) { - struct tm time_struct; - if (!PortableLocaltime(static_cast(ms / 1000), &time_struct)) - return ""; - // YYYY-MM-DDThh:mm:ss - return StreamableToString(time_struct.tm_year + 1900) + "-" + - String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" + - String::FormatIntWidth2(time_struct.tm_mday) + "T" + - String::FormatIntWidth2(time_struct.tm_hour) + ":" + - String::FormatIntWidth2(time_struct.tm_min) + ":" + - String::FormatIntWidth2(time_struct.tm_sec); -} - -// Streams an XML CDATA section, escaping invalid CDATA sequences as needed. -void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, - const char* data) { - const char* segment = data; - *stream << ""); - if (next_segment != nullptr) { - stream->write( - segment, static_cast(next_segment - segment)); - *stream << "]]>]]>"); - } else { - *stream << segment; - break; - } - } - *stream << "]]>"; -} - -void XmlUnitTestResultPrinter::OutputXmlAttribute( - std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Attribute " << name << " is not allowed for element <" << element_name - << ">."; - - *stream << " " << name << "=\"" << EscapeXmlAttribute(value) << "\""; -} - -// Prints an XML representation of a TestInfo object. -void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info) { - const TestResult& result = *test_info.result(); - const std::string kTestsuite = "testcase"; - - if (test_info.is_in_another_shard()) { - return; - } - - *stream << " \n"; - return; - } - - OutputXmlAttribute(stream, kTestsuite, "status", - test_info.should_run() ? "run" : "notrun"); - OutputXmlAttribute(stream, kTestsuite, "result", - test_info.should_run() - ? (result.Skipped() ? "skipped" : "completed") - : "suppressed"); - OutputXmlAttribute(stream, kTestsuite, "time", - FormatTimeInMillisAsSeconds(result.elapsed_time())); - OutputXmlAttribute(stream, kTestsuite, "classname", test_suite_name); - - int failures = 0; - for (int i = 0; i < result.total_part_count(); ++i) { - const TestPartResult& part = result.GetTestPartResult(i); - if (part.failed()) { - if (++failures == 1) { - *stream << ">\n"; - } - const std::string location = - internal::FormatCompilerIndependentFileLocation(part.file_name(), - part.line_number()); - const std::string summary = location + "\n" + part.summary(); - *stream << " "; - const std::string detail = location + "\n" + part.message(); - OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str()); - *stream << "\n"; - } - } - - if (failures == 0 && result.test_property_count() == 0) { - *stream << " />\n"; - } else { - if (failures == 0) { - *stream << ">\n"; - } - OutputXmlTestProperties(stream, result); - *stream << " \n"; - } -} - -// Prints an XML representation of a TestSuite object -void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream, - const TestSuite& test_suite) { - const std::string kTestsuite = "testsuite"; - *stream << " <" << kTestsuite; - OutputXmlAttribute(stream, kTestsuite, "name", test_suite.name()); - OutputXmlAttribute(stream, kTestsuite, "tests", - StreamableToString(test_suite.reportable_test_count())); - if (!GTEST_FLAG(list_tests)) { - OutputXmlAttribute(stream, kTestsuite, "failures", - StreamableToString(test_suite.failed_test_count())); - OutputXmlAttribute( - stream, kTestsuite, "disabled", - StreamableToString(test_suite.reportable_disabled_test_count())); - OutputXmlAttribute(stream, kTestsuite, "errors", "0"); - OutputXmlAttribute(stream, kTestsuite, "time", - FormatTimeInMillisAsSeconds(test_suite.elapsed_time())); - *stream << TestPropertiesAsXmlAttributes(test_suite.ad_hoc_test_result()); - } - *stream << ">\n"; - for (int i = 0; i < test_suite.total_test_count(); ++i) { - if (test_suite.GetTestInfo(i)->is_reportable()) - OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i)); - } - *stream << " \n"; -} - -// Prints an XML summary of unit_test to output stream out. -void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream, - const UnitTest& unit_test) { - const std::string kTestsuites = "testsuites"; - - *stream << "\n"; - *stream << "<" << kTestsuites; - - OutputXmlAttribute(stream, kTestsuites, "tests", - StreamableToString(unit_test.reportable_test_count())); - OutputXmlAttribute(stream, kTestsuites, "failures", - StreamableToString(unit_test.failed_test_count())); - OutputXmlAttribute( - stream, kTestsuites, "disabled", - StreamableToString(unit_test.reportable_disabled_test_count())); - OutputXmlAttribute(stream, kTestsuites, "errors", "0"); - OutputXmlAttribute( - stream, kTestsuites, "timestamp", - FormatEpochTimeInMillisAsIso8601(unit_test.start_timestamp())); - OutputXmlAttribute(stream, kTestsuites, "time", - FormatTimeInMillisAsSeconds(unit_test.elapsed_time())); - - if (GTEST_FLAG(shuffle)) { - OutputXmlAttribute(stream, kTestsuites, "random_seed", - StreamableToString(unit_test.random_seed())); - } - *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result()); - - OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); - *stream << ">\n"; - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) - PrintXmlTestSuite(stream, *unit_test.GetTestSuite(i)); - } - *stream << "\n"; -} - -void XmlUnitTestResultPrinter::PrintXmlTestsList( - std::ostream* stream, const std::vector& test_suites) { - const std::string kTestsuites = "testsuites"; - - *stream << "\n"; - *stream << "<" << kTestsuites; - - int total_tests = 0; - for (auto test_suite : test_suites) { - total_tests += test_suite->total_test_count(); - } - OutputXmlAttribute(stream, kTestsuites, "tests", - StreamableToString(total_tests)); - OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); - *stream << ">\n"; - - for (auto test_suite : test_suites) { - PrintXmlTestSuite(stream, *test_suite); - } - *stream << "\n"; -} - -// Produces a string representing the test properties in a result as space -// delimited XML attributes based on the property key="value" pairs. -std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( - const TestResult& result) { - Message attributes; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - attributes << " " << property.key() << "=" - << "\"" << EscapeXmlAttribute(property.value()) << "\""; - } - return attributes.GetString(); -} - -void XmlUnitTestResultPrinter::OutputXmlTestProperties( - std::ostream* stream, const TestResult& result) { - const std::string kProperties = "properties"; - const std::string kProperty = "property"; - - if (result.test_property_count() <= 0) { - return; - } - - *stream << "<" << kProperties << ">\n"; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - *stream << "<" << kProperty; - *stream << " name=\"" << EscapeXmlAttribute(property.key()) << "\""; - *stream << " value=\"" << EscapeXmlAttribute(property.value()) << "\""; - *stream << "/>\n"; - } - *stream << "\n"; -} - -// End XmlUnitTestResultPrinter - -// This class generates an JSON output file. -class JsonUnitTestResultPrinter : public EmptyTestEventListener { - public: - explicit JsonUnitTestResultPrinter(const char* output_file); - - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - - // Prints an JSON summary of all unit tests. - static void PrintJsonTestList(::std::ostream* stream, - const std::vector& test_suites); - - private: - // Returns an JSON-escaped copy of the input string str. - static std::string EscapeJson(const std::string& str); - - //// Verifies that the given attribute belongs to the given element and - //// streams the attribute as JSON. - static void OutputJsonKey(std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value, - const std::string& indent, - bool comma = true); - static void OutputJsonKey(std::ostream* stream, - const std::string& element_name, - const std::string& name, - int value, - const std::string& indent, - bool comma = true); - - // Streams a JSON representation of a TestInfo object. - static void OutputJsonTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info); - - // Prints a JSON representation of a TestSuite object - static void PrintJsonTestSuite(::std::ostream* stream, - const TestSuite& test_suite); - - // Prints a JSON summary of unit_test to output stream out. - static void PrintJsonUnitTest(::std::ostream* stream, - const UnitTest& unit_test); - - // Produces a string representing the test properties in a result as - // a JSON dictionary. - static std::string TestPropertiesAsJson(const TestResult& result, - const std::string& indent); - - // The output file. - const std::string output_file_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(JsonUnitTestResultPrinter); -}; - -// Creates a new JsonUnitTestResultPrinter. -JsonUnitTestResultPrinter::JsonUnitTestResultPrinter(const char* output_file) - : output_file_(output_file) { - if (output_file_.empty()) { - GTEST_LOG_(FATAL) << "JSON output file may not be null"; - } -} - -void JsonUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - FILE* jsonout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintJsonUnitTest(&stream, unit_test); - fprintf(jsonout, "%s", StringStreamToString(&stream).c_str()); - fclose(jsonout); -} - -// Returns an JSON-escaped copy of the input string str. -std::string JsonUnitTestResultPrinter::EscapeJson(const std::string& str) { - Message m; - - for (size_t i = 0; i < str.size(); ++i) { - const char ch = str[i]; - switch (ch) { - case '\\': - case '"': - case '/': - m << '\\' << ch; - break; - case '\b': - m << "\\b"; - break; - case '\t': - m << "\\t"; - break; - case '\n': - m << "\\n"; - break; - case '\f': - m << "\\f"; - break; - case '\r': - m << "\\r"; - break; - default: - if (ch < ' ') { - m << "\\u00" << String::FormatByte(static_cast(ch)); - } else { - m << ch; - } - break; - } - } - - return m.GetString(); -} - -// The following routines generate an JSON representation of a UnitTest -// object. - -// Formats the given time in milliseconds as seconds. -static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) { - ::std::stringstream ss; - ss << (static_cast(ms) * 1e-3) << "s"; - return ss.str(); -} - -// Converts the given epoch time in milliseconds to a date string in the -// RFC3339 format, without the timezone information. -static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) { - struct tm time_struct; - if (!PortableLocaltime(static_cast(ms / 1000), &time_struct)) - return ""; - // YYYY-MM-DDThh:mm:ss - return StreamableToString(time_struct.tm_year + 1900) + "-" + - String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" + - String::FormatIntWidth2(time_struct.tm_mday) + "T" + - String::FormatIntWidth2(time_struct.tm_hour) + ":" + - String::FormatIntWidth2(time_struct.tm_min) + ":" + - String::FormatIntWidth2(time_struct.tm_sec) + "Z"; -} - -static inline std::string Indent(int width) { - return std::string(width, ' '); -} - -void JsonUnitTestResultPrinter::OutputJsonKey( - std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value, - const std::string& indent, - bool comma) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Key \"" << name << "\" is not allowed for value \"" << element_name - << "\"."; - - *stream << indent << "\"" << name << "\": \"" << EscapeJson(value) << "\""; - if (comma) - *stream << ",\n"; -} - -void JsonUnitTestResultPrinter::OutputJsonKey( - std::ostream* stream, - const std::string& element_name, - const std::string& name, - int value, - const std::string& indent, - bool comma) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Key \"" << name << "\" is not allowed for value \"" << element_name - << "\"."; - - *stream << indent << "\"" << name << "\": " << StreamableToString(value); - if (comma) - *stream << ",\n"; -} - -// Prints a JSON representation of a TestInfo object. -void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info) { - const TestResult& result = *test_info.result(); - const std::string kTestsuite = "testcase"; - const std::string kIndent = Indent(10); - - *stream << Indent(8) << "{\n"; - OutputJsonKey(stream, kTestsuite, "name", test_info.name(), kIndent); - - if (test_info.value_param() != nullptr) { - OutputJsonKey(stream, kTestsuite, "value_param", test_info.value_param(), - kIndent); - } - if (test_info.type_param() != nullptr) { - OutputJsonKey(stream, kTestsuite, "type_param", test_info.type_param(), - kIndent); - } - if (GTEST_FLAG(list_tests)) { - OutputJsonKey(stream, kTestsuite, "file", test_info.file(), kIndent); - OutputJsonKey(stream, kTestsuite, "line", test_info.line(), kIndent, false); - *stream << "\n" << Indent(8) << "}"; - return; - } - - OutputJsonKey(stream, kTestsuite, "status", - test_info.should_run() ? "RUN" : "NOTRUN", kIndent); - OutputJsonKey(stream, kTestsuite, "result", - test_info.should_run() - ? (result.Skipped() ? "SKIPPED" : "COMPLETED") - : "SUPPRESSED", - kIndent); - OutputJsonKey(stream, kTestsuite, "time", - FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent); - OutputJsonKey(stream, kTestsuite, "classname", test_suite_name, kIndent, - false); - *stream << TestPropertiesAsJson(result, kIndent); - - int failures = 0; - for (int i = 0; i < result.total_part_count(); ++i) { - const TestPartResult& part = result.GetTestPartResult(i); - if (part.failed()) { - *stream << ",\n"; - if (++failures == 1) { - *stream << kIndent << "\"" << "failures" << "\": [\n"; - } - const std::string location = - internal::FormatCompilerIndependentFileLocation(part.file_name(), - part.line_number()); - const std::string message = EscapeJson(location + "\n" + part.message()); - *stream << kIndent << " {\n" - << kIndent << " \"failure\": \"" << message << "\",\n" - << kIndent << " \"type\": \"\"\n" - << kIndent << " }"; - } - } - - if (failures > 0) - *stream << "\n" << kIndent << "]"; - *stream << "\n" << Indent(8) << "}"; -} - -// Prints an JSON representation of a TestSuite object -void JsonUnitTestResultPrinter::PrintJsonTestSuite( - std::ostream* stream, const TestSuite& test_suite) { - const std::string kTestsuite = "testsuite"; - const std::string kIndent = Indent(6); - - *stream << Indent(4) << "{\n"; - OutputJsonKey(stream, kTestsuite, "name", test_suite.name(), kIndent); - OutputJsonKey(stream, kTestsuite, "tests", test_suite.reportable_test_count(), - kIndent); - if (!GTEST_FLAG(list_tests)) { - OutputJsonKey(stream, kTestsuite, "failures", - test_suite.failed_test_count(), kIndent); - OutputJsonKey(stream, kTestsuite, "disabled", - test_suite.reportable_disabled_test_count(), kIndent); - OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent); - OutputJsonKey(stream, kTestsuite, "time", - FormatTimeInMillisAsDuration(test_suite.elapsed_time()), - kIndent, false); - *stream << TestPropertiesAsJson(test_suite.ad_hoc_test_result(), kIndent) - << ",\n"; - } - - *stream << kIndent << "\"" << kTestsuite << "\": [\n"; - - bool comma = false; - for (int i = 0; i < test_suite.total_test_count(); ++i) { - if (test_suite.GetTestInfo(i)->is_reportable()) { - if (comma) { - *stream << ",\n"; - } else { - comma = true; - } - OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i)); - } - } - *stream << "\n" << kIndent << "]\n" << Indent(4) << "}"; -} - -// Prints a JSON summary of unit_test to output stream out. -void JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream* stream, - const UnitTest& unit_test) { - const std::string kTestsuites = "testsuites"; - const std::string kIndent = Indent(2); - *stream << "{\n"; - - OutputJsonKey(stream, kTestsuites, "tests", unit_test.reportable_test_count(), - kIndent); - OutputJsonKey(stream, kTestsuites, "failures", unit_test.failed_test_count(), - kIndent); - OutputJsonKey(stream, kTestsuites, "disabled", - unit_test.reportable_disabled_test_count(), kIndent); - OutputJsonKey(stream, kTestsuites, "errors", 0, kIndent); - if (GTEST_FLAG(shuffle)) { - OutputJsonKey(stream, kTestsuites, "random_seed", unit_test.random_seed(), - kIndent); - } - OutputJsonKey(stream, kTestsuites, "timestamp", - FormatEpochTimeInMillisAsRFC3339(unit_test.start_timestamp()), - kIndent); - OutputJsonKey(stream, kTestsuites, "time", - FormatTimeInMillisAsDuration(unit_test.elapsed_time()), kIndent, - false); - - *stream << TestPropertiesAsJson(unit_test.ad_hoc_test_result(), kIndent) - << ",\n"; - - OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent); - *stream << kIndent << "\"" << kTestsuites << "\": [\n"; - - bool comma = false; - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) { - if (comma) { - *stream << ",\n"; - } else { - comma = true; - } - PrintJsonTestSuite(stream, *unit_test.GetTestSuite(i)); - } - } - - *stream << "\n" << kIndent << "]\n" << "}\n"; -} - -void JsonUnitTestResultPrinter::PrintJsonTestList( - std::ostream* stream, const std::vector& test_suites) { - const std::string kTestsuites = "testsuites"; - const std::string kIndent = Indent(2); - *stream << "{\n"; - int total_tests = 0; - for (auto test_suite : test_suites) { - total_tests += test_suite->total_test_count(); - } - OutputJsonKey(stream, kTestsuites, "tests", total_tests, kIndent); - - OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent); - *stream << kIndent << "\"" << kTestsuites << "\": [\n"; - - for (size_t i = 0; i < test_suites.size(); ++i) { - if (i != 0) { - *stream << ",\n"; - } - PrintJsonTestSuite(stream, *test_suites[i]); - } - - *stream << "\n" - << kIndent << "]\n" - << "}\n"; -} -// Produces a string representing the test properties in a result as -// a JSON dictionary. -std::string JsonUnitTestResultPrinter::TestPropertiesAsJson( - const TestResult& result, const std::string& indent) { - Message attributes; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - attributes << ",\n" << indent << "\"" << property.key() << "\": " - << "\"" << EscapeJson(property.value()) << "\""; - } - return attributes.GetString(); -} - -// End JsonUnitTestResultPrinter - -#if GTEST_CAN_STREAM_RESULTS_ - -// Checks if str contains '=', '&', '%' or '\n' characters. If yes, -// replaces them by "%xx" where xx is their hexadecimal value. For -// example, replaces "=" with "%3D". This algorithm is O(strlen(str)) -// in both time and space -- important as the input str may contain an -// arbitrarily long test failure message and stack trace. -std::string StreamingListener::UrlEncode(const char* str) { - std::string result; - result.reserve(strlen(str) + 1); - for (char ch = *str; ch != '\0'; ch = *++str) { - switch (ch) { - case '%': - case '=': - case '&': - case '\n': - result.append("%" + String::FormatByte(static_cast(ch))); - break; - default: - result.push_back(ch); - break; - } - } - return result; -} - -void StreamingListener::SocketWriter::MakeConnection() { - GTEST_CHECK_(sockfd_ == -1) - << "MakeConnection() can't be called when there is already a connection."; - - addrinfo hints; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; // To allow both IPv4 and IPv6 addresses. - hints.ai_socktype = SOCK_STREAM; - addrinfo* servinfo = nullptr; - - // Use the getaddrinfo() to get a linked list of IP addresses for - // the given host name. - const int error_num = getaddrinfo( - host_name_.c_str(), port_num_.c_str(), &hints, &servinfo); - if (error_num != 0) { - GTEST_LOG_(WARNING) << "stream_result_to: getaddrinfo() failed: " - << gai_strerror(error_num); - } - - // Loop through all the results and connect to the first we can. - for (addrinfo* cur_addr = servinfo; sockfd_ == -1 && cur_addr != nullptr; - cur_addr = cur_addr->ai_next) { - sockfd_ = socket( - cur_addr->ai_family, cur_addr->ai_socktype, cur_addr->ai_protocol); - if (sockfd_ != -1) { - // Connect the client socket to the server socket. - if (connect(sockfd_, cur_addr->ai_addr, cur_addr->ai_addrlen) == -1) { - close(sockfd_); - sockfd_ = -1; - } - } - } - - freeaddrinfo(servinfo); // all done with this structure - - if (sockfd_ == -1) { - GTEST_LOG_(WARNING) << "stream_result_to: failed to connect to " - << host_name_ << ":" << port_num_; - } -} - -// End of class Streaming Listener -#endif // GTEST_CAN_STREAM_RESULTS__ - -// class OsStackTraceGetter - -const char* const OsStackTraceGetterInterface::kElidedFramesMarker = - "... " GTEST_NAME_ " internal frames ..."; - -std::string OsStackTraceGetter::CurrentStackTrace(int max_depth, int skip_count) - GTEST_LOCK_EXCLUDED_(mutex_) { -#if GTEST_HAS_ABSL - std::string result; - - if (max_depth <= 0) { - return result; - } - - max_depth = std::min(max_depth, kMaxStackTraceDepth); - - std::vector raw_stack(max_depth); - // Skips the frames requested by the caller, plus this function. - const int raw_stack_size = - absl::GetStackTrace(&raw_stack[0], max_depth, skip_count + 1); - - void* caller_frame = nullptr; - { - MutexLock lock(&mutex_); - caller_frame = caller_frame_; - } - - for (int i = 0; i < raw_stack_size; ++i) { - if (raw_stack[i] == caller_frame && - !GTEST_FLAG(show_internal_stack_frames)) { - // Add a marker to the trace and stop adding frames. - absl::StrAppend(&result, kElidedFramesMarker, "\n"); - break; - } - - char tmp[1024]; - const char* symbol = "(unknown)"; - if (absl::Symbolize(raw_stack[i], tmp, sizeof(tmp))) { - symbol = tmp; - } - - char line[1024]; - snprintf(line, sizeof(line), " %p: %s\n", raw_stack[i], symbol); - result += line; - } - - return result; - -#else // !GTEST_HAS_ABSL - static_cast(max_depth); - static_cast(skip_count); - return ""; -#endif // GTEST_HAS_ABSL -} - -void OsStackTraceGetter::UponLeavingGTest() GTEST_LOCK_EXCLUDED_(mutex_) { -#if GTEST_HAS_ABSL - void* caller_frame = nullptr; - if (absl::GetStackTrace(&caller_frame, 1, 3) <= 0) { - caller_frame = nullptr; - } - - MutexLock lock(&mutex_); - caller_frame_ = caller_frame; -#endif // GTEST_HAS_ABSL -} - -// A helper class that creates the premature-exit file in its -// constructor and deletes the file in its destructor. -class ScopedPrematureExitFile { - public: - explicit ScopedPrematureExitFile(const char* premature_exit_filepath) - : premature_exit_filepath_(premature_exit_filepath ? - premature_exit_filepath : "") { - // If a path to the premature-exit file is specified... - if (!premature_exit_filepath_.empty()) { - // create the file with a single "0" character in it. I/O - // errors are ignored as there's nothing better we can do and we - // don't want to fail the test because of this. - FILE* pfile = posix::FOpen(premature_exit_filepath, "w"); - fwrite("0", 1, 1, pfile); - fclose(pfile); - } - } - - ~ScopedPrematureExitFile() { - if (!premature_exit_filepath_.empty()) { - int retval = remove(premature_exit_filepath_.c_str()); - if (retval) { - GTEST_LOG_(ERROR) << "Failed to remove premature exit filepath \"" - << premature_exit_filepath_ << "\" with error " - << retval; - } - } - } - - private: - const std::string premature_exit_filepath_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedPrematureExitFile); -}; - -} // namespace internal - -// class TestEventListeners - -TestEventListeners::TestEventListeners() - : repeater_(new internal::TestEventRepeater()), - default_result_printer_(nullptr), - default_xml_generator_(nullptr) {} - -TestEventListeners::~TestEventListeners() { delete repeater_; } - -// Returns the standard listener responsible for the default console -// output. Can be removed from the listeners list to shut down default -// console output. Note that removing this object from the listener list -// with Release transfers its ownership to the user. -void TestEventListeners::Append(TestEventListener* listener) { - repeater_->Append(listener); -} - -// Removes the given event listener from the list and returns it. It then -// becomes the caller's responsibility to delete the listener. Returns -// NULL if the listener is not found in the list. -TestEventListener* TestEventListeners::Release(TestEventListener* listener) { - if (listener == default_result_printer_) - default_result_printer_ = nullptr; - else if (listener == default_xml_generator_) - default_xml_generator_ = nullptr; - return repeater_->Release(listener); -} - -// Returns repeater that broadcasts the TestEventListener events to all -// subscribers. -TestEventListener* TestEventListeners::repeater() { return repeater_; } - -// Sets the default_result_printer attribute to the provided listener. -// The listener is also added to the listener list and previous -// default_result_printer is removed from it and deleted. The listener can -// also be NULL in which case it will not be added to the list. Does -// nothing if the previous and the current listener objects are the same. -void TestEventListeners::SetDefaultResultPrinter(TestEventListener* listener) { - if (default_result_printer_ != listener) { - // It is an error to pass this method a listener that is already in the - // list. - delete Release(default_result_printer_); - default_result_printer_ = listener; - if (listener != nullptr) Append(listener); - } -} - -// Sets the default_xml_generator attribute to the provided listener. The -// listener is also added to the listener list and previous -// default_xml_generator is removed from it and deleted. The listener can -// also be NULL in which case it will not be added to the list. Does -// nothing if the previous and the current listener objects are the same. -void TestEventListeners::SetDefaultXmlGenerator(TestEventListener* listener) { - if (default_xml_generator_ != listener) { - // It is an error to pass this method a listener that is already in the - // list. - delete Release(default_xml_generator_); - default_xml_generator_ = listener; - if (listener != nullptr) Append(listener); - } -} - -// Controls whether events will be forwarded by the repeater to the -// listeners in the list. -bool TestEventListeners::EventForwardingEnabled() const { - return repeater_->forwarding_enabled(); -} - -void TestEventListeners::SuppressEventForwarding() { - repeater_->set_forwarding_enabled(false); -} - -// class UnitTest - -// Gets the singleton UnitTest object. The first time this method is -// called, a UnitTest object is constructed and returned. Consecutive -// calls will return the same object. -// -// We don't protect this under mutex_ as a user is not supposed to -// call this before main() starts, from which point on the return -// value will never change. -UnitTest* UnitTest::GetInstance() { - // CodeGear C++Builder insists on a public destructor for the - // default implementation. Use this implementation to keep good OO - // design with private destructor. - -#if defined(__BORLANDC__) - static UnitTest* const instance = new UnitTest; - return instance; -#else - static UnitTest instance; - return &instance; -#endif // defined(__BORLANDC__) -} - -// Gets the number of successful test suites. -int UnitTest::successful_test_suite_count() const { - return impl()->successful_test_suite_count(); -} - -// Gets the number of failed test suites. -int UnitTest::failed_test_suite_count() const { - return impl()->failed_test_suite_count(); -} - -// Gets the number of all test suites. -int UnitTest::total_test_suite_count() const { - return impl()->total_test_suite_count(); -} - -// Gets the number of all test suites that contain at least one test -// that should run. -int UnitTest::test_suite_to_run_count() const { - return impl()->test_suite_to_run_count(); -} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -int UnitTest::successful_test_case_count() const { - return impl()->successful_test_suite_count(); -} -int UnitTest::failed_test_case_count() const { - return impl()->failed_test_suite_count(); -} -int UnitTest::total_test_case_count() const { - return impl()->total_test_suite_count(); -} -int UnitTest::test_case_to_run_count() const { - return impl()->test_suite_to_run_count(); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// Gets the number of successful tests. -int UnitTest::successful_test_count() const { - return impl()->successful_test_count(); -} - -// Gets the number of skipped tests. -int UnitTest::skipped_test_count() const { - return impl()->skipped_test_count(); -} - -// Gets the number of failed tests. -int UnitTest::failed_test_count() const { return impl()->failed_test_count(); } - -// Gets the number of disabled tests that will be reported in the XML report. -int UnitTest::reportable_disabled_test_count() const { - return impl()->reportable_disabled_test_count(); -} - -// Gets the number of disabled tests. -int UnitTest::disabled_test_count() const { - return impl()->disabled_test_count(); -} - -// Gets the number of tests to be printed in the XML report. -int UnitTest::reportable_test_count() const { - return impl()->reportable_test_count(); -} - -// Gets the number of all tests. -int UnitTest::total_test_count() const { return impl()->total_test_count(); } - -// Gets the number of tests that should run. -int UnitTest::test_to_run_count() const { return impl()->test_to_run_count(); } - -// Gets the time of the test program start, in ms from the start of the -// UNIX epoch. -internal::TimeInMillis UnitTest::start_timestamp() const { - return impl()->start_timestamp(); -} - -// Gets the elapsed time, in milliseconds. -internal::TimeInMillis UnitTest::elapsed_time() const { - return impl()->elapsed_time(); -} - -// Returns true iff the unit test passed (i.e. all test suites passed). -bool UnitTest::Passed() const { return impl()->Passed(); } - -// Returns true iff the unit test failed (i.e. some test suite failed -// or something outside of all tests failed). -bool UnitTest::Failed() const { return impl()->Failed(); } - -// Gets the i-th test suite among all the test suites. i can range from 0 to -// total_test_suite_count() - 1. If i is not in that range, returns NULL. -const TestSuite* UnitTest::GetTestSuite(int i) const { - return impl()->GetTestSuite(i); -} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -const TestCase* UnitTest::GetTestCase(int i) const { - return impl()->GetTestCase(i); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// Returns the TestResult containing information on test failures and -// properties logged outside of individual test suites. -const TestResult& UnitTest::ad_hoc_test_result() const { - return *impl()->ad_hoc_test_result(); -} - -// Gets the i-th test suite among all the test suites. i can range from 0 to -// total_test_suite_count() - 1. If i is not in that range, returns NULL. -TestSuite* UnitTest::GetMutableTestSuite(int i) { - return impl()->GetMutableSuiteCase(i); -} - -// Returns the list of event listeners that can be used to track events -// inside Google Test. -TestEventListeners& UnitTest::listeners() { - return *impl()->listeners(); -} - -// Registers and returns a global test environment. When a test -// program is run, all global test environments will be set-up in the -// order they were registered. After all tests in the program have -// finished, all global test environments will be torn-down in the -// *reverse* order they were registered. -// -// The UnitTest object takes ownership of the given environment. -// -// We don't protect this under mutex_, as we only support calling it -// from the main thread. -Environment* UnitTest::AddEnvironment(Environment* env) { - if (env == nullptr) { - return nullptr; - } - - impl_->environments().push_back(env); - return env; -} - -// Adds a TestPartResult to the current TestResult object. All Google Test -// assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) eventually call -// this to report their results. The user code should use the -// assertion macros instead of calling this directly. -void UnitTest::AddTestPartResult( - TestPartResult::Type result_type, - const char* file_name, - int line_number, - const std::string& message, - const std::string& os_stack_trace) GTEST_LOCK_EXCLUDED_(mutex_) { - Message msg; - msg << message; - - internal::MutexLock lock(&mutex_); - if (impl_->gtest_trace_stack().size() > 0) { - msg << "\n" << GTEST_NAME_ << " trace:"; - - for (int i = static_cast(impl_->gtest_trace_stack().size()); - i > 0; --i) { - const internal::TraceInfo& trace = impl_->gtest_trace_stack()[i - 1]; - msg << "\n" << internal::FormatFileLocation(trace.file, trace.line) - << " " << trace.message; - } - } - - if (os_stack_trace.c_str() != nullptr && !os_stack_trace.empty()) { - msg << internal::kStackTraceMarker << os_stack_trace; - } - - const TestPartResult result = TestPartResult( - result_type, file_name, line_number, msg.GetString().c_str()); - impl_->GetTestPartResultReporterForCurrentThread()-> - ReportTestPartResult(result); - - if (result_type != TestPartResult::kSuccess && - result_type != TestPartResult::kSkip) { - // gtest_break_on_failure takes precedence over - // gtest_throw_on_failure. This allows a user to set the latter - // in the code (perhaps in order to use Google Test assertions - // with another testing framework) and specify the former on the - // command line for debugging. - if (GTEST_FLAG(break_on_failure)) { -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - // Using DebugBreak on Windows allows gtest to still break into a debugger - // when a failure happens and both the --gtest_break_on_failure and - // the --gtest_catch_exceptions flags are specified. - DebugBreak(); -#elif (!defined(__native_client__)) && \ - ((defined(__clang__) || defined(__GNUC__)) && \ - (defined(__x86_64__) || defined(__i386__))) - // with clang/gcc we can achieve the same effect on x86 by invoking int3 - asm("int3"); -#else - // Dereference nullptr through a volatile pointer to prevent the compiler - // from removing. We use this rather than abort() or __builtin_trap() for - // portability: some debuggers don't correctly trap abort(). - *static_cast(nullptr) = 1; -#endif // GTEST_OS_WINDOWS - } else if (GTEST_FLAG(throw_on_failure)) { -#if GTEST_HAS_EXCEPTIONS - throw internal::GoogleTestFailureException(result); -#else - // We cannot call abort() as it generates a pop-up in debug mode - // that cannot be suppressed in VC 7.1 or below. - exit(1); -#endif - } - } -} - -// Adds a TestProperty to the current TestResult object when invoked from -// inside a test, to current TestSuite's ad_hoc_test_result_ when invoked -// from SetUpTestSuite or TearDownTestSuite, or to the global property set -// when invoked elsewhere. If the result already contains a property with -// the same key, the value will be updated. -void UnitTest::RecordProperty(const std::string& key, - const std::string& value) { - impl_->RecordProperty(TestProperty(key, value)); -} - -// Runs all tests in this UnitTest object and prints the result. -// Returns 0 if successful, or 1 otherwise. -// -// We don't protect this under mutex_, as we only support calling it -// from the main thread. -int UnitTest::Run() { - const bool in_death_test_child_process = - internal::GTEST_FLAG(internal_run_death_test).length() > 0; - - // Google Test implements this protocol for catching that a test - // program exits before returning control to Google Test: - // - // 1. Upon start, Google Test creates a file whose absolute path - // is specified by the environment variable - // TEST_PREMATURE_EXIT_FILE. - // 2. When Google Test has finished its work, it deletes the file. - // - // This allows a test runner to set TEST_PREMATURE_EXIT_FILE before - // running a Google-Test-based test program and check the existence - // of the file at the end of the test execution to see if it has - // exited prematurely. - - // If we are in the child process of a death test, don't - // create/delete the premature exit file, as doing so is unnecessary - // and will confuse the parent process. Otherwise, create/delete - // the file upon entering/leaving this function. If the program - // somehow exits before this function has a chance to return, the - // premature-exit file will be left undeleted, causing a test runner - // that understands the premature-exit-file protocol to report the - // test as having failed. - const internal::ScopedPrematureExitFile premature_exit_file( - in_death_test_child_process - ? nullptr - : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE")); - - // Captures the value of GTEST_FLAG(catch_exceptions). This value will be - // used for the duration of the program. - impl()->set_catch_exceptions(GTEST_FLAG(catch_exceptions)); - -#if GTEST_OS_WINDOWS - // Either the user wants Google Test to catch exceptions thrown by the - // tests or this is executing in the context of death test child - // process. In either case the user does not want to see pop-up dialogs - // about crashes - they are expected. - if (impl()->catch_exceptions() || in_death_test_child_process) { -# if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - // SetErrorMode doesn't exist on CE. - SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | - SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); -# endif // !GTEST_OS_WINDOWS_MOBILE - -# if (defined(_MSC_VER) || GTEST_OS_WINDOWS_MINGW) && !GTEST_OS_WINDOWS_MOBILE - // Death test children can be terminated with _abort(). On Windows, - // _abort() can show a dialog with a warning message. This forces the - // abort message to go to stderr instead. - _set_error_mode(_OUT_TO_STDERR); -# endif - -# if defined(_MSC_VER) && !GTEST_OS_WINDOWS_MOBILE - // In the debug version, Visual Studio pops up a separate dialog - // offering a choice to debug the aborted program. We need to suppress - // this dialog or it will pop up for every EXPECT/ASSERT_DEATH statement - // executed. Google Test will notify the user of any unexpected - // failure via stderr. - if (!GTEST_FLAG(break_on_failure)) - _set_abort_behavior( - 0x0, // Clear the following flags: - _WRITE_ABORT_MSG | _CALL_REPORTFAULT); // pop-up window, core dump. -# endif - } -#endif // GTEST_OS_WINDOWS - - return internal::HandleExceptionsInMethodIfSupported( - impl(), - &internal::UnitTestImpl::RunAllTests, - "auxiliary test code (environments or event listeners)") ? 0 : 1; -} - -// Returns the working directory when the first TEST() or TEST_F() was -// executed. -const char* UnitTest::original_working_dir() const { - return impl_->original_working_dir_.c_str(); -} - -// Returns the TestSuite object for the test that's currently running, -// or NULL if no test is running. -const TestSuite* UnitTest::current_test_suite() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_suite(); -} - -// Legacy API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -const TestCase* UnitTest::current_test_case() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_suite(); -} -#endif - -// Returns the TestInfo object for the test that's currently running, -// or NULL if no test is running. -const TestInfo* UnitTest::current_test_info() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_info(); -} - -// Returns the random seed used at the start of the current test run. -int UnitTest::random_seed() const { return impl_->random_seed(); } - -// Returns ParameterizedTestSuiteRegistry object used to keep track of -// value-parameterized tests and instantiate and register them. -internal::ParameterizedTestSuiteRegistry& -UnitTest::parameterized_test_registry() GTEST_LOCK_EXCLUDED_(mutex_) { - return impl_->parameterized_test_registry(); -} - -// Creates an empty UnitTest. -UnitTest::UnitTest() { - impl_ = new internal::UnitTestImpl(this); -} - -// Destructor of UnitTest. -UnitTest::~UnitTest() { - delete impl_; -} - -// Pushes a trace defined by SCOPED_TRACE() on to the per-thread -// Google Test trace stack. -void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - impl_->gtest_trace_stack().push_back(trace); -} - -// Pops a trace from the per-thread Google Test trace stack. -void UnitTest::PopGTestTrace() - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - impl_->gtest_trace_stack().pop_back(); -} - -namespace internal { - -UnitTestImpl::UnitTestImpl(UnitTest* parent) - : parent_(parent), - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4355 /* using this in initializer */) - default_global_test_part_result_reporter_(this), - default_per_thread_test_part_result_reporter_(this), - GTEST_DISABLE_MSC_WARNINGS_POP_() global_test_part_result_repoter_( - &default_global_test_part_result_reporter_), - per_thread_test_part_result_reporter_( - &default_per_thread_test_part_result_reporter_), - parameterized_test_registry_(), - parameterized_tests_registered_(false), - last_death_test_suite_(-1), - current_test_suite_(nullptr), - current_test_info_(nullptr), - ad_hoc_test_result_(), - os_stack_trace_getter_(nullptr), - post_flag_parse_init_performed_(false), - random_seed_(0), // Will be overridden by the flag before first use. - random_(0), // Will be reseeded before first use. - start_timestamp_(0), - elapsed_time_(0), -#if GTEST_HAS_DEATH_TEST - death_test_factory_(new DefaultDeathTestFactory), -#endif - // Will be overridden by the flag before first use. - catch_exceptions_(false) { - listeners()->SetDefaultResultPrinter(new PrettyUnitTestResultPrinter); -} - -UnitTestImpl::~UnitTestImpl() { - // Deletes every TestSuite. - ForEach(test_suites_, internal::Delete); - - // Deletes every Environment. - ForEach(environments_, internal::Delete); - - delete os_stack_trace_getter_; -} - -// Adds a TestProperty to the current TestResult object when invoked in a -// context of a test, to current test suite's ad_hoc_test_result when invoke -// from SetUpTestSuite/TearDownTestSuite, or to the global property set -// otherwise. If the result already contains a property with the same key, -// the value will be updated. -void UnitTestImpl::RecordProperty(const TestProperty& test_property) { - std::string xml_element; - TestResult* test_result; // TestResult appropriate for property recording. - - if (current_test_info_ != nullptr) { - xml_element = "testcase"; - test_result = &(current_test_info_->result_); - } else if (current_test_suite_ != nullptr) { - xml_element = "testsuite"; - test_result = &(current_test_suite_->ad_hoc_test_result_); - } else { - xml_element = "testsuites"; - test_result = &ad_hoc_test_result_; - } - test_result->RecordProperty(xml_element, test_property); -} - -#if GTEST_HAS_DEATH_TEST -// Disables event forwarding if the control is currently in a death test -// subprocess. Must not be called before InitGoogleTest. -void UnitTestImpl::SuppressTestEventsIfInSubprocess() { - if (internal_run_death_test_flag_.get() != nullptr) - listeners()->SuppressEventForwarding(); -} -#endif // GTEST_HAS_DEATH_TEST - -// Initializes event listeners performing XML output as specified by -// UnitTestOptions. Must not be called before InitGoogleTest. -void UnitTestImpl::ConfigureXmlOutput() { - const std::string& output_format = UnitTestOptions::GetOutputFormat(); - if (output_format == "xml") { - listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); - } else if (output_format == "json") { - listeners()->SetDefaultXmlGenerator(new JsonUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); - } else if (output_format != "") { - GTEST_LOG_(WARNING) << "WARNING: unrecognized output format \"" - << output_format << "\" ignored."; - } -} - -#if GTEST_CAN_STREAM_RESULTS_ -// Initializes event listeners for streaming test results in string form. -// Must not be called before InitGoogleTest. -void UnitTestImpl::ConfigureStreamingOutput() { - const std::string& target = GTEST_FLAG(stream_result_to); - if (!target.empty()) { - const size_t pos = target.find(':'); - if (pos != std::string::npos) { - listeners()->Append(new StreamingListener(target.substr(0, pos), - target.substr(pos+1))); - } else { - GTEST_LOG_(WARNING) << "unrecognized streaming target \"" << target - << "\" ignored."; - } - } -} -#endif // GTEST_CAN_STREAM_RESULTS_ - -// Performs initialization dependent upon flag values obtained in -// ParseGoogleTestFlagsOnly. Is called from InitGoogleTest after the call to -// ParseGoogleTestFlagsOnly. In case a user neglects to call InitGoogleTest -// this function is also called from RunAllTests. Since this function can be -// called more than once, it has to be idempotent. -void UnitTestImpl::PostFlagParsingInit() { - // Ensures that this function does not execute more than once. - if (!post_flag_parse_init_performed_) { - post_flag_parse_init_performed_ = true; - -#if defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_) - // Register to send notifications about key process state changes. - listeners()->Append(new GTEST_CUSTOM_TEST_EVENT_LISTENER_()); -#endif // defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_) - -#if GTEST_HAS_DEATH_TEST - InitDeathTestSubprocessControlInfo(); - SuppressTestEventsIfInSubprocess(); -#endif // GTEST_HAS_DEATH_TEST - - // Registers parameterized tests. This makes parameterized tests - // available to the UnitTest reflection API without running - // RUN_ALL_TESTS. - RegisterParameterizedTests(); - - // Configures listeners for XML output. This makes it possible for users - // to shut down the default XML output before invoking RUN_ALL_TESTS. - ConfigureXmlOutput(); - -#if GTEST_CAN_STREAM_RESULTS_ - // Configures listeners for streaming test results to the specified server. - ConfigureStreamingOutput(); -#endif // GTEST_CAN_STREAM_RESULTS_ - -#if GTEST_HAS_ABSL - if (GTEST_FLAG(install_failure_signal_handler)) { - absl::FailureSignalHandlerOptions options; - absl::InstallFailureSignalHandler(options); - } -#endif // GTEST_HAS_ABSL - } -} - -// A predicate that checks the name of a TestSuite against a known -// value. -// -// This is used for implementation of the UnitTest class only. We put -// it in the anonymous namespace to prevent polluting the outer -// namespace. -// -// TestSuiteNameIs is copyable. -class TestSuiteNameIs { - public: - // Constructor. - explicit TestSuiteNameIs(const std::string& name) : name_(name) {} - - // Returns true iff the name of test_suite matches name_. - bool operator()(const TestSuite* test_suite) const { - return test_suite != nullptr && - strcmp(test_suite->name(), name_.c_str()) == 0; - } - - private: - std::string name_; -}; - -// Finds and returns a TestSuite with the given name. If one doesn't -// exist, creates one and returns it. It's the CALLER'S -// RESPONSIBILITY to ensure that this function is only called WHEN THE -// TESTS ARE NOT SHUFFLED. -// -// Arguments: -// -// test_suite_name: name of the test suite -// type_param: the name of the test suite's type parameter, or NULL if -// this is not a typed or a type-parameterized test suite. -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -TestSuite* UnitTestImpl::GetTestSuite( - const char* test_suite_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) { - // Can we find a TestSuite with the given name? - const auto test_suite = - std::find_if(test_suites_.rbegin(), test_suites_.rend(), - TestSuiteNameIs(test_suite_name)); - - if (test_suite != test_suites_.rend()) return *test_suite; - - // No. Let's create one. - auto* const new_test_suite = - new TestSuite(test_suite_name, type_param, set_up_tc, tear_down_tc); - - // Is this a death test suite? - if (internal::UnitTestOptions::MatchesFilter(test_suite_name, - kDeathTestSuiteFilter)) { - // Yes. Inserts the test suite after the last death test suite - // defined so far. This only works when the test suites haven't - // been shuffled. Otherwise we may end up running a death test - // after a non-death test. - ++last_death_test_suite_; - test_suites_.insert(test_suites_.begin() + last_death_test_suite_, - new_test_suite); - } else { - // No. Appends to the end of the list. - test_suites_.push_back(new_test_suite); - } - - test_suite_indices_.push_back(static_cast(test_suite_indices_.size())); - return new_test_suite; -} - -// Helpers for setting up / tearing down the given environment. They -// are for use in the ForEach() function. -static void SetUpEnvironment(Environment* env) { env->SetUp(); } -static void TearDownEnvironment(Environment* env) { env->TearDown(); } - -// Runs all tests in this UnitTest object, prints the result, and -// returns true if all tests are successful. If any exception is -// thrown during a test, the test is considered to be failed, but the -// rest of the tests will still be run. -// -// When parameterized tests are enabled, it expands and registers -// parameterized tests first in RegisterParameterizedTests(). -// All other functions called from RunAllTests() may safely assume that -// parameterized tests are ready to be counted and run. -bool UnitTestImpl::RunAllTests() { - // True iff Google Test is initialized before RUN_ALL_TESTS() is called. - const bool gtest_is_initialized_before_run_all_tests = GTestIsInitialized(); - - // Do not run any test if the --help flag was specified. - if (g_help_flag) - return true; - - // Repeats the call to the post-flag parsing initialization in case the - // user didn't call InitGoogleTest. - PostFlagParsingInit(); - - // Even if sharding is not on, test runners may want to use the - // GTEST_SHARD_STATUS_FILE to query whether the test supports the sharding - // protocol. - internal::WriteToShardStatusFileIfNeeded(); - - // True iff we are in a subprocess for running a thread-safe-style - // death test. - bool in_subprocess_for_death_test = false; - -#if GTEST_HAS_DEATH_TEST - in_subprocess_for_death_test = - (internal_run_death_test_flag_.get() != nullptr); -# if defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_) - if (in_subprocess_for_death_test) { - GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_(); - } -# endif // defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_) -#endif // GTEST_HAS_DEATH_TEST - - const bool should_shard = ShouldShard(kTestTotalShards, kTestShardIndex, - in_subprocess_for_death_test); - - // Compares the full test names with the filter to decide which - // tests to run. - const bool has_tests_to_run = FilterTests(should_shard - ? HONOR_SHARDING_PROTOCOL - : IGNORE_SHARDING_PROTOCOL) > 0; - - // Lists the tests and exits if the --gtest_list_tests flag was specified. - if (GTEST_FLAG(list_tests)) { - // This must be called *after* FilterTests() has been called. - ListTestsMatchingFilter(); - return true; - } - - random_seed_ = GTEST_FLAG(shuffle) ? - GetRandomSeedFromFlag(GTEST_FLAG(random_seed)) : 0; - - // True iff at least one test has failed. - bool failed = false; - - TestEventListener* repeater = listeners()->repeater(); - - start_timestamp_ = GetTimeInMillis(); - repeater->OnTestProgramStart(*parent_); - - // How many times to repeat the tests? We don't want to repeat them - // when we are inside the subprocess of a death test. - const int repeat = in_subprocess_for_death_test ? 1 : GTEST_FLAG(repeat); - // Repeats forever if the repeat count is negative. - const bool forever = repeat < 0; - for (int i = 0; forever || i != repeat; i++) { - // We want to preserve failures generated by ad-hoc test - // assertions executed before RUN_ALL_TESTS(). - ClearNonAdHocTestResult(); - - const TimeInMillis start = GetTimeInMillis(); - - // Shuffles test suites and tests if requested. - if (has_tests_to_run && GTEST_FLAG(shuffle)) { - random()->Reseed(random_seed_); - // This should be done before calling OnTestIterationStart(), - // such that a test event listener can see the actual test order - // in the event. - ShuffleTests(); - } - - // Tells the unit test event listeners that the tests are about to start. - repeater->OnTestIterationStart(*parent_, i); - - // Runs each test suite if there is at least one test to run. - if (has_tests_to_run) { - // Sets up all environments beforehand. - repeater->OnEnvironmentsSetUpStart(*parent_); - ForEach(environments_, SetUpEnvironment); - repeater->OnEnvironmentsSetUpEnd(*parent_); - - // Runs the tests only if there was no fatal failure or skip triggered - // during global set-up. - if (Test::IsSkipped()) { - // Emit diagnostics when global set-up calls skip, as it will not be - // emitted by default. - TestResult& test_result = - *internal::GetUnitTestImpl()->current_test_result(); - for (int j = 0; j < test_result.total_part_count(); ++j) { - const TestPartResult& test_part_result = - test_result.GetTestPartResult(j); - if (test_part_result.type() == TestPartResult::kSkip) { - const std::string& result = test_part_result.message(); - printf("%s\n", result.c_str()); - } - } - fflush(stdout); - } else if (!Test::HasFatalFailure()) { - for (int test_index = 0; test_index < total_test_suite_count(); - test_index++) { - GetMutableSuiteCase(test_index)->Run(); - } - } - - // Tears down all environments in reverse order afterwards. - repeater->OnEnvironmentsTearDownStart(*parent_); - std::for_each(environments_.rbegin(), environments_.rend(), - TearDownEnvironment); - repeater->OnEnvironmentsTearDownEnd(*parent_); - } - - elapsed_time_ = GetTimeInMillis() - start; - - // Tells the unit test event listener that the tests have just finished. - repeater->OnTestIterationEnd(*parent_, i); - - // Gets the result and clears it. - if (!Passed()) { - failed = true; - } - - // Restores the original test order after the iteration. This - // allows the user to quickly repro a failure that happens in the - // N-th iteration without repeating the first (N - 1) iterations. - // This is not enclosed in "if (GTEST_FLAG(shuffle)) { ... }", in - // case the user somehow changes the value of the flag somewhere - // (it's always safe to unshuffle the tests). - UnshuffleTests(); - - if (GTEST_FLAG(shuffle)) { - // Picks a new random seed for each iteration. - random_seed_ = GetNextRandomSeed(random_seed_); - } - } - - repeater->OnTestProgramEnd(*parent_); - - if (!gtest_is_initialized_before_run_all_tests) { - ColoredPrintf( - COLOR_RED, - "\nIMPORTANT NOTICE - DO NOT IGNORE:\n" - "This test program did NOT call " GTEST_INIT_GOOGLE_TEST_NAME_ - "() before calling RUN_ALL_TESTS(). This is INVALID. Soon " GTEST_NAME_ - " will start to enforce the valid usage. " - "Please fix it ASAP, or IT WILL START TO FAIL.\n"); // NOLINT -#if GTEST_FOR_GOOGLE_ - ColoredPrintf(COLOR_RED, - "For more details, see http://wiki/Main/ValidGUnitMain.\n"); -#endif // GTEST_FOR_GOOGLE_ - } - - return !failed; -} - -// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file -// if the variable is present. If a file already exists at this location, this -// function will write over it. If the variable is present, but the file cannot -// be created, prints an error and exits. -void WriteToShardStatusFileIfNeeded() { - const char* const test_shard_file = posix::GetEnv(kTestShardStatusFile); - if (test_shard_file != nullptr) { - FILE* const file = posix::FOpen(test_shard_file, "w"); - if (file == nullptr) { - ColoredPrintf(COLOR_RED, - "Could not write to the test shard status file \"%s\" " - "specified by the %s environment variable.\n", - test_shard_file, kTestShardStatusFile); - fflush(stdout); - exit(EXIT_FAILURE); - } - fclose(file); - } -} - -// Checks whether sharding is enabled by examining the relevant -// environment variable values. If the variables are present, -// but inconsistent (i.e., shard_index >= total_shards), prints -// an error and exits. If in_subprocess_for_death_test, sharding is -// disabled because it must only be applied to the original test -// process. Otherwise, we could filter out death tests we intended to execute. -bool ShouldShard(const char* total_shards_env, - const char* shard_index_env, - bool in_subprocess_for_death_test) { - if (in_subprocess_for_death_test) { - return false; - } - - const Int32 total_shards = Int32FromEnvOrDie(total_shards_env, -1); - const Int32 shard_index = Int32FromEnvOrDie(shard_index_env, -1); - - if (total_shards == -1 && shard_index == -1) { - return false; - } else if (total_shards == -1 && shard_index != -1) { - const Message msg = Message() - << "Invalid environment variables: you have " - << kTestShardIndex << " = " << shard_index - << ", but have left " << kTestTotalShards << " unset.\n"; - ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } else if (total_shards != -1 && shard_index == -1) { - const Message msg = Message() - << "Invalid environment variables: you have " - << kTestTotalShards << " = " << total_shards - << ", but have left " << kTestShardIndex << " unset.\n"; - ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } else if (shard_index < 0 || shard_index >= total_shards) { - const Message msg = Message() - << "Invalid environment variables: we require 0 <= " - << kTestShardIndex << " < " << kTestTotalShards - << ", but you have " << kTestShardIndex << "=" << shard_index - << ", " << kTestTotalShards << "=" << total_shards << ".\n"; - ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } - - return total_shards > 1; -} - -// Parses the environment variable var as an Int32. If it is unset, -// returns default_val. If it is not an Int32, prints an error -// and aborts. -Int32 Int32FromEnvOrDie(const char* var, Int32 default_val) { - const char* str_val = posix::GetEnv(var); - if (str_val == nullptr) { - return default_val; - } - - Int32 result; - if (!ParseInt32(Message() << "The value of environment variable " << var, - str_val, &result)) { - exit(EXIT_FAILURE); - } - return result; -} - -// Given the total number of shards, the shard index, and the test id, -// returns true iff the test should be run on this shard. The test id is -// some arbitrary but unique non-negative integer assigned to each test -// method. Assumes that 0 <= shard_index < total_shards. -bool ShouldRunTestOnShard(int total_shards, int shard_index, int test_id) { - return (test_id % total_shards) == shard_index; -} - -// Compares the name of each test with the user-specified filter to -// decide whether the test should be run, then records the result in -// each TestSuite and TestInfo object. -// If shard_tests == true, further filters tests based on sharding -// variables in the environment - see -// https://github.com/google/googletest/blob/HEAD/googletest/docs/advanced.md -// . Returns the number of tests that should run. -int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { - const Int32 total_shards = shard_tests == HONOR_SHARDING_PROTOCOL ? - Int32FromEnvOrDie(kTestTotalShards, -1) : -1; - const Int32 shard_index = shard_tests == HONOR_SHARDING_PROTOCOL ? - Int32FromEnvOrDie(kTestShardIndex, -1) : -1; - - // num_runnable_tests are the number of tests that will - // run across all shards (i.e., match filter and are not disabled). - // num_selected_tests are the number of tests to be run on - // this shard. - int num_runnable_tests = 0; - int num_selected_tests = 0; - for (auto* test_suite : test_suites_) { - const std::string& test_suite_name = test_suite->name(); - test_suite->set_should_run(false); - - for (size_t j = 0; j < test_suite->test_info_list().size(); j++) { - TestInfo* const test_info = test_suite->test_info_list()[j]; - const std::string test_name(test_info->name()); - // A test is disabled if test suite name or test name matches - // kDisableTestFilter. - const bool is_disabled = internal::UnitTestOptions::MatchesFilter( - test_suite_name, kDisableTestFilter) || - internal::UnitTestOptions::MatchesFilter( - test_name, kDisableTestFilter); - test_info->is_disabled_ = is_disabled; - - const bool matches_filter = internal::UnitTestOptions::FilterMatchesTest( - test_suite_name, test_name); - test_info->matches_filter_ = matches_filter; - - const bool is_runnable = - (GTEST_FLAG(also_run_disabled_tests) || !is_disabled) && - matches_filter; - - const bool is_in_another_shard = - shard_tests != IGNORE_SHARDING_PROTOCOL && - !ShouldRunTestOnShard(total_shards, shard_index, num_runnable_tests); - test_info->is_in_another_shard_ = is_in_another_shard; - const bool is_selected = is_runnable && !is_in_another_shard; - - num_runnable_tests += is_runnable; - num_selected_tests += is_selected; - - test_info->should_run_ = is_selected; - test_suite->set_should_run(test_suite->should_run() || is_selected); - } - } - return num_selected_tests; -} - -// Prints the given C-string on a single line by replacing all '\n' -// characters with string "\\n". If the output takes more than -// max_length characters, only prints the first max_length characters -// and "...". -static void PrintOnOneLine(const char* str, int max_length) { - if (str != nullptr) { - for (int i = 0; *str != '\0'; ++str) { - if (i >= max_length) { - printf("..."); - break; - } - if (*str == '\n') { - printf("\\n"); - i += 2; - } else { - printf("%c", *str); - ++i; - } - } - } -} - -// Prints the names of the tests matching the user-specified filter flag. -void UnitTestImpl::ListTestsMatchingFilter() { - // Print at most this many characters for each type/value parameter. - const int kMaxParamLength = 250; - - for (auto* test_suite : test_suites_) { - bool printed_test_suite_name = false; - - for (size_t j = 0; j < test_suite->test_info_list().size(); j++) { - const TestInfo* const test_info = test_suite->test_info_list()[j]; - if (test_info->matches_filter_) { - if (!printed_test_suite_name) { - printed_test_suite_name = true; - printf("%s.", test_suite->name()); - if (test_suite->type_param() != nullptr) { - printf(" # %s = ", kTypeParamLabel); - // We print the type parameter on a single line to make - // the output easy to parse by a program. - PrintOnOneLine(test_suite->type_param(), kMaxParamLength); - } - printf("\n"); - } - printf(" %s", test_info->name()); - if (test_info->value_param() != nullptr) { - printf(" # %s = ", kValueParamLabel); - // We print the value parameter on a single line to make the - // output easy to parse by a program. - PrintOnOneLine(test_info->value_param(), kMaxParamLength); - } - printf("\n"); - } - } - } - fflush(stdout); - const std::string& output_format = UnitTestOptions::GetOutputFormat(); - if (output_format == "xml" || output_format == "json") { - FILE* fileout = OpenFileForWriting( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); - std::stringstream stream; - if (output_format == "xml") { - XmlUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()) - .PrintXmlTestsList(&stream, test_suites_); - } else if (output_format == "json") { - JsonUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()) - .PrintJsonTestList(&stream, test_suites_); - } - fprintf(fileout, "%s", StringStreamToString(&stream).c_str()); - fclose(fileout); - } -} - -// Sets the OS stack trace getter. -// -// Does nothing if the input and the current OS stack trace getter are -// the same; otherwise, deletes the old getter and makes the input the -// current getter. -void UnitTestImpl::set_os_stack_trace_getter( - OsStackTraceGetterInterface* getter) { - if (os_stack_trace_getter_ != getter) { - delete os_stack_trace_getter_; - os_stack_trace_getter_ = getter; - } -} - -// Returns the current OS stack trace getter if it is not NULL; -// otherwise, creates an OsStackTraceGetter, makes it the current -// getter, and returns it. -OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() { - if (os_stack_trace_getter_ == nullptr) { -#ifdef GTEST_OS_STACK_TRACE_GETTER_ - os_stack_trace_getter_ = new GTEST_OS_STACK_TRACE_GETTER_; -#else - os_stack_trace_getter_ = new OsStackTraceGetter; -#endif // GTEST_OS_STACK_TRACE_GETTER_ - } - - return os_stack_trace_getter_; -} - -// Returns the most specific TestResult currently running. -TestResult* UnitTestImpl::current_test_result() { - if (current_test_info_ != nullptr) { - return ¤t_test_info_->result_; - } - if (current_test_suite_ != nullptr) { - return ¤t_test_suite_->ad_hoc_test_result_; - } - return &ad_hoc_test_result_; -} - -// Shuffles all test suites, and the tests within each test suite, -// making sure that death tests are still run first. -void UnitTestImpl::ShuffleTests() { - // Shuffles the death test suites. - ShuffleRange(random(), 0, last_death_test_suite_ + 1, &test_suite_indices_); - - // Shuffles the non-death test suites. - ShuffleRange(random(), last_death_test_suite_ + 1, - static_cast(test_suites_.size()), &test_suite_indices_); - - // Shuffles the tests inside each test suite. - for (auto& test_suite : test_suites_) { - test_suite->ShuffleTests(random()); - } -} - -// Restores the test suites and tests to their order before the first shuffle. -void UnitTestImpl::UnshuffleTests() { - for (size_t i = 0; i < test_suites_.size(); i++) { - // Unshuffles the tests in each test suite. - test_suites_[i]->UnshuffleTests(); - // Resets the index of each test suite. - test_suite_indices_[i] = static_cast(i); - } -} - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in -// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, - int skip_count) { - // We pass skip_count + 1 to skip this wrapper function in addition - // to what the user really wants to skip. - return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1); -} - -// Used by the GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_ macro to -// suppress unreachable code warnings. -namespace { -class ClassUniqueToAlwaysTrue {}; -} - -bool IsTrue(bool condition) { return condition; } - -bool AlwaysTrue() { -#if GTEST_HAS_EXCEPTIONS - // This condition is always false so AlwaysTrue() never actually throws, - // but it makes the compiler think that it may throw. - if (IsTrue(false)) - throw ClassUniqueToAlwaysTrue(); -#endif // GTEST_HAS_EXCEPTIONS - return true; -} - -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -bool SkipPrefix(const char* prefix, const char** pstr) { - const size_t prefix_len = strlen(prefix); - if (strncmp(*pstr, prefix, prefix_len) == 0) { - *pstr += prefix_len; - return true; - } - return false; -} - -// Parses a string as a command line flag. The string should have -// the format "--flag=value". When def_optional is true, the "=value" -// part can be omitted. -// -// Returns the value of the flag, or NULL if the parsing failed. -static const char* ParseFlagValue(const char* str, const char* flag, - bool def_optional) { - // str and flag must not be NULL. - if (str == nullptr || flag == nullptr) return nullptr; - - // The flag must start with "--" followed by GTEST_FLAG_PREFIX_. - const std::string flag_str = std::string("--") + GTEST_FLAG_PREFIX_ + flag; - const size_t flag_len = flag_str.length(); - if (strncmp(str, flag_str.c_str(), flag_len) != 0) return nullptr; - - // Skips the flag name. - const char* flag_end = str + flag_len; - - // When def_optional is true, it's OK to not have a "=value" part. - if (def_optional && (flag_end[0] == '\0')) { - return flag_end; - } - - // If def_optional is true and there are more characters after the - // flag name, or if def_optional is false, there must be a '=' after - // the flag name. - if (flag_end[0] != '=') return nullptr; - - // Returns the string after "=". - return flag_end + 1; -} - -// Parses a string for a bool flag, in the form of either -// "--flag=value" or "--flag". -// -// In the former case, the value is taken as true as long as it does -// not start with '0', 'f', or 'F'. -// -// In the latter case, the value is taken as true. -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -static bool ParseBoolFlag(const char* str, const char* flag, bool* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag, true); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Converts the string value to a bool. - *value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F'); - return true; -} - -// Parses a string for an Int32 flag, in the form of -// "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -bool ParseInt32Flag(const char* str, const char* flag, Int32* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag, false); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Sets *value to the value of the flag. - return ParseInt32(Message() << "The value of flag --" << flag, - value_str, value); -} - -// Parses a string for a string flag, in the form of -// "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -template -static bool ParseStringFlag(const char* str, const char* flag, String* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag, false); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Sets *value to the value of the flag. - *value = value_str; - return true; -} - -// Determines whether a string has a prefix that Google Test uses for its -// flags, i.e., starts with GTEST_FLAG_PREFIX_ or GTEST_FLAG_PREFIX_DASH_. -// If Google Test detects that a command line flag has its prefix but is not -// recognized, it will print its help message. Flags starting with -// GTEST_INTERNAL_PREFIX_ followed by "internal_" are considered Google Test -// internal flags and do not trigger the help message. -static bool HasGoogleTestFlagPrefix(const char* str) { - return (SkipPrefix("--", &str) || - SkipPrefix("-", &str) || - SkipPrefix("/", &str)) && - !SkipPrefix(GTEST_FLAG_PREFIX_ "internal_", &str) && - (SkipPrefix(GTEST_FLAG_PREFIX_, &str) || - SkipPrefix(GTEST_FLAG_PREFIX_DASH_, &str)); -} - -// Prints a string containing code-encoded text. The following escape -// sequences can be used in the string to control the text color: -// -// @@ prints a single '@' character. -// @R changes the color to red. -// @G changes the color to green. -// @Y changes the color to yellow. -// @D changes to the default terminal text color. -// -static void PrintColorEncoded(const char* str) { - GTestColor color = COLOR_DEFAULT; // The current color. - - // Conceptually, we split the string into segments divided by escape - // sequences. Then we print one segment at a time. At the end of - // each iteration, the str pointer advances to the beginning of the - // next segment. - for (;;) { - const char* p = strchr(str, '@'); - if (p == nullptr) { - ColoredPrintf(color, "%s", str); - return; - } - - ColoredPrintf(color, "%s", std::string(str, p).c_str()); - - const char ch = p[1]; - str = p + 2; - if (ch == '@') { - ColoredPrintf(color, "@"); - } else if (ch == 'D') { - color = COLOR_DEFAULT; - } else if (ch == 'R') { - color = COLOR_RED; - } else if (ch == 'G') { - color = COLOR_GREEN; - } else if (ch == 'Y') { - color = COLOR_YELLOW; - } else { - --str; - } - } -} - -static const char kColorEncodedHelpMessage[] = -"This program contains tests written using " GTEST_NAME_ ". You can use the\n" -"following command line flags to control its behavior:\n" -"\n" -"Test Selection:\n" -" @G--" GTEST_FLAG_PREFIX_ "list_tests@D\n" -" List the names of all tests instead of running them. The name of\n" -" TEST(Foo, Bar) is \"Foo.Bar\".\n" -" @G--" GTEST_FLAG_PREFIX_ "filter=@YPOSTIVE_PATTERNS" - "[@G-@YNEGATIVE_PATTERNS]@D\n" -" Run only the tests whose name matches one of the positive patterns but\n" -" none of the negative patterns. '?' matches any single character; '*'\n" -" matches any substring; ':' separates two patterns.\n" -" @G--" GTEST_FLAG_PREFIX_ "also_run_disabled_tests@D\n" -" Run all disabled tests too.\n" -"\n" -"Test Execution:\n" -" @G--" GTEST_FLAG_PREFIX_ "repeat=@Y[COUNT]@D\n" -" Run the tests repeatedly; use a negative count to repeat forever.\n" -" @G--" GTEST_FLAG_PREFIX_ "shuffle@D\n" -" Randomize tests' orders on every iteration.\n" -" @G--" GTEST_FLAG_PREFIX_ "random_seed=@Y[NUMBER]@D\n" -" Random number seed to use for shuffling test orders (between 1 and\n" -" 99999, or 0 to use a seed based on the current time).\n" -"\n" -"Test Output:\n" -" @G--" GTEST_FLAG_PREFIX_ "color=@Y(@Gyes@Y|@Gno@Y|@Gauto@Y)@D\n" -" Enable/disable colored output. The default is @Gauto@D.\n" -" -@G-" GTEST_FLAG_PREFIX_ "print_time=0@D\n" -" Don't print the elapsed time of each test.\n" -" @G--" GTEST_FLAG_PREFIX_ "output=@Y(@Gjson@Y|@Gxml@Y)[@G:@YDIRECTORY_PATH@G" - GTEST_PATH_SEP_ "@Y|@G:@YFILE_PATH]@D\n" -" Generate a JSON or XML report in the given directory or with the given\n" -" file name. @YFILE_PATH@D defaults to @Gtest_detail.xml@D.\n" -# if GTEST_CAN_STREAM_RESULTS_ -" @G--" GTEST_FLAG_PREFIX_ "stream_result_to=@YHOST@G:@YPORT@D\n" -" Stream test results to the given server.\n" -# endif // GTEST_CAN_STREAM_RESULTS_ -"\n" -"Assertion Behavior:\n" -# if GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS -" @G--" GTEST_FLAG_PREFIX_ "death_test_style=@Y(@Gfast@Y|@Gthreadsafe@Y)@D\n" -" Set the default death test style.\n" -# endif // GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS -" @G--" GTEST_FLAG_PREFIX_ "break_on_failure@D\n" -" Turn assertion failures into debugger break-points.\n" -" @G--" GTEST_FLAG_PREFIX_ "throw_on_failure@D\n" -" Turn assertion failures into C++ exceptions for use by an external\n" -" test framework.\n" -" @G--" GTEST_FLAG_PREFIX_ "catch_exceptions=0@D\n" -" Do not report exceptions as test failures. Instead, allow them\n" -" to crash the program or throw a pop-up (on Windows).\n" -"\n" -"Except for @G--" GTEST_FLAG_PREFIX_ "list_tests@D, you can alternatively set " - "the corresponding\n" -"environment variable of a flag (all letters in upper-case). For example, to\n" -"disable colored text output, you can either specify @G--" GTEST_FLAG_PREFIX_ - "color=no@D or set\n" -"the @G" GTEST_FLAG_PREFIX_UPPER_ "COLOR@D environment variable to @Gno@D.\n" -"\n" -"For more information, please read the " GTEST_NAME_ " documentation at\n" -"@G" GTEST_PROJECT_URL_ "@D. If you find a bug in " GTEST_NAME_ "\n" -"(not one in your own code or tests), please report it to\n" -"@G<" GTEST_DEV_EMAIL_ ">@D.\n"; - -static bool ParseGoogleTestFlag(const char* const arg) { - return ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag, - >EST_FLAG(also_run_disabled_tests)) || - ParseBoolFlag(arg, kBreakOnFailureFlag, - >EST_FLAG(break_on_failure)) || - ParseBoolFlag(arg, kCatchExceptionsFlag, - >EST_FLAG(catch_exceptions)) || - ParseStringFlag(arg, kColorFlag, >EST_FLAG(color)) || - ParseStringFlag(arg, kDeathTestStyleFlag, - >EST_FLAG(death_test_style)) || - ParseBoolFlag(arg, kDeathTestUseFork, - >EST_FLAG(death_test_use_fork)) || - ParseStringFlag(arg, kFilterFlag, >EST_FLAG(filter)) || - ParseStringFlag(arg, kInternalRunDeathTestFlag, - >EST_FLAG(internal_run_death_test)) || - ParseBoolFlag(arg, kListTestsFlag, >EST_FLAG(list_tests)) || - ParseStringFlag(arg, kOutputFlag, >EST_FLAG(output)) || - ParseBoolFlag(arg, kPrintTimeFlag, >EST_FLAG(print_time)) || - ParseBoolFlag(arg, kPrintUTF8Flag, >EST_FLAG(print_utf8)) || - ParseInt32Flag(arg, kRandomSeedFlag, >EST_FLAG(random_seed)) || - ParseInt32Flag(arg, kRepeatFlag, >EST_FLAG(repeat)) || - ParseBoolFlag(arg, kShuffleFlag, >EST_FLAG(shuffle)) || - ParseInt32Flag(arg, kStackTraceDepthFlag, - >EST_FLAG(stack_trace_depth)) || - ParseStringFlag(arg, kStreamResultToFlag, - >EST_FLAG(stream_result_to)) || - ParseBoolFlag(arg, kThrowOnFailureFlag, - >EST_FLAG(throw_on_failure)); -} - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -static void LoadFlagsFromFile(const std::string& path) { - FILE* flagfile = posix::FOpen(path.c_str(), "r"); - if (!flagfile) { - GTEST_LOG_(FATAL) << "Unable to open file \"" << GTEST_FLAG(flagfile) - << "\""; - } - std::string contents(ReadEntireFile(flagfile)); - posix::FClose(flagfile); - std::vector lines; - SplitString(contents, '\n', &lines); - for (size_t i = 0; i < lines.size(); ++i) { - if (lines[i].empty()) - continue; - if (!ParseGoogleTestFlag(lines[i].c_str())) - g_help_flag = true; - } -} -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. The type parameter CharType can be -// instantiated to either char or wchar_t. -template -void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { - for (int i = 1; i < *argc; i++) { - const std::string arg_string = StreamableToString(argv[i]); - const char* const arg = arg_string.c_str(); - - using internal::ParseBoolFlag; - using internal::ParseInt32Flag; - using internal::ParseStringFlag; - - bool remove_flag = false; - if (ParseGoogleTestFlag(arg)) { - remove_flag = true; -#if GTEST_USE_OWN_FLAGFILE_FLAG_ - } else if (ParseStringFlag(arg, kFlagfileFlag, >EST_FLAG(flagfile))) { - LoadFlagsFromFile(GTEST_FLAG(flagfile)); - remove_flag = true; -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - } else if (arg_string == "--help" || arg_string == "-h" || - arg_string == "-?" || arg_string == "/?" || - HasGoogleTestFlagPrefix(arg)) { - // Both help flag and unrecognized Google Test flags (excluding - // internal ones) trigger help display. - g_help_flag = true; - } - - if (remove_flag) { - // Shift the remainder of the argv list left by one. Note - // that argv has (*argc + 1) elements, the last one always being - // NULL. The following loop moves the trailing NULL element as - // well. - for (int j = i; j != *argc; j++) { - argv[j] = argv[j + 1]; - } - - // Decrements the argument count. - (*argc)--; - - // We also need to decrement the iterator as we just removed - // an element. - i--; - } - } - - if (g_help_flag) { - // We print the help here instead of in RUN_ALL_TESTS(), as the - // latter may not be called at all if the user is using Google - // Test with another testing framework. - PrintColorEncoded(kColorEncodedHelpMessage); - } -} - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. -void ParseGoogleTestFlagsOnly(int* argc, char** argv) { - ParseGoogleTestFlagsOnlyImpl(argc, argv); - - // Fix the value of *_NSGetArgc() on macOS, but iff - // *_NSGetArgv() == argv - // Only applicable to char** version of argv -#if GTEST_OS_MAC -#ifndef GTEST_OS_IOS - if (*_NSGetArgv() == argv) { - *_NSGetArgc() = *argc; - } -#endif -#endif -} -void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) { - ParseGoogleTestFlagsOnlyImpl(argc, argv); -} - -// The internal implementation of InitGoogleTest(). -// -// The type parameter CharType can be instantiated to either char or -// wchar_t. -template -void InitGoogleTestImpl(int* argc, CharType** argv) { - // We don't want to run the initialization code twice. - if (GTestIsInitialized()) return; - - if (*argc <= 0) return; - - g_argvs.clear(); - for (int i = 0; i != *argc; i++) { - g_argvs.push_back(StreamableToString(argv[i])); - } - -#if GTEST_HAS_ABSL - absl::InitializeSymbolizer(g_argvs[0].c_str()); -#endif // GTEST_HAS_ABSL - - ParseGoogleTestFlagsOnly(argc, argv); - GetUnitTestImpl()->PostFlagParsingInit(); -} - -} // namespace internal - -// Initializes Google Test. This must be called before calling -// RUN_ALL_TESTS(). In particular, it parses a command line for the -// flags that Google Test recognizes. Whenever a Google Test flag is -// seen, it is removed from argv, and *argc is decremented. -// -// No value is returned. Instead, the Google Test flag variables are -// updated. -// -// Calling the function for the second time has no user-visible effect. -void InitGoogleTest(int* argc, char** argv) { -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -// This overloaded version can be used in Windows programs compiled in -// UNICODE mode. -void InitGoogleTest(int* argc, wchar_t** argv) { -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -// This overloaded version can be used on Arduino/embedded platforms where -// there is no argc/argv. -void InitGoogleTest() { - // Since Arduino doesn't have a command line, fake out the argc/argv arguments - int argc = 1; - const auto arg0 = "dummy"; - char* argv0 = const_cast(arg0); - char** argv = &argv0; - -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(&argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(&argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -std::string TempDir() { -#if defined(GTEST_CUSTOM_TEMPDIR_FUNCTION_) - return GTEST_CUSTOM_TEMPDIR_FUNCTION_(); -#endif - -#if GTEST_OS_WINDOWS_MOBILE - return "\\temp\\"; -#elif GTEST_OS_WINDOWS - const char* temp_dir = internal::posix::GetEnv("TEMP"); - if (temp_dir == nullptr || temp_dir[0] == '\0') - return "\\temp\\"; - else if (temp_dir[strlen(temp_dir) - 1] == '\\') - return temp_dir; - else - return std::string(temp_dir) + "\\"; -#elif GTEST_OS_LINUX_ANDROID - return "/sdcard/"; -#else - return "/tmp/"; -#endif // GTEST_OS_WINDOWS_MOBILE -} - -// Class ScopedTrace - -// Pushes the given source file location and message onto a per-thread -// trace stack maintained by Google Test. -void ScopedTrace::PushTrace(const char* file, int line, std::string message) { - internal::TraceInfo trace; - trace.file = file; - trace.line = line; - trace.message.swap(message); - - UnitTest::GetInstance()->PushGTestTrace(trace); -} - -// Pops the info pushed by the c'tor. -ScopedTrace::~ScopedTrace() - GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { - UnitTest::GetInstance()->PopGTestTrace(); -} - -} // namespace testing -// Copyright 2005, Google Inc. -// 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. - -// -// This file implements death tests. - - -#include - - -#if GTEST_HAS_DEATH_TEST - -# if GTEST_OS_MAC -# include -# endif // GTEST_OS_MAC - -# include -# include -# include - -# if GTEST_OS_LINUX -# include -# endif // GTEST_OS_LINUX - -# include - -# if GTEST_OS_WINDOWS -# include -# else -# include -# include -# endif // GTEST_OS_WINDOWS - -# if GTEST_OS_QNX -# include -# endif // GTEST_OS_QNX - -# if GTEST_OS_FUCHSIA -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# endif // GTEST_OS_FUCHSIA - -#endif // GTEST_HAS_DEATH_TEST - - -namespace testing { - -// Constants. - -// The default death test style. -// -// This is defined in internal/gtest-port.h as "fast", but can be overridden by -// a definition in internal/custom/gtest-port.h. The recommended value, which is -// used internally at Google, is "threadsafe". -static const char kDefaultDeathTestStyle[] = GTEST_DEFAULT_DEATH_TEST_STYLE; - -GTEST_DEFINE_string_( - death_test_style, - internal::StringFromGTestEnv("death_test_style", kDefaultDeathTestStyle), - "Indicates how to run a death test in a forked child process: " - "\"threadsafe\" (child process re-executes the test binary " - "from the beginning, running only the specific death test) or " - "\"fast\" (child process runs the death test immediately " - "after forking)."); - -GTEST_DEFINE_bool_( - death_test_use_fork, - internal::BoolFromGTestEnv("death_test_use_fork", false), - "Instructs to use fork()/_exit() instead of clone() in death tests. " - "Ignored and always uses fork() on POSIX systems where clone() is not " - "implemented. Useful when running under valgrind or similar tools if " - "those do not support clone(). Valgrind 3.3.1 will just fail if " - "it sees an unsupported combination of clone() flags. " - "It is not recommended to use this flag w/o valgrind though it will " - "work in 99% of the cases. Once valgrind is fixed, this flag will " - "most likely be removed."); - -namespace internal { -GTEST_DEFINE_string_( - internal_run_death_test, "", - "Indicates the file, line number, temporal index of " - "the single death test to run, and a file descriptor to " - "which a success code may be sent, all separated by " - "the '|' characters. This flag is specified if and only if the current " - "process is a sub-process launched for running a thread-safe " - "death test. FOR INTERNAL USE ONLY."); -} // namespace internal - -#if GTEST_HAS_DEATH_TEST - -namespace internal { - -// Valid only for fast death tests. Indicates the code is running in the -// child process of a fast style death test. -# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -static bool g_in_fast_death_test_child = false; -# endif - -// Returns a Boolean value indicating whether the caller is currently -// executing in the context of the death test child process. Tools such as -// Valgrind heap checkers may need this to modify their behavior in death -// tests. IMPORTANT: This is an internal utility. Using it may break the -// implementation of death tests. User code MUST NOT use it. -bool InDeathTestChild() { -# if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - // On Windows and Fuchsia, death tests are thread-safe regardless of the value - // of the death_test_style flag. - return !GTEST_FLAG(internal_run_death_test).empty(); - -# else - - if (GTEST_FLAG(death_test_style) == "threadsafe") - return !GTEST_FLAG(internal_run_death_test).empty(); - else - return g_in_fast_death_test_child; -#endif -} - -} // namespace internal - -// ExitedWithCode constructor. -ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) { -} - -// ExitedWithCode function-call operator. -bool ExitedWithCode::operator()(int exit_status) const { -# if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - return exit_status == exit_code_; - -# else - - return WIFEXITED(exit_status) && WEXITSTATUS(exit_status) == exit_code_; - -# endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA -} - -# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// KilledBySignal constructor. -KilledBySignal::KilledBySignal(int signum) : signum_(signum) { -} - -// KilledBySignal function-call operator. -bool KilledBySignal::operator()(int exit_status) const { -# if defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_) - { - bool result; - if (GTEST_KILLED_BY_SIGNAL_OVERRIDE_(signum_, exit_status, &result)) { - return result; - } - } -# endif // defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_) - return WIFSIGNALED(exit_status) && WTERMSIG(exit_status) == signum_; -} -# endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA - -namespace internal { - -// Utilities needed for death tests. - -// Generates a textual description of a given exit code, in the format -// specified by wait(2). -static std::string ExitSummary(int exit_code) { - Message m; - -# if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - m << "Exited with exit status " << exit_code; - -# else - - if (WIFEXITED(exit_code)) { - m << "Exited with exit status " << WEXITSTATUS(exit_code); - } else if (WIFSIGNALED(exit_code)) { - m << "Terminated by signal " << WTERMSIG(exit_code); - } -# ifdef WCOREDUMP - if (WCOREDUMP(exit_code)) { - m << " (core dumped)"; - } -# endif -# endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - return m.GetString(); -} - -// Returns true if exit_status describes a process that was terminated -// by a signal, or exited normally with a nonzero exit code. -bool ExitedUnsuccessfully(int exit_status) { - return !ExitedWithCode(0)(exit_status); -} - -# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// Generates a textual failure message when a death test finds more than -// one thread running, or cannot determine the number of threads, prior -// to executing the given statement. It is the responsibility of the -// caller not to pass a thread_count of 1. -static std::string DeathTestThreadWarning(size_t thread_count) { - Message msg; - msg << "Death tests use fork(), which is unsafe particularly" - << " in a threaded context. For this test, " << GTEST_NAME_ << " "; - if (thread_count == 0) { - msg << "couldn't detect the number of threads."; - } else { - msg << "detected " << thread_count << " threads."; - } - msg << " See " - "https://github.com/google/googletest/blob/HEAD/googletest/docs/" - "advanced.md#death-tests-and-threads" - << " for more explanation and suggested solutions, especially if" - << " this is the last message you see before your test times out."; - return msg.GetString(); -} -# endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA - -// Flag characters for reporting a death test that did not die. -static const char kDeathTestLived = 'L'; -static const char kDeathTestReturned = 'R'; -static const char kDeathTestThrew = 'T'; -static const char kDeathTestInternalError = 'I'; - -#if GTEST_OS_FUCHSIA - -// File descriptor used for the pipe in the child process. -static const int kFuchsiaReadPipeFd = 3; - -#endif - -// An enumeration describing all of the possible ways that a death test can -// conclude. DIED means that the process died while executing the test -// code; LIVED means that process lived beyond the end of the test code; -// RETURNED means that the test statement attempted to execute a return -// statement, which is not allowed; THREW means that the test statement -// returned control by throwing an exception. IN_PROGRESS means the test -// has not yet concluded. -enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }; - -// Routine for aborting the program which is safe to call from an -// exec-style death test child process, in which case the error -// message is propagated back to the parent process. Otherwise, the -// message is simply printed to stderr. In either case, the program -// then exits with status 1. -static void DeathTestAbort(const std::string& message) { - // On a POSIX system, this function may be called from a threadsafe-style - // death test child process, which operates on a very small stack. Use - // the heap for any additional non-minuscule memory requirements. - const InternalRunDeathTestFlag* const flag = - GetUnitTestImpl()->internal_run_death_test_flag(); - if (flag != nullptr) { - FILE* parent = posix::FDOpen(flag->write_fd(), "w"); - fputc(kDeathTestInternalError, parent); - fprintf(parent, "%s", message.c_str()); - fflush(parent); - _exit(1); - } else { - fprintf(stderr, "%s", message.c_str()); - fflush(stderr); - posix::Abort(); - } -} - -// A replacement for CHECK that calls DeathTestAbort if the assertion -// fails. -# define GTEST_DEATH_TEST_CHECK_(expression) \ - do { \ - if (!::testing::internal::IsTrue(expression)) { \ - DeathTestAbort( \ - ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ - + ::testing::internal::StreamableToString(__LINE__) + ": " \ - + #expression); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -// This macro is similar to GTEST_DEATH_TEST_CHECK_, but it is meant for -// evaluating any system call that fulfills two conditions: it must return -// -1 on failure, and set errno to EINTR when it is interrupted and -// should be tried again. The macro expands to a loop that repeatedly -// evaluates the expression as long as it evaluates to -1 and sets -// errno to EINTR. If the expression evaluates to -1 but errno is -// something other than EINTR, DeathTestAbort is called. -# define GTEST_DEATH_TEST_CHECK_SYSCALL_(expression) \ - do { \ - int gtest_retval; \ - do { \ - gtest_retval = (expression); \ - } while (gtest_retval == -1 && errno == EINTR); \ - if (gtest_retval == -1) { \ - DeathTestAbort( \ - ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ - + ::testing::internal::StreamableToString(__LINE__) + ": " \ - + #expression + " != -1"); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -// Returns the message describing the last system error in errno. -std::string GetLastErrnoDescription() { - return errno == 0 ? "" : posix::StrError(errno); -} - -// This is called from a death test parent process to read a failure -// message from the death test child process and log it with the FATAL -// severity. On Windows, the message is read from a pipe handle. On other -// platforms, it is read from a file descriptor. -static void FailFromInternalError(int fd) { - Message error; - char buffer[256]; - int num_read; - - do { - while ((num_read = posix::Read(fd, buffer, 255)) > 0) { - buffer[num_read] = '\0'; - error << buffer; - } - } while (num_read == -1 && errno == EINTR); - - if (num_read == 0) { - GTEST_LOG_(FATAL) << error.GetString(); - } else { - const int last_error = errno; - GTEST_LOG_(FATAL) << "Error while reading death test internal: " - << GetLastErrnoDescription() << " [" << last_error << "]"; - } -} - -// Death test constructor. Increments the running death test count -// for the current test. -DeathTest::DeathTest() { - TestInfo* const info = GetUnitTestImpl()->current_test_info(); - if (info == nullptr) { - DeathTestAbort("Cannot run a death test outside of a TEST or " - "TEST_F construct"); - } -} - -// Creates and returns a death test by dispatching to the current -// death test factory. -bool DeathTest::Create(const char* statement, - Matcher matcher, const char* file, - int line, DeathTest** test) { - return GetUnitTestImpl()->death_test_factory()->Create( - statement, std::move(matcher), file, line, test); -} - -const char* DeathTest::LastMessage() { - return last_death_test_message_.c_str(); -} - -void DeathTest::set_last_death_test_message(const std::string& message) { - last_death_test_message_ = message; -} - -std::string DeathTest::last_death_test_message_; - -// Provides cross platform implementation for some death functionality. -class DeathTestImpl : public DeathTest { - protected: - DeathTestImpl(const char* a_statement, Matcher matcher) - : statement_(a_statement), - matcher_(std::move(matcher)), - spawned_(false), - status_(-1), - outcome_(IN_PROGRESS), - read_fd_(-1), - write_fd_(-1) {} - - // read_fd_ is expected to be closed and cleared by a derived class. - ~DeathTestImpl() override { GTEST_DEATH_TEST_CHECK_(read_fd_ == -1); } - - void Abort(AbortReason reason) override; - bool Passed(bool status_ok) override; - - const char* statement() const { return statement_; } - bool spawned() const { return spawned_; } - void set_spawned(bool is_spawned) { spawned_ = is_spawned; } - int status() const { return status_; } - void set_status(int a_status) { status_ = a_status; } - DeathTestOutcome outcome() const { return outcome_; } - void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outcome; } - int read_fd() const { return read_fd_; } - void set_read_fd(int fd) { read_fd_ = fd; } - int write_fd() const { return write_fd_; } - void set_write_fd(int fd) { write_fd_ = fd; } - - // Called in the parent process only. Reads the result code of the death - // test child process via a pipe, interprets it to set the outcome_ - // member, and closes read_fd_. Outputs diagnostics and terminates in - // case of unexpected codes. - void ReadAndInterpretStatusByte(); - - // Returns stderr output from the child process. - virtual std::string GetErrorLogs(); - - private: - // The textual content of the code this object is testing. This class - // doesn't own this string and should not attempt to delete it. - const char* const statement_; - // A matcher that's expected to match the stderr output by the child process. - Matcher matcher_; - // True if the death test child process has been successfully spawned. - bool spawned_; - // The exit status of the child process. - int status_; - // How the death test concluded. - DeathTestOutcome outcome_; - // Descriptor to the read end of the pipe to the child process. It is - // always -1 in the child process. The child keeps its write end of the - // pipe in write_fd_. - int read_fd_; - // Descriptor to the child's write end of the pipe to the parent process. - // It is always -1 in the parent process. The parent keeps its end of the - // pipe in read_fd_. - int write_fd_; -}; - -// Called in the parent process only. Reads the result code of the death -// test child process via a pipe, interprets it to set the outcome_ -// member, and closes read_fd_. Outputs diagnostics and terminates in -// case of unexpected codes. -void DeathTestImpl::ReadAndInterpretStatusByte() { - char flag; - int bytes_read; - - // The read() here blocks until data is available (signifying the - // failure of the death test) or until the pipe is closed (signifying - // its success), so it's okay to call this in the parent before - // the child process has exited. - do { - bytes_read = posix::Read(read_fd(), &flag, 1); - } while (bytes_read == -1 && errno == EINTR); - - if (bytes_read == 0) { - set_outcome(DIED); - } else if (bytes_read == 1) { - switch (flag) { - case kDeathTestReturned: - set_outcome(RETURNED); - break; - case kDeathTestThrew: - set_outcome(THREW); - break; - case kDeathTestLived: - set_outcome(LIVED); - break; - case kDeathTestInternalError: - FailFromInternalError(read_fd()); // Does not return. - break; - default: - GTEST_LOG_(FATAL) << "Death test child process reported " - << "unexpected status byte (" - << static_cast(flag) << ")"; - } - } else { - GTEST_LOG_(FATAL) << "Read from death test child process failed: " - << GetLastErrnoDescription(); - } - GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Close(read_fd())); - set_read_fd(-1); -} - -std::string DeathTestImpl::GetErrorLogs() { - return GetCapturedStderr(); -} - -// Signals that the death test code which should have exited, didn't. -// Should be called only in a death test child process. -// Writes a status byte to the child's status file descriptor, then -// calls _exit(1). -void DeathTestImpl::Abort(AbortReason reason) { - // The parent process considers the death test to be a failure if - // it finds any data in our pipe. So, here we write a single flag byte - // to the pipe, then exit. - const char status_ch = - reason == TEST_DID_NOT_DIE ? kDeathTestLived : - reason == TEST_THREW_EXCEPTION ? kDeathTestThrew : kDeathTestReturned; - - GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Write(write_fd(), &status_ch, 1)); - // We are leaking the descriptor here because on some platforms (i.e., - // when built as Windows DLL), destructors of global objects will still - // run after calling _exit(). On such systems, write_fd_ will be - // indirectly closed from the destructor of UnitTestImpl, causing double - // close if it is also closed here. On debug configurations, double close - // may assert. As there are no in-process buffers to flush here, we are - // relying on the OS to close the descriptor after the process terminates - // when the destructors are not run. - _exit(1); // Exits w/o any normal exit hooks (we were supposed to crash) -} - -// Returns an indented copy of stderr output for a death test. -// This makes distinguishing death test output lines from regular log lines -// much easier. -static ::std::string FormatDeathTestOutput(const ::std::string& output) { - ::std::string ret; - for (size_t at = 0; ; ) { - const size_t line_end = output.find('\n', at); - ret += "[ DEATH ] "; - if (line_end == ::std::string::npos) { - ret += output.substr(at); - break; - } - ret += output.substr(at, line_end + 1 - at); - at = line_end + 1; - } - return ret; -} - -// Assesses the success or failure of a death test, using both private -// members which have previously been set, and one argument: -// -// Private data members: -// outcome: An enumeration describing how the death test -// concluded: DIED, LIVED, THREW, or RETURNED. The death test -// fails in the latter three cases. -// status: The exit status of the child process. On *nix, it is in the -// in the format specified by wait(2). On Windows, this is the -// value supplied to the ExitProcess() API or a numeric code -// of the exception that terminated the program. -// matcher_: A matcher that's expected to match the stderr output by the child -// process. -// -// Argument: -// status_ok: true if exit_status is acceptable in the context of -// this particular death test, which fails if it is false -// -// Returns true iff all of the above conditions are met. Otherwise, the -// first failing condition, in the order given above, is the one that is -// reported. Also sets the last death test message string. -bool DeathTestImpl::Passed(bool status_ok) { - if (!spawned()) - return false; - - const std::string error_message = GetErrorLogs(); - - bool success = false; - Message buffer; - - buffer << "Death test: " << statement() << "\n"; - switch (outcome()) { - case LIVED: - buffer << " Result: failed to die.\n" - << " Error msg:\n" << FormatDeathTestOutput(error_message); - break; - case THREW: - buffer << " Result: threw an exception.\n" - << " Error msg:\n" << FormatDeathTestOutput(error_message); - break; - case RETURNED: - buffer << " Result: illegal return in test statement.\n" - << " Error msg:\n" << FormatDeathTestOutput(error_message); - break; - case DIED: - if (status_ok) { - if (matcher_.Matches(error_message)) { - success = true; - } else { - std::ostringstream stream; - matcher_.DescribeTo(&stream); - buffer << " Result: died but not with expected error.\n" - << " Expected: " << stream.str() << "\n" - << "Actual msg:\n" - << FormatDeathTestOutput(error_message); - } - } else { - buffer << " Result: died but not with expected exit code:\n" - << " " << ExitSummary(status()) << "\n" - << "Actual msg:\n" << FormatDeathTestOutput(error_message); - } - break; - case IN_PROGRESS: - default: - GTEST_LOG_(FATAL) - << "DeathTest::Passed somehow called before conclusion of test"; - } - - DeathTest::set_last_death_test_message(buffer.GetString()); - return success; -} - -# if GTEST_OS_WINDOWS -// WindowsDeathTest implements death tests on Windows. Due to the -// specifics of starting new processes on Windows, death tests there are -// always threadsafe, and Google Test considers the -// --gtest_death_test_style=fast setting to be equivalent to -// --gtest_death_test_style=threadsafe there. -// -// A few implementation notes: Like the Linux version, the Windows -// implementation uses pipes for child-to-parent communication. But due to -// the specifics of pipes on Windows, some extra steps are required: -// -// 1. The parent creates a communication pipe and stores handles to both -// ends of it. -// 2. The parent starts the child and provides it with the information -// necessary to acquire the handle to the write end of the pipe. -// 3. The child acquires the write end of the pipe and signals the parent -// using a Windows event. -// 4. Now the parent can release the write end of the pipe on its side. If -// this is done before step 3, the object's reference count goes down to -// 0 and it is destroyed, preventing the child from acquiring it. The -// parent now has to release it, or read operations on the read end of -// the pipe will not return when the child terminates. -// 5. The parent reads child's output through the pipe (outcome code and -// any possible error messages) from the pipe, and its stderr and then -// determines whether to fail the test. -// -// Note: to distinguish Win32 API calls from the local method and function -// calls, the former are explicitly resolved in the global namespace. -// -class WindowsDeathTest : public DeathTestImpl { - public: - WindowsDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : DeathTestImpl(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - - // All of these virtual functions are inherited from DeathTest. - virtual int Wait(); - virtual TestRole AssumeRole(); - - private: - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; - // Handle to the write end of the pipe to the child process. - AutoHandle write_handle_; - // Child process handle. - AutoHandle child_handle_; - // Event the child process uses to signal the parent that it has - // acquired the handle to the write end of the pipe. After seeing this - // event the parent can release its own handles to make sure its - // ReadFile() calls return when the child terminates. - AutoHandle event_handle_; -}; - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int WindowsDeathTest::Wait() { - if (!spawned()) - return 0; - - // Wait until the child either signals that it has acquired the write end - // of the pipe or it dies. - const HANDLE wait_handles[2] = { child_handle_.Get(), event_handle_.Get() }; - switch (::WaitForMultipleObjects(2, - wait_handles, - FALSE, // Waits for any of the handles. - INFINITE)) { - case WAIT_OBJECT_0: - case WAIT_OBJECT_0 + 1: - break; - default: - GTEST_DEATH_TEST_CHECK_(false); // Should not get here. - } - - // The child has acquired the write end of the pipe or exited. - // We release the handle on our side and continue. - write_handle_.Reset(); - event_handle_.Reset(); - - ReadAndInterpretStatusByte(); - - // Waits for the child process to exit if it haven't already. This - // returns immediately if the child has already exited, regardless of - // whether previous calls to WaitForMultipleObjects synchronized on this - // handle or not. - GTEST_DEATH_TEST_CHECK_( - WAIT_OBJECT_0 == ::WaitForSingleObject(child_handle_.Get(), - INFINITE)); - DWORD status_code; - GTEST_DEATH_TEST_CHECK_( - ::GetExitCodeProcess(child_handle_.Get(), &status_code) != FALSE); - child_handle_.Reset(); - set_status(static_cast(status_code)); - return status(); -} - -// The AssumeRole process for a Windows death test. It creates a child -// process with the same executable as the current process to run the -// death test. The child process is given the --gtest_filter and -// --gtest_internal_run_death_test flags such that it knows to run the -// current death test only. -DeathTest::TestRole WindowsDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - // ParseInternalRunDeathTestFlag() has performed all the necessary - // processing. - set_write_fd(flag->write_fd()); - return EXECUTE_TEST; - } - - // WindowsDeathTest uses an anonymous pipe to communicate results of - // a death test. - SECURITY_ATTRIBUTES handles_are_inheritable = {sizeof(SECURITY_ATTRIBUTES), - nullptr, TRUE}; - HANDLE read_handle, write_handle; - GTEST_DEATH_TEST_CHECK_( - ::CreatePipe(&read_handle, &write_handle, &handles_are_inheritable, - 0) // Default buffer size. - != FALSE); - set_read_fd(::_open_osfhandle(reinterpret_cast(read_handle), - O_RDONLY)); - write_handle_.Reset(write_handle); - event_handle_.Reset(::CreateEvent( - &handles_are_inheritable, - TRUE, // The event will automatically reset to non-signaled state. - FALSE, // The initial state is non-signalled. - nullptr)); // The even is unnamed. - GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != nullptr); - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - kFilterFlag + "=" + info->test_suite_name() + - "." + info->name(); - const std::string internal_flag = - std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + - "=" + file_ + "|" + StreamableToString(line_) + "|" + - StreamableToString(death_test_index) + "|" + - StreamableToString(static_cast(::GetCurrentProcessId())) + - // size_t has the same width as pointers on both 32-bit and 64-bit - // Windows platforms. - // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx. - "|" + StreamableToString(reinterpret_cast(write_handle)) + - "|" + StreamableToString(reinterpret_cast(event_handle_.Get())); - - char executable_path[_MAX_PATH + 1]; // NOLINT - GTEST_DEATH_TEST_CHECK_(_MAX_PATH + 1 != ::GetModuleFileNameA(nullptr, - executable_path, - _MAX_PATH)); - - std::string command_line = - std::string(::GetCommandLineA()) + " " + filter_flag + " \"" + - internal_flag + "\""; - - DeathTest::set_last_death_test_message(""); - - CaptureStderr(); - // Flush the log buffers since the log streams are shared with the child. - FlushInfoLog(); - - // The child process will share the standard handles with the parent. - STARTUPINFOA startup_info; - memset(&startup_info, 0, sizeof(STARTUPINFO)); - startup_info.dwFlags = STARTF_USESTDHANDLES; - startup_info.hStdInput = ::GetStdHandle(STD_INPUT_HANDLE); - startup_info.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE); - startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE); - - PROCESS_INFORMATION process_info; - GTEST_DEATH_TEST_CHECK_( - ::CreateProcessA( - executable_path, const_cast(command_line.c_str()), - nullptr, // Retuned process handle is not inheritable. - nullptr, // Retuned thread handle is not inheritable. - TRUE, // Child inherits all inheritable handles (for write_handle_). - 0x0, // Default creation flags. - nullptr, // Inherit the parent's environment. - UnitTest::GetInstance()->original_working_dir(), &startup_info, - &process_info) != FALSE); - child_handle_.Reset(process_info.hProcess); - ::CloseHandle(process_info.hThread); - set_spawned(true); - return OVERSEE_TEST; -} - -# elif GTEST_OS_FUCHSIA - -class FuchsiaDeathTest : public DeathTestImpl { - public: - FuchsiaDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : DeathTestImpl(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - - // All of these virtual functions are inherited from DeathTest. - int Wait() override; - TestRole AssumeRole() override; - std::string GetErrorLogs() override; - - private: - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; - // The stderr data captured by the child process. - std::string captured_stderr_; - - zx::process child_process_; - zx::port port_; - zx::socket stderr_socket_; -}; - -// Utility class for accumulating command-line arguments. -class Arguments { - public: - Arguments() { args_.push_back(nullptr); } - - ~Arguments() { - for (std::vector::iterator i = args_.begin(); i != args_.end(); - ++i) { - free(*i); - } - } - void AddArgument(const char* argument) { - args_.insert(args_.end() - 1, posix::StrDup(argument)); - } - - template - void AddArguments(const ::std::vector& arguments) { - for (typename ::std::vector::const_iterator i = arguments.begin(); - i != arguments.end(); - ++i) { - args_.insert(args_.end() - 1, posix::StrDup(i->c_str())); - } - } - char* const* Argv() { - return &args_[0]; - } - - int size() { - return args_.size() - 1; - } - - private: - std::vector args_; -}; - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int FuchsiaDeathTest::Wait() { - const int kProcessKey = 0; - const int kSocketKey = 1; - - if (!spawned()) - return 0; - - // Register to wait for the child process to terminate. - zx_status_t status_zx; - status_zx = child_process_.wait_async( - port_, kProcessKey, ZX_PROCESS_TERMINATED, ZX_WAIT_ASYNC_ONCE); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - // Register to wait for the socket to be readable or closed. - status_zx = stderr_socket_.wait_async( - port_, kSocketKey, ZX_SOCKET_READABLE | ZX_SOCKET_PEER_CLOSED, - ZX_WAIT_ASYNC_REPEATING); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - bool process_terminated = false; - bool socket_closed = false; - do { - zx_port_packet_t packet = {}; - status_zx = port_.wait(zx::time::infinite(), &packet); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - if (packet.key == kProcessKey) { - if (ZX_PKT_IS_EXCEPTION(packet.type)) { - // Process encountered an exception. Kill it directly rather than - // letting other handlers process the event. We will get a second - // kProcessKey event when the process actually terminates. - status_zx = child_process_.kill(); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - } else { - // Process terminated. - GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_ONE(packet.type)); - GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_PROCESS_TERMINATED); - process_terminated = true; - } - } else if (packet.key == kSocketKey) { - GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_REP(packet.type)); - if (packet.signal.observed & ZX_SOCKET_READABLE) { - // Read data from the socket. - constexpr size_t kBufferSize = 1024; - do { - size_t old_length = captured_stderr_.length(); - size_t bytes_read = 0; - captured_stderr_.resize(old_length + kBufferSize); - status_zx = stderr_socket_.read( - 0, &captured_stderr_.front() + old_length, kBufferSize, - &bytes_read); - captured_stderr_.resize(old_length + bytes_read); - } while (status_zx == ZX_OK); - if (status_zx == ZX_ERR_PEER_CLOSED) { - socket_closed = true; - } else { - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_ERR_SHOULD_WAIT); - } - } else { - GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_SOCKET_PEER_CLOSED); - socket_closed = true; - } - } - } while (!process_terminated && !socket_closed); - - ReadAndInterpretStatusByte(); - - zx_info_process_t buffer; - status_zx = child_process_.get_info( - ZX_INFO_PROCESS, &buffer, sizeof(buffer), nullptr, nullptr); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - GTEST_DEATH_TEST_CHECK_(buffer.exited); - set_status(buffer.return_code); - return status(); -} - -// The AssumeRole process for a Fuchsia death test. It creates a child -// process with the same executable as the current process to run the -// death test. The child process is given the --gtest_filter and -// --gtest_internal_run_death_test flags such that it knows to run the -// current death test only. -DeathTest::TestRole FuchsiaDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - // ParseInternalRunDeathTestFlag() has performed all the necessary - // processing. - set_write_fd(kFuchsiaReadPipeFd); - return EXECUTE_TEST; - } - - // Flush the log buffers since the log streams are shared with the child. - FlushInfoLog(); - - // Build the child process command line. - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - kFilterFlag + "=" + info->test_suite_name() + - "." + info->name(); - const std::string internal_flag = - std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "=" - + file_ + "|" - + StreamableToString(line_) + "|" - + StreamableToString(death_test_index); - Arguments args; - args.AddArguments(GetInjectableArgvs()); - args.AddArgument(filter_flag.c_str()); - args.AddArgument(internal_flag.c_str()); - - // Build the pipe for communication with the child. - zx_status_t status; - zx_handle_t child_pipe_handle; - int child_pipe_fd; - status = fdio_pipe_half2(&child_pipe_fd, &child_pipe_handle); - GTEST_DEATH_TEST_CHECK_(status != ZX_OK); - set_read_fd(child_pipe_fd); - - // Set the pipe handle for the child. - fdio_spawn_action_t spawn_actions[2] = {}; - fdio_spawn_action_t* add_handle_action = &spawn_actions[0]; - add_handle_action->action = FDIO_SPAWN_ACTION_ADD_HANDLE; - add_handle_action->h.id = PA_HND(PA_FD, kFuchsiaReadPipeFd); - add_handle_action->h.handle = child_pipe_handle; - - // Create a socket pair will be used to receive the child process' stderr. - zx::socket stderr_producer_socket; - status = - zx::socket::create(0, &stderr_producer_socket, &stderr_socket_); - GTEST_DEATH_TEST_CHECK_(status >= 0); - int stderr_producer_fd = -1; - status = - fdio_fd_create(stderr_producer_socket.release(), &stderr_producer_fd); - GTEST_DEATH_TEST_CHECK_(status >= 0); - - // Make the stderr socket nonblocking. - GTEST_DEATH_TEST_CHECK_(fcntl(stderr_producer_fd, F_SETFL, 0) == 0); - - fdio_spawn_action_t* add_stderr_action = &spawn_actions[1]; - add_stderr_action->action = FDIO_SPAWN_ACTION_CLONE_FD; - add_stderr_action->fd.local_fd = stderr_producer_fd; - add_stderr_action->fd.target_fd = STDERR_FILENO; - - // Create a child job. - zx_handle_t child_job = ZX_HANDLE_INVALID; - status = zx_job_create(zx_job_default(), 0, & child_job); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - zx_policy_basic_t policy; - policy.condition = ZX_POL_NEW_ANY; - policy.policy = ZX_POL_ACTION_ALLOW; - status = zx_job_set_policy( - child_job, ZX_JOB_POL_RELATIVE, ZX_JOB_POL_BASIC, &policy, 1); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - // Create an exception port and attach it to the |child_job|, to allow - // us to suppress the system default exception handler from firing. - status = zx::port::create(0, &port_); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - status = zx_task_bind_exception_port( - child_job, port_.get(), 0 /* key */, 0 /*options */); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - // Spawn the child process. - status = fdio_spawn_etc( - child_job, FDIO_SPAWN_CLONE_ALL, args.Argv()[0], args.Argv(), nullptr, - 2, spawn_actions, child_process_.reset_and_get_address(), nullptr); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - set_spawned(true); - return OVERSEE_TEST; -} - -std::string FuchsiaDeathTest::GetErrorLogs() { - return captured_stderr_; -} - -#else // We are neither on Windows, nor on Fuchsia. - -// ForkingDeathTest provides implementations for most of the abstract -// methods of the DeathTest interface. Only the AssumeRole method is -// left undefined. -class ForkingDeathTest : public DeathTestImpl { - public: - ForkingDeathTest(const char* statement, Matcher matcher); - - // All of these virtual functions are inherited from DeathTest. - int Wait() override; - - protected: - void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; } - - private: - // PID of child process during death test; 0 in the child process itself. - pid_t child_pid_; -}; - -// Constructs a ForkingDeathTest. -ForkingDeathTest::ForkingDeathTest(const char* a_statement, - Matcher matcher) - : DeathTestImpl(a_statement, std::move(matcher)), child_pid_(-1) {} - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int ForkingDeathTest::Wait() { - if (!spawned()) - return 0; - - ReadAndInterpretStatusByte(); - - int status_value; - GTEST_DEATH_TEST_CHECK_SYSCALL_(waitpid(child_pid_, &status_value, 0)); - set_status(status_value); - return status_value; -} - -// A concrete death test class that forks, then immediately runs the test -// in the child process. -class NoExecDeathTest : public ForkingDeathTest { - public: - NoExecDeathTest(const char* a_statement, Matcher matcher) - : ForkingDeathTest(a_statement, std::move(matcher)) {} - TestRole AssumeRole() override; -}; - -// The AssumeRole process for a fork-and-run death test. It implements a -// straightforward fork, with a simple pipe to transmit the status byte. -DeathTest::TestRole NoExecDeathTest::AssumeRole() { - const size_t thread_count = GetThreadCount(); - if (thread_count != 1) { - GTEST_LOG_(WARNING) << DeathTestThreadWarning(thread_count); - } - - int pipe_fd[2]; - GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1); - - DeathTest::set_last_death_test_message(""); - CaptureStderr(); - // When we fork the process below, the log file buffers are copied, but the - // file descriptors are shared. We flush all log files here so that closing - // the file descriptors in the child process doesn't throw off the - // synchronization between descriptors and buffers in the parent process. - // This is as close to the fork as possible to avoid a race condition in case - // there are multiple threads running before the death test, and another - // thread writes to the log file. - FlushInfoLog(); - - const pid_t child_pid = fork(); - GTEST_DEATH_TEST_CHECK_(child_pid != -1); - set_child_pid(child_pid); - if (child_pid == 0) { - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[0])); - set_write_fd(pipe_fd[1]); - // Redirects all logging to stderr in the child process to prevent - // concurrent writes to the log files. We capture stderr in the parent - // process and append the child process' output to a log. - LogToStderr(); - // Event forwarding to the listeners of event listener API mush be shut - // down in death test subprocesses. - GetUnitTestImpl()->listeners()->SuppressEventForwarding(); - g_in_fast_death_test_child = true; - return EXECUTE_TEST; - } else { - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); - set_read_fd(pipe_fd[0]); - set_spawned(true); - return OVERSEE_TEST; - } -} - -// A concrete death test class that forks and re-executes the main -// program from the beginning, with command-line flags set that cause -// only this specific death test to be run. -class ExecDeathTest : public ForkingDeathTest { - public: - ExecDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : ForkingDeathTest(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - TestRole AssumeRole() override; - - private: - static ::std::vector GetArgvsForDeathTestChildProcess() { - ::std::vector args = GetInjectableArgvs(); -# if defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_) - ::std::vector extra_args = - GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_(); - args.insert(args.end(), extra_args.begin(), extra_args.end()); -# endif // defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_) - return args; - } - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; -}; - -// Utility class for accumulating command-line arguments. -class Arguments { - public: - Arguments() { args_.push_back(nullptr); } - - ~Arguments() { - for (std::vector::iterator i = args_.begin(); i != args_.end(); - ++i) { - free(*i); - } - } - void AddArgument(const char* argument) { - args_.insert(args_.end() - 1, posix::StrDup(argument)); - } - - template - void AddArguments(const ::std::vector& arguments) { - for (typename ::std::vector::const_iterator i = arguments.begin(); - i != arguments.end(); - ++i) { - args_.insert(args_.end() - 1, posix::StrDup(i->c_str())); - } - } - char* const* Argv() { - return &args_[0]; - } - - private: - std::vector args_; -}; - -// A struct that encompasses the arguments to the child process of a -// threadsafe-style death test process. -struct ExecDeathTestArgs { - char* const* argv; // Command-line arguments for the child's call to exec - int close_fd; // File descriptor to close; the read end of a pipe -}; - -# if GTEST_OS_MAC -inline char** GetEnviron() { - // When Google Test is built as a framework on MacOS X, the environ variable - // is unavailable. Apple's documentation (man environ) recommends using - // _NSGetEnviron() instead. - return *_NSGetEnviron(); -} -# else -// Some POSIX platforms expect you to declare environ. extern "C" makes -// it reside in the global namespace. -extern "C" char** environ; -inline char** GetEnviron() { return environ; } -# endif // GTEST_OS_MAC - -# if !GTEST_OS_QNX -// The main function for a threadsafe-style death test child process. -// This function is called in a clone()-ed process and thus must avoid -// any potentially unsafe operations like malloc or libc functions. -static int ExecDeathTestChildMain(void* child_arg) { - ExecDeathTestArgs* const args = static_cast(child_arg); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(args->close_fd)); - - // We need to execute the test program in the same environment where - // it was originally invoked. Therefore we change to the original - // working directory first. - const char* const original_dir = - UnitTest::GetInstance()->original_working_dir(); - // We can safely call chdir() as it's a direct system call. - if (chdir(original_dir) != 0) { - DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + - GetLastErrnoDescription()); - return EXIT_FAILURE; - } - - // We can safely call execve() as it's a direct system call. We - // cannot use execvp() as it's a libc function and thus potentially - // unsafe. Since execve() doesn't search the PATH, the user must - // invoke the test program via a valid path that contains at least - // one path separator. - execve(args->argv[0], args->argv, GetEnviron()); - DeathTestAbort(std::string("execve(") + args->argv[0] + ", ...) in " + - original_dir + " failed: " + - GetLastErrnoDescription()); - return EXIT_FAILURE; -} -# endif // !GTEST_OS_QNX - -# if GTEST_HAS_CLONE -// Two utility routines that together determine the direction the stack -// grows. -// This could be accomplished more elegantly by a single recursive -// function, but we want to guard against the unlikely possibility of -// a smart compiler optimizing the recursion away. -// -// GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining -// StackLowerThanAddress into StackGrowsDown, which then doesn't give -// correct answer. -static void StackLowerThanAddress(const void* ptr, - bool* result) GTEST_NO_INLINE_; -// HWAddressSanitizer add a random tag to the MSB of the local variable address, -// making comparison result unpredictable. -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -static void StackLowerThanAddress(const void* ptr, bool* result) { - int dummy; - *result = (&dummy < ptr); -} - -// Make sure AddressSanitizer does not tamper with the stack here. -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -static bool StackGrowsDown() { - int dummy; - bool result; - StackLowerThanAddress(&dummy, &result); - return result; -} -# endif // GTEST_HAS_CLONE - -// Spawns a child process with the same executable as the current process in -// a thread-safe manner and instructs it to run the death test. The -// implementation uses fork(2) + exec. On systems where clone(2) is -// available, it is used instead, being slightly more thread-safe. On QNX, -// fork supports only single-threaded environments, so this function uses -// spawn(2) there instead. The function dies with an error message if -// anything goes wrong. -static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) { - ExecDeathTestArgs args = { argv, close_fd }; - pid_t child_pid = -1; - -# if GTEST_OS_QNX - // Obtains the current directory and sets it to be closed in the child - // process. - const int cwd_fd = open(".", O_RDONLY); - GTEST_DEATH_TEST_CHECK_(cwd_fd != -1); - GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC)); - // We need to execute the test program in the same environment where - // it was originally invoked. Therefore we change to the original - // working directory first. - const char* const original_dir = - UnitTest::GetInstance()->original_working_dir(); - // We can safely call chdir() as it's a direct system call. - if (chdir(original_dir) != 0) { - DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + - GetLastErrnoDescription()); - return EXIT_FAILURE; - } - - int fd_flags; - // Set close_fd to be closed after spawn. - GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD)); - GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(close_fd, F_SETFD, - fd_flags | FD_CLOEXEC)); - struct inheritance inherit = {0}; - // spawn is a system call. - child_pid = - spawn(args.argv[0], 0, nullptr, &inherit, args.argv, GetEnviron()); - // Restores the current working directory. - GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd)); - -# else // GTEST_OS_QNX -# if GTEST_OS_LINUX - // When a SIGPROF signal is received while fork() or clone() are executing, - // the process may hang. To avoid this, we ignore SIGPROF here and re-enable - // it after the call to fork()/clone() is complete. - struct sigaction saved_sigprof_action; - struct sigaction ignore_sigprof_action; - memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action)); - sigemptyset(&ignore_sigprof_action.sa_mask); - ignore_sigprof_action.sa_handler = SIG_IGN; - GTEST_DEATH_TEST_CHECK_SYSCALL_(sigaction( - SIGPROF, &ignore_sigprof_action, &saved_sigprof_action)); -# endif // GTEST_OS_LINUX - -# if GTEST_HAS_CLONE - const bool use_fork = GTEST_FLAG(death_test_use_fork); - - if (!use_fork) { - static const bool stack_grows_down = StackGrowsDown(); - const size_t stack_size = getpagesize(); - // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead. - void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE, - MAP_ANON | MAP_PRIVATE, -1, 0); - GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED); - - // Maximum stack alignment in bytes: For a downward-growing stack, this - // amount is subtracted from size of the stack space to get an address - // that is within the stack space and is aligned on all systems we care - // about. As far as I know there is no ABI with stack alignment greater - // than 64. We assume stack and stack_size already have alignment of - // kMaxStackAlignment. - const size_t kMaxStackAlignment = 64; - void* const stack_top = - static_cast(stack) + - (stack_grows_down ? stack_size - kMaxStackAlignment : 0); - GTEST_DEATH_TEST_CHECK_(stack_size > kMaxStackAlignment && - reinterpret_cast(stack_top) % kMaxStackAlignment == 0); - - child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args); - - GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1); - } -# else - const bool use_fork = true; -# endif // GTEST_HAS_CLONE - - if (use_fork && (child_pid = fork()) == 0) { - ExecDeathTestChildMain(&args); - _exit(0); - } -# endif // GTEST_OS_QNX -# if GTEST_OS_LINUX - GTEST_DEATH_TEST_CHECK_SYSCALL_( - sigaction(SIGPROF, &saved_sigprof_action, nullptr)); -# endif // GTEST_OS_LINUX - - GTEST_DEATH_TEST_CHECK_(child_pid != -1); - return child_pid; -} - -// The AssumeRole process for a fork-and-exec death test. It re-executes the -// main program from the beginning, setting the --gtest_filter -// and --gtest_internal_run_death_test flags to cause only the current -// death test to be re-run. -DeathTest::TestRole ExecDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - set_write_fd(flag->write_fd()); - return EXECUTE_TEST; - } - - int pipe_fd[2]; - GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1); - // Clear the close-on-exec flag on the write end of the pipe, lest - // it be closed when the child process does an exec: - GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1); - - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - kFilterFlag + "=" + info->test_suite_name() + - "." + info->name(); - const std::string internal_flag = - std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "=" - + file_ + "|" + StreamableToString(line_) + "|" - + StreamableToString(death_test_index) + "|" - + StreamableToString(pipe_fd[1]); - Arguments args; - args.AddArguments(GetArgvsForDeathTestChildProcess()); - args.AddArgument(filter_flag.c_str()); - args.AddArgument(internal_flag.c_str()); - - DeathTest::set_last_death_test_message(""); - - CaptureStderr(); - // See the comment in NoExecDeathTest::AssumeRole for why the next line - // is necessary. - FlushInfoLog(); - - const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); - set_child_pid(child_pid); - set_read_fd(pipe_fd[0]); - set_spawned(true); - return OVERSEE_TEST; -} - -# endif // !GTEST_OS_WINDOWS - -// Creates a concrete DeathTest-derived class that depends on the -// --gtest_death_test_style flag, and sets the pointer pointed to -// by the "test" argument to its address. If the test should be -// skipped, sets that pointer to NULL. Returns true, unless the -// flag is set to an invalid value. -bool DefaultDeathTestFactory::Create(const char* statement, - Matcher matcher, - const char* file, int line, - DeathTest** test) { - UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const int death_test_index = impl->current_test_info() - ->increment_death_test_count(); - - if (flag != nullptr) { - if (death_test_index > flag->index()) { - DeathTest::set_last_death_test_message( - "Death test count (" + StreamableToString(death_test_index) - + ") somehow exceeded expected maximum (" - + StreamableToString(flag->index()) + ")"); - return false; - } - - if (!(flag->file() == file && flag->line() == line && - flag->index() == death_test_index)) { - *test = nullptr; - return true; - } - } - -# if GTEST_OS_WINDOWS - - if (GTEST_FLAG(death_test_style) == "threadsafe" || - GTEST_FLAG(death_test_style) == "fast") { - *test = new WindowsDeathTest(statement, std::move(matcher), file, line); - } - -# elif GTEST_OS_FUCHSIA - - if (GTEST_FLAG(death_test_style) == "threadsafe" || - GTEST_FLAG(death_test_style) == "fast") { - *test = new FuchsiaDeathTest(statement, std::move(matcher), file, line); - } - -# else - - if (GTEST_FLAG(death_test_style) == "threadsafe") { - *test = new ExecDeathTest(statement, std::move(matcher), file, line); - } else if (GTEST_FLAG(death_test_style) == "fast") { - *test = new NoExecDeathTest(statement, std::move(matcher)); - } - -# endif // GTEST_OS_WINDOWS - - else { // NOLINT - this is more readable than unbalanced brackets inside #if. - DeathTest::set_last_death_test_message( - "Unknown death test style \"" + GTEST_FLAG(death_test_style) - + "\" encountered"); - return false; - } - - return true; -} - -# if GTEST_OS_WINDOWS -// Recreates the pipe and event handles from the provided parameters, -// signals the event, and returns a file descriptor wrapped around the pipe -// handle. This function is called in the child process only. -static int GetStatusFileDescriptor(unsigned int parent_process_id, - size_t write_handle_as_size_t, - size_t event_handle_as_size_t) { - AutoHandle parent_process_handle(::OpenProcess(PROCESS_DUP_HANDLE, - FALSE, // Non-inheritable. - parent_process_id)); - if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) { - DeathTestAbort("Unable to open parent process " + - StreamableToString(parent_process_id)); - } - - GTEST_CHECK_(sizeof(HANDLE) <= sizeof(size_t)); - - const HANDLE write_handle = - reinterpret_cast(write_handle_as_size_t); - HANDLE dup_write_handle; - - // The newly initialized handle is accessible only in the parent - // process. To obtain one accessible within the child, we need to use - // DuplicateHandle. - if (!::DuplicateHandle(parent_process_handle.Get(), write_handle, - ::GetCurrentProcess(), &dup_write_handle, - 0x0, // Requested privileges ignored since - // DUPLICATE_SAME_ACCESS is used. - FALSE, // Request non-inheritable handler. - DUPLICATE_SAME_ACCESS)) { - DeathTestAbort("Unable to duplicate the pipe handle " + - StreamableToString(write_handle_as_size_t) + - " from the parent process " + - StreamableToString(parent_process_id)); - } - - const HANDLE event_handle = reinterpret_cast(event_handle_as_size_t); - HANDLE dup_event_handle; - - if (!::DuplicateHandle(parent_process_handle.Get(), event_handle, - ::GetCurrentProcess(), &dup_event_handle, - 0x0, - FALSE, - DUPLICATE_SAME_ACCESS)) { - DeathTestAbort("Unable to duplicate the event handle " + - StreamableToString(event_handle_as_size_t) + - " from the parent process " + - StreamableToString(parent_process_id)); - } - - const int write_fd = - ::_open_osfhandle(reinterpret_cast(dup_write_handle), O_APPEND); - if (write_fd == -1) { - DeathTestAbort("Unable to convert pipe handle " + - StreamableToString(write_handle_as_size_t) + - " to a file descriptor"); - } - - // Signals the parent that the write end of the pipe has been acquired - // so the parent can release its own write end. - ::SetEvent(dup_event_handle); - - return write_fd; -} -# endif // GTEST_OS_WINDOWS - -// Returns a newly created InternalRunDeathTestFlag object with fields -// initialized from the GTEST_FLAG(internal_run_death_test) flag if -// the flag is specified; otherwise returns NULL. -InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { - if (GTEST_FLAG(internal_run_death_test) == "") return nullptr; - - // GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we - // can use it here. - int line = -1; - int index = -1; - ::std::vector< ::std::string> fields; - SplitString(GTEST_FLAG(internal_run_death_test).c_str(), '|', &fields); - int write_fd = -1; - -# if GTEST_OS_WINDOWS - - unsigned int parent_process_id = 0; - size_t write_handle_as_size_t = 0; - size_t event_handle_as_size_t = 0; - - if (fields.size() != 6 - || !ParseNaturalNumber(fields[1], &line) - || !ParseNaturalNumber(fields[2], &index) - || !ParseNaturalNumber(fields[3], &parent_process_id) - || !ParseNaturalNumber(fields[4], &write_handle_as_size_t) - || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + - GTEST_FLAG(internal_run_death_test)); - } - write_fd = GetStatusFileDescriptor(parent_process_id, - write_handle_as_size_t, - event_handle_as_size_t); - -# elif GTEST_OS_FUCHSIA - - if (fields.size() != 3 - || !ParseNaturalNumber(fields[1], &line) - || !ParseNaturalNumber(fields[2], &index)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " - + GTEST_FLAG(internal_run_death_test)); - } - -# else - - if (fields.size() != 4 - || !ParseNaturalNumber(fields[1], &line) - || !ParseNaturalNumber(fields[2], &index) - || !ParseNaturalNumber(fields[3], &write_fd)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " - + GTEST_FLAG(internal_run_death_test)); - } - -# endif // GTEST_OS_WINDOWS - - return new InternalRunDeathTestFlag(fields[0], line, index, write_fd); -} - -} // namespace internal - -#endif // GTEST_HAS_DEATH_TEST - -} // namespace testing -// Copyright 2008, Google Inc. -// 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. - - -#include - -#if GTEST_OS_WINDOWS_MOBILE -# include -#elif GTEST_OS_WINDOWS -# include -# include -#else -# include -# include // Some Linux distributions define PATH_MAX here. -#endif // GTEST_OS_WINDOWS_MOBILE - - -#if GTEST_OS_WINDOWS -# define GTEST_PATH_MAX_ _MAX_PATH -#elif defined(PATH_MAX) -# define GTEST_PATH_MAX_ PATH_MAX -#elif defined(_XOPEN_PATH_MAX) -# define GTEST_PATH_MAX_ _XOPEN_PATH_MAX -#else -# define GTEST_PATH_MAX_ _POSIX_PATH_MAX -#endif // GTEST_OS_WINDOWS - -namespace testing { -namespace internal { - -#if GTEST_OS_WINDOWS -// On Windows, '\\' is the standard path separator, but many tools and the -// Windows API also accept '/' as an alternate path separator. Unless otherwise -// noted, a file path can contain either kind of path separators, or a mixture -// of them. -const char kPathSeparator = '\\'; -const char kAlternatePathSeparator = '/'; -const char kAlternatePathSeparatorString[] = "/"; -# if GTEST_OS_WINDOWS_MOBILE -// Windows CE doesn't have a current directory. You should not use -// the current directory in tests on Windows CE, but this at least -// provides a reasonable fallback. -const char kCurrentDirectoryString[] = "\\"; -// Windows CE doesn't define INVALID_FILE_ATTRIBUTES -const DWORD kInvalidFileAttributes = 0xffffffff; -# else -const char kCurrentDirectoryString[] = ".\\"; -# endif // GTEST_OS_WINDOWS_MOBILE -#else -const char kPathSeparator = '/'; -const char kCurrentDirectoryString[] = "./"; -#endif // GTEST_OS_WINDOWS - -// Returns whether the given character is a valid path separator. -static bool IsPathSeparator(char c) { -#if GTEST_HAS_ALT_PATH_SEP_ - return (c == kPathSeparator) || (c == kAlternatePathSeparator); -#else - return c == kPathSeparator; -#endif -} - -// Returns the current working directory, or "" if unsuccessful. -FilePath FilePath::GetCurrentDir() { -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \ - GTEST_OS_WINDOWS_RT || ARDUINO - // Windows CE and Arduino don't have a current directory, so we just return - // something reasonable. - return FilePath(kCurrentDirectoryString); -#elif GTEST_OS_WINDOWS - char cwd[GTEST_PATH_MAX_ + 1] = { '\0' }; - return FilePath(_getcwd(cwd, sizeof(cwd)) == nullptr ? "" : cwd); -#else - char cwd[GTEST_PATH_MAX_ + 1] = { '\0' }; - char* result = getcwd(cwd, sizeof(cwd)); -# if GTEST_OS_NACL - // getcwd will likely fail in NaCl due to the sandbox, so return something - // reasonable. The user may have provided a shim implementation for getcwd, - // however, so fallback only when failure is detected. - return FilePath(result == nullptr ? kCurrentDirectoryString : cwd); -# endif // GTEST_OS_NACL - return FilePath(result == nullptr ? "" : cwd); -#endif // GTEST_OS_WINDOWS_MOBILE -} - -// Returns a copy of the FilePath with the case-insensitive extension removed. -// Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns -// FilePath("dir/file"). If a case-insensitive extension is not -// found, returns a copy of the original FilePath. -FilePath FilePath::RemoveExtension(const char* extension) const { - const std::string dot_extension = std::string(".") + extension; - if (String::EndsWithCaseInsensitive(pathname_, dot_extension)) { - return FilePath(pathname_.substr( - 0, pathname_.length() - dot_extension.length())); - } - return *this; -} - -// Returns a pointer to the last occurrence of a valid path separator in -// the FilePath. On Windows, for example, both '/' and '\' are valid path -// separators. Returns NULL if no path separator was found. -const char* FilePath::FindLastPathSeparator() const { - const char* const last_sep = strrchr(c_str(), kPathSeparator); -#if GTEST_HAS_ALT_PATH_SEP_ - const char* const last_alt_sep = strrchr(c_str(), kAlternatePathSeparator); - // Comparing two pointers of which only one is NULL is undefined. - if (last_alt_sep != nullptr && - (last_sep == nullptr || last_alt_sep > last_sep)) { - return last_alt_sep; - } -#endif - return last_sep; -} - -// Returns a copy of the FilePath with the directory part removed. -// Example: FilePath("path/to/file").RemoveDirectoryName() returns -// FilePath("file"). If there is no directory part ("just_a_file"), it returns -// the FilePath unmodified. If there is no file part ("just_a_dir/") it -// returns an empty FilePath (""). -// On Windows platform, '\' is the path separator, otherwise it is '/'. -FilePath FilePath::RemoveDirectoryName() const { - const char* const last_sep = FindLastPathSeparator(); - return last_sep ? FilePath(last_sep + 1) : *this; -} - -// RemoveFileName returns the directory path with the filename removed. -// Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". -// If the FilePath is "a_file" or "/a_file", RemoveFileName returns -// FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does -// not have a file, like "just/a/dir/", it returns the FilePath unmodified. -// On Windows platform, '\' is the path separator, otherwise it is '/'. -FilePath FilePath::RemoveFileName() const { - const char* const last_sep = FindLastPathSeparator(); - std::string dir; - if (last_sep) { - dir = std::string(c_str(), last_sep + 1 - c_str()); - } else { - dir = kCurrentDirectoryString; - } - return FilePath(dir); -} - -// Helper functions for naming files in a directory for xml output. - -// Given directory = "dir", base_name = "test", number = 0, -// extension = "xml", returns "dir/test.xml". If number is greater -// than zero (e.g., 12), returns "dir/test_12.xml". -// On Windows platform, uses \ as the separator rather than /. -FilePath FilePath::MakeFileName(const FilePath& directory, - const FilePath& base_name, - int number, - const char* extension) { - std::string file; - if (number == 0) { - file = base_name.string() + "." + extension; - } else { - file = base_name.string() + "_" + StreamableToString(number) - + "." + extension; - } - return ConcatPaths(directory, FilePath(file)); -} - -// Given directory = "dir", relative_path = "test.xml", returns "dir/test.xml". -// On Windows, uses \ as the separator rather than /. -FilePath FilePath::ConcatPaths(const FilePath& directory, - const FilePath& relative_path) { - if (directory.IsEmpty()) - return relative_path; - const FilePath dir(directory.RemoveTrailingPathSeparator()); - return FilePath(dir.string() + kPathSeparator + relative_path.string()); -} - -// Returns true if pathname describes something findable in the file-system, -// either a file, directory, or whatever. -bool FilePath::FileOrDirectoryExists() const { -#if GTEST_OS_WINDOWS_MOBILE - LPCWSTR unicode = String::AnsiToUtf16(pathname_.c_str()); - const DWORD attributes = GetFileAttributes(unicode); - delete [] unicode; - return attributes != kInvalidFileAttributes; -#else - posix::StatStruct file_stat; - return posix::Stat(pathname_.c_str(), &file_stat) == 0; -#endif // GTEST_OS_WINDOWS_MOBILE -} - -// Returns true if pathname describes a directory in the file-system -// that exists. -bool FilePath::DirectoryExists() const { - bool result = false; -#if GTEST_OS_WINDOWS - // Don't strip off trailing separator if path is a root directory on - // Windows (like "C:\\"). - const FilePath& path(IsRootDirectory() ? *this : - RemoveTrailingPathSeparator()); -#else - const FilePath& path(*this); -#endif - -#if GTEST_OS_WINDOWS_MOBILE - LPCWSTR unicode = String::AnsiToUtf16(path.c_str()); - const DWORD attributes = GetFileAttributes(unicode); - delete [] unicode; - if ((attributes != kInvalidFileAttributes) && - (attributes & FILE_ATTRIBUTE_DIRECTORY)) { - result = true; - } -#else - posix::StatStruct file_stat; - result = posix::Stat(path.c_str(), &file_stat) == 0 && - posix::IsDir(file_stat); -#endif // GTEST_OS_WINDOWS_MOBILE - - return result; -} - -// Returns true if pathname describes a root directory. (Windows has one -// root directory per disk drive.) -bool FilePath::IsRootDirectory() const { -#if GTEST_OS_WINDOWS - return pathname_.length() == 3 && IsAbsolutePath(); -#else - return pathname_.length() == 1 && IsPathSeparator(pathname_.c_str()[0]); -#endif -} - -// Returns true if pathname describes an absolute path. -bool FilePath::IsAbsolutePath() const { - const char* const name = pathname_.c_str(); -#if GTEST_OS_WINDOWS - return pathname_.length() >= 3 && - ((name[0] >= 'a' && name[0] <= 'z') || - (name[0] >= 'A' && name[0] <= 'Z')) && - name[1] == ':' && - IsPathSeparator(name[2]); -#else - return IsPathSeparator(name[0]); -#endif -} - -// Returns a pathname for a file that does not currently exist. The pathname -// will be directory/base_name.extension or -// directory/base_name_.extension if directory/base_name.extension -// already exists. The number will be incremented until a pathname is found -// that does not already exist. -// Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. -// There could be a race condition if two or more processes are calling this -// function at the same time -- they could both pick the same filename. -FilePath FilePath::GenerateUniqueFileName(const FilePath& directory, - const FilePath& base_name, - const char* extension) { - FilePath full_pathname; - int number = 0; - do { - full_pathname.Set(MakeFileName(directory, base_name, number++, extension)); - } while (full_pathname.FileOrDirectoryExists()); - return full_pathname; -} - -// Returns true if FilePath ends with a path separator, which indicates that -// it is intended to represent a directory. Returns false otherwise. -// This does NOT check that a directory (or file) actually exists. -bool FilePath::IsDirectory() const { - return !pathname_.empty() && - IsPathSeparator(pathname_.c_str()[pathname_.length() - 1]); -} - -// Create directories so that path exists. Returns true if successful or if -// the directories already exist; returns false if unable to create directories -// for any reason. -bool FilePath::CreateDirectoriesRecursively() const { - if (!this->IsDirectory()) { - return false; - } - - if (pathname_.length() == 0 || this->DirectoryExists()) { - return true; - } - - const FilePath parent(this->RemoveTrailingPathSeparator().RemoveFileName()); - return parent.CreateDirectoriesRecursively() && this->CreateFolder(); -} - -// Create the directory so that path exists. Returns true if successful or -// if the directory already exists; returns false if unable to create the -// directory for any reason, including if the parent directory does not -// exist. Not named "CreateDirectory" because that's a macro on Windows. -bool FilePath::CreateFolder() const { -#if GTEST_OS_WINDOWS_MOBILE - FilePath removed_sep(this->RemoveTrailingPathSeparator()); - LPCWSTR unicode = String::AnsiToUtf16(removed_sep.c_str()); - int result = CreateDirectory(unicode, nullptr) ? 0 : -1; - delete [] unicode; -#elif GTEST_OS_WINDOWS - int result = _mkdir(pathname_.c_str()); -#else - int result = mkdir(pathname_.c_str(), 0777); -#endif // GTEST_OS_WINDOWS_MOBILE - - if (result == -1) { - return this->DirectoryExists(); // An error is OK if the directory exists. - } - return true; // No error. -} - -// If input name has a trailing separator character, remove it and return the -// name, otherwise return the name string unmodified. -// On Windows platform, uses \ as the separator, other platforms use /. -FilePath FilePath::RemoveTrailingPathSeparator() const { - return IsDirectory() - ? FilePath(pathname_.substr(0, pathname_.length() - 1)) - : *this; -} - -// Removes any redundant separators that might be in the pathname. -// For example, "bar///foo" becomes "bar/foo". Does not eliminate other -// redundancies that might be in a pathname involving "." or "..". -void FilePath::Normalize() { - if (pathname_.c_str() == nullptr) { - pathname_ = ""; - return; - } - const char* src = pathname_.c_str(); - char* const dest = new char[pathname_.length() + 1]; - char* dest_ptr = dest; - memset(dest_ptr, 0, pathname_.length() + 1); - - while (*src != '\0') { - *dest_ptr = *src; - if (!IsPathSeparator(*src)) { - src++; - } else { -#if GTEST_HAS_ALT_PATH_SEP_ - if (*dest_ptr == kAlternatePathSeparator) { - *dest_ptr = kPathSeparator; - } -#endif - while (IsPathSeparator(*src)) - src++; - } - dest_ptr++; - } - *dest_ptr = '\0'; - pathname_ = dest; - delete[] dest; -} - -} // namespace internal -} // namespace testing -// Copyright 2007, Google Inc. -// 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements just enough of the matcher interface to allow -// EXPECT_DEATH and friends to accept a matcher argument. - - -#include - -namespace testing { - -// Constructs a matcher that matches a const std::string& whose value is -// equal to s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a const std::string& whose value is -// equal to s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a std::string whose value is equal to -// s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a std::string whose value is equal to -// s. -Matcher::Matcher(const char* s) { *this = Eq(std::string(s)); } - -#if GTEST_HAS_ABSL -// Constructs a matcher that matches a const absl::string_view& whose value is -// equal to s. -Matcher::Matcher(const std::string& s) { - *this = Eq(s); -} - -// Constructs a matcher that matches a const absl::string_view& whose value is -// equal to s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a const absl::string_view& whose value is -// equal to s. -Matcher::Matcher(absl::string_view s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a absl::string_view whose value is equal to -// s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a absl::string_view whose value is equal to -// s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a absl::string_view whose value is equal to -// s. -Matcher::Matcher(absl::string_view s) { - *this = Eq(std::string(s)); -} -#endif // GTEST_HAS_ABSL - -} // namespace testing -// Copyright 2008, Google Inc. -// 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. - - - -#include -#include -#include -#include -#include -#include - -#if GTEST_OS_WINDOWS -# include -# include -# include -# include // Used in ThreadLocal. -# ifdef _MSC_VER -# include -# endif // _MSC_VER -#else -# include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_MAC -# include -# include -# include -#endif // GTEST_OS_MAC - -#if GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD || \ - GTEST_OS_NETBSD || GTEST_OS_OPENBSD -# include -# if GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD -# include -# endif -#endif - -#if GTEST_OS_QNX -# include -# include -# include -#endif // GTEST_OS_QNX - -#if GTEST_OS_AIX -# include -# include -#endif // GTEST_OS_AIX - -#if GTEST_OS_FUCHSIA -# include -# include -#endif // GTEST_OS_FUCHSIA - - -namespace testing { -namespace internal { - -#if defined(_MSC_VER) || defined(__BORLANDC__) -// MSVC and C++Builder do not provide a definition of STDERR_FILENO. -const int kStdOutFileno = 1; -const int kStdErrFileno = 2; -#else -const int kStdOutFileno = STDOUT_FILENO; -const int kStdErrFileno = STDERR_FILENO; -#endif // _MSC_VER - -#if GTEST_OS_LINUX - -namespace { -template -T ReadProcFileField(const std::string& filename, int field) { - std::string dummy; - std::ifstream file(filename.c_str()); - while (field-- > 0) { - file >> dummy; - } - T output = 0; - file >> output; - return output; -} -} // namespace - -// Returns the number of active threads, or 0 when there is an error. -size_t GetThreadCount() { - const std::string filename = - (Message() << "/proc/" << getpid() << "/stat").GetString(); - return ReadProcFileField(filename, 19); -} - -#elif GTEST_OS_MAC - -size_t GetThreadCount() { - const task_t task = mach_task_self(); - mach_msg_type_number_t thread_count; - thread_act_array_t thread_list; - const kern_return_t status = task_threads(task, &thread_list, &thread_count); - if (status == KERN_SUCCESS) { - // task_threads allocates resources in thread_list and we need to free them - // to avoid leaks. - vm_deallocate(task, - reinterpret_cast(thread_list), - sizeof(thread_t) * thread_count); - return static_cast(thread_count); - } else { - return 0; - } -} - -#elif GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD || \ - GTEST_OS_NETBSD - -#if GTEST_OS_NETBSD -#undef KERN_PROC -#define KERN_PROC KERN_PROC2 -#define kinfo_proc kinfo_proc2 -#endif - -#if GTEST_OS_DRAGONFLY -#define KP_NLWP(kp) (kp.kp_nthreads) -#elif GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD -#define KP_NLWP(kp) (kp.ki_numthreads) -#elif GTEST_OS_NETBSD -#define KP_NLWP(kp) (kp.p_nlwps) -#endif - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - int mib[] = { - CTL_KERN, - KERN_PROC, - KERN_PROC_PID, - getpid(), -#if GTEST_OS_NETBSD - sizeof(struct kinfo_proc), - 1, -#endif - }; - u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc info; - size_t size = sizeof(info); - if (sysctl(mib, miblen, &info, &size, NULL, 0)) { - return 0; - } - return KP_NLWP(info); -} -#elif GTEST_OS_OPENBSD - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - int mib[] = { - CTL_KERN, - KERN_PROC, - KERN_PROC_PID | KERN_PROC_SHOW_THREADS, - getpid(), - sizeof(struct kinfo_proc), - 0, - }; - u_int miblen = sizeof(mib) / sizeof(mib[0]); - - // get number of structs - size_t size; - if (sysctl(mib, miblen, NULL, &size, NULL, 0)) { - return 0; - } - mib[5] = size / mib[4]; - - // populate array of structs - struct kinfo_proc info[mib[5]]; - if (sysctl(mib, miblen, &info, &size, NULL, 0)) { - return 0; - } - - // exclude empty members - int nthreads = 0; - for (int i = 0; i < size / mib[4]; i++) { - if (info[i].p_tid != -1) - nthreads++; - } - return nthreads; -} - -#elif GTEST_OS_QNX - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - const int fd = open("/proc/self/as", O_RDONLY); - if (fd < 0) { - return 0; - } - procfs_info process_info; - const int status = - devctl(fd, DCMD_PROC_INFO, &process_info, sizeof(process_info), nullptr); - close(fd); - if (status == EOK) { - return static_cast(process_info.num_threads); - } else { - return 0; - } -} - -#elif GTEST_OS_AIX - -size_t GetThreadCount() { - struct procentry64 entry; - pid_t pid = getpid(); - int status = getprocs64(&entry, sizeof(entry), nullptr, 0, &pid, 1); - if (status == 1) { - return entry.pi_thcount; - } else { - return 0; - } -} - -#elif GTEST_OS_FUCHSIA - -size_t GetThreadCount() { - int dummy_buffer; - size_t avail; - zx_status_t status = zx_object_get_info( - zx_process_self(), - ZX_INFO_PROCESS_THREADS, - &dummy_buffer, - 0, - nullptr, - &avail); - if (status == ZX_OK) { - return avail; - } else { - return 0; - } -} - -#else - -size_t GetThreadCount() { - // There's no portable way to detect the number of threads, so we just - // return 0 to indicate that we cannot detect it. - return 0; -} - -#endif // GTEST_OS_LINUX - -#if GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS - -void SleepMilliseconds(int n) { - ::Sleep(n); -} - -AutoHandle::AutoHandle() - : handle_(INVALID_HANDLE_VALUE) {} - -AutoHandle::AutoHandle(Handle handle) - : handle_(handle) {} - -AutoHandle::~AutoHandle() { - Reset(); -} - -AutoHandle::Handle AutoHandle::Get() const { - return handle_; -} - -void AutoHandle::Reset() { - Reset(INVALID_HANDLE_VALUE); -} - -void AutoHandle::Reset(HANDLE handle) { - // Resetting with the same handle we already own is invalid. - if (handle_ != handle) { - if (IsCloseable()) { - ::CloseHandle(handle_); - } - handle_ = handle; - } else { - GTEST_CHECK_(!IsCloseable()) - << "Resetting a valid handle to itself is likely a programmer error " - "and thus not allowed."; - } -} - -bool AutoHandle::IsCloseable() const { - // Different Windows APIs may use either of these values to represent an - // invalid handle. - return handle_ != nullptr && handle_ != INVALID_HANDLE_VALUE; -} - -Notification::Notification() - : event_(::CreateEvent(nullptr, // Default security attributes. - TRUE, // Do not reset automatically. - FALSE, // Initially unset. - nullptr)) { // Anonymous event. - GTEST_CHECK_(event_.Get() != nullptr); -} - -void Notification::Notify() { - GTEST_CHECK_(::SetEvent(event_.Get()) != FALSE); -} - -void Notification::WaitForNotification() { - GTEST_CHECK_( - ::WaitForSingleObject(event_.Get(), INFINITE) == WAIT_OBJECT_0); -} - -Mutex::Mutex() - : owner_thread_id_(0), - type_(kDynamic), - critical_section_init_phase_(0), - critical_section_(new CRITICAL_SECTION) { - ::InitializeCriticalSection(critical_section_); -} - -Mutex::~Mutex() { - // Static mutexes are leaked intentionally. It is not thread-safe to try - // to clean them up. - if (type_ == kDynamic) { - ::DeleteCriticalSection(critical_section_); - delete critical_section_; - critical_section_ = nullptr; - } -} - -void Mutex::Lock() { - ThreadSafeLazyInit(); - ::EnterCriticalSection(critical_section_); - owner_thread_id_ = ::GetCurrentThreadId(); -} - -void Mutex::Unlock() { - ThreadSafeLazyInit(); - // We don't protect writing to owner_thread_id_ here, as it's the - // caller's responsibility to ensure that the current thread holds the - // mutex when this is called. - owner_thread_id_ = 0; - ::LeaveCriticalSection(critical_section_); -} - -// Does nothing if the current thread holds the mutex. Otherwise, crashes -// with high probability. -void Mutex::AssertHeld() { - ThreadSafeLazyInit(); - GTEST_CHECK_(owner_thread_id_ == ::GetCurrentThreadId()) - << "The current thread is not holding the mutex @" << this; -} - -namespace { - -#ifdef _MSC_VER -// Use the RAII idiom to flag mem allocs that are intentionally never -// deallocated. The motivation is to silence the false positive mem leaks -// that are reported by the debug version of MS's CRT which can only detect -// if an alloc is missing a matching deallocation. -// Example: -// MemoryIsNotDeallocated memory_is_not_deallocated; -// critical_section_ = new CRITICAL_SECTION; -// -class MemoryIsNotDeallocated -{ - public: - MemoryIsNotDeallocated() : old_crtdbg_flag_(0) { - old_crtdbg_flag_ = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); - // Set heap allocation block type to _IGNORE_BLOCK so that MS debug CRT - // doesn't report mem leak if there's no matching deallocation. - _CrtSetDbgFlag(old_crtdbg_flag_ & ~_CRTDBG_ALLOC_MEM_DF); - } - - ~MemoryIsNotDeallocated() { - // Restore the original _CRTDBG_ALLOC_MEM_DF flag - _CrtSetDbgFlag(old_crtdbg_flag_); - } - - private: - int old_crtdbg_flag_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(MemoryIsNotDeallocated); -}; -#endif // _MSC_VER - -} // namespace - -// Initializes owner_thread_id_ and critical_section_ in static mutexes. -void Mutex::ThreadSafeLazyInit() { - // Dynamic mutexes are initialized in the constructor. - if (type_ == kStatic) { - switch ( - ::InterlockedCompareExchange(&critical_section_init_phase_, 1L, 0L)) { - case 0: - // If critical_section_init_phase_ was 0 before the exchange, we - // are the first to test it and need to perform the initialization. - owner_thread_id_ = 0; - { - // Use RAII to flag that following mem alloc is never deallocated. -#ifdef _MSC_VER - MemoryIsNotDeallocated memory_is_not_deallocated; -#endif // _MSC_VER - critical_section_ = new CRITICAL_SECTION; - } - ::InitializeCriticalSection(critical_section_); - // Updates the critical_section_init_phase_ to 2 to signal - // initialization complete. - GTEST_CHECK_(::InterlockedCompareExchange( - &critical_section_init_phase_, 2L, 1L) == - 1L); - break; - case 1: - // Somebody else is already initializing the mutex; spin until they - // are done. - while (::InterlockedCompareExchange(&critical_section_init_phase_, - 2L, - 2L) != 2L) { - // Possibly yields the rest of the thread's time slice to other - // threads. - ::Sleep(0); - } - break; - - case 2: - break; // The mutex is already initialized and ready for use. - - default: - GTEST_CHECK_(false) - << "Unexpected value of critical_section_init_phase_ " - << "while initializing a static mutex."; - } - } -} - -namespace { - -class ThreadWithParamSupport : public ThreadWithParamBase { - public: - static HANDLE CreateThread(Runnable* runnable, - Notification* thread_can_start) { - ThreadMainParam* param = new ThreadMainParam(runnable, thread_can_start); - DWORD thread_id; - HANDLE thread_handle = ::CreateThread( - nullptr, // Default security. - 0, // Default stack size. - &ThreadWithParamSupport::ThreadMain, - param, // Parameter to ThreadMainStatic - 0x0, // Default creation flags. - &thread_id); // Need a valid pointer for the call to work under Win98. - GTEST_CHECK_(thread_handle != nullptr) - << "CreateThread failed with error " << ::GetLastError() << "."; - if (thread_handle == nullptr) { - delete param; - } - return thread_handle; - } - - private: - struct ThreadMainParam { - ThreadMainParam(Runnable* runnable, Notification* thread_can_start) - : runnable_(runnable), - thread_can_start_(thread_can_start) { - } - std::unique_ptr runnable_; - // Does not own. - Notification* thread_can_start_; - }; - - static DWORD WINAPI ThreadMain(void* ptr) { - // Transfers ownership. - std::unique_ptr param(static_cast(ptr)); - if (param->thread_can_start_ != nullptr) - param->thread_can_start_->WaitForNotification(); - param->runnable_->Run(); - return 0; - } - - // Prohibit instantiation. - ThreadWithParamSupport(); - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParamSupport); -}; - -} // namespace - -ThreadWithParamBase::ThreadWithParamBase(Runnable *runnable, - Notification* thread_can_start) - : thread_(ThreadWithParamSupport::CreateThread(runnable, - thread_can_start)) { -} - -ThreadWithParamBase::~ThreadWithParamBase() { - Join(); -} - -void ThreadWithParamBase::Join() { - GTEST_CHECK_(::WaitForSingleObject(thread_.Get(), INFINITE) == WAIT_OBJECT_0) - << "Failed to join the thread with error " << ::GetLastError() << "."; -} - -// Maps a thread to a set of ThreadIdToThreadLocals that have values -// instantiated on that thread and notifies them when the thread exits. A -// ThreadLocal instance is expected to persist until all threads it has -// values on have terminated. -class ThreadLocalRegistryImpl { - public: - // Registers thread_local_instance as having value on the current thread. - // Returns a value that can be used to identify the thread from other threads. - static ThreadLocalValueHolderBase* GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance) { - DWORD current_thread = ::GetCurrentThreadId(); - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - ThreadIdToThreadLocals::iterator thread_local_pos = - thread_to_thread_locals->find(current_thread); - if (thread_local_pos == thread_to_thread_locals->end()) { - thread_local_pos = thread_to_thread_locals->insert( - std::make_pair(current_thread, ThreadLocalValues())).first; - StartWatcherThreadFor(current_thread); - } - ThreadLocalValues& thread_local_values = thread_local_pos->second; - ThreadLocalValues::iterator value_pos = - thread_local_values.find(thread_local_instance); - if (value_pos == thread_local_values.end()) { - value_pos = - thread_local_values - .insert(std::make_pair( - thread_local_instance, - std::shared_ptr( - thread_local_instance->NewValueForCurrentThread()))) - .first; - } - return value_pos->second.get(); - } - - static void OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance) { - std::vector > value_holders; - // Clean up the ThreadLocalValues data structure while holding the lock, but - // defer the destruction of the ThreadLocalValueHolderBases. - { - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - for (ThreadIdToThreadLocals::iterator it = - thread_to_thread_locals->begin(); - it != thread_to_thread_locals->end(); - ++it) { - ThreadLocalValues& thread_local_values = it->second; - ThreadLocalValues::iterator value_pos = - thread_local_values.find(thread_local_instance); - if (value_pos != thread_local_values.end()) { - value_holders.push_back(value_pos->second); - thread_local_values.erase(value_pos); - // This 'if' can only be successful at most once, so theoretically we - // could break out of the loop here, but we don't bother doing so. - } - } - } - // Outside the lock, let the destructor for 'value_holders' deallocate the - // ThreadLocalValueHolderBases. - } - - static void OnThreadExit(DWORD thread_id) { - GTEST_CHECK_(thread_id != 0) << ::GetLastError(); - std::vector > value_holders; - // Clean up the ThreadIdToThreadLocals data structure while holding the - // lock, but defer the destruction of the ThreadLocalValueHolderBases. - { - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - ThreadIdToThreadLocals::iterator thread_local_pos = - thread_to_thread_locals->find(thread_id); - if (thread_local_pos != thread_to_thread_locals->end()) { - ThreadLocalValues& thread_local_values = thread_local_pos->second; - for (ThreadLocalValues::iterator value_pos = - thread_local_values.begin(); - value_pos != thread_local_values.end(); - ++value_pos) { - value_holders.push_back(value_pos->second); - } - thread_to_thread_locals->erase(thread_local_pos); - } - } - // Outside the lock, let the destructor for 'value_holders' deallocate the - // ThreadLocalValueHolderBases. - } - - private: - // In a particular thread, maps a ThreadLocal object to its value. - typedef std::map > - ThreadLocalValues; - // Stores all ThreadIdToThreadLocals having values in a thread, indexed by - // thread's ID. - typedef std::map ThreadIdToThreadLocals; - - // Holds the thread id and thread handle that we pass from - // StartWatcherThreadFor to WatcherThreadFunc. - typedef std::pair ThreadIdAndHandle; - - static void StartWatcherThreadFor(DWORD thread_id) { - // The returned handle will be kept in thread_map and closed by - // watcher_thread in WatcherThreadFunc. - HANDLE thread = ::OpenThread(SYNCHRONIZE | THREAD_QUERY_INFORMATION, - FALSE, - thread_id); - GTEST_CHECK_(thread != nullptr); - // We need to pass a valid thread ID pointer into CreateThread for it - // to work correctly under Win98. - DWORD watcher_thread_id; - HANDLE watcher_thread = ::CreateThread( - nullptr, // Default security. - 0, // Default stack size - &ThreadLocalRegistryImpl::WatcherThreadFunc, - reinterpret_cast(new ThreadIdAndHandle(thread_id, thread)), - CREATE_SUSPENDED, &watcher_thread_id); - GTEST_CHECK_(watcher_thread != nullptr); - // Give the watcher thread the same priority as ours to avoid being - // blocked by it. - ::SetThreadPriority(watcher_thread, - ::GetThreadPriority(::GetCurrentThread())); - ::ResumeThread(watcher_thread); - ::CloseHandle(watcher_thread); - } - - // Monitors exit from a given thread and notifies those - // ThreadIdToThreadLocals about thread termination. - static DWORD WINAPI WatcherThreadFunc(LPVOID param) { - const ThreadIdAndHandle* tah = - reinterpret_cast(param); - GTEST_CHECK_( - ::WaitForSingleObject(tah->second, INFINITE) == WAIT_OBJECT_0); - OnThreadExit(tah->first); - ::CloseHandle(tah->second); - delete tah; - return 0; - } - - // Returns map of thread local instances. - static ThreadIdToThreadLocals* GetThreadLocalsMapLocked() { - mutex_.AssertHeld(); -#ifdef _MSC_VER - MemoryIsNotDeallocated memory_is_not_deallocated; -#endif // _MSC_VER - static ThreadIdToThreadLocals* map = new ThreadIdToThreadLocals(); - return map; - } - - // Protects access to GetThreadLocalsMapLocked() and its return value. - static Mutex mutex_; - // Protects access to GetThreadMapLocked() and its return value. - static Mutex thread_map_mutex_; -}; - -Mutex ThreadLocalRegistryImpl::mutex_(Mutex::kStaticMutex); -Mutex ThreadLocalRegistryImpl::thread_map_mutex_(Mutex::kStaticMutex); - -ThreadLocalValueHolderBase* ThreadLocalRegistry::GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance) { - return ThreadLocalRegistryImpl::GetValueOnCurrentThread( - thread_local_instance); -} - -void ThreadLocalRegistry::OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance) { - ThreadLocalRegistryImpl::OnThreadLocalDestroyed(thread_local_instance); -} - -#endif // GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS - -#if GTEST_USES_POSIX_RE - -// Implements RE. Currently only needed for death tests. - -RE::~RE() { - if (is_valid_) { - // regfree'ing an invalid regex might crash because the content - // of the regex is undefined. Since the regex's are essentially - // the same, one cannot be valid (or invalid) without the other - // being so too. - regfree(&partial_regex_); - regfree(&full_regex_); - } - free(const_cast(pattern_)); -} - -// Returns true iff regular expression re matches the entire str. -bool RE::FullMatch(const char* str, const RE& re) { - if (!re.is_valid_) return false; - - regmatch_t match; - return regexec(&re.full_regex_, str, 1, &match, 0) == 0; -} - -// Returns true iff regular expression re matches a substring of str -// (including str itself). -bool RE::PartialMatch(const char* str, const RE& re) { - if (!re.is_valid_) return false; - - regmatch_t match; - return regexec(&re.partial_regex_, str, 1, &match, 0) == 0; -} - -// Initializes an RE from its string representation. -void RE::Init(const char* regex) { - pattern_ = posix::StrDup(regex); - - // Reserves enough bytes to hold the regular expression used for a - // full match. - const size_t full_regex_len = strlen(regex) + 10; - char* const full_pattern = new char[full_regex_len]; - - snprintf(full_pattern, full_regex_len, "^(%s)$", regex); - is_valid_ = regcomp(&full_regex_, full_pattern, REG_EXTENDED) == 0; - // We want to call regcomp(&partial_regex_, ...) even if the - // previous expression returns false. Otherwise partial_regex_ may - // not be properly initialized can may cause trouble when it's - // freed. - // - // Some implementation of POSIX regex (e.g. on at least some - // versions of Cygwin) doesn't accept the empty string as a valid - // regex. We change it to an equivalent form "()" to be safe. - if (is_valid_) { - const char* const partial_regex = (*regex == '\0') ? "()" : regex; - is_valid_ = regcomp(&partial_regex_, partial_regex, REG_EXTENDED) == 0; - } - EXPECT_TRUE(is_valid_) - << "Regular expression \"" << regex - << "\" is not a valid POSIX Extended regular expression."; - - delete[] full_pattern; -} - -#elif GTEST_USES_SIMPLE_RE - -// Returns true iff ch appears anywhere in str (excluding the -// terminating '\0' character). -bool IsInSet(char ch, const char* str) { - return ch != '\0' && strchr(str, ch) != nullptr; -} - -// Returns true iff ch belongs to the given classification. Unlike -// similar functions in , these aren't affected by the -// current locale. -bool IsAsciiDigit(char ch) { return '0' <= ch && ch <= '9'; } -bool IsAsciiPunct(char ch) { - return IsInSet(ch, "^-!\"#$%&'()*+,./:;<=>?@[\\]_`{|}~"); -} -bool IsRepeat(char ch) { return IsInSet(ch, "?*+"); } -bool IsAsciiWhiteSpace(char ch) { return IsInSet(ch, " \f\n\r\t\v"); } -bool IsAsciiWordChar(char ch) { - return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || - ('0' <= ch && ch <= '9') || ch == '_'; -} - -// Returns true iff "\\c" is a supported escape sequence. -bool IsValidEscape(char c) { - return (IsAsciiPunct(c) || IsInSet(c, "dDfnrsStvwW")); -} - -// Returns true iff the given atom (specified by escaped and pattern) -// matches ch. The result is undefined if the atom is invalid. -bool AtomMatchesChar(bool escaped, char pattern_char, char ch) { - if (escaped) { // "\\p" where p is pattern_char. - switch (pattern_char) { - case 'd': return IsAsciiDigit(ch); - case 'D': return !IsAsciiDigit(ch); - case 'f': return ch == '\f'; - case 'n': return ch == '\n'; - case 'r': return ch == '\r'; - case 's': return IsAsciiWhiteSpace(ch); - case 'S': return !IsAsciiWhiteSpace(ch); - case 't': return ch == '\t'; - case 'v': return ch == '\v'; - case 'w': return IsAsciiWordChar(ch); - case 'W': return !IsAsciiWordChar(ch); - } - return IsAsciiPunct(pattern_char) && pattern_char == ch; - } - - return (pattern_char == '.' && ch != '\n') || pattern_char == ch; -} - -// Helper function used by ValidateRegex() to format error messages. -static std::string FormatRegexSyntaxError(const char* regex, int index) { - return (Message() << "Syntax error at index " << index - << " in simple regular expression \"" << regex << "\": ").GetString(); -} - -// Generates non-fatal failures and returns false if regex is invalid; -// otherwise returns true. -bool ValidateRegex(const char* regex) { - if (regex == nullptr) { - ADD_FAILURE() << "NULL is not a valid simple regular expression."; - return false; - } - - bool is_valid = true; - - // True iff ?, *, or + can follow the previous atom. - bool prev_repeatable = false; - for (int i = 0; regex[i]; i++) { - if (regex[i] == '\\') { // An escape sequence - i++; - if (regex[i] == '\0') { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1) - << "'\\' cannot appear at the end."; - return false; - } - - if (!IsValidEscape(regex[i])) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1) - << "invalid escape sequence \"\\" << regex[i] << "\"."; - is_valid = false; - } - prev_repeatable = true; - } else { // Not an escape sequence. - const char ch = regex[i]; - - if (ch == '^' && i > 0) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'^' can only appear at the beginning."; - is_valid = false; - } else if (ch == '$' && regex[i + 1] != '\0') { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'$' can only appear at the end."; - is_valid = false; - } else if (IsInSet(ch, "()[]{}|")) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'" << ch << "' is unsupported."; - is_valid = false; - } else if (IsRepeat(ch) && !prev_repeatable) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'" << ch << "' can only follow a repeatable token."; - is_valid = false; - } - - prev_repeatable = !IsInSet(ch, "^$?*+"); - } - } - - return is_valid; -} - -// Matches a repeated regex atom followed by a valid simple regular -// expression. The regex atom is defined as c if escaped is false, -// or \c otherwise. repeat is the repetition meta character (?, *, -// or +). The behavior is undefined if str contains too many -// characters to be indexable by size_t, in which case the test will -// probably time out anyway. We are fine with this limitation as -// std::string has it too. -bool MatchRepetitionAndRegexAtHead( - bool escaped, char c, char repeat, const char* regex, - const char* str) { - const size_t min_count = (repeat == '+') ? 1 : 0; - const size_t max_count = (repeat == '?') ? 1 : - static_cast(-1) - 1; - // We cannot call numeric_limits::max() as it conflicts with the - // max() macro on Windows. - - for (size_t i = 0; i <= max_count; ++i) { - // We know that the atom matches each of the first i characters in str. - if (i >= min_count && MatchRegexAtHead(regex, str + i)) { - // We have enough matches at the head, and the tail matches too. - // Since we only care about *whether* the pattern matches str - // (as opposed to *how* it matches), there is no need to find a - // greedy match. - return true; - } - if (str[i] == '\0' || !AtomMatchesChar(escaped, c, str[i])) - return false; - } - return false; -} - -// Returns true iff regex matches a prefix of str. regex must be a -// valid simple regular expression and not start with "^", or the -// result is undefined. -bool MatchRegexAtHead(const char* regex, const char* str) { - if (*regex == '\0') // An empty regex matches a prefix of anything. - return true; - - // "$" only matches the end of a string. Note that regex being - // valid guarantees that there's nothing after "$" in it. - if (*regex == '$') - return *str == '\0'; - - // Is the first thing in regex an escape sequence? - const bool escaped = *regex == '\\'; - if (escaped) - ++regex; - if (IsRepeat(regex[1])) { - // MatchRepetitionAndRegexAtHead() calls MatchRegexAtHead(), so - // here's an indirect recursion. It terminates as the regex gets - // shorter in each recursion. - return MatchRepetitionAndRegexAtHead( - escaped, regex[0], regex[1], regex + 2, str); - } else { - // regex isn't empty, isn't "$", and doesn't start with a - // repetition. We match the first atom of regex with the first - // character of str and recurse. - return (*str != '\0') && AtomMatchesChar(escaped, *regex, *str) && - MatchRegexAtHead(regex + 1, str + 1); - } -} - -// Returns true iff regex matches any substring of str. regex must be -// a valid simple regular expression, or the result is undefined. -// -// The algorithm is recursive, but the recursion depth doesn't exceed -// the regex length, so we won't need to worry about running out of -// stack space normally. In rare cases the time complexity can be -// exponential with respect to the regex length + the string length, -// but usually it's must faster (often close to linear). -bool MatchRegexAnywhere(const char* regex, const char* str) { - if (regex == nullptr || str == nullptr) return false; - - if (*regex == '^') - return MatchRegexAtHead(regex + 1, str); - - // A successful match can be anywhere in str. - do { - if (MatchRegexAtHead(regex, str)) - return true; - } while (*str++ != '\0'); - return false; -} - -// Implements the RE class. - -RE::~RE() { - free(const_cast(pattern_)); - free(const_cast(full_pattern_)); -} - -// Returns true iff regular expression re matches the entire str. -bool RE::FullMatch(const char* str, const RE& re) { - return re.is_valid_ && MatchRegexAnywhere(re.full_pattern_, str); -} - -// Returns true iff regular expression re matches a substring of str -// (including str itself). -bool RE::PartialMatch(const char* str, const RE& re) { - return re.is_valid_ && MatchRegexAnywhere(re.pattern_, str); -} - -// Initializes an RE from its string representation. -void RE::Init(const char* regex) { - pattern_ = full_pattern_ = nullptr; - if (regex != nullptr) { - pattern_ = posix::StrDup(regex); - } - - is_valid_ = ValidateRegex(regex); - if (!is_valid_) { - // No need to calculate the full pattern when the regex is invalid. - return; - } - - const size_t len = strlen(regex); - // Reserves enough bytes to hold the regular expression used for a - // full match: we need space to prepend a '^', append a '$', and - // terminate the string with '\0'. - char* buffer = static_cast(malloc(len + 3)); - full_pattern_ = buffer; - - if (*regex != '^') - *buffer++ = '^'; // Makes sure full_pattern_ starts with '^'. - - // We don't use snprintf or strncpy, as they trigger a warning when - // compiled with VC++ 8.0. - memcpy(buffer, regex, len); - buffer += len; - - if (len == 0 || regex[len - 1] != '$') - *buffer++ = '$'; // Makes sure full_pattern_ ends with '$'. - - *buffer = '\0'; -} - -#endif // GTEST_USES_POSIX_RE - -const char kUnknownFile[] = "unknown file"; - -// Formats a source file path and a line number as they would appear -// in an error message from the compiler used to compile this code. -GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { - const std::string file_name(file == nullptr ? kUnknownFile : file); - - if (line < 0) { - return file_name + ":"; - } -#ifdef _MSC_VER - return file_name + "(" + StreamableToString(line) + "):"; -#else - return file_name + ":" + StreamableToString(line) + ":"; -#endif // _MSC_VER -} - -// Formats a file location for compiler-independent XML output. -// Although this function is not platform dependent, we put it next to -// FormatFileLocation in order to contrast the two functions. -// Note that FormatCompilerIndependentFileLocation() does NOT append colon -// to the file location it produces, unlike FormatFileLocation(). -GTEST_API_ ::std::string FormatCompilerIndependentFileLocation( - const char* file, int line) { - const std::string file_name(file == nullptr ? kUnknownFile : file); - - if (line < 0) - return file_name; - else - return file_name + ":" + StreamableToString(line); -} - -GTestLog::GTestLog(GTestLogSeverity severity, const char* file, int line) - : severity_(severity) { - const char* const marker = - severity == GTEST_INFO ? "[ INFO ]" : - severity == GTEST_WARNING ? "[WARNING]" : - severity == GTEST_ERROR ? "[ ERROR ]" : "[ FATAL ]"; - GetStream() << ::std::endl << marker << " " - << FormatFileLocation(file, line).c_str() << ": "; -} - -// Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. -GTestLog::~GTestLog() { - GetStream() << ::std::endl; - if (severity_ == GTEST_FATAL) { - fflush(stderr); - posix::Abort(); - } -} - -// Disable Microsoft deprecation warnings for POSIX functions called from -// this class (creat, dup, dup2, and close) -GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - -#if GTEST_HAS_STREAM_REDIRECTION - -// Object that captures an output stream (stdout/stderr). -class CapturedStream { - public: - // The ctor redirects the stream to a temporary file. - explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { -# if GTEST_OS_WINDOWS - char temp_dir_path[MAX_PATH + 1] = { '\0' }; // NOLINT - char temp_file_path[MAX_PATH + 1] = { '\0' }; // NOLINT - - ::GetTempPathA(sizeof(temp_dir_path), temp_dir_path); - const UINT success = ::GetTempFileNameA(temp_dir_path, - "gtest_redir", - 0, // Generate unique file name. - temp_file_path); - GTEST_CHECK_(success != 0) - << "Unable to create a temporary file in " << temp_dir_path; - const int captured_fd = creat(temp_file_path, _S_IREAD | _S_IWRITE); - GTEST_CHECK_(captured_fd != -1) << "Unable to open temporary file " - << temp_file_path; - filename_ = temp_file_path; -# else - // There's no guarantee that a test has write access to the current - // directory, so we create the temporary file in the /tmp directory - // instead. We use /tmp on most systems, and /sdcard on Android. - // That's because Android doesn't have /tmp. -# if GTEST_OS_LINUX_ANDROID - // Note: Android applications are expected to call the framework's - // Context.getExternalStorageDirectory() method through JNI to get - // the location of the world-writable SD Card directory. However, - // this requires a Context handle, which cannot be retrieved - // globally from native code. Doing so also precludes running the - // code as part of a regular standalone executable, which doesn't - // run in a Dalvik process (e.g. when running it through 'adb shell'). - // - // The location /sdcard is directly accessible from native code - // and is the only location (unofficially) supported by the Android - // team. It's generally a symlink to the real SD Card mount point - // which can be /mnt/sdcard, /mnt/sdcard0, /system/media/sdcard, or - // other OEM-customized locations. Never rely on these, and always - // use /sdcard. - char name_template[] = "/sdcard/gtest_captured_stream.XXXXXX"; -# else - char name_template[] = "/tmp/captured_stream.XXXXXX"; -# endif // GTEST_OS_LINUX_ANDROID - const int captured_fd = mkstemp(name_template); - filename_ = name_template; -# endif // GTEST_OS_WINDOWS - fflush(nullptr); - dup2(captured_fd, fd_); - close(captured_fd); - } - - ~CapturedStream() { - remove(filename_.c_str()); - } - - std::string GetCapturedString() { - if (uncaptured_fd_ != -1) { - // Restores the original stream. - fflush(nullptr); - dup2(uncaptured_fd_, fd_); - close(uncaptured_fd_); - uncaptured_fd_ = -1; - } - - FILE* const file = posix::FOpen(filename_.c_str(), "r"); - const std::string content = ReadEntireFile(file); - posix::FClose(file); - return content; - } - - private: - const int fd_; // A stream to capture. - int uncaptured_fd_; - // Name of the temporary file holding the stderr output. - ::std::string filename_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(CapturedStream); -}; - -GTEST_DISABLE_MSC_DEPRECATED_POP_() - -static CapturedStream* g_captured_stderr = nullptr; -static CapturedStream* g_captured_stdout = nullptr; - -// Starts capturing an output stream (stdout/stderr). -static void CaptureStream(int fd, const char* stream_name, - CapturedStream** stream) { - if (*stream != nullptr) { - GTEST_LOG_(FATAL) << "Only one " << stream_name - << " capturer can exist at a time."; - } - *stream = new CapturedStream(fd); -} - -// Stops capturing the output stream and returns the captured string. -static std::string GetCapturedStream(CapturedStream** captured_stream) { - const std::string content = (*captured_stream)->GetCapturedString(); - - delete *captured_stream; - *captured_stream = nullptr; - - return content; -} - -// Starts capturing stdout. -void CaptureStdout() { - CaptureStream(kStdOutFileno, "stdout", &g_captured_stdout); -} - -// Starts capturing stderr. -void CaptureStderr() { - CaptureStream(kStdErrFileno, "stderr", &g_captured_stderr); -} - -// Stops capturing stdout and returns the captured string. -std::string GetCapturedStdout() { - return GetCapturedStream(&g_captured_stdout); -} - -// Stops capturing stderr and returns the captured string. -std::string GetCapturedStderr() { - return GetCapturedStream(&g_captured_stderr); -} - -#endif // GTEST_HAS_STREAM_REDIRECTION - - - - - -size_t GetFileSize(FILE* file) { - fseek(file, 0, SEEK_END); - return static_cast(ftell(file)); -} - -std::string ReadEntireFile(FILE* file) { - const size_t file_size = GetFileSize(file); - char* const buffer = new char[file_size]; - - size_t bytes_last_read = 0; // # of bytes read in the last fread() - size_t bytes_read = 0; // # of bytes read so far - - fseek(file, 0, SEEK_SET); - - // Keeps reading the file until we cannot read further or the - // pre-determined file size is reached. - do { - bytes_last_read = fread(buffer+bytes_read, 1, file_size-bytes_read, file); - bytes_read += bytes_last_read; - } while (bytes_last_read > 0 && bytes_read < file_size); - - const std::string content(buffer, bytes_read); - delete[] buffer; - - return content; -} - -#if GTEST_HAS_DEATH_TEST -static const std::vector* g_injected_test_argvs = - nullptr; // Owned. - -std::vector GetInjectableArgvs() { - if (g_injected_test_argvs != nullptr) { - return *g_injected_test_argvs; - } - return GetArgvs(); -} - -void SetInjectableArgvs(const std::vector* new_argvs) { - if (g_injected_test_argvs != new_argvs) delete g_injected_test_argvs; - g_injected_test_argvs = new_argvs; -} - -void SetInjectableArgvs(const std::vector& new_argvs) { - SetInjectableArgvs( - new std::vector(new_argvs.begin(), new_argvs.end())); -} - -void ClearInjectableArgvs() { - delete g_injected_test_argvs; - g_injected_test_argvs = nullptr; -} -#endif // GTEST_HAS_DEATH_TEST - -#if GTEST_OS_WINDOWS_MOBILE -namespace posix { -void Abort() { - DebugBreak(); - TerminateProcess(GetCurrentProcess(), 1); -} -} // namespace posix -#endif // GTEST_OS_WINDOWS_MOBILE - -// Returns the name of the environment variable corresponding to the -// given flag. For example, FlagToEnvVar("foo") will return -// "GTEST_FOO" in the open-source version. -static std::string FlagToEnvVar(const char* flag) { - const std::string full_flag = - (Message() << GTEST_FLAG_PREFIX_ << flag).GetString(); - - Message env_var; - for (size_t i = 0; i != full_flag.length(); i++) { - env_var << ToUpper(full_flag.c_str()[i]); - } - - return env_var.GetString(); -} - -// Parses 'str' for a 32-bit signed integer. If successful, writes -// the result to *value and returns true; otherwise leaves *value -// unchanged and returns false. -bool ParseInt32(const Message& src_text, const char* str, Int32* value) { - // Parses the environment variable as a decimal integer. - char* end = nullptr; - const long long_value = strtol(str, &end, 10); // NOLINT - - // Has strtol() consumed all characters in the string? - if (*end != '\0') { - // No - an invalid character was encountered. - Message msg; - msg << "WARNING: " << src_text - << " is expected to be a 32-bit integer, but actually" - << " has value \"" << str << "\".\n"; - printf("%s", msg.GetString().c_str()); - fflush(stdout); - return false; - } - - // Is the parsed value in the range of an Int32? - const Int32 result = static_cast(long_value); - if (long_value == LONG_MAX || long_value == LONG_MIN || - // The parsed value overflows as a long. (strtol() returns - // LONG_MAX or LONG_MIN when the input overflows.) - result != long_value - // The parsed value overflows as an Int32. - ) { - Message msg; - msg << "WARNING: " << src_text - << " is expected to be a 32-bit integer, but actually" - << " has value " << str << ", which overflows.\n"; - printf("%s", msg.GetString().c_str()); - fflush(stdout); - return false; - } - - *value = result; - return true; -} - -// Reads and returns the Boolean environment variable corresponding to -// the given flag; if it's not set, returns default_value. -// -// The value is considered true iff it's not "0". -bool BoolFromGTestEnv(const char* flag, bool default_value) { -#if defined(GTEST_GET_BOOL_FROM_ENV_) - return GTEST_GET_BOOL_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const string_value = posix::GetEnv(env_var.c_str()); - return string_value == nullptr ? default_value - : strcmp(string_value, "0") != 0; -#endif // defined(GTEST_GET_BOOL_FROM_ENV_) -} - -// Reads and returns a 32-bit integer stored in the environment -// variable corresponding to the given flag; if it isn't set or -// doesn't represent a valid 32-bit integer, returns default_value. -Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) { -#if defined(GTEST_GET_INT32_FROM_ENV_) - return GTEST_GET_INT32_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const string_value = posix::GetEnv(env_var.c_str()); - if (string_value == nullptr) { - // The environment variable is not set. - return default_value; - } - - Int32 result = default_value; - if (!ParseInt32(Message() << "Environment variable " << env_var, - string_value, &result)) { - printf("The default value %s is used.\n", - (Message() << default_value).GetString().c_str()); - fflush(stdout); - return default_value; - } - - return result; -#endif // defined(GTEST_GET_INT32_FROM_ENV_) -} - -// As a special case for the 'output' flag, if GTEST_OUTPUT is not -// set, we look for XML_OUTPUT_FILE, which is set by the Bazel build -// system. The value of XML_OUTPUT_FILE is a filename without the -// "xml:" prefix of GTEST_OUTPUT. -// Note that this is meant to be called at the call site so it does -// not check that the flag is 'output' -// In essence this checks an env variable called XML_OUTPUT_FILE -// and if it is set we prepend "xml:" to its value, if it not set we return "" -std::string OutputFlagAlsoCheckEnvVar(){ - std::string default_value_for_output_flag = ""; - const char* xml_output_file_env = posix::GetEnv("XML_OUTPUT_FILE"); - if (nullptr != xml_output_file_env) { - default_value_for_output_flag = std::string("xml:") + xml_output_file_env; - } - return default_value_for_output_flag; -} - -// Reads and returns the string environment variable corresponding to -// the given flag; if it's not set, returns default_value. -const char* StringFromGTestEnv(const char* flag, const char* default_value) { -#if defined(GTEST_GET_STRING_FROM_ENV_) - return GTEST_GET_STRING_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const value = posix::GetEnv(env_var.c_str()); - return value == nullptr ? default_value : value; -#endif // defined(GTEST_GET_STRING_FROM_ENV_) -} - -} // namespace internal -} // namespace testing -// Copyright 2007, Google Inc. -// 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. - - -// Google Test - The Google C++ Testing and Mocking Framework -// -// This file implements a universal value printer that can print a -// value of any type T: -// -// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); -// -// It uses the << operator when possible, and prints the bytes in the -// object otherwise. A user can override its behavior for a class -// type Foo by defining either operator<<(::std::ostream&, const Foo&) -// or void PrintTo(const Foo&, ::std::ostream*) in the namespace that -// defines Foo. - -#include -#include -#include -#include // NOLINT -#include - -namespace testing { - -namespace { - -using ::std::ostream; - -// Prints a segment of bytes in the given object. -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, - size_t count, ostream* os) { - char text[5] = ""; - for (size_t i = 0; i != count; i++) { - const size_t j = start + i; - if (i != 0) { - // Organizes the bytes into groups of 2 for easy parsing by - // human. - if ((j % 2) == 0) - *os << ' '; - else - *os << '-'; - } - GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]); - *os << text; - } -} - -// Prints the bytes in the given value to the given ostream. -void PrintBytesInObjectToImpl(const unsigned char* obj_bytes, size_t count, - ostream* os) { - // Tells the user how big the object is. - *os << count << "-byte object <"; - - const size_t kThreshold = 132; - const size_t kChunkSize = 64; - // If the object size is bigger than kThreshold, we'll have to omit - // some details by printing only the first and the last kChunkSize - // bytes. - if (count < kThreshold) { - PrintByteSegmentInObjectTo(obj_bytes, 0, count, os); - } else { - PrintByteSegmentInObjectTo(obj_bytes, 0, kChunkSize, os); - *os << " ... "; - // Rounds up to 2-byte boundary. - const size_t resume_pos = (count - kChunkSize + 1)/2*2; - PrintByteSegmentInObjectTo(obj_bytes, resume_pos, count - resume_pos, os); - } - *os << ">"; -} - -} // namespace - -namespace internal2 { - -// Delegates to PrintBytesInObjectToImpl() to print the bytes in the -// given object. The delegation simplifies the implementation, which -// uses the << operator and thus is easier done outside of the -// ::testing::internal namespace, which contains a << operator that -// sometimes conflicts with the one in STL. -void PrintBytesInObjectTo(const unsigned char* obj_bytes, size_t count, - ostream* os) { - PrintBytesInObjectToImpl(obj_bytes, count, os); -} - -} // namespace internal2 - -namespace internal { - -// Depending on the value of a char (or wchar_t), we print it in one -// of three formats: -// - as is if it's a printable ASCII (e.g. 'a', '2', ' '), -// - as a hexadecimal escape sequence (e.g. '\x7F'), or -// - as a special escape sequence (e.g. '\r', '\n'). -enum CharFormat { - kAsIs, - kHexEscape, - kSpecialEscape -}; - -// Returns true if c is a printable ASCII character. We test the -// value of c directly instead of calling isprint(), which is buggy on -// Windows Mobile. -inline bool IsPrintableAscii(wchar_t c) { - return 0x20 <= c && c <= 0x7E; -} - -// Prints a wide or narrow char c as a character literal without the -// quotes, escaping it when necessary; returns how c was formatted. -// The template argument UnsignedChar is the unsigned version of Char, -// which is the type of c. -template -static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) { - switch (static_cast(c)) { - case L'\0': - *os << "\\0"; - break; - case L'\'': - *os << "\\'"; - break; - case L'\\': - *os << "\\\\"; - break; - case L'\a': - *os << "\\a"; - break; - case L'\b': - *os << "\\b"; - break; - case L'\f': - *os << "\\f"; - break; - case L'\n': - *os << "\\n"; - break; - case L'\r': - *os << "\\r"; - break; - case L'\t': - *os << "\\t"; - break; - case L'\v': - *os << "\\v"; - break; - default: - if (IsPrintableAscii(c)) { - *os << static_cast(c); - return kAsIs; - } else { - ostream::fmtflags flags = os->flags(); - *os << "\\x" << std::hex << std::uppercase - << static_cast(static_cast(c)); - os->flags(flags); - return kHexEscape; - } - } - return kSpecialEscape; -} - -// Prints a wchar_t c as if it's part of a string literal, escaping it when -// necessary; returns how c was formatted. -static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) { - switch (c) { - case L'\'': - *os << "'"; - return kAsIs; - case L'"': - *os << "\\\""; - return kSpecialEscape; - default: - return PrintAsCharLiteralTo(c, os); - } -} - -// Prints a char c as if it's part of a string literal, escaping it when -// necessary; returns how c was formatted. -static CharFormat PrintAsStringLiteralTo(char c, ostream* os) { - return PrintAsStringLiteralTo( - static_cast(static_cast(c)), os); -} - -// Prints a wide or narrow character c and its code. '\0' is printed -// as "'\\0'", other unprintable characters are also properly escaped -// using the standard C++ escape sequence. The template argument -// UnsignedChar is the unsigned version of Char, which is the type of c. -template -void PrintCharAndCodeTo(Char c, ostream* os) { - // First, print c as a literal in the most readable form we can find. - *os << ((sizeof(c) > 1) ? "L'" : "'"); - const CharFormat format = PrintAsCharLiteralTo(c, os); - *os << "'"; - - // To aid user debugging, we also print c's code in decimal, unless - // it's 0 (in which case c was printed as '\\0', making the code - // obvious). - if (c == 0) - return; - *os << " (" << static_cast(c); - - // For more convenience, we print c's code again in hexadecimal, - // unless c was already printed in the form '\x##' or the code is in - // [1, 9]. - if (format == kHexEscape || (1 <= c && c <= 9)) { - // Do nothing. - } else { - *os << ", 0x" << String::FormatHexInt(static_cast(c)); - } - *os << ")"; -} - -void PrintTo(unsigned char c, ::std::ostream* os) { - PrintCharAndCodeTo(c, os); -} -void PrintTo(signed char c, ::std::ostream* os) { - PrintCharAndCodeTo(c, os); -} - -// Prints a wchar_t as a symbol if it is printable or as its internal -// code otherwise and also as its code. L'\0' is printed as "L'\\0'". -void PrintTo(wchar_t wc, ostream* os) { - PrintCharAndCodeTo(wc, os); -} - -// Prints the given array of characters to the ostream. CharType must be either -// char or wchar_t. -// The array starts at begin, the length is len, it may include '\0' characters -// and may not be NUL-terminated. -template -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -static CharFormat PrintCharsAsStringTo( - const CharType* begin, size_t len, ostream* os) { - const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\""; - *os << kQuoteBegin; - bool is_previous_hex = false; - CharFormat print_format = kAsIs; - for (size_t index = 0; index < len; ++index) { - const CharType cur = begin[index]; - if (is_previous_hex && IsXDigit(cur)) { - // Previous character is of '\x..' form and this character can be - // interpreted as another hexadecimal digit in its number. Break string to - // disambiguate. - *os << "\" " << kQuoteBegin; - } - is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape; - // Remember if any characters required hex escaping. - if (is_previous_hex) { - print_format = kHexEscape; - } - } - *os << "\""; - return print_format; -} - -// Prints a (const) char/wchar_t array of 'len' elements, starting at address -// 'begin'. CharType must be either char or wchar_t. -template -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -static void UniversalPrintCharArray( - const CharType* begin, size_t len, ostream* os) { - // The code - // const char kFoo[] = "foo"; - // generates an array of 4, not 3, elements, with the last one being '\0'. - // - // Therefore when printing a char array, we don't print the last element if - // it's '\0', such that the output matches the string literal as it's - // written in the source code. - if (len > 0 && begin[len - 1] == '\0') { - PrintCharsAsStringTo(begin, len - 1, os); - return; - } - - // If, however, the last element in the array is not '\0', e.g. - // const char kFoo[] = { 'f', 'o', 'o' }; - // we must print the entire array. We also print a message to indicate - // that the array is not NUL-terminated. - PrintCharsAsStringTo(begin, len, os); - *os << " (no terminating NUL)"; -} - -// Prints a (const) char array of 'len' elements, starting at address 'begin'. -void UniversalPrintArray(const char* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -// Prints a (const) wchar_t array of 'len' elements, starting at address -// 'begin'. -void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -// Prints the given C string to the ostream. -void PrintTo(const char* s, ostream* os) { - if (s == nullptr) { - *os << "NULL"; - } else { - *os << ImplicitCast_(s) << " pointing to "; - PrintCharsAsStringTo(s, strlen(s), os); - } -} - -// MSVC compiler can be configured to define whar_t as a typedef -// of unsigned short. Defining an overload for const wchar_t* in that case -// would cause pointers to unsigned shorts be printed as wide strings, -// possibly accessing more memory than intended and causing invalid -// memory accesses. MSVC defines _NATIVE_WCHAR_T_DEFINED symbol when -// wchar_t is implemented as a native type. -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) -// Prints the given wide C string to the ostream. -void PrintTo(const wchar_t* s, ostream* os) { - if (s == nullptr) { - *os << "NULL"; - } else { - *os << ImplicitCast_(s) << " pointing to "; - PrintCharsAsStringTo(s, wcslen(s), os); - } -} -#endif // wchar_t is native - -namespace { - -bool ContainsUnprintableControlCodes(const char* str, size_t length) { - const unsigned char *s = reinterpret_cast(str); - - for (size_t i = 0; i < length; i++) { - unsigned char ch = *s++; - if (std::iscntrl(ch)) { - switch (ch) { - case '\t': - case '\n': - case '\r': - break; - default: - return true; - } - } - } - return false; -} - -bool IsUTF8TrailByte(unsigned char t) { return 0x80 <= t && t<= 0xbf; } - -bool IsValidUTF8(const char* str, size_t length) { - const unsigned char *s = reinterpret_cast(str); - - for (size_t i = 0; i < length;) { - unsigned char lead = s[i++]; - - if (lead <= 0x7f) { - continue; // single-byte character (ASCII) 0..7F - } - if (lead < 0xc2) { - return false; // trail byte or non-shortest form - } else if (lead <= 0xdf && (i + 1) <= length && IsUTF8TrailByte(s[i])) { - ++i; // 2-byte character - } else if (0xe0 <= lead && lead <= 0xef && (i + 2) <= length && - IsUTF8TrailByte(s[i]) && - IsUTF8TrailByte(s[i + 1]) && - // check for non-shortest form and surrogate - (lead != 0xe0 || s[i] >= 0xa0) && - (lead != 0xed || s[i] < 0xa0)) { - i += 2; // 3-byte character - } else if (0xf0 <= lead && lead <= 0xf4 && (i + 3) <= length && - IsUTF8TrailByte(s[i]) && - IsUTF8TrailByte(s[i + 1]) && - IsUTF8TrailByte(s[i + 2]) && - // check for non-shortest form - (lead != 0xf0 || s[i] >= 0x90) && - (lead != 0xf4 || s[i] < 0x90)) { - i += 3; // 4-byte character - } else { - return false; - } - } - return true; -} - -void ConditionalPrintAsText(const char* str, size_t length, ostream* os) { - if (!ContainsUnprintableControlCodes(str, length) && - IsValidUTF8(str, length)) { - *os << "\n As Text: \"" << str << "\""; - } -} - -} // anonymous namespace - -void PrintStringTo(const ::std::string& s, ostream* os) { - if (PrintCharsAsStringTo(s.data(), s.size(), os) == kHexEscape) { - if (GTEST_FLAG(print_utf8)) { - ConditionalPrintAsText(s.data(), s.size(), os); - } - } -} - -#if GTEST_HAS_STD_WSTRING -void PrintWideStringTo(const ::std::wstring& s, ostream* os) { - PrintCharsAsStringTo(s.data(), s.size(), os); -} -#endif // GTEST_HAS_STD_WSTRING - -} // namespace internal - -} // namespace testing -// Copyright 2008, Google Inc. -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) - - -namespace testing { - -using internal::GetUnitTestImpl; - -// Gets the summary of the failure message by omitting the stack trace -// in it. -std::string TestPartResult::ExtractSummary(const char* message) { - const char* const stack_trace = strstr(message, internal::kStackTraceMarker); - return stack_trace == nullptr ? message : std::string(message, stack_trace); -} - -// Prints a TestPartResult object. -std::ostream& operator<<(std::ostream& os, const TestPartResult& result) { - return os << result.file_name() << ":" << result.line_number() << ": " - << (result.type() == TestPartResult::kSuccess - ? "Success" - : result.type() == TestPartResult::kSkip - ? "Skipped" - : result.type() == TestPartResult::kFatalFailure - ? "Fatal failure" - : "Non-fatal failure") - << ":\n" - << result.message() << std::endl; -} - -// Appends a TestPartResult to the array. -void TestPartResultArray::Append(const TestPartResult& result) { - array_.push_back(result); -} - -// Returns the TestPartResult at the given index (0-based). -const TestPartResult& TestPartResultArray::GetTestPartResult(int index) const { - if (index < 0 || index >= size()) { - printf("\nInvalid index (%d) into TestPartResultArray.\n", index); - internal::posix::Abort(); - } - - return array_[index]; -} - -// Returns the number of TestPartResult objects in the array. -int TestPartResultArray::size() const { - return static_cast(array_.size()); -} - -namespace internal { - -HasNewFatalFailureHelper::HasNewFatalFailureHelper() - : has_new_fatal_failure_(false), - original_reporter_(GetUnitTestImpl()-> - GetTestPartResultReporterForCurrentThread()) { - GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(this); -} - -HasNewFatalFailureHelper::~HasNewFatalFailureHelper() { - GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread( - original_reporter_); -} - -void HasNewFatalFailureHelper::ReportTestPartResult( - const TestPartResult& result) { - if (result.fatally_failed()) - has_new_fatal_failure_ = true; - original_reporter_->ReportTestPartResult(result); -} - -} // namespace internal - -} // namespace testing -// Copyright 2008 Google Inc. -// 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. - - - - -namespace testing { -namespace internal { - -#if GTEST_HAS_TYPED_TEST_P - -// Skips to the first non-space char in str. Returns an empty string if str -// contains only whitespace characters. -static const char* SkipSpaces(const char* str) { - while (IsSpace(*str)) - str++; - return str; -} - -static std::vector SplitIntoTestNames(const char* src) { - std::vector name_vec; - src = SkipSpaces(src); - for (; src != nullptr; src = SkipComma(src)) { - name_vec.push_back(StripTrailingSpaces(GetPrefixUntilComma(src))); - } - return name_vec; -} - -// Verifies that registered_tests match the test names in -// registered_tests_; returns registered_tests if successful, or -// aborts the program otherwise. -const char* TypedTestSuitePState::VerifyRegisteredTestNames( - const char* file, int line, const char* registered_tests) { - typedef RegisteredTestsMap::const_iterator RegisteredTestIter; - registered_ = true; - - std::vector name_vec = SplitIntoTestNames(registered_tests); - - Message errors; - - std::set tests; - for (std::vector::const_iterator name_it = name_vec.begin(); - name_it != name_vec.end(); ++name_it) { - const std::string& name = *name_it; - if (tests.count(name) != 0) { - errors << "Test " << name << " is listed more than once.\n"; - continue; - } - - bool found = false; - for (RegisteredTestIter it = registered_tests_.begin(); - it != registered_tests_.end(); - ++it) { - if (name == it->first) { - found = true; - break; - } - } - - if (found) { - tests.insert(name); - } else { - errors << "No test named " << name - << " can be found in this test suite.\n"; - } - } - - for (RegisteredTestIter it = registered_tests_.begin(); - it != registered_tests_.end(); - ++it) { - if (tests.count(it->first) == 0) { - errors << "You forgot to list test " << it->first << ".\n"; - } - } - - const std::string& errors_str = errors.GetString(); - if (errors_str != "") { - fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(), - errors_str.c_str()); - fflush(stderr); - posix::Abort(); - } - - return registered_tests; -} - -#endif // GTEST_HAS_TYPED_TEST_P - -} // namespace internal -} // namespace testing diff --git a/test/cctest/gtest/gtest.h b/test/cctest/gtest/gtest.h deleted file mode 100644 index dbbf5680bd946e..00000000000000 --- a/test/cctest/gtest/gtest.h +++ /dev/null @@ -1,14901 +0,0 @@ -// Copyright 2005, Google Inc. -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for Google Test. It should be -// included by any test program that uses Google Test. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! -// -// Acknowledgment: Google Test borrowed the idea of automatic test -// registration from Barthelemy Dagenais' (barthelemy@prologique.com) -// easyUnit framework. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_H_ - -#include -#include -#include -#include -#include -#include - -// Copyright 2005, Google Inc. -// 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. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares functions and macros used internally by -// Google Test. They are subject to change without notice. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ - -// Copyright 2005, Google Inc. -// 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. -// -// Low-level types and utilities for porting Google Test to various -// platforms. All macros ending with _ and symbols defined in an -// internal namespace are subject to change without notice. Code -// outside Google Test MUST NOT USE THEM DIRECTLY. Macros that don't -// end with _ are part of Google Test's public API and can be used by -// code outside Google Test. -// -// This file is fundamental to Google Test. All other Google Test source -// files are expected to #include this. Therefore, it cannot #include -// any other Google Test header. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ - -// Environment-describing macros -// ----------------------------- -// -// Google Test can be used in many different environments. Macros in -// this section tell Google Test what kind of environment it is being -// used in, such that Google Test can provide environment-specific -// features and implementations. -// -// Google Test tries to automatically detect the properties of its -// environment, so users usually don't need to worry about these -// macros. However, the automatic detection is not perfect. -// Sometimes it's necessary for a user to define some of the following -// macros in the build script to override Google Test's decisions. -// -// If the user doesn't define a macro in the list, Google Test will -// provide a default definition. After this header is #included, all -// macros in this list will be defined to either 1 or 0. -// -// Notes to maintainers: -// - Each macro here is a user-tweakable knob; do not grow the list -// lightly. -// - Use #if to key off these macros. Don't use #ifdef or "#if -// defined(...)", which will not work as these macros are ALWAYS -// defined. -// -// GTEST_HAS_CLONE - Define it to 1/0 to indicate that clone(2) -// is/isn't available. -// GTEST_HAS_EXCEPTIONS - Define it to 1/0 to indicate that exceptions -// are enabled. -// GTEST_HAS_POSIX_RE - Define it to 1/0 to indicate that POSIX regular -// expressions are/aren't available. -// GTEST_HAS_PTHREAD - Define it to 1/0 to indicate that -// is/isn't available. -// GTEST_HAS_RTTI - Define it to 1/0 to indicate that RTTI is/isn't -// enabled. -// GTEST_HAS_STD_WSTRING - Define it to 1/0 to indicate that -// std::wstring does/doesn't work (Google Test can -// be used where std::wstring is unavailable). -// GTEST_HAS_SEH - Define it to 1/0 to indicate whether the -// compiler supports Microsoft's "Structured -// Exception Handling". -// GTEST_HAS_STREAM_REDIRECTION -// - Define it to 1/0 to indicate whether the -// platform supports I/O stream redirection using -// dup() and dup2(). -// GTEST_LINKED_AS_SHARED_LIBRARY -// - Define to 1 when compiling tests that use -// Google Test as a shared library (known as -// DLL on Windows). -// GTEST_CREATE_SHARED_LIBRARY -// - Define to 1 when compiling Google Test itself -// as a shared library. -// GTEST_DEFAULT_DEATH_TEST_STYLE -// - The default value of --gtest_death_test_style. -// The legacy default has been "fast" in the open -// source version since 2008. The recommended value -// is "threadsafe", and can be set in -// custom/gtest-port.h. - -// Platform-indicating macros -// -------------------------- -// -// Macros indicating the platform on which Google Test is being used -// (a macro is defined to 1 if compiled on the given platform; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// GTEST_OS_AIX - IBM AIX -// GTEST_OS_CYGWIN - Cygwin -// GTEST_OS_DRAGONFLY - DragonFlyBSD -// GTEST_OS_FREEBSD - FreeBSD -// GTEST_OS_FUCHSIA - Fuchsia -// GTEST_OS_GNU_KFREEBSD - GNU/kFreeBSD -// GTEST_OS_HAIKU - Haiku -// GTEST_OS_HPUX - HP-UX -// GTEST_OS_LINUX - Linux -// GTEST_OS_LINUX_ANDROID - Google Android -// GTEST_OS_MAC - Mac OS X -// GTEST_OS_IOS - iOS -// GTEST_OS_NACL - Google Native Client (NaCl) -// GTEST_OS_NETBSD - NetBSD -// GTEST_OS_OPENBSD - OpenBSD -// GTEST_OS_OS2 - OS/2 -// GTEST_OS_QNX - QNX -// GTEST_OS_SOLARIS - Sun Solaris -// GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) -// GTEST_OS_WINDOWS_DESKTOP - Windows Desktop -// GTEST_OS_WINDOWS_MINGW - MinGW -// GTEST_OS_WINDOWS_MOBILE - Windows Mobile -// GTEST_OS_WINDOWS_PHONE - Windows Phone -// GTEST_OS_WINDOWS_RT - Windows Store App/WinRT -// GTEST_OS_ZOS - z/OS -// -// Among the platforms, Cygwin, Linux, Mac OS X, and Windows have the -// most stable support. Since core members of the Google Test project -// don't have access to other platforms, support for them may be less -// stable. If you notice any problems on your platform, please notify -// googletestframework@googlegroups.com (patches for fixing them are -// even more welcome!). -// -// It is possible that none of the GTEST_OS_* macros are defined. - -// Feature-indicating macros -// ------------------------- -// -// Macros indicating which Google Test features are available (a macro -// is defined to 1 if the corresponding feature is supported; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// These macros are public so that portable tests can be written. -// Such tests typically surround code using a feature with an #if -// which controls that code. For example: -// -// #if GTEST_HAS_DEATH_TEST -// EXPECT_DEATH(DoSomethingDeadly()); -// #endif -// -// GTEST_HAS_DEATH_TEST - death tests -// GTEST_HAS_TYPED_TEST - typed tests -// GTEST_HAS_TYPED_TEST_P - type-parameterized tests -// GTEST_IS_THREADSAFE - Google Test is thread-safe. -// GOOGLETEST_CM0007 DO NOT DELETE -// GTEST_USES_POSIX_RE - enhanced POSIX regex is used. Do not confuse with -// GTEST_HAS_POSIX_RE (see above) which users can -// define themselves. -// GTEST_USES_SIMPLE_RE - our own simple regex is used; -// the above RE\b(s) are mutually exclusive. - -// Misc public macros -// ------------------ -// -// GTEST_FLAG(flag_name) - references the variable corresponding to -// the given Google Test flag. - -// Internal utilities -// ------------------ -// -// The following macros and utilities are for Google Test's INTERNAL -// use only. Code outside Google Test MUST NOT USE THEM DIRECTLY. -// -// Macros for basic C++ coding: -// GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning. -// GTEST_ATTRIBUTE_UNUSED_ - declares that a class' instances or a -// variable don't have to be used. -// GTEST_DISALLOW_ASSIGN_ - disables operator=. -// GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=. -// GTEST_MUST_USE_RESULT_ - declares that a function's result must be used. -// GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is -// suppressed (constant conditional). -// GTEST_INTENTIONAL_CONST_COND_POP_ - finish code section where MSVC C4127 -// is suppressed. -// -// Synchronization: -// Mutex, MutexLock, ThreadLocal, GetThreadCount() -// - synchronization primitives. -// -// Template meta programming: -// IteratorTraits - partial implementation of std::iterator_traits, which -// is not available in libCstd when compiled with Sun C++. -// -// -// Regular expressions: -// RE - a simple regular expression class using the POSIX -// Extended Regular Expression syntax on UNIX-like platforms -// GOOGLETEST_CM0008 DO NOT DELETE -// or a reduced regular exception syntax on other -// platforms, including Windows. -// Logging: -// GTEST_LOG_() - logs messages at the specified severity level. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. -// -// Stdout and stderr capturing: -// CaptureStdout() - starts capturing stdout. -// GetCapturedStdout() - stops capturing stdout and returns the captured -// string. -// CaptureStderr() - starts capturing stderr. -// GetCapturedStderr() - stops capturing stderr and returns the captured -// string. -// -// Integer types: -// TypeWithSize - maps an integer to a int type. -// Int32, UInt32, Int64, UInt64, TimeInMillis -// - integers of known sizes. -// BiggestInt - the biggest signed integer type. -// -// Command-line utilities: -// GTEST_DECLARE_*() - declares a flag. -// GTEST_DEFINE_*() - defines a flag. -// GetInjectableArgvs() - returns the command line as a vector of strings. -// -// Environment variable utilities: -// GetEnv() - gets the value of an environment variable. -// BoolFromGTestEnv() - parses a bool environment variable. -// Int32FromGTestEnv() - parses an Int32 environment variable. -// StringFromGTestEnv() - parses a string environment variable. -// -// Deprecation warnings: -// GTEST_INTERNAL_DEPRECATED(message) - attribute marking a function as -// deprecated; calling a marked function -// should generate a compiler warning - -#include // for isspace, etc -#include // for ptrdiff_t -#include -#include -#include -#include -#include - -#ifndef _WIN32_WCE -# include -# include -#endif // !_WIN32_WCE - -#if defined __APPLE__ -# include -# include -#endif - -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include -#include -#include // NOLINT - -// Copyright 2015, Google Inc. -// 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. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the GTEST_OS_* macro. -// It is separate from gtest-port.h so that custom/gtest-port.h can include it. - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ - -// Determines the platform on which Google Test is compiled. -#ifdef __CYGWIN__ -# define GTEST_OS_CYGWIN 1 -# elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__) -# define GTEST_OS_WINDOWS_MINGW 1 -# define GTEST_OS_WINDOWS 1 -#elif defined _WIN32 -# define GTEST_OS_WINDOWS 1 -# ifdef _WIN32_WCE -# define GTEST_OS_WINDOWS_MOBILE 1 -# elif defined(WINAPI_FAMILY) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define GTEST_OS_WINDOWS_DESKTOP 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) -# define GTEST_OS_WINDOWS_PHONE 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -# define GTEST_OS_WINDOWS_RT 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE) -# define GTEST_OS_WINDOWS_PHONE 1 -# define GTEST_OS_WINDOWS_TV_TITLE 1 -# else - // WINAPI_FAMILY defined but no known partition matched. - // Default to desktop. -# define GTEST_OS_WINDOWS_DESKTOP 1 -# endif -# else -# define GTEST_OS_WINDOWS_DESKTOP 1 -# endif // _WIN32_WCE -#elif defined __OS2__ -# define GTEST_OS_OS2 1 -#elif defined __APPLE__ -# define GTEST_OS_MAC 1 -# if TARGET_OS_IPHONE -# define GTEST_OS_IOS 1 -# endif -#elif defined __DragonFly__ -# define GTEST_OS_DRAGONFLY 1 -#elif defined __FreeBSD__ -# define GTEST_OS_FREEBSD 1 -#elif defined __Fuchsia__ -# define GTEST_OS_FUCHSIA 1 -#elif defined(__GLIBC__) && defined(__FreeBSD_kernel__) -# define GTEST_OS_GNU_KFREEBSD 1 -#elif defined __linux__ -# define GTEST_OS_LINUX 1 -# if defined __ANDROID__ -# define GTEST_OS_LINUX_ANDROID 1 -# endif -#elif defined __MVS__ -# define GTEST_OS_ZOS 1 -#elif defined(__sun) && defined(__SVR4) -# define GTEST_OS_SOLARIS 1 -#elif defined(_AIX) -# define GTEST_OS_AIX 1 -#elif defined(__hpux) -# define GTEST_OS_HPUX 1 -#elif defined __native_client__ -# define GTEST_OS_NACL 1 -#elif defined __NetBSD__ -# define GTEST_OS_NETBSD 1 -#elif defined __OpenBSD__ -# define GTEST_OS_OPENBSD 1 -#elif defined __QNX__ -# define GTEST_OS_QNX 1 -#elif defined(__HAIKU__) -#define GTEST_OS_HAIKU 1 -#endif // __CYGWIN__ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ -// Copyright 2015, Google Inc. -// 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. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ - -#if !defined(GTEST_DEV_EMAIL_) -# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com" -# define GTEST_FLAG_PREFIX_ "gtest_" -# define GTEST_FLAG_PREFIX_DASH_ "gtest-" -# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_" -# define GTEST_NAME_ "Google Test" -# define GTEST_PROJECT_URL_ "https://github.com/google/googletest/" -#endif // !defined(GTEST_DEV_EMAIL_) - -#if !defined(GTEST_INIT_GOOGLE_TEST_NAME_) -# define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest" -#endif // !defined(GTEST_INIT_GOOGLE_TEST_NAME_) - -// Determines the version of gcc that is used to compile this. -#ifdef __GNUC__ -// 40302 means version 4.3.2. -# define GTEST_GCC_VER_ \ - (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) -#endif // __GNUC__ - -// Macros for disabling Microsoft Visual C++ warnings. -// -// GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385) -// /* code that triggers warnings C4800 and C4385 */ -// GTEST_DISABLE_MSC_WARNINGS_POP_() -#if defined(_MSC_VER) -# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \ - __pragma(warning(push)) \ - __pragma(warning(disable: warnings)) -# define GTEST_DISABLE_MSC_WARNINGS_POP_() \ - __pragma(warning(pop)) -#else -// Not all compilers are MSVC -# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) -# define GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Clang on Windows does not understand MSVC's pragma warning. -// We need clang-specific way to disable function deprecation warning. -#ifdef __clang__ -# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"") -#define GTEST_DISABLE_MSC_DEPRECATED_POP_() \ - _Pragma("clang diagnostic pop") -#else -# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996) -# define GTEST_DISABLE_MSC_DEPRECATED_POP_() \ - GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Brings in definitions for functions used in the testing::internal::posix -// namespace (read, write, close, chdir, isatty, stat). We do not currently -// use them on Windows Mobile. -#if GTEST_OS_WINDOWS -# if !GTEST_OS_WINDOWS_MOBILE -# include -# include -# endif -// In order to avoid having to include , use forward declaration -#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR) -// MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two -// separate (equivalent) structs, instead of using typedef -typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#else -// Assume CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION. -// This assumption is verified by -// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION. -typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#endif -#else -// This assumes that non-Windows OSes provide unistd.h. For OSes where this -// is not the case, we need to include headers that provide the functions -// mentioned above. -# include -# include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_LINUX_ANDROID -// Used to define __ANDROID_API__ matching the target NDK API level. -# include // NOLINT -#endif - -// Defines this to true iff Google Test can use POSIX regular expressions. -#ifndef GTEST_HAS_POSIX_RE -# if GTEST_OS_LINUX_ANDROID -// On Android, is only available starting with Gingerbread. -# define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) -# else -# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) -# endif -#endif - -#if GTEST_USES_PCRE -// The appropriate headers have already been included. - -#elif GTEST_HAS_POSIX_RE - -// On some platforms, needs someone to define size_t, and -// won't compile otherwise. We can #include it here as we already -// included , which is guaranteed to define size_t through -// . -# include // NOLINT - -# define GTEST_USES_POSIX_RE 1 - -#elif GTEST_OS_WINDOWS - -// is not available on Windows. Use our own simple regex -// implementation instead. -# define GTEST_USES_SIMPLE_RE 1 - -#else - -// may not be available on this platform. Use our own -// simple regex implementation instead. -# define GTEST_USES_SIMPLE_RE 1 - -#endif // GTEST_USES_PCRE - -#ifndef GTEST_HAS_EXCEPTIONS -// The user didn't tell us whether exceptions are enabled, so we need -// to figure it out. -# if defined(_MSC_VER) && defined(_CPPUNWIND) -// MSVC defines _CPPUNWIND to 1 iff exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__BORLANDC__) -// C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS -// macro to enable exceptions, so we'll do the same. -// Assumes that exceptions are enabled by default. -# ifndef _HAS_EXCEPTIONS -# define _HAS_EXCEPTIONS 1 -# endif // _HAS_EXCEPTIONS -# define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS -# elif defined(__clang__) -// clang defines __EXCEPTIONS iff exceptions are enabled before clang 220714, -// but iff cleanups are enabled after that. In Obj-C++ files, there can be -// cleanups for ObjC exceptions which also need cleanups, even if C++ exceptions -// are disabled. clang has __has_feature(cxx_exceptions) which checks for C++ -// exceptions starting at clang r206352, but which checked for cleanups prior to -// that. To reliably check for C++ exception availability with clang, check for -// __EXCEPTIONS && __has_feature(cxx_exceptions). -# define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions)) -# elif defined(__GNUC__) && __EXCEPTIONS -// gcc defines __EXCEPTIONS to 1 iff exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__SUNPRO_CC) -// Sun Pro CC supports exceptions. However, there is no compile-time way of -// detecting whether they are enabled or not. Therefore, we assume that -// they are enabled unless the user tells us otherwise. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__IBMCPP__) && __EXCEPTIONS -// xlC defines __EXCEPTIONS to 1 iff exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__HP_aCC) -// Exception handling is in effect by default in HP aCC compiler. It has to -// be turned of by +noeh compiler option if desired. -# define GTEST_HAS_EXCEPTIONS 1 -# else -// For other compilers, we assume exceptions are disabled to be -// conservative. -# define GTEST_HAS_EXCEPTIONS 0 -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -#endif // GTEST_HAS_EXCEPTIONS - -#if !defined(GTEST_HAS_STD_STRING) -// Even though we don't use this macro any longer, we keep it in case -// some clients still depend on it. -# define GTEST_HAS_STD_STRING 1 -#elif !GTEST_HAS_STD_STRING -// The user told us that ::std::string isn't available. -# error "::std::string isn't available." -#endif // !defined(GTEST_HAS_STD_STRING) - -#ifndef GTEST_HAS_STD_WSTRING -// The user didn't tell us whether ::std::wstring is available, so we need -// to figure it out. -// Cygwin 1.7 and below doesn't support ::std::wstring. -// Solaris' libc++ doesn't support it either. Android has -// no support for it at least as recent as Froyo (2.2). -#define GTEST_HAS_STD_WSTRING \ - (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - GTEST_OS_HAIKU)) - -#endif // GTEST_HAS_STD_WSTRING - -// Determines whether RTTI is available. -#ifndef GTEST_HAS_RTTI -// The user didn't tell us whether RTTI is enabled, so we need to -// figure it out. - -# ifdef _MSC_VER - -# ifdef _CPPRTTI // MSVC defines this macro iff RTTI is enabled. -# define GTEST_HAS_RTTI 1 -# else -# define GTEST_HAS_RTTI 0 -# endif - -// Starting with version 4.3.2, gcc defines __GXX_RTTI iff RTTI is enabled. -# elif defined(__GNUC__) - -# ifdef __GXX_RTTI -// When building against STLport with the Android NDK and with -// -frtti -fno-exceptions, the build fails at link time with undefined -// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, -// so disable RTTI when detected. -# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ - !defined(__EXCEPTIONS) -# define GTEST_HAS_RTTI 0 -# else -# define GTEST_HAS_RTTI 1 -# endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS -# else -# define GTEST_HAS_RTTI 0 -# endif // __GXX_RTTI - -// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends -// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the -// first version with C++ support. -# elif defined(__clang__) - -# define GTEST_HAS_RTTI __has_feature(cxx_rtti) - -// Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if -// both the typeid and dynamic_cast features are present. -# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) - -# ifdef __RTTI_ALL__ -# define GTEST_HAS_RTTI 1 -# else -# define GTEST_HAS_RTTI 0 -# endif - -# else - -// For all other compilers, we assume RTTI is enabled. -# define GTEST_HAS_RTTI 1 - -# endif // _MSC_VER - -#endif // GTEST_HAS_RTTI - -// It's this header's responsibility to #include when RTTI -// is enabled. -#if GTEST_HAS_RTTI -# include -#endif - -// Determines whether Google Test can use the pthreads library. -#ifndef GTEST_HAS_PTHREAD -// The user didn't tell us explicitly, so we make reasonable assumptions about -// which platforms have pthreads support. -// -// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 -// to your compiler flags. -#define GTEST_HAS_PTHREAD \ - (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_OPENBSD || \ - GTEST_OS_HAIKU) -#endif // GTEST_HAS_PTHREAD - -#if GTEST_HAS_PTHREAD -// gtest-port.h guarantees to #include when GTEST_HAS_PTHREAD is -// true. -# include // NOLINT - -// For timespec and nanosleep, used below. -# include // NOLINT -#endif - -// Determines whether clone(2) is supported. -// Usually it will only be available on Linux, excluding -// Linux on the Itanium architecture. -// Also see http://linux.die.net/man/2/clone. -#ifndef GTEST_HAS_CLONE -// The user didn't tell us, so we need to figure it out. - -# if GTEST_OS_LINUX && !defined(__ia64__) -# if GTEST_OS_LINUX_ANDROID -// On Android, clone() became available at different API levels for each 32-bit -// architecture. -# if defined(__LP64__) || \ - (defined(__arm__) && __ANDROID_API__ >= 9) || \ - (defined(__mips__) && __ANDROID_API__ >= 12) || \ - (defined(__i386__) && __ANDROID_API__ >= 17) -# define GTEST_HAS_CLONE 1 -# else -# define GTEST_HAS_CLONE 0 -# endif -# else -# define GTEST_HAS_CLONE 1 -# endif -# else -# define GTEST_HAS_CLONE 0 -# endif // GTEST_OS_LINUX && !defined(__ia64__) - -#endif // GTEST_HAS_CLONE - -// Determines whether to support stream redirection. This is used to test -// output correctness and to implement death tests. -#ifndef GTEST_HAS_STREAM_REDIRECTION -// By default, we assume that stream redirection is supported on all -// platforms except known mobile ones. -# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT -# define GTEST_HAS_STREAM_REDIRECTION 0 -# else -# define GTEST_HAS_STREAM_REDIRECTION 1 -# endif // !GTEST_OS_WINDOWS_MOBILE -#endif // GTEST_HAS_STREAM_REDIRECTION - -// Determines whether to support death tests. -// pops up a dialog window that cannot be suppressed programmatically. -#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - (GTEST_OS_MAC && !GTEST_OS_IOS) || \ - (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER) || GTEST_OS_WINDOWS_MINGW || \ - GTEST_OS_AIX || GTEST_OS_HPUX || GTEST_OS_OPENBSD || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_HAIKU) -# define GTEST_HAS_DEATH_TEST 1 -#endif - -// Determines whether to support type-driven tests. - -// Typed tests need and variadic macros, which GCC, VC++ 8.0, -// Sun Pro CC, IBM Visual Age, and HP aCC support. -#if defined(__GNUC__) || defined(_MSC_VER) || defined(__SUNPRO_CC) || \ - defined(__IBMCPP__) || defined(__HP_aCC) -# define GTEST_HAS_TYPED_TEST 1 -# define GTEST_HAS_TYPED_TEST_P 1 -#endif - -// Determines whether the system compiler uses UTF-16 for encoding wide strings. -#define GTEST_WIDE_STRING_USES_UTF16_ \ - (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_AIX || GTEST_OS_OS2) - -// Determines whether test results can be streamed to a socket. -#if GTEST_OS_LINUX || GTEST_OS_GNU_KFREEBSD || GTEST_OS_DRAGONFLY || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_OPENBSD -# define GTEST_CAN_STREAM_RESULTS_ 1 -#endif - -// Defines some utility macros. - -// The GNU compiler emits a warning if nested "if" statements are followed by -// an "else" statement and braces are not used to explicitly disambiguate the -// "else" binding. This leads to problems with code like: -// -// if (gate) -// ASSERT_*(condition) << "Some message"; -// -// The "switch (0) case 0:" idiom is used to suppress this. -#ifdef __INTEL_COMPILER -# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ -#else -# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default: // NOLINT -#endif - -// Use this annotation at the end of a struct/class definition to -// prevent the compiler from optimizing away instances that are never -// used. This is useful when all interesting logic happens inside the -// c'tor and / or d'tor. Example: -// -// struct Foo { -// Foo() { ... } -// } GTEST_ATTRIBUTE_UNUSED_; -// -// Also use it after a variable or parameter declaration to tell the -// compiler the variable/parameter does not have to be used. -#if defined(__GNUC__) && !defined(COMPILER_ICC) -# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) -#elif defined(__clang__) -# if __has_attribute(unused) -# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) -# endif -#endif -#ifndef GTEST_ATTRIBUTE_UNUSED_ -# define GTEST_ATTRIBUTE_UNUSED_ -#endif - -// Use this annotation before a function that takes a printf format string. -#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC) -# if defined(__MINGW_PRINTF_FORMAT) -// MinGW has two different printf implementations. Ensure the format macro -// matches the selected implementation. See -// https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/. -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__((__format__(__MINGW_PRINTF_FORMAT, string_index, \ - first_to_check))) -# else -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__((__format__(__printf__, string_index, first_to_check))) -# endif -#else -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) -#endif - - -// A macro to disallow operator= -// This should be used in the private: declarations for a class. -#define GTEST_DISALLOW_ASSIGN_(type) \ - void operator=(type const &) = delete - -// A macro to disallow copy constructor and operator= -// This should be used in the private: declarations for a class. -#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \ - type(type const &) = delete; \ - GTEST_DISALLOW_ASSIGN_(type) - -// Tell the compiler to warn about unused return values for functions declared -// with this macro. The macro should be used on function declarations -// following the argument list: -// -// Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_; -#if defined(__GNUC__) && !defined(COMPILER_ICC) -# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result)) -#else -# define GTEST_MUST_USE_RESULT_ -#endif // __GNUC__ && !COMPILER_ICC - -// MS C++ compiler emits warning when a conditional expression is compile time -// constant. In some contexts this warning is false positive and needs to be -// suppressed. Use the following two macros in such cases: -// -// GTEST_INTENTIONAL_CONST_COND_PUSH_() -// while (true) { -// GTEST_INTENTIONAL_CONST_COND_POP_() -// } -# define GTEST_INTENTIONAL_CONST_COND_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127) -# define GTEST_INTENTIONAL_CONST_COND_POP_() \ - GTEST_DISABLE_MSC_WARNINGS_POP_() - -// Determine whether the compiler supports Microsoft's Structured Exception -// Handling. This is supported by several Windows compilers but generally -// does not exist on any other system. -#ifndef GTEST_HAS_SEH -// The user didn't tell us, so we need to figure it out. - -# if defined(_MSC_VER) || defined(__BORLANDC__) -// These two compilers are known to support SEH. -# define GTEST_HAS_SEH 1 -# else -// Assume no SEH. -# define GTEST_HAS_SEH 0 -# endif - -#endif // GTEST_HAS_SEH - -#ifndef GTEST_IS_THREADSAFE - -#define GTEST_IS_THREADSAFE \ - (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ || \ - (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) || \ - GTEST_HAS_PTHREAD) - -#endif // GTEST_IS_THREADSAFE - -// GTEST_API_ qualifies all symbols that must be exported. The definitions below -// are guarded by #ifndef to give embedders a chance to define GTEST_API_ in -// gtest/internal/custom/gtest-port.h -#ifndef GTEST_API_ - -#ifdef _MSC_VER -# if GTEST_LINKED_AS_SHARED_LIBRARY -# define GTEST_API_ __declspec(dllimport) -# elif GTEST_CREATE_SHARED_LIBRARY -# define GTEST_API_ __declspec(dllexport) -# endif -#elif __GNUC__ >= 4 || defined(__clang__) -# define GTEST_API_ __attribute__((visibility ("default"))) -#endif // _MSC_VER - -#endif // GTEST_API_ - -#ifndef GTEST_API_ -# define GTEST_API_ -#endif // GTEST_API_ - -#ifndef GTEST_DEFAULT_DEATH_TEST_STYLE -# define GTEST_DEFAULT_DEATH_TEST_STYLE "fast" -#endif // GTEST_DEFAULT_DEATH_TEST_STYLE - -#ifdef __GNUC__ -// Ask the compiler to never inline a given function. -# define GTEST_NO_INLINE_ __attribute__((noinline)) -#else -# define GTEST_NO_INLINE_ -#endif - -// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. -#if !defined(GTEST_HAS_CXXABI_H_) -# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)) -# define GTEST_HAS_CXXABI_H_ 1 -# else -# define GTEST_HAS_CXXABI_H_ 0 -# endif -#endif - -// A function level attribute to disable checking for use of uninitialized -// memory when built with MemorySanitizer. -#if defined(__clang__) -# if __has_feature(memory_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \ - __attribute__((no_sanitize_memory)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -# endif // __has_feature(memory_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -#endif // __clang__ - -// A function level attribute to disable AddressSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(address_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \ - __attribute__((no_sanitize_address)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -# endif // __has_feature(address_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -#endif // __clang__ - -// A function level attribute to disable HWAddressSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(hwaddress_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \ - __attribute__((no_sanitize("hwaddress"))) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -# endif // __has_feature(hwaddress_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -#endif // __clang__ - -// A function level attribute to disable ThreadSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(thread_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ \ - __attribute__((no_sanitize_thread)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -# endif // __has_feature(thread_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -#endif // __clang__ - -namespace testing { - -class Message; - -// Legacy imports for backwards compatibility. -// New code should use std:: names directly. -using std::get; -using std::make_tuple; -using std::tuple; -using std::tuple_element; -using std::tuple_size; - -namespace internal { - -// A secret type that Google Test users don't know about. It has no -// definition on purpose. Therefore it's impossible to create a -// Secret object, which is what we want. -class Secret; - -// The GTEST_COMPILE_ASSERT_ is a legacy macro used to verify that a compile -// time expression is true (in new code, use static_assert instead). For -// example, you could use it to verify the size of a static array: -// -// GTEST_COMPILE_ASSERT_(GTEST_ARRAY_SIZE_(names) == NUM_NAMES, -// names_incorrect_size); -// -// The second argument to the macro must be a valid C++ identifier. If the -// expression is false, compiler will issue an error containing this identifier. -#define GTEST_COMPILE_ASSERT_(expr, msg) static_assert(expr, #msg) - -// StaticAssertTypeEqHelper is used by StaticAssertTypeEq defined in gtest.h. -// -// This template is declared, but intentionally undefined. -template -struct StaticAssertTypeEqHelper; - -template -struct StaticAssertTypeEqHelper { - enum { value = true }; -}; - -// Same as std::is_same<>. -template -struct IsSame { - enum { value = false }; -}; -template -struct IsSame { - enum { value = true }; -}; - -// Evaluates to the number of elements in 'array'. -#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0])) - -// A helper for suppressing warnings on constant condition. It just -// returns 'condition'. -GTEST_API_ bool IsTrue(bool condition); - -// Defines RE. - -#if GTEST_USES_PCRE -// if used, PCRE is injected by custom/gtest-port.h -#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE - -// A simple C++ wrapper for . It uses the POSIX Extended -// Regular Expression syntax. -class GTEST_API_ RE { - public: - // A copy constructor is required by the Standard to initialize object - // references from r-values. - RE(const RE& other) { Init(other.pattern()); } - - // Constructs an RE from a string. - RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT - - RE(const char* regex) { Init(regex); } // NOLINT - ~RE(); - - // Returns the string representation of the regex. - const char* pattern() const { return pattern_; } - - // FullMatch(str, re) returns true iff regular expression re matches - // the entire str. - // PartialMatch(str, re) returns true iff regular expression re - // matches a substring of str (including str itself). - static bool FullMatch(const ::std::string& str, const RE& re) { - return FullMatch(str.c_str(), re); - } - static bool PartialMatch(const ::std::string& str, const RE& re) { - return PartialMatch(str.c_str(), re); - } - - static bool FullMatch(const char* str, const RE& re); - static bool PartialMatch(const char* str, const RE& re); - - private: - void Init(const char* regex); - const char* pattern_; - bool is_valid_; - -# if GTEST_USES_POSIX_RE - - regex_t full_regex_; // For FullMatch(). - regex_t partial_regex_; // For PartialMatch(). - -# else // GTEST_USES_SIMPLE_RE - - const char* full_pattern_; // For FullMatch(); - -# endif - - GTEST_DISALLOW_ASSIGN_(RE); -}; - -#endif // GTEST_USES_PCRE - -// Formats a source file path and a line number as they would appear -// in an error message from the compiler used to compile this code. -GTEST_API_ ::std::string FormatFileLocation(const char* file, int line); - -// Formats a file location for compiler-independent XML output. -// Although this function is not platform dependent, we put it next to -// FormatFileLocation in order to contrast the two functions. -GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file, - int line); - -// Defines logging utilities: -// GTEST_LOG_(severity) - logs messages at the specified severity level. The -// message itself is streamed into the macro. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. - -enum GTestLogSeverity { - GTEST_INFO, - GTEST_WARNING, - GTEST_ERROR, - GTEST_FATAL -}; - -// Formats log entry severity, provides a stream object for streaming the -// log message, and terminates the message with a newline when going out of -// scope. -class GTEST_API_ GTestLog { - public: - GTestLog(GTestLogSeverity severity, const char* file, int line); - - // Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. - ~GTestLog(); - - ::std::ostream& GetStream() { return ::std::cerr; } - - private: - const GTestLogSeverity severity_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog); -}; - -#if !defined(GTEST_LOG_) - -# define GTEST_LOG_(severity) \ - ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \ - __FILE__, __LINE__).GetStream() - -inline void LogToStderr() {} -inline void FlushInfoLog() { fflush(nullptr); } - -#endif // !defined(GTEST_LOG_) - -#if !defined(GTEST_CHECK_) -// INTERNAL IMPLEMENTATION - DO NOT USE. -// -// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition -// is not satisfied. -// Synopsys: -// GTEST_CHECK_(boolean_condition); -// or -// GTEST_CHECK_(boolean_condition) << "Additional message"; -// -// This checks the condition and if the condition is not satisfied -// it prints message about the condition violation, including the -// condition itself, plus additional message streamed into it, if any, -// and then it aborts the program. It aborts the program irrespective of -// whether it is built in the debug mode or not. -# define GTEST_CHECK_(condition) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::IsTrue(condition)) \ - ; \ - else \ - GTEST_LOG_(FATAL) << "Condition " #condition " failed. " -#endif // !defined(GTEST_CHECK_) - -// An all-mode assert to verify that the given POSIX-style function -// call returns 0 (indicating success). Known limitation: this -// doesn't expand to a balanced 'if' statement, so enclose the macro -// in {} if you need to use it as the only statement in an 'if' -// branch. -#define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \ - if (const int gtest_error = (posix_call)) \ - GTEST_LOG_(FATAL) << #posix_call << "failed with error " \ - << gtest_error - -// Adds reference to a type if it is not a reference type, -// otherwise leaves it unchanged. This is the same as -// tr1::add_reference, which is not widely available yet. -template -struct AddReference { typedef T& type; }; // NOLINT -template -struct AddReference { typedef T& type; }; // NOLINT - -// A handy wrapper around AddReference that works when the argument T -// depends on template parameters. -#define GTEST_ADD_REFERENCE_(T) \ - typename ::testing::internal::AddReference::type - -// Transforms "T" into "const T&" according to standard reference collapsing -// rules (this is only needed as a backport for C++98 compilers that do not -// support reference collapsing). Specifically, it transforms: -// -// char ==> const char& -// const char ==> const char& -// char& ==> char& -// const char& ==> const char& -// -// Note that the non-const reference will not have "const" added. This is -// standard, and necessary so that "T" can always bind to "const T&". -template -struct ConstRef { typedef const T& type; }; -template -struct ConstRef { typedef T& type; }; - -// The argument T must depend on some template parameters. -#define GTEST_REFERENCE_TO_CONST_(T) \ - typename ::testing::internal::ConstRef::type - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Use ImplicitCast_ as a safe version of static_cast for upcasting in -// the type hierarchy (e.g. casting a Foo* to a SuperclassOfFoo* or a -// const Foo*). When you use ImplicitCast_, the compiler checks that -// the cast is safe. Such explicit ImplicitCast_s are necessary in -// surprisingly many situations where C++ demands an exact type match -// instead of an argument type convertable to a target type. -// -// The syntax for using ImplicitCast_ is the same as for static_cast: -// -// ImplicitCast_(expr) -// -// ImplicitCast_ would have been part of the C++ standard library, -// but the proposal was submitted too late. It will probably make -// its way into the language in the future. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., implicit_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template -inline To ImplicitCast_(To x) { return x; } - -// When you upcast (that is, cast a pointer from type Foo to type -// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts -// always succeed. When you downcast (that is, cast a pointer from -// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because -// how do you know the pointer is really of type SubclassOfFoo? It -// could be a bare Foo, or of type DifferentSubclassOfFoo. Thus, -// when you downcast, you should use this macro. In debug mode, we -// use dynamic_cast<> to double-check the downcast is legal (we die -// if it's not). In normal mode, we do the efficient static_cast<> -// instead. Thus, it's important to test in debug mode to make sure -// the cast is legal! -// This is the only place in the code we should use dynamic_cast<>. -// In particular, you SHOULDN'T be using dynamic_cast<> in order to -// do RTTI (eg code like this: -// if (dynamic_cast(foo)) HandleASubclass1Object(foo); -// if (dynamic_cast(foo)) HandleASubclass2Object(foo); -// You should design the code some other way not to need this. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., down_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template // use like this: DownCast_(foo); -inline To DownCast_(From* f) { // so we only accept pointers - // Ensures that To is a sub-type of From *. This test is here only - // for compile-time type checking, and has no overhead in an - // optimized build at run-time, as it will be optimized away - // completely. - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (false) { - GTEST_INTENTIONAL_CONST_COND_POP_() - const To to = nullptr; - ::testing::internal::ImplicitCast_(to); - } - -#if GTEST_HAS_RTTI - // RTTI: debug mode only! - GTEST_CHECK_(f == nullptr || dynamic_cast(f) != nullptr); -#endif - return static_cast(f); -} - -// Downcasts the pointer of type Base to Derived. -// Derived must be a subclass of Base. The parameter MUST -// point to a class of type Derived, not any subclass of it. -// When RTTI is available, the function performs a runtime -// check to enforce this. -template -Derived* CheckedDowncastToActualType(Base* base) { -#if GTEST_HAS_RTTI - GTEST_CHECK_(typeid(*base) == typeid(Derived)); -#endif - -#if GTEST_HAS_DOWNCAST_ - return ::down_cast(base); -#elif GTEST_HAS_RTTI - return dynamic_cast(base); // NOLINT -#else - return static_cast(base); // Poor man's downcast. -#endif -} - -#if GTEST_HAS_STREAM_REDIRECTION - -// Defines the stderr capturer: -// CaptureStdout - starts capturing stdout. -// GetCapturedStdout - stops capturing stdout and returns the captured string. -// CaptureStderr - starts capturing stderr. -// GetCapturedStderr - stops capturing stderr and returns the captured string. -// -GTEST_API_ void CaptureStdout(); -GTEST_API_ std::string GetCapturedStdout(); -GTEST_API_ void CaptureStderr(); -GTEST_API_ std::string GetCapturedStderr(); - -#endif // GTEST_HAS_STREAM_REDIRECTION -// Returns the size (in bytes) of a file. -GTEST_API_ size_t GetFileSize(FILE* file); - -// Reads the entire content of a file as a string. -GTEST_API_ std::string ReadEntireFile(FILE* file); - -// All command line arguments. -GTEST_API_ std::vector GetArgvs(); - -#if GTEST_HAS_DEATH_TEST - -std::vector GetInjectableArgvs(); -// Deprecated: pass the args vector by value instead. -void SetInjectableArgvs(const std::vector* new_argvs); -void SetInjectableArgvs(const std::vector& new_argvs); -void ClearInjectableArgvs(); - -#endif // GTEST_HAS_DEATH_TEST - -// Defines synchronization primitives. -#if GTEST_IS_THREADSAFE -# if GTEST_HAS_PTHREAD -// Sleeps for (roughly) n milliseconds. This function is only for testing -// Google Test's own constructs. Don't use it in user tests, either -// directly or indirectly. -inline void SleepMilliseconds(int n) { - const timespec time = { - 0, // 0 seconds. - n * 1000L * 1000L, // And n ms. - }; - nanosleep(&time, nullptr); -} -# endif // GTEST_HAS_PTHREAD - -# if GTEST_HAS_NOTIFICATION_ -// Notification has already been imported into the namespace. -// Nothing to do here. - -# elif GTEST_HAS_PTHREAD -// Allows a controller thread to pause execution of newly created -// threads until notified. Instances of this class must be created -// and destroyed in the controller thread. -// -// This class is only for testing Google Test's own constructs. Do not -// use it in user tests, either directly or indirectly. -class Notification { - public: - Notification() : notified_(false) { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr)); - } - ~Notification() { - pthread_mutex_destroy(&mutex_); - } - - // Notifies all threads created with this notification to start. Must - // be called from the controller thread. - void Notify() { - pthread_mutex_lock(&mutex_); - notified_ = true; - pthread_mutex_unlock(&mutex_); - } - - // Blocks until the controller thread notifies. Must be called from a test - // thread. - void WaitForNotification() { - for (;;) { - pthread_mutex_lock(&mutex_); - const bool notified = notified_; - pthread_mutex_unlock(&mutex_); - if (notified) - break; - SleepMilliseconds(10); - } - } - - private: - pthread_mutex_t mutex_; - bool notified_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); -}; - -# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - -GTEST_API_ void SleepMilliseconds(int n); - -// Provides leak-safe Windows kernel handle ownership. -// Used in death tests and in threading support. -class GTEST_API_ AutoHandle { - public: - // Assume that Win32 HANDLE type is equivalent to void*. Doing so allows us to - // avoid including in this header file. Including is - // undesirable because it defines a lot of symbols and macros that tend to - // conflict with client code. This assumption is verified by - // WindowsTypesTest.HANDLEIsVoidStar. - typedef void* Handle; - AutoHandle(); - explicit AutoHandle(Handle handle); - - ~AutoHandle(); - - Handle Get() const; - void Reset(); - void Reset(Handle handle); - - private: - // Returns true iff the handle is a valid handle object that can be closed. - bool IsCloseable() const; - - Handle handle_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle); -}; - -// Allows a controller thread to pause execution of newly created -// threads until notified. Instances of this class must be created -// and destroyed in the controller thread. -// -// This class is only for testing Google Test's own constructs. Do not -// use it in user tests, either directly or indirectly. -class GTEST_API_ Notification { - public: - Notification(); - void Notify(); - void WaitForNotification(); - - private: - AutoHandle event_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); -}; -# endif // GTEST_HAS_NOTIFICATION_ - -// On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD -// defined, but we don't want to use MinGW's pthreads implementation, which -// has conformance problems with some versions of the POSIX standard. -# if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW - -// As a C-function, ThreadFuncWithCLinkage cannot be templated itself. -// Consequently, it cannot select a correct instantiation of ThreadWithParam -// in order to call its Run(). Introducing ThreadWithParamBase as a -// non-templated base class for ThreadWithParam allows us to bypass this -// problem. -class ThreadWithParamBase { - public: - virtual ~ThreadWithParamBase() {} - virtual void Run() = 0; -}; - -// pthread_create() accepts a pointer to a function type with the C linkage. -// According to the Standard (7.5/1), function types with different linkages -// are different even if they are otherwise identical. Some compilers (for -// example, SunStudio) treat them as different types. Since class methods -// cannot be defined with C-linkage we need to define a free C-function to -// pass into pthread_create(). -extern "C" inline void* ThreadFuncWithCLinkage(void* thread) { - static_cast(thread)->Run(); - return nullptr; -} - -// Helper class for testing Google Test's multi-threading constructs. -// To use it, write: -// -// void ThreadFunc(int param) { /* Do things with param */ } -// Notification thread_can_start; -// ... -// // The thread_can_start parameter is optional; you can supply NULL. -// ThreadWithParam thread(&ThreadFunc, 5, &thread_can_start); -// thread_can_start.Notify(); -// -// These classes are only for testing Google Test's own constructs. Do -// not use them in user tests, either directly or indirectly. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : func_(func), - param_(param), - thread_can_start_(thread_can_start), - finished_(false) { - ThreadWithParamBase* const base = this; - // The thread can be created only after all fields except thread_ - // have been initialized. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_create(&thread_, nullptr, &ThreadFuncWithCLinkage, base)); - } - ~ThreadWithParam() override { Join(); } - - void Join() { - if (!finished_) { - GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, nullptr)); - finished_ = true; - } - } - - void Run() override { - if (thread_can_start_ != nullptr) thread_can_start_->WaitForNotification(); - func_(param_); - } - - private: - UserThreadFunc* const func_; // User-supplied thread function. - const T param_; // User-supplied parameter to the thread function. - // When non-NULL, used to block execution until the controller thread - // notifies. - Notification* const thread_can_start_; - bool finished_; // true iff we know that the thread function has finished. - pthread_t thread_; // The native thread object. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); -}; -# endif // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD || - // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ -// Mutex and ThreadLocal have already been imported into the namespace. -// Nothing to do here. - -# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - -// Mutex implements mutex on Windows platforms. It is used in conjunction -// with class MutexLock: -// -// Mutex mutex; -// ... -// MutexLock lock(&mutex); // Acquires the mutex and releases it at the -// // end of the current scope. -// -// A static Mutex *must* be defined or declared using one of the following -// macros: -// GTEST_DEFINE_STATIC_MUTEX_(g_some_mutex); -// GTEST_DECLARE_STATIC_MUTEX_(g_some_mutex); -// -// (A non-static Mutex is defined/declared in the usual way). -class GTEST_API_ Mutex { - public: - enum MutexType { kStatic = 0, kDynamic = 1 }; - // We rely on kStaticMutex being 0 as it is to what the linker initializes - // type_ in static mutexes. critical_section_ will be initialized lazily - // in ThreadSafeLazyInit(). - enum StaticConstructorSelector { kStaticMutex = 0 }; - - // This constructor intentionally does nothing. It relies on type_ being - // statically initialized to 0 (effectively setting it to kStatic) and on - // ThreadSafeLazyInit() to lazily initialize the rest of the members. - explicit Mutex(StaticConstructorSelector /*dummy*/) {} - - Mutex(); - ~Mutex(); - - void Lock(); - - void Unlock(); - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld(); - - private: - // Initializes owner_thread_id_ and critical_section_ in static mutexes. - void ThreadSafeLazyInit(); - - // Per https://blogs.msdn.microsoft.com/oldnewthing/20040223-00/?p=40503, - // we assume that 0 is an invalid value for thread IDs. - unsigned int owner_thread_id_; - - // For static mutexes, we rely on these members being initialized to zeros - // by the linker. - MutexType type_; - long critical_section_init_phase_; // NOLINT - GTEST_CRITICAL_SECTION* critical_section_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); -}; - -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex) - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex* mutex) - : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - Mutex* const mutex_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); -}; - -typedef GTestMutexLock MutexLock; - -// Base class for ValueHolder. Allows a caller to hold and delete a value -// without knowing its type. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Provides a way for a thread to send notifications to a ThreadLocal -// regardless of its parameter type. -class ThreadLocalBase { - public: - // Creates a new ValueHolder object holding a default value passed to - // this ThreadLocal's constructor and returns it. It is the caller's - // responsibility not to call this when the ThreadLocal instance already - // has a value on the current thread. - virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const = 0; - - protected: - ThreadLocalBase() {} - virtual ~ThreadLocalBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase); -}; - -// Maps a thread to a set of ThreadLocals that have values instantiated on that -// thread and notifies them when the thread exits. A ThreadLocal instance is -// expected to persist until all threads it has values on have terminated. -class GTEST_API_ ThreadLocalRegistry { - public: - // Registers thread_local_instance as having value on the current thread. - // Returns a value that can be used to identify the thread from other threads. - static ThreadLocalValueHolderBase* GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance); - - // Invoked when a ThreadLocal instance is destroyed. - static void OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance); -}; - -class GTEST_API_ ThreadWithParamBase { - public: - void Join(); - - protected: - class Runnable { - public: - virtual ~Runnable() {} - virtual void Run() = 0; - }; - - ThreadWithParamBase(Runnable *runnable, Notification* thread_can_start); - virtual ~ThreadWithParamBase(); - - private: - AutoHandle thread_; -}; - -// Helper class for testing Google Test's multi-threading constructs. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) { - } - virtual ~ThreadWithParam() {} - - private: - class RunnableImpl : public Runnable { - public: - RunnableImpl(UserThreadFunc* func, T param) - : func_(func), - param_(param) { - } - virtual ~RunnableImpl() {} - virtual void Run() { - func_(param_); - } - - private: - UserThreadFunc* const func_; - const T param_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl); - }; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); -}; - -// Implements thread-local storage on Windows systems. -// -// // Thread 1 -// ThreadLocal tl(100); // 100 is the default value for each thread. -// -// // Thread 2 -// tl.set(150); // Changes the value for thread 2 only. -// EXPECT_EQ(150, tl.get()); -// -// // Thread 1 -// EXPECT_EQ(100, tl.get()); // In thread 1, tl has the original value. -// tl.set(200); -// EXPECT_EQ(200, tl.get()); -// -// The template type argument T must have a public copy constructor. -// In addition, the default ThreadLocal constructor requires T to have -// a public default constructor. -// -// The users of a TheadLocal instance have to make sure that all but one -// threads (including the main one) using that instance have exited before -// destroying it. Otherwise, the per-thread objects managed for them by the -// ThreadLocal instance are not guaranteed to be destroyed on all platforms. -// -// Google Test only uses global ThreadLocal objects. That means they -// will die after main() has returned. Therefore, no per-thread -// object managed by Google Test will be leaked as long as all threads -// using Google Test have exited when main() returns. -template -class ThreadLocal : public ThreadLocalBase { - public: - ThreadLocal() : default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() { ThreadLocalRegistry::OnThreadLocalDestroyed(this); } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of T. Can be deleted via its base class without the caller - // knowing the type of T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); - }; - - - T* GetOrCreateValue() const { - return static_cast( - ThreadLocalRegistry::GetValueOnCurrentThread(this))->pointer(); - } - - virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const { - return default_factory_->MakeNewHolder(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - virtual ValueHolder* MakeNewHolder() const { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); - }; - - std::unique_ptr default_factory_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); -}; - -# elif GTEST_HAS_PTHREAD - -// MutexBase and Mutex implement mutex on pthreads-based platforms. -class MutexBase { - public: - // Acquires this mutex. - void Lock() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); - owner_ = pthread_self(); - has_owner_ = true; - } - - // Releases this mutex. - void Unlock() { - // Since the lock is being released the owner_ field should no longer be - // considered valid. We don't protect writing to has_owner_ here, as it's - // the caller's responsibility to ensure that the current thread holds the - // mutex when this is called. - has_owner_ = false; - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); - } - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld() const { - GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) - << "The current thread is not holding the mutex @" << this; - } - - // A static mutex may be used before main() is entered. It may even - // be used before the dynamic initialization stage. Therefore we - // must be able to initialize a static mutex object at link time. - // This means MutexBase has to be a POD and its member variables - // have to be public. - public: - pthread_mutex_t mutex_; // The underlying pthread mutex. - // has_owner_ indicates whether the owner_ field below contains a valid thread - // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All - // accesses to the owner_ field should be protected by a check of this field. - // An alternative might be to memset() owner_ to all zeros, but there's no - // guarantee that a zero'd pthread_t is necessarily invalid or even different - // from pthread_self(). - bool has_owner_; - pthread_t owner_; // The thread holding the mutex. -}; - -// Forward-declares a static mutex. -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::MutexBase mutex - -// Defines and statically (i.e. at link time) initializes a static mutex. -// The initialization list here does not explicitly initialize each field, -// instead relying on default initialization for the unspecified fields. In -// particular, the owner_ field (a pthread_t) is not explicitly initialized. -// This allows initialization to work whether pthread_t is a scalar or struct. -// The flag -Wmissing-field-initializers must not be specified for this to work. -#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::MutexBase mutex = {PTHREAD_MUTEX_INITIALIZER, false, 0} - -// The Mutex class can only be used for mutexes created at runtime. It -// shares its API with MutexBase otherwise. -class Mutex : public MutexBase { - public: - Mutex() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr)); - has_owner_ = false; - } - ~Mutex() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); - } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); -}; - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(MutexBase* mutex) - : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - MutexBase* const mutex_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); -}; - -typedef GTestMutexLock MutexLock; - -// Helpers for ThreadLocal. - -// pthread_key_create() requires DeleteThreadLocalValue() to have -// C-linkage. Therefore it cannot be templatized to access -// ThreadLocal. Hence the need for class -// ThreadLocalValueHolderBase. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Called by pthread to delete thread-local data stored by -// pthread_setspecific(). -extern "C" inline void DeleteThreadLocalValue(void* value_holder) { - delete static_cast(value_holder); -} - -// Implements thread-local storage on pthreads-based systems. -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() - : key_(CreateKey()), default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : key_(CreateKey()), - default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() { - // Destroys the managed object for the current thread, if any. - DeleteThreadLocalValue(pthread_getspecific(key_)); - - // Releases resources associated with the key. This will *not* - // delete managed objects for other threads. - GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_)); - } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of type T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); - }; - - static pthread_key_t CreateKey() { - pthread_key_t key; - // When a thread exits, DeleteThreadLocalValue() will be called on - // the object managed for that thread. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_key_create(&key, &DeleteThreadLocalValue)); - return key; - } - - T* GetOrCreateValue() const { - ThreadLocalValueHolderBase* const holder = - static_cast(pthread_getspecific(key_)); - if (holder != nullptr) { - return CheckedDowncastToActualType(holder)->pointer(); - } - - ValueHolder* const new_holder = default_factory_->MakeNewHolder(); - ThreadLocalValueHolderBase* const holder_base = new_holder; - GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base)); - return new_holder->pointer(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - virtual ValueHolder* MakeNewHolder() const { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); - }; - - // A key pthreads uses for looking up per-thread values. - const pthread_key_t key_; - std::unique_ptr default_factory_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); -}; - -# endif // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -#else // GTEST_IS_THREADSAFE - -// A dummy implementation of synchronization primitives (mutex, lock, -// and thread-local variable). Necessary for compiling Google Test where -// mutex is not supported - using Google Test in multiple threads is not -// supported on such platforms. - -class Mutex { - public: - Mutex() {} - void Lock() {} - void Unlock() {} - void AssertHeld() const {} -}; - -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex*) {} // NOLINT -}; - -typedef GTestMutexLock MutexLock; - -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() : value_() {} - explicit ThreadLocal(const T& value) : value_(value) {} - T* pointer() { return &value_; } - const T* pointer() const { return &value_; } - const T& get() const { return value_; } - void set(const T& value) { value_ = value; } - private: - T value_; -}; - -#endif // GTEST_IS_THREADSAFE - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -GTEST_API_ size_t GetThreadCount(); - -template -struct bool_constant { - typedef bool_constant type; - static const bool value = bool_value; -}; -template const bool bool_constant::value; - -typedef bool_constant false_type; -typedef bool_constant true_type; - -template -struct is_same : public false_type {}; - -template -struct is_same : public true_type {}; - -template -struct IteratorTraits { - typedef typename Iterator::value_type value_type; -}; - - -template -struct IteratorTraits { - typedef T value_type; -}; - -template -struct IteratorTraits { - typedef T value_type; -}; - -#if GTEST_OS_WINDOWS -# define GTEST_PATH_SEP_ "\\" -# define GTEST_HAS_ALT_PATH_SEP_ 1 -// The biggest signed integer type the compiler supports. -typedef __int64 BiggestInt; -#else -# define GTEST_PATH_SEP_ "/" -# define GTEST_HAS_ALT_PATH_SEP_ 0 -typedef long long BiggestInt; // NOLINT -#endif // GTEST_OS_WINDOWS - -// Utilities for char. - -// isspace(int ch) and friends accept an unsigned char or EOF. char -// may be signed, depending on the compiler (or compiler flags). -// Therefore we need to cast a char to unsigned char before calling -// isspace(), etc. - -inline bool IsAlpha(char ch) { - return isalpha(static_cast(ch)) != 0; -} -inline bool IsAlNum(char ch) { - return isalnum(static_cast(ch)) != 0; -} -inline bool IsDigit(char ch) { - return isdigit(static_cast(ch)) != 0; -} -inline bool IsLower(char ch) { - return islower(static_cast(ch)) != 0; -} -inline bool IsSpace(char ch) { - return isspace(static_cast(ch)) != 0; -} -inline bool IsUpper(char ch) { - return isupper(static_cast(ch)) != 0; -} -inline bool IsXDigit(char ch) { - return isxdigit(static_cast(ch)) != 0; -} -inline bool IsXDigit(wchar_t ch) { - const unsigned char low_byte = static_cast(ch); - return ch == low_byte && isxdigit(low_byte) != 0; -} - -inline char ToLower(char ch) { - return static_cast(tolower(static_cast(ch))); -} -inline char ToUpper(char ch) { - return static_cast(toupper(static_cast(ch))); -} - -inline std::string StripTrailingSpaces(std::string str) { - std::string::iterator it = str.end(); - while (it != str.begin() && IsSpace(*--it)) - it = str.erase(it); - return str; -} - -// The testing::internal::posix namespace holds wrappers for common -// POSIX functions. These wrappers hide the differences between -// Windows/MSVC and POSIX systems. Since some compilers define these -// standard functions as macros, the wrapper cannot have the same name -// as the wrapped function. - -namespace posix { - -// Functions with a different name on Windows. - -#if GTEST_OS_WINDOWS - -typedef struct _stat StatStruct; - -# ifdef __BORLANDC__ -inline int IsATTY(int fd) { return isatty(fd); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -# else // !__BORLANDC__ -# if GTEST_OS_WINDOWS_MOBILE -inline int IsATTY(int /* fd */) { return 0; } -# else -inline int IsATTY(int fd) { return _isatty(fd); } -# endif // GTEST_OS_WINDOWS_MOBILE -inline int StrCaseCmp(const char* s1, const char* s2) { - return _stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return _strdup(src); } -# endif // __BORLANDC__ - -# if GTEST_OS_WINDOWS_MOBILE -inline int FileNo(FILE* file) { return reinterpret_cast(_fileno(file)); } -// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this -// time and thus not defined there. -# else -inline int FileNo(FILE* file) { return _fileno(file); } -inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); } -inline int RmDir(const char* dir) { return _rmdir(dir); } -inline bool IsDir(const StatStruct& st) { - return (_S_IFDIR & st.st_mode) != 0; -} -# endif // GTEST_OS_WINDOWS_MOBILE - -#else - -typedef struct stat StatStruct; - -inline int FileNo(FILE* file) { return fileno(file); } -inline int IsATTY(int fd) { return isatty(fd); } -inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return strcasecmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -inline int RmDir(const char* dir) { return rmdir(dir); } -inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } - -#endif // GTEST_OS_WINDOWS - -// Functions deprecated by MSVC 8.0. - -GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - -inline const char* StrNCpy(char* dest, const char* src, size_t n) { - return strncpy(dest, src, n); -} - -// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and -// StrError() aren't needed on Windows CE at this time and thus not -// defined there. - -#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT -inline int ChDir(const char* dir) { return chdir(dir); } -#endif -inline FILE* FOpen(const char* path, const char* mode) { - return fopen(path, mode); -} -#if !GTEST_OS_WINDOWS_MOBILE -inline FILE *FReopen(const char* path, const char* mode, FILE* stream) { - return freopen(path, mode, stream); -} -inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); } -#endif -inline int FClose(FILE* fp) { return fclose(fp); } -#if !GTEST_OS_WINDOWS_MOBILE -inline int Read(int fd, void* buf, unsigned int count) { - return static_cast(read(fd, buf, count)); -} -inline int Write(int fd, const void* buf, unsigned int count) { - return static_cast(write(fd, buf, count)); -} -inline int Close(int fd) { return close(fd); } -inline const char* StrError(int errnum) { return strerror(errnum); } -#endif -inline const char* GetEnv(const char* name) { -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT - // We are on Windows CE, which has no environment variables. - static_cast(name); // To prevent 'unused argument' warning. - return nullptr; -#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9) - // Environment variables which we programmatically clear will be set to the - // empty string rather than unset (NULL). Handle that case. - const char* const env = getenv(name); - return (env != nullptr && env[0] != '\0') ? env : nullptr; -#else - return getenv(name); -#endif -} - -GTEST_DISABLE_MSC_DEPRECATED_POP_() - -#if GTEST_OS_WINDOWS_MOBILE -// Windows CE has no C library. The abort() function is used in -// several places in Google Test. This implementation provides a reasonable -// imitation of standard behaviour. -[[noreturn]] void Abort(); -#else -[[noreturn]] inline void Abort() { abort(); } -#endif // GTEST_OS_WINDOWS_MOBILE - -} // namespace posix - -// MSVC "deprecates" snprintf and issues warnings wherever it is used. In -// order to avoid these warnings, we need to use _snprintf or _snprintf_s on -// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate -// function in order to achieve that. We use macro definition here because -// snprintf is a variadic function. -#if _MSC_VER && !GTEST_OS_WINDOWS_MOBILE -// MSVC 2005 and above support variadic macros. -# define GTEST_SNPRINTF_(buffer, size, format, ...) \ - _snprintf_s(buffer, size, size, format, __VA_ARGS__) -#elif defined(_MSC_VER) -// Windows CE does not define _snprintf_s -# define GTEST_SNPRINTF_ _snprintf -#else -# define GTEST_SNPRINTF_ snprintf -#endif - -// The maximum number a BiggestInt can represent. This definition -// works no matter BiggestInt is represented in one's complement or -// two's complement. -// -// We cannot rely on numeric_limits in STL, as __int64 and long long -// are not part of standard C++ and numeric_limits doesn't need to be -// defined for them. -const BiggestInt kMaxBiggestInt = - ~(static_cast(1) << (8*sizeof(BiggestInt) - 1)); - -// This template class serves as a compile-time function from size to -// type. It maps a size in bytes to a primitive type with that -// size. e.g. -// -// TypeWithSize<4>::UInt -// -// is typedef-ed to be unsigned int (unsigned integer made up of 4 -// bytes). -// -// Such functionality should belong to STL, but I cannot find it -// there. -// -// Google Test uses this class in the implementation of floating-point -// comparison. -// -// For now it only handles UInt (unsigned int) as that's all Google Test -// needs. Other types can be easily added in the future if need -// arises. -template -class TypeWithSize { - public: - // This prevents the user from using TypeWithSize with incorrect - // values of N. - typedef void UInt; -}; - -// The specialization for size 4. -template <> -class TypeWithSize<4> { - public: - // unsigned int has size 4 in both gcc and MSVC. - // - // As base/basictypes.h doesn't compile on Windows, we cannot use - // uint32, uint64, and etc here. - typedef int Int; - typedef unsigned int UInt; -}; - -// The specialization for size 8. -template <> -class TypeWithSize<8> { - public: -#if GTEST_OS_WINDOWS - typedef __int64 Int; - typedef unsigned __int64 UInt; -#else - typedef long long Int; // NOLINT - typedef unsigned long long UInt; // NOLINT -#endif // GTEST_OS_WINDOWS -}; - -// Integer types of known sizes. -typedef TypeWithSize<4>::Int Int32; -typedef TypeWithSize<4>::UInt UInt32; -typedef TypeWithSize<8>::Int Int64; -typedef TypeWithSize<8>::UInt UInt64; -typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. - -// Utilities for command line flags and environment variables. - -// Macro for referencing flags. -#if !defined(GTEST_FLAG) -# define GTEST_FLAG(name) FLAGS_gtest_##name -#endif // !defined(GTEST_FLAG) - -#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_) -# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1 -#endif // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_) - -#if !defined(GTEST_DECLARE_bool_) -# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver - -// Macros for declaring flags. -# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name) -# define GTEST_DECLARE_int32_(name) \ - GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) -# define GTEST_DECLARE_string_(name) \ - GTEST_API_ extern ::std::string GTEST_FLAG(name) - -// Macros for defining flags. -# define GTEST_DEFINE_bool_(name, default_val, doc) \ - GTEST_API_ bool GTEST_FLAG(name) = (default_val) -# define GTEST_DEFINE_int32_(name, default_val, doc) \ - GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) -# define GTEST_DEFINE_string_(name, default_val, doc) \ - GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) - -#endif // !defined(GTEST_DECLARE_bool_) - -// Thread annotations -#if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) -# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) -# define GTEST_LOCK_EXCLUDED_(locks) -#endif // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) - -// Parses 'str' for a 32-bit signed integer. If successful, writes the result -// to *value and returns true; otherwise leaves *value unchanged and returns -// false. -bool ParseInt32(const Message& src_text, const char* str, Int32* value); - -// Parses a bool/Int32/string from the environment variable -// corresponding to the given Google Test flag. -bool BoolFromGTestEnv(const char* flag, bool default_val); -GTEST_API_ Int32 Int32FromGTestEnv(const char* flag, Int32 default_val); -std::string OutputFlagAlsoCheckEnvVar(); -const char* StringFromGTestEnv(const char* flag, const char* default_val); - -} // namespace internal -} // namespace testing - -#if !defined(GTEST_INTERNAL_DEPRECATED) - -// Internal Macro to mark an API deprecated, for googletest usage only -// Usage: class GTEST_INTERNAL_DEPRECATED(message) MyClass or -// GTEST_INTERNAL_DEPRECATED(message) myFunction(); Every usage of -// a deprecated entity will trigger a warning when compiled with -// `-Wdeprecated-declarations` option (clang, gcc, any __GNUC__ compiler). -// For msvc /W3 option will need to be used -// Note that for 'other' compilers this macro evaluates to nothing to prevent -// compilations errors. -#if defined(_MSC_VER) -#define GTEST_INTERNAL_DEPRECATED(message) __declspec(deprecated(message)) -#elif defined(__GNUC__) -#define GTEST_INTERNAL_DEPRECATED(message) __attribute__((deprecated(message))) -#else -#define GTEST_INTERNAL_DEPRECATED(message) -#endif - -#endif // !defined(GTEST_INTERNAL_DEPRECATED) - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ - -#if GTEST_OS_LINUX -# include -# include -# include -# include -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_EXCEPTIONS -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Copyright 2005, Google Inc. -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the Message class. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ - -#include -#include - - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Ensures that there is at least one operator<< in the global namespace. -// See Message& operator<<(...) below for why. -void operator<<(const testing::internal::Secret&, int); - -namespace testing { - -// The Message class works like an ostream repeater. -// -// Typical usage: -// -// 1. You stream a bunch of values to a Message object. -// It will remember the text in a stringstream. -// 2. Then you stream the Message object to an ostream. -// This causes the text in the Message to be streamed -// to the ostream. -// -// For example; -// -// testing::Message foo; -// foo << 1 << " != " << 2; -// std::cout << foo; -// -// will print "1 != 2". -// -// Message is not intended to be inherited from. In particular, its -// destructor is not virtual. -// -// Note that stringstream behaves differently in gcc and in MSVC. You -// can stream a NULL char pointer to it in the former, but not in the -// latter (it causes an access violation if you do). The Message -// class hides this difference by treating a NULL char pointer as -// "(null)". -class GTEST_API_ Message { - private: - // The type of basic IO manipulators (endl, ends, and flush) for - // narrow streams. - typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); - - public: - // Constructs an empty Message. - Message(); - - // Copy constructor. - Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT - *ss_ << msg.GetString(); - } - - // Constructs a Message from a C-string. - explicit Message(const char* str) : ss_(new ::std::stringstream) { - *ss_ << str; - } - - // Streams a non-pointer value to this object. - template - inline Message& operator <<(const T& val) { - // Some libraries overload << for STL containers. These - // overloads are defined in the global namespace instead of ::std. - // - // C++'s symbol lookup rule (i.e. Koenig lookup) says that these - // overloads are visible in either the std namespace or the global - // namespace, but not other namespaces, including the testing - // namespace which Google Test's Message class is in. - // - // To allow STL containers (and other types that has a << operator - // defined in the global namespace) to be used in Google Test - // assertions, testing::Message must access the custom << operator - // from the global namespace. With this using declaration, - // overloads of << defined in the global namespace and those - // visible via Koenig lookup are both exposed in this function. - using ::operator <<; - *ss_ << val; - return *this; - } - - // Streams a pointer value to this object. - // - // This function is an overload of the previous one. When you - // stream a pointer to a Message, this definition will be used as it - // is more specialized. (The C++ Standard, section - // [temp.func.order].) If you stream a non-pointer, then the - // previous definition will be used. - // - // The reason for this overload is that streaming a NULL pointer to - // ostream is undefined behavior. Depending on the compiler, you - // may get "0", "(nil)", "(null)", or an access violation. To - // ensure consistent result across compilers, we always treat NULL - // as "(null)". - template - inline Message& operator <<(T* const& pointer) { // NOLINT - if (pointer == nullptr) { - *ss_ << "(null)"; - } else { - *ss_ << pointer; - } - return *this; - } - - // Since the basic IO manipulators are overloaded for both narrow - // and wide streams, we have to provide this specialized definition - // of operator <<, even though its body is the same as the - // templatized version above. Without this definition, streaming - // endl or other basic IO manipulators to Message will confuse the - // compiler. - Message& operator <<(BasicNarrowIoManip val) { - *ss_ << val; - return *this; - } - - // Instead of 1/0, we want to see true/false for bool values. - Message& operator <<(bool b) { - return *this << (b ? "true" : "false"); - } - - // These two overloads allow streaming a wide C string to a Message - // using the UTF-8 encoding. - Message& operator <<(const wchar_t* wide_c_str); - Message& operator <<(wchar_t* wide_c_str); - -#if GTEST_HAS_STD_WSTRING - // Converts the given wide string to a narrow string using the UTF-8 - // encoding, and streams the result to this Message object. - Message& operator <<(const ::std::wstring& wstr); -#endif // GTEST_HAS_STD_WSTRING - - // Gets the text streamed to this object so far as an std::string. - // Each '\0' character in the buffer is replaced with "\\0". - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - std::string GetString() const; - - private: - // We'll hold the text streamed to this object here. - const std::unique_ptr< ::std::stringstream> ss_; - - // We declare (but don't implement) this to prevent the compiler - // from implementing the assignment operator. - void operator=(const Message&); -}; - -// Streams a Message to an ostream. -inline std::ostream& operator <<(std::ostream& os, const Message& sb) { - return os << sb.GetString(); -} - -namespace internal { - -// Converts a streamable value to an std::string. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -template -std::string StreamableToString(const T& streamable) { - return (Message() << streamable).GetString(); -} - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -// Copyright 2008, Google Inc. -// 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. -// -// Google Test filepath utilities -// -// This header file declares classes and functions used internally by -// Google Test. They are subject to change without notice. -// -// This file is #included in gtest/internal/gtest-internal.h. -// Do not include this header file separately! - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ - -// Copyright 2005, Google Inc. -// 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. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares the String class and functions used internally by -// Google Test. They are subject to change without notice. They should not used -// by code external to Google Test. -// -// This header file is #included by gtest-internal.h. -// It should not be #included by other files. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - -#ifdef __BORLANDC__ -// string.h is not guaranteed to provide strcpy on C++ Builder. -# include -#endif - -#include -#include - - -namespace testing { -namespace internal { - -// String - an abstract class holding static string utilities. -class GTEST_API_ String { - public: - // Static utility methods - - // Clones a 0-terminated C string, allocating memory using new. The - // caller is responsible for deleting the return value using - // delete[]. Returns the cloned string, or NULL if the input is - // NULL. - // - // This is different from strdup() in string.h, which allocates - // memory using malloc(). - static const char* CloneCString(const char* c_str); - -#if GTEST_OS_WINDOWS_MOBILE - // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be - // able to pass strings to Win32 APIs on CE we need to convert them - // to 'Unicode', UTF-16. - - // Creates a UTF-16 wide string from the given ANSI string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the wide string, or NULL if the - // input is NULL. - // - // The wide string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static LPCWSTR AnsiToUtf16(const char* c_str); - - // Creates an ANSI string from the given wide string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the ANSI string, or NULL if the - // input is NULL. - // - // The returned string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static const char* Utf16ToAnsi(LPCWSTR utf16_str); -#endif - - // Compares two C strings. Returns true iff they have the same content. - // - // Unlike strcmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CStringEquals(const char* lhs, const char* rhs); - - // Converts a wide C string to a String using the UTF-8 encoding. - // NULL will be converted to "(null)". If an error occurred during - // the conversion, "(failed to convert from wide string)" is - // returned. - static std::string ShowWideCString(const wchar_t* wide_c_str); - - // Compares two wide C strings. Returns true iff they have the same - // content. - // - // Unlike wcscmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); - - // Compares two C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike strcasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CaseInsensitiveCStringEquals(const char* lhs, - const char* rhs); - - // Compares two wide C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. - static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs); - - // Returns true iff the given string ends with the given suffix, ignoring - // case. Any string is considered to end with an empty suffix. - static bool EndsWithCaseInsensitive( - const std::string& str, const std::string& suffix); - - // Formats an int value as "%02d". - static std::string FormatIntWidth2(int value); // "%02d" for width == 2 - - // Formats an int value as "%X". - static std::string FormatHexInt(int value); - - // Formats a byte as "%02X". - static std::string FormatByte(unsigned char value); - - private: - String(); // Not meant to be instantiated. -}; // class String - -// Gets the content of the stringstream's buffer as an std::string. Each '\0' -// character in the buffer is replaced with "\\0". -GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { -namespace internal { - -// FilePath - a class for file and directory pathname manipulation which -// handles platform-specific conventions (like the pathname separator). -// Used for helper functions for naming files in a directory for xml output. -// Except for Set methods, all methods are const or static, which provides an -// "immutable value object" -- useful for peace of mind. -// A FilePath with a value ending in a path separator ("like/this/") represents -// a directory, otherwise it is assumed to represent a file. In either case, -// it may or may not represent an actual file or directory in the file system. -// Names are NOT checked for syntax correctness -- no checking for illegal -// characters, malformed paths, etc. - -class GTEST_API_ FilePath { - public: - FilePath() : pathname_("") { } - FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { } - - explicit FilePath(const std::string& pathname) : pathname_(pathname) { - Normalize(); - } - - FilePath& operator=(const FilePath& rhs) { - Set(rhs); - return *this; - } - - void Set(const FilePath& rhs) { - pathname_ = rhs.pathname_; - } - - const std::string& string() const { return pathname_; } - const char* c_str() const { return pathname_.c_str(); } - - // Returns the current working directory, or "" if unsuccessful. - static FilePath GetCurrentDir(); - - // Given directory = "dir", base_name = "test", number = 0, - // extension = "xml", returns "dir/test.xml". If number is greater - // than zero (e.g., 12), returns "dir/test_12.xml". - // On Windows platform, uses \ as the separator rather than /. - static FilePath MakeFileName(const FilePath& directory, - const FilePath& base_name, - int number, - const char* extension); - - // Given directory = "dir", relative_path = "test.xml", - // returns "dir/test.xml". - // On Windows, uses \ as the separator rather than /. - static FilePath ConcatPaths(const FilePath& directory, - const FilePath& relative_path); - - // Returns a pathname for a file that does not currently exist. The pathname - // will be directory/base_name.extension or - // directory/base_name_.extension if directory/base_name.extension - // already exists. The number will be incremented until a pathname is found - // that does not already exist. - // Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. - // There could be a race condition if two or more processes are calling this - // function at the same time -- they could both pick the same filename. - static FilePath GenerateUniqueFileName(const FilePath& directory, - const FilePath& base_name, - const char* extension); - - // Returns true iff the path is "". - bool IsEmpty() const { return pathname_.empty(); } - - // If input name has a trailing separator character, removes it and returns - // the name, otherwise return the name string unmodified. - // On Windows platform, uses \ as the separator, other platforms use /. - FilePath RemoveTrailingPathSeparator() const; - - // Returns a copy of the FilePath with the directory part removed. - // Example: FilePath("path/to/file").RemoveDirectoryName() returns - // FilePath("file"). If there is no directory part ("just_a_file"), it returns - // the FilePath unmodified. If there is no file part ("just_a_dir/") it - // returns an empty FilePath (""). - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveDirectoryName() const; - - // RemoveFileName returns the directory path with the filename removed. - // Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". - // If the FilePath is "a_file" or "/a_file", RemoveFileName returns - // FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does - // not have a file, like "just/a/dir/", it returns the FilePath unmodified. - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveFileName() const; - - // Returns a copy of the FilePath with the case-insensitive extension removed. - // Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns - // FilePath("dir/file"). If a case-insensitive extension is not - // found, returns a copy of the original FilePath. - FilePath RemoveExtension(const char* extension) const; - - // Creates directories so that path exists. Returns true if successful or if - // the directories already exist; returns false if unable to create - // directories for any reason. Will also return false if the FilePath does - // not represent a directory (that is, it doesn't end with a path separator). - bool CreateDirectoriesRecursively() const; - - // Create the directory so that path exists. Returns true if successful or - // if the directory already exists; returns false if unable to create the - // directory for any reason, including if the parent directory does not - // exist. Not named "CreateDirectory" because that's a macro on Windows. - bool CreateFolder() const; - - // Returns true if FilePath describes something in the file-system, - // either a file, directory, or whatever, and that something exists. - bool FileOrDirectoryExists() const; - - // Returns true if pathname describes a directory in the file-system - // that exists. - bool DirectoryExists() const; - - // Returns true if FilePath ends with a path separator, which indicates that - // it is intended to represent a directory. Returns false otherwise. - // This does NOT check that a directory (or file) actually exists. - bool IsDirectory() const; - - // Returns true if pathname describes a root directory. (Windows has one - // root directory per disk drive.) - bool IsRootDirectory() const; - - // Returns true if pathname describes an absolute path. - bool IsAbsolutePath() const; - - private: - // Replaces multiple consecutive separators with a single separator. - // For example, "bar///foo" becomes "bar/foo". Does not eliminate other - // redundancies that might be in a pathname involving "." or "..". - // - // A pathname with multiple consecutive separators may occur either through - // user error or as a result of some scripts or APIs that generate a pathname - // with a trailing separator. On other platforms the same API or script - // may NOT generate a pathname with a trailing "/". Then elsewhere that - // pathname may have another "/" and pathname components added to it, - // without checking for the separator already being there. - // The script language and operating system may allow paths like "foo//bar" - // but some of the functions in FilePath will not handle that correctly. In - // particular, RemoveTrailingPathSeparator() only removes one separator, and - // it is called in CreateDirectoriesRecursively() assuming that it will change - // a pathname from directory syntax (trailing separator) to filename syntax. - // - // On Windows this method also replaces the alternate path separator '/' with - // the primary path separator '\\', so that for example "bar\\/\\foo" becomes - // "bar\\foo". - - void Normalize(); - - // Returns a pointer to the last occurence of a valid path separator in - // the FilePath. On Windows, for example, both '/' and '\' are valid path - // separators. Returns NULL if no path separator was found. - const char* FindLastPathSeparator() const; - - std::string pathname_; -}; // class FilePath - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ -// This file was GENERATED by command: -// pump.py gtest-type-util.h.pump -// DO NOT EDIT BY HAND!!! - -// Copyright 2008 Google Inc. -// 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. - -// Type utilities needed for implementing typed and type-parameterized -// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! -// -// Currently we support at most 50 types in a list, and at most 50 -// type-parameterized tests in one type-parameterized test suite. -// Please contact googletestframework@googlegroups.com if you need -// more. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ - - -// #ifdef __GNUC__ is too general here. It is possible to use gcc without using -// libstdc++ (which is where cxxabi.h comes from). -# if GTEST_HAS_CXXABI_H_ -# include -# elif defined(__HP_aCC) -# include -# endif // GTEST_HASH_CXXABI_H_ - -namespace testing { -namespace internal { - -// Canonicalizes a given name with respect to the Standard C++ Library. -// This handles removing the inline namespace within `std` that is -// used by various standard libraries (e.g., `std::__1`). Names outside -// of namespace std are returned unmodified. -inline std::string CanonicalizeForStdLibVersioning(std::string s) { - static const char prefix[] = "std::__"; - if (s.compare(0, strlen(prefix), prefix) == 0) { - std::string::size_type end = s.find("::", strlen(prefix)); - if (end != s.npos) { - // Erase everything between the initial `std` and the second `::`. - s.erase(strlen("std"), end - strlen("std")); - } - } - return s; -} - -// GetTypeName() returns a human-readable name of type T. -// NB: This function is also used in Google Mock, so don't move it inside of -// the typed-test-only section below. -template -std::string GetTypeName() { -# if GTEST_HAS_RTTI - - const char* const name = typeid(T).name(); -# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) - int status = 0; - // gcc's implementation of typeid(T).name() mangles the type name, - // so we have to demangle it. -# if GTEST_HAS_CXXABI_H_ - using abi::__cxa_demangle; -# endif // GTEST_HAS_CXXABI_H_ - char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status); - const std::string name_str(status == 0 ? readable_name : name); - free(readable_name); - return CanonicalizeForStdLibVersioning(name_str); -# else - return name; -# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC - -# else - - return ""; - -# endif // GTEST_HAS_RTTI -} - -#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -// AssertyTypeEq::type is defined iff T1 and T2 are the same -// type. This can be used as a compile-time assertion to ensure that -// two types are equal. - -template -struct AssertTypeEq; - -template -struct AssertTypeEq { - typedef bool type; -}; - -// A unique type used as the default value for the arguments of class -// template Types. This allows us to simulate variadic templates -// (e.g. Types, Type, and etc), which C++ doesn't -// support directly. -struct None {}; - -// The following family of struct and struct templates are used to -// represent type lists. In particular, TypesN -// represents a type list with N types (T1, T2, ..., and TN) in it. -// Except for Types0, every struct in the family has two member types: -// Head for the first type in the list, and Tail for the rest of the -// list. - -// The empty type list. -struct Types0 {}; - -// Type lists of length 1, 2, 3, and so on. - -template -struct Types1 { - typedef T1 Head; - typedef Types0 Tail; -}; -template -struct Types2 { - typedef T1 Head; - typedef Types1 Tail; -}; - -template -struct Types3 { - typedef T1 Head; - typedef Types2 Tail; -}; - -template -struct Types4 { - typedef T1 Head; - typedef Types3 Tail; -}; - -template -struct Types5 { - typedef T1 Head; - typedef Types4 Tail; -}; - -template -struct Types6 { - typedef T1 Head; - typedef Types5 Tail; -}; - -template -struct Types7 { - typedef T1 Head; - typedef Types6 Tail; -}; - -template -struct Types8 { - typedef T1 Head; - typedef Types7 Tail; -}; - -template -struct Types9 { - typedef T1 Head; - typedef Types8 Tail; -}; - -template -struct Types10 { - typedef T1 Head; - typedef Types9 Tail; -}; - -template -struct Types11 { - typedef T1 Head; - typedef Types10 Tail; -}; - -template -struct Types12 { - typedef T1 Head; - typedef Types11 Tail; -}; - -template -struct Types13 { - typedef T1 Head; - typedef Types12 Tail; -}; - -template -struct Types14 { - typedef T1 Head; - typedef Types13 Tail; -}; - -template -struct Types15 { - typedef T1 Head; - typedef Types14 Tail; -}; - -template -struct Types16 { - typedef T1 Head; - typedef Types15 Tail; -}; - -template -struct Types17 { - typedef T1 Head; - typedef Types16 Tail; -}; - -template -struct Types18 { - typedef T1 Head; - typedef Types17 Tail; -}; - -template -struct Types19 { - typedef T1 Head; - typedef Types18 Tail; -}; - -template -struct Types20 { - typedef T1 Head; - typedef Types19 Tail; -}; - -template -struct Types21 { - typedef T1 Head; - typedef Types20 Tail; -}; - -template -struct Types22 { - typedef T1 Head; - typedef Types21 Tail; -}; - -template -struct Types23 { - typedef T1 Head; - typedef Types22 Tail; -}; - -template -struct Types24 { - typedef T1 Head; - typedef Types23 Tail; -}; - -template -struct Types25 { - typedef T1 Head; - typedef Types24 Tail; -}; - -template -struct Types26 { - typedef T1 Head; - typedef Types25 Tail; -}; - -template -struct Types27 { - typedef T1 Head; - typedef Types26 Tail; -}; - -template -struct Types28 { - typedef T1 Head; - typedef Types27 Tail; -}; - -template -struct Types29 { - typedef T1 Head; - typedef Types28 Tail; -}; - -template -struct Types30 { - typedef T1 Head; - typedef Types29 Tail; -}; - -template -struct Types31 { - typedef T1 Head; - typedef Types30 Tail; -}; - -template -struct Types32 { - typedef T1 Head; - typedef Types31 Tail; -}; - -template -struct Types33 { - typedef T1 Head; - typedef Types32 Tail; -}; - -template -struct Types34 { - typedef T1 Head; - typedef Types33 Tail; -}; - -template -struct Types35 { - typedef T1 Head; - typedef Types34 Tail; -}; - -template -struct Types36 { - typedef T1 Head; - typedef Types35 Tail; -}; - -template -struct Types37 { - typedef T1 Head; - typedef Types36 Tail; -}; - -template -struct Types38 { - typedef T1 Head; - typedef Types37 Tail; -}; - -template -struct Types39 { - typedef T1 Head; - typedef Types38 Tail; -}; - -template -struct Types40 { - typedef T1 Head; - typedef Types39 Tail; -}; - -template -struct Types41 { - typedef T1 Head; - typedef Types40 Tail; -}; - -template -struct Types42 { - typedef T1 Head; - typedef Types41 Tail; -}; - -template -struct Types43 { - typedef T1 Head; - typedef Types42 Tail; -}; - -template -struct Types44 { - typedef T1 Head; - typedef Types43 Tail; -}; - -template -struct Types45 { - typedef T1 Head; - typedef Types44 Tail; -}; - -template -struct Types46 { - typedef T1 Head; - typedef Types45 Tail; -}; - -template -struct Types47 { - typedef T1 Head; - typedef Types46 Tail; -}; - -template -struct Types48 { - typedef T1 Head; - typedef Types47 Tail; -}; - -template -struct Types49 { - typedef T1 Head; - typedef Types48 Tail; -}; - -template -struct Types50 { - typedef T1 Head; - typedef Types49 Tail; -}; - - -} // namespace internal - -// We don't want to require the users to write TypesN<...> directly, -// as that would require them to count the length. Types<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Types -// will appear as Types in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Types, and Google Test will translate -// that to TypesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Types template. -template -struct Types { - typedef internal::Types50 type; -}; - -template <> -struct Types { - typedef internal::Types0 type; -}; -template -struct Types { - typedef internal::Types1 type; -}; -template -struct Types { - typedef internal::Types2 type; -}; -template -struct Types { - typedef internal::Types3 type; -}; -template -struct Types { - typedef internal::Types4 type; -}; -template -struct Types { - typedef internal::Types5 type; -}; -template -struct Types { - typedef internal::Types6 type; -}; -template -struct Types { - typedef internal::Types7 type; -}; -template -struct Types { - typedef internal::Types8 type; -}; -template -struct Types { - typedef internal::Types9 type; -}; -template -struct Types { - typedef internal::Types10 type; -}; -template -struct Types { - typedef internal::Types11 type; -}; -template -struct Types { - typedef internal::Types12 type; -}; -template -struct Types { - typedef internal::Types13 type; -}; -template -struct Types { - typedef internal::Types14 type; -}; -template -struct Types { - typedef internal::Types15 type; -}; -template -struct Types { - typedef internal::Types16 type; -}; -template -struct Types { - typedef internal::Types17 type; -}; -template -struct Types { - typedef internal::Types18 type; -}; -template -struct Types { - typedef internal::Types19 type; -}; -template -struct Types { - typedef internal::Types20 type; -}; -template -struct Types { - typedef internal::Types21 type; -}; -template -struct Types { - typedef internal::Types22 type; -}; -template -struct Types { - typedef internal::Types23 type; -}; -template -struct Types { - typedef internal::Types24 type; -}; -template -struct Types { - typedef internal::Types25 type; -}; -template -struct Types { - typedef internal::Types26 type; -}; -template -struct Types { - typedef internal::Types27 type; -}; -template -struct Types { - typedef internal::Types28 type; -}; -template -struct Types { - typedef internal::Types29 type; -}; -template -struct Types { - typedef internal::Types30 type; -}; -template -struct Types { - typedef internal::Types31 type; -}; -template -struct Types { - typedef internal::Types32 type; -}; -template -struct Types { - typedef internal::Types33 type; -}; -template -struct Types { - typedef internal::Types34 type; -}; -template -struct Types { - typedef internal::Types35 type; -}; -template -struct Types { - typedef internal::Types36 type; -}; -template -struct Types { - typedef internal::Types37 type; -}; -template -struct Types { - typedef internal::Types38 type; -}; -template -struct Types { - typedef internal::Types39 type; -}; -template -struct Types { - typedef internal::Types40 type; -}; -template -struct Types { - typedef internal::Types41 type; -}; -template -struct Types { - typedef internal::Types42 type; -}; -template -struct Types { - typedef internal::Types43 type; -}; -template -struct Types { - typedef internal::Types44 type; -}; -template -struct Types { - typedef internal::Types45 type; -}; -template -struct Types { - typedef internal::Types46 type; -}; -template -struct Types { - typedef internal::Types47 type; -}; -template -struct Types { - typedef internal::Types48 type; -}; -template -struct Types { - typedef internal::Types49 type; -}; - -namespace internal { - -# define GTEST_TEMPLATE_ template class - -// The template "selector" struct TemplateSel is used to -// represent Tmpl, which must be a class template with one type -// parameter, as a type. TemplateSel::Bind::type is defined -// as the type Tmpl. This allows us to actually instantiate the -// template "selected" by TemplateSel. -// -// This trick is necessary for simulating typedef for class templates, -// which C++ doesn't support directly. -template -struct TemplateSel { - template - struct Bind { - typedef Tmpl type; - }; -}; - -# define GTEST_BIND_(TmplSel, T) \ - TmplSel::template Bind::type - -// A unique struct template used as the default value for the -// arguments of class template Templates. This allows us to simulate -// variadic templates (e.g. Templates, Templates, -// and etc), which C++ doesn't support directly. -template -struct NoneT {}; - -// The following family of struct and struct templates are used to -// represent template lists. In particular, TemplatesN represents a list of N templates (T1, T2, ..., and TN). Except -// for Templates0, every struct in the family has two member types: -// Head for the selector of the first template in the list, and Tail -// for the rest of the list. - -// The empty template list. -struct Templates0 {}; - -// Template lists of length 1, 2, 3, and so on. - -template -struct Templates1 { - typedef TemplateSel Head; - typedef Templates0 Tail; -}; -template -struct Templates2 { - typedef TemplateSel Head; - typedef Templates1 Tail; -}; - -template -struct Templates3 { - typedef TemplateSel Head; - typedef Templates2 Tail; -}; - -template -struct Templates4 { - typedef TemplateSel Head; - typedef Templates3 Tail; -}; - -template -struct Templates5 { - typedef TemplateSel Head; - typedef Templates4 Tail; -}; - -template -struct Templates6 { - typedef TemplateSel Head; - typedef Templates5 Tail; -}; - -template -struct Templates7 { - typedef TemplateSel Head; - typedef Templates6 Tail; -}; - -template -struct Templates8 { - typedef TemplateSel Head; - typedef Templates7 Tail; -}; - -template -struct Templates9 { - typedef TemplateSel Head; - typedef Templates8 Tail; -}; - -template -struct Templates10 { - typedef TemplateSel Head; - typedef Templates9 Tail; -}; - -template -struct Templates11 { - typedef TemplateSel Head; - typedef Templates10 Tail; -}; - -template -struct Templates12 { - typedef TemplateSel Head; - typedef Templates11 Tail; -}; - -template -struct Templates13 { - typedef TemplateSel Head; - typedef Templates12 Tail; -}; - -template -struct Templates14 { - typedef TemplateSel Head; - typedef Templates13 Tail; -}; - -template -struct Templates15 { - typedef TemplateSel Head; - typedef Templates14 Tail; -}; - -template -struct Templates16 { - typedef TemplateSel Head; - typedef Templates15 Tail; -}; - -template -struct Templates17 { - typedef TemplateSel Head; - typedef Templates16 Tail; -}; - -template -struct Templates18 { - typedef TemplateSel Head; - typedef Templates17 Tail; -}; - -template -struct Templates19 { - typedef TemplateSel Head; - typedef Templates18 Tail; -}; - -template -struct Templates20 { - typedef TemplateSel Head; - typedef Templates19 Tail; -}; - -template -struct Templates21 { - typedef TemplateSel Head; - typedef Templates20 Tail; -}; - -template -struct Templates22 { - typedef TemplateSel Head; - typedef Templates21 Tail; -}; - -template -struct Templates23 { - typedef TemplateSel Head; - typedef Templates22 Tail; -}; - -template -struct Templates24 { - typedef TemplateSel Head; - typedef Templates23 Tail; -}; - -template -struct Templates25 { - typedef TemplateSel Head; - typedef Templates24 Tail; -}; - -template -struct Templates26 { - typedef TemplateSel Head; - typedef Templates25 Tail; -}; - -template -struct Templates27 { - typedef TemplateSel Head; - typedef Templates26 Tail; -}; - -template -struct Templates28 { - typedef TemplateSel Head; - typedef Templates27 Tail; -}; - -template -struct Templates29 { - typedef TemplateSel Head; - typedef Templates28 Tail; -}; - -template -struct Templates30 { - typedef TemplateSel Head; - typedef Templates29 Tail; -}; - -template -struct Templates31 { - typedef TemplateSel Head; - typedef Templates30 Tail; -}; - -template -struct Templates32 { - typedef TemplateSel Head; - typedef Templates31 Tail; -}; - -template -struct Templates33 { - typedef TemplateSel Head; - typedef Templates32 Tail; -}; - -template -struct Templates34 { - typedef TemplateSel Head; - typedef Templates33 Tail; -}; - -template -struct Templates35 { - typedef TemplateSel Head; - typedef Templates34 Tail; -}; - -template -struct Templates36 { - typedef TemplateSel Head; - typedef Templates35 Tail; -}; - -template -struct Templates37 { - typedef TemplateSel Head; - typedef Templates36 Tail; -}; - -template -struct Templates38 { - typedef TemplateSel Head; - typedef Templates37 Tail; -}; - -template -struct Templates39 { - typedef TemplateSel Head; - typedef Templates38 Tail; -}; - -template -struct Templates40 { - typedef TemplateSel Head; - typedef Templates39 Tail; -}; - -template -struct Templates41 { - typedef TemplateSel Head; - typedef Templates40 Tail; -}; - -template -struct Templates42 { - typedef TemplateSel Head; - typedef Templates41 Tail; -}; - -template -struct Templates43 { - typedef TemplateSel Head; - typedef Templates42 Tail; -}; - -template -struct Templates44 { - typedef TemplateSel Head; - typedef Templates43 Tail; -}; - -template -struct Templates45 { - typedef TemplateSel Head; - typedef Templates44 Tail; -}; - -template -struct Templates46 { - typedef TemplateSel Head; - typedef Templates45 Tail; -}; - -template -struct Templates47 { - typedef TemplateSel Head; - typedef Templates46 Tail; -}; - -template -struct Templates48 { - typedef TemplateSel Head; - typedef Templates47 Tail; -}; - -template -struct Templates49 { - typedef TemplateSel Head; - typedef Templates48 Tail; -}; - -template -struct Templates50 { - typedef TemplateSel Head; - typedef Templates49 Tail; -}; - - -// We don't want to require the users to write TemplatesN<...> directly, -// as that would require them to count the length. Templates<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Templates -// will appear as Templates in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Templates, and Google Test will translate -// that to TemplatesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Templates template. -template -struct Templates { - typedef Templates50 type; -}; - -template <> -struct Templates { - typedef Templates0 type; -}; -template -struct Templates { - typedef Templates1 type; -}; -template -struct Templates { - typedef Templates2 type; -}; -template -struct Templates { - typedef Templates3 type; -}; -template -struct Templates { - typedef Templates4 type; -}; -template -struct Templates { - typedef Templates5 type; -}; -template -struct Templates { - typedef Templates6 type; -}; -template -struct Templates { - typedef Templates7 type; -}; -template -struct Templates { - typedef Templates8 type; -}; -template -struct Templates { - typedef Templates9 type; -}; -template -struct Templates { - typedef Templates10 type; -}; -template -struct Templates { - typedef Templates11 type; -}; -template -struct Templates { - typedef Templates12 type; -}; -template -struct Templates { - typedef Templates13 type; -}; -template -struct Templates { - typedef Templates14 type; -}; -template -struct Templates { - typedef Templates15 type; -}; -template -struct Templates { - typedef Templates16 type; -}; -template -struct Templates { - typedef Templates17 type; -}; -template -struct Templates { - typedef Templates18 type; -}; -template -struct Templates { - typedef Templates19 type; -}; -template -struct Templates { - typedef Templates20 type; -}; -template -struct Templates { - typedef Templates21 type; -}; -template -struct Templates { - typedef Templates22 type; -}; -template -struct Templates { - typedef Templates23 type; -}; -template -struct Templates { - typedef Templates24 type; -}; -template -struct Templates { - typedef Templates25 type; -}; -template -struct Templates { - typedef Templates26 type; -}; -template -struct Templates { - typedef Templates27 type; -}; -template -struct Templates { - typedef Templates28 type; -}; -template -struct Templates { - typedef Templates29 type; -}; -template -struct Templates { - typedef Templates30 type; -}; -template -struct Templates { - typedef Templates31 type; -}; -template -struct Templates { - typedef Templates32 type; -}; -template -struct Templates { - typedef Templates33 type; -}; -template -struct Templates { - typedef Templates34 type; -}; -template -struct Templates { - typedef Templates35 type; -}; -template -struct Templates { - typedef Templates36 type; -}; -template -struct Templates { - typedef Templates37 type; -}; -template -struct Templates { - typedef Templates38 type; -}; -template -struct Templates { - typedef Templates39 type; -}; -template -struct Templates { - typedef Templates40 type; -}; -template -struct Templates { - typedef Templates41 type; -}; -template -struct Templates { - typedef Templates42 type; -}; -template -struct Templates { - typedef Templates43 type; -}; -template -struct Templates { - typedef Templates44 type; -}; -template -struct Templates { - typedef Templates45 type; -}; -template -struct Templates { - typedef Templates46 type; -}; -template -struct Templates { - typedef Templates47 type; -}; -template -struct Templates { - typedef Templates48 type; -}; -template -struct Templates { - typedef Templates49 type; -}; - -// The TypeList template makes it possible to use either a single type -// or a Types<...> list in TYPED_TEST_SUITE() and -// INSTANTIATE_TYPED_TEST_SUITE_P(). - -template -struct TypeList { - typedef Types1 type; -}; - -template -struct TypeList > { - typedef typename Types::type type; -}; - -#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ - -// Due to C++ preprocessor weirdness, we need double indirection to -// concatenate two tokens when one of them is __LINE__. Writing -// -// foo ## __LINE__ -// -// will result in the token foo__LINE__, instead of foo followed by -// the current line number. For more details, see -// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6 -#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) -#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar - -// Stringifies its argument. -#define GTEST_STRINGIFY_(name) #name - -namespace proto2 { class Message; } - -namespace testing { - -// Forward declarations. - -class AssertionResult; // Result of an assertion. -class Message; // Represents a failure message. -class Test; // Represents a test. -class TestInfo; // Information about a test. -class TestPartResult; // Result of a test part. -class UnitTest; // A collection of test suites. - -template -::std::string PrintToString(const T& value); - -namespace internal { - -struct TraceInfo; // Information about a trace point. -class TestInfoImpl; // Opaque implementation of TestInfo -class UnitTestImpl; // Opaque implementation of UnitTest - -// The text used in failure messages to indicate the start of the -// stack trace. -GTEST_API_ extern const char kStackTraceMarker[]; - -// An IgnoredValue object can be implicitly constructed from ANY value. -class IgnoredValue { - struct Sink {}; - public: - // This constructor template allows any value to be implicitly - // converted to IgnoredValue. The object has no data member and - // doesn't try to remember anything about the argument. We - // deliberately omit the 'explicit' keyword in order to allow the - // conversion to be implicit. - // Disable the conversion if T already has a magical conversion operator. - // Otherwise we get ambiguity. - template ::value, - int>::type = 0> - IgnoredValue(const T& /* ignored */) {} // NOLINT(runtime/explicit) -}; - -// Appends the user-supplied message to the Google-Test-generated message. -GTEST_API_ std::string AppendUserMessage( - const std::string& gtest_msg, const Message& user_msg); - -#if GTEST_HAS_EXCEPTIONS - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4275 \ -/* an exported class was derived from a class that was not exported */) - -// This exception is thrown by (and only by) a failed Google Test -// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions -// are enabled). We derive it from std::runtime_error, which is for -// errors presumably detectable only at run time. Since -// std::runtime_error inherits from std::exception, many testing -// frameworks know how to extract and print the message inside it. -class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { - public: - explicit GoogleTestFailureException(const TestPartResult& failure); -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4275 - -#endif // GTEST_HAS_EXCEPTIONS - -namespace edit_distance { -// Returns the optimal edits to go from 'left' to 'right'. -// All edits cost the same, with replace having lower priority than -// add/remove. -// Simple implementation of the Wagner-Fischer algorithm. -// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm -enum EditType { kMatch, kAdd, kRemove, kReplace }; -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, const std::vector& right); - -// Same as above, but the input is represented as strings. -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, - const std::vector& right); - -// Create a diff of the input strings in Unified diff format. -GTEST_API_ std::string CreateUnifiedDiff(const std::vector& left, - const std::vector& right, - size_t context = 2); - -} // namespace edit_distance - -// Calculate the diff between 'left' and 'right' and return it in unified diff -// format. -// If not null, stores in 'total_line_count' the total number of lines found -// in left + right. -GTEST_API_ std::string DiffStrings(const std::string& left, - const std::string& right, - size_t* total_line_count); - -// Constructs and returns the message for an equality assertion -// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. -// -// The first four parameters are the expressions used in the assertion -// and their values, as strings. For example, for ASSERT_EQ(foo, bar) -// where foo is 5 and bar is 6, we have: -// -// expected_expression: "foo" -// actual_expression: "bar" -// expected_value: "5" -// actual_value: "6" -// -// The ignoring_case parameter is true iff the assertion is a -// *_STRCASEEQ*. When it's true, the string " (ignoring case)" will -// be inserted into the message. -GTEST_API_ AssertionResult EqFailure(const char* expected_expression, - const char* actual_expression, - const std::string& expected_value, - const std::string& actual_value, - bool ignoring_case); - -// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -GTEST_API_ std::string GetBoolAssertionFailureMessage( - const AssertionResult& assertion_result, - const char* expression_text, - const char* actual_predicate_value, - const char* expected_predicate_value); - -// This template class represents an IEEE floating-point number -// (either single-precision or double-precision, depending on the -// template parameters). -// -// The purpose of this class is to do more sophisticated number -// comparison. (Due to round-off error, etc, it's very unlikely that -// two floating-points will be equal exactly. Hence a naive -// comparison by the == operation often doesn't work.) -// -// Format of IEEE floating-point: -// -// The most-significant bit being the leftmost, an IEEE -// floating-point looks like -// -// sign_bit exponent_bits fraction_bits -// -// Here, sign_bit is a single bit that designates the sign of the -// number. -// -// For float, there are 8 exponent bits and 23 fraction bits. -// -// For double, there are 11 exponent bits and 52 fraction bits. -// -// More details can be found at -// http://en.wikipedia.org/wiki/IEEE_floating-point_standard. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -template -class FloatingPoint { - public: - // Defines the unsigned integer type that has the same size as the - // floating point number. - typedef typename TypeWithSize::UInt Bits; - - // Constants. - - // # of bits in a number. - static const size_t kBitCount = 8*sizeof(RawType); - - // # of fraction bits in a number. - static const size_t kFractionBitCount = - std::numeric_limits::digits - 1; - - // # of exponent bits in a number. - static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; - - // The mask for the sign bit. - static const Bits kSignBitMask = static_cast(1) << (kBitCount - 1); - - // The mask for the fraction bits. - static const Bits kFractionBitMask = - ~static_cast(0) >> (kExponentBitCount + 1); - - // The mask for the exponent bits. - static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); - - // How many ULP's (Units in the Last Place) we want to tolerate when - // comparing two numbers. The larger the value, the more error we - // allow. A 0 value means that two numbers must be exactly the same - // to be considered equal. - // - // The maximum error of a single floating-point operation is 0.5 - // units in the last place. On Intel CPU's, all floating-point - // calculations are done with 80-bit precision, while double has 64 - // bits. Therefore, 4 should be enough for ordinary use. - // - // See the following article for more details on ULP: - // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - static const size_t kMaxUlps = 4; - - // Constructs a FloatingPoint from a raw floating-point number. - // - // On an Intel CPU, passing a non-normalized NAN (Not a Number) - // around may change its bits, although the new value is guaranteed - // to be also a NAN. Therefore, don't expect this constructor to - // preserve the bits in x when x is a NAN. - explicit FloatingPoint(const RawType& x) { u_.value_ = x; } - - // Static methods - - // Reinterprets a bit pattern as a floating-point number. - // - // This function is needed to test the AlmostEquals() method. - static RawType ReinterpretBits(const Bits bits) { - FloatingPoint fp(0); - fp.u_.bits_ = bits; - return fp.u_.value_; - } - - // Returns the floating-point number that represent positive infinity. - static RawType Infinity() { - return ReinterpretBits(kExponentBitMask); - } - - // Returns the maximum representable finite floating-point number. - static RawType Max(); - - // Non-static methods - - // Returns the bits that represents this number. - const Bits &bits() const { return u_.bits_; } - - // Returns the exponent bits of this number. - Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } - - // Returns the fraction bits of this number. - Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } - - // Returns the sign bit of this number. - Bits sign_bit() const { return kSignBitMask & u_.bits_; } - - // Returns true iff this is NAN (not a number). - bool is_nan() const { - // It's a NAN if the exponent bits are all ones and the fraction - // bits are not entirely zeros. - return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); - } - - // Returns true iff this number is at most kMaxUlps ULP's away from - // rhs. In particular, this function: - // - // - returns false if either number is (or both are) NAN. - // - treats really large numbers as almost equal to infinity. - // - thinks +0.0 and -0.0 are 0 DLP's apart. - bool AlmostEquals(const FloatingPoint& rhs) const { - // The IEEE standard says that any comparison operation involving - // a NAN must return false. - if (is_nan() || rhs.is_nan()) return false; - - return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) - <= kMaxUlps; - } - - private: - // The data type used to store the actual floating-point number. - union FloatingPointUnion { - RawType value_; // The raw floating-point number. - Bits bits_; // The bits that represent the number. - }; - - // Converts an integer from the sign-and-magnitude representation to - // the biased representation. More precisely, let N be 2 to the - // power of (kBitCount - 1), an integer x is represented by the - // unsigned number x + N. - // - // For instance, - // - // -N + 1 (the most negative number representable using - // sign-and-magnitude) is represented by 1; - // 0 is represented by N; and - // N - 1 (the biggest number representable using - // sign-and-magnitude) is represented by 2N - 1. - // - // Read http://en.wikipedia.org/wiki/Signed_number_representations - // for more details on signed number representations. - static Bits SignAndMagnitudeToBiased(const Bits &sam) { - if (kSignBitMask & sam) { - // sam represents a negative number. - return ~sam + 1; - } else { - // sam represents a positive number. - return kSignBitMask | sam; - } - } - - // Given two numbers in the sign-and-magnitude representation, - // returns the distance between them as an unsigned number. - static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, - const Bits &sam2) { - const Bits biased1 = SignAndMagnitudeToBiased(sam1); - const Bits biased2 = SignAndMagnitudeToBiased(sam2); - return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); - } - - FloatingPointUnion u_; -}; - -// We cannot use std::numeric_limits::max() as it clashes with the max() -// macro defined by . -template <> -inline float FloatingPoint::Max() { return FLT_MAX; } -template <> -inline double FloatingPoint::Max() { return DBL_MAX; } - -// Typedefs the instances of the FloatingPoint template class that we -// care to use. -typedef FloatingPoint Float; -typedef FloatingPoint Double; - -// In order to catch the mistake of putting tests that use different -// test fixture classes in the same test suite, we need to assign -// unique IDs to fixture classes and compare them. The TypeId type is -// used to hold such IDs. The user should treat TypeId as an opaque -// type: the only operation allowed on TypeId values is to compare -// them for equality using the == operator. -typedef const void* TypeId; - -template -class TypeIdHelper { - public: - // dummy_ must not have a const type. Otherwise an overly eager - // compiler (e.g. MSVC 7.1 & 8.0) may try to merge - // TypeIdHelper::dummy_ for different Ts as an "optimization". - static bool dummy_; -}; - -template -bool TypeIdHelper::dummy_ = false; - -// GetTypeId() returns the ID of type T. Different values will be -// returned for different types. Calling the function twice with the -// same type argument is guaranteed to return the same ID. -template -TypeId GetTypeId() { - // The compiler is required to allocate a different - // TypeIdHelper::dummy_ variable for each T used to instantiate - // the template. Therefore, the address of dummy_ is guaranteed to - // be unique. - return &(TypeIdHelper::dummy_); -} - -// Returns the type ID of ::testing::Test. Always call this instead -// of GetTypeId< ::testing::Test>() to get the type ID of -// ::testing::Test, as the latter may give the wrong result due to a -// suspected linker bug when compiling Google Test as a Mac OS X -// framework. -GTEST_API_ TypeId GetTestTypeId(); - -// Defines the abstract factory interface that creates instances -// of a Test object. -class TestFactoryBase { - public: - virtual ~TestFactoryBase() {} - - // Creates a test instance to run. The instance is both created and destroyed - // within TestInfoImpl::Run() - virtual Test* CreateTest() = 0; - - protected: - TestFactoryBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase); -}; - -// This class provides implementation of TeastFactoryBase interface. -// It is used in TEST and TEST_F macros. -template -class TestFactoryImpl : public TestFactoryBase { - public: - Test* CreateTest() override { return new TestClass; } -}; - -#if GTEST_OS_WINDOWS - -// Predicate-formatters for implementing the HRESULT checking macros -// {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED} -// We pass a long instead of HRESULT to avoid causing an -// include dependency for the HRESULT type. -GTEST_API_ AssertionResult IsHRESULTSuccess(const char* expr, - long hr); // NOLINT -GTEST_API_ AssertionResult IsHRESULTFailure(const char* expr, - long hr); // NOLINT - -#endif // GTEST_OS_WINDOWS - -// Types of SetUpTestSuite() and TearDownTestSuite() functions. -using SetUpTestSuiteFunc = void (*)(); -using TearDownTestSuiteFunc = void (*)(); - -struct CodeLocation { - CodeLocation(const std::string& a_file, int a_line) - : file(a_file), line(a_line) {} - - std::string file; - int line; -}; - -// Helper to identify which setup function for TestCase / TestSuite to call. -// Only one function is allowed, either TestCase or TestSute but not both. - -// Utility functions to help SuiteApiResolver -using SetUpTearDownSuiteFuncType = void (*)(); - -inline SetUpTearDownSuiteFuncType GetNotDefaultOrNull( - SetUpTearDownSuiteFuncType a, SetUpTearDownSuiteFuncType def) { - return a == def ? nullptr : a; -} - -template -// Note that SuiteApiResolver inherits from T because -// SetUpTestSuite()/TearDownTestSuite() could be protected. Ths way -// SuiteApiResolver can access them. -struct SuiteApiResolver : T { - // testing::Test is only forward declared at this point. So we make it a - // dependend class for the compiler to be OK with it. - using Test = - typename std::conditional::type; - - static SetUpTearDownSuiteFuncType GetSetUpCaseOrSuite() { - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::SetUpTestCase, &Test::SetUpTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::SetUpTestSuite, &Test::SetUpTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both SetUpTestSuite and SetUpTestCase, please " - "make sure there is only one present "; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; - } - - static SetUpTearDownSuiteFuncType GetTearDownCaseOrSuite() { - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::TearDownTestCase, &Test::TearDownTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::TearDownTestSuite, &Test::TearDownTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both TearDownTestSuite and TearDownTestCase," - " please make sure there is only one present "; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; - } -}; - -// Creates a new TestInfo object and registers it with Google Test; -// returns the created object. -// -// Arguments: -// -// test_suite_name: name of the test suite -// name: name of the test -// type_param the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. -// value_param text representation of the test's value parameter, -// or NULL if this is not a type-parameterized test. -// code_location: code location where the test is defined -// fixture_class_id: ID of the test fixture class -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -// factory: pointer to the factory that creates a test object. -// The newly created TestInfo instance will assume -// ownership of the factory object. -GTEST_API_ TestInfo* MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, CodeLocation code_location, - TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, - TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory); - -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -GTEST_API_ bool SkipPrefix(const char* prefix, const char** pstr); - -#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// State of the definition of a type-parameterized test suite. -class GTEST_API_ TypedTestSuitePState { - public: - TypedTestSuitePState() : registered_(false) {} - - // Adds the given test name to defined_test_names_ and return true - // if the test suite hasn't been registered; otherwise aborts the - // program. - bool AddTestName(const char* file, int line, const char* case_name, - const char* test_name) { - if (registered_) { - fprintf(stderr, - "%s Test %s must be defined before " - "REGISTER_TYPED_TEST_SUITE_P(%s, ...).\n", - FormatFileLocation(file, line).c_str(), test_name, case_name); - fflush(stderr); - posix::Abort(); - } - registered_tests_.insert( - ::std::make_pair(test_name, CodeLocation(file, line))); - return true; - } - - bool TestExists(const std::string& test_name) const { - return registered_tests_.count(test_name) > 0; - } - - const CodeLocation& GetCodeLocation(const std::string& test_name) const { - RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name); - GTEST_CHECK_(it != registered_tests_.end()); - return it->second; - } - - // Verifies that registered_tests match the test names in - // defined_test_names_; returns registered_tests if successful, or - // aborts the program otherwise. - const char* VerifyRegisteredTestNames( - const char* file, int line, const char* registered_tests); - - private: - typedef ::std::map RegisteredTestsMap; - - bool registered_; - RegisteredTestsMap registered_tests_; -}; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TypedTestCasePState = TypedTestSuitePState; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Skips to the first non-space char after the first comma in 'str'; -// returns NULL if no comma is found in 'str'. -inline const char* SkipComma(const char* str) { - const char* comma = strchr(str, ','); - if (comma == nullptr) { - return nullptr; - } - while (IsSpace(*(++comma))) {} - return comma; -} - -// Returns the prefix of 'str' before the first comma in it; returns -// the entire string if it contains no comma. -inline std::string GetPrefixUntilComma(const char* str) { - const char* comma = strchr(str, ','); - return comma == nullptr ? str : std::string(str, comma); -} - -// Splits a given string on a given delimiter, populating a given -// vector with the fields. -void SplitString(const ::std::string& str, char delimiter, - ::std::vector< ::std::string>* dest); - -// The default argument to the template below for the case when the user does -// not provide a name generator. -struct DefaultNameGenerator { - template - static std::string GetName(int i) { - return StreamableToString(i); - } -}; - -template -struct NameGeneratorSelector { - typedef Provided type; -}; - -template -void GenerateNamesRecursively(Types0, std::vector*, int) {} - -template -void GenerateNamesRecursively(Types, std::vector* result, int i) { - result->push_back(NameGenerator::template GetName(i)); - GenerateNamesRecursively(typename Types::Tail(), result, - i + 1); -} - -template -std::vector GenerateNames() { - std::vector result; - GenerateNamesRecursively(Types(), &result, 0); - return result; -} - -// TypeParameterizedTest::Register() -// registers a list of type-parameterized tests with Google Test. The -// return value is insignificant - we just need to return something -// such that we can call this function in a namespace scope. -// -// Implementation note: The GTEST_TEMPLATE_ macro declares a template -// template parameter. It's defined in gtest-type-util.h. -template -class TypeParameterizedTest { - public: - // 'index' is the index of the test in the type list 'Types' - // specified in INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, TestSuite, - // Types). Valid values for 'index' are [0, N - 1] where N is the - // length of Types. - static bool Register(const char* prefix, const CodeLocation& code_location, - const char* case_name, const char* test_names, int index, - const std::vector& type_names = - GenerateNames()) { - typedef typename Types::Head Type; - typedef Fixture FixtureClass; - typedef typename GTEST_BIND_(TestSel, Type) TestClass; - - // First, registers the first type-parameterized test in the type - // list. - MakeAndRegisterTestInfo( - (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + - "/" + type_names[index]) - .c_str(), - StripTrailingSpaces(GetPrefixUntilComma(test_names)).c_str(), - GetTypeName().c_str(), - nullptr, // No value parameter. - code_location, GetTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite(), - SuiteApiResolver::GetTearDownCaseOrSuite(), - new TestFactoryImpl); - - // Next, recurses (at compile time) with the tail of the type list. - return TypeParameterizedTest::Register(prefix, - code_location, - case_name, - test_names, - index + 1, - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTest { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const char* /*case_name*/, const char* /*test_names*/, - int /*index*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -// TypeParameterizedTestSuite::Register() -// registers *all combinations* of 'Tests' and 'Types' with Google -// Test. The return value is insignificant - we just need to return -// something such that we can call this function in a namespace scope. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* prefix, CodeLocation code_location, - const TypedTestSuitePState* state, const char* case_name, - const char* test_names, - const std::vector& type_names = - GenerateNames()) { - std::string test_name = StripTrailingSpaces( - GetPrefixUntilComma(test_names)); - if (!state->TestExists(test_name)) { - fprintf(stderr, "Failed to get code location for test %s.%s at %s.", - case_name, test_name.c_str(), - FormatFileLocation(code_location.file.c_str(), - code_location.line).c_str()); - fflush(stderr); - posix::Abort(); - } - const CodeLocation& test_location = state->GetCodeLocation(test_name); - - typedef typename Tests::Head Head; - - // First, register the first test in 'Test' for each type in 'Types'. - TypeParameterizedTest::Register( - prefix, test_location, case_name, test_names, 0, type_names); - - // Next, recurses (at compile time) with the tail of the test list. - return TypeParameterizedTestSuite::Register(prefix, code_location, - state, case_name, - SkipComma(test_names), - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const TypedTestSuitePState* /*state*/, - const char* /*case_name*/, const char* /*test_names*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in -// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_API_ std::string GetCurrentOsStackTraceExceptTop( - UnitTest* unit_test, int skip_count); - -// Helpers for suppressing warnings on unreachable code or constant -// condition. - -// Always returns true. -GTEST_API_ bool AlwaysTrue(); - -// Always returns false. -inline bool AlwaysFalse() { return !AlwaysTrue(); } - -// Helper for suppressing false warning from Clang on a const char* -// variable declared in a conditional expression always being NULL in -// the else branch. -struct GTEST_API_ ConstCharPtr { - ConstCharPtr(const char* str) : value(str) {} - operator bool() const { return true; } - const char* value; -}; - -// A simple Linear Congruential Generator for generating random -// numbers with a uniform distribution. Unlike rand() and srand(), it -// doesn't use global state (and therefore can't interfere with user -// code). Unlike rand_r(), it's portable. An LCG isn't very random, -// but it's good enough for our purposes. -class GTEST_API_ Random { - public: - static const UInt32 kMaxRange = 1u << 31; - - explicit Random(UInt32 seed) : state_(seed) {} - - void Reseed(UInt32 seed) { state_ = seed; } - - // Generates a random number from [0, range). Crashes if 'range' is - // 0 or greater than kMaxRange. - UInt32 Generate(UInt32 range); - - private: - UInt32 state_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(Random); -}; - -// Defining a variable of type CompileAssertTypesEqual will cause a -// compiler error iff T1 and T2 are different types. -template -struct CompileAssertTypesEqual; - -template -struct CompileAssertTypesEqual { -}; - -// Removes the reference from a type if it is a reference type, -// otherwise leaves it unchanged. This is the same as -// tr1::remove_reference, which is not widely available yet. -template -struct RemoveReference { typedef T type; }; // NOLINT -template -struct RemoveReference { typedef T type; }; // NOLINT - -// A handy wrapper around RemoveReference that works when the argument -// T depends on template parameters. -#define GTEST_REMOVE_REFERENCE_(T) \ - typename ::testing::internal::RemoveReference::type - -// Removes const from a type if it is a const type, otherwise leaves -// it unchanged. This is the same as tr1::remove_const, which is not -// widely available yet. -template -struct RemoveConst { typedef T type; }; // NOLINT -template -struct RemoveConst { typedef T type; }; // NOLINT - -// MSVC 8.0, Sun C++, and IBM XL C++ have a bug which causes the above -// definition to fail to remove the const in 'const int[3]' and 'const -// char[3][4]'. The following specialization works around the bug. -template -struct RemoveConst { - typedef typename RemoveConst::type type[N]; -}; - -// A handy wrapper around RemoveConst that works when the argument -// T depends on template parameters. -#define GTEST_REMOVE_CONST_(T) \ - typename ::testing::internal::RemoveConst::type - -// Turns const U&, U&, const U, and U all into U. -#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \ - GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T)) - -// IsAProtocolMessage::value is a compile-time bool constant that's -// true iff T is type proto2::Message or a subclass of it. -template -struct IsAProtocolMessage - : public bool_constant< - std::is_convertible::value> { -}; - -// When the compiler sees expression IsContainerTest(0), if C is an -// STL-style container class, the first overload of IsContainerTest -// will be viable (since both C::iterator* and C::const_iterator* are -// valid types and NULL can be implicitly converted to them). It will -// be picked over the second overload as 'int' is a perfect match for -// the type of argument 0. If C::iterator or C::const_iterator is not -// a valid type, the first overload is not viable, and the second -// overload will be picked. Therefore, we can determine whether C is -// a container class by checking the type of IsContainerTest(0). -// The value of the expression is insignificant. -// -// In C++11 mode we check the existence of a const_iterator and that an -// iterator is properly implemented for the container. -// -// For pre-C++11 that we look for both C::iterator and C::const_iterator. -// The reason is that C++ injects the name of a class as a member of the -// class itself (e.g. you can refer to class iterator as either -// 'iterator' or 'iterator::iterator'). If we look for C::iterator -// only, for example, we would mistakenly think that a class named -// iterator is an STL container. -// -// Also note that the simpler approach of overloading -// IsContainerTest(typename C::const_iterator*) and -// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++. -typedef int IsContainer; -template ().begin()), - class = decltype(::std::declval().end()), - class = decltype(++::std::declval()), - class = decltype(*::std::declval()), - class = typename C::const_iterator> -IsContainer IsContainerTest(int /* dummy */) { - return 0; -} - -typedef char IsNotContainer; -template -IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; } - -// Trait to detect whether a type T is a hash table. -// The heuristic used is that the type contains an inner type `hasher` and does -// not contain an inner type `reverse_iterator`. -// If the container is iterable in reverse, then order might actually matter. -template -struct IsHashTable { - private: - template - static char test(typename U::hasher*, typename U::reverse_iterator*); - template - static int test(typename U::hasher*, ...); - template - static char test(...); - - public: - static const bool value = sizeof(test(nullptr, nullptr)) == sizeof(int); -}; - -template -const bool IsHashTable::value; - -template (0)) == sizeof(IsContainer)> -struct IsRecursiveContainerImpl; - -template -struct IsRecursiveContainerImpl : public false_type {}; - -// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to -// obey the same inconsistencies as the IsContainerTest, namely check if -// something is a container is relying on only const_iterator in C++11 and -// is relying on both const_iterator and iterator otherwise -template -struct IsRecursiveContainerImpl { - using value_type = decltype(*std::declval()); - using type = - is_same::type>::type, - C>; -}; - -// IsRecursiveContainer is a unary compile-time predicate that -// evaluates whether C is a recursive container type. A recursive container -// type is a container type whose value_type is equal to the container type -// itself. An example for a recursive container type is -// boost::filesystem::path, whose iterator has a value_type that is equal to -// boost::filesystem::path. -template -struct IsRecursiveContainer : public IsRecursiveContainerImpl::type {}; - -// EnableIf::type is void when 'Cond' is true, and -// undefined when 'Cond' is false. To use SFINAE to make a function -// overload only apply when a particular expression is true, add -// "typename EnableIf::type* = 0" as the last parameter. -template struct EnableIf; -template<> struct EnableIf { typedef void type; }; // NOLINT - -// Utilities for native arrays. - -// ArrayEq() compares two k-dimensional native arrays using the -// elements' operator==, where k can be any integer >= 0. When k is -// 0, ArrayEq() degenerates into comparing a single pair of values. - -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs); - -// This generic version is used when k is 0. -template -inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; } - -// This overload is used when k >= 1. -template -inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) { - return internal::ArrayEq(lhs, N, rhs); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous ArrayEq() function, arrays with different sizes would -// lead to different copies of the template code. -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs) { - for (size_t i = 0; i != size; i++) { - if (!internal::ArrayEq(lhs[i], rhs[i])) - return false; - } - return true; -} - -// Finds the first element in the iterator range [begin, end) that -// equals elem. Element may be a native array type itself. -template -Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) { - for (Iter it = begin; it != end; ++it) { - if (internal::ArrayEq(*it, elem)) - return it; - } - return end; -} - -// CopyArray() copies a k-dimensional native array using the elements' -// operator=, where k can be any integer >= 0. When k is 0, -// CopyArray() degenerates into copying a single value. - -template -void CopyArray(const T* from, size_t size, U* to); - -// This generic version is used when k is 0. -template -inline void CopyArray(const T& from, U* to) { *to = from; } - -// This overload is used when k >= 1. -template -inline void CopyArray(const T(&from)[N], U(*to)[N]) { - internal::CopyArray(from, N, *to); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous CopyArray() function, arrays with different sizes -// would lead to different copies of the template code. -template -void CopyArray(const T* from, size_t size, U* to) { - for (size_t i = 0; i != size; i++) { - internal::CopyArray(from[i], to + i); - } -} - -// The relation between an NativeArray object (see below) and the -// native array it represents. -// We use 2 different structs to allow non-copyable types to be used, as long -// as RelationToSourceReference() is passed. -struct RelationToSourceReference {}; -struct RelationToSourceCopy {}; - -// Adapts a native array to a read-only STL-style container. Instead -// of the complete STL container concept, this adaptor only implements -// members useful for Google Mock's container matchers. New members -// should be added as needed. To simplify the implementation, we only -// support Element being a raw type (i.e. having no top-level const or -// reference modifier). It's the client's responsibility to satisfy -// this requirement. Element can be an array type itself (hence -// multi-dimensional arrays are supported). -template -class NativeArray { - public: - // STL-style container typedefs. - typedef Element value_type; - typedef Element* iterator; - typedef const Element* const_iterator; - - // Constructs from a native array. References the source. - NativeArray(const Element* array, size_t count, RelationToSourceReference) { - InitRef(array, count); - } - - // Constructs from a native array. Copies the source. - NativeArray(const Element* array, size_t count, RelationToSourceCopy) { - InitCopy(array, count); - } - - // Copy constructor. - NativeArray(const NativeArray& rhs) { - (this->*rhs.clone_)(rhs.array_, rhs.size_); - } - - ~NativeArray() { - if (clone_ != &NativeArray::InitRef) - delete[] array_; - } - - // STL-style container methods. - size_t size() const { return size_; } - const_iterator begin() const { return array_; } - const_iterator end() const { return array_ + size_; } - bool operator==(const NativeArray& rhs) const { - return size() == rhs.size() && - ArrayEq(begin(), size(), rhs.begin()); - } - - private: - enum { - kCheckTypeIsNotConstOrAReference = StaticAssertTypeEqHelper< - Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value - }; - - // Initializes this object with a copy of the input. - void InitCopy(const Element* array, size_t a_size) { - Element* const copy = new Element[a_size]; - CopyArray(array, a_size, copy); - array_ = copy; - size_ = a_size; - clone_ = &NativeArray::InitCopy; - } - - // Initializes this object with a reference of the input. - void InitRef(const Element* array, size_t a_size) { - array_ = array; - size_ = a_size; - clone_ = &NativeArray::InitRef; - } - - const Element* array_; - size_t size_; - void (NativeArray::*clone_)(const Element*, size_t); - - GTEST_DISALLOW_ASSIGN_(NativeArray); -}; - -// Backport of std::index_sequence. -template -struct IndexSequence { - using type = IndexSequence; -}; - -// Double the IndexSequence, and one if plus_one is true. -template -struct DoubleSequence; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; - -// Backport of std::make_index_sequence. -// It uses O(ln(N)) instantiation depth. -template -struct MakeIndexSequence - : DoubleSequence::type, - N / 2>::type {}; - -template <> -struct MakeIndexSequence<0> : IndexSequence<> {}; - -// FIXME: This implementation of ElemFromList is O(1) in instantiation depth, -// but it is O(N^2) in total instantiations. Not sure if this is the best -// tradeoff, as it will make it somewhat slow to compile. -template -struct ElemFromListImpl {}; - -template -struct ElemFromListImpl { - using type = T; -}; - -// Get the Nth element from T... -// It uses O(1) instantiation depth. -template -struct ElemFromList; - -template -struct ElemFromList, T...> - : ElemFromListImpl... {}; - -template -class FlatTuple; - -template -struct FlatTupleElemBase; - -template -struct FlatTupleElemBase, I> { - using value_type = - typename ElemFromList::type, - T...>::type; - FlatTupleElemBase() = default; - explicit FlatTupleElemBase(value_type t) : value(std::move(t)) {} - value_type value; -}; - -template -struct FlatTupleBase; - -template -struct FlatTupleBase, IndexSequence> - : FlatTupleElemBase, Idx>... { - using Indices = IndexSequence; - FlatTupleBase() = default; - explicit FlatTupleBase(T... t) - : FlatTupleElemBase, Idx>(std::move(t))... {} -}; - -// Analog to std::tuple but with different tradeoffs. -// This class minimizes the template instantiation depth, thus allowing more -// elements that std::tuple would. std::tuple has been seen to require an -// instantiation depth of more than 10x the number of elements in some -// implementations. -// FlatTuple and ElemFromList are not recursive and have a fixed depth -// regardless of T... -// MakeIndexSequence, on the other hand, it is recursive but with an -// instantiation depth of O(ln(N)). -template -class FlatTuple - : private FlatTupleBase, - typename MakeIndexSequence::type> { - using Indices = typename FlatTuple::FlatTupleBase::Indices; - - public: - FlatTuple() = default; - explicit FlatTuple(T... t) : FlatTuple::FlatTupleBase(std::move(t)...) {} - - template - const typename ElemFromList::type& Get() const { - return static_cast*>(this)->value; - } - - template - typename ElemFromList::type& Get() { - return static_cast*>(this)->value; - } -}; - -// Utility functions to be called with static_assert to induce deprecation -// warnings. -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TEST_SUITE_P") -constexpr bool InstantiateTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE_P is deprecated, please use " - "TYPED_TEST_SUITE_P") -constexpr bool TypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE is deprecated, please use " - "TYPED_TEST_SUITE") -constexpr bool TypedTestCaseIsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "REGISTER_TYPED_TEST_CASE_P is deprecated, please use " - "REGISTER_TYPED_TEST_SUITE_P") -constexpr bool RegisterTypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TYPED_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TYPED_TEST_SUITE_P") -constexpr bool InstantiateTypedTestCase_P_IsDeprecated() { return true; } - -} // namespace internal -} // namespace testing - -#define GTEST_MESSAGE_AT_(file, line, message, result_type) \ - ::testing::internal::AssertHelper(result_type, file, line, message) \ - = ::testing::Message() - -#define GTEST_MESSAGE_(message, result_type) \ - GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) - -#define GTEST_FATAL_FAILURE_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) - -#define GTEST_NONFATAL_FAILURE_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure) - -#define GTEST_SUCCESS_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess) - -#define GTEST_SKIP_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kSkip) - -// Suppress MSVC warning 4072 (unreachable code) for the code following -// statement if it returns or throws (or doesn't return or throw in some -// situations). -#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \ - if (::testing::internal::AlwaysTrue()) { statement; } - -#define GTEST_TEST_THROW_(statement, expected_exception, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::ConstCharPtr gtest_msg = "") { \ - bool gtest_caught_expected = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (expected_exception const&) { \ - gtest_caught_expected = true; \ - } \ - catch (...) { \ - gtest_msg.value = \ - "Expected: " #statement " throws an exception of type " \ - #expected_exception ".\n Actual: it throws a different type."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - if (!gtest_caught_expected) { \ - gtest_msg.value = \ - "Expected: " #statement " throws an exception of type " \ - #expected_exception ".\n Actual: it throws nothing."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \ - fail(gtest_msg.value) - -#define GTEST_TEST_NO_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (...) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \ - fail("Expected: " #statement " doesn't throw an exception.\n" \ - " Actual: it throws.") - -#define GTEST_TEST_ANY_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - bool gtest_caught_any = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (...) { \ - gtest_caught_any = true; \ - } \ - if (!gtest_caught_any) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \ - fail("Expected: " #statement " throws an exception.\n" \ - " Actual: it doesn't.") - - -// Implements Boolean test assertions such as EXPECT_TRUE. expression can be -// either a boolean expression or an AssertionResult. text is a textual -// represenation of expression as it was passed into the EXPECT_TRUE. -#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar_ = \ - ::testing::AssertionResult(expression)) \ - ; \ - else \ - fail(::testing::internal::GetBoolAssertionFailureMessage(\ - gtest_ar_, text, #actual, #expected).c_str()) - -#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \ - fail("Expected: " #statement " doesn't generate new fatal " \ - "failures in the current thread.\n" \ - " Actual: it does.") - -// Expands to the name of the class that implements the given test. -#define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - test_suite_name##_##test_name##_Test - -// Helper macro for defining tests. -#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id) \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public parent_class { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ - \ - private: \ - virtual void TestBody(); \ - static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_; \ - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)); \ - }; \ - \ - ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::test_info_ = \ - ::testing::internal::MakeAndRegisterTestInfo( \ - #test_suite_name, #test_name, nullptr, nullptr, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetSetUpCaseOrSuite(), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetTearDownCaseOrSuite(), \ - new ::testing::internal::TestFactoryImpl); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ -// Copyright 2005, Google Inc. -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for death tests. It is -// #included by gtest.h so a user doesn't need to include this -// directly. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ - -// Copyright 2005, Google Inc. -// 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. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines internal utilities needed for implementing -// death tests. They are subject to change without notice. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ - -// Copyright 2007, Google Inc. -// 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements just enough of the matcher interface to allow -// EXPECT_DEATH and friends to accept a matcher argument. - -// IWYU pragma: private, include "testing/base/public/gunit.h" -// IWYU pragma: friend third_party/googletest/googlemock/.* -// IWYU pragma: friend third_party/googletest/googletest/.* - -#ifndef GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ -#define GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ - -#include -#include -#include - -// Copyright 2007, Google Inc. -// 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. - - -// Google Test - The Google C++ Testing and Mocking Framework -// -// This file implements a universal value printer that can print a -// value of any type T: -// -// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); -// -// A user can teach this function how to print a class type T by -// defining either operator<<() or PrintTo() in the namespace that -// defines T. More specifically, the FIRST defined function in the -// following list will be used (assuming T is defined in namespace -// foo): -// -// 1. foo::PrintTo(const T&, ostream*) -// 2. operator<<(ostream&, const T&) defined in either foo or the -// global namespace. -// -// However if T is an STL-style container then it is printed element-wise -// unless foo::PrintTo(const T&, ostream*) is defined. Note that -// operator<<() is ignored for container types. -// -// If none of the above is defined, it will print the debug string of -// the value if it is a protocol buffer, or print the raw bytes in the -// value otherwise. -// -// To aid debugging: when T is a reference type, the address of the -// value is also printed; when T is a (const) char pointer, both the -// pointer value and the NUL-terminated string it points to are -// printed. -// -// We also provide some convenient wrappers: -// -// // Prints a value to a string. For a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// std::string ::testing::PrintToString(const T& value); -// -// // Prints a value tersely: for a reference type, the referenced -// // value (but not the address) is printed; for a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// void ::testing::internal::UniversalTersePrint(const T& value, ostream*); -// -// // Prints value using the type inferred by the compiler. The difference -// // from UniversalTersePrint() is that this function prints both the -// // pointer and the NUL-terminated string for a (const or not) char pointer. -// void ::testing::internal::UniversalPrint(const T& value, ostream*); -// -// // Prints the fields of a tuple tersely to a string vector, one -// // element for each field. Tuple support must be enabled in -// // gtest-port.h. -// std::vector UniversalTersePrintTupleFieldsToStrings( -// const Tuple& value); -// -// Known limitation: -// -// The print primitives print the elements of an STL-style container -// using the compiler-inferred type of *iter where iter is a -// const_iterator of the container. When const_iterator is an input -// iterator but not a forward iterator, this inferred type may not -// match value_type, and the print output may be incorrect. In -// practice, this is rarely a problem as for most containers -// const_iterator is a forward iterator. We'll fix this if there's an -// actual need for it. Note that this fix cannot rely on value_type -// being defined as many user-defined container types don't have -// value_type. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ - -#include -#include // NOLINT -#include -#include -#include -#include -#include -#include - -#if GTEST_HAS_ABSL -#include "absl/strings/string_view.h" -#include "absl/types/optional.h" -#include "absl/types/variant.h" -#endif // GTEST_HAS_ABSL - -namespace testing { - -// Definitions in the 'internal' and 'internal2' name spaces are -// subject to change without notice. DO NOT USE THEM IN USER CODE! -namespace internal2 { - -// Prints the given number of bytes in the given object to the given -// ostream. -GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes, - size_t count, - ::std::ostream* os); - -// For selecting which printer to use when a given type has neither << -// nor PrintTo(). -enum TypeKind { - kProtobuf, // a protobuf type - kConvertibleToInteger, // a type implicitly convertible to BiggestInt - // (e.g. a named or unnamed enum type) -#if GTEST_HAS_ABSL - kConvertibleToStringView, // a type implicitly convertible to - // absl::string_view -#endif - kOtherType // anything else -}; - -// TypeWithoutFormatter::PrintValue(value, os) is called -// by the universal printer to print a value of type T when neither -// operator<< nor PrintTo() is defined for T, where kTypeKind is the -// "kind" of T as defined by enum TypeKind. -template -class TypeWithoutFormatter { - public: - // This default version is called when kTypeKind is kOtherType. - static void PrintValue(const T& value, ::std::ostream* os) { - PrintBytesInObjectTo(static_cast( - reinterpret_cast(&value)), - sizeof(value), os); - } -}; - -// We print a protobuf using its ShortDebugString() when the string -// doesn't exceed this many characters; otherwise we print it using -// DebugString() for better readability. -const size_t kProtobufOneLinerMaxLength = 50; - -template -class TypeWithoutFormatter { - public: - static void PrintValue(const T& value, ::std::ostream* os) { - std::string pretty_str = value.ShortDebugString(); - if (pretty_str.length() > kProtobufOneLinerMaxLength) { - pretty_str = "\n" + value.DebugString(); - } - *os << ("<" + pretty_str + ">"); - } -}; - -template -class TypeWithoutFormatter { - public: - // Since T has no << operator or PrintTo() but can be implicitly - // converted to BiggestInt, we print it as a BiggestInt. - // - // Most likely T is an enum type (either named or unnamed), in which - // case printing it as an integer is the desired behavior. In case - // T is not an enum, printing it as an integer is the best we can do - // given that it has no user-defined printer. - static void PrintValue(const T& value, ::std::ostream* os) { - const internal::BiggestInt kBigInt = value; - *os << kBigInt; - } -}; - -#if GTEST_HAS_ABSL -template -class TypeWithoutFormatter { - public: - // Since T has neither operator<< nor PrintTo() but can be implicitly - // converted to absl::string_view, we print it as a absl::string_view. - // - // Note: the implementation is further below, as it depends on - // internal::PrintTo symbol which is defined later in the file. - static void PrintValue(const T& value, ::std::ostream* os); -}; -#endif - -// Prints the given value to the given ostream. If the value is a -// protocol message, its debug string is printed; if it's an enum or -// of a type implicitly convertible to BiggestInt, it's printed as an -// integer; otherwise the bytes in the value are printed. This is -// what UniversalPrinter::Print() does when it knows nothing about -// type T and T has neither << operator nor PrintTo(). -// -// A user can override this behavior for a class type Foo by defining -// a << operator in the namespace where Foo is defined. -// -// We put this operator in namespace 'internal2' instead of 'internal' -// to simplify the implementation, as much code in 'internal' needs to -// use << in STL, which would conflict with our own << were it defined -// in 'internal'. -// -// Note that this operator<< takes a generic std::basic_ostream type instead of the more restricted std::ostream. If -// we define it to take an std::ostream instead, we'll get an -// "ambiguous overloads" compiler error when trying to print a type -// Foo that supports streaming to std::basic_ostream, as the compiler cannot tell whether -// operator<<(std::ostream&, const T&) or -// operator<<(std::basic_stream, const Foo&) is more -// specific. -template -::std::basic_ostream& operator<<( - ::std::basic_ostream& os, const T& x) { - TypeWithoutFormatter::value - ? kProtobuf - : std::is_convertible< - const T&, internal::BiggestInt>::value - ? kConvertibleToInteger - : -#if GTEST_HAS_ABSL - std::is_convertible< - const T&, absl::string_view>::value - ? kConvertibleToStringView - : -#endif - kOtherType)>::PrintValue(x, &os); - return os; -} - -} // namespace internal2 -} // namespace testing - -// This namespace MUST NOT BE NESTED IN ::testing, or the name look-up -// magic needed for implementing UniversalPrinter won't work. -namespace testing_internal { - -// Used to print a value that is not an STL-style container when the -// user doesn't define PrintTo() for it. -template -void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) { - // With the following statement, during unqualified name lookup, - // testing::internal2::operator<< appears as if it was declared in - // the nearest enclosing namespace that contains both - // ::testing_internal and ::testing::internal2, i.e. the global - // namespace. For more details, refer to the C++ Standard section - // 7.3.4-1 [namespace.udir]. This allows us to fall back onto - // testing::internal2::operator<< in case T doesn't come with a << - // operator. - // - // We cannot write 'using ::testing::internal2::operator<<;', which - // gcc 3.3 fails to compile due to a compiler bug. - using namespace ::testing::internal2; // NOLINT - - // Assuming T is defined in namespace foo, in the next statement, - // the compiler will consider all of: - // - // 1. foo::operator<< (thanks to Koenig look-up), - // 2. ::operator<< (as the current namespace is enclosed in ::), - // 3. testing::internal2::operator<< (thanks to the using statement above). - // - // The operator<< whose type matches T best will be picked. - // - // We deliberately allow #2 to be a candidate, as sometimes it's - // impossible to define #1 (e.g. when foo is ::std, defining - // anything in it is undefined behavior unless you are a compiler - // vendor.). - *os << value; -} - -} // namespace testing_internal - -namespace testing { -namespace internal { - -// FormatForComparison::Format(value) formats a -// value of type ToPrint that is an operand of a comparison assertion -// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in -// the comparison, and is used to help determine the best way to -// format the value. In particular, when the value is a C string -// (char pointer) and the other operand is an STL string object, we -// want to format the C string as a string, since we know it is -// compared by value with the string object. If the value is a char -// pointer but the other operand is not an STL string object, we don't -// know whether the pointer is supposed to point to a NUL-terminated -// string, and thus want to print it as a pointer to be safe. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// The default case. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint& value) { - return ::testing::PrintToString(value); - } -}; - -// Array. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint* value) { - return FormatForComparison::Format(value); - } -}; - -// By default, print C string as pointers to be safe, as we don't know -// whether they actually point to a NUL-terminated string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ - template \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(static_cast(value)); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ - -// If a C string is compared with an STL string object, we know it's meant -// to point to a NUL-terminated string, and thus can print it as a string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ - template <> \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(value); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); - -#if GTEST_HAS_STD_WSTRING -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); -#endif - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ - -// Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) -// operand to be used in a failure message. The type (but not value) -// of the other operand may affect the format. This allows us to -// print a char* as a raw pointer when it is compared against another -// char* or void*, and print it as a C string when it is compared -// against an std::string object, for example. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -std::string FormatForComparisonFailureMessage( - const T1& value, const T2& /* other_operand */) { - return FormatForComparison::Format(value); -} - -// UniversalPrinter::Print(value, ostream_ptr) prints the given -// value to the given ostream. The caller must ensure that -// 'ostream_ptr' is not NULL, or the behavior is undefined. -// -// We define UniversalPrinter as a class template (as opposed to a -// function template), as we need to partially specialize it for -// reference types, which cannot be done with function templates. -template -class UniversalPrinter; - -template -void UniversalPrint(const T& value, ::std::ostream* os); - -enum DefaultPrinterType { - kPrintContainer, - kPrintPointer, - kPrintFunctionPointer, - kPrintOther, -}; -template struct WrapPrinterType {}; - -// Used to print an STL-style container when the user doesn't define -// a PrintTo() for it. -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - const C& container, ::std::ostream* os) { - const size_t kMaxCount = 32; // The maximum number of elements to print. - *os << '{'; - size_t count = 0; - for (typename C::const_iterator it = container.begin(); - it != container.end(); ++it, ++count) { - if (count > 0) { - *os << ','; - if (count == kMaxCount) { // Enough has been printed. - *os << " ..."; - break; - } - } - *os << ' '; - // We cannot call PrintTo(*it, os) here as PrintTo() doesn't - // handle *it being a native array. - internal::UniversalPrint(*it, os); - } - - if (count > 0) { - *os << ' '; - } - *os << '}'; -} - -// Used to print a pointer that is neither a char pointer nor a member -// pointer, when the user doesn't define PrintTo() for it. (A member -// variable pointer or member function pointer doesn't really point to -// a location in the address space. Their representation is -// implementation-defined. Therefore they will be printed as raw -// bytes.) -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is not a function type. We just call << to print p, - // relying on ADL to pick up user-defined << for their pointer - // types, if any. - *os << p; - } -} -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is a function type, so '*os << p' doesn't do what we want - // (it just prints p as bool). We want to print p as a const - // void*. - *os << reinterpret_cast(p); - } -} - -// Used to print a non-container, non-pointer value when the user -// doesn't define PrintTo() for it. -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - const T& value, ::std::ostream* os) { - ::testing_internal::DefaultPrintNonContainerTo(value, os); -} - -// Prints the given value using the << operator if it has one; -// otherwise prints the bytes in it. This is what -// UniversalPrinter::Print() does when PrintTo() is not specialized -// or overloaded for type T. -// -// A user can override this behavior for a class type Foo by defining -// an overload of PrintTo() in the namespace where Foo is defined. We -// give the user this option as sometimes defining a << operator for -// Foo is not desirable (e.g. the coding style may prevent doing it, -// or there is already a << operator but it doesn't do what the user -// wants). -template -void PrintTo(const T& value, ::std::ostream* os) { - // DefaultPrintTo() is overloaded. The type of its first argument - // determines which version will be picked. - // - // Note that we check for container types here, prior to we check - // for protocol message types in our operator<<. The rationale is: - // - // For protocol messages, we want to give people a chance to - // override Google Mock's format by defining a PrintTo() or - // operator<<. For STL containers, other formats can be - // incompatible with Google Mock's format for the container - // elements; therefore we check for container types here to ensure - // that our format is used. - // - // Note that MSVC and clang-cl do allow an implicit conversion from - // pointer-to-function to pointer-to-object, but clang-cl warns on it. - // So don't use ImplicitlyConvertible if it can be helped since it will - // cause this warning, and use a separate overload of DefaultPrintTo for - // function pointers so that the `*os << p` in the object pointer overload - // doesn't cause that warning either. - DefaultPrintTo( - WrapPrinterType < - (sizeof(IsContainerTest(0)) == sizeof(IsContainer)) && - !IsRecursiveContainer::value - ? kPrintContainer - : !std::is_pointer::value - ? kPrintOther - : std::is_function::type>::value - ? kPrintFunctionPointer - : kPrintPointer > (), - value, os); -} - -// The following list of PrintTo() overloads tells -// UniversalPrinter::Print() how to print standard types (built-in -// types, strings, plain arrays, and pointers). - -// Overloads for various char types. -GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os); -GTEST_API_ void PrintTo(signed char c, ::std::ostream* os); -inline void PrintTo(char c, ::std::ostream* os) { - // When printing a plain char, we always treat it as unsigned. This - // way, the output won't be affected by whether the compiler thinks - // char is signed or not. - PrintTo(static_cast(c), os); -} - -// Overloads for other simple built-in types. -inline void PrintTo(bool x, ::std::ostream* os) { - *os << (x ? "true" : "false"); -} - -// Overload for wchar_t type. -// Prints a wchar_t as a symbol if it is printable or as its internal -// code otherwise and also as its decimal code (except for L'\0'). -// The L'\0' char is printed as "L'\\0'". The decimal code is printed -// as signed integer when wchar_t is implemented by the compiler -// as a signed type and is printed as an unsigned integer when wchar_t -// is implemented as an unsigned type. -GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os); - -// Overloads for C strings. -GTEST_API_ void PrintTo(const char* s, ::std::ostream* os); -inline void PrintTo(char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// signed/unsigned char is often used for representing binary data, so -// we print pointers to it as void* to be safe. -inline void PrintTo(const signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(const unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// MSVC can be configured to define wchar_t as a typedef of unsigned -// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native -// type. When wchar_t is a typedef, defining an overload for const -// wchar_t* would cause unsigned short* be printed as a wide string, -// possibly causing invalid memory accesses. -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) -// Overloads for wide C strings -GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os); -inline void PrintTo(wchar_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -#endif - -// Overload for C arrays. Multi-dimensional arrays are printed -// properly. - -// Prints the given number of elements in an array, without printing -// the curly braces. -template -void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) { - UniversalPrint(a[0], os); - for (size_t i = 1; i != count; i++) { - *os << ", "; - UniversalPrint(a[i], os); - } -} - -// Overloads for ::std::string. -GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os); -inline void PrintTo(const ::std::string& s, ::std::ostream* os) { - PrintStringTo(s, os); -} - -// Overloads for ::std::wstring. -#if GTEST_HAS_STD_WSTRING -GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os); -inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) { - PrintWideStringTo(s, os); -} -#endif // GTEST_HAS_STD_WSTRING - -#if GTEST_HAS_ABSL -// Overload for absl::string_view. -inline void PrintTo(absl::string_view sp, ::std::ostream* os) { - PrintTo(::std::string(sp), os); -} -#endif // GTEST_HAS_ABSL - -inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; } - -template -void PrintTo(std::reference_wrapper ref, ::std::ostream* os) { - UniversalPrinter::Print(ref.get(), os); -} - -// Helper function for printing a tuple. T must be instantiated with -// a tuple type. -template -void PrintTupleTo(const T&, std::integral_constant, - ::std::ostream*) {} - -template -void PrintTupleTo(const T& t, std::integral_constant, - ::std::ostream* os) { - PrintTupleTo(t, std::integral_constant(), os); - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (I > 1) { - GTEST_INTENTIONAL_CONST_COND_POP_() - *os << ", "; - } - UniversalPrinter::type>::Print( - std::get(t), os); -} - -template -void PrintTo(const ::std::tuple& t, ::std::ostream* os) { - *os << "("; - PrintTupleTo(t, std::integral_constant(), os); - *os << ")"; -} - -// Overload for std::pair. -template -void PrintTo(const ::std::pair& value, ::std::ostream* os) { - *os << '('; - // We cannot use UniversalPrint(value.first, os) here, as T1 may be - // a reference type. The same for printing value.second. - UniversalPrinter::Print(value.first, os); - *os << ", "; - UniversalPrinter::Print(value.second, os); - *os << ')'; -} - -// Implements printing a non-reference type T by letting the compiler -// pick the right overload of PrintTo() for T. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - // Note: we deliberately don't call this PrintTo(), as that name - // conflicts with ::testing::internal::PrintTo in the body of the - // function. - static void Print(const T& value, ::std::ostream* os) { - // By default, ::testing::internal::PrintTo() is used for printing - // the value. - // - // Thanks to Koenig look-up, if T is a class and has its own - // PrintTo() function defined in its namespace, that function will - // be visible here. Since it is more specific than the generic ones - // in ::testing::internal, it will be picked by the compiler in the - // following statement - exactly what we want. - PrintTo(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -#if GTEST_HAS_ABSL - -// Printer for absl::optional - -template -class UniversalPrinter<::absl::optional> { - public: - static void Print(const ::absl::optional& value, ::std::ostream* os) { - *os << '('; - if (!value) { - *os << "nullopt"; - } else { - UniversalPrint(*value, os); - } - *os << ')'; - } -}; - -// Printer for absl::variant - -template -class UniversalPrinter<::absl::variant> { - public: - static void Print(const ::absl::variant& value, ::std::ostream* os) { - *os << '('; - absl::visit(Visitor{os}, value); - *os << ')'; - } - - private: - struct Visitor { - template - void operator()(const U& u) const { - *os << "'" << GetTypeName() << "' with value "; - UniversalPrint(u, os); - } - ::std::ostream* os; - }; -}; - -#endif // GTEST_HAS_ABSL - -// UniversalPrintArray(begin, len, os) prints an array of 'len' -// elements, starting at address 'begin'. -template -void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { - if (len == 0) { - *os << "{}"; - } else { - *os << "{ "; - const size_t kThreshold = 18; - const size_t kChunkSize = 8; - // If the array has more than kThreshold elements, we'll have to - // omit some details by printing only the first and the last - // kChunkSize elements. - if (len <= kThreshold) { - PrintRawArrayTo(begin, len, os); - } else { - PrintRawArrayTo(begin, kChunkSize, os); - *os << ", ..., "; - PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os); - } - *os << " }"; - } -} -// This overload prints a (const) char array compactly. -GTEST_API_ void UniversalPrintArray( - const char* begin, size_t len, ::std::ostream* os); - -// This overload prints a (const) wchar_t array compactly. -GTEST_API_ void UniversalPrintArray( - const wchar_t* begin, size_t len, ::std::ostream* os); - -// Implements printing an array type T[N]. -template -class UniversalPrinter { - public: - // Prints the given array, omitting some elements when there are too - // many. - static void Print(const T (&a)[N], ::std::ostream* os) { - UniversalPrintArray(a, N, os); - } -}; - -// Implements printing a reference type T&. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - static void Print(const T& value, ::std::ostream* os) { - // Prints the address of the value. We use reinterpret_cast here - // as static_cast doesn't compile when T is a function type. - *os << "@" << reinterpret_cast(&value) << " "; - - // Then prints the value itself. - UniversalPrint(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -// Prints a value tersely: for a reference type, the referenced value -// (but not the address) is printed; for a (const) char pointer, the -// NUL-terminated string (but not the pointer) is printed. - -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T (&value)[N], ::std::ostream* os) { - UniversalPrinter::Print(value, os); - } -}; -template <> -class UniversalTersePrinter { - public: - static void Print(const char* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(std::string(str), os); - } - } -}; -template <> -class UniversalTersePrinter { - public: - static void Print(char* str, ::std::ostream* os) { - UniversalTersePrinter::Print(str, os); - } -}; - -#if GTEST_HAS_STD_WSTRING -template <> -class UniversalTersePrinter { - public: - static void Print(const wchar_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::wstring(str), os); - } - } -}; -#endif - -template <> -class UniversalTersePrinter { - public: - static void Print(wchar_t* str, ::std::ostream* os) { - UniversalTersePrinter::Print(str, os); - } -}; - -template -void UniversalTersePrint(const T& value, ::std::ostream* os) { - UniversalTersePrinter::Print(value, os); -} - -// Prints a value using the type inferred by the compiler. The -// difference between this and UniversalTersePrint() is that for a -// (const) char pointer, this prints both the pointer and the -// NUL-terminated string. -template -void UniversalPrint(const T& value, ::std::ostream* os) { - // A workarond for the bug in VC++ 7.1 that prevents us from instantiating - // UniversalPrinter with T directly. - typedef T T1; - UniversalPrinter::Print(value, os); -} - -typedef ::std::vector< ::std::string> Strings; - - // Tersely prints the first N fields of a tuple to a string vector, - // one element for each field. -template -void TersePrintPrefixToStrings(const Tuple&, std::integral_constant, - Strings*) {} -template -void TersePrintPrefixToStrings(const Tuple& t, - std::integral_constant, - Strings* strings) { - TersePrintPrefixToStrings(t, std::integral_constant(), - strings); - ::std::stringstream ss; - UniversalTersePrint(std::get(t), &ss); - strings->push_back(ss.str()); -} - -// Prints the fields of a tuple tersely to a string vector, one -// element for each field. See the comment before -// UniversalTersePrint() for how we define "tersely". -template -Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { - Strings result; - TersePrintPrefixToStrings( - value, std::integral_constant::value>(), - &result); - return result; -} - -} // namespace internal - -#if GTEST_HAS_ABSL -namespace internal2 { -template -void TypeWithoutFormatter::PrintValue( - const T& value, ::std::ostream* os) { - internal::PrintTo(absl::string_view(value), os); -} -} // namespace internal2 -#endif - -template -::std::string PrintToString(const T& value) { - ::std::stringstream ss; - internal::UniversalTersePrinter::Print(value, &ss); - return ss.str(); -} - -} // namespace testing - -// Include any custom printer added by the local installation. -// We must include this header at the end to make sure it can use the -// declarations from this file. -// Copyright 2015, Google Inc. -// 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. -// -// This file provides an injection point for custom printers in a local -// installation of gTest. -// It will be included from gtest-printers.h and the overrides in this file -// will be visible to everyone. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ - -#endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ - -// MSVC warning C5046 is new as of VS2017 version 15.8. -#if defined(_MSC_VER) && _MSC_VER >= 1915 -#define GTEST_MAYBE_5046_ 5046 -#else -#define GTEST_MAYBE_5046_ -#endif - -GTEST_DISABLE_MSC_WARNINGS_PUSH_( - 4251 GTEST_MAYBE_5046_ /* class A needs to have dll-interface to be used by - clients of class B */ - /* Symbol involving type with internal linkage not defined */) - -namespace testing { - -// To implement a matcher Foo for type T, define: -// 1. a class FooMatcherImpl that implements the -// MatcherInterface interface, and -// 2. a factory function that creates a Matcher object from a -// FooMatcherImpl*. -// -// The two-level delegation design makes it possible to allow a user -// to write "v" instead of "Eq(v)" where a Matcher is expected, which -// is impossible if we pass matchers by pointers. It also eases -// ownership management as Matcher objects can now be copied like -// plain values. - -// MatchResultListener is an abstract class. Its << operator can be -// used by a matcher to explain why a value matches or doesn't match. -// -class MatchResultListener { - public: - // Creates a listener object with the given underlying ostream. The - // listener does not own the ostream, and does not dereference it - // in the constructor or destructor. - explicit MatchResultListener(::std::ostream* os) : stream_(os) {} - virtual ~MatchResultListener() = 0; // Makes this class abstract. - - // Streams x to the underlying ostream; does nothing if the ostream - // is NULL. - template - MatchResultListener& operator<<(const T& x) { - if (stream_ != nullptr) *stream_ << x; - return *this; - } - - // Returns the underlying ostream. - ::std::ostream* stream() { return stream_; } - - // Returns true iff the listener is interested in an explanation of - // the match result. A matcher's MatchAndExplain() method can use - // this information to avoid generating the explanation when no one - // intends to hear it. - bool IsInterested() const { return stream_ != nullptr; } - - private: - ::std::ostream* const stream_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(MatchResultListener); -}; - -inline MatchResultListener::~MatchResultListener() { -} - -// An instance of a subclass of this knows how to describe itself as a -// matcher. -class MatcherDescriberInterface { - public: - virtual ~MatcherDescriberInterface() {} - - // Describes this matcher to an ostream. The function should print - // a verb phrase that describes the property a value matching this - // matcher should have. The subject of the verb phrase is the value - // being matched. For example, the DescribeTo() method of the Gt(7) - // matcher prints "is greater than 7". - virtual void DescribeTo(::std::ostream* os) const = 0; - - // Describes the negation of this matcher to an ostream. For - // example, if the description of this matcher is "is greater than - // 7", the negated description could be "is not greater than 7". - // You are not required to override this when implementing - // MatcherInterface, but it is highly advised so that your matcher - // can produce good error messages. - virtual void DescribeNegationTo(::std::ostream* os) const { - *os << "not ("; - DescribeTo(os); - *os << ")"; - } -}; - -// The implementation of a matcher. -template -class MatcherInterface : public MatcherDescriberInterface { - public: - // Returns true iff the matcher matches x; also explains the match - // result to 'listener' if necessary (see the next paragraph), in - // the form of a non-restrictive relative clause ("which ...", - // "whose ...", etc) that describes x. For example, the - // MatchAndExplain() method of the Pointee(...) matcher should - // generate an explanation like "which points to ...". - // - // Implementations of MatchAndExplain() should add an explanation of - // the match result *if and only if* they can provide additional - // information that's not already present (or not obvious) in the - // print-out of x and the matcher's description. Whether the match - // succeeds is not a factor in deciding whether an explanation is - // needed, as sometimes the caller needs to print a failure message - // when the match succeeds (e.g. when the matcher is used inside - // Not()). - // - // For example, a "has at least 10 elements" matcher should explain - // what the actual element count is, regardless of the match result, - // as it is useful information to the reader; on the other hand, an - // "is empty" matcher probably only needs to explain what the actual - // size is when the match fails, as it's redundant to say that the - // size is 0 when the value is already known to be empty. - // - // You should override this method when defining a new matcher. - // - // It's the responsibility of the caller (Google Test) to guarantee - // that 'listener' is not NULL. This helps to simplify a matcher's - // implementation when it doesn't care about the performance, as it - // can talk to 'listener' without checking its validity first. - // However, in order to implement dummy listeners efficiently, - // listener->stream() may be NULL. - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0; - - // Inherits these methods from MatcherDescriberInterface: - // virtual void DescribeTo(::std::ostream* os) const = 0; - // virtual void DescribeNegationTo(::std::ostream* os) const; -}; - -namespace internal { - -// Converts a MatcherInterface to a MatcherInterface. -template -class MatcherInterfaceAdapter : public MatcherInterface { - public: - explicit MatcherInterfaceAdapter(const MatcherInterface* impl) - : impl_(impl) {} - ~MatcherInterfaceAdapter() override { delete impl_; } - - void DescribeTo(::std::ostream* os) const override { impl_->DescribeTo(os); } - - void DescribeNegationTo(::std::ostream* os) const override { - impl_->DescribeNegationTo(os); - } - - bool MatchAndExplain(const T& x, - MatchResultListener* listener) const override { - return impl_->MatchAndExplain(x, listener); - } - - private: - const MatcherInterface* const impl_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(MatcherInterfaceAdapter); -}; - -struct AnyEq { - template - bool operator()(const A& a, const B& b) const { return a == b; } -}; -struct AnyNe { - template - bool operator()(const A& a, const B& b) const { return a != b; } -}; -struct AnyLt { - template - bool operator()(const A& a, const B& b) const { return a < b; } -}; -struct AnyGt { - template - bool operator()(const A& a, const B& b) const { return a > b; } -}; -struct AnyLe { - template - bool operator()(const A& a, const B& b) const { return a <= b; } -}; -struct AnyGe { - template - bool operator()(const A& a, const B& b) const { return a >= b; } -}; - -// A match result listener that ignores the explanation. -class DummyMatchResultListener : public MatchResultListener { - public: - DummyMatchResultListener() : MatchResultListener(nullptr) {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener); -}; - -// A match result listener that forwards the explanation to a given -// ostream. The difference between this and MatchResultListener is -// that the former is concrete. -class StreamMatchResultListener : public MatchResultListener { - public: - explicit StreamMatchResultListener(::std::ostream* os) - : MatchResultListener(os) {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamMatchResultListener); -}; - -// An internal class for implementing Matcher, which will derive -// from it. We put functionalities common to all Matcher -// specializations here to avoid code duplication. -template -class MatcherBase { - public: - // Returns true iff the matcher matches x; also explains the match - // result to 'listener'. - bool MatchAndExplain(const T& x, MatchResultListener* listener) const { - return impl_->MatchAndExplain(x, listener); - } - - // Returns true iff this matcher matches x. - bool Matches(const T& x) const { - DummyMatchResultListener dummy; - return MatchAndExplain(x, &dummy); - } - - // Describes this matcher to an ostream. - void DescribeTo(::std::ostream* os) const { impl_->DescribeTo(os); } - - // Describes the negation of this matcher to an ostream. - void DescribeNegationTo(::std::ostream* os) const { - impl_->DescribeNegationTo(os); - } - - // Explains why x matches, or doesn't match, the matcher. - void ExplainMatchResultTo(const T& x, ::std::ostream* os) const { - StreamMatchResultListener listener(os); - MatchAndExplain(x, &listener); - } - - // Returns the describer for this matcher object; retains ownership - // of the describer, which is only guaranteed to be alive when - // this matcher object is alive. - const MatcherDescriberInterface* GetDescriber() const { - return impl_.get(); - } - - protected: - MatcherBase() {} - - // Constructs a matcher from its implementation. - explicit MatcherBase(const MatcherInterface* impl) : impl_(impl) {} - - template - explicit MatcherBase( - const MatcherInterface* impl, - typename internal::EnableIf< - !internal::IsSame::value>::type* = nullptr) - : impl_(new internal::MatcherInterfaceAdapter(impl)) {} - - MatcherBase(const MatcherBase&) = default; - MatcherBase& operator=(const MatcherBase&) = default; - MatcherBase(MatcherBase&&) = default; - MatcherBase& operator=(MatcherBase&&) = default; - - virtual ~MatcherBase() {} - - private: - std::shared_ptr> impl_; -}; - -} // namespace internal - -// A Matcher is a copyable and IMMUTABLE (except by assignment) -// object that can check whether a value of type T matches. The -// implementation of Matcher is just a std::shared_ptr to const -// MatcherInterface. Don't inherit from Matcher! -template -class Matcher : public internal::MatcherBase { - public: - // Constructs a null matcher. Needed for storing Matcher objects in STL - // containers. A default-constructed matcher is not yet initialized. You - // cannot use it until a valid value has been assigned to it. - explicit Matcher() {} // NOLINT - - // Constructs a matcher from its implementation. - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template - explicit Matcher(const MatcherInterface* impl, - typename internal::EnableIf< - !internal::IsSame::value>::type* = nullptr) - : internal::MatcherBase(impl) {} - - // Implicit constructor here allows people to write - // EXPECT_CALL(foo, Bar(5)) instead of EXPECT_CALL(foo, Bar(Eq(5))) sometimes - Matcher(T value); // NOLINT -}; - -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a std::string -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -#if GTEST_HAS_ABSL -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a absl::string_view -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views directly. - Matcher(absl::string_view s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views directly. - Matcher(absl::string_view s); // NOLINT -}; -#endif // GTEST_HAS_ABSL - -// Prints a matcher in a human-readable format. -template -std::ostream& operator<<(std::ostream& os, const Matcher& matcher) { - matcher.DescribeTo(&os); - return os; -} - -// The PolymorphicMatcher class template makes it easy to implement a -// polymorphic matcher (i.e. a matcher that can match values of more -// than one type, e.g. Eq(n) and NotNull()). -// -// To define a polymorphic matcher, a user should provide an Impl -// class that has a DescribeTo() method and a DescribeNegationTo() -// method, and define a member function (or member function template) -// -// bool MatchAndExplain(const Value& value, -// MatchResultListener* listener) const; -// -// See the definition of NotNull() for a complete example. -template -class PolymorphicMatcher { - public: - explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {} - - // Returns a mutable reference to the underlying matcher - // implementation object. - Impl& mutable_impl() { return impl_; } - - // Returns an immutable reference to the underlying matcher - // implementation object. - const Impl& impl() const { return impl_; } - - template - operator Matcher() const { - return Matcher(new MonomorphicImpl(impl_)); - } - - private: - template - class MonomorphicImpl : public MatcherInterface { - public: - explicit MonomorphicImpl(const Impl& impl) : impl_(impl) {} - - virtual void DescribeTo(::std::ostream* os) const { impl_.DescribeTo(os); } - - virtual void DescribeNegationTo(::std::ostream* os) const { - impl_.DescribeNegationTo(os); - } - - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const { - return impl_.MatchAndExplain(x, listener); - } - - private: - const Impl impl_; - }; - - Impl impl_; -}; - -// Creates a matcher from its implementation. -// DEPRECATED: Especially in the generic code, prefer: -// Matcher(new MyMatcherImpl(...)); -// -// MakeMatcher may create a Matcher that accepts its argument by value, which -// leads to unnecessary copies & lack of support for non-copyable types. -template -inline Matcher MakeMatcher(const MatcherInterface* impl) { - return Matcher(impl); -} - -// Creates a polymorphic matcher from its implementation. This is -// easier to use than the PolymorphicMatcher constructor as it -// doesn't require you to explicitly write the template argument, e.g. -// -// MakePolymorphicMatcher(foo); -// vs -// PolymorphicMatcher(foo); -template -inline PolymorphicMatcher MakePolymorphicMatcher(const Impl& impl) { - return PolymorphicMatcher(impl); -} - -namespace internal { -// Implements a matcher that compares a given value with a -// pre-supplied value using one of the ==, <=, <, etc, operators. The -// two values being compared don't have to have the same type. -// -// The matcher defined here is polymorphic (for example, Eq(5) can be -// used to match an int, a short, a double, etc). Therefore we use -// a template type conversion operator in the implementation. -// -// The following template definition assumes that the Rhs parameter is -// a "bare" type (i.e. neither 'const T' nor 'T&'). -template -class ComparisonBase { - public: - explicit ComparisonBase(const Rhs& rhs) : rhs_(rhs) {} - template - operator Matcher() const { - return Matcher(new Impl(rhs_)); - } - - private: - template - static const T& Unwrap(const T& v) { return v; } - template - static const T& Unwrap(std::reference_wrapper v) { return v; } - - template - class Impl : public MatcherInterface { - public: - explicit Impl(const Rhs& rhs) : rhs_(rhs) {} - bool MatchAndExplain(Lhs lhs, - MatchResultListener* /* listener */) const override { - return Op()(lhs, Unwrap(rhs_)); - } - void DescribeTo(::std::ostream* os) const override { - *os << D::Desc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - void DescribeNegationTo(::std::ostream* os) const override { - *os << D::NegatedDesc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - - private: - Rhs rhs_; - }; - Rhs rhs_; -}; - -template -class EqMatcher : public ComparisonBase, Rhs, AnyEq> { - public: - explicit EqMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyEq>(rhs) { } - static const char* Desc() { return "is equal to"; } - static const char* NegatedDesc() { return "isn't equal to"; } -}; -template -class NeMatcher : public ComparisonBase, Rhs, AnyNe> { - public: - explicit NeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyNe>(rhs) { } - static const char* Desc() { return "isn't equal to"; } - static const char* NegatedDesc() { return "is equal to"; } -}; -template -class LtMatcher : public ComparisonBase, Rhs, AnyLt> { - public: - explicit LtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLt>(rhs) { } - static const char* Desc() { return "is <"; } - static const char* NegatedDesc() { return "isn't <"; } -}; -template -class GtMatcher : public ComparisonBase, Rhs, AnyGt> { - public: - explicit GtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGt>(rhs) { } - static const char* Desc() { return "is >"; } - static const char* NegatedDesc() { return "isn't >"; } -}; -template -class LeMatcher : public ComparisonBase, Rhs, AnyLe> { - public: - explicit LeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLe>(rhs) { } - static const char* Desc() { return "is <="; } - static const char* NegatedDesc() { return "isn't <="; } -}; -template -class GeMatcher : public ComparisonBase, Rhs, AnyGe> { - public: - explicit GeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGe>(rhs) { } - static const char* Desc() { return "is >="; } - static const char* NegatedDesc() { return "isn't >="; } -}; - -// Implements polymorphic matchers MatchesRegex(regex) and -// ContainsRegex(regex), which can be used as a Matcher as long as -// T can be converted to a string. -class MatchesRegexMatcher { - public: - MatchesRegexMatcher(const RE* regex, bool full_match) - : regex_(regex), full_match_(full_match) {} - -#if GTEST_HAS_ABSL - bool MatchAndExplain(const absl::string_view& s, - MatchResultListener* listener) const { - return MatchAndExplain(std::string(s), listener); - } -#endif // GTEST_HAS_ABSL - - // Accepts pointer types, particularly: - // const char* - // char* - // const wchar_t* - // wchar_t* - template - bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { - return s != nullptr && MatchAndExplain(std::string(s), listener); - } - - // Matches anything that can convert to std::string. - // - // This is a template, not just a plain function with const std::string&, - // because absl::string_view has some interfering non-explicit constructors. - template - bool MatchAndExplain(const MatcheeStringType& s, - MatchResultListener* /* listener */) const { - const std::string& s2(s); - return full_match_ ? RE::FullMatch(s2, *regex_) - : RE::PartialMatch(s2, *regex_); - } - - void DescribeTo(::std::ostream* os) const { - *os << (full_match_ ? "matches" : "contains") << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - void DescribeNegationTo(::std::ostream* os) const { - *os << "doesn't " << (full_match_ ? "match" : "contain") - << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - private: - const std::shared_ptr regex_; - const bool full_match_; -}; -} // namespace internal - -// Matches a string that fully matches regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher MatchesRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, true)); -} -inline PolymorphicMatcher MatchesRegex( - const std::string& regex) { - return MatchesRegex(new internal::RE(regex)); -} - -// Matches a string that contains regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher ContainsRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, false)); -} -inline PolymorphicMatcher ContainsRegex( - const std::string& regex) { - return ContainsRegex(new internal::RE(regex)); -} - -// Creates a polymorphic matcher that matches anything equal to x. -// Note: if the parameter of Eq() were declared as const T&, Eq("foo") -// wouldn't compile. -template -inline internal::EqMatcher Eq(T x) { return internal::EqMatcher(x); } - -// Constructs a Matcher from a 'value' of type T. The constructed -// matcher matches any value that's equal to 'value'. -template -Matcher::Matcher(T value) { *this = Eq(value); } - -// Creates a monomorphic matcher that matches anything with type Lhs -// and equal to rhs. A user may need to use this instead of Eq(...) -// in order to resolve an overloading ambiguity. -// -// TypedEq(x) is just a convenient short-hand for Matcher(Eq(x)) -// or Matcher(x), but more readable than the latter. -// -// We could define similar monomorphic matchers for other comparison -// operations (e.g. TypedLt, TypedGe, and etc), but decided not to do -// it yet as those are used much less than Eq() in practice. A user -// can always write Matcher(Lt(5)) to be explicit about the type, -// for example. -template -inline Matcher TypedEq(const Rhs& rhs) { return Eq(rhs); } - -// Creates a polymorphic matcher that matches anything >= x. -template -inline internal::GeMatcher Ge(Rhs x) { - return internal::GeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything > x. -template -inline internal::GtMatcher Gt(Rhs x) { - return internal::GtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything <= x. -template -inline internal::LeMatcher Le(Rhs x) { - return internal::LeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything < x. -template -inline internal::LtMatcher Lt(Rhs x) { - return internal::LtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything != x. -template -inline internal::NeMatcher Ne(Rhs x) { - return internal::NeMatcher(x); -} -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 5046 - -#endif // GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ - -#include -#include - -namespace testing { -namespace internal { - -GTEST_DECLARE_string_(internal_run_death_test); - -// Names of the flags (needed for parsing Google Test flags). -const char kDeathTestStyleFlag[] = "death_test_style"; -const char kDeathTestUseFork[] = "death_test_use_fork"; -const char kInternalRunDeathTestFlag[] = "internal_run_death_test"; - -#if GTEST_HAS_DEATH_TEST - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// DeathTest is a class that hides much of the complexity of the -// GTEST_DEATH_TEST_ macro. It is abstract; its static Create method -// returns a concrete class that depends on the prevailing death test -// style, as defined by the --gtest_death_test_style and/or -// --gtest_internal_run_death_test flags. - -// In describing the results of death tests, these terms are used with -// the corresponding definitions: -// -// exit status: The integer exit information in the format specified -// by wait(2) -// exit code: The integer code passed to exit(3), _exit(2), or -// returned from main() -class GTEST_API_ DeathTest { - public: - // Create returns false if there was an error determining the - // appropriate action to take for the current death test; for example, - // if the gtest_death_test_style flag is set to an invalid value. - // The LastMessage method will return a more detailed message in that - // case. Otherwise, the DeathTest pointer pointed to by the "test" - // argument is set. If the death test should be skipped, the pointer - // is set to NULL; otherwise, it is set to the address of a new concrete - // DeathTest object that controls the execution of the current test. - static bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test); - DeathTest(); - virtual ~DeathTest() { } - - // A helper class that aborts a death test when it's deleted. - class ReturnSentinel { - public: - explicit ReturnSentinel(DeathTest* test) : test_(test) { } - ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); } - private: - DeathTest* const test_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel); - } GTEST_ATTRIBUTE_UNUSED_; - - // An enumeration of possible roles that may be taken when a death - // test is encountered. EXECUTE means that the death test logic should - // be executed immediately. OVERSEE means that the program should prepare - // the appropriate environment for a child process to execute the death - // test, then wait for it to complete. - enum TestRole { OVERSEE_TEST, EXECUTE_TEST }; - - // An enumeration of the three reasons that a test might be aborted. - enum AbortReason { - TEST_ENCOUNTERED_RETURN_STATEMENT, - TEST_THREW_EXCEPTION, - TEST_DID_NOT_DIE - }; - - // Assumes one of the above roles. - virtual TestRole AssumeRole() = 0; - - // Waits for the death test to finish and returns its status. - virtual int Wait() = 0; - - // Returns true if the death test passed; that is, the test process - // exited during the test, its exit status matches a user-supplied - // predicate, and its stderr output matches a user-supplied regular - // expression. - // The user-supplied predicate may be a macro expression rather - // than a function pointer or functor, or else Wait and Passed could - // be combined. - virtual bool Passed(bool exit_status_ok) = 0; - - // Signals that the death test did not die as expected. - virtual void Abort(AbortReason reason) = 0; - - // Returns a human-readable outcome message regarding the outcome of - // the last death test. - static const char* LastMessage(); - - static void set_last_death_test_message(const std::string& message); - - private: - // A string containing a description of the outcome of the last death test. - static std::string last_death_test_message_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest); -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Factory interface for death tests. May be mocked out for testing. -class DeathTestFactory { - public: - virtual ~DeathTestFactory() { } - virtual bool Create(const char* statement, - Matcher matcher, const char* file, - int line, DeathTest** test) = 0; -}; - -// A concrete DeathTestFactory implementation for normal use. -class DefaultDeathTestFactory : public DeathTestFactory { - public: - bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test) override; -}; - -// Returns true if exit_status describes a process that was terminated -// by a signal, or exited normally with a nonzero exit code. -GTEST_API_ bool ExitedUnsuccessfully(int exit_status); - -// A string passed to EXPECT_DEATH (etc.) is caught by one of these overloads -// and interpreted as a regex (rather than an Eq matcher) for legacy -// compatibility. -inline Matcher MakeDeathTestMatcher( - ::testing::internal::RE regex) { - return ContainsRegex(regex.pattern()); -} -inline Matcher MakeDeathTestMatcher(const char* regex) { - return ContainsRegex(regex); -} -inline Matcher MakeDeathTestMatcher( - const ::std::string& regex) { - return ContainsRegex(regex); -} - -// If a Matcher is passed to EXPECT_DEATH (etc.), it's -// used directly. -inline Matcher MakeDeathTestMatcher( - Matcher matcher) { - return matcher; -} - -// Traps C++ exceptions escaping statement and reports them as test -// failures. Note that trapping SEH exceptions is not implemented here. -# if GTEST_HAS_EXCEPTIONS -# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } catch (const ::std::exception& gtest_exception) { \ - fprintf(\ - stderr, \ - "\n%s: Caught std::exception-derived exception escaping the " \ - "death test statement. Exception message: %s\n", \ - ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \ - gtest_exception.what()); \ - fflush(stderr); \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } catch (...) { \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } - -# else -# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) - -# endif - -// This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*, -// ASSERT_EXIT*, and EXPECT_EXIT*. -#define GTEST_DEATH_TEST_(statement, predicate, regex_or_matcher, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::DeathTest* gtest_dt; \ - if (!::testing::internal::DeathTest::Create( \ - #statement, \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher), \ - __FILE__, __LINE__, >est_dt)) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - if (gtest_dt != nullptr) { \ - std::unique_ptr< ::testing::internal::DeathTest> gtest_dt_ptr(gtest_dt); \ - switch (gtest_dt->AssumeRole()) { \ - case ::testing::internal::DeathTest::OVERSEE_TEST: \ - if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - break; \ - case ::testing::internal::DeathTest::EXECUTE_TEST: { \ - ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel( \ - gtest_dt); \ - GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \ - gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \ - break; \ - } \ - default: \ - break; \ - } \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__) \ - : fail(::testing::internal::DeathTest::LastMessage()) -// The symbol "fail" here expands to something into which a message -// can be streamed. - -// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in -// NDEBUG mode. In this case we need the statements to be executed and the macro -// must accept a streamed message even though the message is never printed. -// The regex object is not evaluated, but it is used to prevent "unused" -// warnings and to avoid an expression that doesn't compile in debug mode. -#define GTEST_EXECUTE_STATEMENT_(statement, regex_or_matcher) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } else if (!::testing::internal::AlwaysTrue()) { \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher); \ - } else \ - ::testing::Message() - -// A class representing the parsed contents of the -// --gtest_internal_run_death_test flag, as it existed when -// RUN_ALL_TESTS was called. -class InternalRunDeathTestFlag { - public: - InternalRunDeathTestFlag(const std::string& a_file, - int a_line, - int an_index, - int a_write_fd) - : file_(a_file), line_(a_line), index_(an_index), - write_fd_(a_write_fd) {} - - ~InternalRunDeathTestFlag() { - if (write_fd_ >= 0) - posix::Close(write_fd_); - } - - const std::string& file() const { return file_; } - int line() const { return line_; } - int index() const { return index_; } - int write_fd() const { return write_fd_; } - - private: - std::string file_; - int line_; - int index_; - int write_fd_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag); -}; - -// Returns a newly created InternalRunDeathTestFlag object with fields -// initialized from the GTEST_FLAG(internal_run_death_test) flag if -// the flag is specified; otherwise returns NULL. -InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag(); - -#endif // GTEST_HAS_DEATH_TEST - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ - -namespace testing { - -// This flag controls the style of death tests. Valid values are "threadsafe", -// meaning that the death test child process will re-execute the test binary -// from the start, running only a single death test, or "fast", -// meaning that the child process will execute the test logic immediately -// after forking. -GTEST_DECLARE_string_(death_test_style); - -#if GTEST_HAS_DEATH_TEST - -namespace internal { - -// Returns a Boolean value indicating whether the caller is currently -// executing in the context of the death test child process. Tools such as -// Valgrind heap checkers may need this to modify their behavior in death -// tests. IMPORTANT: This is an internal utility. Using it may break the -// implementation of death tests. User code MUST NOT use it. -GTEST_API_ bool InDeathTestChild(); - -} // namespace internal - -// The following macros are useful for writing death tests. - -// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is -// executed: -// -// 1. It generates a warning if there is more than one active -// thread. This is because it's safe to fork() or clone() only -// when there is a single thread. -// -// 2. The parent process clone()s a sub-process and runs the death -// test in it; the sub-process exits with code 0 at the end of the -// death test, if it hasn't exited already. -// -// 3. The parent process waits for the sub-process to terminate. -// -// 4. The parent process checks the exit code and error message of -// the sub-process. -// -// Examples: -// -// ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number"); -// for (int i = 0; i < 5; i++) { -// EXPECT_DEATH(server.ProcessRequest(i), -// "Invalid request .* in ProcessRequest()") -// << "Failed to die on request " << i; -// } -// -// ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); -// -// bool KilledBySIGHUP(int exit_code) { -// return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP; -// } -// -// ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!"); -// -// On the regular expressions used in death tests: -// -// GOOGLETEST_CM0005 DO NOT DELETE -// On POSIX-compliant systems (*nix), we use the library, -// which uses the POSIX extended regex syntax. -// -// On other platforms (e.g. Windows or Mac), we only support a simple regex -// syntax implemented as part of Google Test. This limited -// implementation should be enough most of the time when writing -// death tests; though it lacks many features you can find in PCRE -// or POSIX extended regex syntax. For example, we don't support -// union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and -// repetition count ("x{5,7}"), among others. -// -// Below is the syntax that we do support. We chose it to be a -// subset of both PCRE and POSIX extended regex, so it's easy to -// learn wherever you come from. In the following: 'A' denotes a -// literal character, period (.), or a single \\ escape sequence; -// 'x' and 'y' denote regular expressions; 'm' and 'n' are for -// natural numbers. -// -// c matches any literal character c -// \\d matches any decimal digit -// \\D matches any character that's not a decimal digit -// \\f matches \f -// \\n matches \n -// \\r matches \r -// \\s matches any ASCII whitespace, including \n -// \\S matches any character that's not a whitespace -// \\t matches \t -// \\v matches \v -// \\w matches any letter, _, or decimal digit -// \\W matches any character that \\w doesn't match -// \\c matches any literal character c, which must be a punctuation -// . matches any single character except \n -// A? matches 0 or 1 occurrences of A -// A* matches 0 or many occurrences of A -// A+ matches 1 or many occurrences of A -// ^ matches the beginning of a string (not that of each line) -// $ matches the end of a string (not that of each line) -// xy matches x followed by y -// -// If you accidentally use PCRE or POSIX extended regex features -// not implemented by us, you will get a run-time failure. In that -// case, please try to rewrite your regular expression within the -// above syntax. -// -// This implementation is *not* meant to be as highly tuned or robust -// as a compiled regex library, but should perform well enough for a -// death test, which already incurs significant overhead by launching -// a child process. -// -// Known caveats: -// -// A "threadsafe" style death test obtains the path to the test -// program from argv[0] and re-executes it in the sub-process. For -// simplicity, the current implementation doesn't search the PATH -// when launching the sub-process. This means that the user must -// invoke the test program via a path that contains at least one -// path separator (e.g. path/to/foo_test and -// /absolute/path/to/bar_test are fine, but foo_test is not). This -// is rarely a problem as people usually don't put the test binary -// directory in PATH. -// - -// Asserts that a given statement causes the program to exit, with an -// integer exit status that satisfies predicate, and emitting error output -// that matches regex. -# define ASSERT_EXIT(statement, predicate, regex) \ - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_) - -// Like ASSERT_EXIT, but continues on to successive tests in the -// test suite, if any: -# define EXPECT_EXIT(statement, predicate, regex) \ - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_) - -// Asserts that a given statement causes the program to exit, either by -// explicitly exiting with a nonzero exit code or being killed by a -// signal, and emitting error output that matches regex. -# define ASSERT_DEATH(statement, regex) \ - ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) - -// Like ASSERT_DEATH, but continues on to successive tests in the -// test suite, if any: -# define EXPECT_DEATH(statement, regex) \ - EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) - -// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: - -// Tests that an exit code describes a normal exit with a given exit code. -class GTEST_API_ ExitedWithCode { - public: - explicit ExitedWithCode(int exit_code); - bool operator()(int exit_status) const; - private: - // No implementation - assignment is unsupported. - void operator=(const ExitedWithCode& other); - - const int exit_code_; -}; - -# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// Tests that an exit code describes an exit due to termination by a -// given signal. -// GOOGLETEST_CM0006 DO NOT DELETE -class GTEST_API_ KilledBySignal { - public: - explicit KilledBySignal(int signum); - bool operator()(int exit_status) const; - private: - const int signum_; -}; -# endif // !GTEST_OS_WINDOWS - -// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. -// The death testing framework causes this to have interesting semantics, -// since the sideeffects of the call are only visible in opt mode, and not -// in debug mode. -// -// In practice, this can be used to test functions that utilize the -// LOG(DFATAL) macro using the following style: -// -// int DieInDebugOr12(int* sideeffect) { -// if (sideeffect) { -// *sideeffect = 12; -// } -// LOG(DFATAL) << "death"; -// return 12; -// } -// -// TEST(TestSuite, TestDieOr12WorksInDgbAndOpt) { -// int sideeffect = 0; -// // Only asserts in dbg. -// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); -// -// #ifdef NDEBUG -// // opt-mode has sideeffect visible. -// EXPECT_EQ(12, sideeffect); -// #else -// // dbg-mode no visible sideeffect. -// EXPECT_EQ(0, sideeffect); -// #endif -// } -// -// This will assert that DieInDebugReturn12InOpt() crashes in debug -// mode, usually due to a DCHECK or LOG(DFATAL), but returns the -// appropriate fallback value (12 in this case) in opt mode. If you -// need to test that a function has appropriate side-effects in opt -// mode, include assertions against the side-effects. A general -// pattern for this is: -// -// EXPECT_DEBUG_DEATH({ -// // Side-effects here will have an effect after this statement in -// // opt mode, but none in debug mode. -// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); -// }, "death"); -// -# ifdef NDEBUG - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -# else - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - EXPECT_DEATH(statement, regex) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - ASSERT_DEATH(statement, regex) - -# endif // NDEBUG for EXPECT_DEBUG_DEATH -#endif // GTEST_HAS_DEATH_TEST - -// This macro is used for implementing macros such as -// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where -// death tests are not supported. Those macros must compile on such systems -// iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on -// systems that support death tests. This allows one to write such a macro -// on a system that does not support death tests and be sure that it will -// compile on a death-test supporting system. It is exposed publicly so that -// systems that have death-tests with stricter requirements than -// GTEST_HAS_DEATH_TEST can write their own equivalent of -// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED. -// -// Parameters: -// statement - A statement that a macro such as EXPECT_DEATH would test -// for program termination. This macro has to make sure this -// statement is compiled but not executed, to ensure that -// EXPECT_DEATH_IF_SUPPORTED compiles with a certain -// parameter iff EXPECT_DEATH compiles with it. -// regex - A regex that a macro such as EXPECT_DEATH would use to test -// the output of statement. This parameter has to be -// compiled but not evaluated by this macro, to ensure that -// this macro only accepts expressions that a macro such as -// EXPECT_DEATH would accept. -// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED -// and a return statement for ASSERT_DEATH_IF_SUPPORTED. -// This ensures that ASSERT_DEATH_IF_SUPPORTED will not -// compile inside functions where ASSERT_DEATH doesn't -// compile. -// -// The branch that has an always false condition is used to ensure that -// statement and regex are compiled (and thus syntactically correct) but -// never executed. The unreachable code macro protects the terminator -// statement from generating an 'unreachable code' warning in case -// statement unconditionally returns or throws. The Message constructor at -// the end allows the syntax of streaming additional messages into the -// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH. -# define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_LOG_(WARNING) \ - << "Death tests are not supported on this platform.\n" \ - << "Statement '" #statement "' cannot be verified."; \ - } else if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::RE::PartialMatch(".*", (regex)); \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - terminator; \ - } else \ - ::testing::Message() - -// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and -// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if -// death tests are supported; otherwise they just issue a warning. This is -// useful when you are combining death test assertions with normal test -// assertions in one test. -#if GTEST_HAS_DEATH_TEST -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - EXPECT_DEATH(statement, regex) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - ASSERT_DEATH(statement, regex) -#else -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, ) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return) -#endif - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ -// Copyright 2008, Google Inc. -// 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. -// -// Macros and functions for implementing parameterized tests -// in Google C++ Testing and Mocking Framework (Google Test) -// -// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! -// -// GOOGLETEST_CM0001 DO NOT DELETE -#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ - - -// Value-parameterized tests allow you to test your code with different -// parameters without writing multiple copies of the same test. -// -// Here is how you use value-parameterized tests: - -#if 0 - -// To write value-parameterized tests, first you should define a fixture -// class. It is usually derived from testing::TestWithParam (see below for -// another inheritance scheme that's sometimes useful in more complicated -// class hierarchies), where the type of your parameter values. -// TestWithParam is itself derived from testing::Test. T can be any -// copyable type. If it's a raw pointer, you are responsible for managing the -// lifespan of the pointed values. - -class FooTest : public ::testing::TestWithParam { - // You can implement all the usual class fixture members here. -}; - -// Then, use the TEST_P macro to define as many parameterized tests -// for this fixture as you want. The _P suffix is for "parameterized" -// or "pattern", whichever you prefer to think. - -TEST_P(FooTest, DoesBlah) { - // Inside a test, access the test parameter with the GetParam() method - // of the TestWithParam class: - EXPECT_TRUE(foo.Blah(GetParam())); - ... -} - -TEST_P(FooTest, HasBlahBlah) { - ... -} - -// Finally, you can use INSTANTIATE_TEST_SUITE_P to instantiate the test -// case with any set of parameters you want. Google Test defines a number -// of functions for generating test parameters. They return what we call -// (surprise!) parameter generators. Here is a summary of them, which -// are all in the testing namespace: -// -// -// Range(begin, end [, step]) - Yields values {begin, begin+step, -// begin+step+step, ...}. The values do not -// include end. step defaults to 1. -// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. -// ValuesIn(container) - Yields values from a C-style array, an STL -// ValuesIn(begin,end) container, or an iterator range [begin, end). -// Bool() - Yields sequence {false, true}. -// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product -// for the math savvy) of the values generated -// by the N generators. -// -// For more details, see comments at the definitions of these functions below -// in this file. -// -// The following statement will instantiate tests from the FooTest test suite -// each with parameter values "meeny", "miny", and "moe". - -INSTANTIATE_TEST_SUITE_P(InstantiationName, - FooTest, - Values("meeny", "miny", "moe")); - -// To distinguish different instances of the pattern, (yes, you -// can instantiate it more than once) the first argument to the -// INSTANTIATE_TEST_SUITE_P macro is a prefix that will be added to the -// actual test suite name. Remember to pick unique prefixes for different -// instantiations. The tests from the instantiation above will have -// these names: -// -// * InstantiationName/FooTest.DoesBlah/0 for "meeny" -// * InstantiationName/FooTest.DoesBlah/1 for "miny" -// * InstantiationName/FooTest.DoesBlah/2 for "moe" -// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" -// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" -// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" -// -// You can use these names in --gtest_filter. -// -// This statement will instantiate all tests from FooTest again, each -// with parameter values "cat" and "dog": - -const char* pets[] = {"cat", "dog"}; -INSTANTIATE_TEST_SUITE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); - -// The tests from the instantiation above will have these names: -// -// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" -// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" -// -// Please note that INSTANTIATE_TEST_SUITE_P will instantiate all tests -// in the given test suite, whether their definitions come before or -// AFTER the INSTANTIATE_TEST_SUITE_P statement. -// -// Please also note that generator expressions (including parameters to the -// generators) are evaluated in InitGoogleTest(), after main() has started. -// This allows the user on one hand, to adjust generator parameters in order -// to dynamically determine a set of tests to run and on the other hand, -// give the user a chance to inspect the generated tests with Google Test -// reflection API before RUN_ALL_TESTS() is executed. -// -// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc -// for more examples. -// -// In the future, we plan to publish the API for defining new parameter -// generators. But for now this interface remains part of the internal -// implementation and is subject to change. -// -// -// A parameterized test fixture must be derived from testing::Test and from -// testing::WithParamInterface, where T is the type of the parameter -// values. Inheriting from TestWithParam satisfies that requirement because -// TestWithParam inherits from both Test and WithParamInterface. In more -// complicated hierarchies, however, it is occasionally useful to inherit -// separately from Test and WithParamInterface. For example: - -class BaseTest : public ::testing::Test { - // You can inherit all the usual members for a non-parameterized test - // fixture here. -}; - -class DerivedTest : public BaseTest, public ::testing::WithParamInterface { - // The usual test fixture members go here too. -}; - -TEST_F(BaseTest, HasFoo) { - // This is an ordinary non-parameterized test. -} - -TEST_P(DerivedTest, DoesBlah) { - // GetParam works just the same here as if you inherit from TestWithParam. - EXPECT_TRUE(foo.Blah(GetParam())); -} - -#endif // 0 - -#include - -// Copyright 2008 Google Inc. -// 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. - - -// Type and function utilities for implementing parameterized tests. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ - -#include - -#include -#include -#include -#include -#include -#include -#include - - -namespace testing { -// Input to a parameterized test name generator, describing a test parameter. -// Consists of the parameter value and the integer parameter index. -template -struct TestParamInfo { - TestParamInfo(const ParamType& a_param, size_t an_index) : - param(a_param), - index(an_index) {} - ParamType param; - size_t index; -}; - -// A builtin parameterized test name generator which returns the result of -// testing::PrintToString. -struct PrintToStringParamName { - template - std::string operator()(const TestParamInfo& info) const { - return PrintToString(info.param); - } -}; - -namespace internal { - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// Utility Functions - -// Outputs a message explaining invalid registration of different -// fixture class for the same test suite. This may happen when -// TEST_P macro is used to define two tests with the same name -// but in different namespaces. -GTEST_API_ void ReportInvalidTestSuiteType(const char* test_suite_name, - CodeLocation code_location); - -template class ParamGeneratorInterface; -template class ParamGenerator; - -// Interface for iterating over elements provided by an implementation -// of ParamGeneratorInterface. -template -class ParamIteratorInterface { - public: - virtual ~ParamIteratorInterface() {} - // A pointer to the base generator instance. - // Used only for the purposes of iterator comparison - // to make sure that two iterators belong to the same generator. - virtual const ParamGeneratorInterface* BaseGenerator() const = 0; - // Advances iterator to point to the next element - // provided by the generator. The caller is responsible - // for not calling Advance() on an iterator equal to - // BaseGenerator()->End(). - virtual void Advance() = 0; - // Clones the iterator object. Used for implementing copy semantics - // of ParamIterator. - virtual ParamIteratorInterface* Clone() const = 0; - // Dereferences the current iterator and provides (read-only) access - // to the pointed value. It is the caller's responsibility not to call - // Current() on an iterator equal to BaseGenerator()->End(). - // Used for implementing ParamGenerator::operator*(). - virtual const T* Current() const = 0; - // Determines whether the given iterator and other point to the same - // element in the sequence generated by the generator. - // Used for implementing ParamGenerator::operator==(). - virtual bool Equals(const ParamIteratorInterface& other) const = 0; -}; - -// Class iterating over elements provided by an implementation of -// ParamGeneratorInterface. It wraps ParamIteratorInterface -// and implements the const forward iterator concept. -template -class ParamIterator { - public: - typedef T value_type; - typedef const T& reference; - typedef ptrdiff_t difference_type; - - // ParamIterator assumes ownership of the impl_ pointer. - ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {} - ParamIterator& operator=(const ParamIterator& other) { - if (this != &other) - impl_.reset(other.impl_->Clone()); - return *this; - } - - const T& operator*() const { return *impl_->Current(); } - const T* operator->() const { return impl_->Current(); } - // Prefix version of operator++. - ParamIterator& operator++() { - impl_->Advance(); - return *this; - } - // Postfix version of operator++. - ParamIterator operator++(int /*unused*/) { - ParamIteratorInterface* clone = impl_->Clone(); - impl_->Advance(); - return ParamIterator(clone); - } - bool operator==(const ParamIterator& other) const { - return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_); - } - bool operator!=(const ParamIterator& other) const { - return !(*this == other); - } - - private: - friend class ParamGenerator; - explicit ParamIterator(ParamIteratorInterface* impl) : impl_(impl) {} - std::unique_ptr > impl_; -}; - -// ParamGeneratorInterface is the binary interface to access generators -// defined in other translation units. -template -class ParamGeneratorInterface { - public: - typedef T ParamType; - - virtual ~ParamGeneratorInterface() {} - - // Generator interface definition - virtual ParamIteratorInterface* Begin() const = 0; - virtual ParamIteratorInterface* End() const = 0; -}; - -// Wraps ParamGeneratorInterface and provides general generator syntax -// compatible with the STL Container concept. -// This class implements copy initialization semantics and the contained -// ParamGeneratorInterface instance is shared among all copies -// of the original object. This is possible because that instance is immutable. -template -class ParamGenerator { - public: - typedef ParamIterator iterator; - - explicit ParamGenerator(ParamGeneratorInterface* impl) : impl_(impl) {} - ParamGenerator(const ParamGenerator& other) : impl_(other.impl_) {} - - ParamGenerator& operator=(const ParamGenerator& other) { - impl_ = other.impl_; - return *this; - } - - iterator begin() const { return iterator(impl_->Begin()); } - iterator end() const { return iterator(impl_->End()); } - - private: - std::shared_ptr > impl_; -}; - -// Generates values from a range of two comparable values. Can be used to -// generate sequences of user-defined types that implement operator+() and -// operator<(). -// This class is used in the Range() function. -template -class RangeGenerator : public ParamGeneratorInterface { - public: - RangeGenerator(T begin, T end, IncrementT step) - : begin_(begin), end_(end), - step_(step), end_index_(CalculateEndIndex(begin, end, step)) {} - ~RangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, begin_, 0, step_); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, end_, end_index_, step_); - } - - private: - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, T value, int index, - IncrementT step) - : base_(base), value_(value), index_(index), step_(step) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - value_ = static_cast(value_ + step_); - index_++; - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - const T* Current() const override { return &value_; } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const int other_index = - CheckedDowncastToActualType(&other)->index_; - return index_ == other_index; - } - - private: - Iterator(const Iterator& other) - : ParamIteratorInterface(), - base_(other.base_), value_(other.value_), index_(other.index_), - step_(other.step_) {} - - // No implementation - assignment is unsupported. - void operator=(const Iterator& other); - - const ParamGeneratorInterface* const base_; - T value_; - int index_; - const IncrementT step_; - }; // class RangeGenerator::Iterator - - static int CalculateEndIndex(const T& begin, - const T& end, - const IncrementT& step) { - int end_index = 0; - for (T i = begin; i < end; i = static_cast(i + step)) - end_index++; - return end_index; - } - - // No implementation - assignment is unsupported. - void operator=(const RangeGenerator& other); - - const T begin_; - const T end_; - const IncrementT step_; - // The index for the end() iterator. All the elements in the generated - // sequence are indexed (0-based) to aid iterator comparison. - const int end_index_; -}; // class RangeGenerator - - -// Generates values from a pair of STL-style iterators. Used in the -// ValuesIn() function. The elements are copied from the source range -// since the source can be located on the stack, and the generator -// is likely to persist beyond that stack frame. -template -class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface { - public: - template - ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end) - : container_(begin, end) {} - ~ValuesInIteratorRangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, container_.begin()); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, container_.end()); - } - - private: - typedef typename ::std::vector ContainerType; - - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, - typename ContainerType::const_iterator iterator) - : base_(base), iterator_(iterator) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - ++iterator_; - value_.reset(); - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - // We need to use cached value referenced by iterator_ because *iterator_ - // can return a temporary object (and of type other then T), so just - // having "return &*iterator_;" doesn't work. - // value_ is updated here and not in Advance() because Advance() - // can advance iterator_ beyond the end of the range, and we cannot - // detect that fact. The client code, on the other hand, is - // responsible for not calling Current() on an out-of-range iterator. - const T* Current() const override { - if (value_.get() == nullptr) value_.reset(new T(*iterator_)); - return value_.get(); - } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - return iterator_ == - CheckedDowncastToActualType(&other)->iterator_; - } - - private: - Iterator(const Iterator& other) - // The explicit constructor call suppresses a false warning - // emitted by gcc when supplied with the -Wextra option. - : ParamIteratorInterface(), - base_(other.base_), - iterator_(other.iterator_) {} - - const ParamGeneratorInterface* const base_; - typename ContainerType::const_iterator iterator_; - // A cached value of *iterator_. We keep it here to allow access by - // pointer in the wrapping iterator's operator->(). - // value_ needs to be mutable to be accessed in Current(). - // Use of std::unique_ptr helps manage cached value's lifetime, - // which is bound by the lifespan of the iterator itself. - mutable std::unique_ptr value_; - }; // class ValuesInIteratorRangeGenerator::Iterator - - // No implementation - assignment is unsupported. - void operator=(const ValuesInIteratorRangeGenerator& other); - - const ContainerType container_; -}; // class ValuesInIteratorRangeGenerator - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Default parameterized test name generator, returns a string containing the -// integer test parameter index. -template -std::string DefaultParamName(const TestParamInfo& info) { - Message name_stream; - name_stream << info.index; - return name_stream.GetString(); -} - -template -void TestNotEmpty() { - static_assert(sizeof(T) == 0, "Empty arguments are not allowed."); -} -template -void TestNotEmpty(const T&) {} - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Stores a parameter value and later creates tests parameterized with that -// value. -template -class ParameterizedTestFactory : public TestFactoryBase { - public: - typedef typename TestClass::ParamType ParamType; - explicit ParameterizedTestFactory(ParamType parameter) : - parameter_(parameter) {} - Test* CreateTest() override { - TestClass::SetParam(¶meter_); - return new TestClass(); - } - - private: - const ParamType parameter_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactoryBase is a base class for meta-factories that create -// test factories for passing into MakeAndRegisterTestInfo function. -template -class TestMetaFactoryBase { - public: - virtual ~TestMetaFactoryBase() {} - - virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactory creates test factories for passing into -// MakeAndRegisterTestInfo function. Since MakeAndRegisterTestInfo receives -// ownership of test factory pointer, same factory object cannot be passed -// into that method twice. But ParameterizedTestSuiteInfo is going to call -// it for each Test/Parameter value combination. Thus it needs meta factory -// creator class. -template -class TestMetaFactory - : public TestMetaFactoryBase { - public: - using ParamType = typename TestSuite::ParamType; - - TestMetaFactory() {} - - TestFactoryBase* CreateTestFactory(ParamType parameter) override { - return new ParameterizedTestFactory(parameter); - } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfoBase is a generic interface -// to ParameterizedTestSuiteInfo classes. ParameterizedTestSuiteInfoBase -// accumulates test information provided by TEST_P macro invocations -// and generators provided by INSTANTIATE_TEST_SUITE_P macro invocations -// and uses that information to register all resulting test instances -// in RegisterTests method. The ParameterizeTestSuiteRegistry class holds -// a collection of pointers to the ParameterizedTestSuiteInfo objects -// and calls RegisterTests() on each of them when asked. -class ParameterizedTestSuiteInfoBase { - public: - virtual ~ParameterizedTestSuiteInfoBase() {} - - // Base part of test suite name for display purposes. - virtual const std::string& GetTestSuiteName() const = 0; - // Test case id to verify identity. - virtual TypeId GetTestSuiteTypeId() const = 0; - // UnitTest class invokes this method to register tests in this - // test suite right before running them in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - virtual void RegisterTests() = 0; - - protected: - ParameterizedTestSuiteInfoBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfoBase); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfo accumulates tests obtained from TEST_P -// macro invocations for a particular test suite and generators -// obtained from INSTANTIATE_TEST_SUITE_P macro invocations for that -// test suite. It registers tests with all values generated by all -// generators when asked. -template -class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase { - public: - // ParamType and GeneratorCreationFunc are private types but are required - // for declarations of public methods AddTestPattern() and - // AddTestSuiteInstantiation(). - using ParamType = typename TestSuite::ParamType; - // A function that returns an instance of appropriate generator type. - typedef ParamGenerator(GeneratorCreationFunc)(); - using ParamNameGeneratorFunc = std::string(const TestParamInfo&); - - explicit ParameterizedTestSuiteInfo(const char* name, - CodeLocation code_location) - : test_suite_name_(name), code_location_(code_location) {} - - // Test case base name for display purposes. - const std::string& GetTestSuiteName() const override { - return test_suite_name_; - } - // Test case id to verify identity. - TypeId GetTestSuiteTypeId() const override { return GetTypeId(); } - // TEST_P macro uses AddTestPattern() to record information - // about a single test in a LocalTestInfo structure. - // test_suite_name is the base name of the test suite (without invocation - // prefix). test_base_name is the name of an individual test without - // parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is - // test suite base name and DoBar is test base name. - void AddTestPattern(const char* test_suite_name, const char* test_base_name, - TestMetaFactoryBase* meta_factory) { - tests_.push_back(std::shared_ptr( - new TestInfo(test_suite_name, test_base_name, meta_factory))); - } - // INSTANTIATE_TEST_SUITE_P macro uses AddGenerator() to record information - // about a generator. - int AddTestSuiteInstantiation(const std::string& instantiation_name, - GeneratorCreationFunc* func, - ParamNameGeneratorFunc* name_func, - const char* file, int line) { - instantiations_.push_back( - InstantiationInfo(instantiation_name, func, name_func, file, line)); - return 0; // Return value used only to run this method in namespace scope. - } - // UnitTest class invokes this method to register tests in this test suite - // test suites right before running tests in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - // UnitTest has a guard to prevent from calling this method more than once. - void RegisterTests() override { - for (typename TestInfoContainer::iterator test_it = tests_.begin(); - test_it != tests_.end(); ++test_it) { - std::shared_ptr test_info = *test_it; - for (typename InstantiationContainer::iterator gen_it = - instantiations_.begin(); gen_it != instantiations_.end(); - ++gen_it) { - const std::string& instantiation_name = gen_it->name; - ParamGenerator generator((*gen_it->generator)()); - ParamNameGeneratorFunc* name_func = gen_it->name_func; - const char* file = gen_it->file; - int line = gen_it->line; - - std::string test_suite_name; - if ( !instantiation_name.empty() ) - test_suite_name = instantiation_name + "/"; - test_suite_name += test_info->test_suite_base_name; - - size_t i = 0; - std::set test_param_names; - for (typename ParamGenerator::iterator param_it = - generator.begin(); - param_it != generator.end(); ++param_it, ++i) { - Message test_name_stream; - - std::string param_name = name_func( - TestParamInfo(*param_it, i)); - - GTEST_CHECK_(IsValidParamName(param_name)) - << "Parameterized test name '" << param_name - << "' is invalid, in " << file - << " line " << line << std::endl; - - GTEST_CHECK_(test_param_names.count(param_name) == 0) - << "Duplicate parameterized test name '" << param_name - << "', in " << file << " line " << line << std::endl; - - test_param_names.insert(param_name); - - test_name_stream << test_info->test_base_name << "/" << param_name; - MakeAndRegisterTestInfo( - test_suite_name.c_str(), test_name_stream.GetString().c_str(), - nullptr, // No type parameter. - PrintToString(*param_it).c_str(), code_location_, - GetTestSuiteTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite(), - SuiteApiResolver::GetTearDownCaseOrSuite(), - test_info->test_meta_factory->CreateTestFactory(*param_it)); - } // for param_it - } // for gen_it - } // for test_it - } // RegisterTests - - private: - // LocalTestInfo structure keeps information about a single test registered - // with TEST_P macro. - struct TestInfo { - TestInfo(const char* a_test_suite_base_name, const char* a_test_base_name, - TestMetaFactoryBase* a_test_meta_factory) - : test_suite_base_name(a_test_suite_base_name), - test_base_name(a_test_base_name), - test_meta_factory(a_test_meta_factory) {} - - const std::string test_suite_base_name; - const std::string test_base_name; - const std::unique_ptr > test_meta_factory; - }; - using TestInfoContainer = ::std::vector >; - // Records data received from INSTANTIATE_TEST_SUITE_P macros: - // - struct InstantiationInfo { - InstantiationInfo(const std::string &name_in, - GeneratorCreationFunc* generator_in, - ParamNameGeneratorFunc* name_func_in, - const char* file_in, - int line_in) - : name(name_in), - generator(generator_in), - name_func(name_func_in), - file(file_in), - line(line_in) {} - - std::string name; - GeneratorCreationFunc* generator; - ParamNameGeneratorFunc* name_func; - const char* file; - int line; - }; - typedef ::std::vector InstantiationContainer; - - static bool IsValidParamName(const std::string& name) { - // Check for empty string - if (name.empty()) - return false; - - // Check for invalid characters - for (std::string::size_type index = 0; index < name.size(); ++index) { - if (!isalnum(name[index]) && name[index] != '_') - return false; - } - - return true; - } - - const std::string test_suite_name_; - CodeLocation code_location_; - TestInfoContainer tests_; - InstantiationContainer instantiations_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfo); -}; // class ParameterizedTestSuiteInfo - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -template -using ParameterizedTestCaseInfo = ParameterizedTestSuiteInfo; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteRegistry contains a map of -// ParameterizedTestSuiteInfoBase classes accessed by test suite names. TEST_P -// and INSTANTIATE_TEST_SUITE_P macros use it to locate their corresponding -// ParameterizedTestSuiteInfo descriptors. -class ParameterizedTestSuiteRegistry { - public: - ParameterizedTestSuiteRegistry() {} - ~ParameterizedTestSuiteRegistry() { - for (auto& test_suite_info : test_suite_infos_) { - delete test_suite_info; - } - } - - // Looks up or creates and returns a structure containing information about - // tests and instantiations of a particular test suite. - template - ParameterizedTestSuiteInfo* GetTestSuitePatternHolder( - const char* test_suite_name, CodeLocation code_location) { - ParameterizedTestSuiteInfo* typed_test_info = nullptr; - for (auto& test_suite_info : test_suite_infos_) { - if (test_suite_info->GetTestSuiteName() == test_suite_name) { - if (test_suite_info->GetTestSuiteTypeId() != GetTypeId()) { - // Complain about incorrect usage of Google Test facilities - // and terminate the program since we cannot guaranty correct - // test suite setup and tear-down in this case. - ReportInvalidTestSuiteType(test_suite_name, code_location); - posix::Abort(); - } else { - // At this point we are sure that the object we found is of the same - // type we are looking for, so we downcast it to that type - // without further checks. - typed_test_info = CheckedDowncastToActualType< - ParameterizedTestSuiteInfo >(test_suite_info); - } - break; - } - } - if (typed_test_info == nullptr) { - typed_test_info = new ParameterizedTestSuiteInfo( - test_suite_name, code_location); - test_suite_infos_.push_back(typed_test_info); - } - return typed_test_info; - } - void RegisterTests() { - for (auto& test_suite_info : test_suite_infos_) { - test_suite_info->RegisterTests(); - } - } -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - template - ParameterizedTestCaseInfo* GetTestCasePatternHolder( - const char* test_case_name, CodeLocation code_location) { - return GetTestSuitePatternHolder(test_case_name, code_location); - } - -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - private: - using TestSuiteInfoContainer = ::std::vector; - - TestSuiteInfoContainer test_suite_infos_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteRegistry); -}; - -} // namespace internal - -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template -internal::ParamGenerator ValuesIn( - const Container& container); - -namespace internal { -// Used in the Values() function to provide polymorphic capabilities. - -template -class ValueArray { - public: - ValueArray(Ts... v) : v_{std::move(v)...} {} - - template - operator ParamGenerator() const { // NOLINT - return ValuesIn(MakeVector(MakeIndexSequence())); - } - - private: - template - std::vector MakeVector(IndexSequence) const { - return std::vector{static_cast(v_.template Get())...}; - } - - FlatTuple v_; -}; - -template -class CartesianProductGenerator - : public ParamGeneratorInterface<::std::tuple> { - public: - typedef ::std::tuple ParamType; - - CartesianProductGenerator(const std::tuple...>& g) - : generators_(g) {} - ~CartesianProductGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, generators_, false); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, generators_, true); - } - - private: - template - class IteratorImpl; - template - class IteratorImpl> - : public ParamIteratorInterface { - public: - IteratorImpl(const ParamGeneratorInterface* base, - const std::tuple...>& generators, bool is_end) - : base_(base), - begin_(std::get(generators).begin()...), - end_(std::get(generators).end()...), - current_(is_end ? end_ : begin_) { - ComputeCurrentValue(); - } - ~IteratorImpl() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - // Advance should not be called on beyond-of-range iterators - // so no component iterators must be beyond end of range, either. - void Advance() override { - assert(!AtEnd()); - // Advance the last iterator. - ++std::get(current_); - // if that reaches end, propagate that up. - AdvanceIfEnd(); - ComputeCurrentValue(); - } - ParamIteratorInterface* Clone() const override { - return new IteratorImpl(*this); - } - - const ParamType* Current() const override { return current_value_.get(); } - - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const IteratorImpl* typed_other = - CheckedDowncastToActualType(&other); - - // We must report iterators equal if they both point beyond their - // respective ranges. That can happen in a variety of fashions, - // so we have to consult AtEnd(). - if (AtEnd() && typed_other->AtEnd()) return true; - - bool same = true; - bool dummy[] = { - (same = same && std::get(current_) == - std::get(typed_other->current_))...}; - (void)dummy; - return same; - } - - private: - template - void AdvanceIfEnd() { - if (std::get(current_) != std::get(end_)) return; - - bool last = ThisI == 0; - if (last) { - // We are done. Nothing else to propagate. - return; - } - - constexpr size_t NextI = ThisI - (ThisI != 0); - std::get(current_) = std::get(begin_); - ++std::get(current_); - AdvanceIfEnd(); - } - - void ComputeCurrentValue() { - if (!AtEnd()) - current_value_ = std::make_shared(*std::get(current_)...); - } - bool AtEnd() const { - bool at_end = false; - bool dummy[] = { - (at_end = at_end || std::get(current_) == std::get(end_))...}; - (void)dummy; - return at_end; - } - - const ParamGeneratorInterface* const base_; - std::tuple::iterator...> begin_; - std::tuple::iterator...> end_; - std::tuple::iterator...> current_; - std::shared_ptr current_value_; - }; - - using Iterator = IteratorImpl::type>; - - std::tuple...> generators_; -}; - -template -class CartesianProductHolder { - public: - CartesianProductHolder(const Gen&... g) : generators_(g...) {} - template - operator ParamGenerator<::std::tuple>() const { - return ParamGenerator<::std::tuple>( - new CartesianProductGenerator(generators_)); - } - - private: - std::tuple generators_; -}; - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ - -namespace testing { - -// Functions producing parameter generators. -// -// Google Test uses these generators to produce parameters for value- -// parameterized tests. When a parameterized test suite is instantiated -// with a particular generator, Google Test creates and runs tests -// for each element in the sequence produced by the generator. -// -// In the following sample, tests from test suite FooTest are instantiated -// each three times with parameter values 3, 5, and 8: -// -// class FooTest : public TestWithParam { ... }; -// -// TEST_P(FooTest, TestThis) { -// } -// TEST_P(FooTest, TestThat) { -// } -// INSTANTIATE_TEST_SUITE_P(TestSequence, FooTest, Values(3, 5, 8)); -// - -// Range() returns generators providing sequences of values in a range. -// -// Synopsis: -// Range(start, end) -// - returns a generator producing a sequence of values {start, start+1, -// start+2, ..., }. -// Range(start, end, step) -// - returns a generator producing a sequence of values {start, start+step, -// start+step+step, ..., }. -// Notes: -// * The generated sequences never include end. For example, Range(1, 5) -// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) -// returns a generator producing {1, 3, 5, 7}. -// * start and end must have the same type. That type may be any integral or -// floating-point type or a user defined type satisfying these conditions: -// * It must be assignable (have operator=() defined). -// * It must have operator+() (operator+(int-compatible type) for -// two-operand version). -// * It must have operator<() defined. -// Elements in the resulting sequences will also have that type. -// * Condition start < end must be satisfied in order for resulting sequences -// to contain any elements. -// -template -internal::ParamGenerator Range(T start, T end, IncrementT step) { - return internal::ParamGenerator( - new internal::RangeGenerator(start, end, step)); -} - -template -internal::ParamGenerator Range(T start, T end) { - return Range(start, end, 1); -} - -// ValuesIn() function allows generation of tests with parameters coming from -// a container. -// -// Synopsis: -// ValuesIn(const T (&array)[N]) -// - returns a generator producing sequences with elements from -// a C-style array. -// ValuesIn(const Container& container) -// - returns a generator producing sequences with elements from -// an STL-style container. -// ValuesIn(Iterator begin, Iterator end) -// - returns a generator producing sequences with elements from -// a range [begin, end) defined by a pair of STL-style iterators. These -// iterators can also be plain C pointers. -// -// Please note that ValuesIn copies the values from the containers -// passed in and keeps them to generate tests in RUN_ALL_TESTS(). -// -// Examples: -// -// This instantiates tests from test suite StringTest -// each with C-string values of "foo", "bar", and "baz": -// -// const char* strings[] = {"foo", "bar", "baz"}; -// INSTANTIATE_TEST_SUITE_P(StringSequence, StringTest, ValuesIn(strings)); -// -// This instantiates tests from test suite StlStringTest -// each with STL strings with values "a" and "b": -// -// ::std::vector< ::std::string> GetParameterStrings() { -// ::std::vector< ::std::string> v; -// v.push_back("a"); -// v.push_back("b"); -// return v; -// } -// -// INSTANTIATE_TEST_SUITE_P(CharSequence, -// StlStringTest, -// ValuesIn(GetParameterStrings())); -// -// -// This will also instantiate tests from CharTest -// each with parameter values 'a' and 'b': -// -// ::std::list GetParameterChars() { -// ::std::list list; -// list.push_back('a'); -// list.push_back('b'); -// return list; -// } -// ::std::list l = GetParameterChars(); -// INSTANTIATE_TEST_SUITE_P(CharSequence2, -// CharTest, -// ValuesIn(l.begin(), l.end())); -// -template -internal::ParamGenerator< - typename ::testing::internal::IteratorTraits::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end) { - typedef typename ::testing::internal::IteratorTraits - ::value_type ParamType; - return internal::ParamGenerator( - new internal::ValuesInIteratorRangeGenerator(begin, end)); -} - -template -internal::ParamGenerator ValuesIn(const T (&array)[N]) { - return ValuesIn(array, array + N); -} - -template -internal::ParamGenerator ValuesIn( - const Container& container) { - return ValuesIn(container.begin(), container.end()); -} - -// Values() allows generating tests from explicitly specified list of -// parameters. -// -// Synopsis: -// Values(T v1, T v2, ..., T vN) -// - returns a generator producing sequences with elements v1, v2, ..., vN. -// -// For example, this instantiates tests from test suite BarTest each -// with values "one", "two", and "three": -// -// INSTANTIATE_TEST_SUITE_P(NumSequence, -// BarTest, -// Values("one", "two", "three")); -// -// This instantiates tests from test suite BazTest each with values 1, 2, 3.5. -// The exact type of values will depend on the type of parameter in BazTest. -// -// INSTANTIATE_TEST_SUITE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); -// -// -template -internal::ValueArray Values(T... v) { - return internal::ValueArray(std::move(v)...); -} - -// Bool() allows generating tests with parameters in a set of (false, true). -// -// Synopsis: -// Bool() -// - returns a generator producing sequences with elements {false, true}. -// -// It is useful when testing code that depends on Boolean flags. Combinations -// of multiple flags can be tested when several Bool()'s are combined using -// Combine() function. -// -// In the following example all tests in the test suite FlagDependentTest -// will be instantiated twice with parameters false and true. -// -// class FlagDependentTest : public testing::TestWithParam { -// virtual void SetUp() { -// external_flag = GetParam(); -// } -// } -// INSTANTIATE_TEST_SUITE_P(BoolSequence, FlagDependentTest, Bool()); -// -inline internal::ParamGenerator Bool() { - return Values(false, true); -} - -// Combine() allows the user to combine two or more sequences to produce -// values of a Cartesian product of those sequences' elements. -// -// Synopsis: -// Combine(gen1, gen2, ..., genN) -// - returns a generator producing sequences with elements coming from -// the Cartesian product of elements from the sequences generated by -// gen1, gen2, ..., genN. The sequence elements will have a type of -// std::tuple where T1, T2, ..., TN are the types -// of elements from sequences produces by gen1, gen2, ..., genN. -// -// Combine can have up to 10 arguments. -// -// Example: -// -// This will instantiate tests in test suite AnimalTest each one with -// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), -// tuple("dog", BLACK), and tuple("dog", WHITE): -// -// enum Color { BLACK, GRAY, WHITE }; -// class AnimalTest -// : public testing::TestWithParam > {...}; -// -// TEST_P(AnimalTest, AnimalLooksNice) {...} -// -// INSTANTIATE_TEST_SUITE_P(AnimalVariations, AnimalTest, -// Combine(Values("cat", "dog"), -// Values(BLACK, WHITE))); -// -// This will instantiate tests in FlagDependentTest with all variations of two -// Boolean flags: -// -// class FlagDependentTest -// : public testing::TestWithParam > { -// virtual void SetUp() { -// // Assigns external_flag_1 and external_flag_2 values from the tuple. -// std::tie(external_flag_1, external_flag_2) = GetParam(); -// } -// }; -// -// TEST_P(FlagDependentTest, TestFeature1) { -// // Test your code using external_flag_1 and external_flag_2 here. -// } -// INSTANTIATE_TEST_SUITE_P(TwoBoolSequence, FlagDependentTest, -// Combine(Bool(), Bool())); -// -template -internal::CartesianProductHolder Combine(const Generator&... g) { - return internal::CartesianProductHolder(g...); -} - -#define TEST_P(test_suite_name, test_name) \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public test_suite_name { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ - virtual void TestBody(); \ - \ - private: \ - static int AddToRegistry() { \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - #test_suite_name, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestPattern( \ - GTEST_STRINGIFY_(test_suite_name), GTEST_STRINGIFY_(test_name), \ - new ::testing::internal::TestMetaFactory()); \ - return 0; \ - } \ - static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \ - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)); \ - }; \ - int GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::gtest_registering_dummy_ = \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::AddToRegistry(); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -// The last argument to INSTANTIATE_TEST_SUITE_P allows the user to specify -// generator and an optional function or functor that generates custom test name -// suffixes based on the test parameters. Such a function or functor should -// accept one argument of type testing::TestParamInfo, and -// return std::string. -// -// testing::PrintToStringParamName is a builtin test suffix generator that -// returns the value of testing::PrintToString(GetParam()). -// -// Note: test names must be non-empty, unique, and may only contain ASCII -// alphanumeric characters or underscore. Because PrintToString adds quotes -// to std::string and C strings, it won't work for these types. - -#define GTEST_EXPAND_(arg) arg -#define GTEST_GET_FIRST_(first, ...) first -#define GTEST_GET_SECOND_(first, second, ...) second - -#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \ - static ::testing::internal::ParamGenerator \ - gtest_##prefix##test_suite_name##_EvalGenerator_() { \ - return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \ - } \ - static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_( \ - const ::testing::TestParamInfo& info) { \ - if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))); \ - auto t = std::make_tuple(__VA_ARGS__); \ - static_assert(std::tuple_size::value <= 2, \ - "Too Many Args!"); \ - } \ - return ((GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))))(info); \ - } \ - static int gtest_##prefix##test_suite_name##_dummy_ \ - GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - #test_suite_name, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestSuiteInstantiation( \ - #prefix, >est_##prefix##test_suite_name##_EvalGenerator_, \ - >est_##prefix##test_suite_name##_EvalGenerateName_, \ - __FILE__, __LINE__) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TEST_CASE_P \ - static_assert(::testing::internal::InstantiateTestCase_P_IsDeprecated(), \ - ""); \ - INSTANTIATE_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ -// Copyright 2006, Google Inc. -// 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. - -// -// Google C++ Testing and Mocking Framework definitions useful in production code. -// GOOGLETEST_CM0003 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PROD_H_ - -// When you need to test the private or protected members of a class, -// use the FRIEND_TEST macro to declare your tests as friends of the -// class. For example: -// -// class MyClass { -// private: -// void PrivateMethod(); -// FRIEND_TEST(MyClassTest, PrivateMethodWorks); -// }; -// -// class MyClassTest : public testing::Test { -// // ... -// }; -// -// TEST_F(MyClassTest, PrivateMethodWorks) { -// // Can call MyClass::PrivateMethod() here. -// } -// -// Note: The test class must be in the same namespace as the class being tested. -// For example, putting MyClassTest in an anonymous namespace will not work. - -#define FRIEND_TEST(test_case_name, test_name)\ -friend class test_case_name##_##test_name##_Test - -#endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_ -// Copyright 2008, Google Inc. -// 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. -// -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ -#define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ - -#include -#include - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// A copyable object representing the result of a test part (i.e. an -// assertion or an explicit FAIL(), ADD_FAILURE(), or SUCCESS()). -// -// Don't inherit from TestPartResult as its destructor is not virtual. -class GTEST_API_ TestPartResult { - public: - // The possible outcomes of a test part (i.e. an assertion or an - // explicit SUCCEED(), FAIL(), or ADD_FAILURE()). - enum Type { - kSuccess, // Succeeded. - kNonFatalFailure, // Failed but the test can continue. - kFatalFailure, // Failed and the test should be terminated. - kSkip // Skipped. - }; - - // C'tor. TestPartResult does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestPartResult object. - TestPartResult(Type a_type, const char* a_file_name, int a_line_number, - const char* a_message) - : type_(a_type), - file_name_(a_file_name == nullptr ? "" : a_file_name), - line_number_(a_line_number), - summary_(ExtractSummary(a_message)), - message_(a_message) {} - - // Gets the outcome of the test part. - Type type() const { return type_; } - - // Gets the name of the source file where the test part took place, or - // NULL if it's unknown. - const char* file_name() const { - return file_name_.empty() ? nullptr : file_name_.c_str(); - } - - // Gets the line in the source file where the test part took place, - // or -1 if it's unknown. - int line_number() const { return line_number_; } - - // Gets the summary of the failure message. - const char* summary() const { return summary_.c_str(); } - - // Gets the message associated with the test part. - const char* message() const { return message_.c_str(); } - - // Returns true iff the test part was skipped. - bool skipped() const { return type_ == kSkip; } - - // Returns true iff the test part passed. - bool passed() const { return type_ == kSuccess; } - - // Returns true iff the test part non-fatally failed. - bool nonfatally_failed() const { return type_ == kNonFatalFailure; } - - // Returns true iff the test part fatally failed. - bool fatally_failed() const { return type_ == kFatalFailure; } - - // Returns true iff the test part failed. - bool failed() const { return fatally_failed() || nonfatally_failed(); } - - private: - Type type_; - - // Gets the summary of the failure message by omitting the stack - // trace in it. - static std::string ExtractSummary(const char* message); - - // The name of the source file where the test part took place, or - // "" if the source file is unknown. - std::string file_name_; - // The line in the source file where the test part took place, or -1 - // if the line number is unknown. - int line_number_; - std::string summary_; // The test failure summary. - std::string message_; // The test failure message. -}; - -// Prints a TestPartResult object. -std::ostream& operator<<(std::ostream& os, const TestPartResult& result); - -// An array of TestPartResult objects. -// -// Don't inherit from TestPartResultArray as its destructor is not -// virtual. -class GTEST_API_ TestPartResultArray { - public: - TestPartResultArray() {} - - // Appends the given TestPartResult to the array. - void Append(const TestPartResult& result); - - // Returns the TestPartResult at the given index (0-based). - const TestPartResult& GetTestPartResult(int index) const; - - // Returns the number of TestPartResult objects in the array. - int size() const; - - private: - std::vector array_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray); -}; - -// This interface knows how to report a test part result. -class GTEST_API_ TestPartResultReporterInterface { - public: - virtual ~TestPartResultReporterInterface() {} - - virtual void ReportTestPartResult(const TestPartResult& result) = 0; -}; - -namespace internal { - -// This helper class is used by {ASSERT|EXPECT}_NO_FATAL_FAILURE to check if a -// statement generates new fatal failures. To do so it registers itself as the -// current test part result reporter. Besides checking if fatal failures were -// reported, it only delegates the reporting to the former result reporter. -// The original result reporter is restored in the destructor. -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -class GTEST_API_ HasNewFatalFailureHelper - : public TestPartResultReporterInterface { - public: - HasNewFatalFailureHelper(); - ~HasNewFatalFailureHelper() override; - void ReportTestPartResult(const TestPartResult& result) override; - bool has_new_fatal_failure() const { return has_new_fatal_failure_; } - private: - bool has_new_fatal_failure_; - TestPartResultReporterInterface* original_reporter_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper); -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ -// Copyright 2008 Google Inc. -// 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. - - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ - -// This header implements typed tests and type-parameterized tests. - -// Typed (aka type-driven) tests repeat the same test for types in a -// list. You must know which types you want to test with when writing -// typed tests. Here's how you do it: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - public: - ... - typedef std::list List; - static T shared_; - T value_; -}; - -// Next, associate a list of types with the test suite, which will be -// repeated for each type in the list. The typedef is necessary for -// the macro to parse correctly. -typedef testing::Types MyTypes; -TYPED_TEST_SUITE(FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// TYPED_TEST_SUITE(FooTest, int); - -// Then, use TYPED_TEST() instead of TEST_F() to define as many typed -// tests for this test suite as you want. -TYPED_TEST(FooTest, DoesBlah) { - // Inside a test, refer to TypeParam to get the type parameter. - // Since we are inside a derived class template, C++ requires use to - // visit the members of FooTest via 'this'. - TypeParam n = this->value_; - - // To visit static members of the fixture, add the TestFixture:: - // prefix. - n += TestFixture::shared_; - - // To refer to typedefs in the fixture, add the "typename - // TestFixture::" prefix. - typename TestFixture::List values; - values.push_back(n); - ... -} - -TYPED_TEST(FooTest, HasPropertyA) { ... } - -// TYPED_TEST_SUITE takes an optional third argument which allows to specify a -// class that generates custom test name suffixes based on the type. This should -// be a class which has a static template function GetName(int index) returning -// a string for each type. The provided integer index equals the index of the -// type in the provided type list. In many cases the index can be ignored. -// -// For example: -// class MyTypeNames { -// public: -// template -// static std::string GetName(int) { -// if (std::is_same()) return "char"; -// if (std::is_same()) return "int"; -// if (std::is_same()) return "unsignedInt"; -// } -// }; -// TYPED_TEST_SUITE(FooTest, MyTypes, MyTypeNames); - -#endif // 0 - -// Type-parameterized tests are abstract test patterns parameterized -// by a type. Compared with typed tests, type-parameterized tests -// allow you to define the test pattern without knowing what the type -// parameters are. The defined pattern can be instantiated with -// different types any number of times, in any number of translation -// units. -// -// If you are designing an interface or concept, you can define a -// suite of type-parameterized tests to verify properties that any -// valid implementation of the interface/concept should have. Then, -// each implementation can easily instantiate the test suite to verify -// that it conforms to the requirements, without having to write -// similar tests repeatedly. Here's an example: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - ... -}; - -// Next, declare that you will define a type-parameterized test suite -// (the _P suffix is for "parameterized" or "pattern", whichever you -// prefer): -TYPED_TEST_SUITE_P(FooTest); - -// Then, use TYPED_TEST_P() to define as many type-parameterized tests -// for this type-parameterized test suite as you want. -TYPED_TEST_P(FooTest, DoesBlah) { - // Inside a test, refer to TypeParam to get the type parameter. - TypeParam n = 0; - ... -} - -TYPED_TEST_P(FooTest, HasPropertyA) { ... } - -// Now the tricky part: you need to register all test patterns before -// you can instantiate them. The first argument of the macro is the -// test suite name; the rest are the names of the tests in this test -// case. -REGISTER_TYPED_TEST_SUITE_P(FooTest, - DoesBlah, HasPropertyA); - -// Finally, you are free to instantiate the pattern with the types you -// want. If you put the above code in a header file, you can #include -// it in multiple C++ source files and instantiate it multiple times. -// -// To distinguish different instances of the pattern, the first -// argument to the INSTANTIATE_* macro is a prefix that will be added -// to the actual test suite name. Remember to pick unique prefixes for -// different instances. -typedef testing::Types MyTypes; -INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, int); -// -// Similar to the optional argument of TYPED_TEST_SUITE above, -// INSTANTIATE_TEST_SUITE_P takes an optional fourth argument which allows to -// generate custom names. -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes, MyTypeNames); - -#endif // 0 - - -// Implements typed tests. - -#if GTEST_HAS_TYPED_TEST - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the typedef for the type parameters of the -// given test suite. -#define GTEST_TYPE_PARAMS_(TestSuiteName) gtest_type_params_##TestSuiteName##_ - -// Expands to the name of the typedef for the NameGenerator, responsible for -// creating the suffixes of the name. -#define GTEST_NAME_GENERATOR_(TestSuiteName) \ - gtest_type_params_##TestSuiteName##_NameGenerator - -// The 'Types' template argument below must have spaces around it -// since some compilers may choke on '>>' when passing a template -// instance (e.g. Types) -#define TYPED_TEST_SUITE(CaseName, Types, ...) \ - typedef ::testing::internal::TypeList::type GTEST_TYPE_PARAMS_( \ - CaseName); \ - typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \ - GTEST_NAME_GENERATOR_(CaseName) - -# define TYPED_TEST(CaseName, TestName) \ - template \ - class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ - : public CaseName { \ - private: \ - typedef CaseName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - virtual void TestBody(); \ - }; \ - static bool gtest_##CaseName##_##TestName##_registered_ \ - GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::internal::TypeParameterizedTest< \ - CaseName, \ - ::testing::internal::TemplateSel, \ - GTEST_TYPE_PARAMS_( \ - CaseName)>::Register("", \ - ::testing::internal::CodeLocation( \ - __FILE__, __LINE__), \ - #CaseName, #TestName, 0, \ - ::testing::internal::GenerateNames< \ - GTEST_NAME_GENERATOR_(CaseName), \ - GTEST_TYPE_PARAMS_(CaseName)>()); \ - template \ - void GTEST_TEST_CLASS_NAME_(CaseName, \ - TestName)::TestBody() - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE \ - static_assert(::testing::internal::TypedTestCaseIsDeprecated(), ""); \ - TYPED_TEST_SUITE -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#endif // GTEST_HAS_TYPED_TEST - -// Implements type-parameterized tests. - -#if GTEST_HAS_TYPED_TEST_P - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the namespace name that the type-parameterized tests for -// the given type-parameterized test suite are defined in. The exact -// name of the namespace is subject to change without notice. -#define GTEST_SUITE_NAMESPACE_(TestSuiteName) gtest_suite_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the variable used to remember the names of -// the defined tests in the given test suite. -#define GTEST_TYPED_TEST_SUITE_P_STATE_(TestSuiteName) \ - gtest_typed_test_suite_p_state_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE DIRECTLY. -// -// Expands to the name of the variable used to remember the names of -// the registered tests in the given test suite. -#define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \ - gtest_registered_test_names_##TestSuiteName##_ - -// The variables defined in the type-parameterized test macros are -// static as typically these macros are used in a .h file that can be -// #included in multiple translation units linked together. -#define TYPED_TEST_SUITE_P(SuiteName) \ - static ::testing::internal::TypedTestSuitePState \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE_P \ - static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \ - TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#define TYPED_TEST_P(SuiteName, TestName) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - template \ - class TestName : public SuiteName { \ - private: \ - typedef SuiteName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - virtual void TestBody(); \ - }; \ - static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName( \ - __FILE__, __LINE__, #SuiteName, #TestName); \ - } \ - template \ - void GTEST_SUITE_NAMESPACE_( \ - SuiteName)::TestName::TestBody() - -#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \ - } \ - static const char* const GTEST_REGISTERED_TEST_NAMES_( \ - SuiteName) GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames( \ - __FILE__, __LINE__, #__VA_ARGS__) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define REGISTER_TYPED_TEST_CASE_P \ - static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \ - ""); \ - REGISTER_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// The 'Types' template argument below must have spaces around it -// since some compilers may choke on '>>' when passing a template -// instance (e.g. Types) -#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \ - static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::internal::TypeParameterizedTestSuite< \ - SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \ - ::testing::internal::TypeList::type>:: \ - Register(#Prefix, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), \ - >EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), #SuiteName, \ - GTEST_REGISTERED_TEST_NAMES_(SuiteName), \ - ::testing::internal::GenerateNames< \ - ::testing::internal::NameGeneratorSelector< \ - __VA_ARGS__>::type, \ - ::testing::internal::TypeList::type>()) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TYPED_TEST_CASE_P \ - static_assert( \ - ::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \ - INSTANTIATE_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#endif // GTEST_HAS_TYPED_TEST_P - -#endif // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// Silence C4100 (unreferenced formal parameter) and 4805 -// unsafe mix of type 'const int' and type 'const bool' -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable:4805) -# pragma warning(disable:4100) -#endif - - -// Declares the flags. - -// This flag temporary enables the disabled tests. -GTEST_DECLARE_bool_(also_run_disabled_tests); - -// This flag brings the debugger on an assertion failure. -GTEST_DECLARE_bool_(break_on_failure); - -// This flag controls whether Google Test catches all test-thrown exceptions -// and logs them as failures. -GTEST_DECLARE_bool_(catch_exceptions); - -// This flag enables using colors in terminal output. Available values are -// "yes" to enable colors, "no" (disable colors), or "auto" (the default) -// to let Google Test decide. -GTEST_DECLARE_string_(color); - -// This flag sets up the filter to select by name using a glob pattern -// the tests to run. If the filter is not given all tests are executed. -GTEST_DECLARE_string_(filter); - -// This flag controls whether Google Test installs a signal handler that dumps -// debugging information when fatal signals are raised. -GTEST_DECLARE_bool_(install_failure_signal_handler); - -// This flag causes the Google Test to list tests. None of the tests listed -// are actually run if the flag is provided. -GTEST_DECLARE_bool_(list_tests); - -// This flag controls whether Google Test emits a detailed XML report to a file -// in addition to its normal textual output. -GTEST_DECLARE_string_(output); - -// This flags control whether Google Test prints the elapsed time for each -// test. -GTEST_DECLARE_bool_(print_time); - -// This flags control whether Google Test prints UTF8 characters as text. -GTEST_DECLARE_bool_(print_utf8); - -// This flag specifies the random number seed. -GTEST_DECLARE_int32_(random_seed); - -// This flag sets how many times the tests are repeated. The default value -// is 1. If the value is -1 the tests are repeating forever. -GTEST_DECLARE_int32_(repeat); - -// This flag controls whether Google Test includes Google Test internal -// stack frames in failure stack traces. -GTEST_DECLARE_bool_(show_internal_stack_frames); - -// When this flag is specified, tests' order is randomized on every iteration. -GTEST_DECLARE_bool_(shuffle); - -// This flag specifies the maximum number of stack frames to be -// printed in a failure message. -GTEST_DECLARE_int32_(stack_trace_depth); - -// When this flag is specified, a failed assertion will throw an -// exception if exceptions are enabled, or exit the program with a -// non-zero code otherwise. For use with an external test framework. -GTEST_DECLARE_bool_(throw_on_failure); - -// When this flag is set with a "host:port" string, on supported -// platforms test results are streamed to the specified port on -// the specified host machine. -GTEST_DECLARE_string_(stream_result_to); - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -GTEST_DECLARE_string_(flagfile); -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -// The upper limit for valid stack trace depths. -const int kMaxStackTraceDepth = 100; - -namespace internal { - -class AssertHelper; -class DefaultGlobalTestPartResultReporter; -class ExecDeathTest; -class NoExecDeathTest; -class FinalSuccessChecker; -class GTestFlagSaver; -class StreamingListenerTest; -class TestResultAccessor; -class TestEventListenersAccessor; -class TestEventRepeater; -class UnitTestRecordPropertyTestHelper; -class WindowsDeathTest; -class FuchsiaDeathTest; -class UnitTestImpl* GetUnitTestImpl(); -void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const std::string& message); - -} // namespace internal - -// The friend relationship of some of these classes is cyclic. -// If we don't forward declare them the compiler might confuse the classes -// in friendship clauses with same named classes on the scope. -class Test; -class TestSuite; - -// Old API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TestCase = TestSuite; -#endif -class TestInfo; -class UnitTest; - -// A class for indicating whether an assertion was successful. When -// the assertion wasn't successful, the AssertionResult object -// remembers a non-empty message that describes how it failed. -// -// To create an instance of this class, use one of the factory functions -// (AssertionSuccess() and AssertionFailure()). -// -// This class is useful for two purposes: -// 1. Defining predicate functions to be used with Boolean test assertions -// EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts -// 2. Defining predicate-format functions to be -// used with predicate assertions (ASSERT_PRED_FORMAT*, etc). -// -// For example, if you define IsEven predicate: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5))) -// will print the message -// -// Value of: IsEven(Fib(5)) -// Actual: false (5 is odd) -// Expected: true -// -// instead of a more opaque -// -// Value of: IsEven(Fib(5)) -// Actual: false -// Expected: true -// -// in case IsEven is a simple Boolean predicate. -// -// If you expect your predicate to be reused and want to support informative -// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up -// about half as often as positive ones in our tests), supply messages for -// both success and failure cases: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess() << n << " is even"; -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print -// -// Value of: IsEven(Fib(6)) -// Actual: true (8 is even) -// Expected: false -// -// NB: Predicates that support negative Boolean assertions have reduced -// performance in positive ones so be careful not to use them in tests -// that have lots (tens of thousands) of positive Boolean assertions. -// -// To use this class with EXPECT_PRED_FORMAT assertions such as: -// -// // Verifies that Foo() returns an even number. -// EXPECT_PRED_FORMAT1(IsEven, Foo()); -// -// you need to define: -// -// testing::AssertionResult IsEven(const char* expr, int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() -// << "Expected: " << expr << " is even\n Actual: it's " << n; -// } -// -// If Foo() returns 5, you will see the following message: -// -// Expected: Foo() is even -// Actual: it's 5 -// -class GTEST_API_ AssertionResult { - public: - // Copy constructor. - // Used in EXPECT_TRUE/FALSE(assertion_result). - AssertionResult(const AssertionResult& other); - -#if defined(_MSC_VER) && _MSC_VER < 1910 - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */) -#endif - - // Used in the EXPECT_TRUE/FALSE(bool_expression). - // - // T must be contextually convertible to bool. - // - // The second parameter prevents this overload from being considered if - // the argument is implicitly convertible to AssertionResult. In that case - // we want AssertionResult's copy constructor to be used. - template - explicit AssertionResult( - const T& success, - typename internal::EnableIf< - !std::is_convertible::value>::type* - /*enabler*/ - = nullptr) - : success_(success) {} - -#if defined(_MSC_VER) && _MSC_VER < 1910 - GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - - // Assignment operator. - AssertionResult& operator=(AssertionResult other) { - swap(other); - return *this; - } - - // Returns true iff the assertion succeeded. - operator bool() const { return success_; } // NOLINT - - // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. - AssertionResult operator!() const; - - // Returns the text streamed into this AssertionResult. Test assertions - // use it when they fail (i.e., the predicate's outcome doesn't match the - // assertion's expectation). When nothing has been streamed into the - // object, returns an empty string. - const char* message() const { - return message_.get() != nullptr ? message_->c_str() : ""; - } - // Deprecated; please use message() instead. - const char* failure_message() const { return message(); } - - // Streams a custom failure message into this object. - template AssertionResult& operator<<(const T& value) { - AppendMessage(Message() << value); - return *this; - } - - // Allows streaming basic output manipulators such as endl or flush into - // this object. - AssertionResult& operator<<( - ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) { - AppendMessage(Message() << basic_manipulator); - return *this; - } - - private: - // Appends the contents of message to message_. - void AppendMessage(const Message& a_message) { - if (message_.get() == nullptr) message_.reset(new ::std::string); - message_->append(a_message.GetString().c_str()); - } - - // Swap the contents of this AssertionResult with other. - void swap(AssertionResult& other); - - // Stores result of the assertion predicate. - bool success_; - // Stores the message describing the condition in case the expectation - // construct is not satisfied with the predicate's outcome. - // Referenced via a pointer to avoid taking too much stack frame space - // with test assertions. - std::unique_ptr< ::std::string> message_; -}; - -// Makes a successful assertion result. -GTEST_API_ AssertionResult AssertionSuccess(); - -// Makes a failed assertion result. -GTEST_API_ AssertionResult AssertionFailure(); - -// Makes a failed assertion result with the given failure message. -// Deprecated; use AssertionFailure() << msg. -GTEST_API_ AssertionResult AssertionFailure(const Message& msg); - -} // namespace testing - -// Includes the auto-generated header that implements a family of generic -// predicate assertion macros. This include comes late because it relies on -// APIs declared above. -// Copyright 2006, Google Inc. -// 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. - -// This file is AUTOMATICALLY GENERATED on 01/02/2019 by command -// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! -// -// Implements a family of generic predicate assertion macros. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ - - -namespace testing { - -// This header implements a family of generic predicate assertion -// macros: -// -// ASSERT_PRED_FORMAT1(pred_format, v1) -// ASSERT_PRED_FORMAT2(pred_format, v1, v2) -// ... -// -// where pred_format is a function or functor that takes n (in the -// case of ASSERT_PRED_FORMATn) values and their source expression -// text, and returns a testing::AssertionResult. See the definition -// of ASSERT_EQ in gtest.h for an example. -// -// If you don't care about formatting, you can use the more -// restrictive version: -// -// ASSERT_PRED1(pred, v1) -// ASSERT_PRED2(pred, v1, v2) -// ... -// -// where pred is an n-ary function or functor that returns bool, -// and the values v1, v2, ..., must support the << operator for -// streaming to std::ostream. -// -// We also define the EXPECT_* variations. -// -// For now we only support predicates whose arity is at most 5. -// Please email googletestframework@googlegroups.com if you need -// support for higher arities. - -// GTEST_ASSERT_ is the basic statement to which all of the assertions -// in this file reduce. Don't use this in your code. - -#define GTEST_ASSERT_(expression, on_failure) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar = (expression)) \ - ; \ - else \ - on_failure(gtest_ar.failure_message()) - - -// Helper function for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -template -AssertionResult AssertPred1Helper(const char* pred_text, - const char* e1, - Pred pred, - const T1& v1) { - if (pred(v1)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. -// Don't use this in your code. -#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, v1), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -#define GTEST_PRED1_(pred, v1, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \ - #v1, \ - pred, \ - v1), on_failure) - -// Unary predicate assertion macros. -#define EXPECT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED1(pred, v1) \ - GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED1(pred, v1) \ - GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -template -AssertionResult AssertPred2Helper(const char* pred_text, - const char* e1, - const char* e2, - Pred pred, - const T1& v1, - const T2& v2) { - if (pred(v1, v2)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. -// Don't use this in your code. -#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -#define GTEST_PRED2_(pred, v1, v2, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \ - #v1, \ - #v2, \ - pred, \ - v1, \ - v2), on_failure) - -// Binary predicate assertion macros. -#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -template -AssertionResult AssertPred3Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3) { - if (pred(v1, v2, v3)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. -// Don't use this in your code. -#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - pred, \ - v1, \ - v2, \ - v3), on_failure) - -// Ternary predicate assertion macros. -#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -template -AssertionResult AssertPred4Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - const char* e4, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3, - const T4& v4) { - if (pred(v1, v2, v3, v4)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. -// Don't use this in your code. -#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - #v4, \ - pred, \ - v1, \ - v2, \ - v3, \ - v4), on_failure) - -// 4-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -template -AssertionResult AssertPred5Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - const char* e4, - const char* e5, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3, - const T4& v4, - const T5& v5) { - if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ", " << e5 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4) << "\n" - << e5 << " evaluates to " << ::testing::PrintToString(v5); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. -// Don't use this in your code. -#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - #v4, \ - #v5, \ - pred, \ - v1, \ - v2, \ - v3, \ - v4, \ - v5), on_failure) - -// 5-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) - - - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ - -namespace testing { - -// The abstract class that all tests inherit from. -// -// In Google Test, a unit test program contains one or many TestSuites, and -// each TestSuite contains one or many Tests. -// -// When you define a test using the TEST macro, you don't need to -// explicitly derive from Test - the TEST macro automatically does -// this for you. -// -// The only time you derive from Test is when defining a test fixture -// to be used in a TEST_F. For example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { ... } -// void TearDown() override { ... } -// ... -// }; -// -// TEST_F(FooTest, Bar) { ... } -// TEST_F(FooTest, Baz) { ... } -// -// Test is not copyable. -class GTEST_API_ Test { - public: - friend class TestInfo; - - // The d'tor is virtual as we intend to inherit from Test. - virtual ~Test(); - - // Sets up the stuff shared by all tests in this test case. - // - // Google Test will call Foo::SetUpTestSuite() before running the first - // test in test case Foo. Hence a sub-class can define its own - // SetUpTestSuite() method to shadow the one defined in the super - // class. - static void SetUpTestSuite() {} - - // Tears down the stuff shared by all tests in this test case. - // - // Google Test will call Foo::TearDownTestSuite() after running the last - // test in test case Foo. Hence a sub-class can define its own - // TearDownTestSuite() method to shadow the one defined in the super - // class. - static void TearDownTestSuite() {} - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - static void TearDownTestCase() {} - static void SetUpTestCase() {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns true iff the current test has a fatal failure. - static bool HasFatalFailure(); - - // Returns true iff the current test has a non-fatal failure. - static bool HasNonfatalFailure(); - - // Returns true iff the current test was skipped. - static bool IsSkipped(); - - // Returns true iff the current test has a (either fatal or - // non-fatal) failure. - static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } - - // Logs a property for the current test, test suite, or for the entire - // invocation of the test program when used outside of the context of a - // test suite. Only the last value for a given key is remembered. These - // are public static so they can be called from utility functions that are - // not members of the test fixture. Calls to RecordProperty made during - // lifespan of the test (from the moment its constructor starts to the - // moment its destructor finishes) will be output in XML as attributes of - // the element. Properties recorded from fixture's - // SetUpTestSuite or TearDownTestSuite are logged as attributes of the - // corresponding element. Calls to RecordProperty made in the - // global context (before or after invocation of RUN_ALL_TESTS and from - // SetUp/TearDown method of Environment objects registered with Google - // Test) will be output as attributes of the element. - static void RecordProperty(const std::string& key, const std::string& value); - static void RecordProperty(const std::string& key, int value); - - protected: - // Creates a Test object. - Test(); - - // Sets up the test fixture. - virtual void SetUp(); - - // Tears down the test fixture. - virtual void TearDown(); - - private: - // Returns true iff the current test has the same fixture class as - // the first test in the current test suite. - static bool HasSameFixtureClass(); - - // Runs the test after the test fixture has been set up. - // - // A sub-class must implement this to define the test logic. - // - // DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM. - // Instead, use the TEST or TEST_F macro. - virtual void TestBody() = 0; - - // Sets up, executes, and tears down the test. - void Run(); - - // Deletes self. We deliberately pick an unusual name for this - // internal method to avoid clashing with names used in user TESTs. - void DeleteSelf_() { delete this; } - - const std::unique_ptr gtest_flag_saver_; - - // Often a user misspells SetUp() as Setup() and spends a long time - // wondering why it is never called by Google Test. The declaration of - // the following method is solely for catching such an error at - // compile time: - // - // - The return type is deliberately chosen to be not void, so it - // will be a conflict if void Setup() is declared in the user's - // test fixture. - // - // - This method is private, so it will be another compiler error - // if the method is called from the user's test fixture. - // - // DO NOT OVERRIDE THIS FUNCTION. - // - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } - - // We disallow copying Tests. - GTEST_DISALLOW_COPY_AND_ASSIGN_(Test); -}; - -typedef internal::TimeInMillis TimeInMillis; - -// A copyable object representing a user specified test property which can be -// output as a key/value string pair. -// -// Don't inherit from TestProperty as its destructor is not virtual. -class TestProperty { - public: - // C'tor. TestProperty does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestProperty object. - TestProperty(const std::string& a_key, const std::string& a_value) : - key_(a_key), value_(a_value) { - } - - // Gets the user supplied key. - const char* key() const { - return key_.c_str(); - } - - // Gets the user supplied value. - const char* value() const { - return value_.c_str(); - } - - // Sets a new value, overriding the one supplied in the constructor. - void SetValue(const std::string& new_value) { - value_ = new_value; - } - - private: - // The key supplied by the user. - std::string key_; - // The value supplied by the user. - std::string value_; -}; - -// The result of a single Test. This includes a list of -// TestPartResults, a list of TestProperties, a count of how many -// death tests there are in the Test, and how much time it took to run -// the Test. -// -// TestResult is not copyable. -class GTEST_API_ TestResult { - public: - // Creates an empty TestResult. - TestResult(); - - // D'tor. Do not inherit from TestResult. - ~TestResult(); - - // Gets the number of all test parts. This is the sum of the number - // of successful test parts and the number of failed test parts. - int total_part_count() const; - - // Returns the number of the test properties. - int test_property_count() const; - - // Returns true iff the test passed (i.e. no test part failed). - bool Passed() const { return !Skipped() && !Failed(); } - - // Returns true iff the test was skipped. - bool Skipped() const; - - // Returns true iff the test failed. - bool Failed() const; - - // Returns true iff the test fatally failed. - bool HasFatalFailure() const; - - // Returns true iff the test has a non-fatal failure. - bool HasNonfatalFailure() const; - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Returns the i-th test part result among all the results. i can range from 0 - // to total_part_count() - 1. If i is not in that range, aborts the program. - const TestPartResult& GetTestPartResult(int i) const; - - // Returns the i-th test property. i can range from 0 to - // test_property_count() - 1. If i is not in that range, aborts the - // program. - const TestProperty& GetTestProperty(int i) const; - - private: - friend class TestInfo; - friend class TestSuite; - friend class UnitTest; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::ExecDeathTest; - friend class internal::TestResultAccessor; - friend class internal::UnitTestImpl; - friend class internal::WindowsDeathTest; - friend class internal::FuchsiaDeathTest; - - // Gets the vector of TestPartResults. - const std::vector& test_part_results() const { - return test_part_results_; - } - - // Gets the vector of TestProperties. - const std::vector& test_properties() const { - return test_properties_; - } - - // Sets the elapsed time. - void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; } - - // Adds a test property to the list. The property is validated and may add - // a non-fatal failure if invalid (e.g., if it conflicts with reserved - // key names). If a property is already recorded for the same key, the - // value will be updated, rather than storing multiple values for the same - // key. xml_element specifies the element for which the property is being - // recorded and is used for validation. - void RecordProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a failure if the key is a reserved attribute of Google Test - // testsuite tags. Returns true if the property is valid. - // FIXME: Validate attribute names are legal and human readable. - static bool ValidateTestProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a test part result to the list. - void AddTestPartResult(const TestPartResult& test_part_result); - - // Returns the death test count. - int death_test_count() const { return death_test_count_; } - - // Increments the death test count, returning the new count. - int increment_death_test_count() { return ++death_test_count_; } - - // Clears the test part results. - void ClearTestPartResults(); - - // Clears the object. - void Clear(); - - // Protects mutable state of the property vector and of owned - // properties, whose values may be updated. - internal::Mutex test_properites_mutex_; - - // The vector of TestPartResults - std::vector test_part_results_; - // The vector of TestProperties - std::vector test_properties_; - // Running count of death tests. - int death_test_count_; - // The elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - - // We disallow copying TestResult. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult); -}; // class TestResult - -// A TestInfo object stores the following information about a test: -// -// Test suite name -// Test name -// Whether the test should be run -// A function pointer that creates the test object when invoked -// Test result -// -// The constructor of TestInfo registers itself with the UnitTest -// singleton such that the RUN_ALL_TESTS() macro knows which tests to -// run. -class GTEST_API_ TestInfo { - public: - // Destructs a TestInfo object. This function is not virtual, so - // don't inherit from TestInfo. - ~TestInfo(); - - // Returns the test suite name. - const char* test_suite_name() const { return test_suite_name_.c_str(); } - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const char* test_case_name() const { return test_suite_name(); } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the test name. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a typed - // or a type-parameterized test. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns the text representation of the value parameter, or NULL if this - // is not a value-parameterized test. - const char* value_param() const { - if (value_param_.get() != nullptr) return value_param_->c_str(); - return nullptr; - } - - // Returns the file name where this test is defined. - const char* file() const { return location_.file.c_str(); } - - // Returns the line where this test is defined. - int line() const { return location_.line; } - - // Return true if this test should not be run because it's in another shard. - bool is_in_another_shard() const { return is_in_another_shard_; } - - // Returns true if this test should run, that is if the test is not - // disabled (or it is disabled but the also_run_disabled_tests flag has - // been specified) and its full name matches the user-specified filter. - // - // Google Test allows the user to filter the tests by their full names. - // The full name of a test Bar in test suite Foo is defined as - // "Foo.Bar". Only the tests that match the filter will run. - // - // A filter is a colon-separated list of glob (not regex) patterns, - // optionally followed by a '-' and a colon-separated list of - // negative patterns (tests to exclude). A test is run if it - // matches one of the positive patterns and does not match any of - // the negative patterns. - // - // For example, *A*:Foo.* is a filter that matches any string that - // contains the character 'A' or starts with "Foo.". - bool should_run() const { return should_run_; } - - // Returns true iff this test will appear in the XML report. - bool is_reportable() const { - // The XML report includes tests matching the filter, excluding those - // run in other shards. - return matches_filter_ && !is_in_another_shard_; - } - - // Returns the result of the test. - const TestResult* result() const { return &result_; } - - private: -#if GTEST_HAS_DEATH_TEST - friend class internal::DefaultDeathTestFactory; -#endif // GTEST_HAS_DEATH_TEST - friend class Test; - friend class TestSuite; - friend class internal::UnitTestImpl; - friend class internal::StreamingListenerTest; - friend TestInfo* internal::MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, internal::CodeLocation code_location, - internal::TypeId fixture_class_id, internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc, - internal::TestFactoryBase* factory); - - // Constructs a TestInfo object. The newly constructed instance assumes - // ownership of the factory object. - TestInfo(const std::string& test_suite_name, const std::string& name, - const char* a_type_param, // NULL if not a type-parameterized test - const char* a_value_param, // NULL if not a value-parameterized test - internal::CodeLocation a_code_location, - internal::TypeId fixture_class_id, - internal::TestFactoryBase* factory); - - // Increments the number of death tests encountered in this test so - // far. - int increment_death_test_count() { - return result_.increment_death_test_count(); - } - - // Creates the test object, runs it, records its result, and then - // deletes it. - void Run(); - - static void ClearTestResult(TestInfo* test_info) { - test_info->result_.Clear(); - } - - // These fields are immutable properties of the test. - const std::string test_suite_name_; // test suite name - const std::string name_; // Test name - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // Text representation of the value parameter, or NULL if this is not a - // value-parameterized test. - const std::unique_ptr value_param_; - internal::CodeLocation location_; - const internal::TypeId fixture_class_id_; // ID of the test fixture class - bool should_run_; // True iff this test should run - bool is_disabled_; // True iff this test is disabled - bool matches_filter_; // True if this test matches the - // user-specified filter. - bool is_in_another_shard_; // Will be run in another shard. - internal::TestFactoryBase* const factory_; // The factory that creates - // the test object - - // This field is mutable and needs to be reset before running the - // test for the second time. - TestResult result_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo); -}; - -// A test suite, which consists of a vector of TestInfos. -// -// TestSuite is not copyable. -class GTEST_API_ TestSuite { - public: - // Creates a TestSuite with the given name. - // - // TestSuite does NOT have a default constructor. Always use this - // constructor to create a TestSuite object. - // - // Arguments: - // - // name: name of the test suite - // a_type_param: the name of the test's type parameter, or NULL if - // this is not a type-parameterized test. - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - TestSuite(const char* name, const char* a_type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc); - - // Destructor of TestSuite. - virtual ~TestSuite(); - - // Gets the name of the TestSuite. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a - // type-parameterized test suite. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns true if any test in this test suite should run. - bool should_run() const { return should_run_; } - - // Gets the number of successful tests in this test suite. - int successful_test_count() const; - - // Gets the number of skipped tests in this test suite. - int skipped_test_count() const; - - // Gets the number of failed tests in this test suite. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests in this test suite. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Get the number of tests in this test suite that should run. - int test_to_run_count() const; - - // Gets the number of all tests in this test suite. - int total_test_count() const; - - // Returns true iff the test suite passed. - bool Passed() const { return !Failed(); } - - // Returns true iff the test suite failed. - bool Failed() const { return failed_test_count() > 0; } - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - const TestInfo* GetTestInfo(int i) const; - - // Returns the TestResult that holds test properties recorded during - // execution of SetUpTestSuite and TearDownTestSuite. - const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } - - private: - friend class Test; - friend class internal::UnitTestImpl; - - // Gets the (mutable) vector of TestInfos in this TestSuite. - std::vector& test_info_list() { return test_info_list_; } - - // Gets the (immutable) vector of TestInfos in this TestSuite. - const std::vector& test_info_list() const { - return test_info_list_; - } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - TestInfo* GetMutableTestInfo(int i); - - // Sets the should_run member. - void set_should_run(bool should) { should_run_ = should; } - - // Adds a TestInfo to this test suite. Will delete the TestInfo upon - // destruction of the TestSuite object. - void AddTestInfo(TestInfo * test_info); - - // Clears the results of all tests in this test suite. - void ClearResult(); - - // Clears the results of all tests in the given test suite. - static void ClearTestSuiteResult(TestSuite* test_suite) { - test_suite->ClearResult(); - } - - // Runs every test in this TestSuite. - void Run(); - - // Runs SetUpTestSuite() for this TestSuite. This wrapper is needed - // for catching exceptions thrown from SetUpTestSuite(). - void RunSetUpTestSuite() { - if (set_up_tc_ != nullptr) { - (*set_up_tc_)(); - } - } - - // Runs TearDownTestSuite() for this TestSuite. This wrapper is - // needed for catching exceptions thrown from TearDownTestSuite(). - void RunTearDownTestSuite() { - if (tear_down_tc_ != nullptr) { - (*tear_down_tc_)(); - } - } - - // Returns true iff test passed. - static bool TestPassed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Passed(); - } - - // Returns true iff test skipped. - static bool TestSkipped(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Skipped(); - } - - // Returns true iff test failed. - static bool TestFailed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Failed(); - } - - // Returns true iff the test is disabled and will be reported in the XML - // report. - static bool TestReportableDisabled(const TestInfo* test_info) { - return test_info->is_reportable() && test_info->is_disabled_; - } - - // Returns true iff test is disabled. - static bool TestDisabled(const TestInfo* test_info) { - return test_info->is_disabled_; - } - - // Returns true iff this test will appear in the XML report. - static bool TestReportable(const TestInfo* test_info) { - return test_info->is_reportable(); - } - - // Returns true if the given test should run. - static bool ShouldRunTest(const TestInfo* test_info) { - return test_info->should_run(); - } - - // Shuffles the tests in this test suite. - void ShuffleTests(internal::Random* random); - - // Restores the test order to before the first shuffle. - void UnshuffleTests(); - - // Name of the test suite. - std::string name_; - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // The vector of TestInfos in their original order. It owns the - // elements in the vector. - std::vector test_info_list_; - // Provides a level of indirection for the test list to allow easy - // shuffling and restoring the test order. The i-th element in this - // vector is the index of the i-th test in the shuffled test list. - std::vector test_indices_; - // Pointer to the function that sets up the test suite. - internal::SetUpTestSuiteFunc set_up_tc_; - // Pointer to the function that tears down the test suite. - internal::TearDownTestSuiteFunc tear_down_tc_; - // True iff any test in this test suite should run. - bool should_run_; - // Elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - // Holds test properties recorded during execution of SetUpTestSuite and - // TearDownTestSuite. - TestResult ad_hoc_test_result_; - - // We disallow copying TestSuites. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestSuite); -}; - -// An Environment object is capable of setting up and tearing down an -// environment. You should subclass this to define your own -// environment(s). -// -// An Environment object does the set-up and tear-down in virtual -// methods SetUp() and TearDown() instead of the constructor and the -// destructor, as: -// -// 1. You cannot safely throw from a destructor. This is a problem -// as in some cases Google Test is used where exceptions are enabled, and -// we may want to implement ASSERT_* using exceptions where they are -// available. -// 2. You cannot use ASSERT_* directly in a constructor or -// destructor. -class Environment { - public: - // The d'tor is virtual as we need to subclass Environment. - virtual ~Environment() {} - - // Override this to define how to set up the environment. - virtual void SetUp() {} - - // Override this to define how to tear down the environment. - virtual void TearDown() {} - private: - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } -}; - -#if GTEST_HAS_EXCEPTIONS - -// Exception which can be thrown from TestEventListener::OnTestPartResult. -class GTEST_API_ AssertionException - : public internal::GoogleTestFailureException { - public: - explicit AssertionException(const TestPartResult& result) - : GoogleTestFailureException(result) {} -}; - -#endif // GTEST_HAS_EXCEPTIONS - -// The interface for tracing execution of tests. The methods are organized in -// the order the corresponding events are fired. -class TestEventListener { - public: - virtual ~TestEventListener() {} - - // Fired before any test activity starts. - virtual void OnTestProgramStart(const UnitTest& unit_test) = 0; - - // Fired before each iteration of tests starts. There may be more than - // one iteration if GTEST_FLAG(repeat) is set. iteration is the iteration - // index, starting from 0. - virtual void OnTestIterationStart(const UnitTest& unit_test, - int iteration) = 0; - - // Fired before environment set-up for each iteration of tests starts. - virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) = 0; - - // Fired after environment set-up for each iteration of tests ends. - virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0; - - // Fired before the test suite starts. - virtual void OnTestSuiteStart(const TestSuite& /*test_suite*/) {} - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseStart(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before the test starts. - virtual void OnTestStart(const TestInfo& test_info) = 0; - - // Fired after a failed assertion or a SUCCEED() invocation. - // If you want to throw an exception from this function to skip to the next - // TEST, it must be AssertionException defined above, or inherited from it. - virtual void OnTestPartResult(const TestPartResult& test_part_result) = 0; - - // Fired after the test ends. - virtual void OnTestEnd(const TestInfo& test_info) = 0; - - // Fired after the test suite ends. - virtual void OnTestSuiteEnd(const TestSuite& /*test_suite*/) {} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before environment tear-down for each iteration of tests starts. - virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0; - - // Fired after environment tear-down for each iteration of tests ends. - virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0; - - // Fired after each iteration of tests finishes. - virtual void OnTestIterationEnd(const UnitTest& unit_test, - int iteration) = 0; - - // Fired after all test activities have ended. - virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0; -}; - -// The convenience class for users who need to override just one or two -// methods and are not concerned that a possible change to a signature of -// the methods they override will not be caught during the build. For -// comments about each method please see the definition of TestEventListener -// above. -class EmptyTestEventListener : public TestEventListener { - public: - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} - void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {} -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnTestStart(const TestInfo& /*test_info*/) override {} - void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {} - void OnTestEnd(const TestInfo& /*test_info*/) override {} - void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {} -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} -}; - -// TestEventListeners lets users add listeners to track events in Google Test. -class GTEST_API_ TestEventListeners { - public: - TestEventListeners(); - ~TestEventListeners(); - - // Appends an event listener to the end of the list. Google Test assumes - // the ownership of the listener (i.e. it will delete the listener when - // the test program finishes). - void Append(TestEventListener* listener); - - // Removes the given event listener from the list and returns it. It then - // becomes the caller's responsibility to delete the listener. Returns - // NULL if the listener is not found in the list. - TestEventListener* Release(TestEventListener* listener); - - // Returns the standard listener responsible for the default console - // output. Can be removed from the listeners list to shut down default - // console output. Note that removing this object from the listener list - // with Release transfers its ownership to the caller and makes this - // function return NULL the next time. - TestEventListener* default_result_printer() const { - return default_result_printer_; - } - - // Returns the standard listener responsible for the default XML output - // controlled by the --gtest_output=xml flag. Can be removed from the - // listeners list by users who want to shut down the default XML output - // controlled by this flag and substitute it with custom one. Note that - // removing this object from the listener list with Release transfers its - // ownership to the caller and makes this function return NULL the next - // time. - TestEventListener* default_xml_generator() const { - return default_xml_generator_; - } - - private: - friend class TestSuite; - friend class TestInfo; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::NoExecDeathTest; - friend class internal::TestEventListenersAccessor; - friend class internal::UnitTestImpl; - - // Returns repeater that broadcasts the TestEventListener events to all - // subscribers. - TestEventListener* repeater(); - - // Sets the default_result_printer attribute to the provided listener. - // The listener is also added to the listener list and previous - // default_result_printer is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultResultPrinter(TestEventListener* listener); - - // Sets the default_xml_generator attribute to the provided listener. The - // listener is also added to the listener list and previous - // default_xml_generator is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultXmlGenerator(TestEventListener* listener); - - // Controls whether events will be forwarded by the repeater to the - // listeners in the list. - bool EventForwardingEnabled() const; - void SuppressEventForwarding(); - - // The actual list of listeners. - internal::TestEventRepeater* repeater_; - // Listener responsible for the standard result output. - TestEventListener* default_result_printer_; - // Listener responsible for the creation of the XML output file. - TestEventListener* default_xml_generator_; - - // We disallow copying TestEventListeners. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners); -}; - -// A UnitTest consists of a vector of TestSuites. -// -// This is a singleton class. The only instance of UnitTest is -// created when UnitTest::GetInstance() is first called. This -// instance is never deleted. -// -// UnitTest is not copyable. -// -// This class is thread-safe as long as the methods are called -// according to their specification. -class GTEST_API_ UnitTest { - public: - // Gets the singleton UnitTest object. The first time this method - // is called, a UnitTest object is constructed and returned. - // Consecutive calls will return the same object. - static UnitTest* GetInstance(); - - // Runs all tests in this UnitTest object and prints the result. - // Returns 0 if successful, or 1 otherwise. - // - // This method can only be called from the main thread. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - int Run() GTEST_MUST_USE_RESULT_; - - // Returns the working directory when the first TEST() or TEST_F() - // was executed. The UnitTest object owns the string. - const char* original_working_dir() const; - - // Returns the TestSuite object for the test that's currently running, - // or NULL if no test is running. - const TestSuite* current_test_suite() const GTEST_LOCK_EXCLUDED_(mutex_); - -// Legacy API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* current_test_case() const GTEST_LOCK_EXCLUDED_(mutex_); -#endif - - // Returns the TestInfo object for the test that's currently running, - // or NULL if no test is running. - const TestInfo* current_test_info() const - GTEST_LOCK_EXCLUDED_(mutex_); - - // Returns the random seed used at the start of the current test run. - int random_seed() const; - - // Returns the ParameterizedTestSuiteRegistry object used to keep track of - // value-parameterized tests and instantiate and register them. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::ParameterizedTestSuiteRegistry& parameterized_test_registry() - GTEST_LOCK_EXCLUDED_(mutex_); - - // Gets the number of successful test suites. - int successful_test_suite_count() const; - - // Gets the number of failed test suites. - int failed_test_suite_count() const; - - // Gets the number of all test suites. - int total_test_suite_count() const; - - // Gets the number of all test suites that contain at least one test - // that should run. - int test_suite_to_run_count() const; - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - int successful_test_case_count() const; - int failed_test_case_count() const; - int total_test_case_count() const; - int test_case_to_run_count() const; -#endif // EMOVE_LEGACY_TEST_CASEAPI - - // Gets the number of successful tests. - int successful_test_count() const; - - // Gets the number of skipped tests. - int skipped_test_count() const; - - // Gets the number of failed tests. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Gets the number of all tests. - int total_test_count() const; - - // Gets the number of tests that should run. - int test_to_run_count() const; - - // Gets the time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const; - - // Gets the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const; - - // Returns true iff the unit test passed (i.e. all test suites passed). - bool Passed() const; - - // Returns true iff the unit test failed (i.e. some test suite failed - // or something outside of all tests failed). - bool Failed() const; - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - const TestSuite* GetTestSuite(int i) const; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* GetTestCase(int i) const; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the TestResult containing information on test failures and - // properties logged outside of individual test suites. - const TestResult& ad_hoc_test_result() const; - - // Returns the list of event listeners that can be used to track events - // inside Google Test. - TestEventListeners& listeners(); - - private: - // Registers and returns a global test environment. When a test - // program is run, all global test environments will be set-up in - // the order they were registered. After all tests in the program - // have finished, all global test environments will be torn-down in - // the *reverse* order they were registered. - // - // The UnitTest object takes ownership of the given environment. - // - // This method can only be called from the main thread. - Environment* AddEnvironment(Environment* env); - - // Adds a TestPartResult to the current TestResult object. All - // Google Test assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) - // eventually call this to report their results. The user code - // should use the assertion macros instead of calling this directly. - void AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, - int line_number, - const std::string& message, - const std::string& os_stack_trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Adds a TestProperty to the current TestResult object when invoked from - // inside a test, to current TestSuite's ad_hoc_test_result_ when invoked - // from SetUpTestSuite or TearDownTestSuite, or to the global property set - // when invoked elsewhere. If the result already contains a property with - // the same key, the value will be updated. - void RecordProperty(const std::string& key, const std::string& value); - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - TestSuite* GetMutableTestSuite(int i); - - // Accessors for the implementation object. - internal::UnitTestImpl* impl() { return impl_; } - const internal::UnitTestImpl* impl() const { return impl_; } - - // These classes and functions are friends as they need to access private - // members of UnitTest. - friend class ScopedTrace; - friend class Test; - friend class internal::AssertHelper; - friend class internal::StreamingListenerTest; - friend class internal::UnitTestRecordPropertyTestHelper; - friend Environment* AddGlobalTestEnvironment(Environment* env); - friend internal::UnitTestImpl* internal::GetUnitTestImpl(); - friend void internal::ReportFailureInUnknownLocation( - TestPartResult::Type result_type, - const std::string& message); - - // Creates an empty UnitTest. - UnitTest(); - - // D'tor - virtual ~UnitTest(); - - // Pushes a trace defined by SCOPED_TRACE() on to the per-thread - // Google Test trace stack. - void PushGTestTrace(const internal::TraceInfo& trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Pops a trace from the per-thread Google Test trace stack. - void PopGTestTrace() - GTEST_LOCK_EXCLUDED_(mutex_); - - // Protects mutable state in *impl_. This is mutable as some const - // methods need to lock it too. - mutable internal::Mutex mutex_; - - // Opaque implementation object. This field is never changed once - // the object is constructed. We don't mark it as const here, as - // doing so will cause a warning in the constructor of UnitTest. - // Mutable state in *impl_ is protected by mutex_. - internal::UnitTestImpl* impl_; - - // We disallow copying UnitTest. - GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest); -}; - -// A convenient wrapper for adding an environment for the test -// program. -// -// You should call this before RUN_ALL_TESTS() is called, probably in -// main(). If you use gtest_main, you need to call this before main() -// starts for it to take effect. For example, you can define a global -// variable like this: -// -// testing::Environment* const foo_env = -// testing::AddGlobalTestEnvironment(new FooEnvironment); -// -// However, we strongly recommend you to write your own main() and -// call AddGlobalTestEnvironment() there, as relying on initialization -// of global variables makes the code harder to read and may cause -// problems when you register multiple environments from different -// translation units and the environments have dependencies among them -// (remember that the compiler doesn't guarantee the order in which -// global variables from different translation units are initialized). -inline Environment* AddGlobalTestEnvironment(Environment* env) { - return UnitTest::GetInstance()->AddEnvironment(env); -} - -// Initializes Google Test. This must be called before calling -// RUN_ALL_TESTS(). In particular, it parses a command line for the -// flags that Google Test recognizes. Whenever a Google Test flag is -// seen, it is removed from argv, and *argc is decremented. -// -// No value is returned. Instead, the Google Test flag variables are -// updated. -// -// Calling the function for the second time has no user-visible effect. -GTEST_API_ void InitGoogleTest(int* argc, char** argv); - -// This overloaded version can be used in Windows programs compiled in -// UNICODE mode. -GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); - -// This overloaded version can be used on Arduino/embedded platforms where -// there is no argc/argv. -GTEST_API_ void InitGoogleTest(); - -namespace internal { - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperEQ. This helps reduce the overhead of some sanitizers -// when calling EXPECT_* in a tight loop. -template -AssertionResult CmpHelperEQFailure(const char* lhs_expression, - const char* rhs_expression, - const T1& lhs, const T2& rhs) { - return EqFailure(lhs_expression, - rhs_expression, - FormatForComparisonFailureMessage(lhs, rhs), - FormatForComparisonFailureMessage(rhs, lhs), - false); -} - -// This block of code defines operator==/!= -// to block lexical scope lookup. -// It prevents using invalid operator==/!= defined at namespace scope. -struct faketype {}; -inline bool operator==(faketype, faketype) { return true; } -inline bool operator!=(faketype, faketype) { return false; } - -// The helper function for {ASSERT|EXPECT}_EQ. -template -AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, - const T1& lhs, - const T2& rhs) { - if (lhs == rhs) { - return AssertionSuccess(); - } - - return CmpHelperEQFailure(lhs_expression, rhs_expression, lhs, rhs); -} - -// With this overloaded version, we allow anonymous enums to be used -// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums -// can be implicitly cast to BiggestInt. -GTEST_API_ AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, - BiggestInt lhs, - BiggestInt rhs); - -class EqHelper { - public: - // This templatized version is for the general case. - template < - typename T1, typename T2, - // Disable this overload for cases where one argument is a pointer - // and the other is the null pointer constant. - typename std::enable_if::value || - !std::is_pointer::value>::type* = nullptr> - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, const T1& lhs, - const T2& rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - // With this overloaded version, we allow anonymous enums to be used - // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous - // enums can be implicitly cast to BiggestInt. - // - // Even though its body looks the same as the above version, we - // cannot merge the two, as it will make anonymous enums unhappy. - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, - BiggestInt lhs, - BiggestInt rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - template - static AssertionResult Compare( - const char* lhs_expression, const char* rhs_expression, - // Handle cases where '0' is used as a null pointer literal. - std::nullptr_t /* lhs */, T* rhs) { - // We already know that 'lhs' is a null pointer. - return CmpHelperEQ(lhs_expression, rhs_expression, static_cast(nullptr), - rhs); - } -}; - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperOP. This helps reduce the overhead of some sanitizers -// when calling EXPECT_OP in a tight loop. -template -AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2, - const T1& val1, const T2& val2, - const char* op) { - return AssertionFailure() - << "Expected: (" << expr1 << ") " << op << " (" << expr2 - << "), actual: " << FormatForComparisonFailureMessage(val1, val2) - << " vs " << FormatForComparisonFailureMessage(val2, val1); -} - -// A macro for implementing the helper functions needed to implement -// ASSERT_?? and EXPECT_??. It is here just to avoid copy-and-paste -// of similar code. -// -// For each templatized helper function, we also define an overloaded -// version for BiggestInt in order to reduce code bloat and allow -// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled -// with gcc 4. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -#define GTEST_IMPL_CMP_HELPER_(op_name, op)\ -template \ -AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ - const T1& val1, const T2& val2) {\ - if (val1 op val2) {\ - return AssertionSuccess();\ - } else {\ - return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\ - }\ -}\ -GTEST_API_ AssertionResult CmpHelper##op_name(\ - const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) - -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// Implements the helper function for {ASSERT|EXPECT}_NE -GTEST_IMPL_CMP_HELPER_(NE, !=); -// Implements the helper function for {ASSERT|EXPECT}_LE -GTEST_IMPL_CMP_HELPER_(LE, <=); -// Implements the helper function for {ASSERT|EXPECT}_LT -GTEST_IMPL_CMP_HELPER_(LT, <); -// Implements the helper function for {ASSERT|EXPECT}_GE -GTEST_IMPL_CMP_HELPER_(GE, >=); -// Implements the helper function for {ASSERT|EXPECT}_GT -GTEST_IMPL_CMP_HELPER_(GT, >); - -#undef GTEST_IMPL_CMP_HELPER_ - -// The helper function for {ASSERT|EXPECT}_STREQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASEEQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRNE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASENE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - - -// Helper function for *_STREQ on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, - const wchar_t* s2); - -// Helper function for *_STRNE on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, - const wchar_t* s2); - -} // namespace internal - -// IsSubstring() and IsNotSubstring() are intended to be used as the -// first argument to {EXPECT,ASSERT}_PRED_FORMAT2(), not by -// themselves. They check whether needle is a substring of haystack -// (NULL is considered a substring of itself only), and return an -// appropriate error message when they fail. -// -// The {needle,haystack}_expr arguments are the stringified -// expressions that generated the two real arguments. -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack); -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack); -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack); - -#if GTEST_HAS_STD_WSTRING -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack); -#endif // GTEST_HAS_STD_WSTRING - -namespace internal { - -// Helper template function for comparing floating-points. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression, - const char* rhs_expression, - RawType lhs_value, - RawType rhs_value) { - const FloatingPoint lhs(lhs_value), rhs(rhs_value); - - if (lhs.AlmostEquals(rhs)) { - return AssertionSuccess(); - } - - ::std::stringstream lhs_ss; - lhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << lhs_value; - - ::std::stringstream rhs_ss; - rhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << rhs_value; - - return EqFailure(lhs_expression, - rhs_expression, - StringStreamToString(&lhs_ss), - StringStreamToString(&rhs_ss), - false); -} - -// Helper function for implementing ASSERT_NEAR. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1, - const char* expr2, - const char* abs_error_expr, - double val1, - double val2, - double abs_error); - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// A class that enables one to stream messages to assertion macros -class GTEST_API_ AssertHelper { - public: - // Constructor. - AssertHelper(TestPartResult::Type type, - const char* file, - int line, - const char* message); - ~AssertHelper(); - - // Message assignment is a semantic trick to enable assertion - // streaming; see the GTEST_MESSAGE_ macro below. - void operator=(const Message& message) const; - - private: - // We put our data in a struct so that the size of the AssertHelper class can - // be as small as possible. This is important because gcc is incapable of - // re-using stack space even for temporary variables, so every EXPECT_EQ - // reserves stack space for another AssertHelper. - struct AssertHelperData { - AssertHelperData(TestPartResult::Type t, - const char* srcfile, - int line_num, - const char* msg) - : type(t), file(srcfile), line(line_num), message(msg) { } - - TestPartResult::Type const type; - const char* const file; - int const line; - std::string const message; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData); - }; - - AssertHelperData* const data_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper); -}; - -enum GTestColor { COLOR_DEFAULT, COLOR_RED, COLOR_GREEN, COLOR_YELLOW }; - -GTEST_API_ GTEST_ATTRIBUTE_PRINTF_(2, 3) void ColoredPrintf(GTestColor color, - const char* fmt, - ...); - -} // namespace internal - -// The pure interface class that all value-parameterized tests inherit from. -// A value-parameterized class must inherit from both ::testing::Test and -// ::testing::WithParamInterface. In most cases that just means inheriting -// from ::testing::TestWithParam, but more complicated test hierarchies -// may need to inherit from Test and WithParamInterface at different levels. -// -// This interface has support for accessing the test parameter value via -// the GetParam() method. -// -// Use it with one of the parameter generator defining functions, like Range(), -// Values(), ValuesIn(), Bool(), and Combine(). -// -// class FooTest : public ::testing::TestWithParam { -// protected: -// FooTest() { -// // Can use GetParam() here. -// } -// ~FooTest() override { -// // Can use GetParam() here. -// } -// void SetUp() override { -// // Can use GetParam() here. -// } -// void TearDown override { -// // Can use GetParam() here. -// } -// }; -// TEST_P(FooTest, DoesBar) { -// // Can use GetParam() method here. -// Foo foo; -// ASSERT_TRUE(foo.DoesBar(GetParam())); -// } -// INSTANTIATE_TEST_SUITE_P(OneToTenRange, FooTest, ::testing::Range(1, 10)); - -template -class WithParamInterface { - public: - typedef T ParamType; - virtual ~WithParamInterface() {} - - // The current parameter value. Is also available in the test fixture's - // constructor. - static const ParamType& GetParam() { - GTEST_CHECK_(parameter_ != nullptr) - << "GetParam() can only be called inside a value-parameterized test " - << "-- did you intend to write TEST_P instead of TEST_F?"; - return *parameter_; - } - - private: - // Sets parameter value. The caller is responsible for making sure the value - // remains alive and unchanged throughout the current test. - static void SetParam(const ParamType* parameter) { - parameter_ = parameter; - } - - // Static value used for accessing parameter during a test lifetime. - static const ParamType* parameter_; - - // TestClass must be a subclass of WithParamInterface and Test. - template friend class internal::ParameterizedTestFactory; -}; - -template -const T* WithParamInterface::parameter_ = nullptr; - -// Most value-parameterized classes can ignore the existence of -// WithParamInterface, and can just inherit from ::testing::TestWithParam. - -template -class TestWithParam : public Test, public WithParamInterface { -}; - -// Macros for indicating success/failure in test code. - -// Skips test in runtime. -// Skipping test aborts current function. -// Skipped tests are neither successful nor failed. -#define GTEST_SKIP() GTEST_SKIP_("Skipped") - -// ADD_FAILURE unconditionally adds a failure to the current test. -// SUCCEED generates a success - it doesn't automatically make the -// current test successful, as a test is only successful when it has -// no failure. -// -// EXPECT_* verifies that a certain condition is satisfied. If not, -// it behaves like ADD_FAILURE. In particular: -// -// EXPECT_TRUE verifies that a Boolean condition is true. -// EXPECT_FALSE verifies that a Boolean condition is false. -// -// FAIL and ASSERT_* are similar to ADD_FAILURE and EXPECT_*, except -// that they will also abort the current function on failure. People -// usually want the fail-fast behavior of FAIL and ASSERT_*, but those -// writing data-driven tests often find themselves using ADD_FAILURE -// and EXPECT_* more. - -// Generates a nonfatal failure with a generic message. -#define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") - -// Generates a nonfatal failure at the given source file location with -// a generic message. -#define ADD_FAILURE_AT(file, line) \ - GTEST_MESSAGE_AT_(file, line, "Failed", \ - ::testing::TestPartResult::kNonFatalFailure) - -// Generates a fatal failure with a generic message. -#define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") - -// Define this macro to 1 to omit the definition of FAIL(), which is a -// generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_FAIL -# define FAIL() GTEST_FAIL() -#endif - -// Generates a success with a generic message. -#define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") - -// Define this macro to 1 to omit the definition of SUCCEED(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_SUCCEED -# define SUCCEED() GTEST_SUCCEED() -#endif - -// Macros for testing exceptions. -// -// * {ASSERT|EXPECT}_THROW(statement, expected_exception): -// Tests that the statement throws the expected exception. -// * {ASSERT|EXPECT}_NO_THROW(statement): -// Tests that the statement doesn't throw any exception. -// * {ASSERT|EXPECT}_ANY_THROW(statement): -// Tests that the statement throws an exception. - -#define EXPECT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) -#define EXPECT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define EXPECT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define ASSERT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) -#define ASSERT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) -#define ASSERT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) - -// Boolean assertions. Condition can be either a Boolean expression or an -// AssertionResult. For more information on how to use AssertionResult with -// these macros see comments on that class. -#define EXPECT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ - GTEST_NONFATAL_FAILURE_) -#define EXPECT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_NONFATAL_FAILURE_) -#define ASSERT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ - GTEST_FATAL_FAILURE_) -#define ASSERT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_FATAL_FAILURE_) - -// Macros for testing equalities and inequalities. -// -// * {ASSERT|EXPECT}_EQ(v1, v2): Tests that v1 == v2 -// * {ASSERT|EXPECT}_NE(v1, v2): Tests that v1 != v2 -// * {ASSERT|EXPECT}_LT(v1, v2): Tests that v1 < v2 -// * {ASSERT|EXPECT}_LE(v1, v2): Tests that v1 <= v2 -// * {ASSERT|EXPECT}_GT(v1, v2): Tests that v1 > v2 -// * {ASSERT|EXPECT}_GE(v1, v2): Tests that v1 >= v2 -// -// When they are not, Google Test prints both the tested expressions and -// their actual values. The values must be compatible built-in types, -// or you will get a compiler error. By "compatible" we mean that the -// values can be compared by the respective operator. -// -// Note: -// -// 1. It is possible to make a user-defined type work with -// {ASSERT|EXPECT}_??(), but that requires overloading the -// comparison operators and is thus discouraged by the Google C++ -// Usage Guide. Therefore, you are advised to use the -// {ASSERT|EXPECT}_TRUE() macro to assert that two objects are -// equal. -// -// 2. The {ASSERT|EXPECT}_??() macros do pointer comparisons on -// pointers (in particular, C strings). Therefore, if you use it -// with two C strings, you are testing how their locations in memory -// are related, not how their content is related. To compare two C -// strings by content, use {ASSERT|EXPECT}_STR*(). -// -// 3. {ASSERT|EXPECT}_EQ(v1, v2) is preferred to -// {ASSERT|EXPECT}_TRUE(v1 == v2), as the former tells you -// what the actual value is when it fails, and similarly for the -// other comparisons. -// -// 4. Do not depend on the order in which {ASSERT|EXPECT}_??() -// evaluate their arguments, which is undefined. -// -// 5. These macros evaluate their arguments exactly once. -// -// Examples: -// -// EXPECT_NE(Foo(), 5); -// EXPECT_EQ(a_pointer, NULL); -// ASSERT_LT(i, array_size); -// ASSERT_GT(records.size(), 0) << "There is no record left."; - -#define EXPECT_EQ(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define EXPECT_NE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define EXPECT_LE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define EXPECT_LT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define EXPECT_GE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define EXPECT_GT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -#define GTEST_ASSERT_EQ(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define GTEST_ASSERT_NE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define GTEST_ASSERT_LE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define GTEST_ASSERT_LT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define GTEST_ASSERT_GE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define GTEST_ASSERT_GT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -// Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of -// ASSERT_XY(), which clashes with some users' own code. - -#if !GTEST_DONT_DEFINE_ASSERT_EQ -# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_NE -# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LE -# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LT -# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GE -# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GT -# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) -#endif - -// C-string Comparisons. All tests treat NULL and any non-NULL string -// as different. Two NULLs are equal. -// -// * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 -// * {ASSERT|EXPECT}_STRNE(s1, s2): Tests that s1 != s2 -// * {ASSERT|EXPECT}_STRCASEEQ(s1, s2): Tests that s1 == s2, ignoring case -// * {ASSERT|EXPECT}_STRCASENE(s1, s2): Tests that s1 != s2, ignoring case -// -// For wide or narrow string objects, you can use the -// {ASSERT|EXPECT}_??() macros. -// -// Don't depend on the order in which the arguments are evaluated, -// which is undefined. -// -// These macros evaluate their arguments exactly once. - -#define EXPECT_STREQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define EXPECT_STRNE(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define EXPECT_STRCASEEQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define EXPECT_STRCASENE(s1, s2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -#define ASSERT_STREQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define ASSERT_STRNE(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define ASSERT_STRCASEEQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define ASSERT_STRCASENE(s1, s2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -// Macros for comparing floating-point numbers. -// -// * {ASSERT|EXPECT}_FLOAT_EQ(val1, val2): -// Tests that two float values are almost equal. -// * {ASSERT|EXPECT}_DOUBLE_EQ(val1, val2): -// Tests that two double values are almost equal. -// * {ASSERT|EXPECT}_NEAR(v1, v2, abs_error): -// Tests that v1 and v2 are within the given distance to each other. -// -// Google Test uses ULP-based comparison to automatically pick a default -// error bound that is appropriate for the operands. See the -// FloatingPoint template class in gtest-internal.h if you are -// interested in the implementation details. - -#define EXPECT_FLOAT_EQ(val1, val2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_DOUBLE_EQ(val1, val2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_FLOAT_EQ(val1, val2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_DOUBLE_EQ(val1, val2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_NEAR(val1, val2, abs_error)\ - EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ - val1, val2, abs_error) - -#define ASSERT_NEAR(val1, val2, abs_error)\ - ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ - val1, val2, abs_error) - -// These predicate format functions work on floating-point values, and -// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g. -// -// EXPECT_PRED_FORMAT2(testing::DoubleLE, Foo(), 5.0); - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2, - float val1, float val2); -GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2, - double val1, double val2); - - -#if GTEST_OS_WINDOWS - -// Macros that test for HRESULT failure and success, these are only useful -// on Windows, and rely on Windows SDK macros and APIs to compile. -// -// * {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}(expr) -// -// When expr unexpectedly fails or succeeds, Google Test prints the -// expected result and the actual result with both a human-readable -// string representation of the error, if available, as well as the -// hex result code. -# define EXPECT_HRESULT_SUCCEEDED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -# define ASSERT_HRESULT_SUCCEEDED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -# define EXPECT_HRESULT_FAILED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -# define ASSERT_HRESULT_FAILED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -#endif // GTEST_OS_WINDOWS - -// Macros that execute statement and check that it doesn't generate new fatal -// failures in the current thread. -// -// * {ASSERT|EXPECT}_NO_FATAL_FAILURE(statement); -// -// Examples: -// -// EXPECT_NO_FATAL_FAILURE(Process()); -// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed"; -// -#define ASSERT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) -#define EXPECT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) - -// Causes a trace (including the given source file path and line number, -// and the given message) to be included in every test failure message generated -// by code in the scope of the lifetime of an instance of this class. The effect -// is undone with the destruction of the instance. -// -// The message argument can be anything streamable to std::ostream. -// -// Example: -// testing::ScopedTrace trace("file.cc", 123, "message"); -// -class GTEST_API_ ScopedTrace { - public: - // The c'tor pushes the given source file location and message onto - // a trace stack maintained by Google Test. - - // Template version. Uses Message() to convert the values into strings. - // Slow, but flexible. - template - ScopedTrace(const char* file, int line, const T& message) { - PushTrace(file, line, (Message() << message).GetString()); - } - - // Optimize for some known types. - ScopedTrace(const char* file, int line, const char* message) { - PushTrace(file, line, message ? message : "(null)"); - } - - ScopedTrace(const char* file, int line, const std::string& message) { - PushTrace(file, line, message); - } - - // The d'tor pops the info pushed by the c'tor. - // - // Note that the d'tor is not virtual in order to be efficient. - // Don't inherit from ScopedTrace! - ~ScopedTrace(); - - private: - void PushTrace(const char* file, int line, std::string message); - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace); -} GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its - // c'tor and d'tor. Therefore it doesn't - // need to be used otherwise. - -// Causes a trace (including the source file path, the current line -// number, and the given message) to be included in every test failure -// message generated by code in the current scope. The effect is -// undone when the control leaves the current scope. -// -// The message argument can be anything streamable to std::ostream. -// -// In the implementation, we include the current line number as part -// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s -// to appear in the same block - as long as they are on different -// lines. -// -// Assuming that each thread maintains its own stack of traces. -// Therefore, a SCOPED_TRACE() would (correctly) only affect the -// assertions in its own thread. -#define SCOPED_TRACE(message) \ - ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\ - __FILE__, __LINE__, (message)) - - -// Compile-time assertion for type equality. -// StaticAssertTypeEq() compiles iff type1 and type2 are -// the same type. The value it returns is not interesting. -// -// Instead of making StaticAssertTypeEq a class template, we make it a -// function template that invokes a helper class template. This -// prevents a user from misusing StaticAssertTypeEq by -// defining objects of that type. -// -// CAVEAT: -// -// When used inside a method of a class template, -// StaticAssertTypeEq() is effective ONLY IF the method is -// instantiated. For example, given: -// -// template class Foo { -// public: -// void Bar() { testing::StaticAssertTypeEq(); } -// }; -// -// the code: -// -// void Test1() { Foo foo; } -// -// will NOT generate a compiler error, as Foo::Bar() is never -// actually instantiated. Instead, you need: -// -// void Test2() { Foo foo; foo.Bar(); } -// -// to cause a compiler error. -template -bool StaticAssertTypeEq() { - (void)internal::StaticAssertTypeEqHelper(); - return true; -} - -// Defines a test. -// -// The first parameter is the name of the test suite, and the second -// parameter is the name of the test within the test suite. -// -// The convention is to end the test suite name with "Test". For -// example, a test suite for the Foo class can be named FooTest. -// -// Test code should appear between braces after an invocation of -// this macro. Example: -// -// TEST(FooTest, InitializesCorrectly) { -// Foo foo; -// EXPECT_TRUE(foo.StatusIsOK()); -// } - -// Note that we call GetTestTypeId() instead of GetTypeId< -// ::testing::Test>() here to get the type ID of testing::Test. This -// is to work around a suspected linker bug when using Google Test as -// a framework on Mac OS X. The bug causes GetTypeId< -// ::testing::Test>() to return different values depending on whether -// the call is from the Google Test framework itself or from user test -// code. GetTestTypeId() is guaranteed to always return the same -// value, as it always calls GetTypeId<>() from the Google Test -// framework. -#define GTEST_TEST(test_suite_name, test_name) \ - GTEST_TEST_(test_suite_name, test_name, ::testing::Test, \ - ::testing::internal::GetTestTypeId()) - -// Define this macro to 1 to omit the definition of TEST(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_TEST -#define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name) -#endif - -// Defines a test that uses a test fixture. -// -// The first parameter is the name of the test fixture class, which -// also doubles as the test suite name. The second parameter is the -// name of the test within the test suite. -// -// A test fixture class must be declared earlier. The user should put -// the test code between braces after using this macro. Example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { b_.AddElement(3); } -// -// Foo a_; -// Foo b_; -// }; -// -// TEST_F(FooTest, InitializesCorrectly) { -// EXPECT_TRUE(a_.StatusIsOK()); -// } -// -// TEST_F(FooTest, ReturnsElementCountCorrectly) { -// EXPECT_EQ(a_.size(), 0); -// EXPECT_EQ(b_.size(), 1); -// } -// -// GOOGLETEST_CM0011 DO NOT DELETE -#define TEST_F(test_fixture, test_name)\ - GTEST_TEST_(test_fixture, test_name, test_fixture, \ - ::testing::internal::GetTypeId()) - -// Returns a path to temporary directory. -// Tries to determine an appropriate directory for the platform. -GTEST_API_ std::string TempDir(); - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - -// Dynamically registers a test with the framework. -// -// This is an advanced API only to be used when the `TEST` macros are -// insufficient. The macros should be preferred when possible, as they avoid -// most of the complexity of calling this function. -// -// The `factory` argument is a factory callable (move-constructible) object or -// function pointer that creates a new instance of the Test object. It -// handles ownership to the caller. The signature of the callable is -// `Fixture*()`, where `Fixture` is the test fixture class for the test. All -// tests registered with the same `test_suite_name` must return the same -// fixture type. This is checked at runtime. -// -// The framework will infer the fixture class from the factory and will call -// the `SetUpTestSuite` and `TearDownTestSuite` for it. -// -// Must be called before `RUN_ALL_TESTS()` is invoked, otherwise behavior is -// undefined. -// -// Use case example: -// -// class MyFixture : public ::testing::Test { -// public: -// // All of these optional, just like in regular macro usage. -// static void SetUpTestSuite() { ... } -// static void TearDownTestSuite() { ... } -// void SetUp() override { ... } -// void TearDown() override { ... } -// }; -// -// class MyTest : public MyFixture { -// public: -// explicit MyTest(int data) : data_(data) {} -// void TestBody() override { ... } -// -// private: -// int data_; -// }; -// -// void RegisterMyTests(const std::vector& values) { -// for (int v : values) { -// ::testing::RegisterTest( -// "MyFixture", ("Test" + std::to_string(v)).c_str(), nullptr, -// std::to_string(v).c_str(), -// __FILE__, __LINE__, -// // Important to use the fixture type as the return type here. -// [=]() -> MyFixture* { return new MyTest(v); }); -// } -// } -// ... -// int main(int argc, char** argv) { -// std::vector values_to_test = LoadValuesFromConfig(); -// RegisterMyTests(values_to_test); -// ... -// return RUN_ALL_TESTS(); -// } -// -template -TestInfo* RegisterTest(const char* test_suite_name, const char* test_name, - const char* type_param, const char* value_param, - const char* file, int line, Factory factory) { - using TestT = typename std::remove_pointer::type; - - class FactoryImpl : public internal::TestFactoryBase { - public: - explicit FactoryImpl(Factory f) : factory_(std::move(f)) {} - Test* CreateTest() override { return factory_(); } - - private: - Factory factory_; - }; - - return internal::MakeAndRegisterTestInfo( - test_suite_name, test_name, type_param, value_param, - internal::CodeLocation(file, line), internal::GetTypeId(), - internal::SuiteApiResolver::GetSetUpCaseOrSuite(), - internal::SuiteApiResolver::GetTearDownCaseOrSuite(), - new FactoryImpl{std::move(factory)}); -} - -} // namespace testing - -// Use this function in main() to run all tests. It returns 0 if all -// tests are successful, or 1 otherwise. -// -// RUN_ALL_TESTS() should be invoked after the command line has been -// parsed by InitGoogleTest(). -// -// This function was formerly a macro; thus, it is in the global -// namespace and has an all-caps name. -int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; - -inline int RUN_ALL_TESTS() { - return ::testing::UnitTest::GetInstance()->Run(); -} - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_H_ diff --git a/test/cctest/test_base64.cc b/test/cctest/test_base64.cc index e92498da61b871..167e5e27bb05fe 100644 --- a/test/cctest/test_base64.cc +++ b/test/cctest/test_base64.cc @@ -44,6 +44,20 @@ TEST(Base64Test, Encode) { "IGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg=="); } +TEST(Base64Test, EncodeURL) { + auto test = [](const char* string, const char* base64_string) { + const size_t len = strlen(base64_string); + char* const buffer = new char[len + 1]; + buffer[len] = 0; + base64_encode(string, strlen(string), buffer, len, node::Base64Mode::URL); + EXPECT_STREQ(base64_string, buffer); + delete[] buffer; + }; + + test("\x68\xd9\x16\x25\x5c\x1e\x40\x92\x2d\xfb", "aNkWJVweQJIt-w"); + test("\xac\xc7\x93\xaa\x83\x6f\xc3\xe3\x3f\x75", "rMeTqoNvw-M_dQ"); +} + TEST(Base64Test, Decode) { auto test = [](const char* base64_string, const char* string) { const size_t len = strlen(string); @@ -75,6 +89,7 @@ TEST(Base64Test, Decode) { test("YWJj ZGVm", "abcdef"); test("Y W J j Z G V m", "abcdef"); test("Y W\n JjZ \nG Vm", "abcdef"); + test("rMeTqoNvw-M_dQ", "\xac\xc7\x93\xaa\x83\x6f\xc3\xe3\x3f\x75"); const char* text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " diff --git a/test/cctest/test_environment.cc b/test/cctest/test_environment.cc index 13316ceccb4d8a..0dc789b0a79914 100644 --- a/test/cctest/test_environment.cc +++ b/test/cctest/test_environment.cc @@ -627,6 +627,9 @@ TEST_F(NodeZeroIsolateTestFixture, CtrlCWithOnlySafeTerminationTest) { {}), node::FreeEnvironment}; CHECK(environment); + EXPECT_EQ(node::GetEnvironmentIsolateData(environment.get()), + isolate_data.get()); + EXPECT_EQ(node::GetArrayBufferAllocator(isolate_data.get()), nullptr); v8::Local main_ret = node::LoadEnvironment(environment.get(), diff --git a/test/cctest/test_js_native_api_v8.cc b/test/cctest/test_js_native_api_v8.cc new file mode 100644 index 00000000000000..2d95c86d09d5d5 --- /dev/null +++ b/test/cctest/test_js_native_api_v8.cc @@ -0,0 +1,102 @@ +#include +#include +#include +#include "env-inl.h" +#include "gtest/gtest.h" +#include "js_native_api_v8.h" +#include "node_api_internals.h" +#include "node_binding.h" +#include "node_test_fixture.h" + +namespace v8impl { + +using v8::Local; +using v8::Object; + +static napi_env addon_env; +static uint32_t finalizer_call_count = 0; + +class JsNativeApiV8Test : public EnvironmentTestFixture { + private: + void SetUp() override { + EnvironmentTestFixture::SetUp(); + finalizer_call_count = 0; + } + + void TearDown() override { NodeTestFixture::TearDown(); } +}; + +TEST_F(JsNativeApiV8Test, Reference) { + const v8::HandleScope handle_scope(isolate_); + Argv argv; + + napi_ref ref; + void* embedder_fields[v8::kEmbedderFieldsInWeakCallback] = {nullptr, nullptr}; + v8::WeakCallbackInfo::Callback + callback; + Reference::SecondPassCallParameterRef* parameter = nullptr; + + { + Env test_env{handle_scope, argv}; + + node::Environment* env = *test_env; + node::LoadEnvironment(env, ""); + + napi_addon_register_func init = [](napi_env env, napi_value exports) { + addon_env = env; + return exports; + }; + Local module_obj = Object::New(isolate_); + Local exports_obj = Object::New(isolate_); + napi_module_register_by_symbol( + exports_obj, module_obj, env->context(), init); + ASSERT_NE(addon_env, nullptr); + node_napi_env internal_env = reinterpret_cast(addon_env); + EXPECT_EQ(internal_env->node_env(), env); + + // Create a new scope to manage the handles. + { + const v8::HandleScope handle_scope(isolate_); + napi_value value; + napi_create_object(addon_env, &value); + // Create a weak reference; + napi_add_finalizer( + addon_env, + value, + nullptr, + [](napi_env env, void* finalize_data, void* finalize_hint) { + finalizer_call_count++; + }, + nullptr, + &ref); + parameter = reinterpret_cast(ref)->_secondPassParameter; + } + + // We can hardly trigger a non-forced Garbage Collection in a stable way. + // Here we just invoke the weak callbacks directly. + // The persistant handles should be reset in the weak callback in respect + // to the API contract of v8 weak callbacks. + v8::WeakCallbackInfo data( + reinterpret_cast(isolate_), + parameter, + embedder_fields, + &callback); + Reference::FinalizeCallback(data); + EXPECT_EQ(callback, &Reference::SecondPassCallback); + } + // Env goes out of scope, the environment has been teardown. All node-api ref + // trackers should have been destroyed. + + // Now we call the second pass callback to verify the method do not abort with + // memory violations. + v8::WeakCallbackInfo data( + reinterpret_cast(isolate_), + parameter, + embedder_fields, + nullptr); + Reference::SecondPassCallback(data); + + // After Environment Teardown + EXPECT_EQ(finalizer_call_count, uint32_t(1)); +} +} // namespace v8impl diff --git a/test/cctest/test_node_api.cc b/test/cctest/test_node_api.cc new file mode 100644 index 00000000000000..ad5be52fc8ffcc --- /dev/null +++ b/test/cctest/test_node_api.cc @@ -0,0 +1,41 @@ +#include +#include +#include +#include "env-inl.h" +#include "gtest/gtest.h" +#include "node_api_internals.h" +#include "node_binding.h" +#include "node_test_fixture.h" + +using v8::Local; +using v8::Object; + +static napi_env addon_env; + +class NodeApiTest : public EnvironmentTestFixture { + private: + void SetUp() override { EnvironmentTestFixture::SetUp(); } + + void TearDown() override { NodeTestFixture::TearDown(); } +}; + +TEST_F(NodeApiTest, CreateNodeApiEnv) { + const v8::HandleScope handle_scope(isolate_); + Argv argv; + + Env test_env{handle_scope, argv}; + + node::Environment* env = *test_env; + node::LoadEnvironment(env, ""); + + napi_addon_register_func init = [](napi_env env, napi_value exports) { + addon_env = env; + return exports; + }; + Local module_obj = Object::New(isolate_); + Local exports_obj = Object::New(isolate_); + napi_module_register_by_symbol(exports_obj, module_obj, env->context(), init); + ASSERT_NE(addon_env, nullptr); + node_napi_env internal_env = reinterpret_cast(addon_env); + EXPECT_EQ(internal_env->node_env(), env); +} diff --git a/test/cctest/test_sockaddr.cc b/test/cctest/test_sockaddr.cc index 8c23463f11d2d1..bd80d59f821e5d 100644 --- a/test/cctest/test_sockaddr.cc +++ b/test/cctest/test_sockaddr.cc @@ -2,6 +2,8 @@ #include "gtest/gtest.h" using node::SocketAddress; +using node::SocketAddressBlockList; +using node::SocketAddressLRU; TEST(SocketAddress, SocketAddress) { CHECK(SocketAddress::is_numeric_host("123.123.123.123")); @@ -55,3 +57,161 @@ TEST(SocketAddress, SocketAddressIPv6) { addr.set_flow_label(12345); CHECK_EQ(addr.flow_label(), 12345); } + +TEST(SocketAddressLRU, SocketAddressLRU) { + struct Foo { + int c; + bool expired; + }; + + struct FooLRUTraits { + using Type = Foo; + + static bool CheckExpired(const SocketAddress& address, const Type& type) { + return type.expired; + } + + static void Touch(const SocketAddress& address, Type* type) { + type->expired = false; + } + }; + + SocketAddressLRU lru(2); + + sockaddr_storage storage[4]; + + SocketAddress::ToSockAddr(AF_INET, "123.123.123.123", 443, &storage[0]); + SocketAddress::ToSockAddr(AF_INET, "123.123.123.124", 443, &storage[1]); + SocketAddress::ToSockAddr(AF_INET, "123.123.123.125", 443, &storage[2]); + SocketAddress::ToSockAddr(AF_INET, "123.123.123.123", 443, &storage[3]); + + + SocketAddress addr1(reinterpret_cast(&storage[0])); + SocketAddress addr2(reinterpret_cast(&storage[1])); + SocketAddress addr3(reinterpret_cast(&storage[2])); + SocketAddress addr4(reinterpret_cast(&storage[3])); + + Foo* foo = lru.Upsert(addr1); + CHECK_NOT_NULL(foo); + CHECK_EQ(foo->c, 0); + CHECK_EQ(foo->expired, false); + + foo->c = 1; + foo->expired = true; + + foo = lru.Upsert(addr1); + CHECK_NOT_NULL(lru.Peek(addr1)); + CHECK_EQ(lru.Peek(addr1), lru.Peek(addr4)); + CHECK_EQ(lru.Peek(addr1)->c, 1); + CHECK_EQ(lru.Peek(addr1)->expired, false); + CHECK_EQ(lru.size(), 1); + + foo = lru.Upsert(addr2); + foo->c = 2; + foo->expired = true; + CHECK_NOT_NULL(lru.Peek(addr2)); + CHECK_EQ(lru.Peek(addr2)->c, 2); + CHECK_EQ(lru.size(), 2); + + foo->expired = true; + + foo = lru.Upsert(addr3); + foo->c = 3; + foo->expired = false; + CHECK_NOT_NULL(lru.Peek(addr3)); + CHECK_EQ(lru.Peek(addr3)->c, 3); + CHECK_EQ(lru.size(), 1); + + // addr1 was removed because we exceeded size. + // addr2 was removed because it was expired. + CHECK_NULL(lru.Peek(addr1)); + CHECK_NULL(lru.Peek(addr2)); +} + +TEST(SocketAddress, Comparison) { + sockaddr_storage storage[6]; + + SocketAddress::ToSockAddr(AF_INET, "10.0.0.1", 0, &storage[0]); + SocketAddress::ToSockAddr(AF_INET, "10.0.0.2", 0, &storage[1]); + SocketAddress::ToSockAddr(AF_INET6, "::1", 0, &storage[2]); + SocketAddress::ToSockAddr(AF_INET6, "::2", 0, &storage[3]); + SocketAddress::ToSockAddr(AF_INET6, "::ffff:10.0.0.1", 0, &storage[4]); + SocketAddress::ToSockAddr(AF_INET6, "::ffff:10.0.0.2", 0, &storage[5]); + + SocketAddress addr1(reinterpret_cast(&storage[0])); + SocketAddress addr2(reinterpret_cast(&storage[1])); + SocketAddress addr3(reinterpret_cast(&storage[2])); + SocketAddress addr4(reinterpret_cast(&storage[3])); + SocketAddress addr5(reinterpret_cast(&storage[4])); + SocketAddress addr6(reinterpret_cast(&storage[5])); + + CHECK_EQ(addr1.compare(addr1), SocketAddress::CompareResult::SAME); + CHECK_EQ(addr1.compare(addr2), SocketAddress::CompareResult::LESS_THAN); + CHECK_EQ(addr2.compare(addr1), SocketAddress::CompareResult::GREATER_THAN); + CHECK(addr1 <= addr1); + CHECK(addr1 < addr2); + CHECK(addr1 <= addr2); + CHECK(addr2 >= addr2); + CHECK(addr2 > addr1); + CHECK(addr2 >= addr1); + + CHECK_EQ(addr3.compare(addr3), SocketAddress::CompareResult::SAME); + CHECK_EQ(addr3.compare(addr4), SocketAddress::CompareResult::LESS_THAN); + CHECK_EQ(addr4.compare(addr3), SocketAddress::CompareResult::GREATER_THAN); + CHECK(addr3 <= addr3); + CHECK(addr3 < addr4); + CHECK(addr3 <= addr4); + CHECK(addr4 >= addr4); + CHECK(addr4 > addr3); + CHECK(addr4 >= addr3); + + // Not comparable + CHECK_EQ(addr1.compare(addr3), SocketAddress::CompareResult::NOT_COMPARABLE); + CHECK_EQ(addr3.compare(addr1), SocketAddress::CompareResult::NOT_COMPARABLE); + CHECK(!(addr1 < addr3)); + CHECK(!(addr1 > addr3)); + CHECK(!(addr1 >= addr3)); + CHECK(!(addr1 <= addr3)); + CHECK(!(addr3 < addr1)); + CHECK(!(addr3 > addr1)); + CHECK(!(addr3 >= addr1)); + CHECK(!(addr3 <= addr1)); + + // Comparable + CHECK_EQ(addr1.compare(addr5), SocketAddress::CompareResult::SAME); + CHECK_EQ(addr2.compare(addr6), SocketAddress::CompareResult::SAME); + CHECK_EQ(addr1.compare(addr6), SocketAddress::CompareResult::LESS_THAN); + CHECK_EQ(addr6.compare(addr1), SocketAddress::CompareResult::GREATER_THAN); + CHECK(addr1 <= addr5); + CHECK(addr1 <= addr6); + CHECK(addr1 < addr6); + CHECK(addr6 > addr1); + CHECK(addr6 >= addr1); + CHECK(addr2 >= addr6); + CHECK(addr2 >= addr5); +} + +TEST(SocketAddressBlockList, Simple) { + SocketAddressBlockList bl; + + sockaddr_storage storage[2]; + SocketAddress::ToSockAddr(AF_INET, "10.0.0.1", 0, &storage[0]); + SocketAddress::ToSockAddr(AF_INET, "10.0.0.2", 0, &storage[1]); + std::shared_ptr addr1 = + std::make_shared( + reinterpret_cast(&storage[0])); + std::shared_ptr addr2 = + std::make_shared( + reinterpret_cast(&storage[1])); + + bl.AddSocketAddress(addr1); + bl.AddSocketAddress(addr2); + + CHECK(bl.Apply(addr1)); + CHECK(bl.Apply(addr2)); + + bl.RemoveSocketAddress(addr1); + + CHECK(!bl.Apply(addr1)); + CHECK(bl.Apply(addr2)); +} diff --git a/test/common/.eslintrc.yaml b/test/common/.eslintrc.yaml new file mode 100644 index 00000000000000..b3981bdd272eca --- /dev/null +++ b/test/common/.eslintrc.yaml @@ -0,0 +1,3 @@ +rules: + node-core/required-modules: off + node-core/require-common-first: off diff --git a/test/common/README.md b/test/common/README.md index a670e1327688a9..f961185f75e490 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -9,6 +9,7 @@ This directory contains modules used to test the Node.js implementation. * [Common module API](#common-module-api) * [Countdown module](#countdown-module) * [CPU Profiler module](#cpu-profiler-module) +* [Debugger module](#debugger-module) * [DNS module](#dns-module) * [Duplex pair helper](#duplex-pair-helper) * [Environment variables](#environment-variables) @@ -16,7 +17,6 @@ This directory contains modules used to test the Node.js implementation. * [Heap dump checker module](#heap-dump-checker-module) * [hijackstdio module](#hijackstdio-module) * [HTTP2 module](#http2-module) -* [Inspector CLI module](#inspector-cli-module) * [Internet module](#internet-module) * [ongc module](#ongc-module) * [Report module](#report-module) @@ -115,12 +115,12 @@ expectWarning('Warning', 'Foobar is really bad'); expectWarning('DeprecationWarning', 'Foobar is deprecated', 'DEP0XXX'); expectWarning('DeprecationWarning', [ - 'Foobar is deprecated', 'DEP0XXX' + 'Foobar is deprecated', 'DEP0XXX', ]); expectWarning('DeprecationWarning', [ ['Foobar is deprecated', 'DEP0XXX'], - ['Baz is also deprecated', 'DEP0XX2'] + ['Baz is also deprecated', 'DEP0XX2'], ]); expectWarning('DeprecationWarning', { @@ -135,7 +135,7 @@ expectWarning({ }, Warning: [ ['Multiple array entries are fine', 'SpecialWarningCode'], - ['No code is also fine'] + ['No code is also fine'], ], SingleEntry: ['This will also work', 'WarningCode'], SingleString: 'Single string entries without code will also work' @@ -513,6 +513,34 @@ Sampling interval in microseconds. Throws an `AssertionError` if there are no call frames with the expected `suffix` in the profiling data contained in `file`. +## Debugger module + +Provides common functionality for tests for `node inspect`. + +### `startCLI(args[[, flags], spawnOpts])` + +* `args` [<string>][] +* `flags` [<string>][] default = [] +* `showOpts` [<Object>][] default = {} +* return [<Object>][] + +Returns a null-prototype object with properties that are functions and getters +used to interact with the `node inspect` CLI. These functions are: + +* `flushOutput()` +* `waitFor()` +* `waitForPrompt()` +* `waitForInitialBreak()` +* `breakInfo` +* `ctrlC()` +* `output` +* `rawOutput` +* `parseSourceLines()` +* `writeLine()` +* `command()` +* `stepCommand()` +* `quit()` + ## `DNS` Module The `DNS` module provides utilities related to the `dns` built-in module. @@ -667,9 +695,9 @@ validateSnapshotNodes('TLSWRAP', [ children: [ { name: 'enc_out' }, { name: 'enc_in' }, - { name: 'TLSWrap' } + { name: 'TLSWrap' }, ] - } + }, ]); ``` @@ -831,34 +859,6 @@ upon initial establishment of a connection. socket.write(http2.kClientMagic); ``` -## Inspector CLI module - -Provides common functionality for tests for `node inspect`. - -### `startCLI(args[[, flags], spawnOpts])` - -* `args` [<string>][] -* `flags` [<string>][] default = [] -* `showOpts` [<Object>][] default = {} -* return [<Object>][] - -Returns a null-prototype object with properties that are functions and getters -used to interact with the `node inspect` CLI. These functions are: - -* `flushOutput()` -* `waitFor()` -* `waitForPrompt()` -* `waitForInitialBreak()` -* `breakInfo` -* `ctrlC()` -* `output` -* `rawOutput` -* `parseSourceLines()` -* `writeLine()` -* `command()` -* `stepCommand()` -* `quit()` - ## Internet Module The `common/internet` module provides utilities for working with diff --git a/test/common/arraystream.js b/test/common/arraystream.js index 408d57712c73ef..c9dae0512b52cc 100644 --- a/test/common/arraystream.js +++ b/test/common/arraystream.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const { Stream } = require('stream'); diff --git a/test/common/benchmark.js b/test/common/benchmark.js index 56351c92505efa..88c918766fd76c 100644 --- a/test/common/benchmark.js +++ b/test/common/benchmark.js @@ -1,5 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ - 'use strict'; const assert = require('assert'); diff --git a/test/common/countdown.js b/test/common/countdown.js index 31507b61257633..4aa86b42533903 100644 --- a/test/common/countdown.js +++ b/test/common/countdown.js @@ -1,5 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ - 'use strict'; const assert = require('assert'); diff --git a/test/common/cpu-prof.js b/test/common/cpu-prof.js index ae81eefd45c307..e4bba24037dff9 100644 --- a/test/common/cpu-prof.js +++ b/test/common/cpu-prof.js @@ -1,5 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ - 'use strict'; require('./'); diff --git a/test/common/inspector-cli.js b/test/common/debugger.js similarity index 93% rename from test/common/inspector-cli.js rename to test/common/debugger.js index 8511d579c52bab..63d66ba3a8f2c0 100644 --- a/test/common/inspector-cli.js +++ b/test/common/debugger.js @@ -23,10 +23,7 @@ function startCLI(args, flags = [], spawnOpts = {}) { if (this === child.stderr) { stderrOutput += chunk; } - // TODO(trott): Figure out why the "breakpoints restored." message appears - // in unpredictable places especially on AIX in CI. We shouldn't be - // excluding it, but it gets in the way of the output checking for tests. - outputBuffer.push(chunk.replace(/\n*\d+ breakpoints restored\.\n*/mg, '')); + outputBuffer.push(chunk); } function getOutput() { diff --git a/test/common/dns.js b/test/common/dns.js index 5d05cdc4b51027..70e171695ff20d 100644 --- a/test/common/dns.js +++ b/test/common/dns.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const assert = require('assert'); @@ -60,7 +59,7 @@ function parseDNSPacket(buffer) { ['questions', buffer.readUInt16BE(4)], ['answers', buffer.readUInt16BE(6)], ['authorityAnswers', buffer.readUInt16BE(8)], - ['additionalRecords', buffer.readUInt16BE(10)] + ['additionalRecords', buffer.readUInt16BE(10)], ]; let offset = 12; @@ -185,7 +184,7 @@ function writeDomainName(domain) { assert(label.length < 64); return Buffer.concat([ Buffer.from([label.length]), - Buffer.from(label, 'ascii') + Buffer.from(label, 'ascii'), ]); }).concat([Buffer.alloc(1)])); } @@ -208,7 +207,7 @@ function writeDNSPacket(parsed) { buffers.push(writeDomainName(q.domain)); buffers.push(new Uint16Array([ types[q.type], - q.cls === undefined ? classes.IN : q.cls + q.cls === undefined ? classes.IN : q.cls, ])); } @@ -221,7 +220,7 @@ function writeDNSPacket(parsed) { buffers.push(writeDomainName(rr.domain)); buffers.push(new Uint16Array([ types[rr.type], - rr.cls === undefined ? classes.IN : rr.cls + rr.cls === undefined ? classes.IN : rr.cls, ])); buffers.push(new Int32Array([rr.ttl])); @@ -266,7 +265,7 @@ function writeDNSPacket(parsed) { rdLengthBuf[0] = mname.length + rname.length + 20; buffers.push(mname, rname); buffers.push(new Uint32Array([ - rr.serial, rr.refresh, rr.retry, rr.expire, rr.minttl + rr.serial, rr.refresh, rr.retry, rr.expire, rr.minttl, ])); break; } diff --git a/test/common/duplexpair.js b/test/common/duplexpair.js index 4eb4f326f2d295..1f41ed32f1b9e9 100644 --- a/test/common/duplexpair.js +++ b/test/common/duplexpair.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const { Duplex } = require('stream'); const assert = require('assert'); diff --git a/test/common/fixtures.js b/test/common/fixtures.js index 2390ee8284e421..76e72a22ec9fec 100644 --- a/test/common/fixtures.js +++ b/test/common/fixtures.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const path = require('path'); diff --git a/test/common/fixtures.mjs b/test/common/fixtures.mjs index 3eeef6d6077c4a..06564de6fa3bb9 100644 --- a/test/common/fixtures.mjs +++ b/test/common/fixtures.mjs @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ import fixtures from './fixtures.js'; const { diff --git a/test/common/heap.js b/test/common/heap.js index a6232177ba9fd3..fa74e606f03ee0 100644 --- a/test/common/heap.js +++ b/test/common/heap.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const assert = require('assert'); const util = require('util'); diff --git a/test/common/hijackstdio.js b/test/common/hijackstdio.js index 6995f6665891d3..44e00ed0b11cc2 100644 --- a/test/common/hijackstdio.js +++ b/test/common/hijackstdio.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; // Hijack stdout and stderr diff --git a/test/common/http2.js b/test/common/http2.js index c4d430d1d93f98..baaed492e5a9a3 100644 --- a/test/common/http2.js +++ b/test/common/http2.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; // An HTTP/2 testing tool used to create mock frames for direct testing diff --git a/test/common/index.js b/test/common/index.js index 9d8ab9e188aa1e..32d44a0b12b3fb 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -19,7 +19,6 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -/* eslint-disable node-core/require-common-first, node-core/required-modules */ /* eslint-disable node-core/crypto-check */ 'use strict'; const process = global.process; // Some tests tamper with the process global. @@ -614,7 +613,7 @@ function getArrayBufferViews(buf) { Uint32Array, Float32Array, Float64Array, - DataView + DataView, ]; for (const type of arrayBufferViews) { diff --git a/test/common/index.mjs b/test/common/index.mjs index 4965eb16c8973a..a7fd6ed1bff098 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -1,5 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ - import { createRequire } from 'module'; const require = createRequire(import.meta.url); diff --git a/test/common/inspector-helper.js b/test/common/inspector-helper.js index 666624490e79a9..3ab4975ce09c30 100644 --- a/test/common/inspector-helper.js +++ b/test/common/inspector-helper.js @@ -515,7 +515,7 @@ function fires(promise, error, timeoutMs) { const timeout = timeoutPromise(error, timeoutMs); return Promise.race([ onResolvedOrRejected(promise, () => timeout.clear()), - timeout + timeout, ]); } diff --git a/test/common/internet.js b/test/common/internet.js index accea74969e276..227e979d3b8c75 100644 --- a/test/common/internet.js +++ b/test/common/internet.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; // Utilities for internet-related tests diff --git a/test/common/measure-memory.js b/test/common/measure-memory.js index 67c8fb3b9d2d67..a42f6344268d12 100644 --- a/test/common/measure-memory.js +++ b/test/common/measure-memory.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const assert = require('assert'); diff --git a/test/common/report.js b/test/common/report.js index f49493b443edea..b1d6b058172590 100644 --- a/test/common/report.js +++ b/test/common/report.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const assert = require('assert'); const fs = require('fs'); @@ -54,10 +53,10 @@ function validateContent(report, fields = []) { function _validateContent(report, fields = []) { const isWindows = process.platform === 'win32'; + const isJavaScriptThreadReport = report.javascriptStack != null; // Verify that all sections are present as own properties of the report. - const sections = ['header', 'javascriptStack', 'nativeStack', - 'javascriptHeap', 'libuv', 'environmentVariables', + const sections = ['header', 'nativeStack', 'libuv', 'environmentVariables', 'sharedObjects', 'resourceUsage', 'workers']; if (!isWindows) sections.push('userLimits'); @@ -65,6 +64,9 @@ function _validateContent(report, fields = []) { if (report.uvthreadResourceUsage) sections.push('uvthreadResourceUsage'); + if (isJavaScriptThreadReport) + sections.push('javascriptStack', 'javascriptHeap'); + checkForUnknownFields(report, sections); sections.forEach((section) => { assert(report.hasOwnProperty(section)); @@ -163,19 +165,6 @@ function _validateContent(report, fields = []) { }); assert.strictEqual(header.host, os.hostname()); - // Verify the format of the javascriptStack section. - checkForUnknownFields(report.javascriptStack, - ['message', 'stack', 'errorProperties']); - assert.strictEqual(typeof report.javascriptStack.errorProperties, - 'object'); - assert.strictEqual(typeof report.javascriptStack.message, 'string'); - if (report.javascriptStack.stack !== undefined) { - assert(Array.isArray(report.javascriptStack.stack)); - report.javascriptStack.stack.forEach((frame) => { - assert.strictEqual(typeof frame, 'string'); - }); - } - // Verify the format of the nativeStack section. assert(Array.isArray(report.nativeStack)); report.nativeStack.forEach((frame) => { @@ -186,26 +175,41 @@ function _validateContent(report, fields = []) { assert.strictEqual(typeof frame.symbol, 'string'); }); - // Verify the format of the javascriptHeap section. - const heap = report.javascriptHeap; - const jsHeapFields = ['totalMemory', 'totalCommittedMemory', 'usedMemory', - 'availableMemory', 'memoryLimit', '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)); - assert(typeof heap.heapSpaces === 'object' && heap.heapSpaces !== null); - const heapSpaceFields = ['memorySize', 'committedMemory', 'capacity', 'used', - 'available']; - Object.keys(heap.heapSpaces).forEach((spaceName) => { - const space = heap.heapSpaces[spaceName]; - checkForUnknownFields(space, heapSpaceFields); - heapSpaceFields.forEach((field) => { - assert(Number.isSafeInteger(space[field])); + if (isJavaScriptThreadReport) { + // Verify the format of the javascriptStack section. + checkForUnknownFields(report.javascriptStack, + ['message', 'stack', 'errorProperties']); + assert.strictEqual(typeof report.javascriptStack.errorProperties, + 'object'); + assert.strictEqual(typeof report.javascriptStack.message, 'string'); + if (report.javascriptStack.stack !== undefined) { + assert(Array.isArray(report.javascriptStack.stack)); + report.javascriptStack.stack.forEach((frame) => { + assert.strictEqual(typeof frame, 'string'); + }); + } + + // Verify the format of the javascriptHeap section. + const heap = report.javascriptHeap; + const jsHeapFields = ['totalMemory', 'totalCommittedMemory', 'usedMemory', + 'availableMemory', 'memoryLimit', '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)); + assert(typeof heap.heapSpaces === 'object' && heap.heapSpaces !== null); + const heapSpaceFields = ['memorySize', 'committedMemory', 'capacity', + 'used', 'available']; + Object.keys(heap.heapSpaces).forEach((spaceName) => { + const space = heap.heapSpaces[spaceName]; + checkForUnknownFields(space, heapSpaceFields); + heapSpaceFields.forEach((field) => { + assert(Number.isSafeInteger(space[field])); + }); }); - }); + } // Verify the format of the resourceUsage section. const usage = report.resourceUsage; diff --git a/test/common/require-as.js b/test/common/require-as.js index 7aba4fa6d825a2..9425404fa1416d 100644 --- a/test/common/require-as.js +++ b/test/common/require-as.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; if (require.main !== module) { diff --git a/test/common/tls.js b/test/common/tls.js index 5094755c240afd..2c91241c3b20b7 100644 --- a/test/common/tls.js +++ b/test/common/tls.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ /* eslint-disable node-core/crypto-check */ 'use strict'; @@ -44,7 +43,7 @@ class TestTLSSocket extends net.Socket { createClientHello() { const compressions = Buffer.from('0100', 'hex'); // null const msg = addHandshakeHeader(0x01, Buffer.concat([ - this.version, this.client_random, this.ciphers, compressions + this.version, this.client_random, this.ciphers, compressions, ])); this.emit('handshake', msg); return addRecordHeader(0x16, msg); diff --git a/test/common/tmpdir.js b/test/common/tmpdir.js index d911feb460a2f3..0bafea1582b38d 100644 --- a/test/common/tmpdir.js +++ b/test/common/tmpdir.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const fs = require('fs'); diff --git a/test/common/udppair.js b/test/common/udppair.js index a7e532a99778e9..6213f4becfd6aa 100644 --- a/test/common/udppair.js +++ b/test/common/udppair.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const { internalBinding } = require('internal/test/binding'); const { JSUDPWrap } = internalBinding('js_udp_wrap'); diff --git a/test/common/wpt.js b/test/common/wpt.js index 2c447a872b733b..c394b67e926335 100644 --- a/test/common/wpt.js +++ b/test/common/wpt.js @@ -1,4 +1,3 @@ -/* eslint-disable node-core/require-common-first, node-core/required-modules */ 'use strict'; const assert = require('assert'); diff --git a/test/common/wpt/worker.js b/test/common/wpt/worker.js index f0faeeba9e8062..9039dada35b699 100644 --- a/test/common/wpt/worker.js +++ b/test/common/wpt/worker.js @@ -1,5 +1,3 @@ -/* eslint-disable node-core/required-modules,node-core/require-common-first */ - 'use strict'; const { runInThisContext } = require('vm'); diff --git a/test/doctool/test-doctool-json.mjs b/test/doctool/test-doctool-json.mjs index a9875df242e474..d3badf84f553b2 100644 --- a/test/doctool/test-doctool-json.mjs +++ b/test/doctool/test-doctool-json.mjs @@ -71,7 +71,7 @@ const testData = [ name: 'array', type: 'Array' }] - } + }, ] }], type: 'module', @@ -113,7 +113,7 @@ const testData = [ { 'version': 'v4.2.0', 'pr-url': 'https://github.com/nodejs/node/pull/3276', 'description': 'The `error` parameter can now be ' + - 'an arrow function.' } + 'an arrow function.' }, ] }, desc: '

Describe Foobar II in more detail ' + @@ -141,11 +141,11 @@ const testData = [ 'Describe Something in more detail here.

', type: 'module', displayName: 'Something' - } + }, ], type: 'module', displayName: 'Sample Markdown with YAML info' - } + }, ] } }, @@ -162,7 +162,7 @@ const testData = [ { name: 'fullName', textRaw: '`Fqhqwhgads.fullName`' - } + }, ], classMethods: [ { @@ -170,18 +170,18 @@ const testData = [ signatures: [ { params: [] - } + }, ], textRaw: 'Static method: `Fhqwhgads.again()`', type: 'classMethod' - } + }, ], classes: [ { textRaw: 'Class: `ComeOn`', type: 'class', name: 'ComeOn' - } + }, ], ctors: [ { @@ -189,11 +189,11 @@ const testData = [ signatures: [ { params: [] - } + }, ], textRaw: 'Constructor: `new Fhqwhgads()`', type: 'ctor' - } + }, ], methods: [ { @@ -201,7 +201,7 @@ const testData = [ type: 'method', name: 'to', signatures: [{ params: [] }] - } + }, ], events: [ { @@ -209,14 +209,14 @@ const testData = [ type: 'event', name: 'FHQWHfest', params: [] - } + }, ], type: 'module', displayName: 'Fhqwhgads' - } + }, ] } - } + }, ]; testData.forEach((item) => { diff --git a/test/embedding/embedtest.cc b/test/embedding/embedtest.cc index 21baadf93e5a26..fece8924ad6471 100644 --- a/test/embedding/embedtest.cc +++ b/test/embedding/embedtest.cc @@ -110,12 +110,14 @@ int RunNodeInstance(MultiIsolatePlatform* platform, more = uv_loop_alive(&loop); if (more) continue; - node::EmitBeforeExit(env.get()); + if (node::EmitProcessBeforeExit(env.get()).IsNothing()) + break; + more = uv_loop_alive(&loop); } while (more == true); } - exit_code = node::EmitExit(env.get()); + exit_code = node::EmitProcessExit(env.get()).FromMaybe(1); node::Stop(env.get()); } diff --git a/test/es-module/test-esm-custom-exports.mjs b/test/es-module/test-esm-custom-exports.mjs index cf0557fa44215e..e6023387cf8afc 100644 --- a/test/es-module/test-esm-custom-exports.mjs +++ b/test/es-module/test-esm-custom-exports.mjs @@ -1,4 +1,4 @@ -// Flags: --conditions=custom-condition --conditions another +// Flags: --conditions=custom-condition -C another import { mustCall } from '../common/index.mjs'; import { strictEqual } from 'assert'; import { requireFixture, importFixture } from '../fixtures/pkgexports.mjs'; diff --git a/test/es-module/test-esm-data-urls.js b/test/es-module/test-esm-data-urls.js index eb2b65e9fb224a..ba8bd4c95746c0 100644 --- a/test/es-module/test-esm-data-urls.js +++ b/test/es-module/test-esm-data-urls.js @@ -102,4 +102,9 @@ function createBase64URL(mime, body) { assert.strictEqual(e.code, 'ERR_INVALID_MODULE_SPECIFIER'); } } + { + const plainESMURL = 'data:text/javascript,export%20default%202'; + const module = await import(plainESMURL); + assert.strictEqual(module.default, 2); + } })().then(common.mustCall()); diff --git a/test/es-module/test-esm-dynamic-import.js b/test/es-module/test-esm-dynamic-import.js index 6e64f86423c66b..3df2191e3ba06b 100644 --- a/test/es-module/test-esm-dynamic-import.js +++ b/test/es-module/test-esm-dynamic-import.js @@ -51,6 +51,8 @@ function expectFsNamespace(result) { expectModuleError(import('node:unknown'), 'ERR_UNKNOWN_BUILTIN_MODULE'); + expectModuleError(import('node:internal/test/binding'), + 'ERR_UNKNOWN_BUILTIN_MODULE'); expectModuleError(import('./not-an-existing-module.mjs'), 'ERR_MODULE_NOT_FOUND'); expectModuleError(import('http://example.com/foo.js'), diff --git a/test/es-module/test-esm-exports.mjs b/test/es-module/test-esm-exports.mjs index d234099732e3aa..f153b46e321638 100644 --- a/test/es-module/test-esm-exports.mjs +++ b/test/es-module/test-esm-exports.mjs @@ -35,7 +35,7 @@ import fromInside from '../fixtures/node_modules/pkgexports/lib/hole.js'; ['pkgexports-sugar', { default: 'main' }], // Path patterns ['pkgexports/subpath/sub-dir1', { default: 'main' }], - ['pkgexports/features/dir1', { default: 'main' }] + ['pkgexports/features/dir1', { default: 'main' }], ]); if (isRequire) { @@ -44,6 +44,11 @@ import fromInside from '../fixtures/node_modules/pkgexports/lib/hole.js'; validSpecifiers.set('pkgexports/subpath/dir1/', { default: 'main' }); validSpecifiers.set('pkgexports/subpath/dir2', { default: 'index' }); validSpecifiers.set('pkgexports/subpath/dir2/', { default: 'index' }); + } else { + // No exports or main field + validSpecifiers.set('no_exports', { default: 'index' }); + // Main field without extension + validSpecifiers.set('default_index', { default: 'main' }); } for (const [validSpecifier, expected] of validSpecifiers) { diff --git a/test/es-module/test-esm-import-meta-resolve.mjs b/test/es-module/test-esm-import-meta-resolve.mjs index 911225e13c9d66..1fac362172ae34 100644 --- a/test/es-module/test-esm-import-meta-resolve.mjs +++ b/test/es-module/test-esm-import-meta-resolve.mjs @@ -19,6 +19,19 @@ const fixtures = dirname.slice(0, dirname.lastIndexOf('/', dirname.length - 2) + 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(await import.meta.resolve('baz/', fixtures), fixtures + 'node_modules/baz/'); })().then(mustCall()); diff --git a/test/es-module/test-esm-json.mjs b/test/es-module/test-esm-json.mjs index ddcc7cb33e709f..df4f75fbd6e067 100644 --- a/test/es-module/test-esm-json.mjs +++ b/test/es-module/test-esm-json.mjs @@ -11,7 +11,7 @@ strictEqual(secret.ofLife, 42); // Test warning message const child = spawn(process.execPath, [ '--experimental-json-modules', - path('/es-modules/json-modules.mjs') + path('/es-modules/json-modules.mjs'), ]); let stderr = ''; diff --git a/test/es-module/test-esm-nowarn-exports.mjs b/test/es-module/test-esm-nowarn-exports.mjs index 5e0927f4674f84..57d5bc58c72356 100644 --- a/test/es-module/test-esm-nowarn-exports.mjs +++ b/test/es-module/test-esm-nowarn-exports.mjs @@ -5,7 +5,7 @@ import { spawn } from 'child_process'; const child = spawn(process.execPath, [ '--experimental-import-meta-resolve', - path('/es-modules/import-resolve-exports.mjs') + path('/es-modules/import-resolve-exports.mjs'), ]); let stderr = ''; diff --git a/test/es-module/test-esm-preserve-symlinks-main.js b/test/es-module/test-esm-preserve-symlinks-main.js index 877066a6a4548e..b8fb301e02d85b 100644 --- a/test/es-module/test-esm-preserve-symlinks-main.js +++ b/test/es-module/test-esm-preserve-symlinks-main.js @@ -42,7 +42,7 @@ function doTest(flags, done) { spawn(process.execPath, flags.concat([ '--preserve-symlinks', - '--preserve-symlinks-main', entry_link_absolute_path + '--preserve-symlinks-main', entry_link_absolute_path, ]), { stdio: 'inherit' }).on('exit', (code) => { assert.strictEqual(code, 0); diff --git a/test/es-module/test-esm-repl.js b/test/es-module/test-esm-repl.js index 653927b241694e..872d2c1f6ef8f4 100644 --- a/test/es-module/test-esm-repl.js +++ b/test/es-module/test-esm-repl.js @@ -4,7 +4,7 @@ const assert = require('assert'); const { spawn } = require('child_process'); const child = spawn(process.execPath, [ - '--interactive' + '--interactive', ]); child.stdin.end(` import('fs').then( diff --git a/test/es-module/test-esm-specifiers.mjs b/test/es-module/test-esm-specifiers.mjs index 8451a6a703bb65..bc6125f5f94ad9 100644 --- a/test/es-module/test-esm-specifiers.mjs +++ b/test/es-module/test-esm-specifiers.mjs @@ -51,7 +51,7 @@ main().catch(mustNotCall); ); [ '--experimental-specifier-resolution', - '--es-module-specifier-resolution' + '--es-module-specifier-resolution', ].forEach((option) => { spawn(process.execPath, [`${option}=node`, modulePath], diff --git a/test/es-module/test-esm-symlink-type.js b/test/es-module/test-esm-symlink-type.js index 1f46dce17f2e46..2537881f46c0e2 100644 --- a/test/es-module/test-esm-symlink-type.js +++ b/test/es-module/test-esm-symlink-type.js @@ -40,7 +40,7 @@ const symlinks = [ target: fixtures.path('es-modules/package-without-type/index.js'), prints: 'package-without-type', errorsWithPreserveSymlinksMain: false - } + }, ]; symlinks.forEach((symlink) => { @@ -49,7 +49,7 @@ symlinks.forEach((symlink) => { const flags = [ '', - '--preserve-symlinks-main' + '--preserve-symlinks-main', ]; flags.forEach((nodeOptions) => { const opts = { diff --git a/test/es-module/test-esm-wasm.mjs b/test/es-module/test-esm-wasm.mjs index b2218ce2f09893..877a841850dc4f 100644 --- a/test/es-module/test-esm-wasm.mjs +++ b/test/es-module/test-esm-wasm.mjs @@ -19,7 +19,7 @@ strictEqual(addImported(1), 43); // Test warning message const child = spawn(process.execPath, [ '--experimental-wasm-modules', - path('/es-modules/wasm-modules.mjs') + path('/es-modules/wasm-modules.mjs'), ]); let stderr = ''; diff --git a/test/fixtures/inspector-cli/alive.js b/test/fixtures/debugger/alive.js similarity index 100% rename from test/fixtures/inspector-cli/alive.js rename to test/fixtures/debugger/alive.js diff --git a/test/fixtures/inspector-cli/backtrace.js b/test/fixtures/debugger/backtrace.js similarity index 100% rename from test/fixtures/inspector-cli/backtrace.js rename to test/fixtures/debugger/backtrace.js diff --git a/test/fixtures/inspector-cli/break.js b/test/fixtures/debugger/break.js similarity index 100% rename from test/fixtures/inspector-cli/break.js rename to test/fixtures/debugger/break.js diff --git a/test/fixtures/inspector-cli/cjs/index.js b/test/fixtures/debugger/cjs/index.js similarity index 100% rename from test/fixtures/inspector-cli/cjs/index.js rename to test/fixtures/debugger/cjs/index.js diff --git a/test/fixtures/inspector-cli/cjs/other.js b/test/fixtures/debugger/cjs/other.js similarity index 100% rename from test/fixtures/inspector-cli/cjs/other.js rename to test/fixtures/debugger/cjs/other.js diff --git a/test/fixtures/inspector-cli/empty.js b/test/fixtures/debugger/empty.js similarity index 100% rename from test/fixtures/inspector-cli/empty.js rename to test/fixtures/debugger/empty.js diff --git a/test/fixtures/inspector-cli/exceptions.js b/test/fixtures/debugger/exceptions.js similarity index 100% rename from test/fixtures/inspector-cli/exceptions.js rename to test/fixtures/debugger/exceptions.js diff --git a/test/fixtures/inspector-cli/three-lines.js b/test/fixtures/debugger/three-lines.js similarity index 100% rename from test/fixtures/inspector-cli/three-lines.js rename to test/fixtures/debugger/three-lines.js diff --git a/test/fixtures/inspector-cli/use-strict.js b/test/fixtures/debugger/use-strict.js similarity index 100% rename from test/fixtures/inspector-cli/use-strict.js rename to test/fixtures/debugger/use-strict.js diff --git a/test/fixtures/node_modules/default_index/index.js b/test/fixtures/node_modules/default_index/index.js new file mode 100644 index 00000000000000..748e47637e97fa --- /dev/null +++ b/test/fixtures/node_modules/default_index/index.js @@ -0,0 +1 @@ +export default 'main' diff --git a/test/fixtures/node_modules/default_index/package.json b/test/fixtures/node_modules/default_index/package.json new file mode 100644 index 00000000000000..7665d7a8037428 --- /dev/null +++ b/test/fixtures/node_modules/default_index/package.json @@ -0,0 +1,4 @@ +{ + "main": "index", + "type": "module" +} diff --git a/test/fixtures/node_modules/no_exports/index.js b/test/fixtures/node_modules/no_exports/index.js new file mode 100644 index 00000000000000..8d97dd4b70ce59 --- /dev/null +++ b/test/fixtures/node_modules/no_exports/index.js @@ -0,0 +1 @@ +export default 'index' diff --git a/test/fixtures/node_modules/no_exports/package.json b/test/fixtures/node_modules/no_exports/package.json new file mode 100644 index 00000000000000..3dbc1ca591c055 --- /dev/null +++ b/test/fixtures/node_modules/no_exports/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/test/fixtures/policy/bad-main.mjs b/test/fixtures/policy/bad-main.mjs new file mode 100644 index 00000000000000..db1938ad7c2e87 --- /dev/null +++ b/test/fixtures/policy/bad-main.mjs @@ -0,0 +1 @@ +import {doesNotExist} from './dep.js'; diff --git a/test/fixtures/policy/canonicalize.mjs b/test/fixtures/policy/canonicalize.mjs new file mode 100644 index 00000000000000..64e7cd117ad7c0 --- /dev/null +++ b/test/fixtures/policy/canonicalize.mjs @@ -0,0 +1,5 @@ +import resolveAsFS from './dep.js'; +import fs from 'fs'; + +let correct = resolveAsFS === fs && typeof resolveAsFS === 'object'; +process.exit(correct ? 0 : 1); diff --git a/test/fixtures/policy/crypto-default-encoding/.gitattributes b/test/fixtures/policy/crypto-default-encoding/.gitattributes new file mode 100644 index 00000000000000..cbdcbbc258e6e7 --- /dev/null +++ b/test/fixtures/policy/crypto-default-encoding/.gitattributes @@ -0,0 +1 @@ +*.js text eol=lf diff --git a/test/fixtures/policy/crypto-default-encoding/dep.js b/test/fixtures/policy/crypto-default-encoding/dep.js new file mode 100644 index 00000000000000..d741da76db0076 --- /dev/null +++ b/test/fixtures/policy/crypto-default-encoding/dep.js @@ -0,0 +1,3 @@ +'use strict'; + +// No code. diff --git a/test/fixtures/policy/crypto-default-encoding/parent.js b/test/fixtures/policy/crypto-default-encoding/parent.js new file mode 100644 index 00000000000000..90ebde7e6535c0 --- /dev/null +++ b/test/fixtures/policy/crypto-default-encoding/parent.js @@ -0,0 +1,4 @@ +'use strict'; + +require('crypto').DEFAULT_ENCODING = process.env.DEFAULT_ENCODING; +require('./dep.js'); diff --git a/test/fixtures/policy/crypto-default-encoding/policy.json b/test/fixtures/policy/crypto-default-encoding/policy.json new file mode 100644 index 00000000000000..4cb485e1d9e2e4 --- /dev/null +++ b/test/fixtures/policy/crypto-default-encoding/policy.json @@ -0,0 +1,14 @@ +{ + "resources": { + "./parent.js": { + "integrity": "sha384-j4pMdq83q5Bq9+idcHuGKzi89FrYm1PhZYrEw3irbNob6g4i3vKBjfYiRNYwmoGr", + "dependencies": { + "crypto": true, + "./dep.js": true + } + }, + "./dep.js": { + "integrity": "sha384-VU7GIrTix/HFLhUb4yqsV4n1xXqjPcWw6kLvjuKXtR1+9nmufJu5vZLajBs8brIW" + } + } +} diff --git a/test/fixtures/policy/dependencies/dependencies-missing-export-policy.json b/test/fixtures/policy/dependencies/dependencies-missing-export-policy.json new file mode 100644 index 00000000000000..5da0de13920936 --- /dev/null +++ b/test/fixtures/policy/dependencies/dependencies-missing-export-policy.json @@ -0,0 +1,11 @@ +{ + "resources": { + "../bad-main.mjs": { + "integrity": true, + "dependencies": true + }, + "../dep.js": { + "integrity": true + } + } +} diff --git a/test/fixtures/policy/dependencies/dependencies-missing-policy-default-true.json b/test/fixtures/policy/dependencies/dependencies-missing-policy-default-true.json new file mode 100644 index 00000000000000..10ab862d2b0cc0 --- /dev/null +++ b/test/fixtures/policy/dependencies/dependencies-missing-policy-default-true.json @@ -0,0 +1,13 @@ +{ + "dependencies": true, + "resources": { + "../parent.js": { + "cascade": true, + "integrity": true + }, + "../dep.js": { + "cascade": true, + "integrity": true + } + } +} \ No newline at end of file diff --git a/test/fixtures/policy/dependencies/dependencies-redirect-builtin-policy.json b/test/fixtures/policy/dependencies/dependencies-redirect-builtin-policy.json index 437228a2e50277..7d2715f96a5092 100644 --- a/test/fixtures/policy/dependencies/dependencies-redirect-builtin-policy.json +++ b/test/fixtures/policy/dependencies/dependencies-redirect-builtin-policy.json @@ -3,7 +3,7 @@ "../parent.js": { "integrity": true, "dependencies": { - "./dep.js": "node:util" + "../dep.js": "node:util" } } } diff --git a/test/fixtures/policy/dependencies/dependencies-redirect-policy.json b/test/fixtures/policy/dependencies/dependencies-redirect-policy.json index 993a683f10a38f..c5b73403d5f864 100644 --- a/test/fixtures/policy/dependencies/dependencies-redirect-policy.json +++ b/test/fixtures/policy/dependencies/dependencies-redirect-policy.json @@ -3,7 +3,7 @@ "../parent.js": { "integrity": true, "dependencies": { - "./dep.js": "../dep.js" + "../dep.js": "../dep.js" } }, "../dep.js": { diff --git a/test/fixtures/policy/dependencies/dependencies-redirect-unknown-builtin-policy.json b/test/fixtures/policy/dependencies/dependencies-redirect-unknown-builtin-policy.json index db2046c6d36f07..a2bcb2676223d3 100644 --- a/test/fixtures/policy/dependencies/dependencies-redirect-unknown-builtin-policy.json +++ b/test/fixtures/policy/dependencies/dependencies-redirect-unknown-builtin-policy.json @@ -3,7 +3,7 @@ "../parent.js": { "integrity": true, "dependencies": { - "./dep.js": "node:404" + "../dep.js": "node:404" } } } diff --git a/test/fixtures/policy/dependencies/dependencies-scopes-relative-specifier.json b/test/fixtures/policy/dependencies/dependencies-scopes-relative-specifier.json new file mode 100644 index 00000000000000..7ce0b0262e48a8 --- /dev/null +++ b/test/fixtures/policy/dependencies/dependencies-scopes-relative-specifier.json @@ -0,0 +1,12 @@ +{ + "scopes": { + "file:": { + "integrity": true, + "cascade": true, + "dependencies": { + "fs": "node:fs", + "../dep.js": "node:fs" + } + } + } +} diff --git a/test/fixtures/source-map/esm-export-missing-module.mjs b/test/fixtures/source-map/esm-export-missing-module.mjs new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/source-map/esm-export-missing-module.mjs.map b/test/fixtures/source-map/esm-export-missing-module.mjs.map new file mode 100644 index 00000000000000..17417c928dc04d --- /dev/null +++ b/test/fixtures/source-map/esm-export-missing-module.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"esm-export-missing-module.esm","sourceRoot":"","sources":["./exm-export-missing-module.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS;AAEzB,CAAC"} \ No newline at end of file diff --git a/test/fixtures/source-map/esm-export-missing.mjs b/test/fixtures/source-map/esm-export-missing.mjs new file mode 100644 index 00000000000000..4bda755a86b389 --- /dev/null +++ b/test/fixtures/source-map/esm-export-missing.mjs @@ -0,0 +1,2 @@ +import { Something } from './esm-export-missing-module.mjs'; +//# sourceMappingURL=esm-export-missing.mjs.map diff --git a/test/fixtures/source-map/esm-export-missing.mjs.map b/test/fixtures/source-map/esm-export-missing.mjs.map new file mode 100644 index 00000000000000..2d1d482dc97083 --- /dev/null +++ b/test/fixtures/source-map/esm-export-missing.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"esm-export-missing.ts","sourceRoot":"","sources":["./esm-export-missing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC"} \ No newline at end of file diff --git a/test/fixtures/source-map/esm-export-missing.ts b/test/fixtures/source-map/esm-export-missing.ts new file mode 100644 index 00000000000000..14797c69feaebc --- /dev/null +++ b/test/fixtures/source-map/esm-export-missing.ts @@ -0,0 +1,3 @@ + +import { Something } from './exm-export-missing-module.mjs'; +console.info(Something); diff --git a/test/fixtures/test-resolution-inspect-brk-resolver.js b/test/fixtures/test-resolution-inspect-brk-resolver.js index fdfb5ca5b170c2..b5569e69fcf698 100644 --- a/test/fixtures/test-resolution-inspect-brk-resolver.js +++ b/test/fixtures/test-resolution-inspect-brk-resolver.js @@ -1,5 +1,4 @@ 'use strict'; -// eslint-disable-next-line no-unused-vars const common = require('../common'); require.extensions['.ext'] = require.extensions['.js']; diff --git a/test/fixtures/v8-coverage/interval.js b/test/fixtures/v8-coverage/interval.js new file mode 100644 index 00000000000000..8fb10cef64ddb8 --- /dev/null +++ b/test/fixtures/v8-coverage/interval.js @@ -0,0 +1,14 @@ +'use strict'; +let counter = 0; +let result; +const TEST_INTERVALS = parseInt(process.env.TEST_INTERVALS) || 1; + +const i = setInterval(function interval() { + counter++; + if (counter < TEST_INTERVALS) { + result = 1; + } else { + result = process.hrtime(); + clearInterval(i); + } +}, 100); diff --git a/test/fixtures/v8-coverage/stop-coverage.js b/test/fixtures/v8-coverage/stop-coverage.js new file mode 100644 index 00000000000000..dadfd1900bdd78 --- /dev/null +++ b/test/fixtures/v8-coverage/stop-coverage.js @@ -0,0 +1,3 @@ +'use strict'; +const v8 = require('v8'); +v8.stopCoverage(); diff --git a/test/fixtures/v8-coverage/take-coverage.js b/test/fixtures/v8-coverage/take-coverage.js new file mode 100644 index 00000000000000..766c1f400747a8 --- /dev/null +++ b/test/fixtures/v8-coverage/take-coverage.js @@ -0,0 +1,10 @@ +'use strict'; +const v8 = require('v8'); + +setTimeout(() => { + v8.takeCoverage(); +}, 1000); + +setTimeout(() => { + v8.takeCoverage(); +}, 2000); diff --git a/test/fixtures/workload/bounded.js b/test/fixtures/workload/bounded.js new file mode 100644 index 00000000000000..ddf288d034bd1a --- /dev/null +++ b/test/fixtures/workload/bounded.js @@ -0,0 +1,22 @@ +'use strict'; + +const total = parseInt(process.env.TEST_ALLOCATION) || 5000; +const chunk = parseInt(process.env.TEST_CHUNK) || 1000; +const cleanInterval = parseInt(process.env.TEST_CLEAN_INTERVAL) || 100; +let count = 0; +let arr = []; +function runAllocation() { + count++; + if (count < total) { + if (count % cleanInterval === 0) { + arr.splice(0, arr.length); + setImmediate(runAllocation); + } else { + const str = JSON.stringify(process.config).slice(0, chunk); + arr.push(str); + setImmediate(runAllocation); + } + } +} + +setImmediate(runAllocation); diff --git a/test/fixtures/workload/grow-worker.js b/test/fixtures/workload/grow-worker.js new file mode 100644 index 00000000000000..092d8f27751fc2 --- /dev/null +++ b/test/fixtures/workload/grow-worker.js @@ -0,0 +1,14 @@ +'use strict'; + +const { Worker } = require('worker_threads'); +const path = require('path'); +const max_snapshots = parseInt(process.env.TEST_SNAPSHOTS) || 1; +new Worker(path.join(__dirname, 'grow.js'), { + execArgv: [ + `--heapsnapshot-near-heap-limit=${max_snapshots}`, + ], + resourceLimits: { + maxOldGenerationSizeMb: + parseInt(process.env.TEST_OLD_SPACE_SIZE) || 20 + } +}); diff --git a/test/fixtures/workload/grow.js b/test/fixtures/workload/grow.js new file mode 100644 index 00000000000000..9ac0139b332b52 --- /dev/null +++ b/test/fixtures/workload/grow.js @@ -0,0 +1,12 @@ +'use strict'; + +const chunk = parseInt(process.env.TEST_CHUNK) || 1000; + +let arr = []; +function runAllocation() { + const str = JSON.stringify(process.config).slice(0, chunk); + arr.push(str); + setImmediate(runAllocation); +} + +setImmediate(runAllocation); diff --git a/test/fixtures/wpt/FileAPI/BlobURL/support/file_test2.txt b/test/fixtures/wpt/FileAPI/BlobURL/support/file_test2.txt new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/wpt/FileAPI/BlobURL/test2-manual.html b/test/fixtures/wpt/FileAPI/BlobURL/test2-manual.html new file mode 100644 index 00000000000000..07fb27ef8af10b --- /dev/null +++ b/test/fixtures/wpt/FileAPI/BlobURL/test2-manual.html @@ -0,0 +1,62 @@ + + + + + Blob and File reference URL Test(2) + + + + + + +
+
+
+ +
+

Test steps:

+
    +
  1. Download the file.
  2. +
  3. Select the file in the file inputbox.
  4. +
  5. Delete the file.
  6. +
  7. Click the 'start' button.
  8. +
+
+ +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/FileReader/progress_event_bubbles_cancelable.html b/test/fixtures/wpt/FileAPI/FileReader/progress_event_bubbles_cancelable.html new file mode 100644 index 00000000000000..6a03243f934081 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReader/progress_event_bubbles_cancelable.html @@ -0,0 +1,33 @@ + + +File API Test: Progress Event - bubbles, cancelable + + + + +
+ + diff --git a/test/fixtures/wpt/FileAPI/FileReader/support/file_test1.txt b/test/fixtures/wpt/FileAPI/FileReader/support/file_test1.txt new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/wpt/FileAPI/FileReader/test_errors-manual.html b/test/fixtures/wpt/FileAPI/FileReader/test_errors-manual.html new file mode 100644 index 00000000000000..b8c3f84d2bf23a --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReader/test_errors-manual.html @@ -0,0 +1,72 @@ + + + + + FileReader Errors Test + + + + + + +
+
+
+ +
+

Test steps:

+
    +
  1. Download the file.
  2. +
  3. Select the file in the file inputbox.
  4. +
  5. Delete the file.
  6. +
  7. Click the 'start' button.
  8. +
+
+ +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/FileReader/test_notreadableerrors-manual.html b/test/fixtures/wpt/FileAPI/FileReader/test_notreadableerrors-manual.html new file mode 100644 index 00000000000000..46d73598a0f91a --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReader/test_notreadableerrors-manual.html @@ -0,0 +1,42 @@ + + +FileReader NotReadableError Test + + + + +
+
+
+ +
+

Test steps:

+
    +
  1. Download the file.
  2. +
  3. Select the file in the file inputbox.
  4. +
  5. Delete the file's readable permission.
  6. +
  7. Click the 'start' button.
  8. +
+
+ + + diff --git a/test/fixtures/wpt/FileAPI/FileReader/test_securityerrors-manual.html b/test/fixtures/wpt/FileAPI/FileReader/test_securityerrors-manual.html new file mode 100644 index 00000000000000..add93ed69d139a --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReader/test_securityerrors-manual.html @@ -0,0 +1,40 @@ + + +FileReader SecurityError Test + + + + +
+
+
+ +
+

Test steps:

+
    +
  1. Select a system sensitive file (e.g. files in /usr/bin, password files, + and other native operating system executables) in the file inputbox.
  2. +
  3. Click the 'start' button.
  4. +
+
+ + diff --git a/test/fixtures/wpt/FileAPI/FileReader/workers.html b/test/fixtures/wpt/FileAPI/FileReader/workers.html new file mode 100644 index 00000000000000..8e114eeaf86ff5 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReader/workers.html @@ -0,0 +1,27 @@ + + + + + diff --git a/test/fixtures/wpt/FileAPI/FileReaderSync.worker.js b/test/fixtures/wpt/FileAPI/FileReaderSync.worker.js new file mode 100644 index 00000000000000..3d7a0222f31266 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/FileReaderSync.worker.js @@ -0,0 +1,56 @@ +importScripts("/resources/testharness.js"); + +var blob, empty_blob, readerSync; +setup(() => { + readerSync = new FileReaderSync(); + blob = new Blob(["test"]); + empty_blob = new Blob(); +}); + +test(() => { + assert_true(readerSync instanceof FileReaderSync); +}, "Interface"); + +test(() => { + var text = readerSync.readAsText(blob); + assert_equals(text, "test"); +}, "readAsText"); + +test(() => { + var text = readerSync.readAsText(empty_blob); + assert_equals(text, ""); +}, "readAsText with empty blob"); + +test(() => { + var data = readerSync.readAsDataURL(blob); + assert_equals(data.indexOf("data:"), 0); +}, "readAsDataURL"); + +test(() => { + var data = readerSync.readAsDataURL(empty_blob); + assert_equals(data.indexOf("data:"), 0); +}, "readAsDataURL with empty blob"); + +test(() => { + var data = readerSync.readAsBinaryString(blob); + assert_equals(data, "test"); +}, "readAsBinaryString"); + +test(() => { + var data = readerSync.readAsBinaryString(empty_blob); + assert_equals(data, ""); +}, "readAsBinaryString with empty blob"); + +test(() => { + var data = readerSync.readAsArrayBuffer(blob); + assert_true(data instanceof ArrayBuffer); + assert_equals(data.byteLength, "test".length); +}, "readAsArrayBuffer"); + +test(() => { + var data = readerSync.readAsArrayBuffer(empty_blob); + assert_true(data instanceof ArrayBuffer); + assert_equals(data.byteLength, 0); +}, "readAsArrayBuffer with empty blob"); + +done(); diff --git a/test/fixtures/wpt/FileAPI/META.yml b/test/fixtures/wpt/FileAPI/META.yml new file mode 100644 index 00000000000000..506a59fec1eb33 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/META.yml @@ -0,0 +1,6 @@ +spec: https://w3c.github.io/FileAPI/ +suggested_reviewers: + - inexorabletash + - zqzhang + - jdm + - mkruisselbrink diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-array-buffer.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-array-buffer.any.js new file mode 100644 index 00000000000000..2310646e5fdeab --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-array-buffer.any.js @@ -0,0 +1,45 @@ +// META: title=Blob Array Buffer +// META: script=../support/Blob.js +'use strict'; + +promise_test(async () => { + const input_arr = new TextEncoder().encode("PASS"); + const blob = new Blob([input_arr]); + const array_buffer = await blob.arrayBuffer(); + assert_true(array_buffer instanceof ArrayBuffer); + assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); +}, "Blob.arrayBuffer()") + +promise_test(async () => { + const input_arr = new TextEncoder().encode(""); + const blob = new Blob([input_arr]); + const array_buffer = await blob.arrayBuffer(); + assert_true(array_buffer instanceof ArrayBuffer); + assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); +}, "Blob.arrayBuffer() empty Blob data") + +promise_test(async () => { + const input_arr = new TextEncoder().encode("\u08B8\u000a"); + const blob = new Blob([input_arr]); + const array_buffer = await blob.arrayBuffer(); + assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); +}, "Blob.arrayBuffer() non-ascii input") + +promise_test(async () => { + const input_arr = [8, 241, 48, 123, 151]; + const typed_arr = new Uint8Array(input_arr); + const blob = new Blob([typed_arr]); + const array_buffer = await blob.arrayBuffer(); + assert_equals_typed_array(new Uint8Array(array_buffer), typed_arr); +}, "Blob.arrayBuffer() non-unicode input") + +promise_test(async () => { + const input_arr = new TextEncoder().encode("PASS"); + const blob = new Blob([input_arr]); + const array_buffer_results = await Promise.all([blob.arrayBuffer(), + blob.arrayBuffer(), blob.arrayBuffer()]); + for (let array_buffer of array_buffer_results) { + assert_true(array_buffer instanceof ArrayBuffer); + assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); + } +}, "Blob.arrayBuffer() concurrent reads") diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-constructor-dom.window.js b/test/fixtures/wpt/FileAPI/blob/Blob-constructor-dom.window.js new file mode 100644 index 00000000000000..4fd4a43ec4bea7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-constructor-dom.window.js @@ -0,0 +1,53 @@ +// META: title=Blob constructor +// META: script=../support/Blob.js +'use strict'; + +var test_error = { + name: "test", + message: "test error", +}; + +test(function() { + var args = [ + document.createElement("div"), + window, + ]; + args.forEach(function(arg) { + assert_throws_js(TypeError, function() { + new Blob(arg); + }, "Should throw for argument " + format_value(arg) + "."); + }); +}, "Passing platform objects for blobParts should throw a TypeError."); + +test(function() { + var element = document.createElement("div"); + element.appendChild(document.createElement("div")); + element.appendChild(document.createElement("p")); + var list = element.children; + Object.defineProperty(list, "length", { + get: function() { throw test_error; } + }); + assert_throws_exactly(test_error, function() { + new Blob(list); + }); +}, "A platform object that supports indexed properties should be treated as a sequence for the blobParts argument (overwritten 'length'.)"); + +test_blob(function() { + var select = document.createElement("select"); + select.appendChild(document.createElement("option")); + return new Blob(select); +}, { + expected: "[object HTMLOptionElement]", + type: "", + desc: "Passing an platform object that supports indexed properties as the blobParts array should work (select)." +}); + +test_blob(function() { + var elm = document.createElement("div"); + elm.setAttribute("foo", "bar"); + return new Blob(elm.attributes); +}, { + expected: "[object Attr]", + type: "", + desc: "Passing an platform object that supports indexed properties as the blobParts array should work (attributes)." +}); \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-constructor-endings.html b/test/fixtures/wpt/FileAPI/blob/Blob-constructor-endings.html new file mode 100644 index 00000000000000..04edd2a303b135 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-constructor-endings.html @@ -0,0 +1,104 @@ + + +Blob constructor: endings option + + + + diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-constructor.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-constructor.any.js new file mode 100644 index 00000000000000..6c34d7e34b93f9 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-constructor.any.js @@ -0,0 +1,459 @@ +// META: title=Blob constructor +// META: script=../support/Blob.js +'use strict'; + +test(function() { + assert_true("Blob" in globalThis, "globalThis should have a Blob property."); + assert_equals(Blob.length, 0, "Blob.length should be 0."); + assert_true(Blob instanceof Function, "Blob should be a function."); +}, "Blob interface object"); + +// Step 1. +test(function() { + var blob = new Blob(); + assert_true(blob instanceof Blob); + assert_equals(String(blob), '[object Blob]'); + assert_equals(blob.size, 0); + assert_equals(blob.type, ""); +}, "Blob constructor with no arguments"); +test(function() { + assert_throws_js(TypeError, function() { var blob = Blob(); }); +}, "Blob constructor with no arguments, without 'new'"); +test(function() { + var blob = new Blob; + assert_true(blob instanceof Blob); + assert_equals(blob.size, 0); + assert_equals(blob.type, ""); +}, "Blob constructor without brackets"); +test(function() { + var blob = new Blob(undefined); + assert_true(blob instanceof Blob); + assert_equals(String(blob), '[object Blob]'); + assert_equals(blob.size, 0); + assert_equals(blob.type, ""); +}, "Blob constructor with undefined as first argument"); + +// blobParts argument (WebIDL). +test(function() { + var args = [ + null, + true, + false, + 0, + 1, + 1.5, + "FAIL", + new Date(), + new RegExp(), + {}, + { 0: "FAIL", length: 1 }, + ]; + args.forEach(function(arg) { + assert_throws_js(TypeError, function() { + new Blob(arg); + }, "Should throw for argument " + format_value(arg) + "."); + }); +}, "Passing non-objects, Dates and RegExps for blobParts should throw a TypeError."); + +test_blob(function() { + return new Blob({ + [Symbol.iterator]: Array.prototype[Symbol.iterator], + }); +}, { + expected: "", + type: "", + desc: "A plain object with @@iterator should be treated as a sequence for the blobParts argument." +}); +test(t => { + const blob = new Blob({ + [Symbol.iterator]() { + var i = 0; + return {next: () => [ + {done:false, value:'ab'}, + {done:false, value:'cde'}, + {done:true} + ][i++] + }; + } + }); + assert_equals(blob.size, 5, 'Custom @@iterator should be treated as a sequence'); +}, "A plain object with custom @@iterator should be treated as a sequence for the blobParts argument."); +test_blob(function() { + return new Blob({ + [Symbol.iterator]: Array.prototype[Symbol.iterator], + 0: "PASS", + length: 1 + }); +}, { + expected: "PASS", + type: "", + desc: "A plain object with @@iterator and a length property should be treated as a sequence for the blobParts argument." +}); +test_blob(function() { + return new Blob(new String("xyz")); +}, { + expected: "xyz", + type: "", + desc: "A String object should be treated as a sequence for the blobParts argument." +}); +test_blob(function() { + return new Blob(new Uint8Array([1, 2, 3])); +}, { + expected: "123", + type: "", + desc: "A Uint8Array object should be treated as a sequence for the blobParts argument." +}); + +var test_error = { + name: "test", + message: "test error", +}; + +test(function() { + var obj = { + [Symbol.iterator]: Array.prototype[Symbol.iterator], + get length() { throw test_error; } + }; + assert_throws_exactly(test_error, function() { + new Blob(obj); + }); +}, "The length getter should be invoked and any exceptions should be propagated."); + +test(function() { + assert_throws_exactly(test_error, function() { + var obj = { + [Symbol.iterator]: Array.prototype[Symbol.iterator], + length: { + valueOf: null, + toString: function() { throw test_error; } + } + }; + new Blob(obj); + }); + assert_throws_exactly(test_error, function() { + var obj = { + [Symbol.iterator]: Array.prototype[Symbol.iterator], + length: { valueOf: function() { throw test_error; } } + }; + new Blob(obj); + }); +}, "ToUint32 should be applied to the length and any exceptions should be propagated."); + +test(function() { + var received = []; + var obj = { + get [Symbol.iterator]() { + received.push("Symbol.iterator"); + return Array.prototype[Symbol.iterator]; + }, + get length() { + received.push("length getter"); + return { + valueOf: function() { + received.push("length valueOf"); + return 3; + } + }; + }, + get 0() { + received.push("0 getter"); + return { + toString: function() { + received.push("0 toString"); + return "a"; + } + }; + }, + get 1() { + received.push("1 getter"); + throw test_error; + }, + get 2() { + received.push("2 getter"); + assert_unreached("Should not call the getter for 2 if the getter for 1 threw."); + } + }; + assert_throws_exactly(test_error, function() { + new Blob(obj); + }); + assert_array_equals(received, [ + "Symbol.iterator", + "length getter", + "length valueOf", + "0 getter", + "0 toString", + "length getter", + "length valueOf", + "1 getter", + ]); +}, "Getters and value conversions should happen in order until an exception is thrown."); + +// XXX should add tests edge cases of ToLength(length) + +test(function() { + assert_throws_exactly(test_error, function() { + new Blob([{ toString: function() { throw test_error; } }]); + }, "Throwing toString"); + assert_throws_exactly(test_error, function() { + new Blob([{ toString: undefined, valueOf: function() { throw test_error; } }]); + }, "Throwing valueOf"); + assert_throws_exactly(test_error, function() { + new Blob([{ + toString: function() { throw test_error; }, + valueOf: function() { assert_unreached("Should not call valueOf if toString is present."); } + }]); + }, "Throwing toString and valueOf"); + assert_throws_js(TypeError, function() { + new Blob([{toString: null, valueOf: null}]); + }, "Null toString and valueOf"); +}, "ToString should be called on elements of the blobParts array and any exceptions should be propagated."); + +test_blob(function() { + var arr = [ + { toString: function() { arr.pop(); return "PASS"; } }, + { toString: function() { assert_unreached("Should have removed the second element of the array rather than called toString() on it."); } } + ]; + return new Blob(arr); +}, { + expected: "PASS", + type: "", + desc: "Changes to the blobParts array should be reflected in the returned Blob (pop)." +}); + +test_blob(function() { + var arr = [ + { + toString: function() { + if (arr.length === 3) { + return "A"; + } + arr.unshift({ + toString: function() { + assert_unreached("Should only access index 0 once."); + } + }); + return "P"; + } + }, + { + toString: function() { + return "SS"; + } + } + ]; + return new Blob(arr); +}, { + expected: "PASS", + type: "", + desc: "Changes to the blobParts array should be reflected in the returned Blob (unshift)." +}); + +test_blob(function() { + // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17652 + return new Blob([ + null, + undefined, + true, + false, + 0, + 1, + new String("stringobject"), + [], + ['x', 'y'], + {}, + { 0: "FAIL", length: 1 }, + { toString: function() { return "stringA"; } }, + { toString: undefined, valueOf: function() { return "stringB"; } }, + { valueOf: function() { assert_unreached("Should not call valueOf if toString is present on the prototype."); } } + ]); +}, { + expected: "nullundefinedtruefalse01stringobjectx,y[object Object][object Object]stringAstringB[object Object]", + type: "", + desc: "ToString should be called on elements of the blobParts array." +}); + +test_blob(function() { + return new Blob([ + new ArrayBuffer(8) + ]); +}, { + expected: "\0\0\0\0\0\0\0\0", + type: "", + desc: "ArrayBuffer elements of the blobParts array should be supported." +}); + +test_blob(function() { + return new Blob([ + new Uint8Array([0x50, 0x41, 0x53, 0x53]), + new Int8Array([0x50, 0x41, 0x53, 0x53]), + new Uint16Array([0x4150, 0x5353]), + new Int16Array([0x4150, 0x5353]), + new Uint32Array([0x53534150]), + new Int32Array([0x53534150]), + new Float32Array([0xD341500000]) + ]); +}, { + expected: "PASSPASSPASSPASSPASSPASSPASS", + type: "", + desc: "Passing typed arrays as elements of the blobParts array should work." +}); +test_blob(function() { + return new Blob([ + // 0x535 3415053534150 + // 0x535 = 0b010100110101 -> Sign = +, Exponent = 1333 - 1023 = 310 + // 0x13415053534150 * 2**(-52) + // ==> 0x13415053534150 * 2**258 = 2510297372767036725005267563121821874921913208671273727396467555337665343087229079989707079680 + new Float64Array([2510297372767036725005267563121821874921913208671273727396467555337665343087229079989707079680]) + ]); +}, { + expected: "PASSPASS", + type: "", + desc: "Passing a Float64Array as element of the blobParts array should work." +}); + + + +var t_ports = async_test("Passing a FrozenArray as the blobParts array should work (FrozenArray)."); +t_ports.step(function() { + var channel = new MessageChannel(); + channel.port2.onmessage = this.step_func(function(e) { + var b_ports = new Blob(e.ports); + assert_equals(b_ports.size, "[object MessagePort]".length); + this.done(); + }); + var channel2 = new MessageChannel(); + channel.port1.postMessage('', [channel2.port1]); +}); + +test_blob(function() { + var blob = new Blob(['foo']); + return new Blob([blob, blob]); +}, { + expected: "foofoo", + type: "", + desc: "Array with two blobs" +}); + +test_blob_binary(function() { + var view = new Uint8Array([0, 255, 0]); + return new Blob([view.buffer, view.buffer]); +}, { + expected: [0, 255, 0, 0, 255, 0], + type: "", + desc: "Array with two buffers" +}); + +test_blob_binary(function() { + var view = new Uint8Array([0, 255, 0, 4]); + var blob = new Blob([view, view]); + assert_equals(blob.size, 8); + var view1 = new Uint16Array(view.buffer, 2); + return new Blob([view1, view.buffer, view1]); +}, { + expected: [0, 4, 0, 255, 0, 4, 0, 4], + type: "", + desc: "Array with two bufferviews" +}); + +test_blob(function() { + var view = new Uint8Array([0]); + var blob = new Blob(["fo"]); + return new Blob([view.buffer, blob, "foo"]); +}, { + expected: "\0fofoo", + type: "", + desc: "Array with mixed types" +}); + +test(function() { + const accessed = []; + const stringified = []; + + new Blob([], { + get type() { accessed.push('type'); }, + get endings() { accessed.push('endings'); } + }); + new Blob([], { + type: { toString: () => { stringified.push('type'); return ''; } }, + endings: { toString: () => { stringified.push('endings'); return 'transparent'; } } + }); + assert_array_equals(accessed, ['endings', 'type']); + assert_array_equals(stringified, ['endings', 'type']); +}, "options properties should be accessed in lexicographic order."); + +test(function() { + assert_throws_exactly(test_error, function() { + new Blob( + [{ toString: function() { throw test_error } }], + { + get type() { assert_unreached("type getter should not be called."); } + } + ); + }); +}, "Arguments should be evaluated from left to right."); + +[ + null, + undefined, + {}, + { unrecognized: true }, + /regex/, + function() {} +].forEach(function(arg, idx) { + test_blob(function() { + return new Blob([], arg); + }, { + expected: "", + type: "", + desc: "Passing " + format_value(arg) + " (index " + idx + ") for options should use the defaults." + }); + test_blob(function() { + return new Blob(["\na\r\nb\n\rc\r"], arg); + }, { + expected: "\na\r\nb\n\rc\r", + type: "", + desc: "Passing " + format_value(arg) + " (index " + idx + ") for options should use the defaults (with newlines)." + }); +}); + +[ + 123, + 123.4, + true, + 'abc' +].forEach(arg => { + test(t => { + assert_throws_js(TypeError, () => new Blob([], arg), + 'Blob constructor should throw with invalid property bag'); + }, `Passing ${JSON.stringify(arg)} for options should throw`); +}); + +var type_tests = [ + // blobParts, type, expected type + [[], '', ''], + [[], 'a', 'a'], + [[], 'A', 'a'], + [[], 'text/html', 'text/html'], + [[], 'TEXT/HTML', 'text/html'], + [[], 'text/plain;charset=utf-8', 'text/plain;charset=utf-8'], + [[], '\u00E5', ''], + [[], '\uD801\uDC7E', ''], // U+1047E + [[], ' image/gif ', ' image/gif '], + [[], '\timage/gif\t', ''], + [[], 'image/gif;\u007f', ''], + [[], '\u0130mage/gif', ''], // uppercase i with dot + [[], '\u0131mage/gif', ''], // lowercase dotless i + [[], 'image/gif\u0000', ''], + // check that type isn't changed based on sniffing + [[0x3C, 0x48, 0x54, 0x4D, 0x4C, 0x3E], 'unknown/unknown', 'unknown/unknown'], // "" + [[0x00, 0xFF], 'text/plain', 'text/plain'], + [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], 'image/png', 'image/png'], // "GIF89a" +]; + +type_tests.forEach(function(t) { + test(function() { + var arr = new Uint8Array([t[0]]).buffer; + var b = new Blob([arr], {type:t[1]}); + assert_equals(b.type, t[2]); + }, "Blob with type " + format_value(t[1])); +}); diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-constructor.html b/test/fixtures/wpt/FileAPI/blob/Blob-constructor.html new file mode 100644 index 00000000000000..62a649aed66418 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-constructor.html @@ -0,0 +1,501 @@ + + +Blob constructor + + + + + + + +
+ diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-in-worker.worker.js b/test/fixtures/wpt/FileAPI/blob/Blob-in-worker.worker.js new file mode 100644 index 00000000000000..a67060e7b85eff --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-in-worker.worker.js @@ -0,0 +1,14 @@ +importScripts("/resources/testharness.js"); + +async_test(function() { + var data = "TEST"; + var blob = new Blob([data], {type: "text/plain"}); + var reader = new FileReader(); + reader.onload = this.step_func_done(function() { + assert_equals(reader.result, data); + }); + reader.onerror = this.unreached_func("Unexpected error event"); + reader.readAsText(blob); +}, "Create Blob in Worker"); + +done(); diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.any.js new file mode 100644 index 00000000000000..388fd9282c94ab --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.any.js @@ -0,0 +1,32 @@ +// META: title=Blob slice overflow +'use strict'; + +var text = ''; + +for (var i = 0; i < 2000; ++i) { + text += 'A'; +} + +test(function() { + var blob = new Blob([text]); + var sliceBlob = blob.slice(-1, blob.size); + assert_equals(sliceBlob.size, 1, "Blob slice size"); +}, "slice start is negative, relativeStart will be max((size + start), 0)"); + +test(function() { + var blob = new Blob([text]); + var sliceBlob = blob.slice(blob.size + 1, blob.size); + assert_equals(sliceBlob.size, 0, "Blob slice size"); +}, "slice start is greater than blob size, relativeStart will be min(start, size)"); + +test(function() { + var blob = new Blob([text]); + var sliceBlob = blob.slice(blob.size - 2, -1); + assert_equals(sliceBlob.size, 1, "Blob slice size"); +}, "slice end is negative, relativeEnd will be max((size + end), 0)"); + +test(function() { + var blob = new Blob([text]); + var sliceBlob = blob.slice(blob.size - 2, blob.size + 999); + assert_equals(sliceBlob.size, 2, "Blob slice size"); +}, "slice end is greater than blob size, relativeEnd will be min(end, size)"); diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.html b/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.html new file mode 100644 index 00000000000000..74cd83a34f7116 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-slice-overflow.html @@ -0,0 +1,42 @@ + + +Blob slice overflow + + + + +
+ + diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-slice.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-slice.any.js new file mode 100644 index 00000000000000..1f85d44d269191 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-slice.any.js @@ -0,0 +1,231 @@ +// META: title=Blob slice +// META: script=../support/Blob.js +'use strict'; + +test_blob(function() { + var blobTemp = new Blob(["PASS"]); + return blobTemp.slice(); +}, { + expected: "PASS", + type: "", + desc: "no-argument Blob slice" +}); + +test(function() { + var blob1, blob2; + + test_blob(function() { + return blob1 = new Blob(["squiggle"]); + }, { + expected: "squiggle", + type: "", + desc: "blob1." + }); + + test_blob(function() { + return blob2 = new Blob(["steak"], {type: "content/type"}); + }, { + expected: "steak", + type: "content/type", + desc: "blob2." + }); + + test_blob(function() { + return new Blob().slice(0,0,null); + }, { + expected: "", + type: "null", + desc: "null type Blob slice" + }); + + test_blob(function() { + return new Blob().slice(0,0,undefined); + }, { + expected: "", + type: "", + desc: "undefined type Blob slice" + }); + + test_blob(function() { + return new Blob().slice(0,0); + }, { + expected: "", + type: "", + desc: "no type Blob slice" + }); + + var arrayBuffer = new ArrayBuffer(16); + var int8View = new Int8Array(arrayBuffer); + for (var i = 0; i < 16; i++) { + int8View[i] = i + 65; + } + + var testData = [ + [ + ["PASSSTRING"], + [{start: -6, contents: "STRING"}, + {start: -12, contents: "PASSSTRING"}, + {start: 4, contents: "STRING"}, + {start: 12, contents: ""}, + {start: 0, end: -6, contents: "PASS"}, + {start: 0, end: -12, contents: ""}, + {start: 0, end: 4, contents: "PASS"}, + {start: 0, end: 12, contents: "PASSSTRING"}, + {start: 7, end: 4, contents: ""}] + ], + + // Test 3 strings + [ + ["foo", "bar", "baz"], + [{start: 0, end: 9, contents: "foobarbaz"}, + {start: 0, end: 3, contents: "foo"}, + {start: 3, end: 9, contents: "barbaz"}, + {start: 6, end: 9, contents: "baz"}, + {start: 6, end: 12, contents: "baz"}, + {start: 0, end: 9, contents: "foobarbaz"}, + {start: 0, end: 11, contents: "foobarbaz"}, + {start: 10, end: 15, contents: ""}] + ], + + // Test string, Blob, string + [ + ["foo", blob1, "baz"], + [{start: 0, end: 3, contents: "foo"}, + {start: 3, end: 11, contents: "squiggle"}, + {start: 2, end: 4, contents: "os"}, + {start: 10, end: 12, contents: "eb"}] + ], + + // Test blob, string, blob + [ + [blob1, "foo", blob1], + [{start: 0, end: 8, contents: "squiggle"}, + {start: 7, end: 9, contents: "ef"}, + {start: 10, end: 12, contents: "os"}, + {start: 1, end: 4, contents: "qui"}, + {start: 12, end: 15, contents: "qui"}, + {start: 40, end: 60, contents: ""}] + ], + + // Test blobs all the way down + [ + [blob2, blob1, blob2], + [{start: 0, end: 5, contents: "steak"}, + {start: 5, end: 13, contents: "squiggle"}, + {start: 13, end: 18, contents: "steak"}, + {start: 1, end: 3, contents: "te"}, + {start: 6, end: 10, contents: "quig"}] + ], + + // Test an ArrayBufferView + [ + [int8View, blob1, "foo"], + [{start: 0, end: 8, contents: "ABCDEFGH"}, + {start: 8, end: 18, contents: "IJKLMNOPsq"}, + {start: 17, end: 20, contents: "qui"}, + {start: 4, end: 12, contents: "EFGHIJKL"}] + ], + + // Test a partial ArrayBufferView + [ + [new Uint8Array(arrayBuffer, 3, 5), blob1, "foo"], + [{start: 0, end: 8, contents: "DEFGHsqu"}, + {start: 8, end: 18, contents: "igglefoo"}, + {start: 4, end: 12, contents: "Hsquiggl"}] + ], + + // Test type coercion of a number + [ + [3, int8View, "foo"], + [{start: 0, end: 8, contents: "3ABCDEFG"}, + {start: 8, end: 18, contents: "HIJKLMNOPf"}, + {start: 17, end: 21, contents: "foo"}, + {start: 4, end: 12, contents: "DEFGHIJK"}] + ], + + [ + [(new Uint8Array([0, 255, 0])).buffer, + new Blob(['abcd']), + 'efgh', + 'ijklmnopqrstuvwxyz'], + [{start: 1, end: 4, contents: "\uFFFD\u0000a"}, + {start: 4, end: 8, contents: "bcde"}, + {start: 8, end: 12, contents: "fghi"}, + {start: 1, end: 12, contents: "\uFFFD\u0000abcdefghi"}] + ] + ]; + + testData.forEach(function(data, i) { + var blobs = data[0]; + var tests = data[1]; + tests.forEach(function(expectations, j) { + test(function() { + var blob = new Blob(blobs); + assert_true(blob instanceof Blob); + assert_false(blob instanceof File); + + test_blob(function() { + return expectations.end === undefined + ? blob.slice(expectations.start) + : blob.slice(expectations.start, expectations.end); + }, { + expected: expectations.contents, + type: "", + desc: "Slicing test: slice (" + i + "," + j + ")." + }); + }, "Slicing test (" + i + "," + j + ")."); + }); + }); +}, "Slices"); + +var invalidTypes = [ + "\xFF", + "te\x09xt/plain", + "te\x00xt/plain", + "te\x1Fxt/plain", + "te\x7Fxt/plain" +]; +invalidTypes.forEach(function(type) { + test_blob(function() { + var blob = new Blob(["PASS"]); + return blob.slice(0, 4, type); + }, { + expected: "PASS", + type: "", + desc: "Invalid contentType (" + format_value(type) + ")" + }); +}); + +var validTypes = [ + "te(xt/plain", + "te)xt/plain", + "text/plain", + "te@xt/plain", + "te,xt/plain", + "te;xt/plain", + "te:xt/plain", + "te\\xt/plain", + "te\"xt/plain", + "te/xt/plain", + "te[xt/plain", + "te]xt/plain", + "te?xt/plain", + "te=xt/plain", + "te{xt/plain", + "te}xt/plain", + "te\x20xt/plain", + "TEXT/PLAIN", + "text/plain;charset = UTF-8", + "text/plain;charset=UTF-8" +]; +validTypes.forEach(function(type) { + test_blob(function() { + var blob = new Blob(["PASS"]); + return blob.slice(0, 4, type); + }, { + expected: "PASS", + type: type.toLowerCase(), + desc: "Valid contentType (" + format_value(type) + ")" + }); +}); diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-slice.html b/test/fixtures/wpt/FileAPI/blob/Blob-slice.html new file mode 100644 index 00000000000000..03fe6ca5343bd1 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-slice.html @@ -0,0 +1,238 @@ + + +Blob slice + + + + + +
+ diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-stream.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-stream.any.js new file mode 100644 index 00000000000000..792b6639c35a26 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-stream.any.js @@ -0,0 +1,72 @@ +// META: title=Blob Stream +// META: script=../support/Blob.js +// META: script=../../streams/resources/test-utils.js +'use strict'; + +// Helper function that triggers garbage collection while reading a chunk +// if perform_gc is true. +async function read_and_gc(reader, perform_gc) { + const read_promise = reader.read(); + if (perform_gc) + garbageCollect(); + return read_promise; +} + +// Takes in a ReadableStream and reads from it until it is done, returning +// an array that contains the results of each read operation. If perform_gc +// is true, garbage collection is triggered while reading every chunk. +async function read_all_chunks(stream, perform_gc = false) { + assert_true(stream instanceof ReadableStream); + assert_true('getReader' in stream); + const reader = stream.getReader(); + + assert_true('read' in reader); + let read_value = await read_and_gc(reader, perform_gc); + + let out = []; + let i = 0; + while (!read_value.done) { + for (let val of read_value.value) { + out[i++] = val; + } + read_value = await read_and_gc(reader, perform_gc); + } + return out; +} + +promise_test(async () => { + const blob = new Blob(["PASS"]); + const stream = blob.stream(); + const chunks = await read_all_chunks(stream); + for (let [index, value] of chunks.entries()) { + assert_equals(value, "PASS".charCodeAt(index)); + } +}, "Blob.stream()") + +promise_test(async () => { + const blob = new Blob(); + const stream = blob.stream(); + const chunks = await read_all_chunks(stream); + assert_array_equals(chunks, []); +}, "Blob.stream() empty Blob") + +promise_test(async () => { + const input_arr = [8, 241, 48, 123, 151]; + const typed_arr = new Uint8Array(input_arr); + const blob = new Blob([typed_arr]); + const stream = blob.stream(); + const chunks = await read_all_chunks(stream); + assert_array_equals(chunks, input_arr); +}, "Blob.stream() non-unicode input") + +promise_test(async() => { + const input_arr = [8, 241, 48, 123, 151]; + const typed_arr = new Uint8Array(input_arr); + let blob = new Blob([typed_arr]); + const stream = blob.stream(); + blob = null; + garbageCollect(); + const chunks = await read_all_chunks(stream, /*perform_gc=*/true); + assert_array_equals(chunks, input_arr); +}, "Blob.stream() garbage collection of blob shouldn't break stream" + + "consumption") diff --git a/test/fixtures/wpt/FileAPI/blob/Blob-text.any.js b/test/fixtures/wpt/FileAPI/blob/Blob-text.any.js new file mode 100644 index 00000000000000..d04fa97cffe6a3 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/blob/Blob-text.any.js @@ -0,0 +1,64 @@ +// META: title=Blob Text +// META: script=../support/Blob.js +'use strict'; + +promise_test(async () => { + const blob = new Blob(["PASS"]); + const text = await blob.text(); + assert_equals(text, "PASS"); +}, "Blob.text()") + +promise_test(async () => { + const blob = new Blob(); + const text = await blob.text(); + assert_equals(text, ""); +}, "Blob.text() empty blob data") + +promise_test(async () => { + const blob = new Blob(["P", "A", "SS"]); + const text = await blob.text(); + assert_equals(text, "PASS"); +}, "Blob.text() multi-element array in constructor") + +promise_test(async () => { + const non_unicode = "\u0061\u030A"; + const input_arr = new TextEncoder().encode(non_unicode); + const blob = new Blob([input_arr]); + const text = await blob.text(); + assert_equals(text, non_unicode); +}, "Blob.text() non-unicode") + +promise_test(async () => { + const blob = new Blob(["PASS"], { type: "text/plain;charset=utf-16le" }); + const text = await blob.text(); + assert_equals(text, "PASS"); +}, "Blob.text() different charset param in type option") + +promise_test(async () => { + const non_unicode = "\u0061\u030A"; + const input_arr = new TextEncoder().encode(non_unicode); + const blob = new Blob([input_arr], { type: "text/plain;charset=utf-16le" }); + const text = await blob.text(); + assert_equals(text, non_unicode); +}, "Blob.text() different charset param with non-ascii input") + +promise_test(async () => { + const input_arr = new Uint8Array([192, 193, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255]); + const blob = new Blob([input_arr]); + const text = await blob.text(); + assert_equals(text, "\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd" + + "\ufffd\ufffd\ufffd\ufffd"); +}, "Blob.text() invalid utf-8 input") + +promise_test(async () => { + const input_arr = new Uint8Array([192, 193, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255]); + const blob = new Blob([input_arr]); + const text_results = await Promise.all([blob.text(), blob.text(), + blob.text()]); + for (let text of text_results) { + assert_equals(text, "\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd" + + "\ufffd\ufffd\ufffd\ufffd"); + } +}, "Blob.text() concurrent reads") diff --git a/test/fixtures/wpt/FileAPI/file/File-constructor-endings.html b/test/fixtures/wpt/FileAPI/file/File-constructor-endings.html new file mode 100644 index 00000000000000..1282b6c5ac2c79 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/File-constructor-endings.html @@ -0,0 +1,104 @@ + + +File constructor: endings option + + + + diff --git a/test/fixtures/wpt/FileAPI/file/File-constructor.html b/test/fixtures/wpt/FileAPI/file/File-constructor.html new file mode 100644 index 00000000000000..3477e4ada16e92 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/File-constructor.html @@ -0,0 +1,159 @@ + + +File constructor + + + +
+ diff --git a/test/fixtures/wpt/FileAPI/file/Worker-read-file-constructor.worker.js b/test/fixtures/wpt/FileAPI/file/Worker-read-file-constructor.worker.js new file mode 100644 index 00000000000000..4e003b3c958a94 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/Worker-read-file-constructor.worker.js @@ -0,0 +1,15 @@ +importScripts("/resources/testharness.js"); + +async_test(function() { + var file = new File(["bits"], "dummy", { 'type': 'text/plain', lastModified: 42 }); + var reader = new FileReader(); + reader.onload = this.step_func_done(function() { + assert_equals(file.name, "dummy", "file name"); + assert_equals(reader.result, "bits", "file content"); + assert_equals(file.lastModified, 42, "file lastModified"); + }); + reader.onerror = this.unreached_func("Unexpected error event"); + reader.readAsText(file); +}, "FileReader in Worker"); + +done(); diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-controls.html b/test/fixtures/wpt/FileAPI/file/send-file-form-controls.html new file mode 100644 index 00000000000000..6347065bcae14b --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-controls.html @@ -0,0 +1,113 @@ + + +Upload files named using controls + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-controls.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-form-controls.tentative.html new file mode 100644 index 00000000000000..d11f4a860931b4 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-controls.tentative.html @@ -0,0 +1,117 @@ + + +Upload files named using controls (tentative) + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.html b/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.html new file mode 100644 index 00000000000000..c931c9be3aba8c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.html @@ -0,0 +1,65 @@ + + + +Upload files in ISO-2022-JP form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.tentative.html new file mode 100644 index 00000000000000..659af3bde85852 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-iso-2022-jp.tentative.html @@ -0,0 +1,72 @@ + + + +Upload files in ISO-2022-JP form (tentative) + + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.html b/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.html new file mode 100644 index 00000000000000..a6568e2e56e4d5 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.html @@ -0,0 +1,226 @@ + + +Upload files named using punctuation + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.tentative.html new file mode 100644 index 00000000000000..5c2d6d0bf1fe01 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-punctuation.tentative.html @@ -0,0 +1,230 @@ + + +Upload files named using punctuation (tentative) + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-utf-8.html b/test/fixtures/wpt/FileAPI/file/send-file-form-utf-8.html new file mode 100644 index 00000000000000..1be44f4f4db09e --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-utf-8.html @@ -0,0 +1,62 @@ + + +Upload files in UTF-8 form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.html b/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.html new file mode 100644 index 00000000000000..21b219ffd2d066 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.html @@ -0,0 +1,62 @@ + + +Upload files in Windows-1252 form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.tentative.html new file mode 100644 index 00000000000000..a2c37186b3e023 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-windows-1252.tentative.html @@ -0,0 +1,69 @@ + + +Upload files in Windows-1252 form (tentative) + + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.html b/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.html new file mode 100644 index 00000000000000..8d6605d86deb1c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.html @@ -0,0 +1,63 @@ + + +Upload files in x-user-defined form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.tentative.html new file mode 100644 index 00000000000000..503b08a51706f7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form-x-user-defined.tentative.html @@ -0,0 +1,70 @@ + + +Upload files in x-user-defined form (tentative) + + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-form.html b/test/fixtures/wpt/FileAPI/file/send-file-form.html new file mode 100644 index 00000000000000..baa8d4286c5789 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-form.html @@ -0,0 +1,25 @@ + + +Upload ASCII-named file in UTF-8 form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-formdata-controls.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-formdata-controls.tentative.html new file mode 100644 index 00000000000000..4259741b63ef31 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-formdata-controls.tentative.html @@ -0,0 +1,93 @@ + + +FormData: Upload files named using controls (tentative) + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-formdata-punctuation.tentative.html b/test/fixtures/wpt/FileAPI/file/send-file-formdata-punctuation.tentative.html new file mode 100644 index 00000000000000..d8e84e9d978094 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-formdata-punctuation.tentative.html @@ -0,0 +1,168 @@ + + +FormData: Upload files named using punctuation (tentative) + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-formdata-utf-8.html b/test/fixtures/wpt/FileAPI/file/send-file-formdata-utf-8.html new file mode 100644 index 00000000000000..7a7f6cefe776b9 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-formdata-utf-8.html @@ -0,0 +1,53 @@ + + +FormData: Upload files in UTF-8 fetch() + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/file/send-file-formdata.html b/test/fixtures/wpt/FileAPI/file/send-file-formdata.html new file mode 100644 index 00000000000000..77e048e54741c0 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/file/send-file-formdata.html @@ -0,0 +1,28 @@ + + +FormData: Upload ASCII-named file in UTF-8 form + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/fileReader.html b/test/fixtures/wpt/FileAPI/fileReader.html new file mode 100644 index 00000000000000..b767e22d4a66eb --- /dev/null +++ b/test/fixtures/wpt/FileAPI/fileReader.html @@ -0,0 +1,67 @@ + + + + FileReader States + + + + + + +
+ + + diff --git a/test/fixtures/wpt/FileAPI/filelist-section/filelist.html b/test/fixtures/wpt/FileAPI/filelist-section/filelist.html new file mode 100644 index 00000000000000..b97dcde19f647c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/filelist-section/filelist.html @@ -0,0 +1,57 @@ + + + + + FileAPI Test: filelist + + + + + + + + + +
+ +
+
+ + + + + diff --git a/test/fixtures/wpt/FileAPI/filelist-section/filelist_multiple_selected_files-manual.html b/test/fixtures/wpt/FileAPI/filelist-section/filelist_multiple_selected_files-manual.html new file mode 100644 index 00000000000000..2efaa059fa4897 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/filelist-section/filelist_multiple_selected_files-manual.html @@ -0,0 +1,64 @@ + + + + + FileAPI Test: filelist_multiple_selected_files + + + + + + + + + +
+ +
+
+

Test steps:

+
    +
  1. Download upload.txt, upload.zip to local.
  2. +
  3. Select the local two files (upload.txt, upload.zip) to run the test.
  4. +
+
+ +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/filelist-section/filelist_selected_file-manual.html b/test/fixtures/wpt/FileAPI/filelist-section/filelist_selected_file-manual.html new file mode 100644 index 00000000000000..966aadda615589 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/filelist-section/filelist_selected_file-manual.html @@ -0,0 +1,64 @@ + + + + + FileAPI Test: filelist_selected_file + + + + + + + + + +
+ +
+
+

Test steps:

+
    +
  1. Download upload.txt to local.
  2. +
  3. Select the local upload.txt file to run the test.
  4. +
+
+ +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/filelist-section/support/upload.txt b/test/fixtures/wpt/FileAPI/filelist-section/support/upload.txt new file mode 100644 index 00000000000000..f45965b711f127 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/filelist-section/support/upload.txt @@ -0,0 +1 @@ +Hello, this is test file for file upload. diff --git a/test/fixtures/wpt/FileAPI/filelist-section/support/upload.zip b/test/fixtures/wpt/FileAPI/filelist-section/support/upload.zip new file mode 100644 index 00000000000000..41bfebe5eed561 Binary files /dev/null and b/test/fixtures/wpt/FileAPI/filelist-section/support/upload.zip differ diff --git a/test/fixtures/wpt/FileAPI/historical.https.html b/test/fixtures/wpt/FileAPI/historical.https.html new file mode 100644 index 00000000000000..4f841f17639459 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/historical.https.html @@ -0,0 +1,65 @@ + + + + + Historical features + + + + + +
+ + + diff --git a/test/fixtures/wpt/FileAPI/idlharness-manual.html b/test/fixtures/wpt/FileAPI/idlharness-manual.html new file mode 100644 index 00000000000000..c1d8b0c7149d75 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/idlharness-manual.html @@ -0,0 +1,45 @@ + + + + + File API manual IDL tests + + + + + + + + +

File API manual IDL tests

+ +

Either download upload.txt and select it below or select an + arbitrary local file.

+ +
+ +
+ +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/idlharness.html b/test/fixtures/wpt/FileAPI/idlharness.html new file mode 100644 index 00000000000000..5e0a43f80df3f8 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/idlharness.html @@ -0,0 +1,40 @@ + + + + + File API automated IDL tests + + + + + + + + +

File API automated IDL tests

+ +
+ +
+ +
+ + + + + diff --git a/test/fixtures/wpt/FileAPI/idlharness.worker.js b/test/fixtures/wpt/FileAPI/idlharness.worker.js new file mode 100644 index 00000000000000..786b7e4199fb45 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/idlharness.worker.js @@ -0,0 +1,20 @@ +importScripts("/resources/testharness.js"); +importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js"); + +'use strict'; + +// https://w3c.github.io/FileAPI/ + +idl_test( + ['FileAPI'], + ['dom', 'html', 'url'], + idl_array => { + idl_array.add_objects({ + Blob: ['new Blob(["TEST"])'], + File: ['new File(["myFileBits"], "myFileName")'], + FileReader: ['new FileReader()'], + FileReaderSync: ['new FileReaderSync()'] + }); + } +); +done(); diff --git a/test/fixtures/wpt/FileAPI/progress-manual.html b/test/fixtures/wpt/FileAPI/progress-manual.html new file mode 100644 index 00000000000000..b2e03b3eb27387 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/progress-manual.html @@ -0,0 +1,49 @@ + + +Process Events for FileReader + + + + +Please choose one file through this input below.
+ +
+ diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/Determining-Encoding.html b/test/fixtures/wpt/FileAPI/reading-data-section/Determining-Encoding.html new file mode 100644 index 00000000000000..d65ae9db18a1ff --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/Determining-Encoding.html @@ -0,0 +1,91 @@ + + +FileAPI Test: Blob Determining Encoding + + + + + +
+ diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes.html b/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes.html new file mode 100644 index 00000000000000..86657b5711aff1 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes.html @@ -0,0 +1,23 @@ + + +FileReader event handler attributes + + +
+ diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-multiple-reads.html b/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-multiple-reads.html new file mode 100644 index 00000000000000..e7279fe4bd445e --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/FileReader-multiple-reads.html @@ -0,0 +1,89 @@ + +FileReader: starting new reads while one is in progress + + + + +
+ diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_abort.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_abort.html new file mode 100644 index 00000000000000..940a775d35bf42 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_abort.html @@ -0,0 +1,53 @@ + + + + + FileAPI Test: filereader_abort + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_error.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_error.html new file mode 100644 index 00000000000000..cf4524825b80ca --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_error.html @@ -0,0 +1,35 @@ + + + + + FileAPI Test: filereader_error + + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_events.any.js b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_events.any.js new file mode 100644 index 00000000000000..ac692907d119f7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_events.any.js @@ -0,0 +1,19 @@ +promise_test(async t => { + var reader = new FileReader(); + var eventWatcher = new EventWatcher(t, reader, ['loadstart', 'progress', 'abort', 'error', 'load', 'loadend']); + reader.readAsText(new Blob([])); + await eventWatcher.wait_for('loadstart'); + // No progress event for an empty blob, as no data is loaded. + await eventWatcher.wait_for('load'); + await eventWatcher.wait_for('loadend'); +}, 'events are dispatched in the correct order for an empty blob'); + +promise_test(async t => { + var reader = new FileReader(); + var eventWatcher = new EventWatcher(t, reader, ['loadstart', 'progress', 'abort', 'error', 'load', 'loadend']); + reader.readAsText(new Blob(['a'])); + await eventWatcher.wait_for('loadstart'); + await eventWatcher.wait_for('progress'); + await eventWatcher.wait_for('load'); + await eventWatcher.wait_for('loadend'); +}, 'events are dispatched in the correct order for a non-empty blob'); diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file-manual.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file-manual.html new file mode 100644 index 00000000000000..702ca9afd7b067 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file-manual.html @@ -0,0 +1,69 @@ + + + + + FileAPI Test: filereader_file + + + + + + + +
+

Test step:

+
    +
  1. Download blue-100x100.png to local.
  2. +
  3. Select the local file (blue-100x100.png) to run the test.
  4. +
+
+ +
+ +
+ +
+ + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file_img-manual.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file_img-manual.html new file mode 100644 index 00000000000000..fca42c7fceba48 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_file_img-manual.html @@ -0,0 +1,47 @@ + + + + + FileAPI Test: filereader_file_img + + + + + + + +
+

Test step:

+
    +
  1. Download blue-100x100.png to local.
  2. +
  3. Select the local file (blue-100x100.png) to run the test.
  4. +
+
+ +
+ +
+ +
+ + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsArrayBuffer.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsArrayBuffer.html new file mode 100644 index 00000000000000..31001a51a0727f --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsArrayBuffer.html @@ -0,0 +1,38 @@ + + + + + FileAPI Test: filereader_readAsArrayBuffer + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsBinaryString.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsBinaryString.html new file mode 100644 index 00000000000000..b550e4d0a96dc7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsBinaryString.html @@ -0,0 +1,32 @@ + + +FileAPI Test: filereader_readAsBinaryString + + + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsDataURL.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsDataURL.html new file mode 100644 index 00000000000000..5bc39499a229d1 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsDataURL.html @@ -0,0 +1,51 @@ + + +FileAPI Test: FileReader.readAsDataURL + + + + + + \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsText.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsText.html new file mode 100644 index 00000000000000..7d639d0111473b --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsText.html @@ -0,0 +1,51 @@ + + + + + FileAPI Test: filereader_readAsText + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readystate.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readystate.html new file mode 100644 index 00000000000000..1586b8995059f7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_readystate.html @@ -0,0 +1,34 @@ + + + + + FileAPI Test: filereader_readystate + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/filereader_result.html b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_result.html new file mode 100644 index 00000000000000..b80322ed424f83 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/reading-data-section/filereader_result.html @@ -0,0 +1,97 @@ + + + + + FileAPI Test: filereader_result + + + + + + +
+ + + + diff --git a/test/fixtures/wpt/FileAPI/reading-data-section/support/blue-100x100.png b/test/fixtures/wpt/FileAPI/reading-data-section/support/blue-100x100.png new file mode 100644 index 00000000000000..b662fe18ec4797 Binary files /dev/null and b/test/fixtures/wpt/FileAPI/reading-data-section/support/blue-100x100.png differ diff --git a/test/fixtures/wpt/FileAPI/support/Blob.js b/test/fixtures/wpt/FileAPI/support/Blob.js new file mode 100644 index 00000000000000..04069acd3ccbe7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/Blob.js @@ -0,0 +1,70 @@ +'use strict' + +function test_blob(fn, expectations) { + var expected = expectations.expected, + type = expectations.type, + desc = expectations.desc; + + var t = async_test(desc); + t.step(function() { + var blob = fn(); + assert_true(blob instanceof Blob); + assert_false(blob instanceof File); + assert_equals(blob.type, type); + assert_equals(blob.size, expected.length); + + var fr = new FileReader(); + fr.onload = t.step_func_done(function(event) { + assert_equals(this.result, expected); + }, fr); + fr.onerror = t.step_func(function(e) { + assert_unreached("got error event on FileReader"); + }); + fr.readAsText(blob, "UTF-8"); + }); +} + +function test_blob_binary(fn, expectations) { + var expected = expectations.expected, + type = expectations.type, + desc = expectations.desc; + + var t = async_test(desc); + t.step(function() { + var blob = fn(); + assert_true(blob instanceof Blob); + assert_false(blob instanceof File); + assert_equals(blob.type, type); + assert_equals(blob.size, expected.length); + + var fr = new FileReader(); + fr.onload = t.step_func_done(function(event) { + assert_true(this.result instanceof ArrayBuffer, + "Result should be an ArrayBuffer"); + assert_array_equals(new Uint8Array(this.result), expected); + }, fr); + fr.onerror = t.step_func(function(e) { + assert_unreached("got error event on FileReader"); + }); + fr.readAsArrayBuffer(blob); + }); +} + +// Assert that two TypedArray objects have the same byte values +self.assert_equals_typed_array = (array1, array2) => { + const [view1, view2] = [array1, array2].map((array) => { + assert_true(array.buffer instanceof ArrayBuffer, + 'Expect input ArrayBuffers to contain field `buffer`'); + return new DataView(array.buffer, array.byteOffset, array.byteLength); + }); + + assert_equals(view1.byteLength, view2.byteLength, + 'Expect both arrays to be of the same byte length'); + + const byteLength = view1.byteLength; + + for (let i = 0; i < byteLength; ++i) { + assert_equals(view1.getUint8(i), view2.getUint8(i), + `Expect byte at buffer position ${i} to be equal`); + } +} diff --git a/test/fixtures/wpt/FileAPI/support/document-domain-setter.sub.html b/test/fixtures/wpt/FileAPI/support/document-domain-setter.sub.html new file mode 100644 index 00000000000000..61aebdf326679c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/document-domain-setter.sub.html @@ -0,0 +1,7 @@ + +Relevant/current/blob source page used as a test helper + + diff --git a/test/fixtures/wpt/FileAPI/support/historical-serviceworker.js b/test/fixtures/wpt/FileAPI/support/historical-serviceworker.js new file mode 100644 index 00000000000000..8bd89a23adb70f --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/historical-serviceworker.js @@ -0,0 +1,5 @@ +importScripts('/resources/testharness.js'); + +test(() => { + assert_false('FileReaderSync' in self); +}, '"FileReaderSync" should not be supported in service workers'); diff --git a/test/fixtures/wpt/FileAPI/support/incumbent.sub.html b/test/fixtures/wpt/FileAPI/support/incumbent.sub.html new file mode 100644 index 00000000000000..63a81cd3281c46 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/incumbent.sub.html @@ -0,0 +1,22 @@ + +Incumbent page used as a test helper + + + + + + diff --git a/test/fixtures/wpt/FileAPI/support/send-file-form-helper.js b/test/fixtures/wpt/FileAPI/support/send-file-form-helper.js new file mode 100644 index 00000000000000..d6adf21ec33795 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/send-file-form-helper.js @@ -0,0 +1,282 @@ +'use strict'; + +// See /FileAPI/file/resources/echo-content-escaped.py +function escapeString(string) { + return string.replace(/\\/g, "\\\\").replace( + /[^\x20-\x7E]/g, + (x) => { + let hex = x.charCodeAt(0).toString(16); + if (hex.length < 2) hex = "0" + hex; + return `\\x${hex}`; + }, + ).replace(/\\x0d\\x0a/g, "\r\n"); +} + +// Rationale for this particular test character sequence, which is +// used in filenames and also in file contents: +// +// - ABC~ ensures the string starts with something we can read to +// ensure it is from the correct source; ~ is used because even +// some 1-byte otherwise-ASCII-like parts of ISO-2022-JP +// interpret it differently. +// - ‾¥ are inside a single-byte range of ISO-2022-JP and help +// diagnose problems due to filesystem encoding or locale +// - ≈ is inside IBM437 and helps diagnose problems due to filesystem +// encoding or locale +// - ¤ is inside Latin-1 and helps diagnose problems due to +// filesystem encoding or locale; it is also the "simplest" case +// needing substitution in ISO-2022-JP +// - ・ is inside a single-byte range of ISO-2022-JP in some variants +// and helps diagnose problems due to filesystem encoding or locale; +// on the web it is distinct when decoding but unified when encoding +// - ・ is inside a double-byte range of ISO-2022-JP and helps +// diagnose problems due to filesystem encoding or locale +// - • is inside Windows-1252 and helps diagnose problems due to +// filesystem encoding or locale and also ensures these aren't +// accidentally turned into e.g. control codes +// - ∙ is inside IBM437 and helps diagnose problems due to filesystem +// encoding or locale +// - · is inside Latin-1 and helps diagnose problems due to +// filesystem encoding or locale and also ensures HTML named +// character references (e.g. ·) are not used +// - ☼ is inside IBM437 shadowing C0 and helps diagnose problems due to +// filesystem encoding or locale and also ensures these aren't +// accidentally turned into e.g. control codes +// - ★ is inside ISO-2022-JP on a non-Kanji page and makes correct +// output easier to spot +// - 星 is inside ISO-2022-JP on a Kanji page and makes correct +// output easier to spot +// - 🌟 is outside the BMP and makes incorrect surrogate pair +// substitution detectable and ensures substitutions work +// correctly immediately after Kanji 2-byte ISO-2022-JP +// - 星 repeated here ensures the correct codec state is used +// after a non-BMP substitution +// - ★ repeated here also makes correct output easier to spot +// - ☼ is inside IBM437 shadowing C0 and helps diagnose problems due to +// filesystem encoding or locale and also ensures these aren't +// accidentally turned into e.g. control codes and also ensures +// substitutions work correctly immediately after non-Kanji +// 2-byte ISO-2022-JP +// - · is inside Latin-1 and helps diagnose problems due to +// filesystem encoding or locale and also ensures HTML named +// character references (e.g. ·) are not used +// - ∙ is inside IBM437 and helps diagnose problems due to filesystem +// encoding or locale +// - • is inside Windows-1252 and again helps diagnose problems +// due to filesystem encoding or locale +// - ・ is inside a double-byte range of ISO-2022-JP and helps +// diagnose problems due to filesystem encoding or locale +// - ・ is inside a single-byte range of ISO-2022-JP in some variants +// and helps diagnose problems due to filesystem encoding or locale; +// on the web it is distinct when decoding but unified when encoding +// - ¤ is inside Latin-1 and helps diagnose problems due to +// filesystem encoding or locale; again it is a "simple" +// substitution case +// - ≈ is inside IBM437 and helps diagnose problems due to filesystem +// encoding or locale +// - ¥‾ are inside a single-byte range of ISO-2022-JP and help +// diagnose problems due to filesystem encoding or locale +// - ~XYZ ensures earlier errors don't lead to misencoding of +// simple ASCII +// +// Overall the near-symmetry makes common I18N mistakes like +// off-by-1-after-non-BMP easier to spot. All the characters +// are also allowed in Windows Unicode filenames. +const kTestChars = 'ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ'; + +// The kTestFallback* strings represent the expected byte sequence from +// encoding kTestChars with the given encoding with "html" replacement +// mode, isomorphic-decoded. That means, characters that can't be +// encoded in that encoding get HTML-escaped, but no further +// `escapeString`-like escapes are needed. +const kTestFallbackUtf8 = ( + "ABC~\xE2\x80\xBE\xC2\xA5\xE2\x89\x88\xC2\xA4\xEF\xBD\xA5\xE3\x83\xBB\xE2" + + "\x80\xA2\xE2\x88\x99\xC2\xB7\xE2\x98\xBC\xE2\x98\x85\xE6\x98\x9F\xF0\x9F" + + "\x8C\x9F\xE6\x98\x9F\xE2\x98\x85\xE2\x98\xBC\xC2\xB7\xE2\x88\x99\xE2\x80" + + "\xA2\xE3\x83\xBB\xEF\xBD\xA5\xC2\xA4\xE2\x89\x88\xC2\xA5\xE2\x80\xBE~XYZ" +); + +const kTestFallbackIso2022jp = ( + ("ABC~\x1B(J~\\≈¤\x1B$B!&!&\x1B(B•∙·☼\x1B$B!z@1\x1B(B🌟" + + "\x1B$B@1!z\x1B(B☼·∙•\x1B$B!&!&\x1B(B¤≈\x1B(J\\~\x1B(B~XYZ") + .replace(/[^\0-\x7F]/gu, (x) => `&#${x.codePointAt(0)};`) +); + +const kTestFallbackWindows1252 = ( + "ABC~‾\xA5≈\xA4・・\x95∙\xB7☼★星🌟星★☼\xB7∙\x95・・\xA4≈\xA5‾~XYZ".replace( + /[^\0-\xFF]/gu, + (x) => `&#${x.codePointAt(0)};`, + ) +); + +const kTestFallbackXUserDefined = kTestChars.replace( + /[^\0-\x7F]/gu, + (x) => `&#${x.codePointAt(0)};`, +); + +// formPostFileUploadTest - verifies multipart upload structure and +// numeric character reference replacement for filenames, field names, +// and field values using form submission. +// +// Uses /FileAPI/file/resources/echo-content-escaped.py to echo the +// upload POST with controls and non-ASCII bytes escaped. This is done +// because navigations whose response body contains [\0\b\v] may get +// treated as a download, which is not what we want. Use the +// `escapeString` function to replicate that kind of escape (note that +// it takes an isomorphic-decoded string, not a byte sequence). +// +// Fields in the parameter object: +// +// - fileNameSource: purely explanatory and gives a clue about which +// character encoding is the source for the non-7-bit-ASCII parts of +// the fileBaseName, or Unicode if no smaller-than-Unicode source +// contains all the characters. Used in the test name. +// - fileBaseName: the not-necessarily-just-7-bit-ASCII file basename +// used for the constructed test file. Used in the test name. +// - formEncoding: the acceptCharset of the form used to submit the +// test file. Used in the test name. +// - expectedEncodedBaseName: the expected formEncoding-encoded +// version of fileBaseName, isomorphic-decoded. That means, characters +// that can't be encoded in that encoding get HTML-escaped, but no +// further `escapeString`-like escapes are needed. +const formPostFileUploadTest = ({ + fileNameSource, + fileBaseName, + formEncoding, + expectedEncodedBaseName, +}) => { + promise_test(async testCase => { + + if (document.readyState !== 'complete') { + await new Promise(resolve => addEventListener('load', resolve)); + } + + const formTargetFrame = Object.assign(document.createElement('iframe'), { + name: 'formtargetframe', + }); + document.body.append(formTargetFrame); + testCase.add_cleanup(() => { + document.body.removeChild(formTargetFrame); + }); + + const form = Object.assign(document.createElement('form'), { + acceptCharset: formEncoding, + action: '/FileAPI/file/resources/echo-content-escaped.py', + method: 'POST', + enctype: 'multipart/form-data', + target: formTargetFrame.name, + }); + document.body.append(form); + testCase.add_cleanup(() => { + document.body.removeChild(form); + }); + + // Used to verify that the browser agrees with the test about + // which form charset is used. + form.append(Object.assign(document.createElement('input'), { + type: 'hidden', + name: '_charset_', + })); + + // Used to verify that the browser agrees with the test about + // field value replacement and encoding independently of file system + // idiosyncracies. + form.append(Object.assign(document.createElement('input'), { + type: 'hidden', + name: 'filename', + value: fileBaseName, + })); + + // Same, but with name and value reversed to ensure field names + // get the same treatment. + form.append(Object.assign(document.createElement('input'), { + type: 'hidden', + name: fileBaseName, + value: 'filename', + })); + + const fileInput = Object.assign(document.createElement('input'), { + type: 'file', + name: 'file', + }); + form.append(fileInput); + + // Removes c:\fakepath\ or other pseudofolder and returns just the + // final component of filePath; allows both / and \ as segment + // delimiters. + const baseNameOfFilePath = filePath => filePath.split(/[\/\\]/).pop(); + await new Promise(resolve => { + const dataTransfer = new DataTransfer; + dataTransfer.items.add( + new File([kTestChars], fileBaseName, {type: 'text/plain'})); + fileInput.files = dataTransfer.files; + // For historical reasons .value will be prefixed with + // c:\fakepath\, but the basename should match the file name + // exposed through the newer .files[0].name API. This check + // verifies that assumption. + assert_equals( + baseNameOfFilePath(fileInput.files[0].name), + baseNameOfFilePath(fileInput.value), + `The basename of the field's value should match its files[0].name`); + form.submit(); + formTargetFrame.onload = resolve; + }); + + const formDataText = formTargetFrame.contentDocument.body.textContent; + const formDataLines = formDataText.split('\n'); + if (formDataLines.length && !formDataLines[formDataLines.length - 1]) { + --formDataLines.length; + } + assert_greater_than( + formDataLines.length, + 2, + `${fileBaseName}: multipart form data must have at least 3 lines: ${ + JSON.stringify(formDataText) + }`); + const boundary = formDataLines[0]; + assert_equals( + formDataLines[formDataLines.length - 1], + boundary + '--', + `${fileBaseName}: multipart form data must end with ${boundary}--: ${ + JSON.stringify(formDataText) + }`); + + const asValue = expectedEncodedBaseName.replace(/\r\n?|\n/g, "\r\n"); + const asName = asValue.replace(/[\r\n"]/g, encodeURIComponent); + const asFilename = expectedEncodedBaseName.replace(/[\r\n"]/g, encodeURIComponent); + + // The response body from echo-content-escaped.py has controls and non-ASCII + // bytes escaped, so any caller-provided field that might contain such bytes + // must be passed to `escapeString`, after any other expected + // transformations. + const expectedText = [ + boundary, + 'Content-Disposition: form-data; name="_charset_"', + '', + formEncoding, + boundary, + 'Content-Disposition: form-data; name="filename"', + '', + // Unlike for names and filenames, multipart/form-data values don't escape + // \r\n linebreaks, and when they're read from an iframe they become \n. + escapeString(asValue).replace(/\r\n/g, "\n"), + boundary, + `Content-Disposition: form-data; name="${escapeString(asName)}"`, + '', + 'filename', + boundary, + `Content-Disposition: form-data; name="file"; ` + + `filename="${escapeString(asFilename)}"`, + 'Content-Type: text/plain', + '', + escapeString(kTestFallbackUtf8), + boundary + '--', + ].join('\n'); + + assert_true( + formDataText.startsWith(expectedText), + `Unexpected multipart-shaped form data received:\n${ + formDataText + }\nExpected:\n${expectedText}`); + }, `Upload ${fileBaseName} (${fileNameSource}) in ${formEncoding} form`); +}; diff --git a/test/fixtures/wpt/FileAPI/support/send-file-formdata-helper.js b/test/fixtures/wpt/FileAPI/support/send-file-formdata-helper.js new file mode 100644 index 00000000000000..53572ef36c8d1b --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/send-file-formdata-helper.js @@ -0,0 +1,97 @@ +"use strict"; + +const kTestChars = "ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ"; + +// formDataPostFileUploadTest - verifies multipart upload structure and +// numeric character reference replacement for filenames, field names, +// and field values using FormData and fetch(). +// +// Uses /fetch/api/resources/echo-content.py to echo the upload +// POST (unlike in send-file-form-helper.js, here we expect all +// multipart/form-data request bodies to be UTF-8, so we don't need to +// escape controls and non-ASCII bytes). +// +// Fields in the parameter object: +// +// - fileNameSource: purely explanatory and gives a clue about which +// character encoding is the source for the non-7-bit-ASCII parts of +// the fileBaseName, or Unicode if no smaller-than-Unicode source +// contains all the characters. Used in the test name. +// - fileBaseName: the not-necessarily-just-7-bit-ASCII file basename +// used for the constructed test file. Used in the test name. +const formDataPostFileUploadTest = ({ + fileNameSource, + fileBaseName, +}) => { + promise_test(async (testCase) => { + const formData = new FormData(); + let file = new Blob([kTestChars], { type: "text/plain" }); + try { + // Switch to File in browsers that allow this + file = new File([file], fileBaseName, { type: file.type }); + } catch (ignoredException) { + } + + // Used to verify that the browser agrees with the test about + // field value replacement and encoding independently of file system + // idiosyncracies. + formData.append("filename", fileBaseName); + + // Same, but with name and value reversed to ensure field names + // get the same treatment. + formData.append(fileBaseName, "filename"); + + formData.append("file", file, fileBaseName); + + const formDataText = await (await fetch( + `/fetch/api/resources/echo-content.py`, + { + method: "POST", + body: formData, + }, + )).text(); + const formDataLines = formDataText.split("\r\n"); + if (formDataLines.length && !formDataLines[formDataLines.length - 1]) { + --formDataLines.length; + } + assert_greater_than( + formDataLines.length, + 2, + `${fileBaseName}: multipart form data must have at least 3 lines: ${ + JSON.stringify(formDataText) + }`, + ); + const boundary = formDataLines[0]; + assert_equals( + formDataLines[formDataLines.length - 1], + boundary + "--", + `${fileBaseName}: multipart form data must end with ${boundary}--: ${ + JSON.stringify(formDataText) + }`, + ); + + const asName = fileBaseName.replace(/[\r\n"]/g, encodeURIComponent); + const expectedText = [ + boundary, + 'Content-Disposition: form-data; name="filename"', + "", + fileBaseName, + boundary, + `Content-Disposition: form-data; name="${asName}"`, + "", + "filename", + boundary, + `Content-Disposition: form-data; name="file"; ` + + `filename="${asName}"`, + "Content-Type: text/plain", + "", + kTestChars, + boundary + "--", + ].join("\r\n"); + + assert_true( + formDataText.startsWith(expectedText), + `Unexpected multipart-shaped form data received:\n${formDataText}\nExpected:\n${expectedText}`, + ); + }, `Upload ${fileBaseName} (${fileNameSource}) in fetch with FormData`); +}; diff --git a/test/fixtures/wpt/FileAPI/support/upload.txt b/test/fixtures/wpt/FileAPI/support/upload.txt new file mode 100644 index 00000000000000..5ab2f8a4323aba --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/upload.txt @@ -0,0 +1 @@ +Hello \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/support/url-origin.html b/test/fixtures/wpt/FileAPI/support/url-origin.html new file mode 100644 index 00000000000000..63755113915f9f --- /dev/null +++ b/test/fixtures/wpt/FileAPI/support/url-origin.html @@ -0,0 +1,6 @@ + + diff --git a/test/fixtures/wpt/FileAPI/unicode.html b/test/fixtures/wpt/FileAPI/unicode.html new file mode 100644 index 00000000000000..ce3e3579d7c2c7 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/unicode.html @@ -0,0 +1,46 @@ + + +Blob/Unicode interaction: normalization and encoding + + + diff --git a/test/fixtures/wpt/FileAPI/url/cross-global-revoke.sub.html b/test/fixtures/wpt/FileAPI/url/cross-global-revoke.sub.html new file mode 100644 index 00000000000000..21b8c5bb1986d5 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/cross-global-revoke.sub.html @@ -0,0 +1,61 @@ + + + + + + \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/url/multi-global-origin-serialization.sub.html b/test/fixtures/wpt/FileAPI/url/multi-global-origin-serialization.sub.html new file mode 100644 index 00000000000000..0052b26fa62130 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/multi-global-origin-serialization.sub.html @@ -0,0 +1,26 @@ + + +Blob URL serialization (specifically the origin) in multi-global situations + + + + + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/url/resources/create-helper.html b/test/fixtures/wpt/FileAPI/url/resources/create-helper.html new file mode 100644 index 00000000000000..fa6cf4e671e835 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/resources/create-helper.html @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/url/resources/create-helper.js b/test/fixtures/wpt/FileAPI/url/resources/create-helper.js new file mode 100644 index 00000000000000..e6344f700ced60 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/resources/create-helper.js @@ -0,0 +1,4 @@ +self.addEventListener('message', e => { + let url = URL.createObjectURL(e.data.blob); + self.postMessage({url: url}); +}); diff --git a/test/fixtures/wpt/FileAPI/url/resources/fetch-tests.js b/test/fixtures/wpt/FileAPI/url/resources/fetch-tests.js new file mode 100644 index 00000000000000..a81ea1e7b1de35 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/resources/fetch-tests.js @@ -0,0 +1,71 @@ +// This method generates a number of tests verifying fetching of blob URLs, +// allowing the same tests to be used both with fetch() and XMLHttpRequest. +// +// |fetch_method| is only used in test names, and should describe the +// (javascript) method being used by the other two arguments (i.e. 'fetch' or 'XHR'). +// +// |fetch_should_succeed| is a callback that is called with the Test and a URL. +// Fetching the URL is expected to succeed. The callback should return a promise +// resolved with whatever contents were fetched. +// +// |fetch_should_fail| similarly is a callback that is called with the Test, a URL +// to fetch, and optionally a method to use to do the fetch. If no method is +// specified the callback should use the 'GET' method. Fetching of these URLs is +// expected to fail, and the callback should return a promise that resolves iff +// fetching did indeed fail. +function fetch_tests(fetch_method, fetch_should_succeed, fetch_should_fail) { + const blob_contents = 'test blob contents'; + const blob = new Blob([blob_contents]); + + promise_test(t => { + const url = URL.createObjectURL(blob); + + return fetch_should_succeed(t, url).then(text => { + assert_equals(text, blob_contents); + }); + }, 'Blob URLs can be used in ' + fetch_method); + + promise_test(t => { + const url = URL.createObjectURL(blob); + + return fetch_should_succeed(t, url + '#fragment').then(text => { + assert_equals(text, blob_contents); + }); + }, fetch_method + ' with a fragment should succeed'); + + promise_test(t => { + const url = URL.createObjectURL(blob); + URL.revokeObjectURL(url); + + return fetch_should_fail(t, url); + }, fetch_method + ' of a revoked URL should fail'); + + promise_test(t => { + const url = URL.createObjectURL(blob); + URL.revokeObjectURL(url + '#fragment'); + + return fetch_should_succeed(t, url).then(text => { + assert_equals(text, blob_contents); + }); + }, 'Only exact matches should revoke URLs, using ' + fetch_method); + + promise_test(t => { + const url = URL.createObjectURL(blob); + + return fetch_should_fail(t, url + '?querystring'); + }, 'Appending a query string should cause ' + fetch_method + ' to fail'); + + promise_test(t => { + const url = URL.createObjectURL(blob); + + return fetch_should_fail(t, url + '/path'); + }, 'Appending a path should cause ' + fetch_method + ' to fail'); + + for (const method of ['HEAD', 'POST', 'DELETE', 'OPTIONS', 'PUT', 'CUSTOM']) { + const url = URL.createObjectURL(blob); + + promise_test(t => { + return fetch_should_fail(t, url, method); + }, fetch_method + ' with method "' + method + '" should fail'); + } +} \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.html b/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.html new file mode 100644 index 00000000000000..adf5a014a668d6 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.html @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.js b/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.js new file mode 100644 index 00000000000000..c3e05b64b1a6c8 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/resources/revoke-helper.js @@ -0,0 +1,9 @@ +self.addEventListener('message', e => { + URL.revokeObjectURL(e.data.url); + // Registering a new object URL will make absolutely sure that the revocation + // has propagated. Without this at least in chrome it is possible for the + // below postMessage to arrive at its destination before the revocation has + // been fully processed. + URL.createObjectURL(new Blob([])); + self.postMessage('revoked'); +}); diff --git a/test/fixtures/wpt/FileAPI/url/sandboxed-iframe.html b/test/fixtures/wpt/FileAPI/url/sandboxed-iframe.html new file mode 100644 index 00000000000000..a52939a3eb297c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/sandboxed-iframe.html @@ -0,0 +1,32 @@ + + +FileAPI Test: Verify behavior of Blob URL in unique origins + + + + + + + diff --git a/test/fixtures/wpt/FileAPI/url/unicode-origin.sub.html b/test/fixtures/wpt/FileAPI/url/unicode-origin.sub.html new file mode 100644 index 00000000000000..2c4921c0344998 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/unicode-origin.sub.html @@ -0,0 +1,23 @@ + + +FileAPI Test: Verify origin of Blob URL + + + + diff --git a/test/fixtures/wpt/FileAPI/url/url-charset.window.js b/test/fixtures/wpt/FileAPI/url/url-charset.window.js new file mode 100644 index 00000000000000..777709b64a50e5 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-charset.window.js @@ -0,0 +1,34 @@ +async_test(t => { + // This could be detected as ISO-2022-JP, in which case there would be no + // bbb` + ], + {type: 'text/html;charset=utf-8'}); + const url = URL.createObjectURL(blob); + const win = window.open(url); + t.add_cleanup(() => { + win.close(); + }); + + win.onload = t.step_func_done(() => { + assert_equals(win.document.charset, 'UTF-8'); + }); +}, 'Blob charset should override any auto-detected charset.'); + +async_test(t => { + const blob = new Blob( + [`\n`], + {type: 'text/html;charset=utf-8'}); + const url = URL.createObjectURL(blob); + const win = window.open(url); + t.add_cleanup(() => { + win.close(); + }); + + win.onload = t.step_func_done(() => { + assert_equals(win.document.charset, 'UTF-8'); + }); +}, 'Blob charset should override .'); diff --git a/test/fixtures/wpt/FileAPI/url/url-format.any.js b/test/fixtures/wpt/FileAPI/url/url-format.any.js new file mode 100644 index 00000000000000..33732fa61fc3dd --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-format.any.js @@ -0,0 +1,64 @@ +// META: timeout=long +const blob = new Blob(['test']); +const file = new File(['test'], 'name'); + +test(() => { + const url_count = 5000; + let list = []; + + for (let i = 0; i < url_count; ++i) + list.push(URL.createObjectURL(blob)); + + list.sort(); + + for (let i = 1; i < list.length; ++i) + assert_not_equals(list[i], list[i-1], 'generated Blob URLs should be unique'); +}, 'Generated Blob URLs are unique'); + +test(() => { + const url = URL.createObjectURL(blob); + assert_equals(typeof url, 'string'); + assert_true(url.startsWith('blob:')); +}, 'Blob URL starts with "blob:"'); + +test(() => { + const url = URL.createObjectURL(file); + assert_equals(typeof url, 'string'); + assert_true(url.startsWith('blob:')); +}, 'Blob URL starts with "blob:" for Files'); + +test(() => { + const url = URL.createObjectURL(blob); + assert_equals(new URL(url).origin, location.origin); + if (location.origin !== 'null') { + assert_true(url.includes(location.origin)); + assert_true(url.startsWith('blob:' + location.protocol)); + } +}, 'Origin of Blob URL matches our origin'); + +test(() => { + const url = URL.createObjectURL(blob); + const url_record = new URL(url); + assert_equals(url_record.protocol, 'blob:'); + assert_equals(url_record.origin, location.origin); + assert_equals(url_record.host, '', 'host should be an empty string'); + assert_equals(url_record.port, '', 'port should be an empty string'); + const uuid_path_re = /\/[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; + assert_true(uuid_path_re.test(url_record.pathname), 'Path must end with a valid UUID'); + if (location.origin !== 'null') { + const nested_url = new URL(url_record.pathname); + assert_equals(nested_url.origin, location.origin); + assert_equals(nested_url.pathname.search(uuid_path_re), 0, 'Path must be a valid UUID'); + assert_true(url.includes(location.origin)); + assert_true(url.startsWith('blob:' + location.protocol)); + } +}, 'Blob URL parses correctly'); + +test(() => { + const url = URL.createObjectURL(file); + assert_equals(new URL(url).origin, location.origin); + if (location.origin !== 'null') { + assert_true(url.includes(location.origin)); + assert_true(url.startsWith('blob:' + location.protocol)); + } +}, 'Origin of Blob URL matches our origin for Files'); diff --git a/test/fixtures/wpt/FileAPI/url/url-in-tags-revoke.window.js b/test/fixtures/wpt/FileAPI/url/url-in-tags-revoke.window.js new file mode 100644 index 00000000000000..1cdad79f7e34e0 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-in-tags-revoke.window.js @@ -0,0 +1,115 @@ +// META: timeout=long +async_test(t => { + const run_result = 'test_frame_OK'; + const blob_contents = '\n\n' + + ''; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + URL.revokeObjectURL(url); + + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); +}, 'Fetching a blob URL immediately before revoking it works in an iframe.'); + +async_test(t => { + const run_result = 'test_frame_OK'; + const blob_contents = '\n\n' + + ''; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', '/common/blank.html'); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + + frame.onload = t.step_func(() => { + frame.contentWindow.location = url; + URL.revokeObjectURL(url); + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); + }); +}, 'Fetching a blob URL immediately before revoking it works in an iframe navigation.'); + +async_test(t => { + const run_result = 'test_frame_OK'; + const blob_contents = '\n\n' + + ''; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + const win = window.open(url); + URL.revokeObjectURL(url); + add_completion_callback(() => { win.close(); }); + + win.onload = t.step_func_done(() => { + assert_equals(win.test_result, run_result); + }); +}, 'Opening a blob URL in a new window immediately before revoking it works.'); + +function receive_message_on_channel(t, channel_name) { + const channel = new BroadcastChannel(channel_name); + return new Promise(resolve => { + channel.addEventListener('message', t.step_func(e => { + resolve(e.data); + })); + }); +} + +function window_contents_for_channel(channel_name) { + return '\n' + + ''; +} + +async_test(t => { + const channel_name = 'noopener-window-test'; + const blob = new Blob([window_contents_for_channel(channel_name)], {type: 'text/html'}); + receive_message_on_channel(t, channel_name).then(t.step_func_done(t => { + assert_equals(t, 'foobar'); + })); + const url = URL.createObjectURL(blob); + const win = window.open(); + win.opener = null; + win.location = url; + URL.revokeObjectURL(url); +}, 'Opening a blob URL in a noopener about:blank window immediately before revoking it works.'); + +async_test(t => { + const run_result = 'test_script_OK'; + const blob_contents = 'window.script_test_result = "' + run_result + '";'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + + const e = document.createElement('script'); + e.setAttribute('src', url); + e.onload = t.step_func_done(() => { + assert_equals(window.script_test_result, run_result); + }); + + document.body.appendChild(e); + URL.revokeObjectURL(url); +}, 'Fetching a blob URL immediately before revoking it works in '; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); +}, 'Blob URLs can be used in iframes, and are treated same origin'); + +async_test(t => { + const blob_contents = '\n\n' + + '\n' + + '\n' + + '
\n' + + '
'; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url + '#block2'); + document.body.appendChild(frame); + frame.contentWindow.onscroll = t.step_func_done(() => { + assert_equals(frame.contentWindow.scrollY, 5000); + }); +}, 'Blob URL fragment is implemented.'); diff --git a/test/fixtures/wpt/FileAPI/url/url-lifetime.html b/test/fixtures/wpt/FileAPI/url/url-lifetime.html new file mode 100644 index 00000000000000..ad5d667193a3d0 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-lifetime.html @@ -0,0 +1,56 @@ + + + + + + \ No newline at end of file diff --git a/test/fixtures/wpt/FileAPI/url/url-reload.window.js b/test/fixtures/wpt/FileAPI/url/url-reload.window.js new file mode 100644 index 00000000000000..d333b3a74aa82c --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-reload.window.js @@ -0,0 +1,36 @@ +function blob_url_reload_test(t, revoke_before_reload) { + const run_result = 'test_frame_OK'; + const blob_contents = '\n\n' + + ''; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + + frame.onload = t.step_func(() => { + if (revoke_before_reload) + URL.revokeObjectURL(url); + assert_equals(frame.contentWindow.test_result, run_result); + frame.contentWindow.test_result = null; + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); + // Slight delay before reloading to ensure revoke actually has had a chance + // to be processed. + t.step_timeout(() => { + frame.contentWindow.location.reload(); + }, 250); + }); +} + +async_test(t => { + blob_url_reload_test(t, false); +}, 'Reloading a blob URL succeeds.'); + + +async_test(t => { + blob_url_reload_test(t, true); +}, 'Reloading a blob URL succeeds even if the URL was revoked.'); diff --git a/test/fixtures/wpt/FileAPI/url/url-with-fetch.any.js b/test/fixtures/wpt/FileAPI/url/url-with-fetch.any.js new file mode 100644 index 00000000000000..9bd8d383df4e1e --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-with-fetch.any.js @@ -0,0 +1,53 @@ +// META: script=resources/fetch-tests.js + +function fetch_should_succeed(test, request) { + return fetch(request).then(response => response.text()); +} + +function fetch_should_fail(test, url, method = 'GET') { + return promise_rejects_js(test, TypeError, fetch(url, {method: method})); +} + +fetch_tests('fetch', fetch_should_succeed, fetch_should_fail); + +promise_test(t => { + const blob_contents = 'test blob contents'; + const blob_type = 'image/png'; + const blob = new Blob([blob_contents], {type: blob_type}); + const url = URL.createObjectURL(blob); + + return fetch(url).then(response => { + assert_equals(response.headers.get('Content-Type'), blob_type); + }); +}, 'fetch should return Content-Type from Blob'); + +promise_test(t => { + const blob_contents = 'test blob contents'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + const request = new Request(url); + + // Revoke the object URL. Request should take a reference to the blob as + // soon as it receives it in open(), so the request succeeds even though we + // revoke the URL before calling fetch(). + URL.revokeObjectURL(url); + + return fetch_should_succeed(t, request).then(text => { + assert_equals(text, blob_contents); + }); +}, 'Revoke blob URL after creating Request, will fetch'); + +promise_test(function(t) { + const blob_contents = 'test blob contents'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + + const result = fetch_should_succeed(t, url).then(text => { + assert_equals(text, blob_contents); + }); + + // Revoke the object URL. fetch should have already resolved the blob URL. + URL.revokeObjectURL(url); + + return result; +}, 'Revoke blob URL after calling fetch, fetch should succeed'); diff --git a/test/fixtures/wpt/FileAPI/url/url-with-xhr.any.js b/test/fixtures/wpt/FileAPI/url/url-with-xhr.any.js new file mode 100644 index 00000000000000..29d83080ab5845 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url-with-xhr.any.js @@ -0,0 +1,68 @@ +// META: script=resources/fetch-tests.js + +function xhr_should_succeed(test, url) { + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + xhr.open('GET', url); + xhr.onload = test.step_func(() => { + assert_equals(xhr.status, 200); + assert_equals(xhr.statusText, 'OK'); + resolve(xhr.response); + }); + xhr.onerror = () => reject('Got unexpected error event'); + xhr.send(); + }); +} + +function xhr_should_fail(test, url, method = 'GET') { + const xhr = new XMLHttpRequest(); + xhr.open(method, url); + const result1 = new Promise((resolve, reject) => { + xhr.onload = () => reject('Got unexpected load event'); + xhr.onerror = resolve; + }); + const result2 = new Promise(resolve => { + xhr.onreadystatechange = test.step_func(() => { + if (xhr.readyState !== xhr.DONE) return; + assert_equals(xhr.status, 0); + resolve(); + }); + }); + xhr.send(); + return Promise.all([result1, result2]); +} + +fetch_tests('XHR', xhr_should_succeed, xhr_should_fail); + +async_test(t => { + const blob_contents = 'test blob contents'; + const blob_type = 'image/png'; + const blob = new Blob([blob_contents], {type: blob_type}); + const url = URL.createObjectURL(blob); + const xhr = new XMLHttpRequest(); + xhr.open('GET', url); + xhr.onloadend = t.step_func_done(() => { + assert_equals(xhr.getResponseHeader('Content-Type'), blob_type); + }); + xhr.send(); +}, 'XHR should return Content-Type from Blob'); + +async_test(t => { + const blob_contents = 'test blob contents'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + const xhr = new XMLHttpRequest(); + xhr.open('GET', url); + + // Revoke the object URL. XHR should take a reference to the blob as soon as + // it receives it in open(), so the request succeeds even though we revoke the + // URL before calling send(). + URL.revokeObjectURL(url); + + xhr.onload = t.step_func_done(() => { + assert_equals(xhr.response, blob_contents); + }); + xhr.onerror = t.unreached_func('Got unexpected error event'); + + xhr.send(); +}, 'Revoke blob URL after open(), will fetch'); diff --git a/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file-manual.html b/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file-manual.html new file mode 100644 index 00000000000000..7ae32512e07c76 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file-manual.html @@ -0,0 +1,45 @@ + + +FileAPI Test: Creating Blob URL with File + + + + + + +
+

Test steps:

+
    +
  1. Download blue96x96.png to local.
  2. +
  3. Select the local file (blue96x96.png) to run the test.
  4. +
+
+ +
+ +
+ +
+ + + diff --git a/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file_img-manual.html b/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file_img-manual.html new file mode 100644 index 00000000000000..534c1de9968da8 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url_createobjecturl_file_img-manual.html @@ -0,0 +1,28 @@ + + +FileAPI Test: Creating Blob URL with File as image source + + + +
+

Test steps:

+
    +
  1. Download blue96x96.png to local.
  2. +
  3. Select the local file (blue96x96.png) to run the test.
  4. +
+

Pass/fail criteria:

+

Test passes if there is a filled blue square.

+ +

+

+
+ + + diff --git a/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img-ref.html b/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img-ref.html new file mode 100644 index 00000000000000..7d7390442d3631 --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img-ref.html @@ -0,0 +1,12 @@ + + +FileAPI Reference File + + + +

Test passes if there is a filled blue square.

+ +

+ +

+ diff --git a/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img.html b/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img.html new file mode 100644 index 00000000000000..468dcb086d770a --- /dev/null +++ b/test/fixtures/wpt/FileAPI/url/url_xmlhttprequest_img.html @@ -0,0 +1,27 @@ + + + +FileAPI Test: Creating Blob URL via XMLHttpRequest as image source + + + + +

Test passes if there is a filled blue square.

+ +

+ +

+ + + + diff --git a/test/fixtures/wpt/README.md b/test/fixtures/wpt/README.md index b7ce4b81443080..30dda41a52379b 100644 --- a/test/fixtures/wpt/README.md +++ b/test/fixtures/wpt/README.md @@ -20,6 +20,7 @@ Last update: - html/webappapis/timers: https://github.com/web-platform-tests/wpt/tree/ddfe9c089b/html/webappapis/timers - hr-time: https://github.com/web-platform-tests/wpt/tree/a5d1774ecf/hr-time - dom/abort: https://github.com/web-platform-tests/wpt/tree/1728d198c9/dom/abort +- FileAPI: https://github.com/web-platform-tests/wpt/tree/3b279420d4/FileAPI [Web Platform Tests]: https://github.com/web-platform-tests/wpt [`git node wpt`]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-wpt diff --git a/test/fixtures/wpt/versions.json b/test/fixtures/wpt/versions.json index 4a3e4b84d1f339..77ace95841fab3 100644 --- a/test/fixtures/wpt/versions.json +++ b/test/fixtures/wpt/versions.json @@ -38,5 +38,9 @@ "dom/abort": { "commit": "1728d198c92834d92f7f399ef35e7823d5bfa0e4", "path": "dom/abort" + }, + "FileAPI": { + "commit": "3b279420d40afea32506e823f9ac005448f4f3d8", + "path": "FileAPI" } } diff --git a/test/internet/test-dgram-multicast-multi-process.js b/test/internet/test-dgram-multicast-multi-process.js index 9d2e2c9f3ffd84..e19f8dc05b747a 100644 --- a/test/internet/test-dgram-multicast-multi-process.js +++ b/test/internet/test-dgram-multicast-multi-process.js @@ -35,7 +35,7 @@ const messages = [ Buffer.from('First message to send'), Buffer.from('Second message to send'), Buffer.from('Third message to send'), - Buffer.from('Fourth message to send') + Buffer.from('Fourth message to send'), ]; const workers = {}; const listeners = 3; diff --git a/test/internet/test-dgram-multicast-set-interface-lo.js b/test/internet/test-dgram-multicast-set-interface-lo.js index e06969b7b23673..11c3d47cff0637 100644 --- a/test/internet/test-dgram-multicast-set-interface-lo.js +++ b/test/internet/test-dgram-multicast-set-interface-lo.js @@ -70,7 +70,7 @@ const messages = [ { tail: 'Fourth message to send', mcast: MULTICASTS[FAM][2] }, { tail: 'Fifth message to send', mcast: MULTICASTS[FAM][1], rcv: true }, { tail: 'Sixth message to send', mcast: MULTICASTS[FAM][2], rcv: true, - newAddr: LOOPBACK[FAM] } + newAddr: LOOPBACK[FAM] }, ]; diff --git a/test/internet/test-dgram-multicast-ssm-multi-process.js b/test/internet/test-dgram-multicast-ssm-multi-process.js index 1771a4204c137b..5653559e243c7a 100644 --- a/test/internet/test-dgram-multicast-ssm-multi-process.js +++ b/test/internet/test-dgram-multicast-ssm-multi-process.js @@ -14,7 +14,7 @@ const messages = [ Buffer.from('First message to send'), Buffer.from('Second message to send'), Buffer.from('Third message to send'), - Buffer.from('Fourth message to send') + Buffer.from('Fourth message to send'), ]; const workers = {}; const listeners = 3; diff --git a/test/internet/test-dgram-multicast-ssmv6-multi-process.js b/test/internet/test-dgram-multicast-ssmv6-multi-process.js index 88bb563364bfe3..e139d93a971a28 100644 --- a/test/internet/test-dgram-multicast-ssmv6-multi-process.js +++ b/test/internet/test-dgram-multicast-ssmv6-multi-process.js @@ -14,7 +14,7 @@ const messages = [ Buffer.from('First message to send'), Buffer.from('Second message to send'), Buffer.from('Third message to send'), - Buffer.from('Fourth message to send') + Buffer.from('Fourth message to send'), ]; const workers = {}; const listeners = 3; diff --git a/test/internet/test-dns-cares-domains.js b/test/internet/test-dns-cares-domains.js index 6609758a7daf17..4a8e0eee71ba72 100644 --- a/test/internet/test-dns-cares-domains.js +++ b/test/internet/test-dns-cares-domains.js @@ -15,7 +15,7 @@ const methods = [ 'resolveSrv', 'resolvePtr', 'resolveNaptr', - 'resolveSoa' + 'resolveSoa', ]; methods.forEach(function(method) { diff --git a/test/internet/test-trace-events-dns.js b/test/internet/test-trace-events-dns.js index 8c6bd249cbf2a7..529665f907b0c9 100644 --- a/test/internet/test-trace-events-dns.js +++ b/test/internet/test-trace-events-dns.js @@ -45,7 +45,7 @@ for (const tr in tests) { [ '--trace-event-categories', 'node.dns.native', '-e', - test_str + tests[tr] + test_str + tests[tr], ], { encoding: 'utf8' }); diff --git a/test/js-native-api/test_array/test.js b/test/js-native-api/test_array/test.js index 4ec05596cf63bc..c2a6b11a6074d5 100644 --- a/test/js-native-api/test_array/test.js +++ b/test/js-native-api/test_array/test.js @@ -15,8 +15,8 @@ const array = [ [ 'world', 'node', - 'abi' - ] + 'abi', + ], ]; assert.throws( diff --git a/test/js-native-api/test_exception/test.js b/test/js-native-api/test_exception/test.js index ff11b702198b88..38e8fd1d6b6bdc 100644 --- a/test/js-native-api/test_exception/test.js +++ b/test/js-native-api/test_exception/test.js @@ -48,6 +48,34 @@ const test_exception = (function() { ` thrown, but ${returnedError} was passed`); } + +{ + const throwTheError = class { constructor() { throw theError; } }; + + // Test that the native side successfully captures the exception + let returnedError = test_exception.constructReturnException(throwTheError); + assert.strictEqual(returnedError, theError); + + // Test that the native side passes the exception through + assert.throws( + () => { test_exception.constructAllowException(throwTheError); }, + (err) => err === theError + ); + + // Test that the exception thrown above was marked as pending + // before it was handled on the JS side + const exception_pending = test_exception.wasPending(); + assert.strictEqual(exception_pending, true, + 'Exception not pending as expected,' + + ` .wasPending() returned ${exception_pending}`); + + // Test that the native side does not capture a non-existing exception + returnedError = test_exception.constructReturnException(common.mustCall()); + assert.strictEqual(returnedError, undefined, + 'Returned error should be undefined when no exception is' + + ` thrown, but ${returnedError} was passed`); +} + { // Test that no exception appears that was not thrown by us let caughtError; @@ -66,3 +94,22 @@ const test_exception = (function() { 'Exception state did not remain clear as expected,' + ` .wasPending() returned ${exception_pending}`); } + +{ + // Test that no exception appears that was not thrown by us + let caughtError; + try { + test_exception.constructAllowException(common.mustCall()); + } catch (anError) { + caughtError = anError; + } + assert.strictEqual(caughtError, undefined, + 'No exception originated on the native side, but' + + ` ${caughtError} was passed`); + + // Test that the exception state remains clear when no exception is thrown + const exception_pending = test_exception.wasPending(); + assert.strictEqual(exception_pending, false, + 'Exception state did not remain clear as expected,' + + ` .wasPending() returned ${exception_pending}`); +} diff --git a/test/js-native-api/test_exception/testFinalizerException.js b/test/js-native-api/test_exception/testFinalizerException.js index 4b6993fde47164..16f8bd5fe76228 100644 --- a/test/js-native-api/test_exception/testFinalizerException.js +++ b/test/js-native-api/test_exception/testFinalizerException.js @@ -26,7 +26,7 @@ if (process.argv[2] === 'child') { const assert = require('assert'); const { spawnSync } = require('child_process'); const child = spawnSync(process.execPath, [ - '--expose-gc', __filename, 'child' + '--expose-gc', __filename, 'child', ]); assert.strictEqual(child.signal, null); assert.match(child.stderr.toString(), /Error during Finalize/); diff --git a/test/js-native-api/test_exception/test_exception.c b/test/js-native-api/test_exception/test_exception.c index 01adf42c942b8f..9cd8ed36cd4bd5 100644 --- a/test/js-native-api/test_exception/test_exception.c +++ b/test/js-native-api/test_exception/test_exception.c @@ -22,6 +22,22 @@ static napi_value returnException(napi_env env, napi_callback_info info) { return NULL; } +static napi_value constructReturnException(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + napi_value result; + napi_status status = napi_new_instance(env, args[0], 0, 0, &result); + if (status == napi_pending_exception) { + napi_value ex; + NAPI_CALL(env, napi_get_and_clear_last_exception(env, &ex)); + return ex; + } + + return NULL; +} + static napi_value allowException(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1]; @@ -38,6 +54,19 @@ static napi_value allowException(napi_env env, napi_callback_info info) { return NULL; } +static napi_value constructAllowException(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + napi_value result; + napi_new_instance(env, args[0], 0, 0, &result); + // Ignore status and check napi_is_exception_pending() instead. + + NAPI_CALL(env, napi_is_exception_pending(env, &exceptionWasPending)); + return NULL; +} + static napi_value wasPending(napi_env env, napi_callback_info info) { napi_value result; NAPI_CALL(env, napi_get_boolean(env, exceptionWasPending, &result)); @@ -64,6 +93,8 @@ napi_value Init(napi_env env, napi_value exports) { napi_property_descriptor descriptors[] = { DECLARE_NAPI_PROPERTY("returnException", returnException), DECLARE_NAPI_PROPERTY("allowException", allowException), + DECLARE_NAPI_PROPERTY("constructReturnException", constructReturnException), + DECLARE_NAPI_PROPERTY("constructAllowException", constructAllowException), DECLARE_NAPI_PROPERTY("wasPending", wasPending), DECLARE_NAPI_PROPERTY("createExternal", createExternal), }; diff --git a/test/js-native-api/test_function/test.js b/test/js-native-api/test_function/test.js index 988f128404e429..972adcd79f54b2 100644 --- a/test/js-native-api/test_function/test.js +++ b/test/js-native-api/test_function/test.js @@ -42,3 +42,11 @@ assert.deepStrictEqual(test_function.TestCreateFunctionParameters(), { cbIsNull: 'Invalid argument', resultIsNull: 'Invalid argument' }); + +assert.throws( + () => test_function.TestBadReturnExceptionPending(), + { + code: 'throwing exception', + name: 'Error' + } +); diff --git a/test/js-native-api/test_function/test_function.c b/test/js-native-api/test_function/test_function.c index 713e935e08c972..922d298136aa43 100644 --- a/test/js-native-api/test_function/test_function.c +++ b/test/js-native-api/test_function/test_function.c @@ -153,6 +153,19 @@ static napi_value MakeTrackedFunction(napi_env env, napi_callback_info info) { return result; } +static napi_value TestBadReturnExceptionPending(napi_env env, napi_callback_info info) { + napi_throw_error(env, "throwing exception", "throwing exception"); + + // addons should only ever return a valid napi_value even if an + // exception occurs, but we have seen that the C++ wrapper + // with exceptions enabled sometimes returns an invalid value + // when an exception is thrown. Test that we ignore the return + // value then an exeption is pending. We use 0xFFFFFFFF as a value + // that should never be a valid napi_value and node seems to + // crash if it is not ignored indicating that it is indeed invalid. + return (napi_value)(0xFFFFFFFFF); +} + EXTERN_C_START napi_value Init(napi_env env, napi_value exports) { napi_value fn1; @@ -183,6 +196,12 @@ napi_value Init(napi_env env, napi_value exports) { NULL, &fn5)); + napi_value fn6; + NAPI_CALL(env, + napi_create_function( + env, "TestBadReturnExceptionPending", NAPI_AUTO_LENGTH, + TestBadReturnExceptionPending, NULL, &fn6)); + NAPI_CALL(env, napi_set_named_property(env, exports, "TestCall", fn1)); NAPI_CALL(env, napi_set_named_property(env, exports, "TestName", fn2)); NAPI_CALL(env, napi_set_named_property(env, exports, "TestNameShort", fn3)); @@ -196,6 +215,10 @@ napi_value Init(napi_env env, napi_value exports) { "TestCreateFunctionParameters", fn5)); + NAPI_CALL(env, + napi_set_named_property( + env, exports, "TestBadReturnExceptionPending", fn6)); + return exports; } EXTERN_C_END diff --git a/test/js-native-api/test_general/test.js b/test/js-native-api/test_general/test.js index 76527bc81c7cd8..ec5c4fe0ddc86f 100644 --- a/test/js-native-api/test_general/test.js +++ b/test/js-native-api/test_general/test.js @@ -42,7 +42,7 @@ assert.strictEqual(test_general.testGetVersion(), 8); new Object(), true, undefined, - Symbol() + Symbol(), ].forEach((val) => { assert.strictEqual(test_general.testNapiTypeof(val), typeof val); }); diff --git a/test/js-native-api/test_object/test.js b/test/js-native-api/test_object/test.js index e5923ecd16c2cf..807c920bd46b54 100644 --- a/test/js-native-api/test_object/test.js +++ b/test/js-native-api/test_object/test.js @@ -9,7 +9,7 @@ const test_object = require(`./build/${common.buildType}/test_object`); const object = { hello: 'world', array: [ - 1, 94, 'str', 12.321, { test: 'obj in arr' } + 1, 94, 'str', 12.321, { test: 'obj in arr' }, ], newObject: { test: 'obj in obj' diff --git a/test/message/2100bytes.js b/test/message/2100bytes.js index ff1b51f4653394..abd8c4b55246ae 100644 --- a/test/message/2100bytes.js +++ b/test/message/2100bytes.js @@ -64,5 +64,5 @@ console.log([ '_____________________________________________1950', '_____________________________________________2000', '_____________________________________________2050', - '_____________________________________________2100' + '_____________________________________________2100', ].join('\n')); diff --git a/test/message/async_error_eval_cjs.js b/test/message/async_error_eval_cjs.js index a2caaa0937745e..820507beda9937 100644 --- a/test/message/async_error_eval_cjs.js +++ b/test/message/async_error_eval_cjs.js @@ -27,7 +27,7 @@ main(); { const child = spawnSync(process.execPath, [ '-e', - main + main, ], { env: { ...process.env } }); diff --git a/test/message/async_error_eval_esm.js b/test/message/async_error_eval_esm.js index 0c9b7378d54729..dfab2b8a8264e9 100644 --- a/test/message/async_error_eval_esm.js +++ b/test/message/async_error_eval_esm.js @@ -29,7 +29,7 @@ main(); '--input-type', 'module', '-e', - main + main, ], { env: { ...process.env } }); diff --git a/test/message/esm_loader_not_found.out b/test/message/esm_loader_not_found.out index 26292512d9b002..61291a9bbc5ec1 100644 --- a/test/message/esm_loader_not_found.out +++ b/test/message/esm_loader_not_found.out @@ -4,6 +4,7 @@ internal/process/esm_loader.js:* internalBinding('errors').triggerUncaughtException( ^ Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'i-dont-exist' imported from * + at new NodeError (internal/errors.js:*:*) at packageResolve (internal/modules/esm/resolve.js:*:*) at moduleResolve (internal/modules/esm/resolve.js:*:*) at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*) @@ -12,7 +13,6 @@ Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'i-dont-exist' imported from * at Loader.import (internal/modules/esm/loader.js:*:*) at internal/process/esm_loader.js:*:* at initializeLoader (internal/process/esm_loader.js:*:*) - at Object.loadESM (internal/process/esm_loader.js:*:*) - at runMainESM (internal/modules/run_main.js:*:*) { + at Object.loadESM (internal/process/esm_loader.js:*:*) { code: 'ERR_MODULE_NOT_FOUND' } diff --git a/test/message/esm_loader_not_found_cjs_hint_bare.js b/test/message/esm_loader_not_found_cjs_hint_bare.js index b049fd203fef06..437fa2d3d430a1 100644 --- a/test/message/esm_loader_not_found_cjs_hint_bare.js +++ b/test/message/esm_loader_not_found_cjs_hint_bare.js @@ -8,7 +8,7 @@ const { fixturesDir } = require('../common/fixtures'); spawn( process.execPath, [ - join(fixturesDir, 'esm_loader_not_found_cjs_hint_bare.mjs') + join(fixturesDir, 'esm_loader_not_found_cjs_hint_bare.mjs'), ], { cwd: fixturesDir, diff --git a/test/message/esm_loader_not_found_cjs_hint_bare.out b/test/message/esm_loader_not_found_cjs_hint_bare.out index c3f758577eb4d6..c6164006300094 100644 --- a/test/message/esm_loader_not_found_cjs_hint_bare.out +++ b/test/message/esm_loader_not_found_cjs_hint_bare.out @@ -4,6 +4,7 @@ internal/process/esm_loader.js:* Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*fixtures*node_modules*some_module*obj' imported from *test*fixtures*esm_loader_not_found_cjs_hint_bare.mjs Did you mean to import some_module/obj.js? + at new NodeError (internal/errors.js:*:*) at finalizeResolution (internal/modules/esm/resolve.js:*:*) at moduleResolve (internal/modules/esm/resolve.js:*:*) at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*) diff --git a/test/message/esm_loader_not_found_cjs_hint_relative.out b/test/message/esm_loader_not_found_cjs_hint_relative.out index 1c43c0d3a2eb31..edfe27a1f3b461 100644 --- a/test/message/esm_loader_not_found_cjs_hint_relative.out +++ b/test/message/esm_loader_not_found_cjs_hint_relative.out @@ -6,6 +6,7 @@ internal/process/esm_loader.js:* Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*common*fixtures' imported from * Did you mean to import ./test/common/fixtures.js? + at new NodeError (internal/errors.js:*:*) at finalizeResolution (internal/modules/esm/resolve.js:*:*) at moduleResolve (internal/modules/esm/resolve.js:*:*) at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:*:*) @@ -14,7 +15,6 @@ Did you mean to import ./test/common/fixtures.js? at Loader.import (internal/modules/esm/loader.js:*:*) at internal/process/esm_loader.js:*:* at initializeLoader (internal/process/esm_loader.js:*:*) - at Object.loadESM (internal/process/esm_loader.js:*:*) - at runMainESM (internal/modules/run_main.js:*:*) { + at Object.loadESM (internal/process/esm_loader.js:*:*) { code: 'ERR_MODULE_NOT_FOUND' } diff --git a/test/message/internal_assert.out b/test/message/internal_assert.out index cf09fdcb605269..9ca8350756c9ad 100644 --- a/test/message/internal_assert.out +++ b/test/message/internal_assert.out @@ -5,6 +5,7 @@ internal/assert.js:* Error [ERR_INTERNAL_ASSERTION]: This is caused by either a bug in Node.js or incorrect usage of Node.js internals. Please open an issue with this stack trace at https://github.com/nodejs/node/issues + at new NodeError (internal/errors.js:*:*) at assert (internal/assert.js:*:*) at * (*test*message*internal_assert.js:7:1) at * diff --git a/test/message/internal_assert_fail.out b/test/message/internal_assert_fail.out index 11b532b7b2af3c..11e253703170d2 100644 --- a/test/message/internal_assert_fail.out +++ b/test/message/internal_assert_fail.out @@ -6,6 +6,7 @@ Error [ERR_INTERNAL_ASSERTION]: Unreachable! This is caused by either a bug in Node.js or incorrect usage of Node.js internals. Please open an issue with this stack trace at https://github.com/nodejs/node/issues + at new NodeError (internal/errors.js:*:*) at Function.fail (internal/assert.js:*:*) at * (*test*message*internal_assert_fail.js:7:8) at * diff --git a/test/message/source_map_disabled_by_api.js b/test/message/source_map_disabled_by_api.js new file mode 100644 index 00000000000000..8405e4f3661cff --- /dev/null +++ b/test/message/source_map_disabled_by_api.js @@ -0,0 +1,20 @@ +// Flags: --enable-source-maps + +'use strict'; +require('../common'); + +process.setSourceMapsEnabled(false); + +try { + require('../fixtures/source-map/enclosing-call-site-min.js'); +} catch (e) { + console.log(e); +} + +delete require.cache[require + .resolve('../fixtures/source-map/enclosing-call-site-min.js')]; + +// Re-enable. +process.setSourceMapsEnabled(true); + +require('../fixtures/source-map/enclosing-call-site-min.js'); diff --git a/test/message/source_map_disabled_by_api.out b/test/message/source_map_disabled_by_api.out new file mode 100644 index 00000000000000..46762a0b476f10 --- /dev/null +++ b/test/message/source_map_disabled_by_api.out @@ -0,0 +1,26 @@ +Error: an error! + at functionD (*enclosing-call-site-min.js:1:156) + at functionC (*enclosing-call-site-min.js:1:97) + at functionB (*enclosing-call-site-min.js:1:60) + at functionA (*enclosing-call-site-min.js:1:26) + at Object. (*enclosing-call-site-min.js:1:199) + at Module._compile (internal/modules/cjs/loader.js:*) + at Object.Module._extensions..js (internal/modules/cjs/loader.js:*) + at Module.load (internal/modules/cjs/loader.js:*) + at Function.Module._load (internal/modules/cjs/loader.js:*) + at Module.require (internal/modules/cjs/loader.js:*) +*enclosing-call-site.js:16 + throw new Error('an error!') + ^ + +Error: an error! + at functionD (*enclosing-call-site.js:16:17) + at functionC (*enclosing-call-site.js:10:3) + at functionB (*enclosing-call-site.js:6:3) + at functionA (*enclosing-call-site.js:2:3) + at Object. (*enclosing-call-site.js:24:3) + at Module._compile (internal/modules/cjs/loader.js:*) + at Object.Module._extensions..js (internal/modules/cjs/loader.js:*) + at Module.load (internal/modules/cjs/loader.js:*) + at Function.Module._load (internal/modules/cjs/loader.js:*) + at Module.require (internal/modules/cjs/loader.js:*) diff --git a/test/message/source_map_enabled_by_api.js b/test/message/source_map_enabled_by_api.js new file mode 100644 index 00000000000000..3133bd26399fd4 --- /dev/null +++ b/test/message/source_map_enabled_by_api.js @@ -0,0 +1,17 @@ +'use strict'; +require('../common'); + +process.setSourceMapsEnabled(true); + +try { + require('../fixtures/source-map/enclosing-call-site-min.js'); +} catch (e) { + console.log(e); +} + +delete require.cache[require + .resolve('../fixtures/source-map/enclosing-call-site-min.js')]; + +process.setSourceMapsEnabled(false); + +require('../fixtures/source-map/enclosing-call-site-min.js'); diff --git a/test/message/source_map_enabled_by_api.out b/test/message/source_map_enabled_by_api.out new file mode 100644 index 00000000000000..3f111ee2f7dee8 --- /dev/null +++ b/test/message/source_map_enabled_by_api.out @@ -0,0 +1,30 @@ +*enclosing-call-site.js:16 + throw new Error('an error!') + ^ + +Error: an error! + at functionD (*enclosing-call-site.js:16:17) + at functionC (*enclosing-call-site.js:10:3) + at functionB (*enclosing-call-site.js:6:3) + at functionA (*enclosing-call-site.js:2:3) + at Object. (*enclosing-call-site.js:24:3) + at Module._compile (internal/modules/cjs/loader.js:*) + at Object.Module._extensions..js (internal/modules/cjs/loader.js:*) + at Module.load (internal/modules/cjs/loader.js:*) + at Function.Module._load (internal/modules/cjs/loader.js:*) + at Module.require (internal/modules/cjs/loader.js:*) +*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 (internal/modules/cjs/loader.js:*) + at Object.Module._extensions..js (internal/modules/cjs/loader.js:*) + at Module.load (internal/modules/cjs/loader.js:*) + at Function.Module._load (internal/modules/cjs/loader.js:*) + at Module.require (internal/modules/cjs/loader.js:*) diff --git a/test/node-api/test_async/test-async-hooks.js b/test/node-api/test_async/test-async-hooks.js index db6e0cbd1679e6..e7879c5ad2b686 100644 --- a/test/node-api/test_async/test-async-hooks.js +++ b/test/node-api/test_async/test-async-hooks.js @@ -55,6 +55,6 @@ process.on('exit', () => { { type: 'before', id: testId }, { type: 'complete' }, { type: 'after', id: testId }, - { type: 'destroy', id: testId } + { type: 'destroy', id: testId }, ]); }); diff --git a/test/node-api/test_fatal/test.js b/test/node-api/test_fatal/test.js index 7ff9a395635dce..c4af828ff154d1 100644 --- a/test/node-api/test_fatal/test.js +++ b/test/node-api/test_fatal/test.js @@ -16,3 +16,4 @@ const p = child_process.spawnSync( assert.ifError(p.error); assert.ok(p.stderr.toString().includes( 'FATAL ERROR: test_fatal::Test fatal message')); +assert.ok(p.status === 134 || p.signal === 'SIGABRT'); diff --git a/test/node-api/test_fatal/test2.js b/test/node-api/test_fatal/test2.js index b9bde8f13016cc..6449f098458d76 100644 --- a/test/node-api/test_fatal/test2.js +++ b/test/node-api/test_fatal/test2.js @@ -16,3 +16,4 @@ const p = child_process.spawnSync( assert.ifError(p.error); assert.ok(p.stderr.toString().includes( 'FATAL ERROR: test_fatal::Test fatal message')); +assert.ok(p.status === 134 || p.signal === 'SIGABRT'); diff --git a/test/node-api/test_fatal/test_fatal.c b/test/node-api/test_fatal/test_fatal.c index 70bb458ef20e4e..1b4bdd180e5dfa 100644 --- a/test/node-api/test_fatal/test_fatal.c +++ b/test/node-api/test_fatal/test_fatal.c @@ -1,12 +1,32 @@ +// For the purpose of this test we use libuv's threading library. When deciding +// on a threading library for a new project it bears remembering that in the +// future libuv may introduce API changes which may render it non-ABI-stable, +// which, in turn, may affect the ABI stability of the project despite its use +// of N-API. +#include #include #include "../../js-native-api/common.h" +static uv_thread_t uv_thread; + +static void work_thread(void* data) { + napi_fatal_error("work_thread", NAPI_AUTO_LENGTH, + "foobar", NAPI_AUTO_LENGTH); +} + static napi_value Test(napi_env env, napi_callback_info info) { napi_fatal_error("test_fatal::Test", NAPI_AUTO_LENGTH, "fatal message", NAPI_AUTO_LENGTH); return NULL; } +static napi_value TestThread(napi_env env, napi_callback_info info) { + NAPI_ASSERT(env, + (uv_thread_create(&uv_thread, work_thread, NULL) == 0), + "Thread creation"); + return NULL; +} + static napi_value TestStringLength(napi_env env, napi_callback_info info) { napi_fatal_error("test_fatal::TestStringLength", 16, "fatal message", 13); return NULL; @@ -16,6 +36,7 @@ static napi_value Init(napi_env env, napi_value exports) { napi_property_descriptor properties[] = { DECLARE_NAPI_PROPERTY("Test", Test), DECLARE_NAPI_PROPERTY("TestStringLength", TestStringLength), + DECLARE_NAPI_PROPERTY("TestThread", TestThread), }; NAPI_CALL(env, napi_define_properties( diff --git a/test/node-api/test_fatal/test_threads.js b/test/node-api/test_fatal/test_threads.js new file mode 100644 index 00000000000000..fd56f60cbe832f --- /dev/null +++ b/test/node-api/test_fatal/test_threads.js @@ -0,0 +1,20 @@ +'use strict'; +const common = require('../../common'); +const assert = require('assert'); +const child_process = require('child_process'); +const test_fatal = require(`./build/${common.buildType}/test_fatal`); + +// Test in a child process because the test code will trigger a fatal error +// that crashes the process. +if (process.argv[2] === 'child') { + test_fatal.TestThread(); + // Busy loop to allow the work thread to abort. + while (true) {} +} + +const p = child_process.spawnSync( + process.execPath, [ __filename, 'child' ]); +assert.ifError(p.error); +assert.ok(p.stderr.toString().includes( + 'FATAL ERROR: work_thread foobar')); +assert.ok(p.status === 134 || p.signal === 'SIGABRT'); diff --git a/test/node-api/test_fatal/test_threads_report.js b/test/node-api/test_fatal/test_threads_report.js new file mode 100644 index 00000000000000..83c6642bdc41eb --- /dev/null +++ b/test/node-api/test_fatal/test_threads_report.js @@ -0,0 +1,36 @@ +'use strict'; +const common = require('../../common'); +const helper = require('../../common/report.js'); +const tmpdir = require('../../common/tmpdir'); + +const assert = require('assert'); +const child_process = require('child_process'); +const test_fatal = require(`./build/${common.buildType}/test_fatal`); + +if (common.buildType === 'Debug') + common.skip('as this will currently fail with a Debug check ' + + 'in v8::Isolate::GetCurrent()'); + +// Test in a child process because the test code will trigger a fatal error +// that crashes the process. +if (process.argv[2] === 'child') { + test_fatal.TestThread(); + // Busy loop to allow the work thread to abort. + while (true) {} +} + +tmpdir.refresh(); +const p = child_process.spawnSync( + process.execPath, + [ '--report-on-fatalerror', __filename, 'child' ], + { cwd: tmpdir.path }); +assert.ifError(p.error); +assert.ok(p.stderr.toString().includes( + 'FATAL ERROR: work_thread foobar')); +assert.ok(p.status === 134 || p.signal === 'SIGABRT'); + +const reports = helper.findReports(p.pid, tmpdir.path); +assert.strictEqual(reports.length, 1); + +const report = reports[0]; +helper.validate(report); diff --git a/test/node-api/test_general/test.js b/test/node-api/test_general/test.js index 108d51a1e11ac9..dd409f010a3ada 100644 --- a/test/node-api/test_general/test.js +++ b/test/node-api/test_general/test.js @@ -1,9 +1,14 @@ 'use strict'; const common = require('../../common'); -const test_general = require(`./build/${common.buildType}/test_general`); +const filename = require.resolve(`./build/${common.buildType}/test_general`); +const test_general = require(filename); const assert = require('assert'); +// TODO(gabrielschulhof): This test may need updating if/when the filename +// becomes a full-fledged URL. +assert.strictEqual(test_general.filename, `file://${filename}`); + const [ major, minor, patch, release ] = test_general.testGetNodeVersion(); assert.strictEqual(process.version.split('-')[0], `v${major}.${minor}.${patch}`); diff --git a/test/node-api/test_general/test_general.c b/test/node-api/test_general/test_general.c index be805f782be8d5..5c2c2817312de1 100644 --- a/test/node-api/test_general/test_general.c +++ b/test/node-api/test_general/test_general.c @@ -1,3 +1,4 @@ +#define NAPI_EXPERIMENTAL #include #include #include "../../js-native-api/common.h" @@ -21,9 +22,21 @@ static napi_value testGetNodeVersion(napi_env env, napi_callback_info info) { return result; } +static napi_value GetFilename(napi_env env, napi_callback_info info) { + const char* filename; + napi_value result; + + NAPI_CALL(env, node_api_get_module_file_name(env, &filename)); + NAPI_CALL(env, + napi_create_string_utf8(env, filename, NAPI_AUTO_LENGTH, &result)); + + return result; +} + static napi_value Init(napi_env env, napi_value exports) { napi_property_descriptor descriptors[] = { DECLARE_NAPI_PROPERTY("testGetNodeVersion", testGetNodeVersion), + DECLARE_NAPI_GETTER("filename", GetFilename), }; NAPI_CALL(env, napi_define_properties( diff --git a/test/node-api/test_policy/test_policy.js b/test/node-api/test_policy/test_policy.js index b3f477567e37ba..b69dbded585891 100644 --- a/test/node-api/test_policy/test_policy.js +++ b/test/node-api/test_policy/test_policy.js @@ -44,7 +44,7 @@ function test(shouldFail, resources) { const { status, stdout, stderr } = spawnSync(process.execPath, [ '--experimental-policy', policyFilepath, - depFilepath + depFilepath, ]); console.log(stdout.toString(), stderr.toString()); diff --git a/test/overlapped-checker/main_unix.c b/test/overlapped-checker/main_unix.c new file mode 100644 index 00000000000000..9d3d83af0f1068 --- /dev/null +++ b/test/overlapped-checker/main_unix.c @@ -0,0 +1,51 @@ +#include +#include +#include + +#include +#include + +static size_t r(char* buf, size_t buf_size) { + ssize_t read_count; + do + read_count = read(0, buf, buf_size); + while (read_count < 0 && errno == EINTR); + if (read_count <= 0) + abort(); + return (size_t)read_count; +} + +static void w(const char* buf, size_t count) { + const char* end = buf + count; + + while (buf < end) { + ssize_t write_count; + do + write_count = write(1, buf, count); + while (write_count < 0 && errno == EINTR); + if (write_count <= 0) + abort(); + buf += write_count; + } + + fprintf(stderr, "%zu", count); + fflush(stderr); +} + +int main(void) { + w("0", 1); + + while (1) { + char buf[256]; + size_t read_count = r(buf, sizeof(buf)); + // The JS part (test-child-process-stdio-overlapped.js) only writes the + // "exit" string when the buffer is empty, so the read is guaranteed to be + // atomic due to it being less than PIPE_BUF. + if (!strncmp(buf, "exit", read_count)) { + break; + } + w(buf, read_count); + } + + return 0; +} diff --git a/test/overlapped-checker/main_win.c b/test/overlapped-checker/main_win.c new file mode 100644 index 00000000000000..c38b7febe6ddc5 --- /dev/null +++ b/test/overlapped-checker/main_win.c @@ -0,0 +1,85 @@ +#include +#include +#include + +#include + +static char buf[256]; +static DWORD read_count; +static DWORD write_count; +static HANDLE stdin_h; +static OVERLAPPED stdin_o; + +static void die(const char* buf) { + fprintf(stderr, "%s\n", buf); + fflush(stderr); + exit(100); +} + +static void overlapped_read(void) { + if (ReadFile(stdin_h, buf, sizeof(buf), NULL, &stdin_o)) { + // Since we start the read operation immediately before requesting a write, + // it should never complete synchronously since no data would be available + die("read completed synchronously"); + } + if (GetLastError() != ERROR_IO_PENDING) { + die("overlapped read failed"); + } +} + +static void write(const char* buf, size_t buf_size) { + overlapped_read(); + DWORD write_count; + HANDLE stdout_h = GetStdHandle(STD_OUTPUT_HANDLE); + if (!WriteFile(stdout_h, buf, buf_size, &write_count, NULL)) { + die("overlapped write failed"); + } + fprintf(stderr, "%d", write_count); + fflush(stderr); +} + +int main(void) { + HANDLE event = CreateEvent(NULL, FALSE, FALSE, NULL); + if (event == NULL) { + die("failed to create event handle"); + } + + stdin_h = GetStdHandle(STD_INPUT_HANDLE); + stdin_o.hEvent = event; + + write("0", 1); + + while (1) { + DWORD result = WaitForSingleObject(event, INFINITE); + if (result == WAIT_OBJECT_0) { + if (!GetOverlappedResult(stdin_h, &stdin_o, &read_count, FALSE)) { + die("failed to get overlapped read result"); + } + if (strncmp(buf, "exit", read_count) == 0) { + break; + } + write(buf, read_count); + } else { + char emsg[0xfff]; + int ecode = GetLastError(); + DWORD rv = FormatMessage( + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + ecode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)emsg, + sizeof(emsg), + NULL); + if (rv > 0) { + snprintf(emsg, sizeof(emsg), + "WaitForSingleObject failed. Error %d (%s)", ecode, emsg); + } else { + snprintf(emsg, sizeof(emsg), + "WaitForSingleObject failed. Error %d", ecode); + } + die(emsg); + } + } + + return 0; +} diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index d922a520945fe6..6ccc9e625fdc84 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -13,6 +13,8 @@ test-timers-immediate-queue: PASS,FLAKY test-worker-memory: PASS,FLAKY [$system==linux] +# https://github.com/nodejs/node/issues/39368 +test-domain-error-types: PASS,FLAKY [$system==macos] diff --git a/test/parallel/test-abortcontroller.js b/test/parallel/test-abortcontroller.js index a2036ee7956fdf..049dc72b93995a 100644 --- a/test/parallel/test-abortcontroller.js +++ b/test/parallel/test-abortcontroller.js @@ -94,7 +94,7 @@ const { Event } = require('internal/event_target'); NaN, true, 'AbortController', - Object.create(AbortController.prototype) + Object.create(AbortController.prototype), ]; for (const badController of badAbortControllers) { throws( @@ -125,7 +125,7 @@ const { Event } = require('internal/event_target'); NaN, true, 'AbortSignal', - Object.create(AbortSignal.prototype) + Object.create(AbortSignal.prototype), ]; for (const badSignal of badAbortSignals) { throws( diff --git a/test/parallel/test-assert-deep.js b/test/parallel/test-assert-deep.js index b14179c85c8a8f..c74ca48d26cb74 100644 --- a/test/parallel/test-assert-deep.js +++ b/test/parallel/test-assert-deep.js @@ -164,7 +164,7 @@ assert.throws( new Int32Array([1]), // Int32Array new Uint32Array([1]), // Uint32Array Buffer.from([1]), // Uint8Array - (function() { return arguments; })(1) + (function() { return arguments; })(1), ]); for (const a of similar) { diff --git a/test/parallel/test-assert-typedarray-deepequal.js b/test/parallel/test-assert-typedarray-deepequal.js index 6be4c10595ab45..a31da2739af93e 100644 --- a/test/parallel/test-assert-typedarray-deepequal.js +++ b/test/parallel/test-assert-typedarray-deepequal.js @@ -25,12 +25,12 @@ const equalArrayPairs = [ [new Uint16Array([1, 2, 3, 4]).subarray(1), new Uint16Array([2, 3, 4])], [new Uint32Array([1, 2, 3, 4]).subarray(1, 3), new Uint32Array([2, 3])], [new ArrayBuffer(3), new ArrayBuffer(3)], - [new SharedArrayBuffer(3), new SharedArrayBuffer(3)] + [new SharedArrayBuffer(3), new SharedArrayBuffer(3)], ]; const looseEqualArrayPairs = [ [new Float32Array([+0.0]), new Float32Array([-0.0])], - [new Float64Array([+0.0]), new Float64Array([-0.0])] + [new Float64Array([+0.0]), new Float64Array([-0.0])], ]; const notEqualArrayPairs = [ @@ -52,15 +52,15 @@ const notEqualArrayPairs = [ [new Uint8Array([1, 2, 3]).buffer, new Uint8Array([4, 5, 6]).buffer], [ new Uint8Array(new SharedArrayBuffer(3)).fill(1).buffer, - new Uint8Array(new SharedArrayBuffer(3)).fill(2).buffer + new Uint8Array(new SharedArrayBuffer(3)).fill(2).buffer, ], [new ArrayBuffer(2), new ArrayBuffer(3)], [new SharedArrayBuffer(2), new SharedArrayBuffer(3)], [new ArrayBuffer(2), new SharedArrayBuffer(3)], [ new Uint8Array(new ArrayBuffer(3)).fill(1).buffer, - new Uint8Array(new SharedArrayBuffer(3)).fill(2).buffer - ] + new Uint8Array(new SharedArrayBuffer(3)).fill(2).buffer, + ], ]; equalArrayPairs.forEach((arrayPair) => { diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 7613449c92b477..80a55094b73ecf 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -592,7 +592,7 @@ a.throws( '...', ' 1,', ' 1', - ' ]' + ' ]', ].join('\n'); assert.throws( () => assert.deepEqual( @@ -613,7 +613,7 @@ a.throws( ' 1,', ' 1,', ' 1', - ' ]' + ' ]', ].join('\n'); assert.throws( () => assert.deepEqual( @@ -634,7 +634,7 @@ a.throws( ' 0,', '+ 1,', ' 1', - ' ]' + ' ]', ].join('\n'); assert.throws( () => assert.deepEqual( @@ -665,7 +665,7 @@ a.throws( '+ 1,', ' 2,', ' 1', - ' ]' + ' ]', ].join('\n'); assert.throws( () => assert.deepEqual([1, 2, 1], [2, 1]), @@ -946,7 +946,7 @@ assert.throws( [ 1, false, - Symbol() + Symbol(), ].forEach((input) => { assert.throws( () => assert.throws(() => {}, input), diff --git a/test/parallel/test-async-hooks-correctly-switch-promise-hook.js b/test/parallel/test-async-hooks-correctly-switch-promise-hook.js new file mode 100644 index 00000000000000..73127f1ebaf94c --- /dev/null +++ b/test/parallel/test-async-hooks-correctly-switch-promise-hook.js @@ -0,0 +1,77 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const async_hooks = require('async_hooks'); + +// Regression test for: +// - https://github.com/nodejs/node/issues/38814 +// - https://github.com/nodejs/node/issues/38815 + +const layers = new Map(); + +// Only init to start context-based promise hook +async_hooks.createHook({ + init(asyncId, type) { + layers.set(asyncId, { + type, + init: true, + before: false, + after: false, + promiseResolve: false + }); + }, + before(asyncId) { + if (layers.has(asyncId)) { + layers.get(asyncId).before = true; + } + }, + after(asyncId) { + if (layers.has(asyncId)) { + layers.get(asyncId).after = true; + } + }, + promiseResolve(asyncId) { + if (layers.has(asyncId)) { + layers.get(asyncId).promiseResolve = true; + } + } +}).enable(); + +// With destroy, this should switch to native +// and disable context - based promise hook +async_hooks.createHook({ + init() { }, + destroy() { } +}).enable(); + +async function main() { + return Promise.resolve(); +} + +main(); + +process.on('exit', () => { + assert.deepStrictEqual(Array.from(layers.values()), [ + { + type: 'PROMISE', + init: true, + before: true, + after: true, + promiseResolve: true + }, + { + type: 'PROMISE', + init: true, + before: false, + after: false, + promiseResolve: true + }, + { + type: 'PROMISE', + init: true, + before: true, + after: true, + promiseResolve: true + }, + ]); +}); diff --git a/test/parallel/test-async-hooks-vm-gc.js b/test/parallel/test-async-hooks-vm-gc.js new file mode 100644 index 00000000000000..da95e3579dcca4 --- /dev/null +++ b/test/parallel/test-async-hooks-vm-gc.js @@ -0,0 +1,15 @@ +// Flags: --expose-gc +'use strict'; + +require('../common'); +const asyncHooks = require('async_hooks'); +const vm = require('vm'); + +// This is a regression test for https://github.com/nodejs/node/issues/39019 +// +// It should not segfault. + +const hook = asyncHooks.createHook({ init() {} }).enable(); +vm.createContext(); +globalThis.gc(); +hook.disable(); diff --git a/test/parallel/test-async-local-storage-contexts.js b/test/parallel/test-async-local-storage-contexts.js new file mode 100644 index 00000000000000..9a6327133794f6 --- /dev/null +++ b/test/parallel/test-async-local-storage-contexts.js @@ -0,0 +1,35 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const vm = require('vm'); +const { AsyncLocalStorage } = require('async_hooks'); + +// Regression test for https://github.com/nodejs/node/issues/38781 + +const context = vm.createContext({ + AsyncLocalStorage, + assert +}); + +vm.runInContext(` + const storage = new AsyncLocalStorage() + async function test() { + return storage.run({ test: 'vm' }, async () => { + assert.strictEqual(storage.getStore().test, 'vm'); + await 42; + assert.strictEqual(storage.getStore().test, 'vm'); + }); + } + test() +`, context); + +const storage = new AsyncLocalStorage(); +async function test() { + return storage.run({ test: 'main context' }, async () => { + assert.strictEqual(storage.getStore().test, 'main context'); + await 42; + assert.strictEqual(storage.getStore().test, 'main context'); + }); +} +test(); diff --git a/test/parallel/test-binding-constants.js b/test/parallel/test-binding-constants.js index e989e09b3cd7d6..4a96b7c7443fc6 100644 --- a/test/parallel/test-binding-constants.js +++ b/test/parallel/test-binding-constants.js @@ -29,5 +29,5 @@ function test(obj) { [ constants, constants.crypto, constants.fs, constants.os, constants.trace, - constants.zlib, constants.os.dlopen, constants.os.errno, constants.os.signals + constants.zlib, constants.os.dlopen, constants.os.errno, constants.os.signals, ].forEach(test); diff --git a/test/parallel/test-blob.js b/test/parallel/test-blob.js new file mode 100644 index 00000000000000..1f9a8a93abd3f3 --- /dev/null +++ b/test/parallel/test-blob.js @@ -0,0 +1,201 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { Blob } = require('buffer'); +const { inspect } = require('util'); +const { MessageChannel } = require('worker_threads'); + +{ + const b = new Blob(); + assert.strictEqual(b.size, 0); + assert.strictEqual(b.type, ''); +} + +assert.throws(() => new Blob(false), { + code: 'ERR_INVALID_ARG_TYPE' +}); + +assert.throws(() => new Blob('hello'), { + code: 'ERR_INVALID_ARG_TYPE' +}); + +assert.throws(() => new Blob({}), { + code: 'ERR_INVALID_ARG_TYPE' +}); + +{ + const b = new Blob([]); + assert(b); + assert.strictEqual(b.size, 0); + assert.strictEqual(b.type, ''); + + b.arrayBuffer().then(common.mustCall((ab) => { + assert.deepStrictEqual(ab, new ArrayBuffer(0)); + })); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, ''); + })); + const c = b.slice(); + assert.strictEqual(c.size, 0); +} + +{ + assert.strictEqual(new Blob([], { type: 1 }).type, '1'); + assert.strictEqual(new Blob([], { type: false }).type, 'false'); + assert.strictEqual(new Blob([], { type: {} }).type, '[object object]'); +} + +{ + const b = new Blob(['616263'], { encoding: 'hex', type: 'foo' }); + assert.strictEqual(b.size, 3); + assert.strictEqual(b.type, 'foo'); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'abc'); + })); +} + +{ + const b = new Blob([Buffer.from('abc')]); + assert.strictEqual(b.size, 3); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'abc'); + })); +} + +{ + const b = new Blob([new ArrayBuffer(3)]); + assert.strictEqual(b.size, 3); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, '\0\0\0'); + })); +} + +{ + const b = new Blob([new Uint8Array(3)]); + assert.strictEqual(b.size, 3); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, '\0\0\0'); + })); +} + +{ + const b = new Blob([new Blob(['abc'])]); + assert.strictEqual(b.size, 3); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'abc'); + })); +} + +{ + const b = new Blob(['hello', Buffer.from('world')]); + assert.strictEqual(b.size, 10); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'helloworld'); + })); +} + +{ + const b = new Blob( + [ + 'h', + 'e', + 'l', + 'lo', + Buffer.from('world'), + ]); + assert.strictEqual(b.size, 10); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'helloworld'); + })); +} + +{ + const b = new Blob(['hello', Buffer.from('world')]); + assert.strictEqual(b.size, 10); + assert.strictEqual(b.type, ''); + + const c = b.slice(1, -1, 'foo'); + assert.strictEqual(c.type, 'foo'); + c.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'elloworl'); + })); + + const d = c.slice(1, -1); + d.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'llowor'); + })); + + const e = d.slice(1, -1); + e.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'lowo'); + })); + + const f = e.slice(1, -1); + f.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'ow'); + })); + + const g = f.slice(1, -1); + assert.strictEqual(g.type, ''); + g.text().then(common.mustCall((text) => { + assert.strictEqual(text, ''); + })); + + const h = b.slice(-1, 1); + assert.strictEqual(h.size, 0); + + const i = b.slice(1, 100); + assert.strictEqual(i.size, 9); + + const j = b.slice(1, 2, false); + assert.strictEqual(j.type, 'false'); + + assert.strictEqual(b.size, 10); + assert.strictEqual(b.type, ''); +} + +{ + const b = new Blob([Buffer.from('hello'), Buffer.from('world')]); + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(({ data }) => { + data.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'helloworld'); + })); + mc.port1.close(); + }); + mc.port2.postMessage(b); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'helloworld'); + })); +} + +{ + const b = new Blob(['hello'], { type: '\x01' }); + assert.strictEqual(b.type, ''); +} + +{ + const descriptor = + Object.getOwnPropertyDescriptor(Blob.prototype, Symbol.toStringTag); + assert.deepStrictEqual(descriptor, { + configurable: true, + enumerable: false, + value: 'Blob', + writable: false + }); +} + +{ + const b = new Blob(['test', 42]); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'test42'); + })); +} + +{ + const b = new Blob(); + assert.strictEqual(inspect(b, { depth: null }), + 'Blob { size: 0, type: \'\' }'); + assert.strictEqual(inspect(b, { depth: -1 }), '[Blob]'); +} diff --git a/test/parallel/test-blocklist-clone.js b/test/parallel/test-blocklist-clone.js new file mode 100644 index 00000000000000..163592d4779326 --- /dev/null +++ b/test/parallel/test-blocklist-clone.js @@ -0,0 +1,34 @@ +'use strict'; + +const common = require('../common'); + +const { + BlockList, +} = require('net'); +const { + MessageChannel, +} = require('worker_threads'); + +const { + ok, + notStrictEqual, +} = require('assert'); + +const blocklist = new BlockList(); +blocklist.addAddress('123.123.123.123'); + +const mc = new MessageChannel(); + +mc.port1.onmessage = common.mustCall(({ data }) => { + notStrictEqual(data, blocklist); + ok(data.check('123.123.123.123')); + ok(!data.check('123.123.123.124')); + + data.addAddress('123.123.123.124'); + ok(blocklist.check('123.123.123.124')); + ok(data.check('123.123.123.124')); + + mc.port1.close(); +}); + +mc.port2.postMessage(blocklist); diff --git a/test/parallel/test-blocklist.js b/test/parallel/test-blocklist.js new file mode 100644 index 00000000000000..51f19e07bc649c --- /dev/null +++ b/test/parallel/test-blocklist.js @@ -0,0 +1,274 @@ +'use strict'; + +require('../common'); + +const { + BlockList, + SocketAddress, +} = require('net'); +const assert = require('assert'); +const util = require('util'); + +{ + const blockList = new BlockList(); + + [1, [], {}, null, 1n, undefined, null].forEach((i) => { + assert.throws(() => blockList.addAddress(i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + }); + + [1, [], {}, null, 1n, null].forEach((i) => { + assert.throws(() => blockList.addAddress('1.1.1.1', i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + }); + + assert.throws(() => blockList.addAddress('1.1.1.1', 'foo'), { + code: 'ERR_INVALID_ARG_VALUE' + }); + + [1, [], {}, null, 1n, undefined, null].forEach((i) => { + assert.throws(() => blockList.addRange(i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + assert.throws(() => blockList.addRange('1.1.1.1', i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + }); + + [1, [], {}, null, 1n, null].forEach((i) => { + assert.throws(() => blockList.addRange('1.1.1.1', '1.1.1.2', i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + }); + + assert.throws(() => blockList.addRange('1.1.1.1', '1.1.1.2', 'foo'), { + code: 'ERR_INVALID_ARG_VALUE' + }); +} + +{ + const blockList = new BlockList(); + blockList.addAddress('1.1.1.1'); + blockList.addAddress('8592:757c:efae:4e45:fb5d:d62a:0d00:8e17', 'ipv6'); + blockList.addAddress('::ffff:1.1.1.2', 'ipv6'); + + assert(blockList.check('1.1.1.1')); + assert(!blockList.check('1.1.1.1', 'ipv6')); + assert(!blockList.check('8592:757c:efae:4e45:fb5d:d62a:0d00:8e17')); + assert(blockList.check('8592:757c:efae:4e45:fb5d:d62a:0d00:8e17', 'ipv6')); + + assert(blockList.check('::ffff:1.1.1.1', 'ipv6')); + assert(blockList.check('::ffff:1.1.1.1', 'IPV6')); + + assert(blockList.check('1.1.1.2')); + + assert(!blockList.check('1.2.3.4')); + assert(!blockList.check('::1', 'ipv6')); +} + +{ + const blockList = new BlockList(); + const sa1 = new SocketAddress({ address: '1.1.1.1' }); + const sa2 = new SocketAddress({ + address: '8592:757c:efae:4e45:fb5d:d62a:0d00:8e17', + family: 'ipv6' + }); + const sa3 = new SocketAddress({ address: '1.1.1.2' }); + + blockList.addAddress(sa1); + blockList.addAddress(sa2); + blockList.addAddress('::ffff:1.1.1.2', 'ipv6'); + + assert(blockList.check('1.1.1.1')); + assert(blockList.check(sa1)); + assert(!blockList.check('1.1.1.1', 'ipv6')); + assert(!blockList.check('8592:757c:efae:4e45:fb5d:d62a:0d00:8e17')); + assert(blockList.check('8592:757c:efae:4e45:fb5d:d62a:0d00:8e17', 'ipv6')); + assert(blockList.check(sa2)); + + assert(blockList.check('::ffff:1.1.1.1', 'ipv6')); + assert(blockList.check('::ffff:1.1.1.1', 'IPV6')); + + assert(blockList.check('1.1.1.2')); + assert(blockList.check(sa3)); + + assert(!blockList.check('1.2.3.4')); + assert(!blockList.check('::1', 'ipv6')); +} + +{ + const blockList = new BlockList(); + blockList.addRange('1.1.1.1', '1.1.1.10'); + blockList.addRange('::1', '::f', 'ipv6'); + + assert(!blockList.check('1.1.1.0')); + for (let n = 1; n <= 10; n++) + assert(blockList.check(`1.1.1.${n}`)); + assert(!blockList.check('1.1.1.11')); + + assert(!blockList.check('::0', 'ipv6')); + for (let n = 0x1; n <= 0xf; n++) { + assert(blockList.check(`::${n.toString(16)}`, 'ipv6'), + `::${n.toString(16)} check failed`); + } + assert(!blockList.check('::10', 'ipv6')); +} + +{ + const blockList = new BlockList(); + const sa1 = new SocketAddress({ address: '1.1.1.1' }); + const sa2 = new SocketAddress({ address: '1.1.1.10' }); + const sa3 = new SocketAddress({ address: '::1', family: 'ipv6' }); + const sa4 = new SocketAddress({ address: '::f', family: 'ipv6' }); + + blockList.addRange(sa1, sa2); + blockList.addRange(sa3, sa4); + + assert(!blockList.check('1.1.1.0')); + for (let n = 1; n <= 10; n++) + assert(blockList.check(`1.1.1.${n}`)); + assert(!blockList.check('1.1.1.11')); + + assert(!blockList.check('::0', 'ipv6')); + for (let n = 0x1; n <= 0xf; n++) { + assert(blockList.check(`::${n.toString(16)}`, 'ipv6'), + `::${n.toString(16)} check failed`); + } + assert(!blockList.check('::10', 'ipv6')); +} + +{ + const blockList = new BlockList(); + blockList.addSubnet('1.1.1.0', 16); + blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + + assert(blockList.check('1.1.0.1')); + assert(blockList.check('1.1.1.1')); + assert(!blockList.check('1.2.0.1')); + assert(blockList.check('::ffff:1.1.0.1', 'ipv6')); + + assert(blockList.check('8592:757c:efae:4e45:f::', 'ipv6')); + assert(blockList.check('8592:757c:efae:4e45::f', 'ipv6')); + assert(!blockList.check('8592:757c:efae:4f45::f', 'ipv6')); +} + +{ + const blockList = new BlockList(); + const sa1 = new SocketAddress({ address: '1.1.1.0' }); + const sa2 = new SocketAddress({ address: '1.1.1.1' }); + blockList.addSubnet(sa1, 16); + blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + + assert(blockList.check('1.1.0.1')); + assert(blockList.check(sa2)); + assert(!blockList.check('1.2.0.1')); + assert(blockList.check('::ffff:1.1.0.1', 'ipv6')); + + assert(blockList.check('8592:757c:efae:4e45:f::', 'ipv6')); + assert(blockList.check('8592:757c:efae:4e45::f', 'ipv6')); + assert(!blockList.check('8592:757c:efae:4f45::f', 'ipv6')); +} + +{ + const blockList = new BlockList(); + blockList.addAddress('1.1.1.1'); + blockList.addRange('10.0.0.1', '10.0.0.10'); + blockList.addSubnet('8592:757c:efae:4e45::', 64, 'IpV6'); // Case insensitive + + const rulesCheck = [ + 'Subnet: IPv6 8592:757c:efae:4e45::/64', + 'Range: IPv4 10.0.0.1-10.0.0.10', + 'Address: IPv4 1.1.1.1', + ]; + assert.deepStrictEqual(blockList.rules, rulesCheck); + + assert(blockList.check('1.1.1.1')); + assert(blockList.check('10.0.0.5')); + assert(blockList.check('::ffff:10.0.0.5', 'ipv6')); + assert(blockList.check('8592:757c:efae:4e45::f', 'ipv6')); + + assert(!blockList.check('123.123.123.123')); + assert(!blockList.check('8592:757c:efaf:4e45:fb5d:d62a:0d00:8e17', 'ipv6')); + assert(!blockList.check('::ffff:123.123.123.123', 'ipv6')); +} + +{ + // This test validates boundaries of non-aligned CIDR bit prefixes + const blockList = new BlockList(); + blockList.addSubnet('10.0.0.0', 27); + blockList.addSubnet('8592:757c:efaf::', 51, 'ipv6'); + + for (let n = 0; n <= 31; n++) + assert(blockList.check(`10.0.0.${n}`)); + assert(!blockList.check('10.0.0.32')); + + assert(blockList.check('8592:757c:efaf:0:0:0:0:0', 'ipv6')); + assert(blockList.check('8592:757c:efaf:1fff:ffff:ffff:ffff:ffff', 'ipv6')); + assert(!blockList.check('8592:757c:efaf:2fff:ffff:ffff:ffff:ffff', 'ipv6')); +} + +{ + // Regression test for https://github.com/nodejs/node/issues/39074 + const blockList = new BlockList(); + + blockList.addRange('10.0.0.2', '10.0.0.10'); + + // IPv4 checks against IPv4 range. + assert(blockList.check('10.0.0.2')); + assert(blockList.check('10.0.0.10')); + assert(!blockList.check('192.168.0.3')); + assert(!blockList.check('2.2.2.2')); + assert(!blockList.check('255.255.255.255')); + + // IPv6 checks against IPv4 range. + assert(blockList.check('::ffff:0a00:0002', 'ipv6')); + assert(blockList.check('::ffff:0a00:000a', 'ipv6')); + assert(!blockList.check('::ffff:c0a8:0003', 'ipv6')); + assert(!blockList.check('::ffff:0202:0202', 'ipv6')); + assert(!blockList.check('::ffff:ffff:ffff', 'ipv6')); +} + +{ + const blockList = new BlockList(); + assert.throws(() => blockList.addRange('1.1.1.2', '1.1.1.1'), /ERR_INVALID_ARG_VALUE/); +} + +{ + const blockList = new BlockList(); + assert.throws(() => blockList.addSubnet(1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => blockList.addSubnet('1.1.1.1', ''), + /ERR_INVALID_ARG_TYPE/); + assert.throws(() => blockList.addSubnet('1.1.1.1', NaN), /ERR_OUT_OF_RANGE/); + assert.throws(() => blockList.addSubnet('', 1, 1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => blockList.addSubnet('', 1, ''), /ERR_INVALID_ARG_VALUE/); + + assert.throws(() => blockList.addSubnet('1.1.1.1', -1, 'ipv4'), + /ERR_OUT_OF_RANGE/); + assert.throws(() => blockList.addSubnet('1.1.1.1', 33, 'ipv4'), + /ERR_OUT_OF_RANGE/); + + assert.throws(() => blockList.addSubnet('::', -1, 'ipv6'), + /ERR_OUT_OF_RANGE/); + assert.throws(() => blockList.addSubnet('::', 129, 'ipv6'), + /ERR_OUT_OF_RANGE/); +} + +{ + const blockList = new BlockList(); + assert.throws(() => blockList.check(1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => blockList.check('', 1), /ERR_INVALID_ARG_TYPE/); +} + +{ + const blockList = new BlockList(); + const ret = util.inspect(blockList, { depth: -1 }); + assert.strictEqual(ret, '[BlockList]'); +} + +{ + const blockList = new BlockList(); + const ret = util.inspect(blockList, { depth: null }); + assert(ret.includes('rules: []')); +} diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 0c3618edca00ba..683171fe3c7b20 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -17,6 +17,7 @@ const expectedModules = new Set([ 'Internal Binding credentials', 'Internal Binding fs', 'Internal Binding fs_dir', + 'Internal Binding fs_event_wrap', 'Internal Binding messaging', 'Internal Binding module_wrap', 'Internal Binding native_module', @@ -31,6 +32,7 @@ const expectedModules = new Set([ 'Internal Binding types', 'Internal Binding url', 'Internal Binding util', + 'Internal Binding uv', 'NativeModule async_hooks', 'NativeModule buffer', 'NativeModule events', @@ -49,6 +51,7 @@ const expectedModules = new Set([ 'NativeModule internal/fs/utils', 'NativeModule internal/fs/promises', 'NativeModule internal/fs/rimraf', + 'NativeModule internal/fs/watchers', 'NativeModule internal/idna', 'NativeModule internal/linkedlist', 'NativeModule internal/modules/run_main', @@ -76,6 +79,7 @@ const expectedModules = new Set([ 'NativeModule internal/process/warning', 'NativeModule internal/querystring', 'NativeModule internal/source_map/source_map_cache', + 'NativeModule internal/streams/utils', 'NativeModule internal/timers', 'NativeModule internal/url', 'NativeModule internal/util', @@ -86,6 +90,7 @@ const expectedModules = new Set([ 'NativeModule internal/validators', 'NativeModule internal/vm/module', 'NativeModule internal/worker/js_transferable', + 'NativeModule internal/blob', 'NativeModule path', 'NativeModule timers', 'NativeModule url', diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index 070a3803802e56..d07d15125bc546 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -292,14 +292,40 @@ Buffer.alloc(1).write('', 1, 0); // Test toString('base64') // assert.strictEqual((Buffer.from('Man')).toString('base64'), 'TWFu'); +assert.strictEqual((Buffer.from('Woman')).toString('base64'), 'V29tYW4='); + +// +// Test toString('base64url') +// +assert.strictEqual((Buffer.from('Man')).toString('base64url'), 'TWFu'); +assert.strictEqual((Buffer.from('Woman')).toString('base64url'), 'V29tYW4'); { - // Test that regular and URL-safe base64 both work + // Test that regular and URL-safe base64 both work both ways const expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff]; assert.deepStrictEqual(Buffer.from('//++/++/++//', 'base64'), Buffer.from(expected)); assert.deepStrictEqual(Buffer.from('__--_--_--__', 'base64'), Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('//++/++/++//', 'base64url'), + Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('__--_--_--__', 'base64url'), + Buffer.from(expected)); +} + +const base64flavors = ['base64', 'base64url']; + +{ + // Test that regular and URL-safe base64 both work both ways with padding + const expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff, 0xfb]; + assert.deepStrictEqual(Buffer.from('//++/++/++//+w==', 'base64'), + Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('//++/++/++//+w==', 'base64'), + Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('//++/++/++//+w==', 'base64url'), + Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('//++/++/++//+w==', 'base64url'), + Buffer.from(expected)); } { @@ -316,137 +342,182 @@ assert.strictEqual((Buffer.from('Man')).toString('base64'), 'TWFu'); 'dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ' + 'GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm' + '5hbCBwbGVhc3VyZS4='; - assert.strictEqual((Buffer.from(quote)).toString('base64'), expected); - - let b = Buffer.allocUnsafe(1024); - let bytesWritten = b.write(expected, 0, 'base64'); - assert.strictEqual(quote.length, bytesWritten); - assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); - - // Check that the base64 decoder ignores whitespace - const expectedWhite = `${expected.slice(0, 60)} \n` + - `${expected.slice(60, 120)} \n` + - `${expected.slice(120, 180)} \n` + - `${expected.slice(180, 240)} \n` + - `${expected.slice(240, 300)}\n` + - `${expected.slice(300, 360)}\n`; - b = Buffer.allocUnsafe(1024); - bytesWritten = b.write(expectedWhite, 0, 'base64'); - assert.strictEqual(quote.length, bytesWritten); - assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); - - // Check that the base64 decoder on the constructor works - // even in the presence of whitespace. - b = Buffer.from(expectedWhite, 'base64'); - assert.strictEqual(quote.length, b.length); - assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); - - // Check that the base64 decoder ignores illegal chars - const expectedIllegal = expected.slice(0, 60) + ' \x80' + - expected.slice(60, 120) + ' \xff' + - expected.slice(120, 180) + ' \x00' + - expected.slice(180, 240) + ' \x98' + - expected.slice(240, 300) + '\x03' + - expected.slice(300, 360); - b = Buffer.from(expectedIllegal, 'base64'); - assert.strictEqual(quote.length, b.length); - assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); + assert.strictEqual(Buffer.from(quote).toString('base64'), expected); + assert.strictEqual( + Buffer.from(quote).toString('base64url'), + expected.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '') + ); + + base64flavors.forEach((encoding) => { + let b = Buffer.allocUnsafe(1024); + let bytesWritten = b.write(expected, 0, encoding); + assert.strictEqual(quote.length, bytesWritten); + assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); + + // Check that the base64 decoder ignores whitespace + const expectedWhite = `${expected.slice(0, 60)} \n` + + `${expected.slice(60, 120)} \n` + + `${expected.slice(120, 180)} \n` + + `${expected.slice(180, 240)} \n` + + `${expected.slice(240, 300)}\n` + + `${expected.slice(300, 360)}\n`; + b = Buffer.allocUnsafe(1024); + bytesWritten = b.write(expectedWhite, 0, encoding); + assert.strictEqual(quote.length, bytesWritten); + assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); + + // Check that the base64 decoder on the constructor works + // even in the presence of whitespace. + b = Buffer.from(expectedWhite, encoding); + assert.strictEqual(quote.length, b.length); + assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); + + // Check that the base64 decoder ignores illegal chars + const expectedIllegal = expected.slice(0, 60) + ' \x80' + + expected.slice(60, 120) + ' \xff' + + expected.slice(120, 180) + ' \x00' + + expected.slice(180, 240) + ' \x98' + + expected.slice(240, 300) + '\x03' + + expected.slice(300, 360); + b = Buffer.from(expectedIllegal, encoding); + assert.strictEqual(quote.length, b.length); + assert.strictEqual(quote, b.toString('ascii', 0, quote.length)); + }); } -assert.strictEqual(Buffer.from('', 'base64').toString(), ''); -assert.strictEqual(Buffer.from('K', 'base64').toString(), ''); - -// multiple-of-4 with padding -assert.strictEqual(Buffer.from('Kg==', 'base64').toString(), '*'); -assert.strictEqual(Buffer.from('Kio=', 'base64').toString(), '*'.repeat(2)); -assert.strictEqual(Buffer.from('Kioq', 'base64').toString(), '*'.repeat(3)); -assert.strictEqual(Buffer.from('KioqKg==', 'base64').toString(), '*'.repeat(4)); -assert.strictEqual(Buffer.from('KioqKio=', 'base64').toString(), '*'.repeat(5)); -assert.strictEqual(Buffer.from('KioqKioq', 'base64').toString(), '*'.repeat(6)); -assert.strictEqual(Buffer.from('KioqKioqKg==', 'base64').toString(), - '*'.repeat(7)); -assert.strictEqual(Buffer.from('KioqKioqKio=', 'base64').toString(), - '*'.repeat(8)); -assert.strictEqual(Buffer.from('KioqKioqKioq', 'base64').toString(), - '*'.repeat(9)); -assert.strictEqual(Buffer.from('KioqKioqKioqKg==', 'base64').toString(), - '*'.repeat(10)); -assert.strictEqual(Buffer.from('KioqKioqKioqKio=', 'base64').toString(), - '*'.repeat(11)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioq', 'base64').toString(), - '*'.repeat(12)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKg==', 'base64').toString(), - '*'.repeat(13)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKio=', 'base64').toString(), - '*'.repeat(14)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioq', 'base64').toString(), - '*'.repeat(15)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKg==', 'base64').toString(), - '*'.repeat(16)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKio=', 'base64').toString(), - '*'.repeat(17)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioq', 'base64').toString(), - '*'.repeat(18)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKg==', - 'base64').toString(), - '*'.repeat(19)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKio=', - 'base64').toString(), - '*'.repeat(20)); - -// No padding, not a multiple of 4 -assert.strictEqual(Buffer.from('Kg', 'base64').toString(), '*'); -assert.strictEqual(Buffer.from('Kio', 'base64').toString(), '*'.repeat(2)); -assert.strictEqual(Buffer.from('KioqKg', 'base64').toString(), '*'.repeat(4)); -assert.strictEqual(Buffer.from('KioqKio', 'base64').toString(), '*'.repeat(5)); -assert.strictEqual(Buffer.from('KioqKioqKg', 'base64').toString(), - '*'.repeat(7)); -assert.strictEqual(Buffer.from('KioqKioqKio', 'base64').toString(), - '*'.repeat(8)); -assert.strictEqual(Buffer.from('KioqKioqKioqKg', 'base64').toString(), - '*'.repeat(10)); -assert.strictEqual(Buffer.from('KioqKioqKioqKio', 'base64').toString(), - '*'.repeat(11)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKg', 'base64').toString(), - '*'.repeat(13)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKio', 'base64').toString(), - '*'.repeat(14)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKg', 'base64').toString(), - '*'.repeat(16)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKio', 'base64').toString(), - '*'.repeat(17)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKg', - 'base64').toString(), - '*'.repeat(19)); -assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKio', - 'base64').toString(), - '*'.repeat(20)); +base64flavors.forEach((encoding) => { + assert.strictEqual(Buffer.from('', encoding).toString(), ''); + assert.strictEqual(Buffer.from('K', encoding).toString(), ''); + + // multiple-of-4 with padding + assert.strictEqual(Buffer.from('Kg==', encoding).toString(), '*'); + assert.strictEqual(Buffer.from('Kio=', encoding).toString(), '*'.repeat(2)); + assert.strictEqual(Buffer.from('Kioq', encoding).toString(), '*'.repeat(3)); + assert.strictEqual( + Buffer.from('KioqKg==', encoding).toString(), '*'.repeat(4)); + assert.strictEqual( + Buffer.from('KioqKio=', encoding).toString(), '*'.repeat(5)); + assert.strictEqual( + Buffer.from('KioqKioq', encoding).toString(), '*'.repeat(6)); + assert.strictEqual(Buffer.from('KioqKioqKg==', encoding).toString(), + '*'.repeat(7)); + assert.strictEqual(Buffer.from('KioqKioqKio=', encoding).toString(), + '*'.repeat(8)); + assert.strictEqual(Buffer.from('KioqKioqKioq', encoding).toString(), + '*'.repeat(9)); + assert.strictEqual(Buffer.from('KioqKioqKioqKg==', encoding).toString(), + '*'.repeat(10)); + assert.strictEqual(Buffer.from('KioqKioqKioqKio=', encoding).toString(), + '*'.repeat(11)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioq', encoding).toString(), + '*'.repeat(12)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKg==', encoding).toString(), + '*'.repeat(13)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKio=', encoding).toString(), + '*'.repeat(14)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioq', encoding).toString(), + '*'.repeat(15)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKg==', encoding).toString(), + '*'.repeat(16)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKio=', encoding).toString(), + '*'.repeat(17)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKioq', encoding).toString(), + '*'.repeat(18)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKg==', + encoding).toString(), + '*'.repeat(19)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKioqKio=', + encoding).toString(), + '*'.repeat(20)); + + // No padding, not a multiple of 4 + assert.strictEqual(Buffer.from('Kg', encoding).toString(), '*'); + assert.strictEqual(Buffer.from('Kio', encoding).toString(), '*'.repeat(2)); + assert.strictEqual(Buffer.from('KioqKg', encoding).toString(), '*'.repeat(4)); + assert.strictEqual( + Buffer.from('KioqKio', encoding).toString(), '*'.repeat(5)); + assert.strictEqual(Buffer.from('KioqKioqKg', encoding).toString(), + '*'.repeat(7)); + assert.strictEqual(Buffer.from('KioqKioqKio', encoding).toString(), + '*'.repeat(8)); + assert.strictEqual(Buffer.from('KioqKioqKioqKg', encoding).toString(), + '*'.repeat(10)); + assert.strictEqual(Buffer.from('KioqKioqKioqKio', encoding).toString(), + '*'.repeat(11)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKg', encoding).toString(), + '*'.repeat(13)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKio', encoding).toString(), + '*'.repeat(14)); + assert.strictEqual(Buffer.from('KioqKioqKioqKioqKioqKg', encoding).toString(), + '*'.repeat(16)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKio', encoding).toString(), + '*'.repeat(17)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKioqKg', encoding).toString(), + '*'.repeat(19)); + assert.strictEqual( + Buffer.from('KioqKioqKioqKioqKioqKioqKio', encoding).toString(), + '*'.repeat(20)); +}); // Handle padding graciously, multiple-of-4 or not assert.strictEqual( Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw==', 'base64').length, 32 ); +assert.strictEqual( + Buffer.from('72INjkR5fchcxk9-VgdGPFJDxUBFR5_rMFsghgxADiw==', 'base64url') + .length, + 32 +); assert.strictEqual( Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw=', 'base64').length, 32 ); +assert.strictEqual( + Buffer.from('72INjkR5fchcxk9-VgdGPFJDxUBFR5_rMFsghgxADiw=', 'base64url') + .length, + 32 +); assert.strictEqual( Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw', 'base64').length, 32 ); +assert.strictEqual( + Buffer.from('72INjkR5fchcxk9-VgdGPFJDxUBFR5_rMFsghgxADiw', 'base64url') + .length, + 32 +); assert.strictEqual( Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg==', 'base64').length, 31 ); +assert.strictEqual( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg==', 'base64url') + .length, + 31 +); assert.strictEqual( Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg=', 'base64').length, 31 ); +assert.strictEqual( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg=', 'base64url') + .length, + 31 +); assert.strictEqual( Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg', 'base64').length, 31 ); +assert.strictEqual( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg', 'base64url').length, + 31 +); { // This string encodes single '.' character in UTF-16 @@ -458,6 +529,16 @@ assert.strictEqual( assert.strictEqual(dot.toString('base64'), '//4uAA=='); } +{ +// This string encodes single '.' character in UTF-16 + const dot = Buffer.from('//4uAA', 'base64url'); + assert.strictEqual(dot[0], 0xff); + assert.strictEqual(dot[1], 0xfe); + assert.strictEqual(dot[2], 0x2e); + assert.strictEqual(dot[3], 0x00); + assert.strictEqual(dot.toString('base64url'), '__4uAA'); +} + { // Writing base64 at a position > 0 should not mangle the result. // @@ -473,6 +554,21 @@ assert.strictEqual( 'Madness?! This is node.js!'); } +{ + // Writing base64url at a position > 0 should not mangle the result. + // + // https://github.com/joyent/node/issues/402 + const segments = ['TWFkbmVzcz8h', 'IFRoaXM', 'IGlz', 'IG5vZGUuanMh']; + const b = Buffer.allocUnsafe(64); + let pos = 0; + + for (let i = 0; i < segments.length; ++i) { + pos += b.write(segments[i], pos, 'base64url'); + } + assert.strictEqual(b.toString('latin1', 0, pos), + 'Madness?! This is node.js!'); +} + // Regression test for https://github.com/nodejs/node/issues/3496. assert.strictEqual(Buffer.from('=bad'.repeat(1e4), 'base64').length, 0); diff --git a/test/parallel/test-buffer-backing-arraybuffer.js b/test/parallel/test-buffer-backing-arraybuffer.js index 75dcd60068d5ab..86fdf92181788f 100644 --- a/test/parallel/test-buffer-backing-arraybuffer.js +++ b/test/parallel/test-buffer-backing-arraybuffer.js @@ -20,7 +20,7 @@ for (const { length, expectOnHeap } of tests) { new Float32Array(length / 4), new Float64Array(length / 8), Buffer.alloc(length), - Buffer.allocUnsafeSlow(length) + Buffer.allocUnsafeSlow(length), // Buffer.allocUnsafe() is missing because it may use pooled allocations. ]; diff --git a/test/parallel/test-buffer-bytelength.js b/test/parallel/test-buffer-bytelength.js index b5264ba092ce1e..33cbb3268440a1 100644 --- a/test/parallel/test-buffer-bytelength.js +++ b/test/parallel/test-buffer-bytelength.js @@ -9,7 +9,7 @@ const vm = require('vm'); [32, 'latin1'], [NaN, 'utf8'], [{}, 'latin1'], - [] + [], ].forEach((args) => { assert.throws( () => Buffer.byteLength(...args), @@ -91,9 +91,19 @@ assert.strictEqual(Buffer.byteLength('aGkk', 'base64'), 3); assert.strictEqual( Buffer.byteLength('bHNrZGZsa3NqZmtsc2xrZmFqc2RsZmtqcw==', 'base64'), 25 ); +// base64url +assert.strictEqual(Buffer.byteLength('aGVsbG8gd29ybGQ', 'base64url'), 11); +assert.strictEqual(Buffer.byteLength('aGVsbG8gd29ybGQ', 'BASE64URL'), 11); +assert.strictEqual(Buffer.byteLength('bm9kZS5qcyByb2NrcyE', 'base64url'), 14); +assert.strictEqual(Buffer.byteLength('aGkk', 'base64url'), 3); +assert.strictEqual( + Buffer.byteLength('bHNrZGZsa3NqZmtsc2xrZmFqc2RsZmtqcw', 'base64url'), 25 +); // special padding assert.strictEqual(Buffer.byteLength('aaa=', 'base64'), 2); assert.strictEqual(Buffer.byteLength('aaaa==', 'base64'), 3); +assert.strictEqual(Buffer.byteLength('aaa=', 'base64url'), 2); +assert.strictEqual(Buffer.byteLength('aaaa==', 'base64url'), 3); assert.strictEqual(Buffer.byteLength('Il était tué'), 14); assert.strictEqual(Buffer.byteLength('Il était tué', 'utf8'), 14); diff --git a/test/parallel/test-buffer-failed-alloc-typed-arrays.js b/test/parallel/test-buffer-failed-alloc-typed-arrays.js index 9e480a5c8d3853..3e91b31ccaf6f3 100644 --- a/test/parallel/test-buffer-failed-alloc-typed-arrays.js +++ b/test/parallel/test-buffer-failed-alloc-typed-arrays.js @@ -18,7 +18,7 @@ const allocators = [ SlowBuffer, Buffer.alloc, Buffer.allocUnsafe, - Buffer.allocUnsafeSlow + Buffer.allocUnsafeSlow, ]; for (const allocator of allocators) { for (const size of sizes) { diff --git a/test/parallel/test-buffer-fill.js b/test/parallel/test-buffer-fill.js index 6e24b3511e6e1a..00e65c82e91849 100644 --- a/test/parallel/test-buffer-fill.js +++ b/test/parallel/test-buffer-fill.js @@ -131,20 +131,36 @@ assert.throws(() => { }); // BASE64 -testBufs('YWJj', 'ucs2'); -testBufs('yKJhYQ==', 'ucs2'); -testBufs('Yci0Ysi1Y8i2', 'ucs2'); -testBufs('YWJj', 4, 'ucs2'); -testBufs('YWJj', SIZE, 'ucs2'); -testBufs('yKJhYQ==', 2, 'ucs2'); -testBufs('yKJhYQ==', 8, 'ucs2'); -testBufs('Yci0Ysi1Y8i2', 4, 'ucs2'); -testBufs('Yci0Ysi1Y8i2', 12, 'ucs2'); -testBufs('YWJj', 4, 1, 'ucs2'); -testBufs('YWJj', 5, 1, 'ucs2'); -testBufs('yKJhYQ==', 8, 1, 'ucs2'); -testBufs('Yci0Ysi1Y8i2', 4, 1, 'ucs2'); -testBufs('Yci0Ysi1Y8i2', 12, 1, 'ucs2'); +testBufs('YWJj', 'base64'); +testBufs('yKJhYQ==', 'base64'); +testBufs('Yci0Ysi1Y8i2', 'base64'); +testBufs('YWJj', 4, 'base64'); +testBufs('YWJj', SIZE, 'base64'); +testBufs('yKJhYQ==', 2, 'base64'); +testBufs('yKJhYQ==', 8, 'base64'); +testBufs('Yci0Ysi1Y8i2', 4, 'base64'); +testBufs('Yci0Ysi1Y8i2', 12, 'base64'); +testBufs('YWJj', 4, 1, 'base64'); +testBufs('YWJj', 5, 1, 'base64'); +testBufs('yKJhYQ==', 8, 1, 'base64'); +testBufs('Yci0Ysi1Y8i2', 4, 1, 'base64'); +testBufs('Yci0Ysi1Y8i2', 12, 1, 'base64'); + +// BASE64URL +testBufs('YWJj', 'base64url'); +testBufs('yKJhYQ', 'base64url'); +testBufs('Yci0Ysi1Y8i2', 'base64url'); +testBufs('YWJj', 4, 'base64url'); +testBufs('YWJj', SIZE, 'base64url'); +testBufs('yKJhYQ', 2, 'base64url'); +testBufs('yKJhYQ', 8, 'base64url'); +testBufs('Yci0Ysi1Y8i2', 4, 'base64url'); +testBufs('Yci0Ysi1Y8i2', 12, 'base64url'); +testBufs('YWJj', 4, 1, 'base64url'); +testBufs('YWJj', 5, 1, 'base64url'); +testBufs('yKJhYQ', 8, 1, 'base64url'); +testBufs('Yci0Ysi1Y8i2', 4, 1, 'base64url'); +testBufs('Yci0Ysi1Y8i2', 12, 1, 'base64url'); // Buffer function deepStrictEqualValues(buf, arr) { @@ -189,7 +205,7 @@ assert.throws( [ ['a', 0, 0, NaN], - ['a', 0, 0, false] + ['a', 0, 0, false], ].forEach((args) => { assert.throws( () => buf1.fill(...args), diff --git a/test/parallel/test-buffer-from.js b/test/parallel/test-buffer-from.js index 165b38893f9e99..b513f4080a2054 100644 --- a/test/parallel/test-buffer-from.js +++ b/test/parallel/test-buffer-from.js @@ -47,7 +47,7 @@ deepStrictEqual( 5n, (one, two, three) => {}, undefined, - null + null, ].forEach((input) => { const errObj = { code: 'ERR_INVALID_ARG_TYPE', diff --git a/test/parallel/test-buffer-includes.js b/test/parallel/test-buffer-includes.js index 5d74303fad6350..57b3a33aaa487f 100644 --- a/test/parallel/test-buffer-includes.js +++ b/test/parallel/test-buffer-includes.js @@ -275,7 +275,7 @@ for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { [ () => { }, {}, - [] + [], ].forEach((val) => { assert.throws( () => b.includes(val), diff --git a/test/parallel/test-buffer-indexof.js b/test/parallel/test-buffer-indexof.js index 3ed57b357ce9aa..68a5cbb45c624b 100644 --- a/test/parallel/test-buffer-indexof.js +++ b/test/parallel/test-buffer-indexof.js @@ -353,7 +353,7 @@ assert.strictEqual(Buffer.from('aaaaa').indexOf('b', 'ucs2'), -1); [ () => {}, {}, - [] + [], ].forEach((val) => { assert.throws( () => b.indexOf(val), diff --git a/test/parallel/test-buffer-isencoding.js b/test/parallel/test-buffer-isencoding.js index e67d1c078397a3..f9150055cc3a5c 100644 --- a/test/parallel/test-buffer-isencoding.js +++ b/test/parallel/test-buffer-isencoding.js @@ -11,10 +11,11 @@ const assert = require('assert'); 'latin1', 'binary', 'base64', + 'base64url', 'ucs2', 'ucs-2', 'utf16le', - 'utf-16le' + 'utf-16le', ].forEach((enc) => { assert.strictEqual(Buffer.isEncoding(enc), true); }); @@ -31,7 +32,7 @@ const assert = require('assert'); [], 1, 0, - -1 + -1, ].forEach((enc) => { assert.strictEqual(Buffer.isEncoding(enc), false); }); diff --git a/test/parallel/test-buffer-iterator.js b/test/parallel/test-buffer-iterator.js index 0016b021c078bf..6cf64712c0f447 100644 --- a/test/parallel/test-buffer-iterator.js +++ b/test/parallel/test-buffer-iterator.js @@ -58,5 +58,5 @@ assert.deepStrictEqual(arr, [ [1, 2], [2, 3], [3, 4], - [4, 5] + [4, 5], ]); diff --git a/test/parallel/test-buffer-slice.js b/test/parallel/test-buffer-slice.js index f40a495b206079..05cbfba4733829 100644 --- a/test/parallel/test-buffer-slice.js +++ b/test/parallel/test-buffer-slice.js @@ -59,7 +59,7 @@ const expectedSameBufs = [ [buf.slice('-10', '-5'), Buffer.from('01234', 'utf8')], [buf.slice('-10', '-0'), Buffer.from('', 'utf8')], [buf.slice('111'), Buffer.from('', 'utf8')], - [buf.slice('0', '-111'), Buffer.from('', 'utf8')] + [buf.slice('0', '-111'), Buffer.from('', 'utf8')], ]; for (let i = 0, s = buf.toString(); i < buf.length; ++i) { @@ -114,13 +114,13 @@ assert.strictEqual(Buffer.from('hello', 'utf8').slice(0, 0).length, 0); { const buf = Buffer.from([ 1, 29, 0, 0, 1, 143, 216, 162, 92, 254, 248, 63, 0, - 0, 0, 18, 184, 6, 0, 175, 29, 0, 8, 11, 1, 0, 0 + 0, 0, 18, 184, 6, 0, 175, 29, 0, 8, 11, 1, 0, 0, ]); const chunk1 = Buffer.from([ - 1, 29, 0, 0, 1, 143, 216, 162, 92, 254, 248, 63, 0 + 1, 29, 0, 0, 1, 143, 216, 162, 92, 254, 248, 63, 0, ]); const chunk2 = Buffer.from([ - 0, 0, 18, 184, 6, 0, 175, 29, 0, 8, 11, 1, 0, 0 + 0, 0, 18, 184, 6, 0, 175, 29, 0, 8, 11, 1, 0, 0, ]); const middle = buf.length / 2; diff --git a/test/parallel/test-buffer-write.js b/test/parallel/test-buffer-write.js index 842b12c04c04db..128327c47e5d6f 100644 --- a/test/parallel/test-buffer-write.js +++ b/test/parallel/test-buffer-write.js @@ -23,7 +23,8 @@ const resultMap = new Map([ ['binary', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], ['utf16le', Buffer.from([102, 0, 111, 0, 111, 0, 0, 0, 0])], ['base64', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['hex', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])] + ['base64url', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], + ['hex', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], ]); // utf8, ucs2, ascii, latin1, utf16le @@ -44,7 +45,7 @@ encodings }); // base64 -['base64', 'BASE64'].forEach((encoding) => { +['base64', 'BASE64', 'base64url', 'BASE64URL'].forEach((encoding) => { const buf = Buffer.alloc(9); const len = Buffer.byteLength('Zm9v', encoding); diff --git a/test/parallel/test-buffer-writedouble.js b/test/parallel/test-buffer-writedouble.js index 3f156d8297d40e..5026c8187430b3 100644 --- a/test/parallel/test-buffer-writedouble.js +++ b/test/parallel/test-buffer-writedouble.js @@ -11,35 +11,35 @@ buffer.writeDoubleBE(2.225073858507201e-308, 0); buffer.writeDoubleLE(2.225073858507201e-308, 8); assert.ok(buffer.equals(new Uint8Array([ 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, ]))); buffer.writeDoubleBE(1.0000000000000004, 0); buffer.writeDoubleLE(1.0000000000000004, 8); assert.ok(buffer.equals(new Uint8Array([ 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, ]))); buffer.writeDoubleBE(-2, 0); buffer.writeDoubleLE(-2, 8); assert.ok(buffer.equals(new Uint8Array([ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, ]))); buffer.writeDoubleBE(1.7976931348623157e+308, 0); buffer.writeDoubleLE(1.7976931348623157e+308, 8); assert.ok(buffer.equals(new Uint8Array([ 0x7f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7f + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7f, ]))); buffer.writeDoubleBE(0 * -1, 0); buffer.writeDoubleLE(0 * -1, 8); assert.ok(buffer.equals(new Uint8Array([ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, ]))); buffer.writeDoubleBE(Infinity, 0); @@ -47,7 +47,7 @@ buffer.writeDoubleLE(Infinity, 8); assert.ok(buffer.equals(new Uint8Array([ 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, ]))); assert.strictEqual(buffer.readDoubleBE(0), Infinity); @@ -58,7 +58,7 @@ buffer.writeDoubleLE(-Infinity, 8); assert.ok(buffer.equals(new Uint8Array([ 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, ]))); assert.strictEqual(buffer.readDoubleBE(0), -Infinity); @@ -72,12 +72,12 @@ buffer.writeDoubleLE(NaN, 8); if (buffer[1] === 0xF7) { assert.ok(buffer.equals(new Uint8Array([ 0x7F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7F + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7F, ]))); } else { assert.ok(buffer.equals(new Uint8Array([ 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, ]))); } diff --git a/test/parallel/test-buffer-writeint.js b/test/parallel/test-buffer-writeint.js index 4799fb33d77b60..e4b916b1cff27f 100644 --- a/test/parallel/test-buffer-writeint.js +++ b/test/parallel/test-buffer-writeint.js @@ -107,32 +107,32 @@ const errorOutOfBounds = { buffer.writeInt32BE(0x23, 0); buffer.writeInt32LE(0x23, 4); assert.ok(buffer.equals(new Uint8Array([ - 0x00, 0x00, 0x00, 0x23, 0x23, 0x00, 0x00, 0x00 + 0x00, 0x00, 0x00, 0x23, 0x23, 0x00, 0x00, 0x00, ]))); buffer.writeInt32BE(-5, 0); buffer.writeInt32LE(-5, 4); assert.ok(buffer.equals(new Uint8Array([ - 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xff, 0xff, 0xff + 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xff, 0xff, 0xff, ]))); buffer.writeInt32BE(-805306713, 0); buffer.writeInt32LE(-805306713, 4); assert.ok(buffer.equals(new Uint8Array([ - 0xcf, 0xff, 0xfe, 0xa7, 0xa7, 0xfe, 0xff, 0xcf + 0xcf, 0xff, 0xfe, 0xa7, 0xa7, 0xfe, 0xff, 0xcf, ]))); /* Make sure we handle min/max correctly */ buffer.writeInt32BE(0x7fffffff, 0); buffer.writeInt32BE(-0x80000000, 4); assert.ok(buffer.equals(new Uint8Array([ - 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00 + 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, ]))); buffer.writeInt32LE(0x7fffffff, 0); buffer.writeInt32LE(-0x80000000, 4); assert.ok(buffer.equals(new Uint8Array([ - 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80 + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, ]))); ['writeInt32BE', 'writeInt32LE'].forEach((fn) => { @@ -168,12 +168,12 @@ const errorOutOfBounds = { const buffer = Buffer.allocUnsafe(6); buffer.writeIntBE(value, 0, 6); assert.ok(buffer.equals(new Uint8Array([ - 0x12, 0x34, 0x56, 0x78, 0x90, 0xab + 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, ]))); buffer.writeIntLE(value, 0, 6); assert.ok(buffer.equals(new Uint8Array([ - 0xab, 0x90, 0x78, 0x56, 0x34, 0x12 + 0xab, 0x90, 0x78, 0x56, 0x34, 0x12, ]))); } diff --git a/test/parallel/test-buffer-zero-fill-cli.js b/test/parallel/test-buffer-zero-fill-cli.js index 2f3b243c470c3c..4299f81039b0b5 100644 --- a/test/parallel/test-buffer-zero-fill-cli.js +++ b/test/parallel/test-buffer-zero-fill-cli.js @@ -24,7 +24,7 @@ for (let i = 0; i < 50; i++) { Buffer.allocUnsafe(20), SlowBuffer(20), Buffer(20), - new SlowBuffer(20) + new SlowBuffer(20), ]; for (const buf of bufs) { assert(isZeroFilled(buf)); diff --git a/test/parallel/test-c-ares.js b/test/parallel/test-c-ares.js index 1c9234d644d174..a6d27a1ebebcfc 100644 --- a/test/parallel/test-c-ares.js +++ b/test/parallel/test-c-ares.js @@ -62,7 +62,7 @@ dns.lookup('::1', common.mustSucceed((result, addressType) => { // Try calling resolve with an unsupported type. 'HI', // Try calling resolve with an unsupported type that's an object key - 'toString' + 'toString', ].forEach((val) => { const err = { code: 'ERR_INVALID_OPT_VALUE', diff --git a/test/parallel/test-child-process-can-write-to-stdout.js b/test/parallel/test-child-process-can-write-to-stdout.js index bb9ddb71c827bc..069e07fb160282 100644 --- a/test/parallel/test-child-process-can-write-to-stdout.js +++ b/test/parallel/test-child-process-can-write-to-stdout.js @@ -8,7 +8,7 @@ const assert = require('assert'); const spawn = require('child_process').spawn; const child = spawn(process.argv[0], [ - fixtures.path('GH-1899-output.js') + fixtures.path('GH-1899-output.js'), ]); let output = ''; diff --git a/test/parallel/test-child-process-cwd.js b/test/parallel/test-child-process-cwd.js index 232f1d0f3d5316..869db83db3902e 100644 --- a/test/parallel/test-child-process-cwd.js +++ b/test/parallel/test-child-process-cwd.js @@ -20,12 +20,14 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; + const common = require('../common'); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); const assert = require('assert'); const { spawn } = require('child_process'); +const { pathToFileURL, URL } = require('url'); // Spawns 'pwd' with given options, then test // - whether the child pid is undefined or number, @@ -66,10 +68,27 @@ function testCwd(options, expectPidType, expectCode = 0, expectData) { })); } +{ + assert.throws(() => { + testCwd({ + cwd: new URL('http://example.com/'), + }, 'number', 0, tmpdir.path); + }, /The URL must be of scheme file/); + + if (process.platform !== 'win32') { + assert.throws(() => { + testCwd({ + cwd: new URL('file://host/dev/null'), + }, 'number', 0, tmpdir.path); + }, /File URL host must be "localhost" or empty on/); + } +} + // Assume these exist, and 'pwd' gives us the right directory back testCwd({ cwd: tmpdir.path }, 'number', 0, tmpdir.path); const shouldExistDir = common.isWindows ? process.env.windir : '/dev'; testCwd({ cwd: shouldExistDir }, 'number', 0, shouldExistDir); +testCwd({ cwd: pathToFileURL(tmpdir.path) }, 'number', 0, tmpdir.path); // Spawn() shouldn't try to chdir() to invalid arg, so this should just work testCwd({ cwd: '' }, 'number'); diff --git a/test/parallel/test-child-process-exec-abortcontroller-promisified.js b/test/parallel/test-child-process-exec-abortcontroller-promisified.js new file mode 100644 index 00000000000000..bf3c1c92b5ec21 --- /dev/null +++ b/test/parallel/test-child-process-exec-abortcontroller-promisified.js @@ -0,0 +1,48 @@ +// Flags: --experimental-abortcontroller +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const exec = require('child_process').exec; +const { promisify } = require('util'); + +const execPromisifed = promisify(exec); +const invalidArgTypeError = { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError' +}; + +const waitCommand = common.isLinux ? + 'sleep 2m' : + `${process.execPath} -e "setInterval(()=>{}, 99)"`; + +{ + const ac = new AbortController(); + const signal = ac.signal; + const promise = execPromisifed(waitCommand, { signal }); + assert.rejects(promise, /AbortError/, 'post aborted sync signal failed') + .then(common.mustCall()); + ac.abort(); +} + +{ + assert.throws(() => { + execPromisifed(waitCommand, { signal: {} }); + }, invalidArgTypeError); +} + +{ + function signal() {} + assert.throws(() => { + execPromisifed(waitCommand, { signal }); + }, invalidArgTypeError); +} + +{ + const ac = new AbortController(); + const { signal } = ac; + ac.abort(); + const promise = execPromisifed(waitCommand, { signal }); + + assert.rejects(promise, /AbortError/, 'pre aborted signal failed') + .then(common.mustCall()); +} diff --git a/test/parallel/test-child-process-exec-timeout.js b/test/parallel/test-child-process-exec-timeout.js index ba64dad101724a..64648d62bb3284 100644 --- a/test/parallel/test-child-process-exec-timeout.js +++ b/test/parallel/test-child-process-exec-timeout.js @@ -67,7 +67,7 @@ if (common.isWindows) { 'where', `commandline like '%${basename}%child'`, 'delete', - '/nointeractive' + '/nointeractive', ]); }); } diff --git a/test/parallel/test-child-process-execFile-promisified-abortController.js b/test/parallel/test-child-process-execFile-promisified-abortController.js new file mode 100644 index 00000000000000..b2724eeb01be7a --- /dev/null +++ b/test/parallel/test-child-process-execFile-promisified-abortController.js @@ -0,0 +1,59 @@ +// Flags: --experimental-abortcontroller +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { promisify } = require('util'); +const execFile = require('child_process').execFile; +const fixtures = require('../common/fixtures'); + +const echoFixture = fixtures.path('echo.js'); +const promisified = promisify(execFile); +const invalidArgTypeError = { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError' +}; + +{ + // Verify that the signal option works properly + const ac = new AbortController(); + const signal = ac.signal; + const promise = promisified(process.execPath, [echoFixture, 0], { signal }); + + ac.abort(); + + assert.rejects( + promise, + { name: 'AbortError' } + ).then(common.mustCall()); +} + +{ + // Verify that the signal option works properly when already aborted + const ac = new AbortController(); + const { signal } = ac; + ac.abort(); + + assert.rejects( + promisified(process.execPath, [echoFixture, 0], { signal }), + { name: 'AbortError' } + ).then(common.mustCall()); +} + +{ + // Verify that if something different than Abortcontroller.signal + // is passed, ERR_INVALID_ARG_TYPE is thrown + const signal = {}; + assert.throws(() => { + promisified(process.execPath, [echoFixture, 0], { signal }); + }, invalidArgTypeError); +} + +{ + // Verify that if something different than Abortcontroller.signal + // is passed, ERR_INVALID_ARG_TYPE is thrown + const signal = 'world!'; + assert.throws(() => { + promisified(process.execPath, [echoFixture, 0], { signal }); + }, invalidArgTypeError); +} diff --git a/test/parallel/test-child-process-execfile.js b/test/parallel/test-child-process-execfile.js index 28bb498ea4b51d..f75dd05f81a386 100644 --- a/test/parallel/test-child-process-execfile.js +++ b/test/parallel/test-child-process-execfile.js @@ -63,10 +63,23 @@ const execOpts = { encoding: 'utf8', shell: true }; execFile(process.execPath, [echoFixture, 0], { signal }, check); }; - test(); - ac.abort(); // Verify that it still works the same way now that the signal is aborted. test(); + ac.abort(); +} + +{ + // Verify that does not spawn a child if already aborted + const ac = new AbortController(); + const { signal } = ac; + ac.abort(); + + const check = common.mustCall((err) => { + assert.strictEqual(err.code, 'ABORT_ERR'); + assert.strictEqual(err.name, 'AbortError'); + assert.strictEqual(err.signal, undefined); + }); + execFile(process.execPath, [echoFixture, 0], { signal }, check); } { diff --git a/test/parallel/test-child-process-execfilesync-maxbuf.js b/test/parallel/test-child-process-execfilesync-maxbuf.js index 9af7c0ed8dedb1..63f8cc26ebb4d3 100644 --- a/test/parallel/test-child-process-execfilesync-maxbuf.js +++ b/test/parallel/test-child-process-execfilesync-maxbuf.js @@ -12,7 +12,7 @@ const msgOutBuf = Buffer.from(`${msgOut}\n`); const args = [ '-e', - `console.log("${msgOut}");` + `console.log("${msgOut}");`, ]; // Verify that an error is returned if maxBuffer is surpassed. diff --git a/test/parallel/test-child-process-execsync-maxbuf.js b/test/parallel/test-child-process-execsync-maxbuf.js index 0aafd1a74bdac4..62b211cc3a3de1 100644 --- a/test/parallel/test-child-process-execsync-maxbuf.js +++ b/test/parallel/test-child-process-execsync-maxbuf.js @@ -12,7 +12,7 @@ const msgOutBuf = Buffer.from(`${msgOut}\n`); const args = [ '-e', - `"console.log('${msgOut}')";` + `"console.log('${msgOut}')";`, ]; // Verify that an error is returned if maxBuffer is surpassed. diff --git a/test/parallel/test-child-process-fork-abort-signal.js b/test/parallel/test-child-process-fork-abort-signal.js index 809821738d1b9d..817366a71f2bcc 100644 --- a/test/parallel/test-child-process-fork-abort-signal.js +++ b/test/parallel/test-child-process-fork-abort-signal.js @@ -1,7 +1,7 @@ // Flags: --experimental-abortcontroller 'use strict'; -const { mustCall } = require('../common'); +const { mustCall, mustNotCall } = require('../common'); const { strictEqual } = require('assert'); const fixtures = require('../common/fixtures'); const { fork } = require('child_process'); @@ -13,7 +13,10 @@ const { fork } = require('child_process'); const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { signal }); - cp.on('exit', mustCall()); + cp.on('exit', mustCall((code, killSignal) => { + strictEqual(code, null); + strictEqual(killSignal, 'SIGTERM'); + })); cp.on('error', mustCall((err) => { strictEqual(err.name, 'AbortError'); })); @@ -27,8 +30,44 @@ const { fork } = require('child_process'); const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { signal }); - cp.on('exit', mustCall()); + cp.on('exit', mustCall((code, killSignal) => { + strictEqual(code, null); + strictEqual(killSignal, 'SIGTERM'); + })); + cp.on('error', mustCall((err) => { + strictEqual(err.name, 'AbortError'); + })); +} + +{ + // Test passing a different kill signal + const ac = new AbortController(); + const { signal } = ac; + ac.abort(); + const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { + signal, + killSignal: 'SIGKILL', + }); + cp.on('exit', mustCall((code, killSignal) => { + strictEqual(code, null); + strictEqual(killSignal, 'SIGKILL'); + })); cp.on('error', mustCall((err) => { strictEqual(err.name, 'AbortError'); })); } + +{ + // Test aborting a cp before close but after exit + const ac = new AbortController(); + const { signal } = ac; + const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { + signal + }); + cp.on('exit', mustCall(() => { + ac.abort(); + })); + cp.on('error', mustNotCall()); + + setTimeout(() => cp.kill(), 1); +} diff --git a/test/parallel/test-child-process-fork-args.js b/test/parallel/test-child-process-fork-args.js index 02a8db5fa60b61..68863ffb14b747 100644 --- a/test/parallel/test-child-process-fork-args.js +++ b/test/parallel/test-child-process-fork-args.js @@ -19,7 +19,7 @@ const expectedEnv = { foo: 'bar' }; [], {}, () => {}, - Symbol('t') + Symbol('t'), ]; invalidModulePath.forEach((modulePath) => { assert.throws(() => fork(modulePath), { @@ -46,7 +46,7 @@ const expectedEnv = { foo: 'bar' }; 0, true, () => {}, - Symbol('t') + Symbol('t'), ]; invalidSecondArgs.forEach((arg) => { assert.throws( @@ -89,7 +89,7 @@ const expectedEnv = { foo: 'bar' }; 0, true, () => {}, - Symbol('t') + Symbol('t'), ]; invalidThirdArgs.forEach((arg) => { assert.throws( diff --git a/test/parallel/test-child-process-fork-timeout-kill-signal.js b/test/parallel/test-child-process-fork-timeout-kill-signal.js new file mode 100644 index 00000000000000..f5b9bd281f310b --- /dev/null +++ b/test/parallel/test-child-process-fork-timeout-kill-signal.js @@ -0,0 +1,54 @@ +// Flags: --expose-internals +'use strict'; + +const { mustCall } = require('../common'); +const { strictEqual, throws } = require('assert'); +const fixtures = require('../common/fixtures'); +const { fork } = require('child_process'); +const { getEventListeners } = require('events'); +const { + EventTarget, +} = require('internal/event_target'); + +{ + // Verify default signal + const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { + timeout: 5, + }); + cp.on('exit', mustCall((code, ks) => strictEqual(ks, 'SIGTERM'))); +} + +{ + // Verify correct signal + closes after at least 4 ms. + const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { + timeout: 5, + killSignal: 'SIGKILL', + }); + cp.on('exit', mustCall((code, ks) => strictEqual(ks, 'SIGKILL'))); +} + +{ + // Verify timeout verification + throws(() => fork(fixtures.path('child-process-stay-alive-forever.js'), { + timeout: 'badValue', + }), /ERR_OUT_OF_RANGE/); + + throws(() => fork(fixtures.path('child-process-stay-alive-forever.js'), { + timeout: {}, + }), /ERR_OUT_OF_RANGE/); +} + +{ + // Verify abort signal gets unregistered + const signal = new EventTarget(); + signal.aborted = false; + + const cp = fork(fixtures.path('child-process-stay-alive-forever.js'), { + timeout: 6, + signal, + }); + strictEqual(getEventListeners(signal, 'abort').length, 1); + cp.on('exit', mustCall(() => { + strictEqual(getEventListeners(signal, 'abort').length, 0); + })); +} diff --git a/test/parallel/test-child-process-recv-handle.js b/test/parallel/test-child-process-recv-handle.js index bc31ee6bf025eb..a5d322ca7dc19c 100644 --- a/test/parallel/test-child-process-recv-handle.js +++ b/test/parallel/test-child-process-recv-handle.js @@ -37,7 +37,7 @@ function master() { // spawn() can only create one IPC channel so we use stdin/stdout as an // ad-hoc command channel. const proc = spawn(process.execPath, [ - '--expose-internals', __filename, 'worker' + '--expose-internals', __filename, 'worker', ], { stdio: ['pipe', 'pipe', 'pipe', 'ipc'] }); diff --git a/test/parallel/test-child-process-spawn-controller.js b/test/parallel/test-child-process-spawn-controller.js index 07f9cef3557d75..d76b4391870c26 100644 --- a/test/parallel/test-child-process-spawn-controller.js +++ b/test/parallel/test-child-process-spawn-controller.js @@ -3,20 +3,25 @@ const common = require('../common'); const assert = require('assert'); -const cp = require('child_process'); +const { spawn } = require('child_process'); +const fixtures = require('../common/fixtures'); +const aliveScript = fixtures.path('child-process-stay-alive-forever.js'); { // Verify that passing an AbortSignal works const controller = new AbortController(); const { signal } = controller; - const echo = cp.spawn('echo', ['fun'], { - encoding: 'utf8', - shell: true, - signal + const cp = spawn(process.execPath, [aliveScript], { + signal, }); - echo.on('error', common.mustCall((e) => { + cp.on('exit', common.mustCall((code, killSignal) => { + assert.strictEqual(code, null); + assert.strictEqual(killSignal, 'SIGTERM'); + })); + + cp.on('error', common.mustCall((e) => { assert.strictEqual(e.name, 'AbortError'); })); @@ -30,13 +35,76 @@ const cp = require('child_process'); controller.abort(); - const echo = cp.spawn('echo', ['fun'], { - encoding: 'utf8', - shell: true, - signal + const cp = spawn(process.execPath, [aliveScript], { + signal, + }); + cp.on('exit', common.mustCall((code, killSignal) => { + assert.strictEqual(code, null); + assert.strictEqual(killSignal, 'SIGTERM'); + })); + + cp.on('error', common.mustCall((e) => { + assert.strictEqual(e.name, 'AbortError'); + })); +} + +{ + // Verify that waiting a bit and closing works + const controller = new AbortController(); + const { signal } = controller; + + const cp = spawn(process.execPath, [aliveScript], { + signal, + }); + + cp.on('exit', common.mustCall((code, killSignal) => { + assert.strictEqual(code, null); + assert.strictEqual(killSignal, 'SIGTERM'); + })); + + cp.on('error', common.mustCall((e) => { + assert.strictEqual(e.name, 'AbortError'); + })); + + setTimeout(() => controller.abort(), 1); +} + +{ + // Test passing a different killSignal + const controller = new AbortController(); + const { signal } = controller; + + const cp = spawn(process.execPath, [aliveScript], { + signal, + killSignal: 'SIGKILL', }); - echo.on('error', common.mustCall((e) => { + cp.on('exit', common.mustCall((code, killSignal) => { + assert.strictEqual(code, null); + assert.strictEqual(killSignal, 'SIGKILL'); + })); + + cp.on('error', common.mustCall((e) => { assert.strictEqual(e.name, 'AbortError'); })); + + setTimeout(() => controller.abort(), 1); +} + +{ + // Test aborting a cp before close but after exit + const controller = new AbortController(); + const { signal } = controller; + + const cp = spawn(process.execPath, [aliveScript], { + signal, + }); + + cp.on('exit', common.mustCall(() => { + controller.abort(); + })); + + cp.on('error', common.mustNotCall()); + + setTimeout(() => cp.kill(), 1); } diff --git a/test/parallel/test-child-process-spawn-timeout-kill-signal.js b/test/parallel/test-child-process-spawn-timeout-kill-signal.js new file mode 100644 index 00000000000000..f0bedebc597a1d --- /dev/null +++ b/test/parallel/test-child-process-spawn-timeout-kill-signal.js @@ -0,0 +1,51 @@ +// Flags: --experimental-abortcontroller +'use strict'; + +const { mustCall } = require('../common'); +const { strictEqual, throws } = require('assert'); +const fixtures = require('../common/fixtures'); +const { spawn } = require('child_process'); +const { getEventListeners } = require('events'); + +const aliveForeverFile = 'child-process-stay-alive-forever.js'; +{ + // Verify default signal + closes + const cp = spawn(process.execPath, [fixtures.path(aliveForeverFile)], { + timeout: 5, + }); + cp.on('exit', mustCall((code, ks) => strictEqual(ks, 'SIGTERM'))); +} + +{ + // Verify SIGKILL signal + closes + const cp = spawn(process.execPath, [fixtures.path(aliveForeverFile)], { + timeout: 6, + killSignal: 'SIGKILL', + }); + cp.on('exit', mustCall((code, ks) => strictEqual(ks, 'SIGKILL'))); +} + +{ + // Verify timeout verification + throws(() => spawn(process.execPath, [fixtures.path(aliveForeverFile)], { + timeout: 'badValue', + }), /ERR_OUT_OF_RANGE/); + + throws(() => spawn(process.execPath, [fixtures.path(aliveForeverFile)], { + timeout: {}, + }), /ERR_OUT_OF_RANGE/); +} + +{ + // Verify abort signal gets unregistered + const controller = new AbortController(); + const { signal } = controller; + const cp = spawn(process.execPath, [fixtures.path(aliveForeverFile)], { + timeout: 6, + signal, + }); + strictEqual(getEventListeners(signal, 'abort').length, 1); + cp.on('exit', mustCall(() => { + strictEqual(getEventListeners(signal, 'abort').length, 0); + })); +} diff --git a/test/parallel/test-child-process-spawnsync-input.js b/test/parallel/test-child-process-spawnsync-input.js index 4dce110316b30e..62ae476ae17caa 100644 --- a/test/parallel/test-child-process-spawnsync-input.js +++ b/test/parallel/test-child-process-spawnsync-input.js @@ -35,7 +35,7 @@ const msgErrBuf = Buffer.from(`${msgErr}\n`); const args = [ '-e', - `console.log("${msgOut}"); console.error("${msgErr}");` + `console.log("${msgOut}"); console.error("${msgErr}");`, ]; let ret; diff --git a/test/parallel/test-child-process-spawnsync-maxbuf.js b/test/parallel/test-child-process-spawnsync-maxbuf.js index 8d685350adda27..3f452a41e66c26 100644 --- a/test/parallel/test-child-process-spawnsync-maxbuf.js +++ b/test/parallel/test-child-process-spawnsync-maxbuf.js @@ -12,7 +12,7 @@ const msgOutBuf = Buffer.from(`${msgOut}\n`); const args = [ '-e', - `console.log("${msgOut}");` + `console.log("${msgOut}");`, ]; // Verify that an error is returned if maxBuffer is surpassed. diff --git a/test/parallel/test-child-process-spawnsync.js b/test/parallel/test-child-process-spawnsync.js index c464dbefa68e5e..9ec125ea891689 100644 --- a/test/parallel/test-child-process-spawnsync.js +++ b/test/parallel/test-child-process-spawnsync.js @@ -61,7 +61,7 @@ assert.deepStrictEqual(ret_err.spawnargs, ['bar']); const stringifiedDefault = [ null, retDefault.stdout.toString(), - retDefault.stderr.toString() + retDefault.stderr.toString(), ]; assert.deepStrictEqual(retUTF8.output, stringifiedDefault); } diff --git a/test/parallel/test-child-process-stdio-overlapped.js b/test/parallel/test-child-process-stdio-overlapped.js new file mode 100644 index 00000000000000..70a6454ff8fc9a --- /dev/null +++ b/test/parallel/test-child-process-stdio-overlapped.js @@ -0,0 +1,75 @@ +// Test for "overlapped" stdio option. This test uses the "overlapped-checker" +// helper program which basically a specialized echo program. +// +// The test has two goals: +// +// - Verify that overlapped I/O works on windows. The test program will deadlock +// if stdin doesn't have the FILE_FLAG_OVERLAPPED flag set on startup (see +// test/overlapped-checker/main_win.c for more details). +// - Verify that "overlapped" stdio option works transparently as a pipe (on +// unix/windows) +// +// This is how the test works: +// +// - This script assumes only numeric strings are written to the test program +// stdout. +// - The test program will be spawned with "overlapped" set on stdin and "pipe" +// set on stdout/stderr and at startup writes a number to its stdout +// - When this script receives some data, it will parse the number, add 50 and +// write to the test program's stdin. +// - The test program will then echo the number back to us which will repeat the +// cycle until the number reaches 200, at which point we send the "exit" +// string, which causes the test program to exit. +// - Extra assertion: Every time the test program writes a string to its stdout, +// it will write the number of bytes written to stderr. +// - If overlapped I/O is not setup correctly, this test is going to hang. +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const path = require('path'); +const child_process = require('child_process'); + +const exeExtension = process.platform === 'win32' ? '.exe' : ''; +const exe = 'overlapped-checker' + exeExtension; +const exePath = path.join(path.dirname(process.execPath), exe); + +const child = child_process.spawn(exePath, [], { + stdio: ['overlapped', 'pipe', 'pipe'] +}); + +child.stdin.setEncoding('utf8'); +child.stdout.setEncoding('utf8'); +child.stderr.setEncoding('utf8'); + +function writeNext(n) { + child.stdin.write((n + 50).toString()); +} + +child.stdout.on('data', (s) => { + const n = Number(s); + if (n >= 200) { + child.stdin.write('exit'); + return; + } + writeNext(n); +}); + +let stderr = ''; +child.stderr.on('data', (s) => { + stderr += s; +}); + +child.stderr.on('end', common.mustCall(() => { + // This is the sequence of numbers sent to us: + // - 0 (1 byte written) + // - 50 (2 bytes written) + // - 100 (3 bytes written) + // - 150 (3 bytes written) + // - 200 (3 bytes written) + assert.strictEqual(stderr, '12333'); +})); + +child.on('exit', common.mustCall((status) => { + // The test program will return the number of writes as status code. + assert.strictEqual(status, 0); +})); diff --git a/test/parallel/test-child-process-validate-stdio.js b/test/parallel/test-child-process-validate-stdio.js index ff214ee2d78262..7abcce4ca36a3c 100644 --- a/test/parallel/test-child-process-validate-stdio.js +++ b/test/parallel/test-child-process-validate-stdio.js @@ -50,7 +50,7 @@ if (common.isMainThread) { stdio: [ { type: 'fd', fd: 0 }, { type: 'fd', fd: 1 }, - { type: 'fd', fd: 2 } + { type: 'fd', fd: 2 }, ], ipc: undefined, ipcFd: undefined diff --git a/test/parallel/test-cli-options-negation.js b/test/parallel/test-cli-options-negation.js new file mode 100644 index 00000000000000..bfbee635ab1a2e --- /dev/null +++ b/test/parallel/test-cli-options-negation.js @@ -0,0 +1,39 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); + +// --warnings is on by default. +assertHasWarning(spawnWithFlags([])); + +// --warnings can be passed alone. +assertHasWarning(spawnWithFlags(['--warnings'])); + +// --no-warnings can be passed alone. +assertHasNoWarning(spawnWithFlags(['--no-warnings'])); + +// Last flag takes precedence. +assertHasWarning(spawnWithFlags(['--no-warnings', '--warnings'])); + +// Non-boolean flags cannot be negated. +assert(spawnWithFlags(['--no-max-http-header-size']).stderr.toString().includes( + '--no-max-http-header-size is an invalid negation because it is not ' + + 'a boolean option', +)); + +// Inexistant flags cannot be negated. +assert(spawnWithFlags(['--no-i-dont-exist']).stderr.toString().includes( + 'bad option: --no-i-dont-exist', +)); + +function spawnWithFlags(flags) { + return spawnSync(process.execPath, [...flags, '-e', 'new Buffer(0)']); +} + +function assertHasWarning(proc) { + assert(proc.stderr.toString().includes('Buffer() is deprecated')); +} + +function assertHasNoWarning(proc) { + assert(!proc.stderr.toString().includes('Buffer() is deprecated')); +} diff --git a/test/parallel/test-cli-options-precedence.js b/test/parallel/test-cli-options-precedence.js index f76c12043e29cd..32804d187fccc3 100644 --- a/test/parallel/test-cli-options-precedence.js +++ b/test/parallel/test-cli-options-precedence.js @@ -7,7 +7,7 @@ const { spawnSync } = require('child_process'); assert.strictEqual(spawnSync(process.execPath, [ '--max-http-header-size=1234', '--max-http-header-size=5678', - '-p', 'http.maxHeaderSize' + '-p', 'http.maxHeaderSize', ], { encoding: 'utf8' }).stdout.trim(), '5678'); @@ -15,7 +15,7 @@ assert.strictEqual(spawnSync(process.execPath, [ // The command line takes precedence over NODE_OPTIONS: assert.strictEqual(spawnSync(process.execPath, [ '--max-http-header-size=5678', - '-p', 'http.maxHeaderSize' + '-p', 'http.maxHeaderSize', ], { encoding: 'utf8', env: { ...process.env, NODE_OPTIONS: '--max-http-header-size=1234' } diff --git a/test/parallel/test-cli-syntax-piped-bad.js b/test/parallel/test-cli-syntax-piped-bad.js index abd924848fc417..d22c21cb7e1605 100644 --- a/test/parallel/test-cli-syntax-piped-bad.js +++ b/test/parallel/test-cli-syntax-piped-bad.js @@ -9,7 +9,7 @@ const node = process.execPath; // Test both sets of arguments that check syntax const syntaxArgs = [ '-c', - '--check' + '--check', ]; // Match on the name of the `Error` but not the message as it is different diff --git a/test/parallel/test-cli-syntax-piped-good.js b/test/parallel/test-cli-syntax-piped-good.js index 43de5d32f40d40..db2e0f875d2ac7 100644 --- a/test/parallel/test-cli-syntax-piped-good.js +++ b/test/parallel/test-cli-syntax-piped-good.js @@ -9,7 +9,7 @@ const node = process.execPath; // Test both sets of arguments that check syntax const syntaxArgs = [ '-c', - '--check' + '--check', ]; // Should not execute code piped from stdin with --check. diff --git a/test/parallel/test-cluster-worker-exit.js b/test/parallel/test-cluster-worker-exit.js index f93a3f587096ab..4c1f9c8d65978a 100644 --- a/test/parallel/test-cluster-worker-exit.js +++ b/test/parallel/test-cluster-worker-exit.js @@ -53,7 +53,7 @@ if (cluster.isWorker) { worker_emitExit: [1, "the worker did not emit 'exit'"], worker_state: ['disconnected', 'the worker state is incorrect'], worker_exitedAfterDisconnect: [ - false, 'the .exitedAfterDisconnect flag is incorrect' + false, 'the .exitedAfterDisconnect flag is incorrect', ], worker_died: [true, 'the worker is still running'], worker_exitCode: [EXIT_CODE, 'the worker exited w/ incorrect exitCode'], diff --git a/test/parallel/test-common-countdown.js b/test/parallel/test-common-countdown.js index 6a1a2f1bbce98a..d3c0daf599670c 100644 --- a/test/parallel/test-common-countdown.js +++ b/test/parallel/test-common-countdown.js @@ -19,7 +19,7 @@ const failFixtures = [ [ fixtures.path('failcounter.js'), 'Mismatched function calls. Expected exactly 1, actual 0.', - ] + ], ]; for (const p of failFixtures) { diff --git a/test/parallel/test-common.js b/test/parallel/test-common.js index 3087cc035eb4e2..24c4f8462eb767 100644 --- a/test/parallel/test-common.js +++ b/test/parallel/test-common.js @@ -91,11 +91,11 @@ fnAtLeast2Called3(); const failFixtures = [ [ fixtures.path('failmustcall1.js'), - 'Mismatched function calls. Expected exactly 2, actual 1.' + 'Mismatched function calls. Expected exactly 2, actual 1.', ], [ fixtures.path('failmustcall2.js'), - 'Mismatched function calls. Expected at least 2, actual 1.' - ] + 'Mismatched function calls. Expected at least 2, actual 1.', + ], ]; for (const p of failFixtures) { const [file, expected] = p; diff --git a/test/parallel/test-console-tty-colors.js b/test/parallel/test-console-tty-colors.js index e906c71c186177..0eb51c72898f7c 100644 --- a/test/parallel/test-console-tty-colors.js +++ b/test/parallel/test-console-tty-colors.js @@ -10,7 +10,7 @@ function check(isTTY, colorMode, expectedColorMode, inspectOptions) { 1, { a: 2 }, [ 'foo' ], - { '\\a': '\\bar' } + { '\\a': '\\bar' }, ]; let i = 0; diff --git a/test/parallel/test-console.js b/test/parallel/test-console.js index e5e80ee61b2777..ee2c7c82a6f8e0 100644 --- a/test/parallel/test-console.js +++ b/test/parallel/test-console.js @@ -49,7 +49,7 @@ common.expectWarning( ['No such label \'default\' for console.timeLog()'], ['No such label \'default\' for console.timeEnd()'], ['Label \'default\' already exists for console.time()'], - ['Label \'test\' already exists for console.time()'] + ['Label \'test\' already exists for console.time()'], ] ); @@ -216,7 +216,7 @@ console.timeEnd('label3'); assert.strictEqual(console._times.size, timesMapSize); const expectedStrings = [ - 'foo', 'foo bar', 'foo bar hop', "{ slashes: '\\\\\\\\' }", 'inspect' + 'foo', 'foo bar', 'foo bar hop', "{ slashes: '\\\\\\\\' }", 'inspect', ]; for (const expected of expectedStrings) { diff --git a/test/parallel/test-crypto-authenticated.js b/test/parallel/test-crypto-authenticated.js index 863907bafd8192..1375095d1ce9bb 100644 --- a/test/parallel/test-crypto-authenticated.js +++ b/test/parallel/test-crypto-authenticated.js @@ -68,12 +68,12 @@ const expectedWarnings = common.hasFipsCrypto ? ['Use Cipheriv for counter mode of aes-256-ccm'], ['Use Cipheriv for counter mode of aes-256-ccm'], ['Use Cipheriv for counter mode of aes-256-ccm'], - ['Use Cipheriv for counter mode of aes-256-ccm'] + ['Use Cipheriv for counter mode of aes-256-ccm'], ]; const expectedDeprecationWarnings = [ ['crypto.DEFAULT_ENCODING is deprecated.', 'DEP0091'], - ['crypto.createCipher is deprecated.', 'DEP0106'] + ['crypto.createCipher is deprecated.', 'DEP0106'], ]; common.expectWarning({ @@ -310,7 +310,7 @@ for (const test of TEST_CASES) { decipher.setAuthTag(Buffer.from('445352d3ff85cf94', 'hex')); const text = Buffer.concat([ decipher.update('3a2a3647', 'hex'), - decipher.final() + decipher.final(), ]); assert.strictEqual(text.toString('utf8'), 'node'); } @@ -611,7 +611,7 @@ for (const test of TEST_CASES) { // Decryption should still work. const plaintext = Buffer.concat([ decipher.update(ciphertext), - decipher.final() + decipher.final(), ]); assert(plain.equals(plaintext)); } diff --git a/test/parallel/test-crypto-binary-default.js b/test/parallel/test-crypto-binary-default.js index a2fb2e82670567..3fcd3f66161fdb 100644 --- a/test/parallel/test-crypto-binary-default.js +++ b/test/parallel/test-crypto-binary-default.js @@ -214,7 +214,7 @@ assert.throws(function() { '20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de04460' + '65c97440fa8c6a58' } - } + }, ]; for (const testCase of rfc4231) { @@ -286,7 +286,7 @@ assert.throws(function() { 'Test Using Larger Than Block-Size Key and Larger Than One ' + 'Block-Size Data', hmac: '6f630fad67cda0ee1fb1f562db3aa53e' - } + }, ]; const rfc2202_sha1 = [ { @@ -340,7 +340,7 @@ assert.throws(function() { 'Test Using Larger Than Block-Size Key and Larger Than One ' + 'Block-Size Data', hmac: 'e8e99d0f45237d786d6bbaa7965c7808bbff1a91' - } + }, ]; if (!common.hasFipsCrypto) { diff --git a/test/parallel/test-crypto-cipher-decipher.js b/test/parallel/test-crypto-cipher-decipher.js index 4bb765d9ca408b..b60c7f95d15cb3 100644 --- a/test/parallel/test-crypto-cipher-decipher.js +++ b/test/parallel/test-crypto-cipher-decipher.js @@ -12,10 +12,10 @@ const assert = require('assert'); common.expectWarning({ Warning: [ - ['Use Cipheriv for counter mode of aes-256-gcm'] + ['Use Cipheriv for counter mode of aes-256-gcm'], ], DeprecationWarning: [ - ['crypto.createCipher is deprecated.', 'DEP0106'] + ['crypto.createCipher is deprecated.', 'DEP0106'], ] }); diff --git a/test/parallel/test-crypto-dh-leak.js b/test/parallel/test-crypto-dh-leak.js index 65486dbd80cb64..5c4c0c61d4f41c 100644 --- a/test/parallel/test-crypto-dh-leak.js +++ b/test/parallel/test-crypto-dh-leak.js @@ -10,7 +10,7 @@ if (process.config.variables.asan) const assert = require('assert'); const crypto = require('crypto'); -const before = process.memoryUsage().rss; +const before = process.memoryUsage.rss(); { const dh = crypto.createDiffieHellman(common.hasFipsCrypto ? 1024 : 256); const publicKey = dh.generateKeys(); @@ -21,7 +21,7 @@ const before = process.memoryUsage().rss; } } global.gc(); -const after = process.memoryUsage().rss; +const after = process.memoryUsage.rss(); // RSS should stay the same, ceteris paribus, but allow for // some slop because V8 mallocs memory during execution. diff --git a/test/parallel/test-crypto-dh-stateless.js b/test/parallel/test-crypto-dh-stateless.js index b01cea76b221c1..e1b02b5c51fbd8 100644 --- a/test/parallel/test-crypto-dh-stateless.js +++ b/test/parallel/test-crypto-dh-stateless.js @@ -138,7 +138,7 @@ for (const [params1, params2] of [ // Same primes, but different generator. [{ group: 'modp5' }, { prime: group.getPrime(), generator: 5 }], // Same generator, but different primes. - [{ primeLength: 1024 }, { primeLength: 1024 }] + [{ primeLength: 1024 }, { primeLength: 1024 }], ]) { assert.throws(() => { test(crypto.generateKeyPairSync('dh', params1), diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js index 8a5fd21eea511e..cb82bde5161697 100644 --- a/test/parallel/test-crypto-dh.js +++ b/test/parallel/test-crypto-dh.js @@ -102,7 +102,7 @@ for (const g of [Buffer.from([]), [0x1, 0x2], () => { }, /abc/, - {} + {}, ].forEach((input) => { assert.throws( () => crypto.createDiffieHellman(input), @@ -199,7 +199,7 @@ const modp2buf = Buffer.from([ 0x5c, 0xb6, 0xf4, 0x06, 0xb7, 0xed, 0xee, 0x38, 0x6b, 0xfb, 0x5a, 0x89, 0x9f, 0xa5, 0xae, 0x9f, 0x24, 0x11, 0x7c, 0x4b, 0x1f, 0xe6, 0x49, 0x28, 0x66, 0x51, 0xec, 0xe6, 0x53, 0x81, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]); { diff --git a/test/parallel/test-crypto-hmac.js b/test/parallel/test-crypto-hmac.js index 160d09036dbe7f..13285f2fbbf855 100644 --- a/test/parallel/test-crypto-hmac.js +++ b/test/parallel/test-crypto-hmac.js @@ -51,7 +51,7 @@ function testHmac(algo, key, data, expected) { // If the key is a Buffer, test Hmac with a key object as well. const keyWrappers = [ (key) => key, - ...(typeof key === 'string' ? [] : [crypto.createSecretKey]) + ...(typeof key === 'string' ? [] : [crypto.createSecretKey]), ]; for (const keyWrapper of keyWrappers) { @@ -262,7 +262,7 @@ const rfc4231 = [ '20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de04460' + '65c97440fa8c6a58' } - } + }, ]; for (let i = 0, l = rfc4231.length; i < l; i++) { @@ -344,7 +344,7 @@ const rfc2202_md5 = [ 'Test Using Larger Than Block-Size Key and Larger Than One ' + 'Block-Size Data', hmac: '6f630fad67cda0ee1fb1f562db3aa53e' - } + }, ]; for (const { key, data, hmac } of rfc2202_md5) @@ -402,7 +402,7 @@ const rfc2202_sha1 = [ 'Test Using Larger Than Block-Size Key and Larger Than One ' + 'Block-Size Data', hmac: 'e8e99d0f45237d786d6bbaa7965c7808bbff1a91' - } + }, ]; for (const { key, data, hmac } of rfc2202_sha1) diff --git a/test/parallel/test-crypto-key-objects.js b/test/parallel/test-crypto-key-objects.js index d3011db79d65b4..5d1e2619a66bc3 100644 --- a/test/parallel/test-crypto-key-objects.js +++ b/test/parallel/test-crypto-key-objects.js @@ -78,12 +78,12 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', const cipher = createCipheriv('aes-256-ecb', key, null); const ciphertext = Buffer.concat([ - cipher.update(plaintext), cipher.final() + cipher.update(plaintext), cipher.final(), ]); const decipher = createDecipheriv('aes-256-ecb', key, null); const deciphered = Buffer.concat([ - decipher.update(ciphertext), decipher.final() + decipher.update(ciphertext), decipher.final(), ]); assert(plaintext.equals(deciphered)); @@ -185,15 +185,15 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', // Test distinguishing PKCS#1 public and private keys based on the // DER-encoded data only. publicEncrypt({ format: 'der', type: 'pkcs1', key: publicDER }, plaintext), - publicEncrypt({ format: 'der', type: 'pkcs1', key: privateDER }, plaintext) + publicEncrypt({ format: 'der', type: 'pkcs1', key: privateDER }, plaintext), ], [ privateKey, { format: 'pem', key: privatePem }, - { format: 'der', type: 'pkcs1', key: privateDER } + { format: 'der', type: 'pkcs1', key: privateDER }, ]); testDecryption(publicDecrypt, [ - privateEncrypt(privateKey, plaintext) + privateEncrypt(privateKey, plaintext), ], [ // Decrypt using the public key. publicKey, @@ -203,7 +203,7 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', // Decrypt using the private key. privateKey, { format: 'pem', key: privatePem }, - { format: 'der', type: 'pkcs1', key: privateDER } + { format: 'der', type: 'pkcs1', key: privateDER }, ]); } diff --git a/test/parallel/test-crypto-keygen.js b/test/parallel/test-crypto-keygen.js index 5da5715bcbd206..dd106004fad5ac 100644 --- a/test/parallel/test-crypto-keygen.js +++ b/test/parallel/test-crypto-keygen.js @@ -1010,7 +1010,7 @@ const sec1EncExp = (cipher) => getRegExpForPEM('EC PRIVATE KEY', cipher); ['group', 'prime'], ['group', 'primeLength'], ['group', 'generator'], - ['prime', 'primeLength'] + ['prime', 'primeLength'], ]; for (const [opt1, opt2] of incompatible) { assert.throws(() => { diff --git a/test/parallel/test-crypto-random.js b/test/parallel/test-crypto-random.js index 3c3aa0ad00c9c4..e09eae69dd9a2e 100644 --- a/test/parallel/test-crypto-random.js +++ b/test/parallel/test-crypto-random.js @@ -92,7 +92,7 @@ common.expectWarning('DeprecationWarning', new Uint32Array(10), new Float32Array(10), new Float64Array(10), - new DataView(new ArrayBuffer(10)) + new DataView(new ArrayBuffer(10)), ].forEach((buf) => { const before = Buffer.from(buf.buffer).toString('hex'); crypto.randomFillSync(buf); @@ -125,7 +125,7 @@ common.expectWarning('DeprecationWarning', new Uint32Array(10), new Float32Array(10), new Float64Array(10), - new DataView(new ArrayBuffer(10)) + new DataView(new ArrayBuffer(10)), ].forEach((buf) => { const before = Buffer.from(buf.buffer).toString('hex'); crypto.randomFill(buf, common.mustSucceed((buf) => { @@ -185,7 +185,7 @@ common.expectWarning('DeprecationWarning', { [ Buffer.alloc(10), - new Uint8Array(new Array(10).fill(0)) + new Uint8Array(new Array(10).fill(0)), ].forEach((buf) => { const len = Buffer.byteLength(buf); assert.strictEqual(len, 10, `Expected byteLength of 10, got ${len}`); diff --git a/test/parallel/test-crypto-randomuuid.js b/test/parallel/test-crypto-randomuuid.js index 232dcec62c8f2e..23e97fb8cf49a1 100644 --- a/test/parallel/test-crypto-randomuuid.js +++ b/test/parallel/test-crypto-randomuuid.js @@ -11,7 +11,7 @@ const { } = require('crypto'); const last = new Set([ - '00000000-0000-0000-0000-000000000000' + '00000000-0000-0000-0000-000000000000', ]); function testMatch(uuid) { diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js index 6c19dee23291bb..7c013a28715caf 100644 --- a/test/parallel/test-crypto-scrypt.js +++ b/test/parallel/test-crypto-scrypt.js @@ -99,7 +99,7 @@ const bad = [ { N: 3, p: 1, r: 1 }, // Not power of 2. { N: 1, cost: 1 }, // Both N and cost { p: 1, parallelization: 1 }, // Both p and parallelization - { r: 1, blockSize: 1 } // Both r and blocksize + { r: 1, blockSize: 1 }, // Both r and blocksize ]; // Test vectors where 128*N*r exceeds maxmem. @@ -263,6 +263,6 @@ for (const { args, expected } of badargs) { [ ['N', 16384], ['cost', 16384], ['r', 8], ['blockSize', 8], - ['p', 1], ['parallelization', 1] + ['p', 1], ['parallelization', 1], ].forEach((arg) => testParameter(...arg)); } diff --git a/test/parallel/test-crypto-sign-verify.js b/test/parallel/test-crypto-sign-verify.js index ff410dcf00fa6a..02bb169a4ddf27 100644 --- a/test/parallel/test-crypto-sign-verify.js +++ b/test/parallel/test-crypto-sign-verify.js @@ -170,14 +170,14 @@ assert.throws( getEffectiveSaltLength(crypto.constants.RSA_PSS_SALTLEN_DIGEST), crypto.constants.RSA_PSS_SALTLEN_MAX_SIGN, getEffectiveSaltLength(crypto.constants.RSA_PSS_SALTLEN_MAX_SIGN), - 0, 16, 32, 64, 128 + 0, 16, 32, 64, 128, ]; const verifySaltLengths = [ crypto.constants.RSA_PSS_SALTLEN_DIGEST, getEffectiveSaltLength(crypto.constants.RSA_PSS_SALTLEN_DIGEST), getEffectiveSaltLength(crypto.constants.RSA_PSS_SALTLEN_MAX_SIGN), - 0, 16, 32, 64, 128 + 0, 16, 32, 64, 128, ]; const errMessage = /^Error:.*data too large for key size$/; @@ -383,7 +383,7 @@ assert.throws( }); [ - Uint8Array, Uint16Array, Uint32Array, Float32Array, Float64Array + Uint8Array, Uint16Array, Uint32Array, Float32Array, Float64Array, ].forEach((clazz) => { // These should all just work sign.update(new clazz()); @@ -436,7 +436,7 @@ assert.throws( { private: fixtures.readKey('rsa_private_2048.pem', 'ascii'), public: fixtures.readKey('rsa_public_2048.pem', 'ascii'), algo: 'sha1', - sigLen: 256 } + sigLen: 256 }, ].forEach((pair) => { const algo = pair.algo; @@ -472,7 +472,7 @@ assert.throws( } [ - Uint8Array, Uint16Array, Uint32Array, Float32Array, Float64Array + Uint8Array, Uint16Array, Uint32Array, Float32Array, Float64Array, ].forEach((clazz) => { const data = new clazz(); const sig = crypto.sign(algo, data, pair.private); @@ -523,7 +523,7 @@ assert.throws( [ crypto.createSign('sha1').update(data).sign(privKey), crypto.sign('sha1', data, privKey), - crypto.sign('sha1', data, { key: privKey, dsaEncoding: 'der' }) + crypto.sign('sha1', data, { key: privKey, dsaEncoding: 'der' }), ].forEach((sig) => { // Signature length variability due to DER encoding assert(sig.length >= length + 4 && sig.length <= length + 8); diff --git a/test/parallel/test-crypto.js b/test/parallel/test-crypto.js index 6b72dbd21cd07d..6b65af5a39aaea 100644 --- a/test/parallel/test-crypto.js +++ b/test/parallel/test-crypto.js @@ -27,7 +27,7 @@ if (!common.hasCrypto) common.expectWarning({ DeprecationWarning: [ - ['crypto.createCipher is deprecated.', 'DEP0106'] + ['crypto.createCipher is deprecated.', 'DEP0106'], ] }); @@ -212,7 +212,7 @@ assert.throws(() => { 'eKN7LggbF3Dk5wIQN6SL+fQ5H/+7NgARsVBp0QIRANxYRukavs4QvuyNhMx+vrkCEQCbf6j/', 'Ig6/HueCK/0Jkmp+', '-----END RSA PRIVATE KEY-----', - '' + '', ].join('\n'); crypto.createSign('SHA256').update('test').sign(priv); }, (err) => { diff --git a/test/sequential/test-debugger-address.js b/test/parallel/test-debugger-address.js similarity index 93% rename from test/sequential/test-debugger-address.js rename to test/parallel/test-debugger-address.js index 89c70687c819b8..95dd1c6e3f8283 100644 --- a/test/sequential/test-debugger-address.js +++ b/test/parallel/test-debugger-address.js @@ -4,7 +4,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const { spawn } = require('child_process'); @@ -37,7 +37,7 @@ function launchTarget(...args) { } { - const script = fixtures.path('inspector-cli/alive.js'); + const script = fixtures.path('debugger/alive.js'); let cli = null; let target = null; diff --git a/test/parallel/test-debugger-unavailable-port.js b/test/parallel/test-debugger-unavailable-port.js new file mode 100644 index 00000000000000..e2920312ffc21c --- /dev/null +++ b/test/parallel/test-debugger-unavailable-port.js @@ -0,0 +1,36 @@ +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const fixtures = require('../common/fixtures'); +const startCLI = require('../common/debugger'); + +const assert = require('assert'); +const { createServer } = require('net'); + +// Launch w/ unavailable port. +(async () => { + const blocker = createServer((socket) => socket.end()); + const port = await new Promise((resolve, reject) => { + blocker.on('error', reject); + blocker.listen(0, '127.0.0.1', () => resolve(blocker.address().port)); + }); + + try { + const script = fixtures.path('debugger', 'three-lines.js'); + const cli = startCLI([`--port=${port}`, script]); + const code = await cli.quit(); + + assert.doesNotMatch( + cli.output, + /report this bug/, + 'Omits message about reporting this as a bug'); + assert.ok( + cli.output.includes(`waiting for 127.0.0.1:${port} to be free`), + 'Tells the user that the port wasn\'t available'); + assert.strictEqual(code, 1); + } finally { + blocker.close(); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-debugger-websocket-secret-mismatch.js b/test/parallel/test-debugger-websocket-secret-mismatch.js new file mode 100644 index 00000000000000..9b7b50c518f186 --- /dev/null +++ b/test/parallel/test-debugger-websocket-secret-mismatch.js @@ -0,0 +1,54 @@ +'use strict'; + +const common = require('../common'); +common.skipIfInspectorDisabled(); + +const assert = require('assert'); +const childProcess = require('child_process'); +const http = require('http'); + +let port; + +const server = http.createServer(common.mustCall((req, res) => { + if (req.url.startsWith('/json')) { + res.writeHead(200); + res.end(`[ { + "description": "", + "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:${port}/devtools/page/DAB7FB6187B554E10B0BD18821265734", + "cid": "DAB7FB6187B554E10B0BD18821265734", + "title": "Fhqwhgads", + "type": "page", + "url": "https://www.example.com/", + "webSocketDebuggerUrl": "ws://localhost:${port}/devtools/page/DAB7FB6187B554E10B0BD18821265734" + } ]`); + } else { + res.setHeader('Upgrade', 'websocket'); + res.setHeader('Connection', 'Upgrade'); + res.setHeader('Sec-WebSocket-Accept', 'fhqwhgads'); + res.setHeader('Sec-WebSocket-Protocol', 'chat'); + res.writeHead(101); + res.end(); + } +}, 2)).listen(0, common.mustCall(() => { + port = server.address().port; + const proc = + childProcess.spawn(process.execPath, ['inspect', `localhost:${port}`]); + + let stdout = ''; + proc.stdout.on('data', (data) => { + stdout += data.toString(); + assert.doesNotMatch(stdout, /\bok\b/); + }); + + let stderr = ''; + proc.stderr.on('data', (data) => { + stderr += data.toString(); + }); + + proc.on('exit', common.mustCall((code, signal) => { + assert.match(stderr, /\bWebSocket secret mismatch\b/); + assert.notStrictEqual(code, 0); + assert.strictEqual(signal, null); + server.close(); + })); +})); diff --git a/test/parallel/test-dgram-createSocket-type.js b/test/parallel/test-dgram-createSocket-type.js index ae141d3c383236..19bbd6c1b2b088 100644 --- a/test/parallel/test-dgram-createSocket-type.js +++ b/test/parallel/test-dgram-createSocket-type.js @@ -11,13 +11,13 @@ const invalidTypes = [ true, false, null, - undefined + undefined, ]; const validTypes = [ 'udp4', 'udp6', { type: 'udp4' }, - { type: 'udp6' } + { type: 'udp6' }, ]; const errMessage = /^Bad socket type specified\. Valid types are: udp4, udp6$/; diff --git a/test/parallel/test-dgram-deprecation-error.js b/test/parallel/test-dgram-deprecation-error.js index 37664a5720c96f..c544a917b02b83 100644 --- a/test/parallel/test-dgram-deprecation-error.js +++ b/test/parallel/test-dgram-deprecation-error.js @@ -14,12 +14,12 @@ const propertiesToTest = [ '_receiving', '_bindState', '_queue', - '_reuseAddr' + '_reuseAddr', ]; const methodsToTest = [ '_healthCheck', - '_stopReceiving' + '_stopReceiving', ]; const propertyCases = propertiesToTest.map((propName) => { @@ -41,7 +41,7 @@ const propertyCases = propertiesToTest.map((propName) => { 'DEP0112' ); sock[propName] = null; - } + }, ]; }); diff --git a/test/parallel/test-dns-default-verbatim-false.js b/test/parallel/test-dns-default-verbatim-false.js new file mode 100644 index 00000000000000..06b8f66a610998 --- /dev/null +++ b/test/parallel/test-dns-default-verbatim-false.js @@ -0,0 +1,51 @@ +// Flags: --expose-internals --dns-result-order=ipv4first +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const cares = internalBinding('cares_wrap'); +const { promisify } = require('util'); + +// Test that --dns-result-order=ipv4first works as expected. + +const originalGetaddrinfo = cares.getaddrinfo; +const calls = []; +cares.getaddrinfo = common.mustCallAtLeast((...args) => { + calls.push(args); + originalGetaddrinfo(...args); +}, 1); + +const dns = require('dns'); +const dnsPromises = dns.promises; + +let verbatim; + +// We want to test the parameter of verbatim only so that we +// ignore possible errors here. +function allowFailed(fn) { + return fn.catch((_err) => { + // + }); +} + +(async () => { + let callsLength = 0; + const checkParameter = (expected) => { + assert.strictEqual(calls.length, callsLength + 1); + verbatim = calls[callsLength][4]; + assert.strictEqual(verbatim, expected); + callsLength += 1; + }; + + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(false); + + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(false); + + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(false); + + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(false); +})().then(common.mustCall()); diff --git a/test/parallel/test-dns-default-verbatim-true.js b/test/parallel/test-dns-default-verbatim-true.js new file mode 100644 index 00000000000000..1cdaa44a2dcb71 --- /dev/null +++ b/test/parallel/test-dns-default-verbatim-true.js @@ -0,0 +1,51 @@ +// Flags: --expose-internals --dns-result-order=verbatim +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const cares = internalBinding('cares_wrap'); +const { promisify } = require('util'); + +// Test that --dns-result-order=verbatim works as expected. + +const originalGetaddrinfo = cares.getaddrinfo; +const calls = []; +cares.getaddrinfo = common.mustCallAtLeast((...args) => { + calls.push(args); + originalGetaddrinfo(...args); +}, 1); + +const dns = require('dns'); +const dnsPromises = dns.promises; + +let verbatim; + +// We want to test the parameter of verbatim only so that we +// ignore possible errors here. +function allowFailed(fn) { + return fn.catch((_err) => { + // + }); +} + +(async () => { + let callsLength = 0; + const checkParameter = (expected) => { + assert.strictEqual(calls.length, callsLength + 1); + verbatim = calls[callsLength][4]; + assert.strictEqual(verbatim, expected); + callsLength += 1; + }; + + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(true); + + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(true); + + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(true); + + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(true); +})().then(common.mustCall()); diff --git a/test/parallel/test-dns-lookup-promises.js b/test/parallel/test-dns-lookup-promises.js index 9dab377f6ac4eb..31c7dbd2458fe6 100644 --- a/test/parallel/test-dns-lookup-promises.js +++ b/test/parallel/test-dns-lookup-promises.js @@ -56,7 +56,7 @@ async function lookupPositive() { stub: getaddrinfoPositive(['some-address2']), factory: () => dnsPromises.lookup('example.com', { family: 6 }), expectation: { address: 'some-address2', family: 6 } - } + }, ].forEach(async ({ stub, factory, expectation }) => { getaddrinfoStub = stub; assert.deepStrictEqual(await factory(), expectation); @@ -80,7 +80,7 @@ async function lookupallPositive() { factory: () => dnsPromises.lookup('example', { all: true }), expectation: [ { address: '::1', family: 6 }, - { address: '::2', family: 6 } + { address: '::2', family: 6 }, ] }, { @@ -88,7 +88,7 @@ async function lookupallPositive() { factory: () => dnsPromises.lookup('example', { all: true, family: 4 }), expectation: [ { address: '::1', family: 4 }, - { address: '::2', family: 4 } + { address: '::2', family: 4 }, ] }, { @@ -96,7 +96,7 @@ async function lookupallPositive() { factory: () => dnsPromises.lookup('example', { all: true }), expectation: [ { address: '127.0.0.1', family: 4 }, - { address: 'some-address', family: 0 } + { address: 'some-address', family: 0 }, ] }, { @@ -104,14 +104,14 @@ async function lookupallPositive() { factory: () => dnsPromises.lookup('example', { all: true, family: 6 }), expectation: [ { address: '127.0.0.1', family: 6 }, - { address: 'some-address', family: 6 } + { address: 'some-address', family: 6 }, ] }, { stub: getaddrinfoPositive([]), factory: () => dnsPromises.lookup('example', { all: true }), expectation: [] - } + }, ].forEach(async ({ stub, factory, expectation }) => { getaddrinfoStub = stub; assert.deepStrictEqual(await factory(), expectation); @@ -134,6 +134,6 @@ async function lookupallNegative() { lookupPositive(), lookupNegative(), lookupallPositive(), - lookupallNegative() + lookupallNegative(), ]); })().then(common.mustCall()); diff --git a/test/parallel/test-dns-lookup.js b/test/parallel/test-dns-lookup.js index b089fd65787b95..220153ac380cc9 100644 --- a/test/parallel/test-dns-lookup.js +++ b/test/parallel/test-dns-lookup.js @@ -27,7 +27,7 @@ const dnsPromises = dns.promises; common.expectWarning({ // For 'internal/test/binding' module. 'internal/test/binding': [ - 'These APIs are for internal testing only. Do not use them.' + 'These APIs are for internal testing only. Do not use them.', ], // For calling `dns.lookup` with falsy `hostname`. 'DeprecationWarning': { diff --git a/test/parallel/test-dns-multi-channel.js b/test/parallel/test-dns-multi-channel.js index 890c10c9862741..026ef44e339e85 100644 --- a/test/parallel/test-dns-multi-channel.js +++ b/test/parallel/test-dns-multi-channel.js @@ -13,7 +13,7 @@ const servers = [ { socket: dgram.createSocket('udp4'), reply: { type: 'A', address: '5.6.7.8', ttl: 123, domain: 'example.org' } - } + }, ]; let waiting = servers.length; diff --git a/test/parallel/test-dns-resolveany.js b/test/parallel/test-dns-resolveany.js index 7cc4a046ba7e2c..0bbfe8f9f18432 100644 --- a/test/parallel/test-dns-resolveany.js +++ b/test/parallel/test-dns-resolveany.js @@ -27,7 +27,7 @@ const answers = [ type: 'CAA', critical: 128, issue: 'platynum.ch' - } + }, ]; const server = dgram.createSocket('udp4'); diff --git a/test/parallel/test-dns-set-default-order.js b/test/parallel/test-dns-set-default-order.js new file mode 100644 index 00000000000000..43980c5dd8716c --- /dev/null +++ b/test/parallel/test-dns-set-default-order.js @@ -0,0 +1,93 @@ +// Flags: --expose-internals +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const cares = internalBinding('cares_wrap'); +const { promisify } = require('util'); + +// Test that `dns.setDefaultResultOrder()` and +// `dns.promises.setDefaultResultOrder()` works as expected. + +const originalGetaddrinfo = cares.getaddrinfo; +const calls = []; +cares.getaddrinfo = common.mustCallAtLeast((...args) => { + calls.push(args); + originalGetaddrinfo(...args); +}, 1); + +const dns = require('dns'); +const dnsPromises = dns.promises; + +let verbatim; + +// We want to test the parameter of verbatim only so that we +// ignore possible errors here. +function allowFailed(fn) { + return fn.catch((_err) => { + // + }); +} + +assert.throws(() => dns.setDefaultResultOrder('my_order'), { + code: 'ERR_INVALID_ARG_VALUE', +}); +assert.throws(() => dns.promises.setDefaultResultOrder('my_order'), { + code: 'ERR_INVALID_ARG_VALUE', +}); +assert.throws(() => dns.setDefaultResultOrder(4), { + code: 'ERR_INVALID_ARG_VALUE', +}); +assert.throws(() => dns.promises.setDefaultResultOrder(4), { + code: 'ERR_INVALID_ARG_VALUE', +}); + +(async () => { + let callsLength = 0; + const checkParameter = (expected) => { + assert.strictEqual(calls.length, callsLength + 1); + verbatim = calls[callsLength][4]; + assert.strictEqual(verbatim, expected); + callsLength += 1; + }; + + dns.setDefaultResultOrder('verbatim'); + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(true); + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(true); + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(true); + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(true); + + dns.setDefaultResultOrder('ipv4first'); + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(false); + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(false); + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(false); + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(false); + + dns.promises.setDefaultResultOrder('verbatim'); + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(true); + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(true); + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(true); + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(true); + + dns.promises.setDefaultResultOrder('ipv4first'); + await allowFailed(promisify(dns.lookup)('example.org')); + checkParameter(false); + await allowFailed(dnsPromises.lookup('example.org')); + checkParameter(false); + await allowFailed(promisify(dns.lookup)('example.org', {})); + checkParameter(false); + await allowFailed(dnsPromises.lookup('example.org', {})); + checkParameter(false); +})().then(common.mustCall()); diff --git a/test/parallel/test-dns-setservers-type-check.js b/test/parallel/test-dns-setservers-type-check.js index 9f09ee4ebf6519..cc819cae74b7fd 100644 --- a/test/parallel/test-dns-setservers-type-check.js +++ b/test/parallel/test-dns-setservers-type-check.js @@ -15,7 +15,7 @@ const promiseResolver = new dns.promises.Resolver(); addresses.DNS4_SERVER, { address: addresses.DNS4_SERVER - } + }, ].forEach((val) => { const errObj = { code: 'ERR_INVALID_ARG_TYPE', @@ -54,8 +54,8 @@ const promiseResolver = new dns.promises.Resolver(); [ { address: addresses.DNS4_SERVER - } - ] + }, + ], ].forEach((val) => { const errObj = { code: 'ERR_INVALID_ARG_TYPE', diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index 796d0d12da1337..fb6600430acb9e 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -61,7 +61,7 @@ assert(existing.length > 0); assert.deepStrictEqual(dns.getServers(), [ '127.0.0.1', '192.168.1.1', - '0.0.0.0' + '0.0.0.0', ]); } @@ -75,7 +75,7 @@ assert(existing.length > 0); // Check for REDOS issues. ':'.repeat(100000), '['.repeat(100000), - '['.repeat(100000) + ']'.repeat(100000) + 'a' + '['.repeat(100000) + ']'.repeat(100000) + 'a', ]; invalidServers.forEach((serv) => { assert.throws( @@ -383,7 +383,7 @@ assert.throws(() => { retry: 900, expire: 1800, minttl: 3333333333 - } + }, ] }, ]; diff --git a/test/parallel/test-domain-abort-on-uncaught.js b/test/parallel/test-domain-abort-on-uncaught.js index e74fb436bf18e0..08551721c1d39b 100644 --- a/test/parallel/test-domain-abort-on-uncaught.js +++ b/test/parallel/test-domain-abort-on-uncaught.js @@ -191,7 +191,7 @@ const tests = [ }); }); }); - } + }, ]; if (process.argv[2] === 'child') { diff --git a/test/parallel/test-domain-error-types.js b/test/parallel/test-domain-error-types.js index b7c2d6ba9b748e..cfd4fa801e3d95 100644 --- a/test/parallel/test-domain-error-types.js +++ b/test/parallel/test-domain-error-types.js @@ -11,7 +11,7 @@ const domain = require('domain'); // https://github.com/nodejs/node/issues/28275 is fixed in debug mode. for (const something of [ - 42, null, undefined, false, () => {}, 'string', Symbol('foo') + 42, null, undefined, false, () => {}, 'string', Symbol('foo'), ]) { const d = new domain.Domain(); d.run(common.mustCall(() => { diff --git a/test/parallel/test-domain-multiple-errors.js b/test/parallel/test-domain-multiple-errors.js index 5b031eb1b44bc4..fc4ccc47d32708 100644 --- a/test/parallel/test-domain-multiple-errors.js +++ b/test/parallel/test-domain-multiple-errors.js @@ -10,7 +10,7 @@ const domain = require('domain'); const d = new domain.Domain(); const values = [ - 42, null, undefined, false, () => {}, 'string', Symbol('foo') + 42, null, undefined, false, () => {}, 'string', Symbol('foo'), ]; d.on('error', common.mustCall((err) => { diff --git a/test/parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js b/test/parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js index a2e2dabab0ffb2..deb7993a145825 100644 --- a/test/parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js +++ b/test/parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js @@ -13,7 +13,7 @@ const { internalBinding } = require('internal/test/binding'); internalBinding('udp_wrap').UDP.prototype.send6, internalBinding('tcp_wrap').TCP.prototype.bind, internalBinding('udp_wrap').UDP.prototype.close, - internalBinding('tcp_wrap').TCP.prototype.open + internalBinding('tcp_wrap').TCP.prototype.open, ].forEach((binding, i) => { assert.strictEqual('prototype' in binding, false, `Test ${i} failed`); }); diff --git a/test/parallel/test-err-name-deprecation.js b/test/parallel/test-err-name-deprecation.js index 58dff38364c818..5f3fb28f100663 100644 --- a/test/parallel/test-err-name-deprecation.js +++ b/test/parallel/test-err-name-deprecation.js @@ -9,7 +9,7 @@ common.expectWarning({ 'DEP0111'], ['Directly calling process.binding(\'uv\').errname() is being ' + 'deprecated. Please make sure to use util.getSystemErrorName() instead.', - 'DEP0119'] + 'DEP0119'], ] }); diff --git a/test/parallel/test-eslint-alphabetize-errors.js b/test/parallel/test-eslint-alphabetize-errors.js index a9bc26d7f0540a..df822f27409520 100644 --- a/test/parallel/test-eslint-alphabetize-errors.js +++ b/test/parallel/test-eslint-alphabetize-errors.js @@ -14,7 +14,7 @@ new RuleTester().run('alphabetize-errors', rule, { E('AAA', 'foo'); E('BBB', 'bar'); E('CCC', 'baz'); - ` + `, ], invalid: [ { @@ -24,6 +24,6 @@ new RuleTester().run('alphabetize-errors', rule, { E('CCC', 'baz'); `, errors: [{ message: 'Out of ASCIIbetical order - BBB >= AAA', line: 3 }] - } + }, ] }); diff --git a/test/parallel/test-eslint-crypto-check.js b/test/parallel/test-eslint-crypto-check.js index 0a973f4c9c951d..164149131a9758 100644 --- a/test/parallel/test-eslint-crypto-check.js +++ b/test/parallel/test-eslint-crypto-check.js @@ -27,7 +27,7 @@ new RuleTester().run('crypto-check', rule, { common.skip("missing crypto"); } internalBinding("crypto"); - ` + `, ], invalid: [ { @@ -71,6 +71,6 @@ new RuleTester().run('crypto-check', rule, { '}\n' + 'if (common.foo) {}\n' + 'internalBinding("crypto")' - } + }, ] }); diff --git a/test/parallel/test-eslint-documented-errors.js b/test/parallel/test-eslint-documented-errors.js index a047ecd35847e0..e8abd38a983e5b 100644 --- a/test/parallel/test-eslint-documented-errors.js +++ b/test/parallel/test-eslint-documented-errors.js @@ -14,7 +14,7 @@ new RuleTester().run('documented-errors', rule, { valid: [ ` E('ERR_ASSERTION', 'foo'); - ` + `, ], invalid: [ { @@ -30,8 +30,8 @@ new RuleTester().run('documented-errors', rule, { message: `doc/api/errors.md does not have an anchor for "${invalidCode}"`, line: 2 - } + }, ] - } + }, ] }); diff --git a/test/parallel/test-eslint-eslint-check.js b/test/parallel/test-eslint-eslint-check.js index c1ee3d501f0eec..28ec2e1f10fdb3 100644 --- a/test/parallel/test-eslint-eslint-check.js +++ b/test/parallel/test-eslint-eslint-check.js @@ -18,7 +18,7 @@ new RuleTester().run('eslint-check', rule, { 'foo;', 'require("common")\n' + 'common.skipIfEslintMissing();\n' + - 'require("../../tools/node_modules/eslint")' + 'require("../../tools/node_modules/eslint")', ], invalid: [ { @@ -28,6 +28,6 @@ new RuleTester().run('eslint-check', rule, { output: 'require("common")\n' + 'common.skipIfEslintMissing();\n' + 'require("../../tools/node_modules/eslint").RuleTester' - } + }, ] }); diff --git a/test/parallel/test-eslint-inspector-check.js b/test/parallel/test-eslint-inspector-check.js index cf9f60e94505b8..2d945c3da33188 100644 --- a/test/parallel/test-eslint-inspector-check.js +++ b/test/parallel/test-eslint-inspector-check.js @@ -17,7 +17,7 @@ new RuleTester().run('inspector-check', rule, { 'foo;', 'require("common")\n' + 'common.skipIfInspectorDisabled();\n' + - 'require("inspector")' + 'require("inspector")', ], invalid: [ { @@ -27,6 +27,6 @@ new RuleTester().run('inspector-check', rule, { output: 'require("common")\n' + 'common.skipIfInspectorDisabled();\n' + 'require("inspector")' - } + }, ] }); diff --git a/test/parallel/test-eslint-no-array-destructuring.js b/test/parallel/test-eslint-no-array-destructuring.js new file mode 100644 index 00000000000000..be59ee69309755 --- /dev/null +++ b/test/parallel/test-eslint-no-array-destructuring.js @@ -0,0 +1,141 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +common.skipIfEslintMissing(); + +const { RuleTester } = require('../../tools/node_modules/eslint'); +const rule = require('../../tools/eslint-rules/no-array-destructuring'); + +const USE_OBJ_DESTRUCTURING = + 'Use object destructuring instead of array destructuring.'; +const USE_ARRAY_METHODS = + 'Use primordials.ArrayPrototypeSlice to avoid unsafe array iteration.'; + +new RuleTester({ + parserOptions: { ecmaVersion: 2021 }, + env: { es6: true } +}) + .run('no-array-destructuring', rule, { + valid: [ + 'const first = [1, 2, 3][0];', + 'const {0:first} = [1, 2, 3];', + '({1:elem} = array);', + 'function name(param, { 0: key, 1: value },) {}', + ], + invalid: [ + { + code: 'const [Array] = args;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'const {0:Array} = args;' + }, + { + code: 'const [ , res] = args;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'const { 1:res} = args;', + }, + { + code: '[, elem] = options;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: '({ 1:elem} = options);', + }, + { + code: 'const {values:[elem]} = options;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'const {values:{0:elem}} = options;', + }, + { + code: '[[[elem]]] = options;', + errors: [ + { message: USE_OBJ_DESTRUCTURING }, + { message: USE_OBJ_DESTRUCTURING }, + { message: USE_OBJ_DESTRUCTURING }, + ], + output: '({0:[[elem]]} = options);', + }, + { + code: '[, ...rest] = options;', + errors: [{ message: USE_ARRAY_METHODS }], + }, + { + code: 'for(const [key, value] of new Map);', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'for(const {0:key, 1:value} of new Map);', + }, + { + code: 'let [first,,,fourth] = array;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'let {0:first,3:fourth} = array;', + }, + { + code: 'let [,second,,fourth] = array;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'let {1:second,3:fourth} = array;', + }, + { + code: 'let [ ,,,fourth ] = array;', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'let { 3:fourth } = array;', + }, + { + code: 'let [,,,fourth, fifth,, minorFall, majorLift,...music] = arr;', + errors: [{ message: USE_ARRAY_METHODS }], + }, + { + code: 'function map([key, value]) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'function map({0:key, 1:value}) {}', + }, + { + code: 'function map([key, value],) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'function map({0:key, 1:value},) {}', + }, + { + code: '(function([key, value]) {})', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: '(function({0:key, 1:value}) {})', + }, + { + code: '(function([key, value] = [null, 0]) {})', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: '(function({0:key, 1:value} = [null, 0]) {})', + }, + { + code: 'function map([key, ...values]) {}', + errors: [{ message: USE_ARRAY_METHODS }], + }, + { + code: 'function map([key, value], ...args) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'function map({0:key, 1:value}, ...args) {}', + }, + { + code: 'async function map([key, value], ...args) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'async function map({0:key, 1:value}, ...args) {}', + }, + { + code: 'async function* generator([key, value], ...args) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'async function* generator({0:key, 1:value}, ...args) {}', + }, + { + code: 'function* generator([key, value], ...args) {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'function* generator({0:key, 1:value}, ...args) {}', + }, + { + code: 'const cb = ([key, value], ...args) => {}', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'const cb = ({0:key, 1:value}, ...args) => {}', + }, + { + code: 'class name{ method([key], ...args){} }', + errors: [{ message: USE_OBJ_DESTRUCTURING }], + output: 'class name{ method({0:key}, ...args){} }', + }, + ] + }); diff --git a/test/parallel/test-eslint-no-unescaped-regexp-dot.js b/test/parallel/test-eslint-no-unescaped-regexp-dot.js index 69600d80731302..7cf69877ca12ed 100644 --- a/test/parallel/test-eslint-no-unescaped-regexp-dot.js +++ b/test/parallel/test-eslint-no-unescaped-regexp-dot.js @@ -17,7 +17,7 @@ new RuleTester().run('no-unescaped-regexp-dot', rule, { '/.*/', '/.?/', '/.{5}/', - String.raw`/\\\./` + String.raw`/\\\./`, ], invalid: [ { @@ -27,6 +27,6 @@ new RuleTester().run('no-unescaped-regexp-dot', rule, { { code: String.raw`/\\./`, errors: [{ message: 'Unescaped dot character in regular expression' }] - } + }, ] }); diff --git a/test/parallel/test-eslint-prefer-assert-iferror.js b/test/parallel/test-eslint-prefer-assert-iferror.js index 342459f0b77ce4..5ccb7883393f46 100644 --- a/test/parallel/test-eslint-prefer-assert-iferror.js +++ b/test/parallel/test-eslint-prefer-assert-iferror.js @@ -14,7 +14,7 @@ new RuleTester().run('prefer-assert-iferror', rule, { 'assert.ifError(err);', 'if (err) throw somethingElse;', 'throw err;', - 'if (err) { throw somethingElse; }' + 'if (err) { throw somethingElse; }', ], invalid: [ { @@ -30,6 +30,6 @@ new RuleTester().run('prefer-assert-iferror', rule, { errors: [{ message: 'Use assert.ifError(error) instead.' }], output: 'require("assert");\n' + 'assert.ifError(error);' - } + }, ] }); diff --git a/test/parallel/test-eslint-prefer-assert-methods.js b/test/parallel/test-eslint-prefer-assert-methods.js index a5829cdce3054f..3271f6ab1856b0 100644 --- a/test/parallel/test-eslint-prefer-assert-methods.js +++ b/test/parallel/test-eslint-prefer-assert-methods.js @@ -21,7 +21,7 @@ new RuleTester().run('prefer-assert-methods', rule, { 'assert(foo != bar && baz);', 'assert.ok(foo);', 'assert.ok(foo != bar);', - 'assert.ok(foo === bar && baz);' + 'assert.ok(foo === bar && baz);', ], invalid: [ { @@ -51,6 +51,6 @@ new RuleTester().run('prefer-assert-methods', rule, { message: "'assert.notStrictEqual' should be used instead of '!=='" }], output: 'assert.notStrictEqual(foo, bar);' - } + }, ] }); diff --git a/test/parallel/test-eslint-prefer-common-mustnotcall.js b/test/parallel/test-eslint-prefer-common-mustnotcall.js index dba244a2a9fa89..5c360bb1ecbec6 100644 --- a/test/parallel/test-eslint-prefer-common-mustnotcall.js +++ b/test/parallel/test-eslint-prefer-common-mustnotcall.js @@ -16,7 +16,7 @@ new RuleTester().run('prefer-common-mustnotcall', rule, { valid: [ 'common.mustNotCall(fn)', 'common.mustCall(fn)', - 'common.mustCall(fn, 1)' + 'common.mustCall(fn, 1)', ], invalid: [ { @@ -26,6 +26,6 @@ new RuleTester().run('prefer-common-mustnotcall', rule, { { code: 'common.mustCall(0)', errors: [{ message }] - } + }, ] }); diff --git a/test/parallel/test-eslint-prefer-common-mustsucceed.js b/test/parallel/test-eslint-prefer-common-mustsucceed.js index fa16fa5f4c29e8..302b6a0bee4f38 100644 --- a/test/parallel/test-eslint-prefer-common-mustsucceed.js +++ b/test/parallel/test-eslint-prefer-common-mustsucceed.js @@ -21,7 +21,7 @@ new RuleTester({ 'foo((err) => assert.ifError(err))', 'foo(function(err) { assert.ifError(err) })', 'foo(assert.ifError)', - 'common.mustCall((err) => err)' + 'common.mustCall((err) => err)', ], invalid: [ { @@ -47,6 +47,6 @@ new RuleTester({ { code: 'common.mustCall(function(e) {{ assert.ifError(e); }})', errors: [{ message: msg2 }] - } + }, ] }); diff --git a/test/parallel/test-eslint-prefer-util-format-errors.js b/test/parallel/test-eslint-prefer-util-format-errors.js index 762fec28b1f1d8..a6c2662a382418 100644 --- a/test/parallel/test-eslint-prefer-util-format-errors.js +++ b/test/parallel/test-eslint-prefer-util-format-errors.js @@ -17,7 +17,7 @@ new RuleTester({ parserOptions: { ecmaVersion: 6 } }) 'E(\'ABC\', \'abc\');', 'E(\'ABC\', (arg1, arg2) => `${arg2}${arg1}`);', 'E(\'ABC\', (arg1, arg2) => `${arg1}{arg2.something}`);', - 'E(\'ABC\', (arg1, arg2) => fn(arg1, arg2));' + 'E(\'ABC\', (arg1, arg2) => fn(arg1, arg2));', ], invalid: [ { @@ -26,6 +26,6 @@ new RuleTester({ parserOptions: { ecmaVersion: 6 } }) message: 'Please use a printf-like formatted string that ' + 'util.format can consume.' }] - } + }, ] }); diff --git a/test/parallel/test-eslint-require-common-first.js b/test/parallel/test-eslint-require-common-first.js index 018d4185d527e5..b3d132e11fdc3f 100644 --- a/test/parallel/test-eslint-require-common-first.js +++ b/test/parallel/test-eslint-require-common-first.js @@ -14,7 +14,7 @@ new RuleTester().run('require-common-first', rule, { { code: 'require("common")\n' + 'require("assert")' - } + }, ], invalid: [ { @@ -22,6 +22,6 @@ new RuleTester().run('require-common-first', rule, { 'require("common")', errors: [{ message: 'Mandatory module "common" must be loaded ' + 'before any other modules.' }] - } + }, ] }); diff --git a/test/parallel/test-eslint-required-modules.js b/test/parallel/test-eslint-required-modules.js index e81a7d4b241353..c891e2350711a4 100644 --- a/test/parallel/test-eslint-required-modules.js +++ b/test/parallel/test-eslint-required-modules.js @@ -46,6 +46,6 @@ new RuleTester().run('required-modules', rule, { code: 'require("somethingElse")', options: [{ common: 'common' }], errors: [{ message: 'Mandatory module "common" must be loaded.' }] - } + }, ] }); diff --git a/test/parallel/test-eval-strict-referenceerror.js b/test/parallel/test-eval-strict-referenceerror.js index a96478a1bedaae..97f2b15ba0ed3d 100644 --- a/test/parallel/test-eval-strict-referenceerror.js +++ b/test/parallel/test-eval-strict-referenceerror.js @@ -15,7 +15,7 @@ function test() { 'function bar() {', '\'use strict\';', 'return foo; // foo isn\'t captured in 0.10', - '};' + '};', ].join('\n'); eval(code); diff --git a/test/parallel/test-event-emitter-special-event-names.js b/test/parallel/test-event-emitter-special-event-names.js index 7ff781f0f90c5a..f34faba9468cc2 100644 --- a/test/parallel/test-event-emitter-special-event-names.js +++ b/test/parallel/test-event-emitter-special-event-names.js @@ -19,7 +19,7 @@ ee.on('toString', handler); assert.deepStrictEqual(ee.eventNames(), [ '__proto__', '__defineGetter__', - 'toString' + 'toString', ]); assert.deepStrictEqual(ee.listeners('__proto__'), [handler]); diff --git a/test/parallel/test-events-on-async-iterator.js b/test/parallel/test-events-on-async-iterator.js index 94875f07e1745c..0b7e0a07e939e3 100644 --- a/test/parallel/test-events-on-async-iterator.js +++ b/test/parallel/test-events-on-async-iterator.js @@ -128,7 +128,7 @@ async function next() { const results = await Promise.all([ iterable.next(), iterable.next(), - iterable.next() + iterable.next(), ]); assert.deepStrictEqual(results, [{ @@ -158,7 +158,7 @@ async function nextError() { const results = await Promise.allSettled([ iterable.next(), iterable.next(), - iterable.next() + iterable.next(), ]); assert.deepStrictEqual(results, [{ status: 'rejected', @@ -385,7 +385,7 @@ async function run() { eventTargetAbortableOnBefore, eventTargetAbortableOnAfter, eventTargetAbortableOnAfter2, - abortableOnAfterDone + abortableOnAfterDone, ]; for (const fn of funcs) { diff --git a/test/parallel/test-eventtarget-memoryleakwarning.js b/test/parallel/test-eventtarget-memoryleakwarning.js index 46c68b9979cfcb..060dd7472868a3 100644 --- a/test/parallel/test-eventtarget-memoryleakwarning.js +++ b/test/parallel/test-eventtarget-memoryleakwarning.js @@ -29,7 +29,7 @@ common.expectWarning({ ], ExperimentalWarning: [[ 'AbortController is an experimental feature. This feature could change ' + - 'at any time' + 'at any time', ]] }); diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index 07523f02bdf10f..2a013875dc3225 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -178,6 +178,15 @@ let asyncTest = Promise.resolve(); eventTarget.dispatchEvent(event); } +{ + // The `options` argument can be `null`. + const eventTarget = new EventTarget(); + const event = new Event('foo'); + const fn = common.mustCall((event) => strictEqual(event.type, 'foo')); + eventTarget.addEventListener('foo', fn, null); + eventTarget.dispatchEvent(event); +} + { const uncaughtException = common.mustCall((err, event) => { strictEqual(err.message, 'boom'); @@ -232,7 +241,7 @@ let asyncTest = Promise.resolve(); {}, // No type event undefined, 1, - false + false, ].forEach((i) => { throws(() => target.dispatchEvent(i), { code: 'ERR_INVALID_ARG_TYPE', @@ -253,7 +262,7 @@ let asyncTest = Promise.resolve(); 'foo', 1, {}, // No handleEvent function - false + false, ].forEach((i) => throws(() => target.addEventListener('foo', i), err(i))); } @@ -397,7 +406,7 @@ let asyncTest = Promise.resolve(); undefined, false, Symbol(), - /a/ + /a/, ].forEach((i) => { throws(() => target.dispatchEvent.call(i, event), { code: 'ERR_INVALID_THIS' diff --git a/test/parallel/test-fs-access.js b/test/parallel/test-fs-access.js index cd4ac90d8fc2a8..9fa4dfcf1fe4d8 100644 --- a/test/parallel/test-fs-access.js +++ b/test/parallel/test-fs-access.js @@ -162,7 +162,7 @@ fs.accessSync(readWriteFile, mode); 1n, { [Symbol.toPrimitive]() { return fs.R_OK; } }, [1], - 'r' + 'r', ].forEach((mode, i) => { console.log(mode, i); assert.throws( @@ -186,7 +186,7 @@ fs.accessSync(readWriteFile, mode); -1, 8, Infinity, - NaN + NaN, ].forEach((mode, i) => { console.log(mode, i); assert.throws( diff --git a/test/parallel/test-fs-append-file-sync.js b/test/parallel/test-fs-append-file-sync.js index 9914863674b0b2..0070b8f6486d75 100644 --- a/test/parallel/test-fs-append-file-sync.js +++ b/test/parallel/test-fs-append-file-sync.js @@ -74,7 +74,7 @@ const filename4 = join(tmpdir.path, 'append-sync4.txt'); fs.writeFileSync(filename4, currentFileData, { mode: m }); [ - true, false, 0, 1, Infinity, () => {}, {}, [], undefined, null + true, false, 0, 1, Infinity, () => {}, {}, [], undefined, null, ].forEach((value) => { assert.throws( () => fs.appendFileSync(filename4, value, { mode: m }), diff --git a/test/parallel/test-fs-append-file.js b/test/parallel/test-fs-append-file.js index a191f8b20693c1..70919830f6cb0b 100644 --- a/test/parallel/test-fs-append-file.js +++ b/test/parallel/test-fs-append-file.js @@ -121,7 +121,7 @@ const throwNextTick = (e) => { process.nextTick(() => { throw e; }); }; } // Test that appendFile does not accept invalid data type (callback API). -[false, 5, {}, [], null, undefined].forEach(async (data) => { +[false, 5, {}, null, undefined].forEach(async (data) => { const errObj = { code: 'ERR_INVALID_ARG_TYPE', message: /"data"|"buffer"/ diff --git a/test/parallel/test-fs-buffertype-writesync.js b/test/parallel/test-fs-buffertype-writesync.js index fca5b944970836..5649a00569a2fa 100644 --- a/test/parallel/test-fs-buffertype-writesync.js +++ b/test/parallel/test-fs-buffertype-writesync.js @@ -7,7 +7,7 @@ const assert = require('assert'); const fs = require('fs'); [ - true, false, 0, 1, Infinity, () => {}, {}, [], undefined, null + true, false, 0, 1, Infinity, () => {}, {}, [], undefined, null, ].forEach((value) => { assert.throws( () => fs.writeSync(1, value), diff --git a/test/parallel/test-fs-filehandle.js b/test/parallel/test-fs-filehandle.js index bed9ebfa9c86c1..818a3824904431 100644 --- a/test/parallel/test-fs-filehandle.js +++ b/test/parallel/test-fs-filehandle.js @@ -27,10 +27,10 @@ const deprecationWarning = common.expectWarning({ 'internal/test/binding': [ - 'These APIs are for internal testing only. Do not use them.' + 'These APIs are for internal testing only. Do not use them.', ], 'Warning': [ - `Closing file descriptor ${fdnum} on garbage collection` + `Closing file descriptor ${fdnum} on garbage collection`, ], 'DeprecationWarning': [[deprecationWarning, 'DEP0137']] }); diff --git a/test/parallel/test-fs-mkdtemp-prefix-check.js b/test/parallel/test-fs-mkdtemp-prefix-check.js index 1d9d88232a067e..33a06914a46e10 100644 --- a/test/parallel/test-fs-mkdtemp-prefix-check.js +++ b/test/parallel/test-fs-mkdtemp-prefix-check.js @@ -3,7 +3,7 @@ const common = require('../common'); const assert = require('assert'); const fs = require('fs'); -const prefixValues = [undefined, null, 0, true, false, 1, '']; +const prefixValues = [undefined, null, 0, true, false, 1]; function fail(value) { assert.throws( diff --git a/test/parallel/test-fs-promises-file-handle-read.js b/test/parallel/test-fs-promises-file-handle-read.js index 30113c42a8d9d4..74383a02e42fd9 100644 --- a/test/parallel/test-fs-promises-file-handle-read.js +++ b/test/parallel/test-fs-promises-file-handle-read.js @@ -60,6 +60,13 @@ async function validateLargeRead() { assert.strictEqual(readHandle.bytesRead, 0); } +async function validateReadNoParams() { + const filePath = fixtures.path('x.txt'); + const fileHandle = await open(filePath, 'r'); + // Should not throw + await fileHandle.read(); +} + let useConf = false; (async function() { @@ -72,4 +79,5 @@ let useConf = false; .then(validateLargeRead) .then(common.mustCall()); } + await validateReadNoParams(); })().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises-file-handle-readFile.js b/test/parallel/test-fs-promises-file-handle-readFile.js index 367391244eace9..3a178f7f37ff25 100644 --- a/test/parallel/test-fs-promises-file-handle-readFile.js +++ b/test/parallel/test-fs-promises-file-handle-readFile.js @@ -11,7 +11,7 @@ const { open, readFile, writeFile, - truncate + truncate, } = fs.promises; const path = require('path'); const tmpdir = require('../common/tmpdir'); @@ -65,6 +65,7 @@ async function doReadAndCancel() { await assert.rejects(readFile(fileHandle, { signal }), { name: 'AbortError' }); + await fileHandle.close(); } // Signal aborted on first tick @@ -75,10 +76,11 @@ async function doReadAndCancel() { fs.writeFileSync(filePathForHandle, buffer); const controller = new AbortController(); const { signal } = controller; - tick(1, () => controller.abort()); + process.nextTick(() => controller.abort()); await assert.rejects(readFile(fileHandle, { signal }), { name: 'AbortError' - }); + }, 'tick-0'); + await fileHandle.close(); } // Signal aborted right before buffer read @@ -91,10 +93,12 @@ async function doReadAndCancel() { const controller = new AbortController(); const { signal } = controller; - tick(2, () => controller.abort()); + tick(1, () => controller.abort()); await assert.rejects(fileHandle.readFile({ signal, encoding: 'utf8' }), { name: 'AbortError' - }); + }, 'tick-1'); + + await fileHandle.close(); } // Validate file size is within range for reading @@ -112,6 +116,7 @@ async function doReadAndCancel() { name: 'RangeError', code: 'ERR_FS_FILE_TOO_LARGE' }); + await fileHandle.close(); } } diff --git a/test/parallel/test-fs-promises-file-handle-write.js b/test/parallel/test-fs-promises-file-handle-write.js index dcff311b3d3a33..3c25842d8bf9cc 100644 --- a/test/parallel/test-fs-promises-file-handle-write.js +++ b/test/parallel/test-fs-promises-file-handle-write.js @@ -68,5 +68,5 @@ Promise.all([ validateWrite(), validateEmptyWrite(), validateNonUint8ArrayWrite(), - validateNonStringValuesWrite() + validateNonStringValuesWrite(), ]).then(common.mustCall()); diff --git a/test/parallel/test-fs-promises-file-handle-writeFile.js b/test/parallel/test-fs-promises-file-handle-writeFile.js index a4ae7fd054b53d..6458144657dae9 100644 --- a/test/parallel/test-fs-promises-file-handle-writeFile.js +++ b/test/parallel/test-fs-promises-file-handle-writeFile.js @@ -9,6 +9,7 @@ const common = require('../common'); const fs = require('fs'); const { open, writeFile } = fs.promises; const path = require('path'); +const { Readable } = require('stream'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const tmpDir = tmpdir.path; @@ -18,28 +19,183 @@ tmpdir.refresh(); async function validateWriteFile() { const filePathForHandle = path.resolve(tmpDir, 'tmp-write-file2.txt'); const fileHandle = await open(filePathForHandle, 'w+'); - const buffer = Buffer.from('Hello world'.repeat(100), 'utf8'); + try { + const buffer = Buffer.from('Hello world'.repeat(100), 'utf8'); - await fileHandle.writeFile(buffer); - const readFileData = fs.readFileSync(filePathForHandle); - assert.deepStrictEqual(buffer, readFileData); - - await fileHandle.close(); + await fileHandle.writeFile(buffer); + const readFileData = fs.readFileSync(filePathForHandle); + assert.deepStrictEqual(buffer, readFileData); + } finally { + await fileHandle.close(); + } } // Signal aborted while writing file async function doWriteAndCancel() { const filePathForHandle = path.resolve(tmpDir, 'dogs-running.txt'); const fileHandle = await open(filePathForHandle, 'w+'); - const buffer = Buffer.from('dogs running'.repeat(10000), 'utf8'); + try { + const buffer = Buffer.from('dogs running'.repeat(512 * 1024), 'utf8'); + const controller = new AbortController(); + const { signal } = controller; + process.nextTick(() => controller.abort()); + await assert.rejects(writeFile(fileHandle, buffer, { signal }), { + name: 'AbortError' + }); + } finally { + await fileHandle.close(); + } +} + +const dest = path.resolve(tmpDir, 'tmp.txt'); +const otherDest = path.resolve(tmpDir, 'tmp-2.txt'); +const stream = Readable.from(['a', 'b', 'c']); +const stream2 = Readable.from(['ümlaut', ' ', 'sechzig']); +const iterable = { + expected: 'abc', + *[Symbol.iterator]() { + yield 'a'; + yield 'b'; + yield 'c'; + } +}; +function iterableWith(value) { + return { + *[Symbol.iterator]() { + yield value; + } + }; +} +const bufferIterable = { + expected: 'abc', + *[Symbol.iterator]() { + yield Buffer.from('a'); + yield Buffer.from('b'); + yield Buffer.from('c'); + } +}; +const asyncIterable = { + expected: 'abc', + async* [Symbol.asyncIterator]() { + yield 'a'; + yield 'b'; + yield 'c'; + } +}; + +async function doWriteStream() { + const fileHandle = await open(dest, 'w+'); + try { + await fileHandle.writeFile(stream); + const expected = 'abc'; + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, expected); + } finally { + await fileHandle.close(); + } +} + +async function doWriteStreamWithCancel() { const controller = new AbortController(); const { signal } = controller; process.nextTick(() => controller.abort()); - await assert.rejects(writeFile(fileHandle, buffer, { signal }), { - name: 'AbortError' - }); + const fileHandle = await open(otherDest, 'w+'); + try { + await assert.rejects( + fileHandle.writeFile(stream, { signal }), + { name: 'AbortError' } + ); + } finally { + await fileHandle.close(); + } +} + +async function doWriteIterable() { + const fileHandle = await open(dest, 'w+'); + try { + await fileHandle.writeFile(iterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, iterable.expected); + } finally { + await fileHandle.close(); + } +} + +async function doWriteInvalidIterable() { + const fileHandle = await open(dest, 'w+'); + try { + await Promise.all( + [42, 42n, {}, Symbol('42'), true, undefined, null, NaN].map((value) => + assert.rejects( + fileHandle.writeFile(iterableWith(value)), + { code: 'ERR_INVALID_ARG_TYPE' } + ) + ) + ); + } finally { + await fileHandle.close(); + } +} + +async function doWriteIterableWithEncoding() { + const fileHandle = await open(dest, 'w+'); + try { + await fileHandle.writeFile(stream2, 'latin1'); + const expected = 'ümlaut sechzig'; + const data = fs.readFileSync(dest, 'latin1'); + assert.deepStrictEqual(data, expected); + } finally { + await fileHandle.close(); + } +} + +async function doWriteBufferIterable() { + const fileHandle = await open(dest, 'w+'); + try { + await fileHandle.writeFile(bufferIterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, bufferIterable.expected); + } finally { + await fileHandle.close(); + } +} + +async function doWriteAsyncIterable() { + const fileHandle = await open(dest, 'w+'); + try { + await fileHandle.writeFile(asyncIterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, asyncIterable.expected); + } finally { + await fileHandle.close(); + } +} + +async function doWriteInvalidValues() { + const fileHandle = await open(dest, 'w+'); + try { + await Promise.all( + [42, 42n, {}, Symbol('42'), true, undefined, null, NaN].map((value) => + assert.rejects( + fileHandle.writeFile(value), + { code: 'ERR_INVALID_ARG_TYPE' } + ) + ) + ); + } finally { + await fileHandle.close(); + } } -validateWriteFile() - .then(doWriteAndCancel) - .then(common.mustCall()); +(async () => { + await validateWriteFile(); + await doWriteAndCancel(); + await doWriteStream(); + await doWriteStreamWithCancel(); + await doWriteIterable(); + await doWriteInvalidIterable(); + await doWriteIterableWithEncoding(); + await doWriteBufferIterable(); + await doWriteAsyncIterable(); + await doWriteInvalidValues(); +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises-watch.js b/test/parallel/test-fs-promises-watch.js new file mode 100644 index 00000000000000..af964252aaf9b6 --- /dev/null +++ b/test/parallel/test-fs-promises-watch.js @@ -0,0 +1,116 @@ +// Flags: --experimental-abortcontroller +'use strict'; +const common = require('../common'); + +if (common.isIBMi) + common.skip('IBMi does not support `fs.watch()`'); + +const { watch } = require('fs/promises'); +const fs = require('fs'); +const assert = require('assert'); +const { join } = require('path'); +const tmpdir = require('../common/tmpdir'); + +class WatchTestCase { + constructor(shouldInclude, dirName, fileName, field) { + this.dirName = dirName; + this.fileName = fileName; + this.field = field; + this.shouldSkip = !shouldInclude; + } + get dirPath() { return join(tmpdir.path, this.dirName); } + get filePath() { return join(this.dirPath, this.fileName); } +} + +const kCases = [ + // Watch on a directory should callback with a filename on supported systems + new WatchTestCase( + common.isLinux || common.isOSX || common.isWindows || common.isAIX, + 'watch1', + 'foo', + 'filePath' + ), + // Watch on a file should callback with a filename on supported systems + new WatchTestCase( + common.isLinux || common.isOSX || common.isWindows, + 'watch2', + 'bar', + 'dirPath' + ), +]; + +tmpdir.refresh(); + +for (const testCase of kCases) { + if (testCase.shouldSkip) continue; + fs.mkdirSync(testCase.dirPath); + // Long content so it's actually flushed. + const content1 = Date.now() + testCase.fileName.toLowerCase().repeat(1e4); + fs.writeFileSync(testCase.filePath, content1); + + async function test() { + const watcher = watch(testCase[testCase.field]); + for await (const { eventType, filename } of watcher) { + assert.strictEqual(['rename', 'change'].includes(eventType), true); + assert.strictEqual(filename, testCase.fileName); + break; + } + + // Waiting on it again is a non-op + // eslint-disable-next-line no-unused-vars + for await (const p of watcher) { + assert.fail('should not run'); + } + } + + // Long content so it's actually flushed. toUpperCase so there's real change. + const content2 = Date.now() + testCase.fileName.toUpperCase().repeat(1e4); + setImmediate(() => { + fs.writeFileSync(testCase.filePath, ''); + fs.writeFileSync(testCase.filePath, content2); + }); + + test().then(common.mustCall()); +} + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch(1)) {} }, + { code: 'ERR_INVALID_ARG_TYPE' }); + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch(__filename, 1)) {} }, + { code: 'ERR_INVALID_ARG_TYPE' }); + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch('', { persistent: 1 })) {} }, + { code: 'ERR_INVALID_ARG_TYPE' }); + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch('', { recursive: 1 })) {} }, + { code: 'ERR_INVALID_ARG_TYPE' }); + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch('', { encoding: 1 })) {} }, + { code: 'ERR_INVALID_ARG_VALUE' }); + +assert.rejects( + // eslint-disable-next-line no-unused-vars + async () => { for await (const _ of watch('', { signal: 1 })) {} }, + { code: 'ERR_INVALID_ARG_TYPE' }); + +(async () => { + const ac = new AbortController(); + const { signal } = ac; + setImmediate(() => ac.abort()); + try { + // eslint-disable-next-line no-unused-vars + for await (const _ of watch(__filename, { signal })) {} + } catch (err) { + assert.strictEqual(err.name, 'AbortError'); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises-writefile.js b/test/parallel/test-fs-promises-writefile.js index f5f3e8dad38469..2be52ccbaa875f 100644 --- a/test/parallel/test-fs-promises-writefile.js +++ b/test/parallel/test-fs-promises-writefile.js @@ -8,6 +8,7 @@ const path = require('path'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const tmpDir = tmpdir.path; +const { Readable } = require('stream'); tmpdir.refresh(); @@ -15,6 +16,39 @@ const dest = path.resolve(tmpDir, 'tmp.txt'); const otherDest = path.resolve(tmpDir, 'tmp-2.txt'); const buffer = Buffer.from('abc'.repeat(1000)); const buffer2 = Buffer.from('xyz'.repeat(1000)); +const stream = Readable.from(['a', 'b', 'c']); +const stream2 = Readable.from(['ümlaut', ' ', 'sechzig']); +const iterable = { + expected: 'abc', + *[Symbol.iterator]() { + yield 'a'; + yield 'b'; + yield 'c'; + } +}; +function iterableWith(value) { + return { + *[Symbol.iterator]() { + yield value; + } + }; +} +const bufferIterable = { + expected: 'abc', + *[Symbol.iterator]() { + yield Buffer.from('a'); + yield Buffer.from('b'); + yield Buffer.from('c'); + } +}; +const asyncIterable = { + expected: 'abc', + async* [Symbol.asyncIterator]() { + yield 'a'; + yield 'b'; + yield 'c'; + } +}; async function doWrite() { await fsPromises.writeFile(dest, buffer); @@ -22,13 +56,76 @@ async function doWrite() { assert.deepStrictEqual(data, buffer); } +async function doWriteStream() { + await fsPromises.writeFile(dest, stream); + const expected = 'abc'; + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, expected); +} + +async function doWriteStreamWithCancel() { + const controller = new AbortController(); + const { signal } = controller; + process.nextTick(() => controller.abort()); + await assert.rejects( + fsPromises.writeFile(otherDest, stream, { signal }), + { name: 'AbortError' } + ); +} + +async function doWriteIterable() { + await fsPromises.writeFile(dest, iterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, iterable.expected); +} + +async function doWriteInvalidIterable() { + await Promise.all( + [42, 42n, {}, Symbol('42'), true, undefined, null, NaN].map((value) => + assert.rejects(fsPromises.writeFile(dest, iterableWith(value)), { + code: 'ERR_INVALID_ARG_TYPE', + }) + ) + ); +} + +async function doWriteIterableWithEncoding() { + await fsPromises.writeFile(dest, stream2, 'latin1'); + const expected = 'ümlaut sechzig'; + const data = fs.readFileSync(dest, 'latin1'); + assert.deepStrictEqual(data, expected); +} + +async function doWriteBufferIterable() { + await fsPromises.writeFile(dest, bufferIterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, bufferIterable.expected); +} + +async function doWriteAsyncIterable() { + await fsPromises.writeFile(dest, asyncIterable); + const data = fs.readFileSync(dest, 'utf-8'); + assert.deepStrictEqual(data, asyncIterable.expected); +} + +async function doWriteInvalidValues() { + await Promise.all( + [42, 42n, {}, Symbol('42'), true, undefined, null, NaN].map((value) => + assert.rejects(fsPromises.writeFile(dest, value), { + code: 'ERR_INVALID_ARG_TYPE', + }) + ) + ); +} + async function doWriteWithCancel() { const controller = new AbortController(); const { signal } = controller; process.nextTick(() => controller.abort()); - assert.rejects(fsPromises.writeFile(otherDest, buffer, { signal }), { - name: 'AbortError' - }); + await assert.rejects( + fsPromises.writeFile(otherDest, buffer, { signal }), + { name: 'AbortError' } + ); } async function doAppend() { @@ -51,9 +148,18 @@ async function doReadWithEncoding() { assert.deepStrictEqual(data, syncData); } -doWrite() - .then(doWriteWithCancel) - .then(doAppend) - .then(doRead) - .then(doReadWithEncoding) - .then(common.mustCall()); +(async () => { + await doWrite(); + await doWriteWithCancel(); + await doAppend(); + await doRead(); + await doReadWithEncoding(); + await doWriteStream(); + await doWriteStreamWithCancel(); + await doWriteIterable(); + await doWriteInvalidIterable(); + await doWriteIterableWithEncoding(); + await doWriteBufferIterable(); + await doWriteAsyncIterable(); + await doWriteInvalidValues(); +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises.js b/test/parallel/test-fs-promises.js index bb9a3257e11fae..35d2deff8b8148 100644 --- a/test/parallel/test-fs-promises.js +++ b/test/parallel/test-fs-promises.js @@ -283,7 +283,7 @@ async function getHandle(dest) { name: 'Error', message: 'The lchmod() method is not implemented' }) - ) + ), ]); } diff --git a/test/parallel/test-fs-read-stream-throw-type-error.js b/test/parallel/test-fs-read-stream-throw-type-error.js index 83b9387cc38da9..a01d23d5abdd10 100644 --- a/test/parallel/test-fs-read-stream-throw-type-error.js +++ b/test/parallel/test-fs-read-stream-throw-type-error.js @@ -43,7 +43,7 @@ const rangeError = { [ { start: 'invalid' }, { end: 'invalid' }, - { start: 'invalid', end: 'invalid' } + { start: 'invalid', end: 'invalid' }, ].forEach((opts) => createReadStreamErr(example, opts, typeError)); // Case 2: Should throw RangeError if either start or end is NaN @@ -71,7 +71,7 @@ createReadStreamErr(example, { start: 5, end: 1 }, rangeError); const NOT_SAFE_INTEGER = 2 ** 53; [ { start: NOT_SAFE_INTEGER, end: Infinity }, - { start: 0, end: NOT_SAFE_INTEGER } + { start: 0, end: NOT_SAFE_INTEGER }, ].forEach((opts) => createReadStreamErr(example, opts, rangeError) ); diff --git a/test/parallel/test-fs-read-type.js b/test/parallel/test-fs-read-type.js index 02298ed1c3523d..79d6c32be1ffa6 100644 --- a/test/parallel/test-fs-read-type.js +++ b/test/parallel/test-fs-read-type.js @@ -74,6 +74,51 @@ assert.throws(() => { 'It must be >= 0. Received -1' }); +[true, () => {}, {}, ''].forEach((value) => { + assert.throws(() => { + fs.read(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + value, + common.mustNotCall()); + }, { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError' + }); +}); + +[0.5, 2 ** 53, 2n ** 63n].forEach((value) => { + assert.throws(() => { + fs.read(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + value, + common.mustNotCall()); + }, { + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError' + }); +}); + +fs.read(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 0n, + common.mustSucceed()); + +fs.read(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 2n ** 53n - 1n, + common.mustCall((err) => { + if (err) { + assert.strictEqual(err.code, 'EFBIG'); + } + })); assert.throws( () => fs.readSync(fd, expected.length, 0, 'utf-8'), @@ -147,3 +192,48 @@ assert.throws(() => { message: 'The value of "length" is out of range. ' + 'It must be <= 4. Received 5' }); + +[true, () => {}, {}, ''].forEach((value) => { + assert.throws(() => { + fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + value); + }, { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError' + }); +}); + +[0.5, 2 ** 53, 2n ** 63n].forEach((value) => { + assert.throws(() => { + fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + value); + }, { + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError' + }); +}); + +fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 0n); + +try { + fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 2n ** 53n - 1n); +} catch (err) { + // On systems where max file size is below 2^53-1, we'd expect a EFBIG error. + // This is not using `assert.throws` because the above call should not raise + // any error on systems that allows file of that size. + if (err.code !== 'EFBIG') throw err; +} diff --git a/test/parallel/test-fs-realpath-pipe.js b/test/parallel/test-fs-realpath-pipe.js index a2e88cce422e07..29fe1d3b7d28e1 100644 --- a/test/parallel/test-fs-realpath-pipe.js +++ b/test/parallel/test-fs-realpath-pipe.js @@ -26,7 +26,7 @@ for (const code of [ } catch (e) { console.error(e); process.exit(1); - }` + }`, ]) { const child = spawnSync(process.execPath, ['-e', code], { stdio: 'pipe' diff --git a/test/parallel/test-fs-realpath.js b/test/parallel/test-fs-realpath.js index 04d746243bf8c5..488e4b4ceaada3 100644 --- a/test/parallel/test-fs-realpath.js +++ b/test/parallel/test-fs-realpath.js @@ -106,7 +106,7 @@ function test_simple_relative_symlink(realpath, realpathSync, callback) { const entry = `${tmpDir}/symlink`; const expected = `${tmpDir}/cycles/root.js`; [ - [entry, `../${path.basename(tmpDir)}/cycles/root.js`] + [entry, `../${path.basename(tmpDir)}/cycles/root.js`], ].forEach(function(t) { try { fs.unlinkSync(t[0]); } catch {} console.log('fs.symlinkSync(%j, %j, %j)', t[1], t[0], 'file'); @@ -132,7 +132,7 @@ function test_simple_absolute_symlink(realpath, realpathSync, callback) { const entry = `${tmpAbsDir}/symlink`; const expected = fixtures.path('nested-index', 'one'); [ - [entry, expected] + [entry, expected], ].forEach(function(t) { try { fs.unlinkSync(t[0]); } catch {} console.error('fs.symlinkSync(%j, %j, %j)', t[1], t[0], type); @@ -214,7 +214,7 @@ function test_cyclic_link_protection(realpath, realpathSync, callback) { [ [entry, '../cycles/realpath-3b'], [path.join(tmpDir, '/cycles/realpath-3b'), '../cycles/realpath-3c'], - [path.join(tmpDir, '/cycles/realpath-3c'), '../cycles/realpath-3a'] + [path.join(tmpDir, '/cycles/realpath-3c'), '../cycles/realpath-3a'], ].forEach(function(t) { try { fs.unlinkSync(t[0]); } catch {} fs.symlinkSync(t[1], t[0], 'dir'); @@ -267,7 +267,7 @@ function test_relative_input_cwd(realpath, realpathSync, callback) { [ [entry, '../cycles/realpath-3b'], [`${tmpDir}/cycles/realpath-3b`, '../cycles/realpath-3c'], - [`${tmpDir}/cycles/realpath-3c`, 'root.js'] + [`${tmpDir}/cycles/realpath-3c`, 'root.js'], ].forEach(function(t) { const fn = t[0]; console.error('fn=%j', fn); @@ -323,7 +323,7 @@ function test_deep_symlink_mix(realpath, realpathSync, callback) { [`${targetsAbsDir}/nested-index/one/realpath-c`, `${targetsAbsDir}/nested-index/two/realpath-c`], [`${targetsAbsDir}/nested-index/two/realpath-c`, - `${tmpDir}/cycles/root.js`] + `${tmpDir}/cycles/root.js`], ].forEach(function(t) { try { fs.unlinkSync(t[0]); } catch {} fs.symlinkSync(t[1], t[0]); @@ -477,14 +477,14 @@ function test_abs_with_kids(realpath, realpathSync, cb) { const root = `${tmpAbsDir}/node-test-realpath-abs-kids`; function cleanup() { ['/a/b/c/x.txt', - '/a/link' + '/a/link', ].forEach(function(file) { try { fs.unlinkSync(root + file); } catch {} }); ['/a/b/c', '/a/b', '/a', - '' + '', ].forEach(function(folder) { try { fs.rmdirSync(root + folder); } catch {} }); @@ -495,7 +495,7 @@ function test_abs_with_kids(realpath, realpathSync, cb) { ['', '/a', '/a/b', - '/a/b/c' + '/a/b/c', ].forEach(function(folder) { console.log(`mkdir ${root}${folder}`); fs.mkdirSync(root + folder, 0o700); @@ -553,7 +553,7 @@ const tests = [ test_up_multiple, test_up_multiple_with_null_options, test_root, - test_root_with_null_options + test_root_with_null_options, ]; const numtests = tests.length; let testsRun = 0; diff --git a/test/parallel/test-fs-symlink-dir.js b/test/parallel/test-fs-symlink-dir.js index 2f88ceb41621d8..012d34c301e835 100644 --- a/test/parallel/test-fs-symlink-dir.js +++ b/test/parallel/test-fs-symlink-dir.js @@ -18,11 +18,11 @@ tmpdir.refresh(); const linkTargets = [ 'relative-target', - path.join(tmpdir.path, 'absolute-target') + path.join(tmpdir.path, 'absolute-target'), ]; const linkPaths = [ path.relative(process.cwd(), path.join(tmpdir.path, 'relative-path')), - path.join(tmpdir.path, 'absolute-path') + path.join(tmpdir.path, 'absolute-path'), ]; function testSync(target, path) { diff --git a/test/parallel/test-fs-syncwritestream.js b/test/parallel/test-fs-syncwritestream.js index 8fbe665a4047d0..35591876e849d4 100644 --- a/test/parallel/test-fs-syncwritestream.js +++ b/test/parallel/test-fs-syncwritestream.js @@ -36,6 +36,6 @@ proc.on('close', common.mustCall(() => { assert.deepStrictEqual(JSON.parse(fs.readFileSync(filename, 'utf8')), [ { instance: true, readable: false, writable: true }, - { instance: true, readable: false, writable: true } + { instance: true, readable: false, writable: true }, ]); })); diff --git a/test/parallel/test-fs-truncate.js b/test/parallel/test-fs-truncate.js index 418d56c047d4e3..de9687ebb27f0c 100644 --- a/test/parallel/test-fs-truncate.js +++ b/test/parallel/test-fs-truncate.js @@ -280,3 +280,19 @@ function testFtruncate(cb) { ); }); }); + +{ + const file1 = path.resolve(tmp, 'truncate-file-1.txt'); + fs.writeFileSync(file1, 'Hi'); + fs.truncateSync(file1, -1); // Negative coerced to 0, No error. + assert(fs.readFileSync(file1).equals(Buffer.alloc(0))); +} + +{ + const file1 = path.resolve(tmp, 'truncate-file-2.txt'); + fs.writeFileSync(file1, 'Hi'); + // Negative coerced to 0, No error. + fs.truncate(file1, -1, common.mustSucceed(() => { + assert(fs.readFileSync(file1).equals(Buffer.alloc(0))); + })); +} diff --git a/test/parallel/test-fs-utils-get-dirents.js b/test/parallel/test-fs-utils-get-dirents.js index 6afe6dbca3e529..0cc6cd40243f19 100644 --- a/test/parallel/test-fs-utils-get-dirents.js +++ b/test/parallel/test-fs-utils-get-dirents.js @@ -61,7 +61,7 @@ const filename = 'foo'; err.message, [ 'The "path" argument must be of type string or an ' + - 'instance of Buffer. Received type number (42)' + 'instance of Buffer. Received type number (42)', ].join('')); }, )); @@ -116,7 +116,7 @@ const filename = 'foo'; err.message, [ 'The "path" argument must be of type string or an ' + - 'instance of Buffer. Received type number (42)' + 'instance of Buffer. Received type number (42)', ].join('')); }, )); diff --git a/test/parallel/test-fs-watch.js b/test/parallel/test-fs-watch.js index 496cff90dce92f..6fcf6c4df63fdc 100644 --- a/test/parallel/test-fs-watch.js +++ b/test/parallel/test-fs-watch.js @@ -35,7 +35,7 @@ const cases = [ 'watch2', 'bar', 'dirPath' - ) + ), ]; const tmpdir = require('../common/tmpdir'); diff --git a/test/parallel/test-fs-write-buffer.js b/test/parallel/test-fs-write-buffer.js index 96e26ef0afebf2..a70c44eaceffe5 100644 --- a/test/parallel/test-fs-write-buffer.js +++ b/test/parallel/test-fs-write-buffer.js @@ -146,3 +146,20 @@ tmpdir.refresh(); fs.closeSync(fd); })); } + +// fs.write with a DataView, without the offset and length parameters: +{ + const filename = path.join(tmpdir.path, 'write8.txt'); + fs.open(filename, 'w', 0o644, common.mustSucceed((fd) => { + const cb = common.mustSucceed((written) => { + assert.strictEqual(written, expected.length); + fs.closeSync(fd); + + const found = fs.readFileSync(filename, 'utf8'); + assert.strictEqual(found, expected.toString()); + }); + + const uint8 = Uint8Array.from(expected); + fs.write(fd, new DataView(uint8.buffer), cb); + })); +} diff --git a/test/parallel/test-global.js b/test/parallel/test-global.js index ff34a812c592da..5ad2bb01173291 100644 --- a/test/parallel/test-global.js +++ b/test/parallel/test-global.js @@ -49,7 +49,7 @@ builtinModules.forEach((moduleName) => { 'clearTimeout', 'setImmediate', 'setInterval', - 'setTimeout' + 'setTimeout', ]; assert.deepStrictEqual(new Set(Object.keys(global)), new Set(expected)); } diff --git a/test/parallel/test-heapsnapshot-near-heap-limit-bounded.js b/test/parallel/test-heapsnapshot-near-heap-limit-bounded.js new file mode 100644 index 00000000000000..a57b9a8fc4b5e5 --- /dev/null +++ b/test/parallel/test-heapsnapshot-near-heap-limit-bounded.js @@ -0,0 +1,36 @@ +'use strict'; + +require('../common'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures'); +const fs = require('fs'); +const env = { + ...process.env, + TEST_ALLOCATION: 50000, + TEST_CHUNK: 1000, + TEST_CLEAN_INTERVAL: 500, + NODE_DEBUG_NATIVE: 'diagnostics' +}; + +{ + console.log('\nTesting limit = 1'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--trace-gc', + '--heapsnapshot-near-heap-limit=1', + '--max-old-space-size=50', + fixtures.path('workload', 'bounded.js'), + ], { + cwd: tmpdir.path, + env, + }); + console.log(child.stdout.toString()); + console.log(child.stderr.toString()); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.status, 0); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + assert.strictEqual(list.length, 0); +} diff --git a/test/parallel/test-heapsnapshot-near-heap-limit-worker.js b/test/parallel/test-heapsnapshot-near-heap-limit-worker.js new file mode 100644 index 00000000000000..46744cbd44d82c --- /dev/null +++ b/test/parallel/test-heapsnapshot-near-heap-limit-worker.js @@ -0,0 +1,39 @@ +'use strict'; + +require('../common'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures'); +const fs = require('fs'); +const env = { + ...process.env, + NODE_DEBUG_NATIVE: 'diagnostics' +}; + +{ + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + fixtures.path('workload', 'grow-worker.js'), + ], { + cwd: tmpdir.path, + env: { + TEST_SNAPSHOTS: 1, + TEST_OLD_SPACE_SIZE: 50, + ...env + } + }); + console.log(child.stdout.toString()); + const stderr = child.stderr.toString(); + console.log(stderr); + const risky = /Not generating snapshots because it's too risky/.test(stderr); + if (!risky) { + // There should be one snapshot taken and then after the + // snapshot heap limit callback is popped, the OOM callback + // becomes effective. + assert(stderr.includes('ERR_WORKER_OUT_OF_MEMORY')); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + assert.strictEqual(list.length, 1); + } +} diff --git a/test/parallel/test-heapsnapshot-near-heap-limit.js b/test/parallel/test-heapsnapshot-near-heap-limit.js new file mode 100644 index 00000000000000..5743f71a3f568c --- /dev/null +++ b/test/parallel/test-heapsnapshot-near-heap-limit.js @@ -0,0 +1,98 @@ +'use strict'; + +const common = require('../common'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures'); +const fs = require('fs'); +const env = { + ...process.env, + NODE_DEBUG_NATIVE: 'diagnostics' +}; + +{ + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--heapsnapshot-near-heap-limit=-15', + '--max-old-space-size=50', + fixtures.path('workload', 'grow.js'), + ], { + cwd: tmpdir.path, + env, + }); + assert.strictEqual(child.status, 9); +} + +{ + console.log('\nTesting limit = 0'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--trace-gc', + '--heapsnapshot-near-heap-limit=0', + '--max-old-space-size=50', + fixtures.path('workload', 'grow.js'), + ], { + cwd: tmpdir.path, + env, + }); + console.log(child.stdout.toString()); + console.log(child.stderr.toString()); + assert(common.nodeProcessAborted(child.status, child.signal), + 'process should have aborted, but did not'); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + assert.strictEqual(list.length, 0); +} + +{ + console.log('\nTesting limit = 1'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--trace-gc', + '--heapsnapshot-near-heap-limit=1', + '--max-old-space-size=50', + fixtures.path('workload', 'grow.js'), + ], { + cwd: tmpdir.path, + env, + }); + console.log(child.stdout.toString()); + const stderr = child.stderr.toString(); + console.log(stderr); + assert(common.nodeProcessAborted(child.status, child.signal), + 'process should have aborted, but did not'); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + const risky = [...stderr.matchAll( + /Not generating snapshots because it's too risky/g)].length; + assert(list.length + risky > 0 && list.length <= 3, + `Generated ${list.length} snapshots ` + + `and ${risky} was too risky`); +} + +{ + console.log('\nTesting limit = 3'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--trace-gc', + '--heapsnapshot-near-heap-limit=3', + '--max-old-space-size=50', + fixtures.path('workload', 'grow.js'), + ], { + cwd: tmpdir.path, + env, + }); + console.log(child.stdout.toString()); + const stderr = child.stderr.toString(); + console.log(stderr); + assert(common.nodeProcessAborted(child.status, child.signal), + 'process should have aborted, but did not'); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + const risky = [...stderr.matchAll( + /Not generating snapshots because it's too risky/g)].length; + assert(list.length + risky > 0 && list.length <= 3, + `Generated ${list.length} snapshots ` + + `and ${risky} was too risky`); +} diff --git a/test/parallel/test-http-client-headers-array.js b/test/parallel/test-http-client-headers-array.js index 31ee35a123ccb9..2665c3a97bcf77 100644 --- a/test/parallel/test-http-client-headers-array.js +++ b/test/parallel/test-http-client-headers-array.js @@ -44,11 +44,11 @@ execute({ headers: { 'x-foo': 'boom', 'cookie': 'a=1; b=2; c=3' } }); execute({ headers: { 'x-foo': 'boom', 'cookie': [ 'a=1', 'b=2', 'c=3' ] } }); execute({ headers: [[ 'x-foo', 'boom' ], [ 'cookie', 'a=1; b=2; c=3' ]] }); execute({ headers: [ - [ 'x-foo', 'boom' ], [ 'cookie', [ 'a=1', 'b=2', 'c=3' ]] + [ 'x-foo', 'boom' ], [ 'cookie', [ 'a=1', 'b=2', 'c=3' ]], ] }); execute({ headers: [ [ 'x-foo', 'boom' ], [ 'cookie', 'a=1' ], - [ 'cookie', 'b=2' ], [ 'cookie', 'c=3'] + [ 'cookie', 'b=2' ], [ 'cookie', 'c=3'], ] }); // Authorization and Host header both missing from the second @@ -56,5 +56,5 @@ execute({ auth: 'foo:bar', headers: { 'x-foo': 'boom', 'cookie': 'a=1; b=2; c=3' } }); execute({ auth: 'foo:bar', headers: [ [ 'x-foo', 'boom' ], [ 'cookie', 'a=1' ], - [ 'cookie', 'b=2' ], [ 'cookie', 'c=3'] + [ 'cookie', 'b=2' ], [ 'cookie', 'c=3'], ] }); diff --git a/test/parallel/test-http-client-parse-error.js b/test/parallel/test-http-client-parse-error.js index 305a7bc170b693..2c18bdbede0139 100644 --- a/test/parallel/test-http-client-parse-error.js +++ b/test/parallel/test-http-client-parse-error.js @@ -29,7 +29,7 @@ const countdown = new Countdown(2, () => server.close()); const payloads = [ 'HTTP/1.1 302 Object Moved\r\nContent-Length: 0\r\n\r\nhi world', - 'bad http = should trigger parse error' + 'bad http = should trigger parse error', ]; // Create a TCP server diff --git a/test/parallel/test-http-debug.js b/test/parallel/test-http-debug.js index 4b1c093c663974..3907412203d3b0 100644 --- a/test/parallel/test-http-debug.js +++ b/test/parallel/test-http-debug.js @@ -7,7 +7,7 @@ const path = require('path'); process.env.NODE_DEBUG = 'http'; const { stderr } = child_process.spawnSync(process.execPath, [ - path.resolve(__dirname, 'test-http-conn-reset.js') + path.resolve(__dirname, 'test-http-conn-reset.js'), ], { encoding: 'utf8' }); assert(stderr.match(/Setting the NODE_DEBUG environment variable to 'http' can expose sensitive data \(such as passwords, tokens and authentication headers\) in the resulting log\./), diff --git a/test/parallel/test-http-decoded-auth.js b/test/parallel/test-http-decoded-auth.js new file mode 100644 index 00000000000000..7b09f47cc7267c --- /dev/null +++ b/test/parallel/test-http-decoded-auth.js @@ -0,0 +1,48 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const http = require('http'); + +const testCases = [ + { + username: 'test@test"', + password: '123456^', + expected: 'dGVzdEB0ZXN0IjoxMjM0NTZe' + }, + { + username: 'test%40test', + password: '123456', + expected: 'dGVzdEB0ZXN0OjEyMzQ1Ng==' + }, + { + username: 'not%3Agood', + password: 'god', + expected: 'bm90Omdvb2Q6Z29k' + }, + { + username: 'not%22good', + password: 'g%5Eod', + expected: 'bm90Imdvb2Q6Z15vZA==' + }, + { + username: 'test1234::::', + password: 'mypass', + expected: 'dGVzdDEyMzQ6Ojo6Om15cGFzcw==' + }, +]; + +for (const testCase of testCases) { + const server = http.createServer(function(request, response) { + // The correct authorization header is be passed + assert.strictEqual(request.headers.authorization, `Basic ${testCase.expected}`); + response.writeHead(200, {}); + response.end('ok'); + server.close(); + }); + + server.listen(0, function() { + // make the request + const url = new URL(`http://${testCase.username}:${testCase.password}@localhost:${this.address().port}`); + http.request(url).end(); + }); +} diff --git a/test/parallel/test-http-default-port.js b/test/parallel/test-http-default-port.js index a5af439a8ec6c3..2005487502fe4f 100644 --- a/test/parallel/test-http-default-port.js +++ b/test/parallel/test-http-default-port.js @@ -37,7 +37,7 @@ const options = { for (const { mod, createServer } of [ { mod: http, createServer: http.createServer }, - { mod: https, createServer: https.createServer.bind(null, options) } + { mod: https, createServer: https.createServer.bind(null, options) }, ]) { const server = createServer(common.mustCall((req, res) => { assert.strictEqual(req.headers.host, hostExpect); diff --git a/test/parallel/test-http-header-validators.js b/test/parallel/test-http-header-validators.js index fb23bd4885c766..89cf974da02247 100644 --- a/test/parallel/test-http-header-validators.js +++ b/test/parallel/test-http-header-validators.js @@ -14,7 +14,7 @@ console.log('validateHeaderName'); 'user-agent', 'USER-AGENT', 'User-Agent', - 'x-forwarded-for' + 'x-forwarded-for', ].forEach((name) => { console.log('does not throw for "%s"', name); validateHeaderName(name); diff --git a/test/parallel/test-http-host-header-ipv6-fail.js b/test/parallel/test-http-host-header-ipv6-fail.js index 3552e38856ed06..e84e9ab05b2196 100644 --- a/test/parallel/test-http-host-header-ipv6-fail.js +++ b/test/parallel/test-http-host-header-ipv6-fail.js @@ -15,7 +15,7 @@ const net = require('net'); const requests = [ { host: 'foo:1234', headers: { expectedhost: 'foo:1234:80' } }, - { host: '::1', headers: { expectedhost: '[::1]:80' } } + { host: '::1', headers: { expectedhost: '[::1]:80' } }, ]; function createLocalConnection(options) { diff --git a/test/parallel/test-http-invalidheaderfield2.js b/test/parallel/test-http-invalidheaderfield2.js index 40415d9c368891..1b4e9e6edb01f3 100644 --- a/test/parallel/test-http-invalidheaderfield2.js +++ b/test/parallel/test-http-invalidheaderfield2.js @@ -25,7 +25,7 @@ const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common'); 'It\'s_fun', '2*3', '4+2', - '3.14159265359' + '3.14159265359', ].forEach(function(str) { assert.strictEqual( _checkIsHttpToken(str), true, @@ -51,7 +51,7 @@ const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common'); 'End)', 'End]', '"Quote"', - 'This,That' + 'This,That', ].forEach(function(str) { assert.strictEqual( _checkIsHttpToken(str), false, @@ -64,7 +64,7 @@ const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common'); 'foo bar', 'foo\tbar', '0123456789ABCdef', - '!@#$%^&*()-_=+\\;\':"[]{}<>,./?|~`' + '!@#$%^&*()-_=+\\;\':"[]{}<>,./?|~`', ].forEach(function(str) { assert.strictEqual( _checkInvalidHeaderChar(str), false, @@ -80,7 +80,7 @@ const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common'); '\x7FMe!', 'Testing 123\x00', 'foo\vbar', - 'Ding!\x07' + 'Ding!\x07', ].forEach(function(str) { assert.strictEqual( _checkInvalidHeaderChar(str), true, diff --git a/test/parallel/test-http-max-headers-count.js b/test/parallel/test-http-max-headers-count.js index 9fcfe316e392ff..b707c62bfba8c7 100644 --- a/test/parallel/test-http-max-headers-count.js +++ b/test/parallel/test-http-max-headers-count.js @@ -36,7 +36,7 @@ for (let i = 0; i < N; ++i) { const maxAndExpected = [ // for server [50, 50], [1500, 102], - [0, N + 2] // Host and Connection + [0, N + 2], // Host and Connection ]; let max = maxAndExpected[requests][0]; let expected = maxAndExpected[requests][1]; @@ -57,7 +57,7 @@ server.listen(0, function() { const maxAndExpected = [ // for client [20, 20], [1200, 103], - [0, N + 3] // Connection, Date and Transfer-Encoding + [0, N + 3], // Connection, Date and Transfer-Encoding ]; doRequest(); diff --git a/test/parallel/test-http-mutable-headers.js b/test/parallel/test-http-mutable-headers.js index ea5565fdc75b08..2210750e6c359b 100644 --- a/test/parallel/test-http-mutable-headers.js +++ b/test/parallel/test-http-mutable-headers.js @@ -36,7 +36,7 @@ let test = 'headers'; const content = 'hello world\n'; const cookies = [ 'session_token=; path=/; expires=Sun, 15-Sep-2030 13:48:52 GMT', - 'prefers_open_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT' + 'prefers_open_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT', ]; const s = http.createServer(common.mustCall((req, res) => { @@ -122,7 +122,7 @@ const s = http.createServer(common.mustCall((req, res) => { true, {}, { toString: () => 'X-TEST-HEADER2' }, - () => { } + () => { }, ].forEach((val) => { assert.throws( () => res.hasHeader(val), diff --git a/test/parallel/test-http-parser-freed-before-upgrade.js b/test/parallel/test-http-parser-freed-before-upgrade.js index 4ba1de9501681c..d0f1409f1d2b43 100644 --- a/test/parallel/test-http-parser-freed-before-upgrade.js +++ b/test/parallel/test-http-parser-freed-before-upgrade.js @@ -12,7 +12,7 @@ server.on('upgrade', common.mustCall((request, socket) => { 'HTTP/1.1 101 Switching Protocols', 'Connection: Upgrade', 'Upgrade: WebSocket', - '\r\n' + '\r\n', ].join('\r\n')); })); diff --git a/test/parallel/test-http-parser-lazy-loaded.js b/test/parallel/test-http-parser-lazy-loaded.js index 3c4a7e7ce9f35d..44bb59f052e6ce 100644 --- a/test/parallel/test-http-parser-lazy-loaded.js +++ b/test/parallel/test-http-parser-lazy-loaded.js @@ -31,7 +31,7 @@ assert.strictEqual(parser.test_type, DummyParser.REQUEST); if (process.argv[2] !== 'child') { // Also test in a child process with IPC (specific case of https://github.com/nodejs/node/issues/23716) const child = spawn(process.execPath, [ - '--expose-internals', __filename, 'child' + '--expose-internals', __filename, 'child', ], { stdio: ['inherit', 'inherit', 'inherit', 'ipc'] }); diff --git a/test/parallel/test-http-perf_hooks.js b/test/parallel/test-http-perf_hooks.js index f28885e4367853..bc92fd1b3c0fe8 100644 --- a/test/parallel/test-http-perf_hooks.js +++ b/test/parallel/test-http-perf_hooks.js @@ -52,7 +52,7 @@ server.listen(0, common.mustCall(async () => { path: '/', method: 'POST', data: expected - }) + }), ]); server.close(); })); diff --git a/test/parallel/test-http-proxy.js b/test/parallel/test-http-proxy.js index 6a986024af29be..af3497630b7f79 100644 --- a/test/parallel/test-http-proxy.js +++ b/test/parallel/test-http-proxy.js @@ -27,7 +27,7 @@ const url = require('url'); const cookies = [ 'session_token=; path=/; expires=Sun, 15-Sep-2030 13:48:52 GMT', - 'prefers_open_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT' + 'prefers_open_id=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT', ]; const headers = { 'content-type': 'text/plain', diff --git a/test/parallel/test-http-raw-headers.js b/test/parallel/test-http-raw-headers.js index 8ce20db351302c..d77a7cacc64c29 100644 --- a/test/parallel/test-http-raw-headers.js +++ b/test/parallel/test-http-raw-headers.js @@ -34,7 +34,7 @@ http.createServer(function(req, res) { 'x-BaR', 'yoyoyo', 'Connection', - 'close' + 'close', ]; const expectHeaders = { 'host': `localhost:${this.address().port}`, @@ -50,7 +50,7 @@ http.createServer(function(req, res) { 'X-bAr', 'yOyOyOy', 'X-baR', - 'OyOyOyO' + 'OyOyOyO', ]; const expectTrailers = { 'x-bar': 'yOyOyOy, OyOyOyO, yOyOyOy, OyOyOyO' }; @@ -70,7 +70,7 @@ http.createServer(function(req, res) { ['x-fOo', 'xOxOxOx'], ['x-foO', 'OxOxOxO'], ['X-fOo', 'xOxOxOx'], - ['X-foO', 'OxOxOxO'] + ['X-foO', 'OxOxOxO'], ]); res.end('x f o o'); }).listen(0, function() { @@ -79,7 +79,7 @@ http.createServer(function(req, res) { ['x-bAr', 'yOyOyOy'], ['x-baR', 'OyOyOyO'], ['X-bAr', 'yOyOyOy'], - ['X-baR', 'OyOyOyO'] + ['X-baR', 'OyOyOyO'], ]); req.setHeader('transfer-ENCODING', 'CHUNKED'); req.setHeader('x-BaR', 'yoyoyo'); @@ -93,7 +93,7 @@ http.createServer(function(req, res) { 'Connection', 'close', 'Transfer-Encoding', - 'chunked' + 'chunked', ]; const expectHeaders = { 'trailer': 'x-foo', @@ -114,7 +114,7 @@ http.createServer(function(req, res) { 'X-fOo', 'xOxOxOx', 'X-foO', - 'OxOxOxO' + 'OxOxOxO', ]; const expectTrailers = { 'x-foo': 'xOxOxOx, OxOxOxO, xOxOxOx, OxOxOxO' }; diff --git a/test/parallel/test-http-response-multiheaders.js b/test/parallel/test-http-response-multiheaders.js index 31cb59546c698c..39840ce06957ec 100644 --- a/test/parallel/test-http-response-multiheaders.js +++ b/test/parallel/test-http-response-multiheaders.js @@ -26,7 +26,7 @@ const norepeat = [ 'last-modified', 'server', 'age', - 'expires' + 'expires', ]; const runCount = 2; diff --git a/test/parallel/test-http-response-status-message.js b/test/parallel/test-http-response-status-message.js index c4256d9e5a0c49..3c22e40b43bf02 100644 --- a/test/parallel/test-http-response-status-message.js +++ b/test/parallel/test-http-response-status-message.js @@ -36,7 +36,7 @@ const testCases = [ { path: '/missing', statusMessage: '', response: 'HTTP/1.1 200 \r\n\r\n' }, { path: '/missing-no-space', statusMessage: '', - response: 'HTTP/1.1 200\r\n\r\n' } + response: 'HTTP/1.1 200\r\n\r\n' }, ]; testCases.findByPath = function(path) { const matching = this.filter(function(testCase) { diff --git a/test/parallel/test-http-server-keepalive-end.js b/test/parallel/test-http-server-keepalive-end.js index 8ebdecb97c3d8c..9d1bc0bfc0d116 100644 --- a/test/parallel/test-http-server-keepalive-end.js +++ b/test/parallel/test-http-server-keepalive-end.js @@ -31,7 +31,7 @@ server.listen(0, common.mustCall(() => { 'Content-Length: 11', '', 'hello world', - '' + '', ].join('\r\n'); client.end(req); diff --git a/test/parallel/test-http-server-keepalive-req-gc.js b/test/parallel/test-http-server-keepalive-req-gc.js index e94845d38df098..0c68ebab763223 100644 --- a/test/parallel/test-http-server-keepalive-req-gc.js +++ b/test/parallel/test-http-server-keepalive-req-gc.js @@ -32,7 +32,7 @@ server.listen(0, common.mustCall(() => { 'Content-Length: 11', '', 'hello world', - '' + '', ].join('\r\n'); client.write(req); diff --git a/test/parallel/test-http-should-keep-alive.js b/test/parallel/test-http-should-keep-alive.js index 038af47ee4db97..dfc99cf4f3b3a1 100644 --- a/test/parallel/test-http-should-keep-alive.js +++ b/test/parallel/test-http-should-keep-alive.js @@ -32,7 +32,7 @@ const SERVER_RESPONSES = [ 'HTTP/1.0 200 ok\r\nContent-Length: 0\r\nConnection: close\r\n\r\n', 'HTTP/1.1 200 ok\r\nContent-Length: 0\r\n\r\n', 'HTTP/1.1 200 ok\r\nContent-Length: 0\r\nConnection: keep-alive\r\n\r\n', - 'HTTP/1.1 200 ok\r\nContent-Length: 0\r\nConnection: close\r\n\r\n' + 'HTTP/1.1 200 ok\r\nContent-Length: 0\r\nConnection: close\r\n\r\n', ]; const SHOULD_KEEP_ALIVE = [ false, // HTTP/1.0, default @@ -40,7 +40,7 @@ const SHOULD_KEEP_ALIVE = [ false, // HTTP/1.0, Connection: close true, // HTTP/1.1, default true, // HTTP/1.1, Connection: keep-alive - false // HTTP/1.1, Connection: close + false, // HTTP/1.1, Connection: close ]; http.globalAgent.maxSockets = 5; diff --git a/test/parallel/test-http-upgrade-client.js b/test/parallel/test-http-upgrade-client.js index 8fe756f469f09a..ea6972a18c7d49 100644 --- a/test/parallel/test-http-upgrade-client.js +++ b/test/parallel/test-http-upgrade-client.js @@ -60,8 +60,8 @@ server.listen(0, '127.0.0.1', common.mustCall(function() { ['Host', 'echo.websocket.org'], ['Connection', 'Upgrade'], ['Upgrade', 'websocket'], - ['Origin', 'http://www.websocket.org'] - ] + ['Origin', 'http://www.websocket.org'], + ], ]; const countdown = new Countdown(headers.length, () => server.close()); diff --git a/test/parallel/test-http-url.parse-only-support-http-https-protocol.js b/test/parallel/test-http-url.parse-only-support-http-https-protocol.js index 6dcb2a852e7199..9b2a575ba7b1d7 100644 --- a/test/parallel/test-http-url.parse-only-support-http-https-protocol.js +++ b/test/parallel/test-http-url.parse-only-support-http-https-protocol.js @@ -31,7 +31,7 @@ const invalidUrls = [ 'ftp://www.example.com', 'javascript:alert(\'hello\');', 'xmpp:foo@bar.com', - 'f://some.host/path' + 'f://some.host/path', ]; invalidUrls.forEach((invalid) => { diff --git a/test/parallel/test-http-write-head-2.js b/test/parallel/test-http-write-head-2.js index 248ac45ac49f8f..a47d0d72e3be56 100644 --- a/test/parallel/test-http-write-head-2.js +++ b/test/parallel/test-http-write-head-2.js @@ -29,7 +29,7 @@ const http = require('http'); res.end(); })); - server.listen(0, common.mustCall(function() { + server.listen(0, common.mustCall(() => { http.get({ port: server.address().port }, common.mustCall((res) => { assert.strictEqual(res.headers.test, '1'); assert.strictEqual(res.headers.test2, '2'); @@ -51,7 +51,7 @@ const http = require('http'); res.end(); })); - server.listen(0, common.mustCall(function() { + server.listen(0, common.mustCall(() => { http.get({ port: server.address().port }, common.mustCall((res) => { res.resume().on('end', common.mustCall(() => { server.close(); diff --git a/test/parallel/test-http2-altsvc.js b/test/parallel/test-http2-altsvc.js index 39a3ca97b78bf3..c5abfc33265330 100644 --- a/test/parallel/test-http2-altsvc.js +++ b/test/parallel/test-http2-altsvc.js @@ -75,7 +75,7 @@ server.on('session', common.mustCall((session) => { 'abc:', new URL('abc:'), { origin: 'null' }, - { origin: '' } + { origin: '' }, ].forEach((input) => { assert.throws( () => session.altsvc('h2=":8000', input), diff --git a/test/parallel/test-http2-buffersize.js b/test/parallel/test-http2-buffersize.js index 9d7355f1a0b750..68bb4315fd068b 100644 --- a/test/parallel/test-http2-buffersize.js +++ b/test/parallel/test-http2-buffersize.js @@ -5,7 +5,7 @@ if (!hasCrypto) skip('missing crypto'); const assert = require('assert'); const { createServer, connect } = require('http2'); -const { once } = require('events'); +const Countdown = require('../common/countdown'); // This test ensures that `bufferSize` of Http2Session and Http2Stream work // as expected. @@ -16,20 +16,18 @@ const { once } = require('events'); const server = createServer(); let client; + const countdown = new Countdown(kSockets, () => { + client.close(); + server.close(); + }); - const getStream = async () => { - const [ stream ] = await once(server, 'stream'); + server.on('stream', mustCall((stream) => { stream.on('data', mustCall()); stream.on('end', mustCall()); - stream.on('close', mustCall()); - return once(stream, 'close'); - }; - - const promises = [...new Array(kSockets)].map(getStream); - Promise.all(promises).then(mustCall(() => { - client.close(); - server.close(); - })); + stream.on('close', mustCall(() => { + countdown.dec(); + })); + }, kSockets)); server.listen(0, mustCall(() => { const authority = `http://localhost:${server.address().port}`; diff --git a/test/parallel/test-http2-client-destroy.js b/test/parallel/test-http2-client-destroy.js index 0336c7910fa6a6..e226082245da95 100644 --- a/test/parallel/test-http2-client-destroy.js +++ b/test/parallel/test-http2-client-destroy.js @@ -16,7 +16,7 @@ const Countdown = require('../common/countdown'); server.listen(0, common.mustCall(() => { const destroyCallbacks = [ (client) => client.destroy(), - (client) => client[kSocket].destroy() + (client) => client[kSocket].destroy(), ]; const countdown = new Countdown(destroyCallbacks.length, () => { @@ -78,6 +78,7 @@ const Countdown = require('../common/countdown'); }; assert.throws(() => client.setNextStreamID(), sessionError); + assert.throws(() => client.setLocalWindowSize(), sessionError); assert.throws(() => client.ping(), sessionError); assert.throws(() => client.settings({}), sessionError); assert.throws(() => client.goaway(), sessionError); @@ -88,6 +89,7 @@ const Countdown = require('../common/countdown'); // so that state.destroyed is set to true setImmediate(() => { assert.throws(() => client.setNextStreamID(), sessionError); + assert.throws(() => client.setLocalWindowSize(), sessionError); assert.throws(() => client.ping(), sessionError); assert.throws(() => client.settings({}), sessionError); assert.throws(() => client.goaway(), sessionError); diff --git a/test/parallel/test-http2-client-onconnect-errors.js b/test/parallel/test-http2-client-onconnect-errors.js index 788386ae864e16..04cbfe5befaeec 100644 --- a/test/parallel/test-http2-client-onconnect-errors.js +++ b/test/parallel/test-http2-client-onconnect-errors.js @@ -21,7 +21,7 @@ const { NghttpError } = require('internal/http2/util'); const specificTestKeys = [ 'NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE', - 'NGHTTP2_ERR_INVALID_ARGUMENT' + 'NGHTTP2_ERR_INVALID_ARGUMENT', ]; const specificTests = [ diff --git a/test/parallel/test-http2-client-setLocalWindowSize.js b/test/parallel/test-http2-client-setLocalWindowSize.js new file mode 100644 index 00000000000000..8e3b57ed0c1a6b --- /dev/null +++ b/test/parallel/test-http2-client-setLocalWindowSize.js @@ -0,0 +1,121 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const http2 = require('http2'); + +{ + const server = http2.createServer(); + server.on('stream', common.mustNotCall((stream) => { + stream.respond(); + stream.end('ok'); + })); + + const types = { + boolean: true, + function: () => {}, + number: 1, + object: {}, + array: [], + null: null, + }; + + server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + + client.on('connect', common.mustCall(() => { + const outOfRangeNum = 2 ** 32; + assert.throws( + () => client.setLocalWindowSize(outOfRangeNum), + { + name: 'RangeError', + code: 'ERR_OUT_OF_RANGE', + message: 'The value of "windowSize" is out of range.' + + ' It must be >= 0 && <= 2147483647. Received ' + outOfRangeNum + } + ); + + // Throw if something other than number is passed to setLocalWindowSize + Object.entries(types).forEach(([type, value]) => { + if (type === 'number') { + return; + } + + assert.throws( + () => client.setLocalWindowSize(value), + { + name: 'TypeError', + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "windowSize" argument must be of type number.' + + common.invalidArgTypeHelper(value) + } + ); + }); + + server.close(); + client.close(); + })); + })); +} + +{ + const server = http2.createServer(); + server.on('stream', common.mustNotCall((stream) => { + stream.respond(); + stream.end('ok'); + })); + + server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + + client.on('connect', common.mustCall(() => { + const windowSize = 2 ** 20; + const defaultSetting = http2.getDefaultSettings(); + client.setLocalWindowSize(windowSize); + + assert.strictEqual(client.state.effectiveLocalWindowSize, windowSize); + assert.strictEqual(client.state.localWindowSize, windowSize); + assert.strictEqual( + client.state.remoteWindowSize, + defaultSetting.initialWindowSize + ); + + server.close(); + client.close(); + })); + })); +} + +{ + const server = http2.createServer(); + server.on('stream', common.mustNotCall((stream) => { + stream.respond(); + stream.end('ok'); + })); + + server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + + client.on('connect', common.mustCall(() => { + const windowSize = 20; + const defaultSetting = http2.getDefaultSettings(); + client.setLocalWindowSize(windowSize); + + assert.strictEqual(client.state.effectiveLocalWindowSize, windowSize); + assert.strictEqual( + client.state.localWindowSize, + defaultSetting.initialWindowSize + ); + assert.strictEqual( + client.state.remoteWindowSize, + defaultSetting.initialWindowSize + ); + + server.close(); + client.close(); + })); + })); +} diff --git a/test/parallel/test-http2-client-settings-before-connect.js b/test/parallel/test-http2-client-settings-before-connect.js index a02a26446995ac..406ddd86ab5e9b 100644 --- a/test/parallel/test-http2-client-settings-before-connect.js +++ b/test/parallel/test-http2-client-settings-before-connect.js @@ -38,7 +38,7 @@ server.listen(0, common.mustCall(() => { ['enablePush', 1, TypeError], ['enablePush', 0, TypeError], ['enablePush', null, TypeError], - ['enablePush', {}, TypeError] + ['enablePush', {}, TypeError], ].forEach(([name, value, errorType]) => assert.throws( () => client.settings({ [name]: value }), diff --git a/test/parallel/test-http2-client-write-empty-string.js b/test/parallel/test-http2-client-write-empty-string.js index 087a498a37b462..f0f0b8f0124964 100644 --- a/test/parallel/test-http2-client-write-empty-string.js +++ b/test/parallel/test-http2-client-write-empty-string.js @@ -9,7 +9,7 @@ const http2 = require('http2'); for (const chunkSequence of [ [ '' ], - [ '', '' ] + [ '', '' ], ]) { const server = http2.createServer(); server.on('stream', common.mustCall((stream, headers, flags) => { diff --git a/test/parallel/test-http2-compat-serverrequest-trailers.js b/test/parallel/test-http2-compat-serverrequest-trailers.js index 735ff1345e1a39..620ae69029a375 100644 --- a/test/parallel/test-http2-compat-serverrequest-trailers.js +++ b/test/parallel/test-http2-compat-serverrequest-trailers.js @@ -35,7 +35,7 @@ server.listen(0, common.mustCall(function() { 'x-foo', 'OxOxOxO', 'x-foo-test', - 'test, test' + 'test, test', ], request.rawTrailers); assert.strictEqual(data, 'test\ntest'); response.end(); diff --git a/test/parallel/test-http2-compat-serverresponse-destroy.js b/test/parallel/test-http2-compat-serverresponse-destroy.js index 0d73c82c2d862f..94d67330e86061 100644 --- a/test/parallel/test-http2-compat-serverresponse-destroy.js +++ b/test/parallel/test-http2-compat-serverresponse-destroy.js @@ -11,7 +11,7 @@ const Countdown = require('../common/countdown'); const errors = [ 'test-error', - Error('test') + Error('test'), ]; let nextError; diff --git a/test/parallel/test-http2-compat-serverresponse-headers.js b/test/parallel/test-http2-compat-serverresponse-headers.js index 19720b1e41f2bd..8b9b6d69278c60 100644 --- a/test/parallel/test-http2-compat-serverresponse-headers.js +++ b/test/parallel/test-http2-compat-serverresponse-headers.js @@ -58,7 +58,7 @@ server.listen(0, common.mustCall(function() { ':method', ':path', ':authority', - ':scheme' + ':scheme', ].forEach((header) => assert.throws( () => response.setHeader(header, 'foobar'), { diff --git a/test/parallel/test-http2-compat-serverresponse-writehead-array.js b/test/parallel/test-http2-compat-serverresponse-writehead-array.js index d856165d090f46..c28f7329c1d0a1 100644 --- a/test/parallel/test-http2-compat-serverresponse-writehead-array.js +++ b/test/parallel/test-http2-compat-serverresponse-writehead-array.js @@ -14,7 +14,7 @@ server.listen(0, common.mustCall(() => { server.once('request', common.mustCall((request, response) => { const returnVal = response.writeHead(200, [ ['foo', 'bar'], - ['ABC', 123] + ['ABC', 123], ]); assert.strictEqual(returnVal, response); response.end(common.mustCall(() => { server.close(); })); diff --git a/test/parallel/test-http2-cookies.js b/test/parallel/test-http2-cookies.js index fcd6b847587470..a270c1d73b1ba1 100644 --- a/test/parallel/test-http2-cookies.js +++ b/test/parallel/test-http2-cookies.js @@ -11,7 +11,7 @@ const server = h2.createServer(); const setCookie = [ 'a=b', 'c=d; Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly', - 'e=f' + 'e=f', ]; // We use the lower-level API here diff --git a/test/parallel/test-http2-create-client-connect.js b/test/parallel/test-http2-create-client-connect.js index 5723fcecd6f069..9859fe10677155 100644 --- a/test/parallel/test-http2-create-client-connect.js +++ b/test/parallel/test-http2-create-client-connect.js @@ -22,7 +22,7 @@ const url = require('url'); [new URL(`http://localhost:${port}`)], [url.parse(`http://localhost:${port}`)], [{ port }, { protocol: 'http:' }], - [{ port, hostname: '127.0.0.1' }, { protocol: 'http:' }] + [{ port, hostname: '127.0.0.1' }, { protocol: 'http:' }], ]; const serverClose = new Countdown(items.length + 1, @@ -66,7 +66,7 @@ const url = require('url'); [new URL(`https://localhost:${port}`), opts], [url.parse(`https://localhost:${port}`), opts], [{ port: port, protocol: 'https:' }, opts], - [{ port: port, hostname: '127.0.0.1', protocol: 'https:' }, opts] + [{ port: port, hostname: '127.0.0.1', protocol: 'https:' }, opts], ]; const serverClose = new Countdown(items.length, diff --git a/test/parallel/test-http2-debug.js b/test/parallel/test-http2-debug.js index 0d6b5f677c234b..a465f74af24698 100644 --- a/test/parallel/test-http2-debug.js +++ b/test/parallel/test-http2-debug.js @@ -9,7 +9,7 @@ const path = require('path'); process.env.NODE_DEBUG_NATIVE = 'http2'; process.env.NODE_DEBUG = 'http2'; const { stdout, stderr } = child_process.spawnSync(process.execPath, [ - path.resolve(__dirname, 'test-http2-ping.js') + path.resolve(__dirname, 'test-http2-ping.js'), ], { encoding: 'utf8' }); assert(stderr.match(/Setting the NODE_DEBUG environment variable to 'http2' can expose sensitive data \(such as passwords, tokens and authentication headers\) in the resulting log\.\r?\n/), diff --git a/test/parallel/test-http2-error-order.js b/test/parallel/test-http2-error-order.js index 8bf0f03dba8ea3..4ea71cf1d00ca4 100644 --- a/test/parallel/test-http2-error-order.js +++ b/test/parallel/test-http2-error-order.js @@ -12,7 +12,7 @@ const expected = [ 'Stream:created', 'Stream:error', 'Stream:close', - 'Request:error' + 'Request:error', ]; const server = createServer(); diff --git a/test/parallel/test-http2-getpackedsettings.js b/test/parallel/test-http2-getpackedsettings.js index 374e537d5634aa..4f5970522f13b3 100644 --- a/test/parallel/test-http2-getpackedsettings.js +++ b/test/parallel/test-http2-getpackedsettings.js @@ -28,7 +28,7 @@ assert.deepStrictEqual(val, check); ['maxHeaderListSize', 0], ['maxHeaderListSize', 2 ** 32 - 1], ['maxHeaderSize', 0], - ['maxHeaderSize', 2 ** 32 - 1] + ['maxHeaderSize', 2 ** 32 - 1], ].forEach((i) => { // Valid options should not throw. http2.getPackedSettings({ [i[0]]: i[1] }); @@ -49,7 +49,7 @@ http2.getPackedSettings({ enablePush: false }); ['maxHeaderListSize', -1], ['maxHeaderListSize', 2 ** 32], ['maxHeaderSize', -1], - ['maxHeaderSize', 2 ** 32] + ['maxHeaderSize', 2 ** 32], ].forEach((i) => { assert.throws(() => { http2.getPackedSettings({ [i[0]]: i[1] }); @@ -61,7 +61,7 @@ http2.getPackedSettings({ enablePush: false }); }); [ - 1, null, '', Infinity, new Date(), {}, NaN, [false] + 1, null, '', Infinity, new Date(), {}, NaN, [false], ].forEach((i) => { assert.throws(() => { http2.getPackedSettings({ enablePush: i }); @@ -73,7 +73,7 @@ http2.getPackedSettings({ enablePush: false }); }); [ - 1, null, '', Infinity, new Date(), {}, NaN, [false] + 1, null, '', Infinity, new Date(), {}, NaN, [false], ].forEach((i) => { assert.throws(() => { http2.getPackedSettings({ enableConnectProtocol: i }); @@ -92,7 +92,7 @@ http2.getPackedSettings({ enablePush: false }); 0x00, 0x04, 0x00, 0x00, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x4e, 0x20, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00 + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, ]); const packed = http2.getPackedSettings({ diff --git a/test/parallel/test-http2-misbehaving-flow-control-paused.js b/test/parallel/test-http2-misbehaving-flow-control-paused.js index d8f37c4394aa94..e54bb83238e7fa 100644 --- a/test/parallel/test-http2-misbehaving-flow-control-paused.js +++ b/test/parallel/test-http2-misbehaving-flow-control-paused.js @@ -25,13 +25,13 @@ const preamble = Buffer.from([ 0xa0, 0xe4, 0x1d, 0x13, 0x9d, 0x09, 0xb8, 0xf0, 0x1e, 0x07, 0x53, 0x03, 0x2a, 0x2f, 0x2a, 0x90, 0x7a, 0x8a, 0xaa, 0x69, 0xd2, 0x9a, 0xc4, 0xc0, 0x57, 0x0b, 0xcb, 0x87, 0x0f, 0x0d, 0x83, 0x08, 0x00, - 0x0f + 0x0f, ]); const data = Buffer.from([ 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a + 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a, ]); // This is testing the case of a misbehaving client that is not paying diff --git a/test/parallel/test-http2-misbehaving-flow-control.js b/test/parallel/test-http2-misbehaving-flow-control.js index 97f8c17f4ff85d..6774be2237b109 100644 --- a/test/parallel/test-http2-misbehaving-flow-control.js +++ b/test/parallel/test-http2-misbehaving-flow-control.js @@ -25,7 +25,7 @@ const preamble = Buffer.from([ 0xa0, 0xe4, 0x1d, 0x13, 0x9d, 0x09, 0xb8, 0xf0, 0x1e, 0x07, 0x53, 0x03, 0x2a, 0x2f, 0x2a, 0x90, 0x7a, 0x8a, 0xaa, 0x69, 0xd2, 0x9a, 0xc4, 0xc0, 0x57, 0x0b, 0xcb, 0x87, 0x0f, 0x0d, 0x83, 0x08, 0x00, - 0x0f + 0x0f, ]); const data = Buffer.from([ @@ -46,7 +46,7 @@ const data = Buffer.from([ 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a + 0x6c, 0x6f, 0x0a, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x0a, ]); // This is testing the case of a misbehaving client that is not paying diff --git a/test/parallel/test-http2-misused-pseudoheaders.js b/test/parallel/test-http2-misused-pseudoheaders.js index 2ae3a1ddbfaf3f..230843c619ce7c 100644 --- a/test/parallel/test-http2-misused-pseudoheaders.js +++ b/test/parallel/test-http2-misused-pseudoheaders.js @@ -13,7 +13,7 @@ server.on('stream', common.mustCall((stream) => { ':path', ':authority', ':method', - ':scheme' + ':scheme', ].forEach((i) => { assert.throws(() => stream.respond({ [i]: '/' }), { diff --git a/test/parallel/test-http2-multiheaders-raw.js b/test/parallel/test-http2-multiheaders-raw.js index 32bf9d05433d42..8e80a1c6312a91 100644 --- a/test/parallel/test-http2-multiheaders-raw.js +++ b/test/parallel/test-http2-multiheaders-raw.js @@ -31,7 +31,7 @@ server.on('stream', common.mustCall((stream, headers, flags, rawHeaders) => { 'www-authenticate', 'baz', 'test', - 'foo, bar, baz' + 'foo, bar, baz', ]; assert.deepStrictEqual(rawHeaders, expected); diff --git a/test/parallel/test-http2-origin.js b/test/parallel/test-http2-origin.js index 519e8cb1a3dedd..5193af6d99ef7e 100644 --- a/test/parallel/test-http2-origin.js +++ b/test/parallel/test-http2-origin.js @@ -85,7 +85,7 @@ const ca = readKey('fake-startcom-root-cert.pem', 'binary'); const client = connect(originSet[0], { ca }); const checks = [ ['https://foo.org', 'https://bar.org'], - ['https://example.org', 'https://example.com'] + ['https://example.org', 'https://example.com'], ]; const countdown = new Countdown(3, () => { diff --git a/test/parallel/test-http2-sensitive-headers.js b/test/parallel/test-http2-sensitive-headers.js new file mode 100644 index 00000000000000..7d4d775a55d4c2 --- /dev/null +++ b/test/parallel/test-http2-sensitive-headers.js @@ -0,0 +1,47 @@ +'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 testData = '

Hello World

'; + const server = http2.createServer(); + server.on('stream', common.mustCall((stream, headers) => { + stream.respond({ + 'content-type': 'text/html', + ':status': 200, + 'cookie': 'donotindex', + 'not-sensitive': 'foo', + 'sensitive': 'bar', + // sensitiveHeaders entries are case-insensitive + [http2.sensitiveHeaders]: ['Sensitive'] + }); + stream.end(testData); + })); + + const { clientSide, serverSide } = makeDuplexPair(); + server.emit('connection', serverSide); + + const client = http2.connect('http://localhost:80', { + createConnection: common.mustCall(() => clientSide) + }); + + const req = client.request({ ':path': '/' }); + + req.on('response', common.mustCall((headers) => { + assert.strictEqual(headers[':status'], 200); + assert.strictEqual(headers.cookie, 'donotindex'); + assert.deepStrictEqual(headers[http2.sensitiveHeaders], + ['cookie', 'sensitive']); + })); + + req.on('end', common.mustCall(() => { + clientSide.destroy(); + clientSide.end(); + })); + req.resume(); + req.end(); +} diff --git a/test/parallel/test-http2-server-push-stream-errors.js b/test/parallel/test-http2-server-push-stream-errors.js index 8e4ca37b280fe8..dae037c04f28c9 100644 --- a/test/parallel/test-http2-server-push-stream-errors.js +++ b/test/parallel/test-http2-server-push-stream-errors.js @@ -20,7 +20,7 @@ const { NghttpError } = require('internal/http2/util'); const specificTestKeys = [ 'NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE', - 'NGHTTP2_ERR_STREAM_CLOSED' + 'NGHTTP2_ERR_STREAM_CLOSED', ]; const specificTests = [ diff --git a/test/parallel/test-http2-server-rst-stream.js b/test/parallel/test-http2-server-rst-stream.js index e76db1bf1ab243..9f37ce71472353 100644 --- a/test/parallel/test-http2-server-rst-stream.js +++ b/test/parallel/test-http2-server-rst-stream.js @@ -21,7 +21,7 @@ const tests = [ [NGHTTP2_PROTOCOL_ERROR, true, 'NGHTTP2_PROTOCOL_ERROR'], [NGHTTP2_CANCEL, false], [NGHTTP2_REFUSED_STREAM, true, 'NGHTTP2_REFUSED_STREAM'], - [NGHTTP2_INTERNAL_ERROR, true, 'NGHTTP2_INTERNAL_ERROR'] + [NGHTTP2_INTERNAL_ERROR, true, 'NGHTTP2_INTERNAL_ERROR'], ]; const server = http2.createServer(); diff --git a/test/parallel/test-http2-server-setLocalWindowSize.js b/test/parallel/test-http2-server-setLocalWindowSize.js new file mode 100644 index 00000000000000..8fcb9b9d0d81b0 --- /dev/null +++ b/test/parallel/test-http2-server-setLocalWindowSize.js @@ -0,0 +1,37 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const http2 = require('http2'); + +const server = http2.createServer(); +server.on('stream', common.mustCall((stream) => { + stream.respond(); + stream.end('ok'); +})); +server.on('session', common.mustCall((session) => { + const windowSize = 2 ** 20; + const defaultSetting = http2.getDefaultSettings(); + session.setLocalWindowSize(windowSize); + + assert.strictEqual(session.state.effectiveLocalWindowSize, windowSize); + assert.strictEqual(session.state.localWindowSize, windowSize); + assert.strictEqual( + session.state.remoteWindowSize, + defaultSetting.initialWindowSize + ); +})); + +server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + + const req = client.request(); + req.resume(); + req.on('close', common.mustCall(() => { + client.close(); + server.close(); + })); +})); diff --git a/test/parallel/test-http2-server-shutdown-options-errors.js b/test/parallel/test-http2-server-shutdown-options-errors.js index 643d173f78bc43..e6a69b54627e00 100644 --- a/test/parallel/test-http2-server-shutdown-options-errors.js +++ b/test/parallel/test-http2-server-shutdown-options-errors.js @@ -13,7 +13,7 @@ const types = [ {}, [], null, - new Date() + new Date(), ]; server.on('stream', common.mustCall((stream) => { diff --git a/test/parallel/test-http2-session-settings.js b/test/parallel/test-http2-session-settings.js index a31682f291479f..571ee87d93768c 100644 --- a/test/parallel/test-http2-session-settings.js +++ b/test/parallel/test-http2-session-settings.js @@ -103,7 +103,7 @@ server.listen( ['maxHeaderListSize', -1], ['maxHeaderListSize', 2 ** 32], ['maxHeaderSize', -1], - ['maxHeaderSize', 2 ** 32] + ['maxHeaderSize', 2 ** 32], ].forEach((i) => { const settings = {}; settings[i[0]] = i[1]; diff --git a/test/parallel/test-http2-single-headers.js b/test/parallel/test-http2-single-headers.js index 6f20c1b35658d7..c10623b9be7bf0 100644 --- a/test/parallel/test-http2-single-headers.js +++ b/test/parallel/test-http2-single-headers.js @@ -19,7 +19,7 @@ const singles = [ 'if-unmodified-since', 'from', 'location', - 'max-forwards' + 'max-forwards', ]; server.on('stream', common.mustNotCall()); diff --git a/test/parallel/test-http2-tls-disconnect.js b/test/parallel/test-http2-tls-disconnect.js index 2e635fe1376a51..42c58c8a4e0975 100644 --- a/test/parallel/test-http2-tls-disconnect.js +++ b/test/parallel/test-http2-tls-disconnect.js @@ -21,7 +21,7 @@ const server = http2.createSecureServer({ key, cert }, (request, response) => { server.listen(0, () => { const proc = child_process.spawn('h2load', [ '-n', '1000', - `https://localhost:${server.address().port}/` + `https://localhost:${server.address().port}/`, ]); proc.on('error', (err) => { if (err.code === 'ENOENT') diff --git a/test/parallel/test-http2-util-asserts.js b/test/parallel/test-http2-util-asserts.js index 5bbc1cde43f790..29ba8180494a3c 100644 --- a/test/parallel/test-http2-util-asserts.js +++ b/test/parallel/test-http2-util-asserts.js @@ -13,7 +13,7 @@ const { {}, Object.create(null), new Date(), - new (class Foo {})() + new (class Foo {})(), ].forEach((input) => { assertIsObject(input, 'foo', 'Object'); }); @@ -25,7 +25,7 @@ const { NaN, Infinity, [], - [{}] + [{}], ].forEach((input) => { assert.throws( () => assertIsObject(input, 'foo', 'Object'), diff --git a/test/parallel/test-http2-util-headers-list.js b/test/parallel/test-http2-util-headers-list.js index a964c361b78815..1f6fb6557c05c1 100644 --- a/test/parallel/test-http2-util-headers-list.js +++ b/test/parallel/test-http2-util-headers-list.js @@ -9,6 +9,7 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const { mapToHeaders, toHeaderObject } = require('internal/http2/util'); +const { sensitiveHeaders } = require('http2'); const { internalBinding } = require('internal/test/binding'); const { HTTP2_HEADER_STATUS, @@ -102,8 +103,9 @@ const { assert.deepStrictEqual( mapToHeaders(headers), - [ [ ':path', 'abc', ':status', '200', 'abc', '1', 'xyz', '1', 'xyz', '2', - 'xyz', '3', 'xyz', '4', 'bar', '1', '' ].join('\0'), 8 ] + [ [ ':path', 'abc\0', ':status', '200\0', 'abc', '1\0', 'xyz', '1\0', + 'xyz', '2\0', 'xyz', '3\0', 'xyz', '4\0', 'bar', '1\0', '' ].join('\0'), + 8 ] ); } @@ -118,8 +120,8 @@ const { assert.deepStrictEqual( mapToHeaders(headers), - [ [ ':status', '200', ':path', 'abc', 'abc', '1', 'xyz', '1', 'xyz', '2', - 'xyz', '3', 'xyz', '4', '' ].join('\0'), 7 ] + [ [ ':status', '200\0', ':path', 'abc\0', 'abc', '1\0', 'xyz', '1\0', + 'xyz', '2\0', 'xyz', '3\0', 'xyz', '4\0', '' ].join('\0'), 7 ] ); } @@ -135,8 +137,8 @@ const { assert.deepStrictEqual( mapToHeaders(headers), - [ [ ':status', '200', ':path', 'abc', 'abc', '1', 'xyz', '1', 'xyz', '2', - 'xyz', '3', 'xyz', '4', '' ].join('\0'), 7 ] + [ [ ':status', '200\0', ':path', 'abc\0', 'abc', '1\0', 'xyz', '1\0', + 'xyz', '2\0', 'xyz', '3\0', 'xyz', '4\0', '' ].join('\0'), 7 ] ); } @@ -151,8 +153,8 @@ const { assert.deepStrictEqual( mapToHeaders(headers), - [ [ ':status', '200', ':path', 'abc', 'xyz', '1', 'xyz', '2', 'xyz', '3', - 'xyz', '4', '' ].join('\0'), 6 ] + [ [ ':status', '200\0', ':path', 'abc\0', 'xyz', '1\0', 'xyz', '2\0', + 'xyz', '3\0', 'xyz', '4\0', '' ].join('\0'), 6 ] ); } @@ -164,7 +166,7 @@ const { }; assert.deepStrictEqual( mapToHeaders(headers), - [ [ 'set-cookie', 'foo=bar', '' ].join('\0'), 1 ] + [ [ 'set-cookie', 'foo=bar\0', '' ].join('\0'), 1 ] ); } @@ -182,6 +184,23 @@ const { }); } +{ + const headers = { + 'abc': 1, + ':path': 'abc', + ':status': [200], + ':authority': [], + 'xyz': [1, 2, 3, 4], + [sensitiveHeaders]: ['xyz'] + }; + + assert.deepStrictEqual( + mapToHeaders(headers), + [ ':status\x00200\x00\x00:path\x00abc\x00\x00abc\x001\x00\x00' + + 'xyz\x001\x00\x01xyz\x002\x00\x01xyz\x003\x00\x01xyz\x004\x00\x01', 7 ] + ); +} + // The following are not allowed to have multiple values [ HTTP2_HEADER_STATUS, @@ -221,7 +240,7 @@ const { HTTP2_HEADER_TK, HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS, HTTP2_HEADER_USER_AGENT, - HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS + HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS, ].forEach((name) => { const msg = `Header field "${name}" must only have a single value`; assert.throws(() => mapToHeaders({ [name]: [1, 2, 3] }), { @@ -259,7 +278,7 @@ const { HTTP2_HEADER_VIA, HTTP2_HEADER_WARNING, HTTP2_HEADER_WWW_AUTHENTICATE, - HTTP2_HEADER_X_FRAME_OPTIONS + HTTP2_HEADER_X_FRAME_OPTIONS, ].forEach((name) => { assert(!(mapToHeaders({ [name]: [1, 2, 3] }) instanceof Error), name); }); @@ -279,7 +298,7 @@ const { 'TE', 'Transfer-Encoding', 'Proxy-Connection', - 'Keep-Alive' + 'Keep-Alive', ].forEach((name) => { assert.throws(() => mapToHeaders({ [name]: 'abc' }), { code: 'ERR_HTTP2_INVALID_CONNECTION_HEADERS', @@ -315,7 +334,7 @@ mapToHeaders({ te: ['trailers'] }); 'cookie', 'foo', 'set-cookie', 'sc1', 'age', '10', - 'x-multi', 'first' + 'x-multi', 'first', ]; const headers = toHeaderObject(rawHeaders); assert.strictEqual(headers[':status'], 200); @@ -336,7 +355,7 @@ mapToHeaders({ te: ['trailers'] }); 'age', '10', 'age', '20', 'x-multi', 'first', - 'x-multi', 'second' + 'x-multi', 'second', ]; const headers = toHeaderObject(rawHeaders); assert.strictEqual(headers[':status'], 200); diff --git a/test/parallel/test-http2-window-size.js b/test/parallel/test-http2-window-size.js index adf4534d5bc92b..b5940f29583a77 100644 --- a/test/parallel/test-http2-window-size.js +++ b/test/parallel/test-http2-window-size.js @@ -89,7 +89,7 @@ const initialWindowSizeList = [ (1 << 8) - 1, 1 << 8, 1 << 17, - undefined // Use default window size which is (1 << 16) - 1 + undefined, // Use default window size which is (1 << 16) - 1 ]; // Call `run` on each element in the cartesian product of buffersList and diff --git a/test/parallel/test-http2-zero-length-header.js b/test/parallel/test-http2-zero-length-header.js index 7b142d75f003b6..2e7876858aaace 100644 --- a/test/parallel/test-http2-zero-length-header.js +++ b/test/parallel/test-http2-zero-length-header.js @@ -14,7 +14,8 @@ server.on('stream', (stream, headers) => { ':method': 'GET', ':path': '/', 'bar': '', - '__proto__': null + '__proto__': null, + [http2.sensitiveHeaders]: [] }); stream.session.destroy(); server.close(); diff --git a/test/parallel/test-https-agent-session-reuse.js b/test/parallel/test-https-agent-session-reuse.js index 0717a3f8165d67..485f4b1ca308c9 100644 --- a/test/parallel/test-https-agent-session-reuse.js +++ b/test/parallel/test-https-agent-session-reuse.js @@ -90,7 +90,7 @@ const server = https.createServer(options, function(req, res) { servername: 'agent1', ca: ca, port: this.address().port - } + }, ]; function request() { diff --git a/test/parallel/test-https-agent-unref-socket.js b/test/parallel/test-https-agent-unref-socket.js index b2863a74d817d4..49169b523e1042 100644 --- a/test/parallel/test-https-agent-unref-socket.js +++ b/test/parallel/test-https-agent-unref-socket.js @@ -6,8 +6,24 @@ if (!common.hasCrypto) const https = require('https'); -const request = https.get('https://example.com'); +if (process.argv[2] === 'localhost') { + const request = https.get('https://localhost:' + process.argv[3]); -request.on('socket', (socket) => { - socket.unref(); -}); + request.on('socket', (socket) => { + socket.unref(); + }); +} else { + const assert = require('assert'); + const net = require('net'); + const server = net.createServer(); + server.listen(0); + server.on('listening', () => { + const port = server.address().port; + const { fork } = require('child_process'); + const child = fork(__filename, ['localhost', port], {}); + child.on('close', (exit_code) => { + server.close(); + assert.strictEqual(exit_code, 0); + }); + }); +} diff --git a/test/parallel/test-https-insecure-parse-per-stream.js b/test/parallel/test-https-insecure-parse-per-stream.js new file mode 100644 index 00000000000000..645fbcf2637654 --- /dev/null +++ b/test/parallel/test-https-insecure-parse-per-stream.js @@ -0,0 +1,131 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +const fixtures = require('../common/fixtures'); +const assert = require('assert'); +const https = require('https'); +const MakeDuplexPair = require('../common/duplexpair'); +const tls = require('tls'); +const { finished } = require('stream'); + +const certFixture = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem'), + ca: fixtures.readKey('ca1-cert.pem'), +}; + + +// Test that setting the `insecureHTTPParse` option works on a per-stream-basis. + +// Test 1: The server sends an invalid header. +{ + const { clientSide, serverSide } = MakeDuplexPair(); + + const req = https.request({ + rejectUnauthorized: false, + createConnection: common.mustCall(() => clientSide), + insecureHTTPParser: true + }, common.mustCall((res) => { + assert.strictEqual(res.headers.hello, 'foo\x08foo'); + res.resume(); // We don’t actually care about contents. + res.on('end', common.mustCall()); + })); + req.end(); + + serverSide.resume(); // Dump the request + serverSide.end('HTTP/1.1 200 OK\r\n' + + 'Hello: foo\x08foo\r\n' + + 'Content-Length: 0\r\n' + + '\r\n\r\n'); +} + +// Test 2: The same as Test 1 except without the option, to make sure it fails. +{ + const { clientSide, serverSide } = MakeDuplexPair(); + + const req = https.request({ + rejectUnauthorized: false, + createConnection: common.mustCall(() => clientSide) + }, common.mustNotCall()); + req.end(); + req.on('error', common.mustCall()); + + serverSide.resume(); // Dump the request + serverSide.end('HTTP/1.1 200 OK\r\n' + + 'Hello: foo\x08foo\r\n' + + 'Content-Length: 0\r\n' + + '\r\n\r\n'); +} + +// Test 3: The client sends an invalid header. +{ + const testData = 'Hello, World!\n'; + const server = https.createServer( + { insecureHTTPParser: true, + ...certFixture }, + common.mustCall((req, res) => { + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end(testData); + })); + + server.on('clientError', common.mustNotCall()); + + server.listen(0, common.mustCall(() => { + const client = tls.connect({ + port: server.address().port, + rejectUnauthorized: false + }); + client.write( + 'GET / HTTP/1.1\r\n' + + 'Hello: foo\x08foo\r\n' + + '\r\n\r\n'); + client.end(); + + client.on('data', () => {}); + finished(client, common.mustCall(() => { + server.close(); + })); + })); +} + +// Test 4: The same as Test 3 except without the option, to make sure it fails. +{ + const server = https.createServer( + { ...certFixture }, + common.mustNotCall()); + + server.on('clientError', common.mustCall()); + + server.listen(0, common.mustCall(() => { + const client = tls.connect({ + port: server.address().port, + rejectUnauthorized: false + }); + client.write( + 'GET / HTTP/1.1\r\n' + + 'Hello: foo\x08foo\r\n' + + '\r\n\r\n'); + client.end(); + + client.on('data', () => {}); + finished(client, common.mustCall(() => { + server.close(); + })); + })); +} + +// Test 5: Invalid argument type +{ + assert.throws( + () => https.request({ insecureHTTPParser: 0 }, common.mustNotCall()), + common.expectsError({ + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "options.insecureHTTPParser" property must be of' + + ' type boolean. Received type number (0)' + }) + ); +} diff --git a/test/parallel/test-https-max-header-size-per-stream.js b/test/parallel/test-https-max-header-size-per-stream.js new file mode 100644 index 00000000000000..f7117e16fb43f6 --- /dev/null +++ b/test/parallel/test-https-max-header-size-per-stream.js @@ -0,0 +1,119 @@ +'use strict'; +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +const fixtures = require('../common/fixtures'); +const assert = require('assert'); +const https = require('https'); +const http = require('http'); +const tls = require('tls'); +const MakeDuplexPair = require('../common/duplexpair'); +const { finished } = require('stream'); + +const certFixture = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem'), + ca: fixtures.readKey('ca1-cert.pem'), +}; + + +// Test that setting the `maxHeaderSize` option works on a per-stream-basis. + +// Test 1: The server sends larger headers than what would otherwise be allowed. +{ + const { clientSide, serverSide } = MakeDuplexPair(); + + const req = https.request({ + createConnection: common.mustCall(() => clientSide), + maxHeaderSize: http.maxHeaderSize * 4 + }, common.mustCall((res) => { + assert.strictEqual(res.headers.hello, 'A'.repeat(http.maxHeaderSize * 3)); + res.resume(); // We don’t actually care about contents. + res.on('end', common.mustCall()); + })); + req.end(); + + serverSide.resume(); // Dump the request + serverSide.end('HTTP/1.1 200 OK\r\n' + + 'Hello: ' + 'A'.repeat(http.maxHeaderSize * 3) + '\r\n' + + 'Content-Length: 0\r\n' + + '\r\n\r\n'); +} + +// Test 2: The same as Test 1 except without the option, to make sure it fails. +{ + const { clientSide, serverSide } = MakeDuplexPair(); + + const req = https.request({ + createConnection: common.mustCall(() => clientSide) + }, common.mustNotCall()); + req.end(); + req.on('error', common.mustCall()); + + serverSide.resume(); // Dump the request + serverSide.end('HTTP/1.1 200 OK\r\n' + + 'Hello: ' + 'A'.repeat(http.maxHeaderSize * 3) + '\r\n' + + 'Content-Length: 0\r\n' + + '\r\n\r\n'); +} + +// Test 3: The client sends larger headers than what would otherwise be allowed. +{ + const testData = 'Hello, World!\n'; + const server = https.createServer( + { maxHeaderSize: http.maxHeaderSize * 4, + ...certFixture }, + common.mustCall((req, res) => { + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end(testData); + })); + + server.on('clientError', common.mustNotCall()); + + server.listen(0, common.mustCall(() => { + const client = tls.connect({ + port: server.address().port, + rejectUnauthorized: false + }); + client.write( + 'GET / HTTP/1.1\r\n' + + 'Hello: ' + 'A'.repeat(http.maxHeaderSize * 3) + '\r\n' + + '\r\n\r\n'); + client.end(); + + client.on('data', () => {}); + finished(client, common.mustCall(() => { + server.close(); + })); + })); +} + +// Test 4: The same as Test 3 except without the option, to make sure it fails. +{ + const server = https.createServer({ ...certFixture }, common.mustNotCall()); + + // clientError may be emitted multiple times when header is larger than + // maxHeaderSize. + server.on('clientError', common.mustCallAtLeast(() => {}, 1)); + + server.listen(0, common.mustCall(() => { + const client = tls.connect({ + port: server.address().port, + rejectUnauthorized: false + }); + client.write( + 'GET / HTTP/1.1\r\n' + + 'Hello: ' + 'A'.repeat(http.maxHeaderSize * 3) + '\r\n' + + '\r\n\r\n'); + client.end(); + + client.on('data', () => {}); + finished(client, common.mustCall(() => { + server.close(); + })); + })); +} diff --git a/test/parallel/test-https-max-headers-count.js b/test/parallel/test-https-max-headers-count.js index 12aaaa9cd3ad84..f8e4e64bfb94dd 100644 --- a/test/parallel/test-https-max-headers-count.js +++ b/test/parallel/test-https-max-headers-count.js @@ -25,7 +25,7 @@ for (let i = 0; i < N; ++i) { const maxAndExpected = [ // for server [50, 50], [1500, 102], - [0, N + 2] // Host and Connection + [0, N + 2], // Host and Connection ]; let max = maxAndExpected[requests][0]; let expected = maxAndExpected[requests][1]; @@ -46,7 +46,7 @@ server.listen(0, common.mustCall(() => { const maxAndExpected = [ // for client [20, 20], [1200, 103], - [0, N + 3] // Connection, Date and Transfer-Encoding + [0, N + 3], // Connection, Date and Transfer-Encoding ]; const doRequest = common.mustCall(() => { const max = maxAndExpected[responses][0]; diff --git a/test/parallel/test-https-options-boolean-check.js b/test/parallel/test-https-options-boolean-check.js index 65a17f9f7605b0..9740704e169f1e 100644 --- a/test/parallel/test-https-options-boolean-check.js +++ b/test/parallel/test-https-options-boolean-check.js @@ -61,7 +61,7 @@ const caArrDataView = toDataView(caCert); [[keyStr, keyStr2], false], [false, [certStr, certStr2]], [[{ pem: keyBuff }], false], - [[{ pem: keyBuff }, { pem: keyBuff }], false] + [[{ pem: keyBuff }, { pem: keyBuff }], false], ].forEach(([key, cert]) => { https.createServer({ key, cert }); }); @@ -80,7 +80,7 @@ const caArrDataView = toDataView(caCert); [[keyBuff, true], [certBuff, certBuff2], 1], [[true, keyStr2], [certStr, certStr2], 0], [[true, false], [certBuff, certBuff2], 0], - [true, [certBuff, certBuff2]] + [true, [certBuff, certBuff2]], ].forEach(([key, cert, index]) => { const val = index === undefined ? key : key[index]; assert.throws(() => { @@ -141,7 +141,7 @@ const caArrDataView = toDataView(caCert); [keyBuff, certBuff, {}], [keyBuff, certBuff, 1], [keyBuff, certBuff, true], - [keyBuff, certBuff, [caCert, true], 1] + [keyBuff, certBuff, [caCert, true], 1], ].forEach(([key, cert, ca, index]) => { const val = index === undefined ? ca : ca[index]; assert.throws(() => { diff --git a/test/parallel/test-inspect-async-hook-setup-at-inspect.js b/test/parallel/test-inspect-async-hook-setup-at-inspect.js index b68617b5d52276..2c755582852a01 100644 --- a/test/parallel/test-inspect-async-hook-setup-at-inspect.js +++ b/test/parallel/test-inspect-async-hook-setup-at-inspect.js @@ -30,7 +30,7 @@ async function setupTimeoutForStackTrace(session) { await session.send([ { 'method': 'Runtime.evaluate', 'params': { expression: 'setupTimeoutWithBreak()' } }, - { 'method': 'Debugger.resume' } + { 'method': 'Debugger.resume' }, ]); } @@ -54,7 +54,7 @@ async function runTests() { 'params': { 'maxDepth': 10 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await waitForInitialSetup(session); diff --git a/test/parallel/test-inspect-publish-uid.js b/test/parallel/test-inspect-publish-uid.js index 2479a37a2d6901..32550ddb66983a 100644 --- a/test/parallel/test-inspect-publish-uid.js +++ b/test/parallel/test-inspect-publish-uid.js @@ -20,7 +20,7 @@ async function testArg(argValue) { const nodeProcess = spawnSync(process.execPath, [ '--inspect=0', `--inspect-publish-uid=${argValue}`, - '-e', `(${scriptMain.toString()})(${hasHttp ? 200 : 404})` + '-e', `(${scriptMain.toString()})(${hasHttp ? 200 : 404})`, ]); const hasWebSocketInStderr = checkStdError( nodeProcess.stderr.toString('utf8')); diff --git a/test/parallel/test-inspector-connect-main-thread.js b/test/parallel/test-inspector-connect-main-thread.js index be34981cd0c5be..86ff6866bc064e 100644 --- a/test/parallel/test-inspector-connect-main-thread.js +++ b/test/parallel/test-inspector-connect-main-thread.js @@ -111,7 +111,7 @@ async function main() { 'Runtime.enable', 'Debugger.setBreakpointByUrl', 'Debugger.evaluateOnCallFrame', - 'Debugger.resume' + 'Debugger.resume', ]); } diff --git a/test/parallel/test-inspector-esm.js b/test/parallel/test-inspector-esm.js index da3bd17e33f4bc..590432ad9ac31d 100644 --- a/test/parallel/test-inspector-esm.js +++ b/test/parallel/test-inspector-esm.js @@ -33,7 +33,7 @@ async function testBreakpointOnStart(session) { 'params': { 'interval': 100 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]; await session.send(commands); diff --git a/test/parallel/test-inspector-multisession-ws.js b/test/parallel/test-inspector-multisession-ws.js index 7981eef0d30149..1caae767ec55c3 100644 --- a/test/parallel/test-inspector-multisession-ws.js +++ b/test/parallel/test-inspector-multisession-ws.js @@ -37,7 +37,7 @@ async function setupSession(node) { 'params': { 'interval': 100 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); return session; } @@ -56,7 +56,7 @@ async function testSuspend(sessionA, sessionB) { sessionA.send({ 'method': 'Debugger.pause' }); return Promise.all([ sessionA.waitForNotification('Debugger.paused', 'SessionA paused'), - sessionB.waitForNotification('Debugger.paused', 'SessionB paused') + sessionB.waitForNotification('Debugger.paused', 'SessionB paused'), ]); } diff --git a/test/parallel/test-internal-module-require.js b/test/parallel/test-internal-module-require.js index 5b20a83393669f..c6e2057d3da1ee 100644 --- a/test/parallel/test-internal-module-require.js +++ b/test/parallel/test-internal-module-require.js @@ -70,7 +70,7 @@ const expectedPublicModules = new Set([ 'v8', 'vm', 'worker_threads', - 'zlib' + 'zlib', ]); if (process.argv[2] === 'child') { diff --git a/test/parallel/test-internal-util-decorate-error-stack.js b/test/parallel/test-internal-util-decorate-error-stack.js index b12d50bee79abc..b125a29741cb73 100644 --- a/test/parallel/test-internal-util-decorate-error-stack.js +++ b/test/parallel/test-internal-util-decorate-error-stack.js @@ -56,7 +56,7 @@ checkStack(err.stack); // Verify that the stack is only decorated once for uncaught exceptions. const args = [ '-e', - `require('${badSyntaxPath}')` + `require('${badSyntaxPath}')`, ]; const result = spawnSync(process.argv[0], args, { encoding: 'utf8' }); checkStack(result.stderr); diff --git a/test/parallel/test-internal-util-normalizeencoding.js b/test/parallel/test-internal-util-normalizeencoding.js index d7a0259ac9c9fd..167880d661ff4c 100644 --- a/test/parallel/test-internal-util-normalizeencoding.js +++ b/test/parallel/test-internal-util-normalizeencoding.js @@ -33,6 +33,9 @@ const tests = [ ['base64', 'base64'], ['BASE64', 'base64'], ['Base64', 'base64'], + ['base64url', 'base64url'], + ['BASE64url', 'base64url'], + ['Base64url', 'base64url'], ['hex', 'hex'], ['HEX', 'hex'], ['ASCII', 'ascii'], @@ -43,7 +46,7 @@ const tests = [ [NaN, undefined], [0, undefined], [[], undefined], - [{}, undefined] + [{}, undefined], ]; tests.forEach((e, i) => { diff --git a/test/parallel/test-internal-validators-validateport.js b/test/parallel/test-internal-validators-validateport.js index ea9c3a7b58b692..a4c92b8dbca929 100644 --- a/test/parallel/test-internal-validators-validateport.js +++ b/test/parallel/test-internal-validators-validateport.js @@ -17,7 +17,7 @@ for (let n = 0; n <= 0xFFFF; n++) { -1, 'a', {}, [], false, true, 0xFFFF + 1, Infinity, -Infinity, NaN, undefined, null, '', ' ', 1.1, '0x', - '-0x1', '-0o1', '-0b1', '0o', '0b' + '-0x1', '-0o1', '-0b1', '0o', '0b', ].forEach((i) => assert.throws(() => validatePort(i), { code: 'ERR_SOCKET_BAD_PORT' })); diff --git a/test/parallel/test-kill-segfault-freebsd.js b/test/parallel/test-kill-segfault-freebsd.js index 8532f11c86b804..e17b00741bd9aa 100644 --- a/test/parallel/test-kill-segfault-freebsd.js +++ b/test/parallel/test-kill-segfault-freebsd.js @@ -11,7 +11,7 @@ const child_process = require('child_process'); // NOTE: Was crashing on FreeBSD const cp = child_process.spawn(process.execPath, [ '-e', - 'process.kill(process.pid, "SIGINT")' + 'process.kill(process.pid, "SIGINT")', ]); cp.on('exit', function(code) { diff --git a/test/parallel/test-macos-app-sandbox.js b/test/parallel/test-macos-app-sandbox.js index e1e5460ab22cda..b6743e8ba50da4 100644 --- a/test/parallel/test-macos-app-sandbox.js +++ b/test/parallel/test-macos-app-sandbox.js @@ -43,14 +43,14 @@ assert.strictEqual( '--entitlements', fixtures.path( 'macos-app-sandbox', 'node_sandboxed.entitlements'), '--force', '-s', '-', - appBundlePath + appBundlePath, ]).status, 0); // Sandboxed app shouldn't be able to read the home dir assert.notStrictEqual( child_process.spawnSync(appExecutablePath, [ - '-e', 'fs.readdirSync(process.argv[1])', os.homedir() + '-e', 'fs.readdirSync(process.argv[1])', os.homedir(), ]).status, 0); diff --git a/test/parallel/test-memory-usage-emfile.js b/test/parallel/test-memory-usage-emfile.js index 8dc1360d985bde..05b112e91803d1 100644 --- a/test/parallel/test-memory-usage-emfile.js +++ b/test/parallel/test-memory-usage-emfile.js @@ -14,5 +14,5 @@ const files = []; while (files.length < 256) files.push(fs.openSync(__filename, 'r')); -const r = process.memoryUsage(); -assert.strictEqual(r.rss > 0, true); +const r = process.memoryUsage.rss(); +assert.strictEqual(r > 0, true); diff --git a/test/parallel/test-memory-usage.js b/test/parallel/test-memory-usage.js index e8743c47d235c0..8e5ea4de5bf587 100644 --- a/test/parallel/test-memory-usage.js +++ b/test/parallel/test-memory-usage.js @@ -26,8 +26,11 @@ const assert = require('assert'); const r = process.memoryUsage(); // On IBMi, the rss memory always returns zero -if (!common.isIBMi) +if (!common.isIBMi) { assert.ok(r.rss > 0); + assert.ok(process.memoryUsage.rss() > 0); +} + assert.ok(r.heapTotal > 0); assert.ok(r.heapUsed > 0); assert.ok(r.external > 0); @@ -39,8 +42,8 @@ if (r.arrayBuffers > 0) { const ab = new ArrayBuffer(size); const after = process.memoryUsage(); - assert(after.external - r.external >= size, - `${after.external} - ${r.external} >= ${size}`); + assert.ok(after.external - r.external >= size, + `${after.external} - ${r.external} >= ${size}`); assert.strictEqual(after.arrayBuffers - r.arrayBuffers, size, `${after.arrayBuffers} - ${r.arrayBuffers} === ${size}`); } diff --git a/test/parallel/test-microtask-queue-integration.js b/test/parallel/test-microtask-queue-integration.js index 57c384f8ba8177..69d55253a25295 100644 --- a/test/parallel/test-microtask-queue-integration.js +++ b/test/parallel/test-microtask-queue-integration.js @@ -26,7 +26,7 @@ const assert = require('assert'); const implementations = [ function(fn) { Promise.resolve().then(fn); - } + }, ]; let expected = 0; diff --git a/test/parallel/test-module-circular-dependency-warning.js b/test/parallel/test-module-circular-dependency-warning.js index 6e2924c45eefff..35ec16762b89e4 100644 --- a/test/parallel/test-module-circular-dependency-warning.js +++ b/test/parallel/test-module-circular-dependency-warning.js @@ -11,7 +11,7 @@ common.expectWarning({ ["Accessing non-existent property 'Symbol(someSymbol)' " + 'of module exports inside circular dependency'], ["Accessing non-existent property 'missingPropModuleExportsB' " + - 'of module exports inside circular dependency'] + 'of module exports inside circular dependency'], ] }); const required = require(fixtures.path('cycles', 'warning-a.js')); diff --git a/test/parallel/test-module-loading-error.js b/test/parallel/test-module-loading-error.js index 5bc01ce52d7279..8cbe8b2c675663 100644 --- a/test/parallel/test-module-loading-error.js +++ b/test/parallel/test-module-loading-error.js @@ -28,7 +28,7 @@ const errorMessagesByPlatform = { win32: ['is not a valid Win32 application'], linux: ['file too short', 'Exec format error'], sunos: ['unknown file type', 'not an ELF file'], - darwin: ['file too short'], + darwin: ['file too short', 'not a mach-o file'], aix: ['Cannot load module', 'Cannot run a file that does not have a valid format.', 'Exec format error'], diff --git a/test/parallel/test-module-nodemodulepaths.js b/test/parallel/test-module-nodemodulepaths.js index c79d2e6e72c64c..1e355882e0f3d7 100644 --- a/test/parallel/test-module-nodemodulepaths.js +++ b/test/parallel/test-module-nodemodulepaths.js @@ -39,7 +39,7 @@ const cases = { 'C:\\Users\\hefangshi\\AppData\\node_modules', 'C:\\Users\\hefangshi\\node_modules', 'C:\\Users\\node_modules', - 'C:\\node_modules' + 'C:\\node_modules', ] }, { file: 'C:\\Users\\Rocko Artischocko\\node_stuff\\foo', @@ -48,7 +48,7 @@ const cases = { 'C:\\Users\\Rocko Artischocko\\node_stuff\\node_modules', 'C:\\Users\\Rocko Artischocko\\node_modules', 'C:\\Users\\node_modules', - 'C:\\node_modules' + 'C:\\node_modules', ] }, { file: 'C:\\Users\\Rocko Artischocko\\node_stuff\\foo_node_modules', @@ -58,17 +58,17 @@ Artischocko\\node_stuff\\foo_node_modules\\node_modules', 'C:\\Users\\Rocko Artischocko\\node_stuff\\node_modules', 'C:\\Users\\Rocko Artischocko\\node_modules', 'C:\\Users\\node_modules', - 'C:\\node_modules' + 'C:\\node_modules', ] }, { file: 'C:\\node_modules', expect: [ - 'C:\\node_modules' + 'C:\\node_modules', ] }, { file: 'C:\\', expect: [ - 'C:\\node_modules' + 'C:\\node_modules', ] }], 'POSIX': [{ @@ -83,7 +83,7 @@ node-gyp/node_modules/glob/node_modules', '/usr/lib/node_modules/npm/node_modules', '/usr/lib/node_modules', '/usr/node_modules', - '/node_modules' + '/node_modules', ] }, { file: '/usr/test/lib/node_modules/npm/foo', @@ -93,7 +93,7 @@ node-gyp/node_modules/glob/node_modules', '/usr/test/lib/node_modules', '/usr/test/node_modules', '/usr/node_modules', - '/node_modules' + '/node_modules', ] }, { file: '/usr/test/lib/node_modules/npm/foo_node_modules', @@ -103,17 +103,17 @@ node-gyp/node_modules/glob/node_modules', '/usr/test/lib/node_modules', '/usr/test/node_modules', '/usr/node_modules', - '/node_modules' + '/node_modules', ] }, { file: '/node_modules', expect: [ - '/node_modules' + '/node_modules', ] }, { file: '/', expect: [ - '/node_modules' + '/node_modules', ] }] }; diff --git a/test/parallel/test-net-connect-options-fd.js b/test/parallel/test-net-connect-options-fd.js index 62e1414421404a..e9b35c0bfeadf4 100644 --- a/test/parallel/test-net-connect-options-fd.js +++ b/test/parallel/test-net-connect-options-fd.js @@ -25,7 +25,7 @@ function testClients(getSocketOpt, getConnectOpt, getConnectCb) { .on('connect', getConnectCb(3)), new net.Socket(getSocketOpt(4)).connect(getConnectOpt(4), getConnectCb(4)), new net.Socket(getSocketOpt(5)).connect(getConnectOpt(5)) - .on('connect', getConnectCb(5)) + .on('connect', getConnectCb(5)), ]; } diff --git a/test/parallel/test-net-connect-options-port.js b/test/parallel/test-net-connect-options-port.js index 91598f5f15af2f..8c78b957133bc4 100644 --- a/test/parallel/test-net-connect-options-port.js +++ b/test/parallel/test-net-connect-options-port.js @@ -129,7 +129,7 @@ function doConnect(args, getCb) { return socket.connect.apply(socket, args) .on('connect', getCb()) .resume(); - } + }, ]; } diff --git a/test/parallel/test-net-isipv4.js b/test/parallel/test-net-isipv4.js index ec04505cedb27f..8f5c30569ce988 100644 --- a/test/parallel/test-net-isipv4.js +++ b/test/parallel/test-net-isipv4.js @@ -19,7 +19,7 @@ const v4 = [ '192.0.2.235', '99.198.122.146', '46.51.197.88', - '173.194.34.134' + '173.194.34.134', ]; const v4not = [ @@ -34,7 +34,7 @@ const v4not = [ '1000.2.3.4', '999.2.3.4', '0000000192.168.0.200', - '192.168.0.2000000000' + '192.168.0.2000000000', ]; v4.forEach((ip) => { diff --git a/test/parallel/test-net-isipv6.js b/test/parallel/test-net-isipv6.js index 7ba379c3bdd27e..855f17a076c697 100644 --- a/test/parallel/test-net-isipv6.js +++ b/test/parallel/test-net-isipv6.js @@ -131,7 +131,7 @@ const v6 = [ 'a:0:0:0:a:0:0:0', 'a:0:0:0:0:0:0:0', 'fe80::7:8%eth0', - 'fe80::7:8%1' + 'fe80::7:8%1', ]; const v6not = [ @@ -232,7 +232,7 @@ const v6not = [ '::ffff:257.1.2.3', '::ffff:12345678901234567890.1.26', '2001:0000:1234:0000:0000:C1C0:ABCD:0876 0', - '02001:0000:1234:0000:0000:C1C0:ABCD:0876' + '02001:0000:1234:0000:0000:C1C0:ABCD:0876', ]; v6.forEach((ip) => { diff --git a/test/parallel/test-net-server-listen-options.js b/test/parallel/test-net-server-listen-options.js index 035630468b7b19..8753da6cc8d1dd 100644 --- a/test/parallel/test-net-server-listen-options.js +++ b/test/parallel/test-net-server-listen-options.js @@ -20,7 +20,7 @@ function close() { this.close(); } // Test listen(port, cb) and listen({ port }, cb) combinations const listenOnPort = [ (port, cb) => net.createServer().listen({ port }, cb), - (port, cb) => net.createServer().listen(port, cb) + (port, cb) => net.createServer().listen(port, cb), ]; { diff --git a/test/parallel/test-net-socket-timeout.js b/test/parallel/test-net-socket-timeout.js index e01304afe53f01..209359fda60810 100644 --- a/test/parallel/test-net-socket-timeout.js +++ b/test/parallel/test-net-socket-timeout.js @@ -28,12 +28,12 @@ const { inspect } = require('util'); // Verify that invalid delays throw const s = new net.Socket(); const nonNumericDelays = [ - '100', true, false, undefined, null, '', {}, () => {}, [] + '100', true, false, undefined, null, '', {}, () => {}, [], ]; const badRangeDelays = [-0.001, -1, -Infinity, Infinity, NaN]; const validDelays = [0, 0.001, 1, 1e6]; const invalidCallbacks = [ - 1, '100', true, false, null, {}, [], Symbol('test') + 1, '100', true, false, null, {}, [], Symbol('test'), ]; diff --git a/test/parallel/test-net-write-arguments.js b/test/parallel/test-net-write-arguments.js index 2b81ed7d6a3634..ab2f517de75461 100644 --- a/test/parallel/test-net-write-arguments.js +++ b/test/parallel/test-net-write-arguments.js @@ -23,7 +23,7 @@ assert.throws(() => { +Infinity, -Infinity, [], - {} + {}, ].forEach((value) => { // We need to check the callback since 'error' will only // be emitted once per instance. diff --git a/test/parallel/test-os-process-priority.js b/test/parallel/test-os-process-priority.js index d9adac58bf981e..c6fdbff9e554d9 100644 --- a/test/parallel/test-os-process-priority.js +++ b/test/parallel/test-os-process-priority.js @@ -73,7 +73,7 @@ assert.strictEqual(typeof PRIORITY_HIGHEST, 'number'); 3.14, 2 ** 32, PRIORITY_HIGHEST - 1, - PRIORITY_LOW + 1 + PRIORITY_LOW + 1, ].forEach((priority) => { assert.throws(() => { os.setPriority(0, priority); diff --git a/test/parallel/test-os.js b/test/parallel/test-os.js index 922bab276bcb3c..da61a0a235ee0f 100644 --- a/test/parallel/test-os.js +++ b/test/parallel/test-os.js @@ -257,3 +257,10 @@ if (!common.isIBMi) { is.number(+os.freemem, 'freemem'); is.number(os.freemem(), 'freemem'); + +const devNull = os.devNull; +if (common.isWindows) { + assert.strictEqual(devNull, '\\\\.\\nul'); +} else { + assert.strictEqual(devNull, '/dev/null'); +} diff --git a/test/parallel/test-path-join.js b/test/parallel/test-path-join.js index 6243d97ce8a8bc..d6d18399960d0b 100644 --- a/test/parallel/test-path-join.js +++ b/test/parallel/test-path-join.js @@ -55,9 +55,9 @@ const joinTests = [ [['/', '//foo'], '/foo'], [['/', '', '/foo'], '/foo'], [['', '/', 'foo'], '/foo'], - [['', '/', '/foo'], '/foo'] - ] - ] + [['', '/', '/foo'], '/foo'], + ], + ], ]; // Windows-specific join tests @@ -109,9 +109,9 @@ joinTests.push([ [['c:.', '/'], 'c:.\\'], [['c:.', 'file'], 'c:file'], [['c:', '/'], 'c:\\'], - [['c:', 'file'], 'c:\\file'] + [['c:', 'file'], 'c:\\file'], ] - ) + ), ]); joinTests.forEach((test) => { if (!Array.isArray(test[0])) diff --git a/test/parallel/test-path-parse-format.js b/test/parallel/test-path-parse-format.js index cd1e84eae05790..e60a0cedae4259 100644 --- a/test/parallel/test-path-parse-format.js +++ b/test/parallel/test-path-parse-format.js @@ -47,7 +47,7 @@ const winPaths = [ ['\\\\server two\\shared folder\\file path.zip', '\\\\server two\\shared folder\\'], ['\\\\teela\\admin$\\system32', '\\\\teela\\admin$\\'], - ['\\\\?\\UNC\\server\\share', '\\\\?\\UNC\\'] + ['\\\\?\\UNC\\server\\share', '\\\\?\\UNC\\'], ]; const winSpecialCaseParseTests = [ @@ -62,7 +62,7 @@ const winSpecialCaseFormatTests = [ [{ name: 'index', ext: '.html' }, 'index.html'], [{ dir: 'some\\dir', name: 'index', ext: '.html' }, 'some\\dir\\index.html'], [{ root: 'C:\\', name: 'index', ext: '.html' }, 'C:\\index.html'], - [{}, ''] + [{}, ''], ]; const unixPaths = [ @@ -86,7 +86,7 @@ const unixPaths = [ ['/.', '/'], ['/.foo', '/'], ['/.foo.bar', '/'], - ['/foo/bar.baz', '/'] + ['/foo/bar.baz', '/'], ]; const unixSpecialCaseFormatTests = [ @@ -96,7 +96,7 @@ const unixSpecialCaseFormatTests = [ [{ name: 'index', ext: '.html' }, 'index.html'], [{ dir: 'some/dir', name: 'index', ext: '.html' }, 'some/dir/index.html'], [{ root: '/', name: 'index', ext: '.html' }, '/index.html'], - [{}, ''] + [{}, ''], ]; const errors = [ @@ -132,9 +132,9 @@ const trailingTests = [ dir: 'D:\\foo\\\\', base: 'bar.baz', ext: '.baz', - name: 'bar' } - ] - ] + name: 'bar' }, + ], + ], ], [ path.posix.parse, [['./', { root: '', dir: '', base: '.', ext: '', name: '.' }], @@ -142,10 +142,10 @@ const trailingTests = [ ['///', { root: '/', dir: '/', base: '', ext: '', name: '' }], ['/foo///', { root: '/', dir: '/', base: 'foo', ext: '', name: 'foo' }], ['/foo///bar.baz', - { root: '/', dir: '/foo//', base: 'bar.baz', ext: '.baz', name: 'bar' } - ] - ] - ] + { root: '/', dir: '/foo//', base: 'bar.baz', ext: '.baz', name: 'bar' }, + ], + ], + ], ]; const failures = []; trailingTests.forEach((test) => { diff --git a/test/parallel/test-path-relative.js b/test/parallel/test-path-relative.js index 72f862b6df764e..f6a9f5662a6c24 100644 --- a/test/parallel/test-path-relative.js +++ b/test/parallel/test-path-relative.js @@ -31,8 +31,8 @@ const relativeTests = [ ['\\\\foo\\baz-quux', '\\\\foo\\baz', '..\\baz'], ['\\\\foo\\baz', '\\\\foo\\baz-quux', '..\\baz-quux'], ['C:\\baz', '\\\\foo\\bar\\baz', '\\\\foo\\bar\\baz'], - ['\\\\foo\\bar\\baz', 'C:\\baz', 'C:\\baz'] - ] + ['\\\\foo\\bar\\baz', 'C:\\baz', 'C:\\baz'], + ], ], [ path.posix.relative, // Arguments result @@ -48,9 +48,9 @@ const relativeTests = [ ['/foo/bar/baz', '/foo/bar/baz-quux', '../baz-quux'], ['/baz-quux', '/baz', '../baz'], ['/baz', '/baz-quux', '../baz-quux'], - ['/page1/page2/foo', '/', '../../..'] - ] - ] + ['/page1/page2/foo', '/', '../../..'], + ], + ], ]; relativeTests.forEach((test) => { const relative = test[0]; diff --git a/test/parallel/test-path-resolve.js b/test/parallel/test-path-resolve.js index 50411559ea4fc1..d901917f3b0892 100644 --- a/test/parallel/test-path-resolve.js +++ b/test/parallel/test-path-resolve.js @@ -24,8 +24,8 @@ const resolveTests = [ [['c:/', '//server//share'], '\\\\server\\share\\'], [['c:/', '///some//dir'], 'c:\\some\\dir'], [['C:\\foo\\tmp.3\\', '..\\tmp.3\\cycles\\root.js'], - 'C:\\foo\\tmp.3\\cycles\\root.js'] - ] + 'C:\\foo\\tmp.3\\cycles\\root.js'], + ], ], [ path.posix.resolve, // Arguments result @@ -34,9 +34,9 @@ const resolveTests = [ [['a/b/c/', '../../..'], process.cwd()], [['.'], process.cwd()], [['/some/dir', '.', '/absolute/'], '/absolute'], - [['/foo/tmp.3/', '../tmp.3/cycles/root.js'], '/foo/tmp.3/cycles/root.js'] - ] - ] + [['/foo/tmp.3/', '../tmp.3/cycles/root.js'], '/foo/tmp.3/cycles/root.js'], + ], + ], ]; resolveTests.forEach(([resolve, tests]) => { tests.forEach(([test, expected]) => { diff --git a/test/parallel/test-perf-hooks-histogram.js b/test/parallel/test-perf-hooks-histogram.js new file mode 100644 index 00000000000000..c9ae957bb42411 --- /dev/null +++ b/test/parallel/test-perf-hooks-histogram.js @@ -0,0 +1,70 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { + createHistogram, + monitorEventLoopDelay, +} = require('perf_hooks'); +const { MessageChannel } = require('worker_threads'); + +{ + const h = createHistogram(); + + assert.strictEqual(h.min, 9223372036854776000); + assert.strictEqual(h.max, 0); + assert.strictEqual(h.exceeds, 0); + assert(Number.isNaN(h.mean)); + assert(Number.isNaN(h.stddev)); + + h.record(1); + + [false, '', {}, undefined, null].forEach((i) => { + assert.throws(() => h.record(i), { + code: 'ERR_INVALID_ARG_TYPE' + }); + }); + assert.throws(() => h.record(0, Number.MAX_SAFE_INTEGER + 1), { + code: 'ERR_OUT_OF_RANGE' + }); + + assert.strictEqual(h.min, 1); + assert.strictEqual(h.max, 1); + assert.strictEqual(h.exceeds, 0); + assert.strictEqual(h.mean, 1); + assert.strictEqual(h.stddev, 0); + + assert.strictEqual(h.percentile(1), 1); + assert.strictEqual(h.percentile(100), 1); + + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(({ data }) => { + assert.strictEqual(h.min, 1); + assert.strictEqual(h.max, 1); + assert.strictEqual(h.exceeds, 0); + assert.strictEqual(h.mean, 1); + assert.strictEqual(h.stddev, 0); + + data.record(2n); + data.recordDelta(); + + assert.strictEqual(h.max, 2); + + mc.port1.close(); + }); + mc.port2.postMessage(h); +} + +{ + const e = monitorEventLoopDelay(); + e.enable(); + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(({ data }) => { + assert(typeof data.min, 'number'); + assert(data.min > 0); + assert.strictEqual(data.disable, undefined); + assert.strictEqual(data.enable, undefined); + mc.port1.close(); + }); + setTimeout(() => mc.port2.postMessage(e), 100); +} diff --git a/test/parallel/test-performance-gc.js b/test/parallel/test-performance-gc.js index aef0ee14254146..97fd4212c1bb6f 100644 --- a/test/parallel/test-performance-gc.js +++ b/test/parallel/test-performance-gc.js @@ -20,7 +20,7 @@ const kinds = [ NODE_PERFORMANCE_GC_MAJOR, NODE_PERFORMANCE_GC_MINOR, NODE_PERFORMANCE_GC_INCREMENTAL, - NODE_PERFORMANCE_GC_WEAKCB + NODE_PERFORMANCE_GC_WEAKCB, ]; // Adding an observer should force at least one gc to appear diff --git a/test/parallel/test-policy-crypto-default-encoding.js b/test/parallel/test-policy-crypto-default-encoding.js new file mode 100644 index 00000000000000..1f62b4d85a3c4f --- /dev/null +++ b/test/parallel/test-policy-crypto-default-encoding.js @@ -0,0 +1,34 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +common.requireNoPackageJSONAbove(); + +const fixtures = require('../common/fixtures'); + +const assert = require('assert'); +const { spawnSync } = require('child_process'); + +const encodings = ['buffer', 'utf8', 'utf16le', 'latin1', 'base64', 'hex']; + +for (const encoding of encodings) { + const dep = fixtures.path('policy', 'crypto-default-encoding', 'parent.js'); + const depPolicy = fixtures.path( + 'policy', + 'crypto-default-encoding', + 'policy.json'); + const { status } = spawnSync( + process.execPath, + [ + '--experimental-policy', depPolicy, dep, + ], + { + env: { + ...process.env, + DEFAULT_ENCODING: encoding + } + } + ); + assert.strictEqual(status, 0); +} diff --git a/test/parallel/test-policy-dependencies.js b/test/parallel/test-policy-dependencies.js index 4486e0f8aa08c0..decc164dadd253 100644 --- a/test/parallel/test-policy-dependencies.js +++ b/test/parallel/test-policy-dependencies.js @@ -16,12 +16,13 @@ const dep = fixtures.path('policy', 'parent.js'); 'policy', 'dependencies', 'dependencies-redirect-policy.json'); - const { status } = spawnSync( + const { status, stderr, stdout } = spawnSync( process.execPath, [ '--experimental-policy', depPolicy, dep, ] ); + console.log('%s\n%s', stderr, stdout); assert.strictEqual(status, 0); } { @@ -55,12 +56,13 @@ const dep = fixtures.path('policy', 'parent.js'); 'policy', 'dependencies', 'dependencies-wildcard-policy.json'); - const { status } = spawnSync( + const { status, stderr, stdout } = spawnSync( process.execPath, [ '--experimental-policy', depPolicy, dep, ] ); + console.log('%s\n%s', stderr, stdout); assert.strictEqual(status, 0); } { @@ -76,6 +78,19 @@ const dep = fixtures.path('policy', 'parent.js'); ); assert.strictEqual(status, 1); } +{ + const depPolicy = fixtures.path( + 'policy', + 'dependencies', + 'dependencies-missing-policy-default-true.json'); + const { status } = spawnSync( + process.execPath, + [ + '--experimental-policy', depPolicy, dep, + ] + ); + assert.strictEqual(status, 0); +} { const depPolicy = fixtures.path( 'policy', @@ -89,3 +104,43 @@ const dep = fixtures.path('policy', 'parent.js'); ); assert.strictEqual(status, 1); } +{ + // Regression test for https://github.com/nodejs/node/issues/37812 + const depPolicy = fixtures.path( + 'policy', + 'dependencies', + 'dependencies-missing-export-policy.json'); + const { status, stderr } = spawnSync( + process.execPath, + [ + '--experimental-policy', + depPolicy, + fixtures.path('policy', 'bad-main.mjs'), + ] + ); + assert.strictEqual(status, 1); + assert.match( + `${stderr}`, + /SyntaxError: Named export 'doesNotExist' not found\./, + new Error('Should give the real SyntaxError and position')); +} +{ + const depPolicy = fixtures.path( + 'policy', + 'dependencies', + 'dependencies-scopes-relative-specifier.json'); + const { status } = spawnSync( + process.execPath, + [ + '--experimental-policy', + depPolicy, + fixtures.path('policy', 'canonicalize.mjs'), + ] + ); + assert.strictEqual( + status, + 0, + new Error( + 'policies should canonicalize specifiers by default prior to matching') + ); +} diff --git a/test/parallel/test-policy-parse-integrity.js b/test/parallel/test-policy-parse-integrity.js index 3a31d0d57f25db..7c48eeb01426c8 100644 --- a/test/parallel/test-policy-parse-integrity.js +++ b/test/parallel/test-policy-parse-integrity.js @@ -67,7 +67,7 @@ function test({ shouldFail, integrity, manifest = {} }) { const { status } = spawnSync(process.execPath, [ '--experimental-policy', policyFilepath, - depFilepath + depFilepath, ]); if (shouldFail) { assert.notStrictEqual(status, 0); diff --git a/test/parallel/test-policy-scopes-dependencies.js b/test/parallel/test-policy-scopes-dependencies.js index a5a9302ac69629..f4b93a08e58c47 100644 --- a/test/parallel/test-policy-scopes-dependencies.js +++ b/test/parallel/test-policy-scopes-dependencies.js @@ -19,7 +19,7 @@ const assert = require('assert'); 'file:///root/dir1', 'file:///root/dir1/', 'file:///root/dir1/dir2', - 'file:///root/dir1/dir2/' + 'file:///root/dir1/dir2/', ]; { @@ -38,6 +38,41 @@ const assert = require('assert'); ); } } + { + const manifest = new Manifest({ + scopes: { + '': { + dependencies: true + } + } + }); + + for (const href of baseURLs) { + assert.strictEqual( + manifest.getDependencyMapper(href).resolve('fs'), + true + ); + } + } + { + const manifest = new Manifest({ + scopes: { + '': { + dependencies: true + }, + 'file:': { + cascade: true + } + } + }); + + for (const href of baseURLs) { + assert.strictEqual( + manifest.getDependencyMapper(href).resolve('fs'), + true + ); + } + } { const manifest = new Manifest({ scopes: { diff --git a/test/parallel/test-policy-scopes-integrity.js b/test/parallel/test-policy-scopes-integrity.js index 8c91cea142b903..16d9eb04eb7347 100644 --- a/test/parallel/test-policy-scopes-integrity.js +++ b/test/parallel/test-policy-scopes-integrity.js @@ -19,7 +19,7 @@ const assert = require('assert'); 'file:///root/dir1', 'file:///root/dir1/', 'file:///root/dir1/dir2', - 'file:///root/dir1/dir2/' + 'file:///root/dir1/dir2/', ]; { diff --git a/test/parallel/test-preload.js b/test/parallel/test-preload.js index df83d74e23bbb5..4636a46007001c 100644 --- a/test/parallel/test-preload.js +++ b/test/parallel/test-preload.js @@ -135,7 +135,7 @@ replProc.on('close', function(code) { assert.strictEqual(code, 0); const output = [ 'A', - '> ' + '> ', ]; assert.ok(replStdout.startsWith(output[0])); assert.ok(replStdout.endsWith(output[1])); diff --git a/test/parallel/test-primordials-apply.js b/test/parallel/test-primordials-apply.js new file mode 100644 index 00000000000000..0901a87ba18777 --- /dev/null +++ b/test/parallel/test-primordials-apply.js @@ -0,0 +1,74 @@ +// Flags: --expose-internals +'use strict'; + +require('../common'); + +const assert = require('assert'); +const { + ArrayOfApply, + ArrayPrototypePushApply, + ArrayPrototypeUnshiftApply, + MathMaxApply, + MathMinApply, + StringPrototypeConcatApply, + TypedArrayOfApply, +} = require('internal/test/binding').primordials; + +{ + const arr1 = [1, 2, 3]; + const arr2 = ArrayOfApply(arr1); + + assert.deepStrictEqual(arr2, arr1); + assert.notStrictEqual(arr2, arr1); +} + +{ + const array = [1, 2, 3]; + const i32Array = TypedArrayOfApply(Int32Array, array); + + assert(i32Array instanceof Int32Array); + assert.strictEqual(i32Array.length, array.length); + for (let i = 0, { length } = array; i < length; i++) { + assert.strictEqual(i32Array[i], array[i], `i32Array[${i}] === array[${i}]`); + } +} + +{ + const arr1 = [1, 2, 3]; + const arr2 = [4, 5, 6]; + + const expected = [...arr1, ...arr2]; + + assert.strictEqual(ArrayPrototypePushApply(arr1, arr2), expected.length); + assert.deepStrictEqual(arr1, expected); +} + +{ + const arr1 = [1, 2, 3]; + const arr2 = [4, 5, 6]; + + const expected = [...arr2, ...arr1]; + + assert.strictEqual(ArrayPrototypeUnshiftApply(arr1, arr2), expected.length); + assert.deepStrictEqual(arr1, expected); +} + +{ + const array = [1, 2, 3]; + assert.strictEqual(MathMaxApply(array), 3); + assert.strictEqual(MathMinApply(array), 1); +} + +{ + let hint; + const obj = { [Symbol.toPrimitive](h) { + hint = h; + return '[object Object]'; + } }; + + const args = ['foo ', obj, ' bar']; + const result = StringPrototypeConcatApply('', args); + + assert.strictEqual(hint, 'string'); + assert.strictEqual(result, 'foo [object Object] bar'); +} diff --git a/test/parallel/test-process-beforeexit-throw-exit.js b/test/parallel/test-process-beforeexit-throw-exit.js new file mode 100644 index 00000000000000..6e9d764be90baa --- /dev/null +++ b/test/parallel/test-process-beforeexit-throw-exit.js @@ -0,0 +1,12 @@ +'use strict'; +const common = require('../common'); +common.skipIfWorker(); + +// Test that 'exit' is emitted if 'beforeExit' throws. + +process.on('exit', common.mustCall(() => { + process.exitCode = 0; +})); +process.on('beforeExit', common.mustCall(() => { + throw new Error(); +})); diff --git a/test/parallel/test-process-cpuUsage.js b/test/parallel/test-process-cpuUsage.js index ecd782f86a52a9..3493ce90fafd37 100644 --- a/test/parallel/test-process-cpuUsage.js +++ b/test/parallel/test-process-cpuUsage.js @@ -62,7 +62,7 @@ assert.throws( [ { user: 3, system: 'b' }, - { user: 3, system: null } + { user: 3, system: null }, ].forEach((value) => { assert.throws( () => process.cpuUsage(value), @@ -78,7 +78,7 @@ assert.throws( // Check invalid values. [ { user: -1, system: 2 }, - { user: Number.POSITIVE_INFINITY, system: 4 } + { user: Number.POSITIVE_INFINITY, system: 4 }, ].forEach((value) => { assert.throws( () => process.cpuUsage(value), @@ -93,7 +93,7 @@ assert.throws( [ { user: 3, system: -2 }, - { user: 5, system: Number.NEGATIVE_INFINITY } + { user: 5, system: Number.NEGATIVE_INFINITY }, ].forEach((value) => { assert.throws( () => process.cpuUsage(value), diff --git a/test/parallel/test-process-emit-warning-from-native.js b/test/parallel/test-process-emit-warning-from-native.js index ee7e731935dc9d..80b1e71a08c58e 100644 --- a/test/parallel/test-process-emit-warning-from-native.js +++ b/test/parallel/test-process-emit-warning-from-native.js @@ -13,10 +13,10 @@ const key = '0123456789'; { common.expectWarning({ DeprecationWarning: [ - ['crypto.createCipher is deprecated.', 'DEP0106'] + ['crypto.createCipher is deprecated.', 'DEP0106'], ], Warning: [ - ['Use Cipheriv for counter mode of aes-256-gcm'] + ['Use Cipheriv for counter mode of aes-256-gcm'], ] }); diff --git a/test/parallel/test-process-emitwarning.js b/test/parallel/test-process-emitwarning.js index de0861140d6135..1bfac40ecbce30 100644 --- a/test/parallel/test-process-emitwarning.js +++ b/test/parallel/test-process-emitwarning.js @@ -42,7 +42,7 @@ class CustomWarning extends Error { [testMsg, { type: testType, code: testCode, detail: true }], [testMsg, { type: testType, code: testCode, detail: [] }], [testMsg, { type: testType, code: testCode, detail: null }], - [testMsg, { type: testType, code: testCode, detail: 1 }] + [testMsg, { type: testType, code: testCode, detail: 1 }], ].forEach((args) => { process.emitWarning(...args); }); @@ -72,7 +72,7 @@ process.emitWarning(warningThrowToString); ['', '', []], [], [undefined, 'foo', 'bar'], - [undefined] + [undefined], ].forEach((args) => { assert.throws( () => process.emitWarning(...args), 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 1c91444d65509a..6e5a9678f81e9e 100644 --- a/test/parallel/test-process-env-allowed-flags-are-documented.js +++ b/test/parallel/test-process-env-allowed-flags-are-documented.js @@ -31,7 +31,8 @@ assert.deepStrictEqual(v8OptionsLines, [...v8OptionsLines].sort()); const documented = new Set(); for (const line of [...nodeOptionsLines, ...v8OptionsLines]) { for (const match of line.matchAll(/`(-[^`]+)`/g)) { - const option = match[1]; + // Remove negation from the option's name. + const option = match[1].replace('--no-', '--'); assert(!documented.has(option), `Option '${option}' was documented more than once as an ` + `allowed option for NODE_OPTIONS in ${cliMd}.`); @@ -87,12 +88,23 @@ const undocumented = difference(process.allowedNodeEnvironmentFlags, documented); // Remove intentionally undocumented options. assert(undocumented.delete('--debug-arraybuffer-allocations')); +assert(undocumented.delete('--no-debug-arraybuffer-allocations')); assert(undocumented.delete('--es-module-specifier-resolution')); assert(undocumented.delete('--experimental-report')); assert(undocumented.delete('--experimental-worker')); +assert(undocumented.delete('--node-snapshot')); assert(undocumented.delete('--no-node-snapshot')); assert(undocumented.delete('--loader')); assert(undocumented.delete('--verify-base-objects')); +assert(undocumented.delete('--no-verify-base-objects')); + +// Remove negated versions of the flags. +for (const flag of undocumented) { + if (flag.startsWith('--no-')) { + assert(documented.has(`--${flag.slice(5)}`), flag); + undocumented.delete(flag); + } +} assert.strictEqual(undocumented.size, 0, 'The following options are not documented as allowed in ' + diff --git a/test/parallel/test-process-env-allowed-flags.js b/test/parallel/test-process-env-allowed-flags.js index 21beb5357a5f65..275e210619ec71 100644 --- a/test/parallel/test-process-env-allowed-flags.js +++ b/test/parallel/test-process-env-allowed-flags.js @@ -28,7 +28,7 @@ const assert = require('assert'); '--r', '-R', '---inspect-brk', - '--cheeseburgers' + '--cheeseburgers', ]; goodFlags.forEach((flag) => { @@ -51,7 +51,7 @@ const assert = require('assert'); // Assert all "canonical" flags begin with dash(es) { process.allowedNodeEnvironmentFlags.forEach((flag) => { - assert(/^--?[a-z0-9._-]+$/.test(flag), + assert(/^--?[a-zA-Z0-9._-]+$/.test(flag), `Unexpected format for flag ${flag}`); }); } diff --git a/test/parallel/test-process-setsourcemapsenabled.js b/test/parallel/test-process-setsourcemapsenabled.js new file mode 100644 index 00000000000000..7211cfb3b88cf2 --- /dev/null +++ b/test/parallel/test-process-setsourcemapsenabled.js @@ -0,0 +1,16 @@ +'use strict'; +require('../common'); +const assert = require('assert'); + +const unexpectedValues = [ + undefined, + null, + 1, + {}, + () => {}, +]; +for (const it of unexpectedValues) { + assert.throws(() => { + process.setSourceMapsEnabled(it); + }, /ERR_INVALID_ARG_TYPE/); +} diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index 14484293dc4621..5d2371f44272cf 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -2,8 +2,18 @@ const common = require('../common'); const assert = require('assert'); -const expected_keys = ['ares', 'brotli', 'modules', 'node', - 'uv', 'v8', 'zlib', 'nghttp2', 'napi', 'llhttp']; +const expected_keys = [ + 'ares', + 'brotli', + 'modules', + 'node', + 'uv', + 'v8', + 'zlib', + 'nghttp2', + 'napi', + 'llhttp', +]; if (common.hasCrypto) { expected_keys.push('openssl'); diff --git a/test/parallel/test-process-wrap.js b/test/parallel/test-process-wrap.js index ef9075e9158229..997e3e43908010 100644 --- a/test/parallel/test-process-wrap.js +++ b/test/parallel/test-process-wrap.js @@ -60,7 +60,7 @@ p.spawn({ stdio: [ { type: 'ignore' }, { type: 'pipe', handle: pipe }, - { type: 'ignore' } + { type: 'ignore' }, ] }); @@ -74,7 +74,7 @@ assert.throws(function() { stdio: [ { type: 'ignore' }, { type: 'pipe', handle: pipe }, - { type: 'ignore' } + { type: 'ignore' }, ] }); }, TypeError); diff --git a/test/parallel/test-promise-swallowed-event.js b/test/parallel/test-promise-swallowed-event.js index 144d732c20668b..e9b97ab19d329d 100644 --- a/test/parallel/test-promise-swallowed-event.js +++ b/test/parallel/test-promise-swallowed-event.js @@ -38,7 +38,7 @@ const expected = [ swallowedResolve2, 'reject', p2, - rejection2 + rejection2, ]; let count = 0; diff --git a/test/parallel/test-promises-unhandled-symbol-rejections.js b/test/parallel/test-promises-unhandled-symbol-rejections.js index 2851ce977fc4d0..ab112d3b997952 100644 --- a/test/parallel/test-promises-unhandled-symbol-rejections.js +++ b/test/parallel/test-promises-unhandled-symbol-rejections.js @@ -23,7 +23,7 @@ common.expectWarning({ DeprecationWarning: expectedDeprecationWarning, UnhandledPromiseRejectionWarning: [ expectedValueWarning, - expectedPromiseWarning + expectedPromiseWarning, ], }); diff --git a/test/parallel/test-punycode.js b/test/parallel/test-punycode.js index d7ad2ec21faa57..190c0b22b313dc 100644 --- a/test/parallel/test-punycode.js +++ b/test/parallel/test-punycode.js @@ -194,7 +194,7 @@ const tests = [ encoded: '-> $1.00 <--', decoded: '\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020\u003C' + '\u002D' - } + }, ]; let errors = 0; diff --git a/test/parallel/test-querystring.js b/test/parallel/test-querystring.js index de45ef165874b2..eda94bf8df9164 100644 --- a/test/parallel/test-querystring.js +++ b/test/parallel/test-querystring.js @@ -107,7 +107,7 @@ const qsTestCases = [ ['%20+&', '%20%20=', { ' ': '' }], ['=%20+&', '=%20%20', { '': ' ' }], [null, '', {}], - [undefined, '', {}] + [undefined, '', {}], ]; // [ wonkyQS, canonicalQS, obj ] @@ -118,7 +118,7 @@ const qsColonTestCases = [ 'foo:1%26bar%3A2;baz:quux', { 'foo': '1&bar:2', 'baz': 'quux' }], ['foo%3Abaz:bar', 'foo%3Abaz:bar', { 'foo:baz': 'bar' }], - ['foo:baz:bar', 'foo:baz%3Abar', { 'foo': 'baz:bar' }] + ['foo:baz:bar', 'foo:baz%3Abar', { 'foo': 'baz:bar' }], ]; // [wonkyObj, qs, canonicalObj] @@ -138,14 +138,14 @@ const qsWeirdObjects = [ [ { f: new Boolean(false), t: new Boolean(true) }, 'f=&t=', - { 'f': '', 't': '' } + { 'f': '', 't': '' }, ], [{ f: false, t: true }, 'f=false&t=true', { 'f': 'false', 't': 'true' }], [{ n: null }, 'n=', { 'n': '' }], [{ nan: NaN }, 'nan=', { 'nan': '' }], [{ inf: Infinity }, 'inf=', { 'inf': '' }], [{ a: [], b: [] }, '', {}], - [{ a: 1, b: [] }, 'a=1', { 'a': '1' }] + [{ a: 1, b: [] }, 'a=1', { 'a': '1' }], ]; // }}} @@ -164,7 +164,7 @@ const qsNoMungeTestCases = [ ['gragh=1&gragh=3&goo=2', { 'gragh': ['1', '3'], 'goo': '2' }], ['frappucino=muffin&goat%5B%5D=scone&pond=moose', { 'frappucino': 'muffin', 'goat[]': 'scone', 'pond': 'moose' }], - ['trololol=yes&lololo=no', { 'trololol': 'yes', 'lololo': 'no' }] + ['trololol=yes&lololo=no', { 'trololol': 'yes', 'lololo': 'no' }], ]; const qsUnescapeTestCases = [ @@ -178,7 +178,7 @@ const qsUnescapeTestCases = [ ' !"#$%&\'()*+,-./01234567'], ['%%2a', '%*'], ['%2sf%2a', '%2sf*'], - ['%2%2af%2a', '%2*f*'] + ['%2%2af%2a', '%2*f*'], ]; assert.strictEqual(qs.parse('id=918854443121279438895193').id, @@ -232,13 +232,13 @@ qsNoMungeTestCases.forEach((testCase) => { const f = qs.parse('a=b&q=x%3Dy%26y%3Dz'); check(f, createWithNoPrototype([ { key: 'a', value: 'b' }, - { key: 'q', value: 'x=y&y=z' } + { key: 'q', value: 'x=y&y=z' }, ])); f.q = qs.parse(f.q); const expectedInternal = createWithNoPrototype([ { key: 'x', value: 'y' }, - { key: 'y', value: 'z' } + { key: 'y', value: 'z' }, ]); check(f.q, expectedInternal); } @@ -248,12 +248,12 @@ qsNoMungeTestCases.forEach((testCase) => { const f = qs.parse('a:b;q:x%3Ay%3By%3Az', ';', ':'); check(f, createWithNoPrototype([ { key: 'a', value: 'b' }, - { key: 'q', value: 'x:y;y:z' } + { key: 'q', value: 'x:y;y:z' }, ])); f.q = qs.parse(f.q, ';', ':'); const expectedInternal = createWithNoPrototype([ { key: 'x', value: 'y' }, - { key: 'y', value: 'z' } + { key: 'y', value: 'z' }, ]); check(f.q, expectedInternal); } diff --git a/test/parallel/test-readable-from.js b/test/parallel/test-readable-from.js index 94bc2c1ae4b926..f196d0b971f9b9 100644 --- a/test/parallel/test-readable-from.js +++ b/test/parallel/test-readable-from.js @@ -41,7 +41,7 @@ async function toReadablePromises() { const promises = [ Promise.resolve('a'), Promise.resolve('b'), - Promise.resolve('c') + Promise.resolve('c'), ]; const stream = Readable.from(promises); @@ -192,5 +192,5 @@ Promise.all([ toReadableOnDataNonObject(), destroysTheStreamWhenThrowing(), asTransformStream(), - endWithError() + endWithError(), ]).then(mustCall()); diff --git a/test/parallel/test-readline-async-iterators-destroy.js b/test/parallel/test-readline-async-iterators-destroy.js index e96f831432b1eb..dc0ef3e1631d0a 100644 --- a/test/parallel/test-readline-async-iterators-destroy.js +++ b/test/parallel/test-readline-async-iterators-destroy.js @@ -17,7 +17,7 @@ const testContents = [ '\n', 'line 1', 'line 1\nline 2 南越国是前203年至前111年存在于岭南地区的一个国家\nline 3\ntrailing', - 'line 1\nline 2\nline 3 ends with newline\n' + 'line 1\nline 2\nline 3 ends with newline\n', ]; async function testSimpleDestroy() { diff --git a/test/parallel/test-readline-async-iterators.js b/test/parallel/test-readline-async-iterators.js index f803e17ea71a8a..2aa557a3363486 100644 --- a/test/parallel/test-readline-async-iterators.js +++ b/test/parallel/test-readline-async-iterators.js @@ -16,7 +16,7 @@ const testContents = [ '\n', 'line 1', 'line 1\nline 2 南越国是前203年至前111年存在于岭南地区的一个国家\nline 3\ntrailing', - 'line 1\nline 2\nline 3 ends with newline\n' + 'line 1\nline 2\nline 3 ends with newline\n', ]; async function testSimple() { diff --git a/test/parallel/test-readline-emit-keypress-events.js b/test/parallel/test-readline-emit-keypress-events.js index 3b9aece4654ac1..8bb10d905cae2a 100644 --- a/test/parallel/test-readline-emit-keypress-events.js +++ b/test/parallel/test-readline-emit-keypress-events.js @@ -24,5 +24,5 @@ assert.deepStrictEqual(sequence, ['f', 'o', 'o']); assert.deepStrictEqual(keys, [ { 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 } + { sequence: 'o', name: 'o', ctrl: false, meta: false, shift: false }, ]); diff --git a/test/parallel/test-readline-interface-escapecodetimeout.js b/test/parallel/test-readline-interface-escapecodetimeout.js index 58f5fcb3cde42f..db78458be71064 100644 --- a/test/parallel/test-readline-interface-escapecodetimeout.js +++ b/test/parallel/test-readline-interface-escapecodetimeout.js @@ -29,7 +29,7 @@ class FakeInput extends EventEmitter { null, {}, NaN, - '50' + '50', ].forEach((invalidInput) => { assert.throws(() => { const fi = new FakeInput(); diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index 4684975bea6bad..3f8909914a313c 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -19,18 +19,19 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -// Flags: --expose-internals +// Flags: --expose-internals --experimental-abortcontroller 'use strict'; const common = require('../common'); common.skipIfDumbTerminal(); const assert = require('assert'); const readline = require('readline'); +const util = require('util'); const { getStringWidth, stripVTControlCharacters } = require('internal/util/inspect'); -const EventEmitter = require('events').EventEmitter; +const { EventEmitter, getEventListeners } = require('events'); const { Writable, Readable } = require('stream'); class FakeInput extends EventEmitter { @@ -75,7 +76,7 @@ function assertCursorRowsAndCols(rli, rows, cols) { 50, 0, 100.5, - 5000 + 5000, ].forEach((crlfDelay) => { const [rli] = getInterface({ crlfDelay }); assert.strictEqual(rli.crlfDelay, Math.max(crlfDelay || 100, 100)); @@ -116,35 +117,30 @@ function assertCursorRowsAndCols(rli, rows, cols) { code: 'ERR_INVALID_OPT_VALUE' }); - // Constructor throws if historySize is not a positive number - assert.throws(() => { - readline.createInterface({ - input, - historySize: 'not a number' - }); - }, { - name: 'RangeError', - code: 'ERR_INVALID_OPT_VALUE' - }); - - assert.throws(() => { - readline.createInterface({ - input, - historySize: -1 + // Constructor throws if history is not an array + ['not an array', 123, 123n, {}, true, Symbol(), null].forEach((history) => { + assert.throws(() => { + readline.createInterface({ + input, + history, + }); + }, { + name: 'TypeError', + code: 'ERR_INVALID_ARG_TYPE' }); - }, { - name: 'RangeError', - code: 'ERR_INVALID_OPT_VALUE' }); - assert.throws(() => { - readline.createInterface({ - input, - historySize: NaN + // Constructor throws if historySize is not a positive number + ['not a number', -1, NaN, {}, true, Symbol(), null].forEach((historySize) => { + assert.throws(() => { + readline.createInterface({ + input, + historySize, + }); + }, { + name: 'RangeError', + code: 'ERR_INVALID_OPT_VALUE' }); - }, { - name: 'RangeError', - code: 'ERR_INVALID_OPT_VALUE' }); // Check for invalid tab sizes. @@ -239,6 +235,38 @@ function assertCursorRowsAndCols(rli, rows, cols) { rli.close(); } +// Adding history lines should emit the history event with +// the history array +{ + const [rli, fi] = getInterface({ terminal: true }); + const expectedLines = ['foo', 'bar', 'baz', 'bat']; + rli.on('history', common.mustCall((history) => { + const expectedHistory = expectedLines.slice(0, history.length).reverse(); + assert.deepStrictEqual(history, expectedHistory); + }, expectedLines.length)); + for (const line of expectedLines) { + fi.emit('data', `${line}\n`); + } + rli.close(); +} + +// Altering the history array in the listener should not alter +// the line being processed +{ + const [rli, fi] = getInterface({ terminal: true }); + const expectedLine = 'foo'; + rli.on('history', common.mustCall((history) => { + assert.strictEqual(history[0], expectedLine); + history.shift(); + })); + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, expectedLine); + assert.strictEqual(rli.history.length, 0); + })); + fi.emit('data', `${expectedLine}\n`); + rli.close(); +} + // Duplicate lines are removed from history when // `options.removeHistoryDuplicates` is `true` { @@ -508,7 +536,7 @@ function assertCursorRowsAndCols(rli, rows, cols) { [ { ctrl: true, name: 'w' }, { ctrl: true, name: 'backspace' }, - { meta: true, name: 'backspace' } + { meta: true, name: 'backspace' }, ].forEach((deleteWordLeftKey) => { let [rli, fi] = getInterface({ terminal: true, prompt: '' }); fi.emit('data', 'the quick brown fox'); @@ -536,7 +564,7 @@ function assertCursorRowsAndCols(rli, rows, cols) { [ { ctrl: true, name: 'delete' }, { meta: true, name: 'delete' }, - { meta: true, name: 'd' } + { meta: true, name: 'd' }, ].forEach((deleteWordRightKey) => { let [rli, fi] = getInterface({ terminal: true, prompt: '' }); fi.emit('data', 'the quick brown fox'); @@ -774,7 +802,7 @@ for (let i = 0; i < 12; i++) { assert.strictEqual(rli.historySize, 0); fi.emit('data', 'asdf\n'); - assert.deepStrictEqual(rli.history, terminal ? [] : undefined); + assert.deepStrictEqual(rli.history, []); rli.close(); } @@ -784,7 +812,7 @@ for (let i = 0; i < 12; i++) { assert.strictEqual(rli.historySize, 30); fi.emit('data', 'asdf\n'); - assert.deepStrictEqual(rli.history, terminal ? ['asdf'] : undefined); + assert.deepStrictEqual(rli.history, terminal ? ['asdf'] : []); rli.close(); } @@ -907,6 +935,51 @@ for (let i = 0; i < 12; i++) { rli.close(); } + // Calling the promisified question + { + const [rli] = getInterface({ terminal }); + const question = util.promisify(rli.question).bind(rli); + question('foo?') + .then(common.mustCall((answer) => { + assert.strictEqual(answer, 'bar'); + })); + rli.write('bar\n'); + rli.close(); + } + + // Aborting a question + { + const ac = new AbortController(); + const signal = ac.signal; + const [rli] = getInterface({ terminal }); + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, 'bar'); + })); + rli.question('hello?', { signal }, common.mustNotCall()); + ac.abort(); + rli.write('bar\n'); + rli.close(); + } + + // Aborting a promisified question + { + const ac = new AbortController(); + const signal = ac.signal; + const [rli] = getInterface({ terminal }); + const question = util.promisify(rli.question).bind(rli); + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, 'bar'); + })); + question('hello?', { signal }) + .then(common.mustNotCall()) + .catch(common.mustCall((error) => { + assert.strictEqual(error.name, 'AbortError'); + })); + ac.abort(); + rli.write('bar\n'); + rli.close(); + } + // Can create a new readline Interface with a null output argument { const [rli, fi] = getInterface({ output: null, terminal }); @@ -1071,3 +1144,58 @@ for (let i = 0; i < 12; i++) { rl.line = `a${' '.repeat(1e6)}a`; rl.cursor = rl.line.length; } + +{ + const fi = new FakeInput(); + const signal = AbortSignal.abort(); + + const rl = readline.createInterface({ + input: fi, + output: fi, + signal, + }); + rl.on('close', common.mustCall()); + assert.strictEqual(getEventListeners(signal, 'abort').length, 0); +} + +{ + const fi = new FakeInput(); + const ac = new AbortController(); + const { signal } = ac; + const rl = readline.createInterface({ + input: fi, + output: fi, + signal, + }); + assert.strictEqual(getEventListeners(signal, 'abort').length, 1); + rl.on('close', common.mustCall()); + ac.abort(); + assert.strictEqual(getEventListeners(signal, 'abort').length, 0); +} + +{ + const fi = new FakeInput(); + const ac = new AbortController(); + const { signal } = ac; + const rl = readline.createInterface({ + input: fi, + output: fi, + signal, + }); + assert.strictEqual(getEventListeners(signal, 'abort').length, 1); + rl.close(); + assert.strictEqual(getEventListeners(signal, 'abort').length, 0); +} + +{ + // Constructor throws if signal is not an abort signal + assert.throws(() => { + readline.createInterface({ + input: new FakeInput(), + signal: {}, + }); + }, { + name: 'TypeError', + code: 'ERR_INVALID_ARG_TYPE' + }); +} diff --git a/test/parallel/test-readline-keys.js b/test/parallel/test-readline-keys.js index bdc93c148edbfe..8ae0d680d5f039 100644 --- a/test/parallel/test-readline-keys.js +++ b/test/parallel/test-readline-keys.js @@ -332,15 +332,15 @@ addTest('\x1bOa\x1bOb\x1bOc\x1bOd\x1bOe', [ const runKeyIntervalTests = [ // Escape character addKeyIntervalTest('\x1b', [ - { name: 'escape', sequence: '\x1b', meta: true } + { name: 'escape', sequence: '\x1b', meta: true }, ]), // Chain of escape characters. addKeyIntervalTest('\x1b\x1b\x1b\x1b'.split(''), [ { name: 'escape', sequence: '\x1b', meta: true }, { name: 'escape', sequence: '\x1b', meta: true }, { name: 'escape', sequence: '\x1b', meta: true }, - { name: 'escape', sequence: '\x1b', meta: true } - ]) + { name: 'escape', sequence: '\x1b', meta: true }, + ]), ].reverse().reduce((acc, fn) => fn(acc), () => {}); // Run key interval tests one after another. diff --git a/test/parallel/test-readline-reopen.js b/test/parallel/test-readline-reopen.js index dead22d81ac961..fd305fee3e88c7 100644 --- a/test/parallel/test-readline-reopen.js +++ b/test/parallel/test-readline-reopen.js @@ -23,7 +23,7 @@ rl1.on('line', common.mustCall(rl1OnLine)); // that it doesn’t get lost when closing the readline instance. input.write(Buffer.concat([ Buffer.from('foo\n'), - Buffer.from([ 0xe2 ]) // Exactly one third of a ☃ snowman. + Buffer.from([ 0xe2 ]), // Exactly one third of a ☃ snowman. ])); function rl1OnLine(line) { diff --git a/test/parallel/test-readline-tab-complete.js b/test/parallel/test-readline-tab-complete.js index e8dcbeebe107ad..be993911c6fe16 100644 --- a/test/parallel/test-readline-tab-complete.js +++ b/test/parallel/test-readline-tab-complete.js @@ -15,7 +15,7 @@ common.skipIfDumbTerminal(); [ 'あ', '𐐷', - '🐕' + '🐕', ].forEach((char) => { [true, false].forEach((lineBreak) => { const completer = (line) => [ @@ -24,7 +24,7 @@ common.skipIfDumbTerminal(); '', `${char}${'a'.repeat(10)}`, `${char}${'b'.repeat(10)}`, char.repeat(11), ], - line + line, ]; let output = ''; @@ -100,3 +100,39 @@ common.skipIfDumbTerminal(); }); rli.close(); } + +{ + let output = ''; + class FakeInput extends EventEmitter { + columns = 80 + + write = common.mustCall((data) => { + output += data; + }, 9) + + resume() {} + pause() {} + end() {} + } + + const fi = new FakeInput(); + const rli = new readline.Interface({ + input: fi, + output: fi, + terminal: true, + completer: common.mustCall((input, cb) => { + cb(null, [[input[0].toUpperCase() + input.slice(1)], input]); + }), + }); + + rli.on('line', common.mustNotCall()); + fi.emit('data', 'input'); + queueMicrotask(() => { + fi.emit('data', '\t'); + queueMicrotask(() => { + assert.match(output, /> Input/); + output = ''; + rli.close(); + }); + }); +} diff --git a/test/parallel/test-readline.js b/test/parallel/test-readline.js index b336996cd2e53e..77799fc14cf75f 100644 --- a/test/parallel/test-readline.js +++ b/test/parallel/test-readline.js @@ -142,7 +142,7 @@ common.skipIfDumbTerminal(); 'hop/zoo', '/zoo', 'zoo', - '' + '', ].forEach(function(expectedLine) { rl.write.apply(rl, key.xterm.metad); assert.strictEqual(rl.cursor, 0); diff --git a/test/parallel/test-repl-autocomplete.js b/test/parallel/test-repl-autocomplete.js new file mode 100644 index 00000000000000..b107053183080a --- /dev/null +++ b/test/parallel/test-repl-autocomplete.js @@ -0,0 +1,218 @@ +'use strict'; + +// Flags: --expose-internals + +const common = require('../common'); +const stream = require('stream'); +const REPL = require('internal/repl'); +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const { inspect } = require('util'); + +common.skipIfDumbTerminal(); + +const tmpdir = require('../common/tmpdir'); +tmpdir.refresh(); + +process.throwDeprecation = true; + +const defaultHistoryPath = path.join(tmpdir.path, '.node_repl_history'); + +// Create an input stream specialized for testing an array of actions +class ActionStream extends stream.Stream { + run(data) { + const _iter = data[Symbol.iterator](); + const doAction = () => { + const next = _iter.next(); + if (next.done) { + // Close the repl. Note that it must have a clean prompt to do so. + this.emit('keypress', '', { ctrl: true, name: 'd' }); + return; + } + const action = next.value; + + if (typeof action === 'object') { + this.emit('keypress', '', action); + } else { + this.emit('data', `${action}`); + } + setImmediate(doAction); + }; + doAction(); + } + resume() {} + pause() {} +} +ActionStream.prototype.readable = true; + +// Mock keys +const ENTER = { name: 'enter' }; +const UP = { name: 'up' }; +const DOWN = { name: 'down' }; +const LEFT = { name: 'left' }; +const RIGHT = { name: 'right' }; +const BACKSPACE = { name: 'backspace' }; +const TABULATION = { name: 'tab' }; +const WORD_LEFT = { name: 'left', ctrl: true }; +const WORD_RIGHT = { name: 'right', ctrl: true }; +const GO_TO_END = { name: 'end' }; +const SIGINT = { name: 'c', ctrl: true }; +const ESCAPE = { name: 'escape', meta: true }; + +const prompt = '> '; + +const tests = [ + { + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + test: (function*() { + // Deleting Array iterator should not break history feature. + // + // Using a generator function instead of an object to allow the test to + // keep iterating even when Array.prototype[Symbol.iterator] has been + // deleted. + yield 'const ArrayIteratorPrototype ='; + yield ' Object.getPrototypeOf(Array.prototype[Symbol.iterator]());'; + yield ENTER; + yield 'const {next} = ArrayIteratorPrototype;'; + yield ENTER; + yield 'const realArrayIterator = Array.prototype[Symbol.iterator];'; + yield ENTER; + yield 'delete Array.prototype[Symbol.iterator];'; + yield ENTER; + yield 'delete ArrayIteratorPrototype.next;'; + yield ENTER; + yield UP; + yield UP; + yield DOWN; + yield DOWN; + yield 'fu'; + yield 'n'; + yield RIGHT; + yield BACKSPACE; + yield LEFT; + yield LEFT; + yield 'A'; + yield BACKSPACE; + yield GO_TO_END; + yield BACKSPACE; + yield WORD_LEFT; + yield WORD_RIGHT; + yield ESCAPE; + yield ENTER; + yield 'require("./'; + yield TABULATION; + yield SIGINT; + yield 'import("./'; + yield TABULATION; + yield SIGINT; + yield 'Array.proto'; + yield RIGHT; + yield '.pu'; + yield ENTER; + yield 'ArrayIteratorPrototype.next = next;'; + yield ENTER; + yield 'Array.prototype[Symbol.iterator] = realArrayIterator;'; + yield ENTER; + })(), + expected: [], + clean: false + }, +]; +const numtests = tests.length; + +const runTestWrap = common.mustCall(runTest, numtests); + +function cleanupTmpFile() { + try { + // Write over the file, clearing any history + fs.writeFileSync(defaultHistoryPath, ''); + } catch (err) { + if (err.code === 'ENOENT') return true; + throw err; + } + return true; +} + +function runTest() { + const opts = tests.shift(); + if (!opts) return; // All done + + const { expected, skip } = opts; + + // Test unsupported on platform. + if (skip) { + setImmediate(runTestWrap, true); + return; + } + const lastChunks = []; + let i = 0; + + REPL.createInternalRepl(opts.env, { + input: new ActionStream(), + output: new stream.Writable({ + write(chunk, _, next) { + const output = chunk.toString(); + + if (!opts.showEscapeCodes && + (output[0] === '\x1B' || /^[\r\n]+$/.test(output))) { + return next(); + } + + lastChunks.push(output); + + if (expected.length && !opts.checkTotal) { + try { + assert.strictEqual(output, expected[i]); + } catch (e) { + console.error(`Failed test # ${numtests - tests.length}`); + console.error('Last outputs: ' + inspect(lastChunks, { + breakLength: 5, colors: true + })); + throw e; + } + // TODO(BridgeAR): Auto close on last chunk! + i++; + } + + next(); + } + }), + allowBlockingCompletions: true, + completer: opts.completer, + prompt, + useColors: false, + preview: opts.preview, + terminal: true + }, function(err, repl) { + if (err) { + console.error(`Failed test # ${numtests - tests.length}`); + throw err; + } + + repl.once('close', () => { + if (opts.clean) + cleanupTmpFile(); + + if (opts.checkTotal) { + assert.deepStrictEqual(lastChunks, expected); + } else if (expected.length !== i) { + console.error(tests[numtests - tests.length - 1]); + throw new Error(`Failed test # ${numtests - tests.length}`); + } + + setImmediate(runTestWrap, true); + }); + + if (opts.columns) { + Object.defineProperty(repl, 'columns', { + value: opts.columns, + enumerable: true + }); + } + repl.input.run(opts.test); + }); +} + +// run the tests +runTest(); diff --git a/test/parallel/test-repl-domain.js b/test/parallel/test-repl-domain.js index ce6da4bedb9e28..462677d114c13b 100644 --- a/test/parallel/test-repl-domain.js +++ b/test/parallel/test-repl-domain.js @@ -41,5 +41,5 @@ putIn.write = function(data) { putIn.run([ 'require("domain").create().on("error", function() { console.log("OK") })' + - '.run(function() { throw new Error("threw") })' + '.run(function() { throw new Error("threw") })', ]); diff --git a/test/parallel/test-repl-dynamic-import.js b/test/parallel/test-repl-dynamic-import.js index 1f7a01575aa89b..a043e31bf5b2d0 100644 --- a/test/parallel/test-repl-dynamic-import.js +++ b/test/parallel/test-repl-dynamic-import.js @@ -4,7 +4,7 @@ const assert = require('assert'); const child_process = require('child_process'); const child = child_process.spawn(process.execPath, [ '--interactive', - '--expose-gc' + '--expose-gc', ], { stdio: 'pipe' }); diff --git a/test/parallel/test-repl-editor.js b/test/parallel/test-repl-editor.js index 783d303b3aaf16..e260f5e89174a8 100644 --- a/test/parallel/test-repl-editor.js +++ b/test/parallel/test-repl-editor.js @@ -71,7 +71,7 @@ const tests = [ output: '', checkTerminalCodes: false, event: null, - } + }, ]; tests.forEach(run); @@ -121,7 +121,7 @@ const codeAlignmentTests = [ input: ' let i = 1;\n let j = 2\n', cursor: 2, line: ' ' - } + }, ]; codeAlignmentTests.forEach(testCodeAlignment); diff --git a/test/parallel/test-repl-envvars.js b/test/parallel/test-repl-envvars.js index 4fab77b7c09980..96cc47dd1674f3 100644 --- a/test/parallel/test-repl-envvars.js +++ b/test/parallel/test-repl-envvars.js @@ -32,7 +32,7 @@ const tests = [ { env: { NODE_NO_READLINE: '0' }, expected: { terminal: true, useColors: true } - } + }, ]; function run(test) { diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js index fa40ac624000f4..044c788a16af3f 100644 --- a/test/parallel/test-repl-history-navigation.js +++ b/test/parallel/test-repl-history-navigation.js @@ -116,7 +116,7 @@ const tests = [ 'const foo = true', ENTER, '555n + 111n', ENTER, '5 + 5', ENTER, - '55 - 13 === 42', ENTER + '55 - 13 === 42', ENTER, ], expected: [], clean: false @@ -127,7 +127,7 @@ const tests = [ preview: false, showEscapeCodes: true, test: [ - '55', UP, UP, UP, UP, UP, UP, ENTER + '55', UP, UP, UP, UP, UP, UP, ENTER, ], expected: [ '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', @@ -150,7 +150,7 @@ const tests = [ '\r\n', '55\n', '\x1B[1G', '\x1B[0J', '> ', '\x1B[3G', - '\r\n' + '\r\n', ], clean: true }, @@ -189,7 +189,7 @@ const tests = [ ENTER, `${' '.repeat(236)} fun`, ESCAPE, - ENTER + ENTER, ], expected: [], clean: false @@ -220,7 +220,7 @@ const tests = [ '2', BACKSPACE, '3', - SIGINT + SIGINT, ], // A = Cursor n up // B = Cursor n down @@ -315,7 +315,7 @@ const tests = [ '\r\n', '\x1B[1G', '\x1B[0J', '> ', '\x1B[3G', - '\r\n' + '\r\n', ], clean: true }, @@ -343,7 +343,7 @@ const tests = [ LEFT, ENTER, UP, - ENTER + ENTER, ], // C = Cursor n forward // D = Cursor n back @@ -420,7 +420,7 @@ const tests = [ 'n', '\r\n', '\x1B[1G', '\x1B[0J', '... ', '\x1B[5G', - '\r\n' + '\r\n', ], clean: true }, @@ -430,7 +430,7 @@ const tests = [ skip: !process.features.inspector, test: [ 'util.inspect.replDefaults.showHidden', - ENTER + ENTER, ], expected: [], clean: false @@ -447,7 +447,7 @@ const tests = [ ' = true', ENTER, '[ ]', - ENTER + ENTER, ], expected: [ prompt, @@ -487,7 +487,7 @@ const tests = [ WAIT, // The second call is not awaited. It won't trigger the preview. BACKSPACE, 's', - BACKSPACE + BACKSPACE, ], expected: [ prompt, @@ -504,7 +504,56 @@ const tests = [ prompt, ], clean: true - } + }, + { + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + test: (function*() { + // Deleting Array iterator should not break history feature. + // + // Using a generator function instead of an object to allow the test to + // keep iterating even when Array.prototype[Symbol.iterator] has been + // deleted. + yield 'const ArrayIteratorPrototype ='; + yield ' Object.getPrototypeOf(Array.prototype[Symbol.iterator]());'; + yield ENTER; + yield 'const {next} = ArrayIteratorPrototype;'; + yield ENTER; + yield 'const realArrayIterator = Array.prototype[Symbol.iterator];'; + yield ENTER; + yield 'delete Array.prototype[Symbol.iterator];'; + yield ENTER; + yield 'delete ArrayIteratorPrototype.next;'; + yield ENTER; + yield UP; + yield UP; + yield DOWN; + yield DOWN; + yield 'fu'; + yield 'n'; + yield RIGHT; + yield BACKSPACE; + yield LEFT; + yield LEFT; + yield 'A'; + yield BACKSPACE; + yield GO_TO_END; + yield BACKSPACE; + yield WORD_LEFT; + yield WORD_RIGHT; + yield ESCAPE; + yield ENTER; + yield 'Array.proto'; + yield RIGHT; + yield '.pu'; + yield ENTER; + yield 'ArrayIteratorPrototype.next = next;'; + yield ENTER; + yield 'Array.prototype[Symbol.iterator] = realArrayIterator;'; + yield ENTER; + })(), + expected: [], + clean: false + }, ]; const numtests = tests.length; diff --git a/test/parallel/test-repl-inspect-defaults.js b/test/parallel/test-repl-inspect-defaults.js index 9a033ce1f3dc13..84536eb773223b 100644 --- a/test/parallel/test-repl-inspect-defaults.js +++ b/test/parallel/test-repl-inspect-defaults.js @@ -18,7 +18,7 @@ child.on('exit', common.mustCall(() => { '[ 42, 23 ]', '1', '[ 42, ... 1 more item ]', - '' + '', ] ); })); diff --git a/test/parallel/test-repl-inspector.js b/test/parallel/test-repl-inspector.js index acec99208bcf02..1fff9031d500fd 100644 --- a/test/parallel/test-repl-inspector.js +++ b/test/parallel/test-repl-inspector.js @@ -28,7 +28,7 @@ putIn.run([ 'const session = new inspector.Session()', 'session.connect()', 'session.post("Runtime.evaluate", { expression: "1 + 1" }, console.log)', - 'session.disconnect()' + 'session.disconnect()', ]); assert(output.includes( diff --git a/test/parallel/test-repl-persistent-history.js b/test/parallel/test-repl-persistent-history.js index 705a7c7c236fb0..b0cddf0a2bd020 100644 --- a/test/parallel/test-repl-persistent-history.js +++ b/test/parallel/test-repl-persistent-history.js @@ -98,7 +98,7 @@ const tests = [ expected: [ prompt, '2', '1', '21\n', prompt, prompt, - "'", '4', '2', "'", "'42'\n", prompt, prompt + "'", '4', '2', "'", "'42'\n", prompt, prompt, ], clean: false }, @@ -128,7 +128,7 @@ const tests = [ `${prompt}'you look fabulous today'`, prompt, `${prompt}'you look fabulous today'`, - prompt + prompt, ] }, { @@ -169,7 +169,7 @@ const tests = [ env: {}, test: [UP], expected: [prompt, homedirErr, prompt, replDisabled, prompt] - } + }, ]; const numtests = tests.length; diff --git a/test/parallel/test-repl-preprocess-top-level-await.js b/test/parallel/test-repl-preprocess-top-level-await.js index 2a173b7339b8c7..93d3d79a87bb08 100644 --- a/test/parallel/test-repl-preprocess-top-level-await.js +++ b/test/parallel/test-repl-preprocess-top-level-await.js @@ -29,38 +29,97 @@ const testCases = [ [ 'await 0; return 0;', null ], [ 'var a = await 1', - '(async () => { void (a = await 1) })()' ], + 'var a; (async () => { void (a = await 1) })()' ], [ 'let a = await 1', - '(async () => { void (a = await 1) })()' ], + 'let a; (async () => { void (a = await 1) })()' ], [ 'const a = await 1', - '(async () => { void (a = await 1) })()' ], + 'let a; (async () => { void (a = await 1) })()' ], [ 'for (var i = 0; i < 1; ++i) { await i }', - '(async () => { for (void (i = 0); i < 1; ++i) { await i } })()' ], + 'var i; (async () => { for (void (i = 0); i < 1; ++i) { await i } })()' ], [ 'for (let i = 0; i < 1; ++i) { await i }', '(async () => { for (let i = 0; i < 1; ++i) { await i } })()' ], [ 'var {a} = {a:1}, [b] = [1], {c:{d}} = {c:{d: await 1}}', - '(async () => { void ( ({a} = {a:1}), ([b] = [1]), ' + + 'var a, b, d; (async () => { void ( ({a} = {a:1}), ([b] = [1]), ' + '({c:{d}} = {c:{d: await 1}})) })()' ], + [ 'let [a, b, c] = await ([1, 2, 3])', + 'let a, b, c; (async () => { void ([a, b, c] = await ([1, 2, 3])) })()'], + [ 'let {a,b,c} = await ({a: 1, b: 2, c: 3})', + 'let a, b, c; (async () => { void ({a,b,c} = ' + + 'await ({a: 1, b: 2, c: 3})) })()'], + [ 'let {a: [b]} = {a: [await 1]}, [{d}] = [{d: 3}]', + 'let b, d; (async () => { void ( ({a: [b]} = {a: [await 1]}),' + + ' ([{d}] = [{d: 3}])) })()'], /* eslint-disable no-template-curly-in-string */ [ 'console.log(`${(await { a: 1 }).a}`)', '(async () => { return (console.log(`${(await { a: 1 }).a}`)) })()' ], /* eslint-enable no-template-curly-in-string */ [ 'await 0; function foo() {}', - '(async () => { await 0; foo=function foo() {} })()' ], + 'var foo; (async () => { await 0; this.foo = foo; function foo() {} })()' ], [ 'await 0; class Foo {}', - '(async () => { await 0; Foo=class Foo {} })()' ], + 'let Foo; (async () => { await 0; Foo=class Foo {} })()' ], [ 'if (await true) { function foo() {} }', - '(async () => { if (await true) { foo=function foo() {} } })()' ], + 'var foo; (async () => { ' + + 'if (await true) { this.foo = foo; function foo() {} } })()' ], [ 'if (await true) { class Foo{} }', '(async () => { if (await true) { class Foo{} } })()' ], [ 'if (await true) { var a = 1; }', - '(async () => { if (await true) { void (a = 1); } })()' ], + 'var a; (async () => { if (await true) { void (a = 1); } })()' ], [ 'if (await true) { let a = 1; }', '(async () => { if (await true) { let a = 1; } })()' ], [ 'var a = await 1; let b = 2; const c = 3;', - '(async () => { void (a = await 1); void (b = 2); void (c = 3); })()' ], + 'var a; let b; let c; (async () => { void (a = await 1); void (b = 2);' + + ' void (c = 3); })()' ], [ 'let o = await 1, p', - '(async () => { void ( (o = await 1), (p=undefined)) })()' ] + 'let o, p; (async () => { void ( (o = await 1), (p=undefined)) })()' ], + [ 'await (async () => { let p = await 1; return p; })()', + '(async () => { return (await (async () => ' + + '{ let p = await 1; return p; })()) })()' ], + [ '{ let p = await 1; }', + '(async () => { { let p = await 1; } })()' ], + [ 'var p = await 1', + 'var p; (async () => { void (p = await 1) })()' ], + [ 'await (async () => { var p = await 1; return p; })()', + '(async () => { return (await (async () => ' + + '{ var p = await 1; return p; })()) })()' ], + [ '{ var p = await 1; }', + 'var p; (async () => { { void (p = await 1); } })()' ], + [ 'for await (var i of asyncIterable) { i; }', + 'var i; (async () => { for await (i of asyncIterable) { i; } })()'], + [ 'for await (var [i] of asyncIterable) { i; }', + 'var i; (async () => { for await ([i] of asyncIterable) { i; } })()'], + [ 'for await (var {i} of asyncIterable) { i; }', + 'var i; (async () => { for await ({i} of asyncIterable) { i; } })()'], + [ 'for await (var [{i}, [j]] of asyncIterable) { i; }', + 'var i, j; (async () => { for await ([{i}, [j]] of asyncIterable)' + + ' { i; } })()'], + [ 'for await (let i of asyncIterable) { i; }', + '(async () => { for await (let i of asyncIterable) { i; } })()'], + [ 'for await (const i of asyncIterable) { i; }', + '(async () => { for await (const i of asyncIterable) { i; } })()'], + [ 'for (var i of [1,2,3]) { await 1; }', + 'var i; (async () => { for (i of [1,2,3]) { await 1; } })()'], + [ 'for (var [i] of [[1], [2]]) { await 1; }', + 'var i; (async () => { for ([i] of [[1], [2]]) { await 1; } })()'], + [ 'for (var {i} of [{i: 1}, {i: 2}]) { await 1; }', + 'var i; (async () => { for ({i} of [{i: 1}, {i: 2}]) { await 1; } })()'], + [ 'for (var [{i}, [j]] of [[{i: 1}, [2]]]) { await 1; }', + 'var i, j; (async () => { for ([{i}, [j]] of [[{i: 1}, [2]]])' + + ' { await 1; } })()'], + [ 'for (let i of [1,2,3]) { await 1; }', + '(async () => { for (let i of [1,2,3]) { await 1; } })()'], + [ 'for (const i of [1,2,3]) { await 1; }', + '(async () => { for (const i of [1,2,3]) { await 1; } })()'], + [ 'for (var i in {x:1}) { await 1 }', + 'var i; (async () => { for (i in {x:1}) { await 1 } })()'], + [ 'for (var [a,b] in {xy:1}) { await 1 }', + 'var a, b; (async () => { for ([a,b] in {xy:1}) { await 1 } })()'], + [ 'for (let i in {x:1}) { await 1 }', + '(async () => { for (let i in {x:1}) { await 1 } })()'], + [ 'for (const i in {x:1}) { await 1 }', + '(async () => { for (const i in {x:1}) { await 1 } })()'], + [ 'var x = await foo(); async function foo() { return Promise.resolve(1);}', + 'var x; var foo; (async () => { void (x = await foo()); this.foo = foo; ' + + 'async function foo() { return Promise.resolve(1);} })()'], ]; for (const [input, expected] of testCases) { diff --git a/test/parallel/test-repl-pretty-custom-stack.js b/test/parallel/test-repl-pretty-custom-stack.js index d04a394a2e249e..aef34f1b4f6329 100644 --- a/test/parallel/test-repl-pretty-custom-stack.js +++ b/test/parallel/test-repl-pretty-custom-stack.js @@ -68,7 +68,7 @@ const tests = [ { command: '(function() { throw new Error(\'Whoops!\'); })()', expected: 'Uncaught Error: Whoops!--->\nREPL5:*:*\n' - } + }, ]; tests.forEach(run); diff --git a/test/parallel/test-repl-pretty-stack.js b/test/parallel/test-repl-pretty-stack.js index 8ab3fef2aaa033..c785bf75a15ba6 100644 --- a/test/parallel/test-repl-pretty-stack.js +++ b/test/parallel/test-repl-pretty-stack.js @@ -70,7 +70,7 @@ const tests = [ { command: '(function() { throw new Error(\'Whoops!\'); })()', expected: 'Uncaught Error: Whoops!\n at REPL7:*:*\n' - } + }, ]; tests.forEach(run); diff --git a/test/parallel/test-repl-preview.js b/test/parallel/test-repl-preview.js index b0159bfd646a82..620f41296e91f0 100644 --- a/test/parallel/test-repl-preview.js +++ b/test/parallel/test-repl-preview.js @@ -77,7 +77,7 @@ async function tests(options) { repl.inputStream.run([ 'function foo(x) { return x; }', 'function koo() { console.log("abc"); }', - 'a = undefined;' + 'a = undefined;', ]); const testCases = [{ @@ -86,7 +86,7 @@ async function tests(options) { preview: [ 'foo', '\x1B[90m[Function: foo]\x1B[39m\x1B[11G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[36m[Function: foo]\x1B[39m' + '\x1B[36m[Function: foo]\x1B[39m', ] }, { input: 'koo', @@ -98,7 +98,7 @@ async function tests(options) { '\x1B[90m[Function: koo]\x1B[39m\x1B[10G\x1B[1A\x1B[1B\x1B[2K\x1B[1A' + '\x1B[0Ko', '\x1B[90m[Function: koo]\x1B[39m\x1B[11G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[36m[Function: koo]\x1B[39m' + '\x1B[36m[Function: koo]\x1B[39m', ] }, { input: 'a', @@ -112,7 +112,7 @@ async function tests(options) { '\x1B[90m1\x1B[39m\x1B[22G\x1B[1A\x1B[1B\x1B[2K\x1B[1A ', '\x1B[90m1\x1B[39m\x1B[23G\x1B[1A\x1B[1B\x1B[2K\x1B[1A=== 1', '\x1B[90mtrue\x1B[39m\x1B[28G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33mtrue\x1B[39m' + '\x1B[33mtrue\x1B[39m', ] }, { input: "{ b: 1 }['b'] === 1;", @@ -123,14 +123,14 @@ async function tests(options) { '\x1B[90m1\x1B[39m\x1B[22G\x1B[1A\x1B[1B\x1B[2K\x1B[1A=== 1', '\x1B[90mtrue\x1B[39m\x1B[27G\x1B[1A\x1B[1B\x1B[2K\x1B[1A;', '\x1B[90mfalse\x1B[39m\x1B[28G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33mfalse\x1B[39m' + '\x1B[33mfalse\x1B[39m', ] }, { input: '{ a: true }', noPreview: '{ a: \x1B[33mtrue\x1B[39m }', preview: [ '{ a: tru\x1B[90me\x1B[39m\x1B[16G\x1B[0Ke }\r', - '{ a: \x1B[33mtrue\x1B[39m }' + '{ a: \x1B[33mtrue\x1B[39m }', ] }, { input: '{ a: true };', @@ -138,7 +138,7 @@ async function tests(options) { preview: [ '{ a: tru\x1B[90me\x1B[39m\x1B[16G\x1B[0Ke };', '\x1B[90mtrue\x1B[39m\x1B[20G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33mtrue\x1B[39m' + '\x1B[33mtrue\x1B[39m', ] }, { input: ' \t { a: true};', @@ -147,7 +147,7 @@ async function tests(options) { ' { a: tru\x1B[90me\x1B[39m\x1B[18G\x1B[0Ke}', '\x1B[90m{ a: true }\x1B[39m\x1B[20G\x1B[1A\x1B[1B\x1B[2K\x1B[1A;', '\x1B[90mtrue\x1B[39m\x1B[21G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33mtrue\x1B[39m' + '\x1B[33mtrue\x1B[39m', ] }, { input: '1n + 2n', @@ -156,7 +156,7 @@ async function tests(options) { '1n + 2', '\x1B[90mType[39m\x1B[14G\x1B[1A\x1B[1B\x1B[2K\x1B[1An', '\x1B[90m3n\x1B[39m\x1B[15G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33m3n\x1B[39m' + '\x1B[33m3n\x1B[39m', ] }, { input: '{};1', @@ -164,7 +164,7 @@ async function tests(options) { preview: [ '{};1', '\x1B[90m1\x1B[39m\x1B[12G\x1B[1A\x1B[1B\x1B[2K\x1B[1A\r', - '\x1B[33m1\x1B[39m' + '\x1B[33m1\x1B[39m', ] }]; diff --git a/test/parallel/test-repl-programmatic-history.js b/test/parallel/test-repl-programmatic-history.js index 0eccea655263cd..e2ad2cc66fd44d 100644 --- a/test/parallel/test-repl-programmatic-history.js +++ b/test/parallel/test-repl-programmatic-history.js @@ -98,7 +98,7 @@ const tests = [ // TODO(BridgeAR): The line is refreshed too many times. The double prompt // is redundant and can be optimized away. '2', '1', '21\n', prompt, prompt, - "'", '4', '2', "'", "'42'\n", prompt, prompt + "'", '4', '2', "'", "'42'\n", prompt, prompt, ], clean: false }, @@ -112,7 +112,7 @@ const tests = [ prompt, `${prompt}21`, '21\n', - prompt + prompt, ] }, { @@ -124,7 +124,7 @@ const tests = [ `${prompt}'you look fabulous today'`, prompt, `${prompt}'you look fabulous today'`, - prompt + prompt, ] }, { @@ -165,7 +165,7 @@ const tests = [ env: {}, test: [UP], expected: [prompt, homedirErr, prompt, replDisabled, prompt] - } + }, ]; const numtests = tests.length; diff --git a/test/parallel/test-repl-reverse-search.js b/test/parallel/test-repl-reverse-search.js index 5027bd7da497fe..5165dc2820d2d6 100644 --- a/test/parallel/test-repl-reverse-search.js +++ b/test/parallel/test-repl-reverse-search.js @@ -71,7 +71,7 @@ const tests = [ 'ab = "aaaa"', ENTER, '555 - 909', ENTER, '{key : {key2 :[] }}', ENTER, - 'Array(100).fill(1)', ENTER + 'Array(100).fill(1)', ENTER, ], expected: [], clean: false @@ -99,7 +99,7 @@ const tests = [ SEARCH_BACKWARDS, // 15 SEARCH_FORWARDS, ESCAPE, // 17 - ENTER + ENTER, ], // A = Cursor n up // B = Cursor n down @@ -179,7 +179,7 @@ const tests = [ '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', - '\r\n' + '\r\n', ], clean: false }, @@ -207,7 +207,7 @@ const tests = [ UP, // 15 DOWN, SEARCH_FORWARDS, // 17 - '\n' + '\n', ], expected: [ '\x1B[1G', '\x1B[0J', @@ -262,10 +262,10 @@ const tests = [ '-1\n', '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', - '\r\n' + '\r\n', ], clean: false - } + }, ]; const numtests = tests.length; diff --git a/test/parallel/test-repl-save-load.js b/test/parallel/test-repl-save-load.js index 9807365a411c4a..7fe535f6431adf 100644 --- a/test/parallel/test-repl-save-load.js +++ b/test/parallel/test-repl-save-load.js @@ -46,7 +46,7 @@ testMe._domain.on('error', function(reason) { const testFile = [ 'let inner = (function() {', ' return {one:1};', - '})()' + '})()', ]; const saveFileName = join(tmpdir.path, 'test.save.js'); @@ -121,7 +121,7 @@ putIn.run([`.save ${invalidFileName}`]); const cmds = [ 'function testSave() {', 'return "saved";', - '}' + '}', ]; const putIn = new ArrayStream(); const replServer = repl.start({ terminal: true, stream: putIn }); diff --git a/test/parallel/test-repl-tab-complete-import.js b/test/parallel/test-repl-tab-complete-import.js new file mode 100644 index 00000000000000..414b5cc4eac103 --- /dev/null +++ b/test/parallel/test-repl-tab-complete-import.js @@ -0,0 +1,158 @@ +'use strict'; + +const common = require('../common'); +const ArrayStream = require('../common/arraystream'); +const fixtures = require('../common/fixtures'); +const assert = require('assert'); +const { builtinModules } = require('module'); +const publicModules = builtinModules.filter( + (lib) => !lib.startsWith('_') && !lib.includes('/'), +); + +if (!common.isMainThread) + common.skip('process.chdir is not available in Workers'); + +// We have to change the directory to ../fixtures before requiring repl +// in order to make the tests for completion of node_modules work properly +// since repl modifies module.paths. +process.chdir(fixtures.fixturesDir); + +const repl = require('repl'); + +const putIn = new ArrayStream(); +const testMe = repl.start({ + prompt: '', + input: putIn, + output: process.stdout, + allowBlockingCompletions: true +}); + +// Some errors are passed to the domain, but do not callback +testMe._domain.on('error', assert.ifError); + +// Tab complete provides built in libs for import() +testMe.complete('import(\'', common.mustCall((error, data) => { + assert.strictEqual(error, null); + publicModules.forEach((lib) => { + assert( + data[0].includes(lib) && data[0].includes(`node:${lib}`), + `${lib} not found`, + ); + }); + const newModule = 'foobar'; + assert(!builtinModules.includes(newModule)); + repl.builtinModules.push(newModule); + testMe.complete('import(\'', common.mustCall((_, [modules]) => { + assert.strictEqual(data[0].length + 1, modules.length); + assert(modules.includes(newModule) && + !modules.includes(`node:${newModule}`)); + })); +})); + +testMe.complete("import\t( 'n", common.mustCall((error, data) => { + assert.strictEqual(error, null); + assert.strictEqual(data.length, 2); + assert.strictEqual(data[1], 'n'); + const completions = data[0]; + // import(...) completions include `node:` URL modules: + publicModules.forEach((lib, index) => + assert.strictEqual(completions[index], `node:${lib}`)); + assert.strictEqual(completions[publicModules.length], ''); + // There is only one Node.js module that starts with n: + assert.strictEqual(completions[publicModules.length + 1], 'net'); + assert.strictEqual(completions[publicModules.length + 2], ''); + // It's possible to pick up non-core modules too + completions.slice(publicModules.length + 3).forEach((completion) => { + assert.match(completion, /^n/); + }); +})); + +{ + const expected = ['@nodejsscope', '@nodejsscope/']; + // Import calls should handle all types of quotation marks. + for (const quotationMark of ["'", '"', '`']) { + putIn.run(['.clear']); + testMe.complete('import(`@nodejs', common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.deepStrictEqual(data, [expected, '@nodejs']); + })); + + putIn.run(['.clear']); + // Completions should not be greedy in case the quotation ends. + const input = `import(${quotationMark}@nodejsscope${quotationMark}`; + testMe.complete(input, common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.deepStrictEqual(data, [[], undefined]); + })); + } +} + +{ + putIn.run(['.clear']); + // Completions should find modules and handle whitespace after the opening + // bracket. + testMe.complete('import \t("no_ind', common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.deepStrictEqual(data, [['no_index', 'no_index/'], 'no_ind']); + })); +} + +// Test tab completion for import() relative to the current directory +{ + putIn.run(['.clear']); + + const cwd = process.cwd(); + process.chdir(__dirname); + + ['import(\'.', 'import(".'].forEach((input) => { + testMe.complete(input, common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.strictEqual(data.length, 2); + assert.strictEqual(data[1], '.'); + assert.strictEqual(data[0].length, 2); + assert.ok(data[0].includes('./')); + assert.ok(data[0].includes('../')); + })); + }); + + ['import(\'..', 'import("..'].forEach((input) => { + testMe.complete(input, common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.deepStrictEqual(data, [['../'], '..']); + })); + }); + + ['./', './test-'].forEach((path) => { + [`import('${path}`, `import("${path}`].forEach((input) => { + testMe.complete(input, common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.strictEqual(data.length, 2); + assert.strictEqual(data[1], path); + assert.ok(data[0].includes('./test-repl-tab-complete.js')); + })); + }); + }); + + ['../parallel/', '../parallel/test-'].forEach((path) => { + [`import('${path}`, `import("${path}`].forEach((input) => { + testMe.complete(input, common.mustCall((err, data) => { + assert.strictEqual(err, null); + assert.strictEqual(data.length, 2); + assert.strictEqual(data[1], path); + assert.ok(data[0].includes('../parallel/test-repl-tab-complete.js')); + })); + }); + }); + + { + const path = '../fixtures/repl-folder-extensions/f'; + testMe.complete(`import('${path}`, common.mustSucceed((data) => { + assert.strictEqual(data.length, 2); + assert.strictEqual(data[1], path); + assert.ok(data[0].includes( + '../fixtures/repl-folder-extensions/foo.js/')); + })); + } + + process.chdir(cwd); +} diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index bfcf810ddd6125..9597c2a3480f33 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -31,6 +31,10 @@ const assert = require('assert'); const path = require('path'); const fixtures = require('../common/fixtures'); const { builtinModules } = require('module'); +const publicModules = builtinModules.filter( + (lib) => !lib.startsWith('_') && !lib.includes('/'), +); + const hasInspector = process.features.inspector; if (!common.isMainThread) @@ -64,7 +68,7 @@ testMe._domain.on('error', assert.ifError); // Tab Complete will not break in an object literal putIn.run([ 'var inner = {', - 'one:1' + 'one:1', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -97,7 +101,7 @@ putIn.run(['.clear']); putIn.run([ 'var inner = ( true ', '?', - '{one: 1} : ' + '{one: 1} : ', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -106,7 +110,7 @@ putIn.run(['.clear']); // Tab Complete will return a simple local variable putIn.run([ 'var top = function() {', - 'var inner = {one:1};' + 'var inner = {one:1};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -122,7 +126,7 @@ putIn.run([ 'var top = function() {', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -134,7 +138,7 @@ putIn.run([ 'var top = function(one, two) {', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -147,7 +151,7 @@ putIn.run([ '(function test () {', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -160,7 +164,7 @@ putIn.run([ ' one, two) {', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -173,7 +177,7 @@ putIn.run([ '{', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -187,7 +191,7 @@ putIn.run([ '{', 'var inner = {', ' one:1', - '};' + '};', ]); testMe.complete('inner.o', getNoResultsFunction()); @@ -195,7 +199,7 @@ putIn.run(['.clear']); // Make sure tab completion works on non-Objects putIn.run([ - 'var str = "test";' + 'var str = "test";', ]); testMe.complete('str.len', common.mustCall(function(error, data) { assert.deepStrictEqual(data, [['str.length'], 'str.len']); @@ -228,7 +232,7 @@ putIn.run([ 'x.b = 2;', 'var y = Object.create(x);', 'y.a = 3;', - 'y.c = 4;' + 'y.c = 4;', ]); testMe.complete('y.', common.mustCall(function(error, data) { assert.deepStrictEqual(data, [['y.b', '', 'y.a', 'y.c'], 'y.']); @@ -239,9 +243,9 @@ putIn.run(['.clear']); testMe.complete('require(\'', common.mustCall(function(error, data) { assert.strictEqual(error, null); - builtinModules.forEach((lib) => { + publicModules.forEach((lib) => { assert( - data[0].includes(lib) || lib.startsWith('_') || lib.includes('/'), + data[0].includes(lib) && data[0].includes(`node:${lib}`), `${lib} not found` ); }); @@ -258,11 +262,15 @@ testMe.complete("require\t( 'n", common.mustCall(function(error, data) { assert.strictEqual(error, null); assert.strictEqual(data.length, 2); assert.strictEqual(data[1], 'n'); + // require(...) completions include `node:`-prefixed modules: + publicModules.forEach((lib, index) => + assert.strictEqual(data[0][index], `node:${lib}`)); + assert.strictEqual(data[0][publicModules.length], ''); // There is only one Node.js module that starts with n: - assert.strictEqual(data[0][0], 'net'); - assert.strictEqual(data[0][1], ''); + assert.strictEqual(data[0][publicModules.length + 1], 'net'); + assert.strictEqual(data[0][publicModules.length + 2], ''); // It's possible to pick up non-core modules too - data[0].slice(2).forEach((completion) => { + data[0].slice(publicModules.length + 3).forEach((completion) => { assert.match(completion, /^n/); }); })); @@ -360,7 +368,7 @@ testMe.complete("require\t( 'n", common.mustCall(function(error, data) { putIn.run(['.clear']); putIn.run([ - 'var custom = "test";' + 'var custom = "test";', ]); testMe.complete('cus', common.mustCall(function(error, data) { assert.deepStrictEqual(data, [['custom'], 'cus']); @@ -371,7 +379,7 @@ testMe.complete('cus', common.mustCall(function(error, data) { putIn.run(['.clear']); putIn.run([ - 'var proxy = new Proxy({}, {ownKeys: () => { throw new Error(); }});' + 'var proxy = new Proxy({}, {ownKeys: () => { throw new Error(); }});', ]); testMe.complete('proxy.', common.mustCall(function(error, data) { @@ -435,6 +443,18 @@ testMe.complete('obj.', common.mustCall((error, data) => { assert(data[0].includes('obj.key')); })); +// Make sure tab completion does not include __defineSetter__ and friends. +putIn.run(['.clear']); + +putIn.run(['var obj = {};']); +testMe.complete('obj.', common.mustCall(function(error, data) { + assert.strictEqual(data[0].includes('obj.__defineGetter__'), false); + assert.strictEqual(data[0].includes('obj.__defineSetter__'), false); + assert.strictEqual(data[0].includes('obj.__lookupGetter__'), false); + assert.strictEqual(data[0].includes('obj.__lookupSetter__'), false); + assert.strictEqual(data[0].includes('obj.__proto__'), true); +})); + // Tab completion for files/directories { putIn.run(['.clear']); @@ -507,7 +527,7 @@ testMe.complete('obj.', common.mustCall((error, data) => { putIn.run([ 'var ele = [];', 'for (let i = 0; i < 1e6 + 1; i++) ele[i] = 0;', - 'ele.biu = 1;' + 'ele.biu = 1;', ]); } else if (type === Buffer) { putIn.run(['var ele = Buffer.alloc(1e6 + 1); ele.biu = 1;']); @@ -575,7 +595,7 @@ const testCustomCompleterSyncMode = repl.start({ testCustomCompleterSyncMode.complete('', common.mustCall((error, data) => { assert.deepStrictEqual(data, [ customCompletions, - '' + '', ]); })); @@ -583,7 +603,7 @@ testCustomCompleterSyncMode.complete('', common.mustCall((error, data) => { testCustomCompleterSyncMode.complete('a', common.mustCall((error, data) => { assert.deepStrictEqual(data, [ 'aaa aa1 aa2'.split(' '), - 'a' + 'a', ]); })); @@ -605,7 +625,7 @@ const testCustomCompleterAsyncMode = repl.start({ testCustomCompleterAsyncMode.complete('', common.mustCall((error, data) => { assert.deepStrictEqual(data, [ customCompletions, - '' + '', ]); })); @@ -613,7 +633,7 @@ testCustomCompleterAsyncMode.complete('', common.mustCall((error, data) => { testCustomCompleterAsyncMode.complete('a', common.mustCall((error, data) => { assert.deepStrictEqual(data, [ 'aaa aa1 aa2'.split(' '), - 'a' + 'a', ]); })); diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js index 018d8707009ad9..c3f016bf703036 100644 --- a/test/parallel/test-repl-top-level-await.js +++ b/test/parallel/test-repl-top-level-await.js @@ -81,7 +81,7 @@ async function ordinaryTests() { // https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-top-level-await.js?rcl=5d0ea979f0ba87655b7ef0e03b58fa3c04986ba6 putIn.run([ 'function foo(x) { return x; }', - 'function koo() { return Promise.resolve(4); }' + 'function koo() { return Promise.resolve(4); }', ]); const testCases = [ ['await Promise.resolve(0)', '0'], @@ -139,9 +139,49 @@ async function ordinaryTests() { '1', '2', '3', - 'undefined' - ] - ] + 'undefined', + ], + ], + ['await Promise..resolve()', + [ + 'await Promise..resolve()\r', + 'Uncaught SyntaxError: ', + 'await Promise..resolve()', + ' ^', + '', + 'Unexpected token \'.\'', + ], + ], + ['for (const x of [1,2,3]) {\nawait x\n}', [ + 'for (const x of [1,2,3]) {\r', + '... await x\r', + '... }\r', + 'undefined', + ]], + ['for (const x of [1,2,3]) {\nawait x;\n}', [ + 'for (const x of [1,2,3]) {\r', + '... await x;\r', + '... }\r', + 'undefined', + ]], + ['for await (const x of [1,2,3]) {\nconsole.log(x)\n}', [ + 'for await (const x of [1,2,3]) {\r', + '... console.log(x)\r', + '... }\r', + '1', + '2', + '3', + 'undefined', + ]], + ['for await (const x of [1,2,3]) {\nconsole.log(x);\n}', [ + 'for await (const x of [1,2,3]) {\r', + '... console.log(x);\r', + '... }\r', + '1', + '2', + '3', + 'undefined', + ]], ]; for (const [input, expected = [`${input}\r`], options = {}] of testCases) { @@ -164,24 +204,18 @@ async function ordinaryTests() { } async function ctrlCTest() { - putIn.run([ - `const timeout = (msecs) => new Promise((resolve) => { - setTimeout(resolve, msecs).unref(); - });` - ]); - console.log('Testing Ctrl+C'); assert.deepStrictEqual(await runAndWait([ - 'await timeout(100000)', - { ctrl: true, name: 'c' } + 'await new Promise(() => {})', + { ctrl: true, name: 'c' }, ]), [ - 'await timeout(100000)\r', + 'await new Promise(() => {})\r', 'Uncaught:', '[Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + 'Script execution was interrupted by `SIGINT`] {', " code: 'ERR_SCRIPT_EXECUTION_INTERRUPTED'", '}', - PROMPT + PROMPT, ]); } @@ -190,4 +224,4 @@ async function main() { await ctrlCTest(); } -main(); +main().then(common.mustCall()); diff --git a/test/parallel/test-repl-uncaught-exception-standalone.js b/test/parallel/test-repl-uncaught-exception-standalone.js index e7371f9f7c617f..8edf47b2436895 100644 --- a/test/parallel/test-repl-uncaught-exception-standalone.js +++ b/test/parallel/test-repl-uncaught-exception-standalone.js @@ -24,7 +24,7 @@ child.on('exit', common.mustCall(() => { 'undefined', // x\n '> Foobar', - '> ' + '> ', ] ); })); diff --git a/test/parallel/test-repl-uncaught-exception.js b/test/parallel/test-repl-uncaught-exception.js index 28e62dff22bf3a..9d443b4e2ca553 100644 --- a/test/parallel/test-repl-uncaught-exception.js +++ b/test/parallel/test-repl-uncaught-exception.js @@ -64,7 +64,7 @@ const tests = [ command: 'console.log("Baz");' + 'process.on("uncaughtException", () => console.log("Foobar"));\n', expected: /^Baz\nUncaught:\nTypeError \[ERR_INVALID_REPL_INPUT]:.*uncaughtException/ - } + }, ]; process.on('exit', () => { diff --git a/test/parallel/test-repl-underscore.js b/test/parallel/test-repl-underscore.js index c05c387471b59f..1802f8b8ff1e86 100644 --- a/test/parallel/test-repl-underscore.js +++ b/test/parallel/test-repl-underscore.js @@ -41,7 +41,7 @@ function testSloppyMode() { '30', '30', '40', - '30' + '30', ]); } @@ -74,7 +74,7 @@ function testStrictMode() { '30', 'undefined', 'undefined', - '30' + '30', ]); } @@ -107,7 +107,7 @@ function testMagicMode() { '30', 'undefined', '50', - '30' + '30', ]); } @@ -129,7 +129,7 @@ function testResetContext() { 'Clearing context...', '10', '20', - '20' + '20', ]); } @@ -216,7 +216,7 @@ function testError() { 'Expression assignment to _error now disabled.', '0', 'Uncaught Error: quux', - '0' + '0', ]); }); } diff --git a/test/parallel/test-repl-unsafe-array-iteration.js b/test/parallel/test-repl-unsafe-array-iteration.js new file mode 100644 index 00000000000000..3fc65f54cf1f37 --- /dev/null +++ b/test/parallel/test-repl-unsafe-array-iteration.js @@ -0,0 +1,68 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { spawn } = require('child_process'); + +const replProcess = spawn(process.argv0, ['--interactive'], { + stdio: ['pipe', 'pipe', 'inherit'], + windowsHide: true, +}); + +replProcess.on('error', common.mustNotCall()); + +const replReadyState = (async function* () { + let ready; + const SPACE = ' '.charCodeAt(); + const BRACKET = '>'.charCodeAt(); + const DOT = '.'.charCodeAt(); + replProcess.stdout.on('data', (data) => { + ready = data[data.length - 1] === SPACE && ( + data[data.length - 2] === BRACKET || ( + data[data.length - 2] === DOT && + data[data.length - 3] === DOT && + data[data.length - 4] === DOT + )); + }); + + const processCrashed = new Promise((resolve, reject) => + replProcess.on('exit', reject) + ); + while (true) { + await Promise.race([new Promise(setImmediate), processCrashed]); + if (ready) { + ready = false; + yield; + } + } +})(); +async function writeLn(data, expectedOutput) { + await replReadyState.next(); + if (expectedOutput) { + replProcess.stdout.once('data', common.mustCall((data) => + assert.match(data.toString('utf8'), expectedOutput) + )); + } + await new Promise((resolve, reject) => replProcess.stdin.write( + `${data}\n`, + (err) => (err ? reject(err) : resolve()) + )); +} + +async function main() { + await writeLn( + 'const ArrayIteratorPrototype =' + + ' Object.getPrototypeOf(Array.prototype[Symbol.iterator]());' + ); + await writeLn('delete Array.prototype[Symbol.iterator];'); + await writeLn('delete ArrayIteratorPrototype.next;'); + + await writeLn( + 'for(const x of [3, 2, 1]);', + /Uncaught TypeError: \[3,2,1\] is not iterable/ + ); + await writeLn('.exit'); + + assert(!replProcess.connected); +} + +main().then(common.mustCall()); diff --git a/test/parallel/test-repl-use-global.js b/test/parallel/test-repl-use-global.js index 4ac38304601c0d..3457d0c5ba7210 100644 --- a/test/parallel/test-repl-use-global.js +++ b/test/parallel/test-repl-use-global.js @@ -11,7 +11,7 @@ const assert = require('assert'); const globalTestCases = [ [false, 'undefined'], [true, '\'tacos\''], - [undefined, 'undefined'] + [undefined, 'undefined'], ]; const globalTest = (useGlobal, cb, output) => (err, repl) => { diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index e900f3ce15579a..bbb95f3fa39f68 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -120,14 +120,14 @@ const unixTests = [ { send: '{a:1}', expect: '{ a: 1 }' - } + }, ]; const strictModeTests = [ { send: 'ref = 1', expect: [/^Uncaught ReferenceError:\s/] - } + }, ]; const errorTests = [ @@ -242,7 +242,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -251,7 +251,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -260,7 +260,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -269,7 +269,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -278,7 +278,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -288,7 +288,7 @@ const errorTests = [ kArrow, '', 'Uncaught:', - /^SyntaxError: / + /^SyntaxError: /, ] }, // Named functions can be used: @@ -373,7 +373,7 @@ const errorTests = [ send: 'npm install foobar', expect: [ 'npm should be run outside of the Node.js REPL, in your normal shell.', - '(Press Ctrl+D to exit.)' + '(Press Ctrl+D to exit.)', ] }, { @@ -411,7 +411,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, // Do not fail when a String is created with line continuation @@ -454,7 +454,7 @@ const errorTests = [ /\.save/, '', 'Press Ctrl+C to abort current expression, Ctrl+D to exit the REPL', - /'thefourtheye'/ + /'thefourtheye'/, ] }, // Check for wrapped objects. @@ -468,7 +468,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -573,7 +573,7 @@ const errorTests = [ /^ at .*/, " code: 'MODULE_NOT_FOUND',", " requireStack: [ '' ]", - '}' + '}', ] }, // REPL should handle quotes within regexp literal in multiline mode @@ -605,7 +605,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, // Mitigate https://github.com/nodejs/node/issues/548 @@ -624,7 +624,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, // Avoid emitting stack trace @@ -634,7 +634,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, @@ -702,7 +702,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, // Bring back the repl to prompt @@ -716,7 +716,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -725,7 +725,7 @@ const errorTests = [ '... ... {', kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -734,7 +734,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -751,7 +751,7 @@ const errorTests = [ kSource, kArrow, '', - /^Uncaught SyntaxError: / + /^Uncaught SyntaxError: /, ] }, { @@ -813,9 +813,9 @@ const tcpTests = [ kArrow, '', 'Uncaught:', - /^SyntaxError: .* dynamic import/ + /^SyntaxError: .* dynamic import/, ] - } + }, ]; (async function() { @@ -871,7 +871,7 @@ function startTCPRepl() { return Promise.all([ new Promise((resolve) => resolveSocket = resolve), - new Promise((resolve) => resolveReplServer = resolve) + new Promise((resolve) => resolveReplServer = resolve), ]); } @@ -916,7 +916,7 @@ function startUnixRepl() { return Promise.all([ new Promise((resolve) => resolveSocket = resolve), - new Promise((resolve) => resolveReplServer = resolve) + new Promise((resolve) => resolveReplServer = resolve), ]); } diff --git a/test/parallel/test-require-extension-over-directory.js b/test/parallel/test-require-extension-over-directory.js index 92258761513919..d1f7407e3d0ebe 100644 --- a/test/parallel/test-require-extension-over-directory.js +++ b/test/parallel/test-require-extension-over-directory.js @@ -18,7 +18,7 @@ assert.strictEqual( const fakePath = [ fixtures.path('module-extension-over-directory', 'inner'), 'fake', - '..' + '..', ].join(path.sep); const fixturesRequireDir = require(fakePath); diff --git a/test/parallel/test-require-node-prefix.js b/test/parallel/test-require-node-prefix.js new file mode 100644 index 00000000000000..957cabf13aeb11 --- /dev/null +++ b/test/parallel/test-require-node-prefix.js @@ -0,0 +1,42 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const fs = require('fs'); + +const errUnknownBuiltinModuleRE = /^No such built-in module: /u; + +// For direct use of require expressions inside of CJS modules, +// all kinds of specifiers should work without issue. +{ + assert.strictEqual(require('fs'), fs); + assert.strictEqual(require('node:fs'), fs); + + assert.throws( + () => require('node:unknown'), + { + code: 'ERR_UNKNOWN_BUILTIN_MODULE', + message: errUnknownBuiltinModuleRE, + }, + ); + + assert.throws( + () => require('node:internal/test/binding'), + { + code: 'ERR_UNKNOWN_BUILTIN_MODULE', + message: errUnknownBuiltinModuleRE, + }, + ); +} + +// `node:`-prefixed `require(...)` calls bypass the require cache: +{ + const fakeModule = {}; + + require.cache.fs = { exports: fakeModule }; + + assert.strictEqual(require('fs'), fakeModule); + assert.strictEqual(require('node:fs'), fs); + + delete require.cache.fs; +} diff --git a/test/parallel/test-resource-usage.js b/test/parallel/test-resource-usage.js index ff41452f4a7f3b..d46fe4aeb7acc1 100644 --- a/test/parallel/test-resource-usage.js +++ b/test/parallel/test-resource-usage.js @@ -19,7 +19,7 @@ const fields = [ 'ipcReceived', 'signalsCount', 'voluntaryContextSwitches', - 'involuntaryContextSwitches' + 'involuntaryContextSwitches', ]; assert.deepStrictEqual(Object.keys(rusage).sort(), fields.sort()); diff --git a/test/parallel/test-socketaddress.js b/test/parallel/test-socketaddress.js new file mode 100644 index 00000000000000..877f70793b1f87 --- /dev/null +++ b/test/parallel/test-socketaddress.js @@ -0,0 +1,113 @@ +'use strict'; + +const common = require('../common'); +const { + ok, + strictEqual, + throws, +} = require('assert'); +const { + SocketAddress, +} = require('net'); +const { + MessageChannel, +} = require('worker_threads'); + +{ + const sa = new SocketAddress(); + strictEqual(sa.address, '127.0.0.1'); + strictEqual(sa.port, 0); + strictEqual(sa.family, 'ipv4'); + strictEqual(sa.flowlabel, 0); + + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(({ data }) => { + ok(SocketAddress.isSocketAddress(data)); + + strictEqual(data.address, '127.0.0.1'); + strictEqual(data.port, 0); + strictEqual(data.family, 'ipv4'); + strictEqual(data.flowlabel, 0); + + mc.port1.close(); + }); + mc.port2.postMessage(sa); +} + +{ + const sa = new SocketAddress({}); + strictEqual(sa.address, '127.0.0.1'); + strictEqual(sa.port, 0); + strictEqual(sa.family, 'ipv4'); + strictEqual(sa.flowlabel, 0); +} + +{ + const sa = new SocketAddress({ + address: '123.123.123.123', + }); + strictEqual(sa.address, '123.123.123.123'); + strictEqual(sa.port, 0); + strictEqual(sa.family, 'ipv4'); + strictEqual(sa.flowlabel, 0); +} + +{ + const sa = new SocketAddress({ + address: '123.123.123.123', + port: 80 + }); + strictEqual(sa.address, '123.123.123.123'); + strictEqual(sa.port, 80); + strictEqual(sa.family, 'ipv4'); + strictEqual(sa.flowlabel, 0); +} + +{ + const sa = new SocketAddress({ + family: 'ipv6' + }); + strictEqual(sa.address, '::'); + strictEqual(sa.port, 0); + strictEqual(sa.family, 'ipv6'); + strictEqual(sa.flowlabel, 0); +} + +{ + const sa = new SocketAddress({ + family: 'ipv6', + flowlabel: 1, + }); + strictEqual(sa.address, '::'); + strictEqual(sa.port, 0); + strictEqual(sa.family, 'ipv6'); + strictEqual(sa.flowlabel, 1); +} + +[1, false, 'hello'].forEach((i) => { + throws(() => new SocketAddress(i), { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +[1, false, {}, [], 'test'].forEach((family) => { + throws(() => new SocketAddress({ family }), { + code: 'ERR_INVALID_ARG_VALUE' + }); +}); + +[1, false, {}, []].forEach((address) => { + throws(() => new SocketAddress({ address }), { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +[-1, false, {}, []].forEach((port) => { + throws(() => new SocketAddress({ port }), { + code: 'ERR_SOCKET_BAD_PORT' + }); +}); + +throws(() => new SocketAddress({ flowlabel: -1 }), { + code: 'ERR_OUT_OF_RANGE' +}); diff --git a/test/parallel/test-source-map-enable.js b/test/parallel/test-source-map-enable.js index 92dddc9dff64ca..eab718813fc379 100644 --- a/test/parallel/test-source-map-enable.js +++ b/test/parallel/test-source-map-enable.js @@ -23,7 +23,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/basic') + require.resolve('../fixtures/source-map/basic'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -38,7 +38,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/sigint') + require.resolve('../fixtures/source-map/sigint'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (!common.isWindows) { if (output.signal !== 'SIGINT') { @@ -55,7 +55,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/exit-1') + require.resolve('../fixtures/source-map/exit-1'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.stderr.toString(), ''); const sourceMap = getSourceMapFromCache('exit-1.js', coverageDirectory); @@ -67,7 +67,7 @@ function nextdir() { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ '--no-warnings', - require.resolve('../fixtures/source-map/esm-basic.mjs') + require.resolve('../fixtures/source-map/esm-basic.mjs'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.stderr.toString(), ''); const sourceMap = getSourceMapFromCache('esm-basic.mjs', coverageDirectory); @@ -78,7 +78,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/disk-relative-path') + require.resolve('../fixtures/source-map/disk-relative-path'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.status, 0); assert.strictEqual(output.stderr.toString(), ''); @@ -99,7 +99,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/inline-base64.js') + require.resolve('../fixtures/source-map/inline-base64.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.status, 0); assert.strictEqual(output.stderr.toString(), ''); @@ -120,7 +120,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/inline-base64-type-error.js') + require.resolve('../fixtures/source-map/inline-base64-type-error.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.status, 0); assert.strictEqual(output.stderr.toString(), ''); @@ -136,7 +136,7 @@ function nextdir() { { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/inline-base64-json-error.js') + require.resolve('../fixtures/source-map/inline-base64-json-error.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); assert.strictEqual(output.status, 0); assert.strictEqual(output.stderr.toString(), ''); @@ -152,7 +152,7 @@ function nextdir() { // is not set. { const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/uglify-throw.js') + require.resolve('../fixtures/source-map/uglify-throw.js'), ]); assert.strictEqual( output.stderr.toString().match(/.*uglify-throw-original\.js:5:9/), @@ -168,7 +168,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/uglify-throw.js') + require.resolve('../fixtures/source-map/uglify-throw.js'), ]); assert.match( output.stderr.toString(), @@ -185,7 +185,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/typescript-throw.js') + require.resolve('../fixtures/source-map/typescript-throw.js'), ]); assert.ok(output.stderr.toString().match(/.*typescript-throw\.ts:18:11/)); assert.ok(output.stderr.toString().match(/.*typescript-throw\.ts:24:1/)); @@ -195,7 +195,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/babel-throw.js') + require.resolve('../fixtures/source-map/babel-throw.js'), ]); assert.ok( output.stderr.toString().match(/.*babel-throw-original\.js:18:31/) @@ -206,7 +206,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/istanbul-throw.js') + require.resolve('../fixtures/source-map/istanbul-throw.js'), ]); assert.ok( output.stderr.toString().match(/.*istanbul-throw-original\.js:5:9/) @@ -220,7 +220,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/babel-esm.mjs') + require.resolve('../fixtures/source-map/babel-esm.mjs'), ]); assert.ok( output.stderr.toString().match(/.*babel-esm-original\.mjs:9:29/) @@ -231,7 +231,7 @@ function nextdir() { { const coverageDirectory = nextdir(); spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/inline-base64.js') + require.resolve('../fixtures/source-map/inline-base64.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); const sourceMap = getSourceMapFromCache( 'inline-base64.js', @@ -244,7 +244,7 @@ function nextdir() { { const coverageDirectory = nextdir(); spawnSync(process.execPath, [ - require.resolve('../fixtures/source-map/istanbul-throw.js') + require.resolve('../fixtures/source-map/istanbul-throw.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); const sourceMap = getSourceMapFromCache( 'istanbul-throw.js', @@ -261,7 +261,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/emptyStackError.js') + require.resolve('../fixtures/source-map/emptyStackError.js'), ]); assert.ok( @@ -276,7 +276,7 @@ function nextdir() { { const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/webpack.js') + require.resolve('../fixtures/source-map/webpack.js'), ]); // Error in original context of source content: assert.match( @@ -295,7 +295,7 @@ function nextdir() { const coverageDirectory = nextdir(); const output = spawnSync(process.execPath, [ '--enable-source-maps', - require.resolve('../fixtures/source-map/throw-on-require-entry.js') + require.resolve('../fixtures/source-map/throw-on-require-entry.js'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); const sourceMap = getSourceMapFromCache( 'throw-on-require.js', @@ -324,6 +324,25 @@ function nextdir() { assert.ok(sourceMap); } +// Does not throw TypeError when exception occurs as result of missing named +// export. +{ + const coverageDirectory = nextdir(); + const output = spawnSync(process.execPath, [ + '--enable-source-maps', + require.resolve('../fixtures/source-map/esm-export-missing.mjs'), + ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); + const sourceMap = getSourceMapFromCache( + 'esm-export-missing.mjs', + coverageDirectory + ); + // Module loader error displayed. + assert.match(output.stderr.toString(), + /does not provide an export named 'Something'/); + // Source map should have been serialized. + assert.ok(sourceMap); +} + function getSourceMapFromCache(fixtureFile, coverageDirectory) { const jsonFiles = fs.readdirSync(coverageDirectory); for (const jsonFile of jsonFiles) { diff --git a/test/parallel/test-stream-pipeline-process.js b/test/parallel/test-stream-pipeline-process.js index bd17b31eed4564..a535e7263ebf64 100644 --- a/test/parallel/test-stream-pipeline-process.js +++ b/test/parallel/test-stream-pipeline-process.js @@ -19,7 +19,7 @@ if (process.argv[2] === 'child') { '|', `"${process.execPath}"`, `"${__filename}"`, - 'child' + 'child', ].join(' '), common.mustSucceed((stdout) => { assert.strictEqual(stdout.split(os.EOL).shift().trim(), 'hello'); })); diff --git a/test/parallel/test-stream-pipeline.js b/test/parallel/test-stream-pipeline.js index 714a1945d78a7d..073a2993a78bac 100644 --- a/test/parallel/test-stream-pipeline.js +++ b/test/parallel/test-stream-pipeline.js @@ -21,7 +21,7 @@ const net = require('net'); const expected = [ Buffer.from('a'), Buffer.from('b'), - Buffer.from('c') + Buffer.from('c'), ]; const read = new Readable({ @@ -346,7 +346,7 @@ const net = require('net'); const expected = [ Buffer.from('hello'), - Buffer.from('world') + Buffer.from('world'), ]; const rs = new Readable({ @@ -1247,3 +1247,19 @@ const net = require('net'); () => common.mustNotCall(), ); } + +{ + const content = 'abc'; + pipeline(Buffer.from(content), PassThrough({ objectMode: true }), + common.mustSucceed(() => {})); + + let res = ''; + pipeline(Buffer.from(content), async function*(previous) { + for await (const val of previous) { + res += String.fromCharCode(val); + yield val; + } + }, common.mustSucceed(() => { + assert.strictEqual(res, content); + })); +} diff --git a/test/parallel/test-stream-readable-didRead.js b/test/parallel/test-stream-readable-didRead.js new file mode 100644 index 00000000000000..7508dd76899013 --- /dev/null +++ b/test/parallel/test-stream-readable-didRead.js @@ -0,0 +1,104 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const Readable = require('stream').Readable; + +function noop() {} + +function check(readable, data, fn) { + assert.strictEqual(readable.readableDidRead, false); + if (data === -1) { + readable.on('error', common.mustCall()); + readable.on('data', common.mustNotCall()); + readable.on('end', common.mustNotCall()); + } else { + readable.on('error', common.mustNotCall()); + if (data === -2) { + readable.on('end', common.mustNotCall()); + } else { + readable.on('end', common.mustCall()); + } + if (data > 0) { + readable.on('data', common.mustCallAtLeast(data)); + } else { + readable.on('data', common.mustNotCall()); + } + } + readable.on('close', common.mustCall()); + fn(); + setImmediate(() => { + assert.strictEqual(readable.readableDidRead, true); + }); +} + +{ + const readable = new Readable({ + read() { + this.push(null); + } + }); + check(readable, 0, () => { + readable.read(); + }); +} + +{ + const readable = new Readable({ + read() { + this.push(null); + } + }); + check(readable, 0, () => { + readable.resume(); + }); +} + +{ + const readable = new Readable({ + read() { + this.push(null); + } + }); + check(readable, -2, () => { + readable.destroy(); + }); +} + +{ + const readable = new Readable({ + read() { + this.push(null); + } + }); + + check(readable, -1, () => { + readable.destroy(new Error()); + }); +} + +{ + const readable = new Readable({ + read() { + this.push('data'); + this.push(null); + } + }); + + check(readable, 1, () => { + readable.on('data', noop); + }); +} + +{ + const readable = new Readable({ + read() { + this.push('data'); + this.push(null); + } + }); + + check(readable, 1, () => { + readable.on('data', noop); + readable.off('data', noop); + }); +} diff --git a/test/parallel/test-stream-writev.js b/test/parallel/test-stream-writev.js index 7aba543f0732f6..5a42411c6f3a93 100644 --- a/test/parallel/test-stream-writev.js +++ b/test/parallel/test-stream-writev.js @@ -71,13 +71,13 @@ function test(decode, uncork, multi, next) { { encoding: 'buffer', chunk: [10, 97, 110, 100, 32, 116, 104, 101, 110, 46, 46, 46] }, { encoding: 'buffer', - chunk: [250, 206, 190, 167, 222, 173, 190, 239, 222, 202, 251, 173] } + chunk: [250, 206, 190, 167, 222, 173, 190, 239, 222, 202, 251, 173] }, ] : [ { encoding: 'ascii', chunk: 'hello, ' }, { encoding: 'utf8', chunk: 'world' }, { encoding: 'buffer', chunk: [33] }, { encoding: 'latin1', chunk: '\nand then...' }, - { encoding: 'hex', chunk: 'facebea7deadbeefdecafbad' } + { encoding: 'hex', chunk: 'facebea7deadbeefdecafbad' }, ]; let actualChunks; diff --git a/test/parallel/test-stream2-objects.js b/test/parallel/test-stream2-objects.js index f58ea4a32a1e7d..0958c8ec566c27 100644 --- a/test/parallel/test-stream2-objects.js +++ b/test/parallel/test-stream2-objects.js @@ -71,7 +71,7 @@ function fromArray(list) { r.pipe(toArray(common.mustCall(function(list) { assert.deepStrictEqual(list, [ { one: '1' }, - { two: '2' } + { two: '2' }, ]); }))); } @@ -96,7 +96,7 @@ function fromArray(list) { r.pipe(toArray(common.mustCall(function(list) { assert.deepStrictEqual(list, [ { one: '1' }, - { two: '2' } + { two: '2' }, ]); }))); } @@ -115,7 +115,7 @@ function fromArray(list) { r.pipe(toArray(common.mustCall(function(list) { assert.deepStrictEqual(list, [ { one: '1' }, - { two: '2' } + { two: '2' }, ]); }))); } diff --git a/test/parallel/test-stream2-transform.js b/test/parallel/test-stream2-transform.js index fa24ce152d71ed..d7ad2ed4e570ea 100644 --- a/test/parallel/test-stream2-transform.js +++ b/test/parallel/test-stream2-transform.js @@ -407,7 +407,7 @@ const Transform = require('_stream_transform'); { foo: 'bar' }, 100, 'string', - { nested: { things: [ { foo: 'bar' }, 100, 'string' ] } } + { nested: { things: [ { foo: 'bar' }, 100, 'string' ] } }, ]; let ended = false; @@ -448,7 +448,7 @@ const Transform = require('_stream_transform'); { foo: 'bar' }, 100, 'string', - { nested: { things: [ { foo: 'bar' }, 100, 'string' ] } } + { nested: { things: [ { foo: 'bar' }, 100, 'string' ] } }, ]; let ended = false; diff --git a/test/parallel/test-streams-highwatermark.js b/test/parallel/test-streams-highwatermark.js index 2228c12f1421f5..5e27a761350810 100644 --- a/test/parallel/test-streams-highwatermark.js +++ b/test/parallel/test-streams-highwatermark.js @@ -59,3 +59,16 @@ const { inspect } = require('util'); readable._read = common.mustCall(); readable.read(0); } + +{ + // Parse size as decimal integer + ['1', '1.0', 1].forEach((size) => { + const readable = new stream.Readable({ + read: common.mustCall(), + highWaterMark: 0, + }); + readable.read(size); + + assert.strictEqual(readable._readableState.highWaterMark, Number(size)); + }); +} diff --git a/test/parallel/test-string-decoder-end.js b/test/parallel/test-string-decoder-end.js index ee0a47e3572f6d..5a3c5cc720789d 100644 --- a/test/parallel/test-string-decoder-end.js +++ b/test/parallel/test-string-decoder-end.js @@ -27,7 +27,7 @@ require('../common'); const assert = require('assert'); const SD = require('string_decoder').StringDecoder; -const encodings = ['base64', 'hex', 'utf8', 'utf16le', 'ucs2']; +const encodings = ['base64', 'base64url', 'hex', 'utf8', 'utf16le', 'ucs2']; const bufs = [ '☃💩', 'asdf' ].map((b) => Buffer.from(b)); @@ -79,6 +79,13 @@ testEnd('base64', Buffer.of(0x61, 0x61), Buffer.of(0x61), 'YWE=YQ=='); testEnd('base64', Buffer.of(0x61, 0x61, 0x61), Buffer.of(), 'YWFh'); testEnd('base64', Buffer.of(0x61, 0x61, 0x61), Buffer.of(0x61), 'YWFhYQ=='); +testEnd('base64url', Buffer.of(0x61), Buffer.of(), 'YQ'); +testEnd('base64url', Buffer.of(0x61), Buffer.of(0x61), 'YQYQ'); +testEnd('base64url', Buffer.of(0x61, 0x61), Buffer.of(), 'YWE'); +testEnd('base64url', Buffer.of(0x61, 0x61), Buffer.of(0x61), 'YWEYQ'); +testEnd('base64url', Buffer.of(0x61, 0x61, 0x61), Buffer.of(), 'YWFh'); +testEnd('base64url', Buffer.of(0x61, 0x61, 0x61), Buffer.of(0x61), 'YWFhYQ'); + function testEncoding(encoding) { bufs.forEach((buf) => { testBuf(encoding, buf); diff --git a/test/parallel/test-string-decoder-fuzz.js b/test/parallel/test-string-decoder-fuzz.js index d8d01881591161..3a6108e8fc993d 100644 --- a/test/parallel/test-string-decoder-fuzz.js +++ b/test/parallel/test-string-decoder-fuzz.js @@ -20,7 +20,7 @@ function randBuf(maxLen) { } const encodings = [ - 'utf16le', 'utf8', 'ascii', 'hex', 'base64', 'latin1' + 'utf16le', 'utf8', 'ascii', 'hex', 'base64', 'latin1', 'base64url', ]; function runSingleFuzzTest() { diff --git a/test/parallel/test-timers-active.js b/test/parallel/test-timers-active.js index a98d32c0b042d1..ac79c6fc1e1ca0 100644 --- a/test/parallel/test-timers-active.js +++ b/test/parallel/test-timers-active.js @@ -6,7 +6,7 @@ const active = require('timers').active; // active() should create timers for these const legitTimers = [ { _idleTimeout: 0 }, - { _idleTimeout: 1 } + { _idleTimeout: 1 }, ]; legitTimers.forEach(function(legit) { diff --git a/test/parallel/test-timers-enroll-invalid-msecs.js b/test/parallel/test-timers-enroll-invalid-msecs.js index f82bf29d74d973..466f1a2c4a8872 100644 --- a/test/parallel/test-timers-enroll-invalid-msecs.js +++ b/test/parallel/test-timers-enroll-invalid-msecs.js @@ -9,7 +9,7 @@ const timers = require('timers'); [], 'foo', () => { }, - Symbol('foo') + Symbol('foo'), ].forEach((val) => { assert.throws( () => timers.enroll({}, val), @@ -23,7 +23,7 @@ const timers = require('timers'); [ -1, Infinity, - NaN + NaN, ].forEach((val) => { assert.throws( () => timers.enroll({}, val), diff --git a/test/parallel/test-timers.js b/test/parallel/test-timers.js index b8733f79f54639..e04c1f3f184946 100644 --- a/test/parallel/test-timers.js +++ b/test/parallel/test-timers.js @@ -48,7 +48,7 @@ const inputs = [ 1, 1.0, 2147483648, // Browser behavior: timeouts > 2^31-1 run on next tick - 12345678901234 // ditto + 12345678901234, // ditto ]; const timeouts = []; diff --git a/test/parallel/test-tls-cipher-list.js b/test/parallel/test-tls-cipher-list.js index b3c34a74bf4ee0..b1a61405898a9a 100644 --- a/test/parallel/test-tls-cipher-list.js +++ b/test/parallel/test-tls-cipher-list.js @@ -12,7 +12,7 @@ function doCheck(arg, expression, check) { let out = ''; arg = arg.concat([ '-pe', - expression + expression, ]); spawn(process.execPath, arg, {}) .on('error', common.mustNotCall()) diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index e584c51cf20746..a8de1078bf2e9a 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -35,7 +35,7 @@ const testCases = [ servers: [ { ok: true, key: 'agent1-key', cert: 'agent1-cert' }, { ok: false, key: 'agent2-key', cert: 'agent2-cert' }, - { ok: false, key: 'agent3-key', cert: 'agent3-cert' } + { ok: false, key: 'agent3-key', cert: 'agent3-cert' }, ] }, { ca: [], @@ -44,7 +44,7 @@ const testCases = [ servers: [ { ok: false, key: 'agent1-key', cert: 'agent1-cert' }, { ok: false, key: 'agent2-key', cert: 'agent2-cert' }, - { ok: false, key: 'agent3-key', cert: 'agent3-cert' } + { ok: false, key: 'agent3-key', cert: 'agent3-cert' }, ] }, { ca: ['ca1-cert', 'ca2-cert'], @@ -53,8 +53,8 @@ const testCases = [ servers: [ { ok: true, key: 'agent1-key', cert: 'agent1-cert' }, { ok: false, key: 'agent2-key', cert: 'agent2-cert' }, - { ok: true, key: 'agent3-key', cert: 'agent3-cert' } - ] } + { ok: true, key: 'agent3-key', cert: 'agent3-cert' }, + ] }, ]; diff --git a/test/parallel/test-tls-cnnic-whitelist.js b/test/parallel/test-tls-cnnic-whitelist.js index e08e93013f6aca..99ad02ee1c66be 100644 --- a/test/parallel/test-tls-cnnic-whitelist.js +++ b/test/parallel/test-tls-cnnic-whitelist.js @@ -31,7 +31,7 @@ const testCases = [ rejectUnauthorized: true }, errorCode: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' - } + }, ]; function runTest(tindex) { diff --git a/test/parallel/test-tls-ecdh-multiple.js b/test/parallel/test-tls-ecdh-multiple.js index 1fcfc041bd4050..25e6314a54a58d 100644 --- a/test/parallel/test-tls-ecdh-multiple.js +++ b/test/parallel/test-tls-ecdh-multiple.js @@ -62,7 +62,7 @@ process.on('exit', function() { const unsupportedCurves = [ 'wap-wsg-idm-ecid-wtls1', 'c2pnb163v1', - 'prime192v3' + 'prime192v3', ]; // Brainpool is not supported in FIPS mode diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js index ec3642cbf74614..46dacbee23beba 100644 --- a/test/parallel/test-tls-getprotocol.js +++ b/test/parallel/test-tls-getprotocol.js @@ -13,7 +13,7 @@ const fixtures = require('../common/fixtures'); const clientConfigs = [ { secureProtocol: 'TLSv1_method', version: 'TLSv1' }, { secureProtocol: 'TLSv1_1_method', version: 'TLSv1.1' }, - { secureProtocol: 'TLSv1_2_method', version: 'TLSv1.2' } + { secureProtocol: 'TLSv1_2_method', version: 'TLSv1.2' }, ]; const serverConfig = { diff --git a/test/parallel/test-tls-multi-pfx.js b/test/parallel/test-tls-multi-pfx.js index c20376a82ad8a8..f353183ce2fa0c 100644 --- a/test/parallel/test-tls-multi-pfx.js +++ b/test/parallel/test-tls-multi-pfx.js @@ -13,7 +13,7 @@ const options = { buf: fixtures.readKey('agent1.pfx'), passphrase: 'sample' }, - fixtures.readKey('ec.pfx') + fixtures.readKey('ec.pfx'), ] }; diff --git a/test/parallel/test-tls-onread-static-buffer.js b/test/parallel/test-tls-onread-static-buffer.js new file mode 100644 index 00000000000000..6e19184e887d2a --- /dev/null +++ b/test/parallel/test-tls-onread-static-buffer.js @@ -0,0 +1,206 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const tls = require('tls'); +const fixtures = require('../common/fixtures'); + +const options = { + key: fixtures.readKey('agent2-key.pem'), + cert: fixtures.readKey('agent2-cert.pem') +}; + +const smallMessage = Buffer.from('hello world'); +// Used to test .pause(), so needs to be larger than the internal buffer +const largeMessage = Buffer.alloc(64 * 1024).fill('hello world'); + +// Test typical usage +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + socket.end(smallMessage); +})).listen(0, function() { + let received = 0; + const buffers = []; + const sockBuf = Buffer.alloc(8); + tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: sockBuf, + callback: function(nread, buf) { + assert.strictEqual(buf, sockBuf); + received += nread; + buffers.push(Buffer.from(buf.slice(0, nread))); + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, smallMessage.length); + assert.deepStrictEqual(Buffer.concat(buffers), smallMessage); + })); +}); + +// Test Uint8Array support +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + socket.end(smallMessage); +})).listen(0, function() { + let received = 0; + let incoming = new Uint8Array(0); + const sockBuf = new Uint8Array(8); + tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: sockBuf, + callback: function(nread, buf) { + assert.strictEqual(buf, sockBuf); + received += nread; + const newIncoming = new Uint8Array(incoming.length + nread); + newIncoming.set(incoming); + newIncoming.set(buf.slice(0, nread), incoming.length); + incoming = newIncoming; + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, smallMessage.length); + assert.deepStrictEqual(incoming, new Uint8Array(smallMessage)); + })); +}); + +// Test Buffer callback usage +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + socket.end(smallMessage); +})).listen(0, function() { + let received = 0; + const incoming = []; + const bufPool = [ Buffer.alloc(2), Buffer.alloc(2), Buffer.alloc(2) ]; + let bufPoolIdx = -1; + let bufPoolUsage = 0; + tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: () => { + ++bufPoolUsage; + bufPoolIdx = (bufPoolIdx + 1) % bufPool.length; + return bufPool[bufPoolIdx]; + }, + callback: function(nread, buf) { + assert.strictEqual(buf, bufPool[bufPoolIdx]); + received += nread; + incoming.push(Buffer.from(buf.slice(0, nread))); + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, smallMessage.length); + assert.deepStrictEqual(Buffer.concat(incoming), smallMessage); + assert.strictEqual(bufPoolUsage, 7); + })); +}); + +// Test Uint8Array callback support +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + socket.end(smallMessage); +})).listen(0, function() { + let received = 0; + let incoming = new Uint8Array(0); + const bufPool = [ new Uint8Array(2), new Uint8Array(2), new Uint8Array(2) ]; + let bufPoolIdx = -1; + let bufPoolUsage = 0; + tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: () => { + ++bufPoolUsage; + bufPoolIdx = (bufPoolIdx + 1) % bufPool.length; + return bufPool[bufPoolIdx]; + }, + callback: function(nread, buf) { + assert.strictEqual(buf, bufPool[bufPoolIdx]); + received += nread; + const newIncoming = new Uint8Array(incoming.length + nread); + newIncoming.set(incoming); + newIncoming.set(buf.slice(0, nread), incoming.length); + incoming = newIncoming; + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, smallMessage.length); + assert.deepStrictEqual(incoming, new Uint8Array(smallMessage)); + assert.strictEqual(bufPoolUsage, 7); + })); +}); + +// Test explicit socket pause +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + // Need larger message here to observe the pause + socket.end(largeMessage); +})).listen(0, function() { + let received = 0; + const buffers = []; + const sockBuf = Buffer.alloc(64); + let pauseScheduled = false; + const client = tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: sockBuf, + callback: function(nread, buf) { + assert.strictEqual(buf, sockBuf); + received += nread; + buffers.push(Buffer.from(buf.slice(0, nread))); + if (!pauseScheduled) { + pauseScheduled = true; + client.pause(); + setTimeout(() => { + client.resume(); + }, 100); + } + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, largeMessage.length); + assert.deepStrictEqual(Buffer.concat(buffers), largeMessage); + })); +}); + +// Test implicit socket pause +tls.createServer(options, common.mustCall(function(socket) { + this.close(); + // Need larger message here to observe the pause + socket.end(largeMessage); +})).listen(0, function() { + let received = 0; + const buffers = []; + const sockBuf = Buffer.alloc(64); + let pauseScheduled = false; + const client = tls.connect({ + port: this.address().port, + rejectUnauthorized: false, + onread: { + buffer: sockBuf, + callback: function(nread, buf) { + assert.strictEqual(buf, sockBuf); + received += nread; + buffers.push(Buffer.from(buf.slice(0, nread))); + if (!pauseScheduled) { + pauseScheduled = true; + setTimeout(() => { + client.resume(); + }, 100); + return false; + } + return true; + } + } + }).on('data', common.mustNotCall()).on('end', common.mustCall(() => { + assert.strictEqual(received, largeMessage.length); + assert.deepStrictEqual(Buffer.concat(buffers), largeMessage); + })); +}); diff --git a/test/parallel/test-tls-options-boolean-check.js b/test/parallel/test-tls-options-boolean-check.js index 4dae8e47c8ea70..900a39f0c1cd42 100644 --- a/test/parallel/test-tls-options-boolean-check.js +++ b/test/parallel/test-tls-options-boolean-check.js @@ -61,7 +61,7 @@ const caArrDataView = toDataView(caCert); [[keyStr, keyStr2], false], [false, [certStr, certStr2]], [[{ pem: keyBuff }], false], - [[{ pem: keyBuff }, { pem: keyBuff }], false] + [[{ pem: keyBuff }, { pem: keyBuff }], false], ].forEach(([key, cert]) => { tls.createServer({ key, cert }); }); @@ -79,7 +79,7 @@ const caArrDataView = toDataView(caCert); [[keyBuff, true], [certBuff, certBuff2], 1], [[true, keyStr2], [certStr, certStr2], 0], [[true, false], [certBuff, certBuff2], 0], - [true, [certBuff, certBuff2]] + [true, [certBuff, certBuff2]], ].forEach(([key, cert, index]) => { const val = index === undefined ? key : key[index]; assert.throws(() => { @@ -105,7 +105,7 @@ const caArrDataView = toDataView(caCert); [[keyBuff, keyBuff2], [true, certBuff2], 0], [[keyStr, keyStr2], [certStr, true], 1], [[keyStr, keyStr2], [true, false], 0], - [[keyStr, keyStr2], true] + [[keyStr, keyStr2], true], ].forEach(([key, cert, index]) => { const val = index === undefined ? cert : cert[index]; assert.throws(() => { @@ -140,7 +140,7 @@ const caArrDataView = toDataView(caCert); [keyBuff, certBuff, {}], [keyBuff, certBuff, 1], [keyBuff, certBuff, true], - [keyBuff, certBuff, [caCert, true], 1] + [keyBuff, certBuff, [caCert, true], 1], ].forEach(([key, cert, ca, index]) => { const val = index === undefined ? ca : ca[index]; assert.throws(() => { @@ -161,7 +161,7 @@ const caArrDataView = toDataView(caCert); [false, false, false], [undefined, undefined, undefined], ['', '', ''], - [0, 0, 0] + [0, 0, 0], ].forEach(([key, cert, ca]) => { tls.createSecureContext({ key, cert, ca }); }); diff --git a/test/parallel/test-tls-psk-server.js b/test/parallel/test-tls-psk-server.js index 434d31380fe2ad..b9260958401522 100644 --- a/test/parallel/test-tls-psk-server.js +++ b/test/parallel/test-tls-psk-server.js @@ -46,7 +46,7 @@ server.listen(0, () => { '-connect', `127.0.0.1:${server.address().port}`, '-cipher', CIPHERS, '-psk', KEY, - '-psk_identity', IDENTITY + '-psk_identity', IDENTITY, ]); let out = ''; diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index fe525b2fd1d5af..51ccd0d747fdf5 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -53,7 +53,7 @@ const testCases = [{ name: 'agent1', shouldReject: false, shouldAuth: false }, { name: 'agent2', shouldReject: false, shouldAuth: false }, { name: 'agent3', shouldReject: false, shouldAuth: false }, - { name: 'nocert', shouldReject: false, shouldAuth: false } + { name: 'nocert', shouldReject: false, shouldAuth: false }, ] }, { title: 'Allow both authed and unauthed connections with CA1', @@ -65,7 +65,7 @@ const testCases = [{ name: 'agent1', shouldReject: false, shouldAuth: true }, { name: 'agent2', shouldReject: false, shouldAuth: false }, { name: 'agent3', shouldReject: false, shouldAuth: false }, - { name: 'nocert', shouldReject: false, shouldAuth: false } + { name: 'nocert', shouldReject: false, shouldAuth: false }, ] }, { title: 'Do not request certs at connection. Do that later', @@ -77,7 +77,7 @@ const testCases = [{ name: 'agent1', shouldReject: false, shouldAuth: true }, { name: 'agent2', shouldReject: false, shouldAuth: false }, { name: 'agent3', shouldReject: false, shouldAuth: false }, - { name: 'nocert', shouldReject: false, shouldAuth: false } + { name: 'nocert', shouldReject: false, shouldAuth: false }, ] }, { title: 'Allow only authed connections with CA1', @@ -89,7 +89,7 @@ const testCases = [{ name: 'agent1', shouldReject: false, shouldAuth: true }, { name: 'agent2', shouldReject: true }, { name: 'agent3', shouldReject: true }, - { name: 'nocert', shouldReject: true } + { name: 'nocert', shouldReject: true }, ] }, { title: 'Allow only authed connections with CA1 and CA2', @@ -101,7 +101,7 @@ const testCases = [{ name: 'agent1', shouldReject: false, shouldAuth: true }, { name: 'agent2', shouldReject: true }, { name: 'agent3', shouldReject: false, shouldAuth: true }, - { name: 'nocert', shouldReject: true } + { name: 'nocert', shouldReject: true }, ] }, @@ -117,8 +117,8 @@ const testCases = { name: 'agent3', shouldReject: false, shouldAuth: true }, // Agent4 has a cert in the CRL. { name: 'agent4', shouldReject: true, shouldAuth: false }, - { name: 'nocert', shouldReject: true } - ] } + { name: 'nocert', shouldReject: true }, + ] }, ]; function filenamePEM(n) { diff --git a/test/parallel/test-tls-session-cache.js b/test/parallel/test-tls-session-cache.js index 2be093a4f596fc..46903583b224cc 100644 --- a/test/parallel/test-tls-session-cache.js +++ b/test/parallel/test-tls-session-cache.js @@ -103,7 +103,7 @@ function doTest(testOptions, callback) { '-servername', 'ohgod', '-key', fixtures.path('keys/rsa_private.pem'), '-cert', fixtures.path('keys/rsa_cert.crt'), - '-reconnect' + '-reconnect', ].concat(testOptions.tickets ? [] : '-no_ticket'); function spawnClient() { diff --git a/test/parallel/test-tls-set-secure-context.js b/test/parallel/test-tls-set-secure-context.js index f72daff6ef14fb..ed409f4f802034 100644 --- a/test/parallel/test-tls-set-secure-context.js +++ b/test/parallel/test-tls-set-secure-context.js @@ -21,7 +21,7 @@ const credentialOptions = [ key: fixtures.readKey('agent2-key.pem'), cert: fixtures.readKey('agent2-cert.pem'), ca: fixtures.readKey('ca2-cert.pem') - } + }, ]; let firstResponse; diff --git a/test/parallel/test-tls-startcom-wosign-whitelist.js b/test/parallel/test-tls-startcom-wosign-whitelist.js index 33da14884836bf..56ffd73aac0e54 100644 --- a/test/parallel/test-tls-startcom-wosign-whitelist.js +++ b/test/parallel/test-tls-startcom-wosign-whitelist.js @@ -39,7 +39,7 @@ const testCases = [ rejectUnauthorized: true }, errorCode: 'CERT_REVOKED' - } + }, ]; diff --git a/test/parallel/test-tls-write-error.js b/test/parallel/test-tls-write-error.js index 2783e62d063a28..77f003139f99c6 100644 --- a/test/parallel/test-tls-write-error.js +++ b/test/parallel/test-tls-write-error.js @@ -45,7 +45,7 @@ const server = https.createServer(opts, (req, res) => { cke, ccs, client.encrypt(finished), - client.encrypt(ill) + client.encrypt(ill), ]); client.write(frames, common.mustCall(() => { client.end(); diff --git a/test/parallel/test-trace-events-api.js b/test/parallel/test-trace-events-api.js index 344c2ae47375c9..759075e74f1d6e 100644 --- a/test/parallel/test-trace-events-api.js +++ b/test/parallel/test-trace-events-api.js @@ -64,7 +64,7 @@ assert.strictEqual(tracing.enabled, true); assert.strictEqual(getEnabledCategories(), [ - ...[enabledCategories].filter((_) => !!_), 'node.perf' + ...[enabledCategories].filter((_) => !!_), 'node.perf', ].join(',')); tracing.disable(); @@ -134,16 +134,21 @@ function testApiInChildProcess(execArgs, cb) { const expectedMarks = ['A', 'B']; const expectedBegins = [ { cat: 'node,node.perf,node.perf.timerify', name: 'f' }, - { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' } + { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' }, ]; const expectedEnds = [ { cat: 'node,node.perf,node.perf.timerify', name: 'f' }, - { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' } + { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' }, ]; const proc = cp.fork(__filename, ['child'], - { execArgv: [ '--expose-gc', ...execArgs ] }); + { + execArgv: [ + '--expose-gc', + ...execArgs, + ] + }); proc.once('exit', common.mustCall(() => { const file = path.join(tmpdir.path, 'node_trace.1.log'); diff --git a/test/parallel/test-trace-events-bootstrap.js b/test/parallel/test-trace-events-bootstrap.js index 634ee7ece0294f..3b9cb95a69f7b6 100644 --- a/test/parallel/test-trace-events-bootstrap.js +++ b/test/parallel/test-trace-events-bootstrap.js @@ -12,7 +12,7 @@ const names = [ 'v8Start', 'loopStart', 'loopExit', - 'bootstrapComplete' + 'bootstrapComplete', ]; if (process.argv[2] === 'child') { @@ -25,7 +25,7 @@ if (process.argv[2] === 'child') { cwd: tmpdir.path, execArgv: [ '--trace-event-categories', - 'node.bootstrap' + 'node.bootstrap', ] }); diff --git a/test/parallel/test-trace-events-console.js b/test/parallel/test-trace-events-console.js index a4860b5da008b4..01a532d69e704a 100644 --- a/test/parallel/test-trace-events-console.js +++ b/test/parallel/test-trace-events-console.js @@ -11,7 +11,7 @@ const tmpdir = require('../common/tmpdir'); const names = [ 'time::foo', - 'count::bar' + 'count::bar', ]; const expectedCounts = [ 1, 2, 0 ]; const expectedTimeTypes = [ 'b', 'n', 'e' ]; @@ -37,7 +37,7 @@ if (process.argv[2] === 'child') { cwd: tmpdir.path, execArgv: [ '--trace-event-categories', - 'node.console' + 'node.console', ] }); diff --git a/test/parallel/test-trace-events-environment.js b/test/parallel/test-trace-events-environment.js index 75714283fb1335..8105b8394b0d71 100644 --- a/test/parallel/test-trace-events-environment.js +++ b/test/parallel/test-trace-events-environment.js @@ -17,7 +17,7 @@ const names = new Set([ 'RunTimers', 'BeforeExit', 'RunCleanup', - 'AtExit' + 'AtExit', ]); if (process.argv[2] === 'child') { @@ -37,7 +37,7 @@ if (process.argv[2] === 'child') { cwd: tmpdir.path, execArgv: [ '--trace-event-categories', - 'node.environment' + 'node.environment', ] }); diff --git a/test/parallel/test-trace-events-file-pattern.js b/test/parallel/test-trace-events-file-pattern.js index d9cd8e66d23646..0c5097b2e174fd 100644 --- a/test/parallel/test-trace-events-file-pattern.js +++ b/test/parallel/test-trace-events-file-pattern.js @@ -16,7 +16,7 @@ const proc = cp.spawn(process.execPath, [ '--trace-event-file-pattern', // eslint-disable-next-line no-template-curly-in-string '${pid}-${rotation}-${pid}-${rotation}.tracing.log', - '-e', CODE + '-e', CODE, ], { cwd: tmpdir.path }); proc.once('exit', common.mustCall(() => { diff --git a/test/parallel/test-trace-events-fs-sync.js b/test/parallel/test-trace-events-fs-sync.js index d8e9ca30a8ebd3..41a0d2926f4fa1 100644 --- a/test/parallel/test-trace-events-fs-sync.js +++ b/test/parallel/test-trace-events-fs-sync.js @@ -23,7 +23,7 @@ tests['fs.sync.chmod'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.chmodSync("fs.txt",100);' + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.chown'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + - 'fs.chownSync("fs.txt",' + uid + ',' + gid + ');' + + `fs.chownSync("fs.txt", ${uid}, ${gid});` + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.close'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.unlinkSync("fs.txt")'; @@ -36,7 +36,7 @@ tests['fs.sync.fchmod'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.fchown'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'const fd = fs.openSync("fs.txt", "r+");' + - 'fs.fchownSync(fd,' + uid + ',' + gid + ');' + + `fs.fchownSync(fd, ${uid}, ${gid});` + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.fdatasync'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'const fd = fs.openSync("fs.txt", "r+");' + @@ -58,7 +58,7 @@ tests['fs.sync.futimes'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.futimesSync(fd,1,1);' + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.lchown'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + - 'fs.lchownSync("fs.txt",' + uid + ',' + gid + ');' + + `fs.lchownSync("fs.txt", ${uid}, ${gid});` + 'fs.unlinkSync("fs.txt")'; tests['fs.sync.link'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.linkSync("fs.txt", "linkx");' + diff --git a/test/parallel/test-trace-events-perf.js b/test/parallel/test-trace-events-perf.js index 2403a8078a47fd..e9701be7a343c7 100644 --- a/test/parallel/test-trace-events-perf.js +++ b/test/parallel/test-trace-events-perf.js @@ -26,21 +26,21 @@ if (process.argv[2] === 'child') { const expectedMarks = ['A', 'B']; const expectedBegins = [ { cat: 'node,node.perf,node.perf.timerify', name: 'f' }, - { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' } + { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' }, ]; const expectedEnds = [ { cat: 'node,node.perf,node.perf.timerify', name: 'f' }, - { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' } + { cat: 'node,node.perf,node.perf.usertiming', name: 'A to B' }, ]; const proc = cp.fork(__filename, [ - 'child' + 'child', ], { cwd: tmpdir.path, execArgv: [ '--trace-event-categories', - 'node.perf' + 'node.perf', ] }); diff --git a/test/parallel/test-trace-events-promises.js b/test/parallel/test-trace-events-promises.js index 0dd4fddc6d75ba..eec463369c119e 100644 --- a/test/parallel/test-trace-events-promises.js +++ b/test/parallel/test-trace-events-promises.js @@ -23,7 +23,7 @@ if (process.argv[2] === 'child') { execArgv: [ '--no-warnings', '--trace-event-categories', - 'node.promises.rejections' + 'node.promises.rejections', ] }); diff --git a/test/parallel/test-trace-events-vm.js b/test/parallel/test-trace-events-vm.js index 3e5d32b6c3f82c..b3d3a403bec711 100644 --- a/test/parallel/test-trace-events-vm.js +++ b/test/parallel/test-trace-events-vm.js @@ -9,7 +9,7 @@ const tmpdir = require('../common/tmpdir'); const names = [ 'ContextifyScript::New', 'RunInThisContext', - 'RunInContext' + 'RunInContext', ]; if (process.argv[2] === 'child') { @@ -23,7 +23,7 @@ if (process.argv[2] === 'child') { cwd: tmpdir.path, execArgv: [ '--trace-event-categories', - 'node.vm.script' + 'node.vm.script', ] }); diff --git a/test/parallel/test-tracing-no-crash.js b/test/parallel/test-tracing-no-crash.js index 0ae402f5288cca..2e5d42b6067bb7 100644 --- a/test/parallel/test-tracing-no-crash.js +++ b/test/parallel/test-tracing-no-crash.js @@ -9,7 +9,7 @@ function CheckNoSignalAndErrorCodeOne(code, signal) { } const child = spawn(process.execPath, [ - '--trace-event-categories', 'madeup', '-e', 'throw new Error()' + '--trace-event-categories', 'madeup', '-e', 'throw new Error()', ], { stdio: [ 'inherit', 'inherit', 'pipe' ] }); child.on('exit', common.mustCall(CheckNoSignalAndErrorCodeOne)); diff --git a/test/parallel/test-tty-backwards-api.js b/test/parallel/test-tty-backwards-api.js index b4005bad61a3b1..16e71aab9e187c 100644 --- a/test/parallel/test-tty-backwards-api.js +++ b/test/parallel/test-tty-backwards-api.js @@ -19,7 +19,7 @@ const { WriteStream } = require('tty'); 'cursorTo', 'moveCursor', 'clearLine', - 'clearScreenDown' + 'clearScreenDown', ].forEach((method) => { readline[method] = common.mustCall(function() { const lastArg = arguments[arguments.length - 1]; diff --git a/test/parallel/test-url-domain-ascii-unicode.js b/test/parallel/test-url-domain-ascii-unicode.js index 49259a7ab0f4c4..737294c241fbfe 100644 --- a/test/parallel/test-url-domain-ascii-unicode.js +++ b/test/parallel/test-url-domain-ascii-unicode.js @@ -18,7 +18,7 @@ const domainWithASCII = [ ['名がドメイン.com', 'xn--v8jxj3d1dzdz08w.com'], ['افغانستا.icom.museum', 'xn--mgbaal8b0b9b2b.icom.museum'], ['الجزائر.icom.fake', 'xn--lgbbat1ad8j.icom.fake'], - ['भारत.org', 'xn--h2brj9c.org'] + ['भारत.org', 'xn--h2brj9c.org'], ]; domainWithASCII.forEach((pair) => { diff --git a/test/parallel/test-url-format-invalid-input.js b/test/parallel/test-url-format-invalid-input.js index 99a35b76f08e72..efa1a9ba1df6bf 100644 --- a/test/parallel/test-url-format-invalid-input.js +++ b/test/parallel/test-url-format-invalid-input.js @@ -10,7 +10,7 @@ const throwsObjsAndReportTypes = [ false, 0, function() {}, - Symbol('foo') + Symbol('foo'), ]; for (const urlObject of throwsObjsAndReportTypes) { diff --git a/test/parallel/test-url-parse-invalid-input.js b/test/parallel/test-url-parse-invalid-input.js index ff63e91ecda2ab..55db598e04f808 100644 --- a/test/parallel/test-url-parse-invalid-input.js +++ b/test/parallel/test-url-parse-invalid-input.js @@ -14,7 +14,7 @@ const url = require('url'); [[], 'object'], [{}, 'object'], [() => {}, 'function'], - [Symbol('foo'), 'symbol'] + [Symbol('foo'), 'symbol'], ].forEach(([val, type]) => { assert.throws(() => { url.parse(val); diff --git a/test/parallel/test-url-pathtofileurl.js b/test/parallel/test-url-pathtofileurl.js index 79adb58b77d754..068a04e6613b28 100644 --- a/test/parallel/test-url-pathtofileurl.js +++ b/test/parallel/test-url-pathtofileurl.js @@ -90,7 +90,7 @@ const url = require('url'); // Rocket emoji (non-BMP code point) { path: 'C:\\🚀', expected: 'file:///C:/%F0%9F%9A%80' }, // UNC path (see https://docs.microsoft.com/en-us/archive/blogs/ie/file-uris-in-windows) - { path: '\\\\nas\\My Docs\\File.doc', expected: 'file://nas/My%20Docs/File.doc' } + { path: '\\\\nas\\My Docs\\File.doc', expected: 'file://nas/My%20Docs/File.doc' }, ]; } else { testCases = [ diff --git a/test/parallel/test-url-relative.js b/test/parallel/test-url-relative.js index e4aee99a7789ab..1eb2bdc58fc3a6 100644 --- a/test/parallel/test-url-relative.js +++ b/test/parallel/test-url-relative.js @@ -52,7 +52,7 @@ const relativeTests = [ 'http://example.com/a/b/c/d'], ['/foo/bar/baz', '/../etc/passwd', '/etc/passwd'], ['http://localhost', 'file:///Users/foo', 'file:///Users/foo'], - ['http://localhost', 'file://foo/Users', 'file://foo/Users'] + ['http://localhost', 'file://foo/Users', 'file://foo/Users'], ]; relativeTests.forEach(function(relativeTest) { const a = url.resolve(relativeTest[0], relativeTest[1]); @@ -76,7 +76,7 @@ const bases = [ 'http://a/b/c/d;p?q=1/2', 'http://a/b/c/d;p=1/2?q', 'fred:///s//a/b/c', - 'http:///s//a/b/c' + 'http:///s//a/b/c', ]; // [to, from, result] @@ -371,7 +371,7 @@ const relativeTests2 = [ 'https://user:password@example.com/foo'], // No path at all - ['#hash1', '#hash2', '#hash1'] + ['#hash1', '#hash2', '#hash1'], ]; relativeTests2.forEach(function(relativeTest) { const a = url.resolve(relativeTest[1], relativeTest[0]); diff --git a/test/parallel/test-url-urltooptions.js b/test/parallel/test-url-urltooptions.js new file mode 100644 index 00000000000000..cc4838eeecb00f --- /dev/null +++ b/test/parallel/test-url-urltooptions.js @@ -0,0 +1,37 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const { urlToHttpOptions } = require('url'); + +// Test urlToHttpOptions +const urlObj = new URL('http://user:pass@foo.bar.com:21/aaa/zzz?l=24#test'); +const opts = urlToHttpOptions(urlObj); +assert.strictEqual(opts instanceof URL, false); +assert.strictEqual(opts.protocol, 'http:'); +assert.strictEqual(opts.auth, 'user:pass'); +assert.strictEqual(opts.hostname, 'foo.bar.com'); +assert.strictEqual(opts.port, 21); +assert.strictEqual(opts.path, '/aaa/zzz?l=24'); +assert.strictEqual(opts.pathname, '/aaa/zzz'); +assert.strictEqual(opts.search, '?l=24'); +assert.strictEqual(opts.hash, '#test'); + +const { hostname } = urlToHttpOptions(new URL('http://[::1]:21')); +assert.strictEqual(hostname, '::1'); + +// If a WHATWG URL object is copied, it is possible that the resulting copy +// contains the Symbols that Node uses for brand checking, but not the data +// properties, which are getters. Verify that urlToHttpOptions() can handle +// such a case. +const copiedUrlObj = { ...urlObj }; +const copiedOpts = urlToHttpOptions(copiedUrlObj); +assert.strictEqual(copiedOpts instanceof URL, false); +assert.strictEqual(copiedOpts.protocol, undefined); +assert.strictEqual(copiedOpts.auth, undefined); +assert.strictEqual(copiedOpts.hostname, undefined); +assert.strictEqual(copiedOpts.port, NaN); +assert.strictEqual(copiedOpts.path, ''); +assert.strictEqual(copiedOpts.pathname, undefined); +assert.strictEqual(copiedOpts.search, undefined); +assert.strictEqual(copiedOpts.hash, undefined); +assert.strictEqual(copiedOpts.href, undefined); diff --git a/test/parallel/test-util-callbackify.js b/test/parallel/test-util-callbackify.js index 73234e71b7ce49..444e10b16bf85a 100644 --- a/test/parallel/test-util-callbackify.js +++ b/test/parallel/test-util-callbackify.js @@ -20,7 +20,7 @@ const values = [ Symbol('I am a symbol'), function ok() {}, ['array', 'with', 4, 'values'], - new Error('boo') + new Error('boo'), ]; { diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index 11fe24fce70770..3d6404076471dd 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -484,7 +484,7 @@ assert.strictEqual( 5n, 5, 'test', - Symbol() + Symbol(), ].forEach((invalidOptions) => { assert.throws(() => { util.formatWithOptions(invalidOptions, { a: true }); diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index ee67d2e79aec9a..dbec153cf945e5 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -495,7 +495,7 @@ assert.strictEqual( 'true,', "'4294967296': true,", "'4294967295': true,", - "'4294967297': true\n]" + "'4294967297': true\n]", ].join('\n ')); } @@ -640,7 +640,7 @@ assert.strictEqual(util.inspect(-5e-324), '-5e-324'); new Error(), new Error('FAIL'), new TypeError('FAIL'), - new SyntaxError('FAIL') + new SyntaxError('FAIL'), ].forEach((err) => { assert.strictEqual(util.inspect(err), err.stack); }); @@ -1629,7 +1629,7 @@ util.inspect(process); " 'za' => 1,", " 'zb' => 'test'", ' }', - '}' + '}', ].join('\n'); assert.strictEqual(out, expect); @@ -1637,7 +1637,7 @@ util.inspect(process); expect = [ "'Lorem ipsum dolor\\n' +", " 'sit amet,\\tconsectetur adipiscing elit, sed do eiusmod tempor " + - "incididunt ut labore et dolore magna aliqua.'" + "incididunt ut labore et dolore magna aliqua.'", ].join('\n'); assert.strictEqual(out, expect); @@ -1651,7 +1651,7 @@ util.inspect(process); '12 45 78 01 34 67 90 23 56 89 123456789012345678901234567890', { compact: false, breakLength: 3 }); expect = [ - "'12 45 78 01 34 67 90 23 56 89 123456789012345678901234567890'" + "'12 45 78 01 34 67 90 23 56 89 123456789012345678901234567890'", ].join('\n'); assert.strictEqual(out, expect); @@ -1662,7 +1662,7 @@ util.inspect(process); '{', ' a: [Function (anonymous)],', ' b: [Number: 3]', - '}' + '}', ].join('\n'); assert.strictEqual(out, expect); @@ -1674,7 +1674,7 @@ util.inspect(process); " [name]: ''", ' },', ' b: [Number: 3]', - '}' + '}', ].join('\n'); assert.strictEqual(out, expect); @@ -1752,7 +1752,7 @@ util.inspect(process); ' [Circular *1],', " [Symbol(Symbol.toStringTag)]: 'Map Iterator'", ' }', - '}' + '}', ].join('\n'); assert.strict.equal(out, expected); @@ -1791,7 +1791,7 @@ util.inspect(process); ' [Circular *1],', " [Symbol(Symbol.toStringTag)]: 'Map Iterator'", ' }', - '}' + '}', ].join('\n'); assert.strict.equal(out, expected); @@ -1832,7 +1832,7 @@ util.inspect(process); ' foo: true } ],', ' [Circular *1],', ' [Symbol(Symbol.toStringTag)]:', - " 'Map Iterator' } }" + " 'Map Iterator' } }", ].join('\n'); assert.strict.equal(out, expected); @@ -1930,7 +1930,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); get name() { return 'BazError'; } - }, undefined] + }, undefined], ].forEach(([Class, message], i) => { console.log('Test %i', i); const foo = new Class(message); @@ -2000,7 +2000,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); // Foobar !!! [class X extends /****/ Error // More comments - {}, '[class X extends Error]'] + {}, '[class X extends Error]'], /* eslint-enable spaced-comment, no-multi-spaces, brace-style */ ].forEach(([clazz, string]) => { const inspected = util.inspect(clazz); @@ -2092,7 +2092,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); [new Promise((resolve) => setTimeout(resolve, 10)), 'Promise { }'], [new WeakSet(), 'WeakSet { }'], [new WeakMap(), 'WeakMap { }'], - [/foobar/g, '/foobar/g'] + [/foobar/g, '/foobar/g'], ].forEach(([value, expected]) => { Object.defineProperty(value, 'valueOf', { get() { @@ -2141,7 +2141,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); '{\n [Uint8Contents]: <00 00>,\n byteLength: undefined\n}'], [/foobar/, '[RegExp: null prototype] /foobar/'], [new Date('Sun, 14 Feb 2010 11:48:40 GMT'), - '[Date: null prototype] 2010-02-14T11:48:40.000Z'] + '[Date: null prototype] 2010-02-14T11:48:40.000Z'], ].forEach(([value, expected]) => { assert.strictEqual( util.inspect(Object.setPrototypeOf(value, null)), @@ -2163,7 +2163,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); [10], '[\n 0n, 0n, 0n, 0n, 0n,\n 0n, 0n, 0n, 0n, 0n\n]'], [Date, ['Sun, 14 Feb 2010 11:48:40 GMT'], '2010-02-14T11:48:40.000Z'], - [Date, ['invalid_date'], 'Invalid Date'] + [Date, ['invalid_date'], 'Invalid Date'], ].forEach(([base, input, rawExpected]) => { class Foo extends base {} const value = new Foo(...input); @@ -2253,7 +2253,7 @@ assert.strictEqual( 'blue', 'magenta', 'cyan', - 'white' + 'white', ].forEach((color, i) => { assert.deepStrictEqual(inspect.colors[color], [30 + i, 39]); assert.deepStrictEqual(inspect.colors[`${color}Bright`], [90 + i, 39]); @@ -2431,7 +2431,7 @@ assert.strictEqual( b: [ 1, 2, - [ 1, 2, { a: 1, b: 2, c: 3 } ] + [ 1, 2, { a: 1, b: 2, c: 3 } ], ], c: ['foo', 4, 444444], d: Array.from({ length: 101 }).map((e, i) => { @@ -2523,7 +2523,7 @@ assert.strictEqual( " 'This text is too long for grouping!',", " 'This text is too long for grouping!'", ' ]', - '}' + '}', ].join('\n'); assert.strictEqual(out, expected); @@ -2531,7 +2531,7 @@ assert.strictEqual( obj = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 123456789 + 1, 1, 1, 1, 1, 1, 123456789, ]; out = util.inspect(obj, { compact: 3 }); @@ -2545,7 +2545,7 @@ assert.strictEqual( ' 1, 1, 1, 1,', ' 1, 1, 1, 1,', ' 1, 1, 123456789', - ']' + ']', ].join('\n'); assert.strictEqual(out, expected); @@ -2553,7 +2553,7 @@ assert.strictEqual( // Unicode support. あ has a length of one and a width of two. obj = [ '123', '123', '123', '123', 'あああ', - '123', '123', '123', '123', 'あああ' + '123', '123', '123', '123', 'あああ', ]; out = util.inspect(obj, { compact: 3 }); @@ -2627,7 +2627,7 @@ assert.strictEqual( ' \u001b[33m52\u001b[39m, \u001b[33m53\u001b[39m, \u001b[33m54\u001b[39m, \u001b[33m55\u001b[39m,', ' \u001b[33m56\u001b[39m, \u001b[33m57\u001b[39m, \u001b[33m58\u001b[39m, \u001b[33m59\u001b[39m', /* eslint-enable max-len */ - ']' + ']', ].join('\n'); assert.strictEqual(out, expected); @@ -2675,7 +2675,7 @@ assert.strictEqual( 'string_decoder', 'tls', 'trace_events', 'tty', 'url', 'v8', 'vm', 'worker_threads', 'zlib', - '_', '_error', 'util' + '_', '_error', 'util', ]; out = util.inspect( @@ -2721,7 +2721,7 @@ assert.strictEqual( " 'tty', 'url', 'v8',", " 'vm', 'worker_threads', 'zlib',", " '_', '_error', 'util'", - ']' + ']', ].join('\n'); assert.strictEqual(out, expected); @@ -2741,10 +2741,10 @@ assert.strictEqual( ' at Module.require [as weird/name] (internal/aaaaaa/loader.js:735:19)', ' at require (internal/modules/cjs/helpers.js:14:16)', ' at /test/test-util-inspect.js:2239:9', - ' at getActual (assert.js:592:5)' + ' at getActual (assert.js:592:5)', ]; const isNodeCoreFile = [ - false, false, true, true, false, true, false, true, false, true + false, false, true, true, false, true, false, true, false, true, ]; const err = new TypeError('Wonderful message!'); err.stack = stack.join('\n'); diff --git a/test/parallel/test-util-log.js b/test/parallel/test-util-log.js index 3de79b835d85a3..854746290ec796 100644 --- a/test/parallel/test-util-log.js +++ b/test/parallel/test-util-log.js @@ -48,7 +48,7 @@ const tests = [ { input: function() {}, output: '[Function: input]' }, { input: parseInt('not a number', 10), output: 'NaN' }, { input: { answer: 42 }, output: '{ answer: 42 }' }, - { input: [1, 2, 3], output: '[ 1, 2, 3 ]' } + { input: [1, 2, 3], output: '[ 1, 2, 3 ]' }, ]; // test util.log() diff --git a/test/parallel/test-util-promisify.js b/test/parallel/test-util-promisify.js index 70125278d96164..7edeb6e493993e 100644 --- a/test/parallel/test-util-promisify.js +++ b/test/parallel/test-util-promisify.js @@ -193,7 +193,7 @@ const stat = promisify(fs.stat); }), b.then(assert.fail, function(e) { assert.strictEqual(err, e); - }) + }), ]); } diff --git a/test/parallel/test-util-types.js b/test/parallel/test-util-types.js index ead9bf54697b11..189d084ee34ff1 100644 --- a/test/parallel/test-util-types.js +++ b/test/parallel/test-util-types.js @@ -73,7 +73,7 @@ for (const [ value, _method ] of [ new Number(), new String(), Object(Symbol()), - Object(BigInt(0)) + Object(BigInt(0)), ].forEach((entry) => assert(types.isBoxedPrimitive(entry))); { @@ -194,7 +194,7 @@ for (const [ value, _method ] of [ float32Array, fakeFloat32Array, stealthyFloat32Array, float64Array, fakeFloat64Array, stealthyFloat64Array, bigInt64Array, fakeBigInt64Array, stealthyBigInt64Array, - bigUint64Array, fakeBigUint64Array, stealthyBigUint64Array + bigUint64Array, fakeBigUint64Array, stealthyBigUint64Array, ]; const expected = { @@ -211,7 +211,7 @@ for (const [ value, _method ] of [ float32Array, stealthyFloat32Array, float64Array, stealthyFloat64Array, bigInt64Array, stealthyBigInt64Array, - bigUint64Array, stealthyBigUint64Array + bigUint64Array, stealthyBigUint64Array, ], isTypedArray: [ buffer, @@ -225,40 +225,40 @@ for (const [ value, _method ] of [ float32Array, stealthyFloat32Array, float64Array, stealthyFloat64Array, bigInt64Array, stealthyBigInt64Array, - bigUint64Array, stealthyBigUint64Array + bigUint64Array, stealthyBigUint64Array, ], isUint8Array: [ - buffer, uint8Array, stealthyUint8Array + buffer, uint8Array, stealthyUint8Array, ], isUint8ClampedArray: [ - uint8ClampedArray, stealthyUint8ClampedArray + uint8ClampedArray, stealthyUint8ClampedArray, ], isUint16Array: [ - uint16Array, stealthyUint16Array + uint16Array, stealthyUint16Array, ], isUint32Array: [ - uint32Array, stealthyUint32Array + uint32Array, stealthyUint32Array, ], isInt8Array: [ - int8Array, stealthyInt8Array + int8Array, stealthyInt8Array, ], isInt16Array: [ - int16Array, stealthyInt16Array + int16Array, stealthyInt16Array, ], isInt32Array: [ - int32Array, stealthyInt32Array + int32Array, stealthyInt32Array, ], isFloat32Array: [ - float32Array, stealthyFloat32Array + float32Array, stealthyFloat32Array, ], isFloat64Array: [ - float64Array, stealthyFloat64Array + float64Array, stealthyFloat64Array, ], isBigInt64Array: [ - bigInt64Array, stealthyBigInt64Array + bigInt64Array, stealthyBigInt64Array, ], isBigUint64Array: [ - bigUint64Array, stealthyBigUint64Array + bigUint64Array, stealthyBigUint64Array, ] }; diff --git a/test/parallel/test-util.js b/test/parallel/test-util.js index 204b2bca5b9f3b..42218be8581579 100644 --- a/test/parallel/test-util.js +++ b/test/parallel/test-util.js @@ -148,6 +148,8 @@ assert.strictEqual(util.isFunction(function() {}), true); assert.strictEqual(util.isFunction(), false); assert.strictEqual(util.isFunction('string'), false); +assert.strictEqual(util.toUSVString('string\ud801'), 'string\ufffd'); + { assert.strictEqual(util.types.isNativeError(new Error()), true); assert.strictEqual(util.types.isNativeError(new TypeError()), true); diff --git a/test/parallel/test-v8-coverage.js b/test/parallel/test-v8-coverage.js index 2e70ce91fead6d..ca5301b8bd08e0 100644 --- a/test/parallel/test-v8-coverage.js +++ b/test/parallel/test-v8-coverage.js @@ -20,7 +20,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/basic') + require.resolve('../fixtures/v8-coverage/basic'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -39,7 +39,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/throw') + require.resolve('../fixtures/v8-coverage/throw'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 1) { console.log(output.stderr.toString()); @@ -57,7 +57,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/exit-1') + require.resolve('../fixtures/v8-coverage/exit-1'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 1) { console.log(output.stderr.toString()); @@ -76,7 +76,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/sigint') + require.resolve('../fixtures/v8-coverage/sigint'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (!common.isWindows) { if (output.signal !== 'SIGINT') { @@ -97,7 +97,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/spawn-subprocess') + require.resolve('../fixtures/v8-coverage/spawn-subprocess'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -117,7 +117,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/worker') + require.resolve('../fixtures/v8-coverage/worker'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -137,7 +137,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/spawn-subprocess-no-cov') + require.resolve('../fixtures/v8-coverage/spawn-subprocess-no-cov'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -153,7 +153,7 @@ function nextdir() { { const coverageDirectory = path.join(tmpdir.path, nextdir()); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/async-hooks') + require.resolve('../fixtures/v8-coverage/async-hooks'), ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); if (output.status !== 0) { console.log(output.stderr.toString()); @@ -172,7 +172,7 @@ function nextdir() { const coverageDirectory = nextdir(); const absoluteCoverageDirectory = path.join(tmpdir.path, coverageDirectory); const output = spawnSync(process.execPath, [ - require.resolve('../fixtures/v8-coverage/basic') + require.resolve('../fixtures/v8-coverage/basic'), ], { cwd: tmpdir.path, env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js index f080f551396c8b..1d3b6ff81168e7 100644 --- a/test/parallel/test-v8-serdes.js +++ b/test/parallel/test-v8-serdes.js @@ -21,7 +21,7 @@ const objects = [ undefined, null, 42, - circular + circular, ]; const hostObject = new (internalBinding('js_stream').JSStream)(); diff --git a/test/parallel/test-v8-stats.js b/test/parallel/test-v8-stats.js index d79ab84956edf9..2093343859f2af 100644 --- a/test/parallel/test-v8-stats.js +++ b/test/parallel/test-v8-stats.js @@ -42,7 +42,7 @@ const expectedHeapSpaces = [ 'new_large_object_space', 'new_space', 'old_space', - 'read_only_space' + 'read_only_space', ]; const heapSpaceStatistics = v8.getHeapSpaceStatistics(); const actualHeapSpaceNames = heapSpaceStatistics.map((s) => s.space_name); diff --git a/test/parallel/test-v8-stop-coverage.js b/test/parallel/test-v8-stop-coverage.js new file mode 100644 index 00000000000000..020e18d8747eb2 --- /dev/null +++ b/test/parallel/test-v8-stop-coverage.js @@ -0,0 +1,34 @@ +'use strict'; + +if (!process.features.inspector) return; + +require('../common'); +const fixtures = require('../common/fixtures'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const fs = require('fs'); +const { spawnSync } = require('child_process'); + +tmpdir.refresh(); +const intervals = 20; + +{ + const output = spawnSync(process.execPath, [ + '-r', + fixtures.path('v8-coverage', 'stop-coverage'), + '-r', + fixtures.path('v8-coverage', 'take-coverage'), + fixtures.path('v8-coverage', 'interval'), + ], { + env: { + ...process.env, + NODE_V8_COVERAGE: tmpdir.path, + NODE_DEBUG_NATIVE: 'INSPECTOR_PROFILER', + TEST_INTERVALS: intervals + }, + }); + console.log(output.stderr.toString()); + assert.strictEqual(output.status, 0); + const coverageFiles = fs.readdirSync(tmpdir.path); + assert.strictEqual(coverageFiles.length, 0); +} diff --git a/test/parallel/test-v8-take-coverage-noop.js b/test/parallel/test-v8-take-coverage-noop.js new file mode 100644 index 00000000000000..c1c797bfd42220 --- /dev/null +++ b/test/parallel/test-v8-take-coverage-noop.js @@ -0,0 +1,32 @@ +'use strict'; + +if (!process.features.inspector) return; + +require('../common'); +const fixtures = require('../common/fixtures'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const fs = require('fs'); +const { spawnSync } = require('child_process'); + +tmpdir.refresh(); + +// v8.takeCoverage() should be a noop if NODE_V8_COVERAGE is not set. +const intervals = 40; +{ + const output = spawnSync(process.execPath, [ + '-r', + fixtures.path('v8-coverage', 'take-coverage'), + fixtures.path('v8-coverage', 'interval'), + ], { + env: { + ...process.env, + NODE_DEBUG_NATIVE: 'INSPECTOR_PROFILER', + TEST_INTERVALS: intervals + }, + }); + console.log(output.stderr.toString()); + assert.strictEqual(output.status, 0); + const coverageFiles = fs.readdirSync(tmpdir.path); + assert.strictEqual(coverageFiles.length, 0); +} diff --git a/test/parallel/test-v8-take-coverage.js b/test/parallel/test-v8-take-coverage.js new file mode 100644 index 00000000000000..b5e99ac30a5717 --- /dev/null +++ b/test/parallel/test-v8-take-coverage.js @@ -0,0 +1,85 @@ +'use strict'; + +if (!process.features.inspector) return; + +require('../common'); +const fixtures = require('../common/fixtures'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const { spawnSync } = require('child_process'); + +tmpdir.refresh(); +const intervals = 40; +// Outputs coverage when v8.takeCoverage() is invoked. +{ + const output = spawnSync(process.execPath, [ + '-r', + fixtures.path('v8-coverage', 'take-coverage'), + fixtures.path('v8-coverage', 'interval'), + ], { + env: { + ...process.env, + NODE_V8_COVERAGE: tmpdir.path, + NODE_DEBUG_NATIVE: 'INSPECTOR_PROFILER', + TEST_INTERVALS: intervals + }, + }); + console.log(output.stderr.toString()); + assert.strictEqual(output.status, 0); + const coverageFiles = fs.readdirSync(tmpdir.path); + + let coverages = []; + for (const coverageFile of coverageFiles) { + const coverage = require(path.join(tmpdir.path, coverageFile)); + for (const result of coverage.result) { + if (result.url.includes('/interval')) { + coverages.push({ + file: coverageFile, + func: result.functions.find((f) => f.functionName === 'interval'), + timestamp: coverage.timestamp + }); + } + } + } + + coverages = coverages.sort((a, b) => { return a.timestamp - b.timestamp; }); + // There should be two coverages taken, one triggered by v8.takeCoverage(), + // the other by process exit. + console.log('Coverages:', coverages); + assert.strictEqual(coverages.length, 3); + + let blockHitsTotal = 0; + for (let i = 0; i < coverages.length; ++i) { + const { ranges } = coverages[i].func; + console.log('coverage', i, ranges); + + if (i !== coverages.length - 1) { + // When the first two coverages are taken: + assert.strictEqual(ranges.length, 2); + const blockHits = ranges[0].count; + // The block inside interval() should be hit at least once. + assert.notStrictEqual(blockHits, 0); + blockHitsTotal += blockHits; + // The else branch should not be hit. + const elseBranchHits = ranges[1].count; + assert.strictEqual(elseBranchHits, 0); + } else { + // At process exit: + assert.strictEqual(ranges.length, 3); + const blockHits = ranges[0].count; + // The block inside interval() should be hit at least once more. + assert.notStrictEqual(blockHits, 0); + blockHitsTotal += blockHits; + // The else branch should be hit exactly once. + const elseBranchHits = ranges[2].count; + assert.strictEqual(elseBranchHits, 1); + const ifBranchHits = ranges[1].count; + assert.strictEqual(ifBranchHits, blockHits - elseBranchHits); + } + } + + // The block should be hit `intervals` times in total. + assert.strictEqual(blockHitsTotal, intervals); +} diff --git a/test/parallel/test-validators.js b/test/parallel/test-validators.js index 55c73b2d86d388..6b0d49c6997a65 100644 --- a/test/parallel/test-validators.js +++ b/test/parallel/test-validators.js @@ -55,9 +55,9 @@ const invalidArgValueError = { }, invalidArgTypeError); }); - validateArray([1], 'foo', { minLength: 1 }); + validateArray([1], 'foo', 1); assert.throws(() => { - validateArray([], 'foo', { minLength: 1 }); + validateArray([], 'foo', 1); }, invalidArgValueError); } @@ -96,7 +96,7 @@ const invalidArgValueError = { [ -1, {}, [], false, true, 1, Infinity, -Infinity, NaN, - undefined, null, 1.1 + undefined, null, 1.1, ].forEach((i) => assert.throws(() => validateString(i, 'name'), { code: 'ERR_INVALID_ARG_TYPE' })); @@ -106,7 +106,7 @@ const invalidArgValueError = { [ 'a', {}, [], false, true, undefined, null, '', ' ', '0x', - '-0x1', '-0o1', '-0b1', '0o', '0b' + '-0x1', '-0o1', '-0b1', '0o', '0b', ].forEach((i) => assert.throws(() => validateNumber(i, 'name'), { code: 'ERR_INVALID_ARG_TYPE' })); diff --git a/test/parallel/test-vm-context.js b/test/parallel/test-vm-context.js index 5226f0e6ac0ea2..bcfbb327bf72e8 100644 --- a/test/parallel/test-vm-context.js +++ b/test/parallel/test-vm-context.js @@ -82,7 +82,7 @@ const contextifiedObjectError = { [0.0, nonContextualObjectError], ['', nonContextualObjectError], [{}, contextifiedObjectError], - [[], contextifiedObjectError] + [[], contextifiedObjectError], ].forEach((e) => { assert.throws(() => { script.runInContext(e[0]); }, e[1]); assert.throws(() => { vm.runInContext('', e[0]); }, e[1]); diff --git a/test/parallel/test-vm-is-context.js b/test/parallel/test-vm-is-context.js index a47bee7c599c6b..02dc7a596db463 100644 --- a/test/parallel/test-vm-is-context.js +++ b/test/parallel/test-vm-is-context.js @@ -25,7 +25,7 @@ const assert = require('assert'); const vm = require('vm'); for (const valToTest of [ - 'string', null, undefined, 8.9, Symbol('sym'), true + 'string', null, undefined, 8.9, Symbol('sym'), true, ]) { assert.throws(() => { vm.isContext(valToTest); diff --git a/test/parallel/test-vm-module-errors.js b/test/parallel/test-vm-module-errors.js index 0d5610d140419f..888250cef84f6f 100644 --- a/test/parallel/test-vm-module-errors.js +++ b/test/parallel/test-vm-module-errors.js @@ -24,7 +24,7 @@ async function checkArgType() { for (const invalidOptions of [ 0, 1, null, true, 'str', () => {}, { identifier: 0 }, Symbol.iterator, - { context: null }, { context: 'hucairz' }, { context: {} } + { context: null }, { context: 'hucairz' }, { context: {} }, ]) { assert.throws(() => { new SourceTextModule('', invalidOptions); @@ -35,7 +35,7 @@ async function checkArgType() { } for (const invalidLinker of [ - 0, 1, undefined, null, true, 'str', {}, Symbol.iterator + 0, 1, undefined, null, true, 'str', {}, Symbol.iterator, ]) { await assert.rejects(async () => { const m = new SourceTextModule(''); diff --git a/test/parallel/test-vm-module-import-meta.js b/test/parallel/test-vm-module-import-meta.js index 2972bf548b46e8..4fa285a906086d 100644 --- a/test/parallel/test-vm-module-import-meta.js +++ b/test/parallel/test-vm-module-import-meta.js @@ -25,7 +25,7 @@ async function testBasic() { async function testInvalid() { for (const invalidValue of [ - null, {}, 0, Symbol.iterator, [], 'string', false + null, {}, 0, Symbol.iterator, [], 'string', false, ]) { assert.throws(() => { new SourceTextModule('', { diff --git a/test/parallel/test-vm-sigint-existing-handler.js b/test/parallel/test-vm-sigint-existing-handler.js index c6072d29d854cc..47e5e80c743023 100644 --- a/test/parallel/test-vm-sigint-existing-handler.js +++ b/test/parallel/test-vm-sigint-existing-handler.js @@ -11,7 +11,7 @@ const spawn = require('child_process').spawn; const methods = [ 'runInThisContext', - 'runInContext' + 'runInContext', ]; if (process.argv[2] === 'child') { diff --git a/test/parallel/test-vm-syntax-error-message.js b/test/parallel/test-vm-syntax-error-message.js index 5a16239f5653e9..c49ff6aeb1925e 100644 --- a/test/parallel/test-vm-syntax-error-message.js +++ b/test/parallel/test-vm-syntax-error-message.js @@ -8,7 +8,7 @@ const p = child_process.spawn(process.execPath, [ 'vm = require("vm");' + 'context = vm.createContext({});' + 'try { vm.runInContext("throw new Error(\'boo\')", context); } ' + - 'catch (e) { console.log(e.message); }' + 'catch (e) { console.log(e.message); }', ]); p.stderr.on('data', common.mustNotCall()); diff --git a/test/parallel/test-vm-syntax-error-stderr.js b/test/parallel/test-vm-syntax-error-stderr.js index e8d48235cf3ede..dd0667c65302ae 100644 --- a/test/parallel/test-vm-syntax-error-stderr.js +++ b/test/parallel/test-vm-syntax-error-stderr.js @@ -9,7 +9,7 @@ const wrong_script = fixtures.path('keys/rsa_cert.crt'); const p = child_process.spawn(process.execPath, [ '-e', 'require(process.argv[1]);', - wrong_script + wrong_script, ]); p.stdout.on('data', common.mustNotCall()); diff --git a/test/parallel/test-whatwg-encoding-custom-api-basics.js b/test/parallel/test-whatwg-encoding-custom-api-basics.js index c39bce5d74ee99..71b573a8df962e 100644 --- a/test/parallel/test-whatwg-encoding-custom-api-basics.js +++ b/test/parallel/test-whatwg-encoding-custom-api-basics.js @@ -28,7 +28,7 @@ const sample = 'z\xA2\u6C34\uD834\uDD1E\uF8FF\uDBFF\uDFFD\uFFFE'; 0x7A, 0xC2, 0xA2, 0xE6, 0xB0, 0xB4, 0xF0, 0x9D, 0x84, 0x9E, 0xEF, 0xA3, 0xBF, 0xF4, 0x8F, 0xBF, 0xBD, 0xEF, - 0xBF, 0xBE + 0xBF, 0xBE, ]; const encoded = new TextEncoder().encode(string); assert.deepStrictEqual([].slice.call(encoded), bytes); @@ -46,7 +46,7 @@ testDecodeSample( [ 0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xF8, - 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF + 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF, ] ); @@ -56,6 +56,6 @@ testDecodeSample( [ 0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xF8, - 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF + 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF, ] ); diff --git a/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js b/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js index aed0f14ef7fcae..164088270c3e90 100644 --- a/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js +++ b/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js @@ -13,7 +13,7 @@ if (!common.hasIntl) [ { encoding: 'utf-8', sequence: [0xC0] }, { encoding: 'utf-16le', sequence: [0x00] }, - { encoding: 'utf-16be', sequence: [0x00] } + { encoding: 'utf-16be', sequence: [0x00] }, ].forEach((testCase) => { const data = new Uint8Array([testCase.sequence]); assert.throws( diff --git a/test/parallel/test-whatwg-encoding-custom-internals.js b/test/parallel/test-whatwg-encoding-custom-internals.js index 64bf6abe0d97be..c810b43b1ae447 100644 --- a/test/parallel/test-whatwg-encoding-custom-internals.js +++ b/test/parallel/test-whatwg-encoding-custom-internals.js @@ -13,16 +13,16 @@ const { getEncodingFromLabel } = require('internal/encoding'); const mappings = { 'utf-8': [ 'unicode-1-1-utf-8', - 'utf8' + 'utf8', ], 'utf-16be': [], 'utf-16le': [ - 'utf-16' + 'utf-16', ], 'ibm866': [ '866', 'cp866', - 'csibm866' + 'csibm866', ], 'iso-8859-2': [ 'csisolatin2', @@ -32,7 +32,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso_8859-2', 'iso_8859-2:1987', 'l2', - 'latin2' + 'latin2', ], 'iso-8859-3': [ 'csisolatin3', @@ -42,7 +42,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso_8859-3', 'iso_8859-3:1988', 'l3', - 'latin3' + 'latin3', ], 'iso-8859-4': [ 'csisolatin4', @@ -52,7 +52,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso_8859-4', 'iso_8859-4:1988', 'l4', - 'latin4' + 'latin4', ], 'iso-8859-5': [ 'csisolatincyrillic', @@ -61,7 +61,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso8859-5', 'iso88595', 'iso_8859-5', - 'iso_8859-5:1988' + 'iso_8859-5:1988', ], 'iso-8859-6': [ 'arabic', @@ -76,7 +76,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso8859-6', 'iso88596', 'iso_8859-6', - 'iso_8859-6:1987' + 'iso_8859-6:1987', ], 'iso-8859-7': [ 'csisolatingreek', @@ -89,7 +89,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso88597', 'iso_8859-7', 'iso_8859-7:1987', - 'sun_eu_greek' + 'sun_eu_greek', ], 'iso-8859-8': [ 'csiso88598e', @@ -101,11 +101,11 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso88598', 'iso_8859-8', 'iso_8859-8:1988', - 'visual' + 'visual', ], 'iso-8859-8-i': [ 'csiso88598i', - 'logical' + 'logical', ], 'iso-8859-10': [ 'csisolatin6', @@ -113,51 +113,51 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso8859-10', 'iso885910', 'l6', - 'latin6' + 'latin6', ], 'iso-8859-13': [ 'iso8859-13', - 'iso885913' + 'iso885913', ], 'iso-8859-14': [ 'iso8859-14', - 'iso885914' + 'iso885914', ], 'iso-8859-15': [ 'csisolatin9', 'iso8859-15', 'iso885915', 'iso_8859-15', - 'l9' + 'l9', ], 'koi8-r': [ 'cskoi8r', 'koi', 'koi8', - 'koi8_r' + 'koi8_r', ], 'koi8-u': [ - 'koi8-ru' + 'koi8-ru', ], 'macintosh': [ 'csmacintosh', 'mac', - 'x-mac-roman' + 'x-mac-roman', ], 'windows-874': [ 'dos-874', 'iso-8859-11', 'iso8859-11', 'iso885911', - 'tis-620' + 'tis-620', ], 'windows-1250': [ 'cp1250', - 'x-cp1250' + 'x-cp1250', ], 'windows-1251': [ 'cp1251', - 'x-cp1251' + 'x-cp1251', ], 'windows-1252': [ 'ansi_x3.4-1968', @@ -175,11 +175,11 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'l1', 'latin1', 'us-ascii', - 'x-cp1252' + 'x-cp1252', ], 'windows-1253': [ 'cp1253', - 'x-cp1253' + 'x-cp1253', ], 'windows-1254': [ 'cp1254', @@ -192,26 +192,26 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'iso_8859-9:1989', 'l5', 'latin5', - 'x-cp1254' + 'x-cp1254', ], 'windows-1255': [ 'cp1255', - 'x-cp1255' + 'x-cp1255', ], 'windows-1256': [ 'cp1256', - 'x-cp1256' + 'x-cp1256', ], 'windows-1257': [ 'cp1257', - 'x-cp1257' + 'x-cp1257', ], 'windows-1258': [ 'cp1258', - 'x-cp1258' + 'x-cp1258', ], 'x-mac-cyrillic': [ - 'x-mac-ukrainian' + 'x-mac-ukrainian', ], 'gbk': [ 'chinese', @@ -221,21 +221,21 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'gb_2312', 'gb_2312-80', 'iso-ir-58', - 'x-gbk' + 'x-gbk', ], 'gb18030': [ ], 'big5': [ 'big5-hkscs', 'cn-big5', 'csbig5', - 'x-x-big5' + 'x-x-big5', ], 'euc-jp': [ 'cseucpkdfmtjapanese', - 'x-euc-jp' + 'x-euc-jp', ], 'iso-2022-jp': [ - 'csiso2022jp' + 'csiso2022jp', ], 'shift_jis': [ 'csshiftjis', @@ -244,7 +244,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'shift-jis', 'sjis', 'windows-31j', - 'x-sjis' + 'x-sjis', ], 'euc-kr': [ ' euc-kr \t', @@ -257,7 +257,7 @@ const { getEncodingFromLabel } = require('internal/encoding'); 'ks_c_5601-1989', 'ksc5601', 'ksc_5601', - 'windows-949' + 'windows-949', ] }; Object.entries(mappings).forEach((i) => { diff --git a/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js b/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js index 3323f5b3d126f4..a701d79a285a16 100644 --- a/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js +++ b/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js @@ -11,7 +11,7 @@ const assert = require('assert'); 'utf8', 'utf-16be', 'utf-16le', - 'utf-16' + 'utf-16', ].forEach((i) => { ['\u0000', '\u000b', '\u00a0', '\u2028', '\u2029'].forEach((ws) => { assert.throws( diff --git a/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js b/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js index 9f6368dcd5e93f..94fc3318d1f15e 100644 --- a/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js +++ b/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js @@ -15,7 +15,7 @@ const cases = [ { encoding: 'utf-16le', bytes: [0xFF, 0xFE, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00] - } + }, ]; cases.forEach((testCase) => { diff --git a/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js b/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js index f4d9ef8d42dced..2a8eac5f187406 100644 --- a/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js +++ b/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js @@ -40,7 +40,7 @@ const bad = [ input: [0x00, 0xdc, 0x00, 0xd8], expected: '\uFFFD\uFFFD', name: 'swapped surrogate pair' - } + }, ]; bad.forEach((t) => { diff --git a/test/parallel/test-whatwg-url-custom-parsing.js b/test/parallel/test-whatwg-url-custom-parsing.js index 6d9a9a816eff83..a07d776d0a25cc 100644 --- a/test/parallel/test-whatwg-url-custom-parsing.js +++ b/test/parallel/test-whatwg-url-custom-parsing.js @@ -29,7 +29,7 @@ const typeFailures = [ { input: new RegExp() }, { input: 'test', base: null }, { input: 'http://nodejs.org', base: null }, - { input: () => {} } + { input: () => {} }, ]; // See https://github.com/w3c/web-platform-tests/pull/10955 diff --git a/test/parallel/test-whatwg-url-custom-properties.js b/test/parallel/test-whatwg-url-custom-properties.js index 0267c7fca41820..82f07544148a20 100644 --- a/test/parallel/test-whatwg-url-custom-properties.js +++ b/test/parallel/test-whatwg-url-custom-properties.js @@ -5,7 +5,6 @@ require('../common'); const assert = require('assert'); -const urlToOptions = require('internal/url').urlToOptions; const url = new URL('http://user:pass@foo.bar.com:21/aaa/zzz?l=24#test'); const oldParams = url.searchParams; // For test of [SameObject] @@ -130,41 +129,6 @@ assert.strictEqual(url.toString(), assert.strictEqual((delete url.searchParams), true); assert.strictEqual(url.searchParams, oldParams); -// Test urlToOptions -{ - const urlObj = new URL('http://user:pass@foo.bar.com:21/aaa/zzz?l=24#test'); - const opts = urlToOptions(urlObj); - assert.strictEqual(opts instanceof URL, false); - assert.strictEqual(opts.protocol, 'http:'); - assert.strictEqual(opts.auth, 'user:pass'); - assert.strictEqual(opts.hostname, 'foo.bar.com'); - assert.strictEqual(opts.port, 21); - assert.strictEqual(opts.path, '/aaa/zzz?l=24'); - assert.strictEqual(opts.pathname, '/aaa/zzz'); - assert.strictEqual(opts.search, '?l=24'); - assert.strictEqual(opts.hash, '#test'); - - const { hostname } = urlToOptions(new URL('http://[::1]:21')); - assert.strictEqual(hostname, '::1'); - - // If a WHATWG URL object is copied, it is possible that the resulting copy - // contains the Symbols that Node uses for brand checking, but not the data - // properties, which are getters. Verify that urlToOptions() can handle such - // a case. - const copiedUrlObj = { ...urlObj }; - const copiedOpts = urlToOptions(copiedUrlObj); - assert.strictEqual(copiedOpts instanceof URL, false); - assert.strictEqual(copiedOpts.protocol, undefined); - assert.strictEqual(copiedOpts.auth, undefined); - assert.strictEqual(copiedOpts.hostname, undefined); - assert.strictEqual(copiedOpts.port, NaN); - assert.strictEqual(copiedOpts.path, ''); - assert.strictEqual(copiedOpts.pathname, undefined); - assert.strictEqual(copiedOpts.search, undefined); - assert.strictEqual(copiedOpts.hash, undefined); - assert.strictEqual(copiedOpts.href, undefined); -} - // Test special origins [ { expected: 'https://whatwg.org', @@ -176,7 +140,7 @@ assert.strictEqual(url.searchParams, oldParams); { expected: 'ws://example.org', url: 'ws://example.org/foo' }, { expected: 'wss://example.org', url: 'wss://example.org/foo' }, { expected: 'null', url: 'file:///tmp/mock/path' }, - { expected: 'null', url: 'npm://nodejs/rules' } + { expected: 'null', url: 'npm://nodejs/rules' }, ].forEach((test) => { assert.strictEqual(new URL(test.url).origin, test.expected); }); diff --git a/test/parallel/test-worker-beforeexit-throw-exit.js b/test/parallel/test-worker-beforeexit-throw-exit.js new file mode 100644 index 00000000000000..2aa255ee82af8a --- /dev/null +++ b/test/parallel/test-worker-beforeexit-throw-exit.js @@ -0,0 +1,28 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { Worker } = require('worker_threads'); + +// Test that 'exit' is emitted if 'beforeExit' throws, both inside the Worker. + +const workerData = new Uint8Array(new SharedArrayBuffer(2)); +const w = new Worker(` + const { workerData } = require('worker_threads'); + process.on('exit', () => { + workerData[0] = 100; + }); + process.on('beforeExit', () => { + workerData[1] = 200; + throw new Error('banana'); + }); +`, { eval: true, workerData }); + +w.on('error', common.mustCall((err) => { + assert.strictEqual(err.message, 'banana'); +})); + +w.on('exit', common.mustCall((code) => { + assert.strictEqual(code, 1); + assert.strictEqual(workerData[0], 100); + assert.strictEqual(workerData[1], 200); +})); diff --git a/test/parallel/test-worker-cleanexit-with-moduleload.js b/test/parallel/test-worker-cleanexit-with-moduleload.js index 0de9ad71d3dc7b..f2e8ad786f1a88 100644 --- a/test/parallel/test-worker-cleanexit-with-moduleload.js +++ b/test/parallel/test-worker-cleanexit-with-moduleload.js @@ -10,7 +10,7 @@ const common = require('../common'); const { Worker } = require('worker_threads'); const modules = [ 'fs', 'assert', 'async_hooks', 'buffer', 'child_process', - 'net', 'http', 'os', 'path', 'v8', 'vm' + 'net', 'http', 'os', 'path', 'v8', 'vm', ]; if (common.hasCrypto) { modules.push('https'); diff --git a/test/parallel/test-worker-debug.js b/test/parallel/test-worker-debug.js index ba520b16867158..758d7acfc3a99f 100644 --- a/test/parallel/test-worker-debug.js +++ b/test/parallel/test-worker-debug.js @@ -144,7 +144,7 @@ async function testBasicWorkerDebug(session, post) { const workerSession = new WorkerSession(session, sessionId); const contextEventPromises = Promise.all([ waitForEvent(workerSession, 'Runtime.executionContextCreated'), - waitForEvent(workerSession, 'Runtime.executionContextDestroyed') + waitForEvent(workerSession, 'Runtime.executionContextDestroyed'), ]); const consolePromise = waitForEvent(workerSession, 'Runtime.consoleAPICalled') .then((notification) => notification.params.args[0].value); @@ -219,7 +219,7 @@ async function testWaitForDisconnectInWorker(session, post) { const attached = [ waitForWorkerAttach(session), - waitForWorkerAttach(sessionWithoutWaiting) + waitForWorkerAttach(sessionWithoutWaiting), ]; let worker = null; diff --git a/test/parallel/test-worker-environmentdata.js b/test/parallel/test-worker-environmentdata.js new file mode 100644 index 00000000000000..cac97b746acef8 --- /dev/null +++ b/test/parallel/test-worker-environmentdata.js @@ -0,0 +1,33 @@ +'use strict'; + +require('../common'); +const { + Worker, + getEnvironmentData, + setEnvironmentData, + threadId, +} = require('worker_threads'); + +const { + deepStrictEqual, + strictEqual, +} = require('assert'); + +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + setEnvironmentData('foo', 'bar'); + setEnvironmentData('hello', { value: 'world' }); + setEnvironmentData(1, 2); + strictEqual(getEnvironmentData(1), 2); + setEnvironmentData(1); // Delete it, key won't show up in the worker. + new Worker(__filename); + setEnvironmentData('hello'); // Delete it. Has no impact on the worker. +} else { + strictEqual(getEnvironmentData('foo'), 'bar'); + deepStrictEqual(getEnvironmentData('hello'), { value: 'world' }); + strictEqual(getEnvironmentData(1), undefined); + + // Recurse to make sure the environment data is inherited + if (threadId <= 2) + new Worker(__filename); +} diff --git a/test/parallel/test-worker-event.js b/test/parallel/test-worker-event.js new file mode 100644 index 00000000000000..01e95ead8316cb --- /dev/null +++ b/test/parallel/test-worker-event.js @@ -0,0 +1,14 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { + Worker, + threadId: parentThreadId, +} = require('worker_threads'); + +process.on('worker', common.mustCall(({ threadId }) => { + assert.strictEqual(threadId, parentThreadId + 1); +})); + +new Worker('', { eval: true }); diff --git a/test/parallel/test-worker-message-port-multiple-sharedarraybuffers.js b/test/parallel/test-worker-message-port-multiple-sharedarraybuffers.js index eb68236e4d6788..efec7f0190d2e5 100644 --- a/test/parallel/test-worker-message-port-multiple-sharedarraybuffers.js +++ b/test/parallel/test-worker-message-port-multiple-sharedarraybuffers.js @@ -7,7 +7,7 @@ const { MessageChannel } = require('worker_threads'); const obj = [ [ new SharedArrayBuffer(0), new SharedArrayBuffer(1) ], - [ new SharedArrayBuffer(2), new SharedArrayBuffer(3) ] + [ new SharedArrayBuffer(2), new SharedArrayBuffer(3) ], ]; const { port1, port2 } = new MessageChannel(); diff --git a/test/parallel/test-worker-message-port.js b/test/parallel/test-worker-message-port.js index 51618e4fab1850..1b51aea701c0b2 100644 --- a/test/parallel/test-worker-message-port.js +++ b/test/parallel/test-worker-message-port.js @@ -166,6 +166,6 @@ const { MessageChannel, MessagePort } = require('worker_threads'); Object.getOwnPropertyNames(MessagePort.prototype).sort(), [ 'close', 'constructor', 'onmessage', 'onmessageerror', 'postMessage', - 'ref', 'start', 'unref' + 'ref', 'start', 'unref', ]); } diff --git a/test/parallel/test-worker-process-argv.js b/test/parallel/test-worker-process-argv.js index ebdebe02ab855c..0e541c453e2419 100644 --- a/test/parallel/test-worker-process-argv.js +++ b/test/parallel/test-worker-process-argv.js @@ -35,7 +35,7 @@ if (isMainThread) { `, { argv: [null, 'foo', 123, Symbol('bar')], eval: true - }) + }), ].forEach((worker) => { worker.on('exit', common.mustCall((code) => { assert.strictEqual(code, 0); diff --git a/test/parallel/test-worker-type-check.js b/test/parallel/test-worker-type-check.js index 88965f4be4c62d..9a718dfad055b4 100644 --- a/test/parallel/test-worker-type-check.js +++ b/test/parallel/test-worker-type-check.js @@ -13,7 +13,7 @@ const { Worker } = require('worker_threads'); Symbol('test'), {}, [], - () => {} + () => {}, ].forEach((val) => { assert.throws( () => new Worker(val), diff --git a/test/parallel/test-zlib-bytes-read.js b/test/parallel/test-zlib-bytes-read.js index a7a4e523f7060b..605281cd3bd7e6 100644 --- a/test/parallel/test-zlib-bytes-read.js +++ b/test/parallel/test-zlib-bytes-read.js @@ -32,7 +32,7 @@ for (const method of [ ['createGzip', 'createUnzip', false], ['createDeflate', 'createInflate', true], ['createDeflateRaw', 'createInflateRaw', true], - ['createBrotliCompress', 'createBrotliDecompress', true] + ['createBrotliCompress', 'createBrotliDecompress', true], ]) { let compWriter; let compData = Buffer.alloc(0); diff --git a/test/parallel/test-zlib-const.js b/test/parallel/test-zlib-const.js index d25a1ca6be033a..342c8c712a475b 100644 --- a/test/parallel/test-zlib-const.js +++ b/test/parallel/test-zlib-const.js @@ -7,13 +7,13 @@ const zlib = require('zlib'); assert.strictEqual(zlib.constants.Z_OK, 0, [ 'Expected Z_OK to be 0;', - `got ${zlib.constants.Z_OK}` + `got ${zlib.constants.Z_OK}`, ].join(' ')); zlib.constants.Z_OK = 1; assert.strictEqual(zlib.constants.Z_OK, 0, [ 'Z_OK should be immutable.', - `Expected to get 0, got ${zlib.constants.Z_OK}` + `Expected to get 0, got ${zlib.constants.Z_OK}`, ].join(' ')); assert.strictEqual(zlib.codes.Z_OK, 0, @@ -22,17 +22,17 @@ zlib.codes.Z_OK = 1; assert.strictEqual(zlib.codes.Z_OK, 0, [ 'Z_OK should be immutable.', - `Expected to get 0, got ${zlib.codes.Z_OK}` + `Expected to get 0, got ${zlib.codes.Z_OK}`, ].join(' ')); zlib.codes = { Z_OK: 1 }; assert.strictEqual(zlib.codes.Z_OK, 0, [ 'Z_OK should be immutable.', - `Expected to get 0, got ${zlib.codes.Z_OK}` + `Expected to get 0, got ${zlib.codes.Z_OK}`, ].join(' ')); assert.ok(Object.isFrozen(zlib.codes), [ 'Expected zlib.codes to be frozen, but Object.isFrozen', - `returned ${Object.isFrozen(zlib.codes)}` + `returned ${Object.isFrozen(zlib.codes)}`, ].join(' ')); diff --git a/test/parallel/test-zlib-convenience-methods.js b/test/parallel/test-zlib-convenience-methods.js index 4757eef42c236b..01ec7e211bd5aa 100644 --- a/test/parallel/test-zlib-convenience-methods.js +++ b/test/parallel/test-zlib-convenience-methods.js @@ -45,7 +45,7 @@ for (const [type, expect] of [ ['Buffer', expectBuf], ...common.getBufferSources(expectBuf).map((obj) => [obj[Symbol.toStringTag], obj] - ) + ), ]) { for (const method of [ ['gzip', 'gunzip', 'Gzip', 'Gunzip'], diff --git a/test/parallel/test-zlib-dictionary.js b/test/parallel/test-zlib-dictionary.js index 11c8959cc68505..49a01d5a03ee4b 100644 --- a/test/parallel/test-zlib-dictionary.js +++ b/test/parallel/test-zlib-dictionary.js @@ -39,14 +39,14 @@ const spdyDict = Buffer.from([ 'ndayTuesdayWednesdayThursdayFridaySaturdaySundayJanFebMarAprMayJunJulAugSe', 'pOctNovDecchunkedtext/htmlimage/pngimage/jpgimage/gifapplication/xmlapplic', 'ation/xhtmltext/plainpublicmax-agecharset=iso-8859-1utf-8gzipdeflateHTTP/1', - '.1statusversionurl\0' + '.1statusversionurl\0', ].join('')); const input = [ 'HTTP/1.1 200 Ok', 'Server: node.js', 'Content-Length: 0', - '' + '', ].join('\r\n'); function basicDictionaryTest(spdyDict) { diff --git a/test/parallel/test-zlib-empty-buffer.js b/test/parallel/test-zlib-empty-buffer.js index f225d72e649389..27fd1340fd1eb4 100644 --- a/test/parallel/test-zlib-empty-buffer.js +++ b/test/parallel/test-zlib-empty-buffer.js @@ -14,7 +14,7 @@ const emptyBuffer = Buffer.alloc(0); [ promisify(zlib.deflateRaw), promisify(zlib.inflateRaw), 'raw' ], [ promisify(zlib.deflate), promisify(zlib.inflate), 'deflate' ], [ promisify(zlib.gzip), promisify(zlib.gunzip), 'gzip' ], - [ promisify(zlib.brotliCompress), promisify(zlib.brotliDecompress), 'br' ] + [ promisify(zlib.brotliCompress), promisify(zlib.brotliDecompress), 'br' ], ]) { const compressed = await compress(emptyBuffer); const decompressed = await decompress(compressed); diff --git a/test/parallel/test-zlib-flush-write-sync-interleaved.js b/test/parallel/test-zlib-flush-write-sync-interleaved.js index 9fed592a34bb1b..f8387f40069b5f 100644 --- a/test/parallel/test-zlib-flush-write-sync-interleaved.js +++ b/test/parallel/test-zlib-flush-write-sync-interleaved.js @@ -52,6 +52,6 @@ process.on('exit', () => { 'compress end', { read: 'abc' }, { read: 'def' }, - { read: 'ghi' } + { read: 'ghi' }, ]); }); diff --git a/test/parallel/test-zlib-from-concatenated-gzip.js b/test/parallel/test-zlib-from-concatenated-gzip.js index cb9b5dd34c9f44..1de36dacf95f3d 100644 --- a/test/parallel/test-zlib-from-concatenated-gzip.js +++ b/test/parallel/test-zlib-from-concatenated-gzip.js @@ -15,7 +15,7 @@ const defEncoded = zlib.gzipSync(def); const data = Buffer.concat([ abcEncoded, - defEncoded + defEncoded, ]); assert.strictEqual(zlib.gunzipSync(data).toString(), (abc + def)); @@ -31,7 +31,7 @@ zlib.unzip(data, common.mustSucceed((result) => { // Multi-member support does not apply to zlib inflate/deflate. zlib.unzip(Buffer.concat([ zlib.deflateSync('abc'), - zlib.deflateSync('def') + zlib.deflateSync('def'), ]), common.mustSucceed((result) => { assert.strictEqual(result.toString(), abc); })); @@ -75,7 +75,7 @@ fs.createReadStream(pmmFileGz) // First write: write "abc" + the first bytes of "def" unzip.write(Buffer.concat([ - abcEncoded, defEncoded.slice(0, offset) + abcEncoded, defEncoded.slice(0, offset), ])); // Write remaining bytes of "def" diff --git a/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js b/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js index 14909f4cafcb08..477a6c544f2c07 100644 --- a/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js +++ b/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js @@ -9,7 +9,7 @@ const zlib = require('zlib'); let data = Buffer.concat([ zlib.gzipSync('abc'), zlib.gzipSync('def'), - Buffer.alloc(10) + Buffer.alloc(10), ]); assert.strictEqual(zlib.gunzipSync(data).toString(), 'abcdef'); @@ -28,7 +28,7 @@ data = Buffer.concat([ zlib.gzipSync('abc'), zlib.gzipSync('def'), Buffer.from([0x1f, 0x8b, 0xff, 0xff]), - Buffer.alloc(10) + Buffer.alloc(10), ]); assert.throws( @@ -50,7 +50,7 @@ zlib.gunzip(data, common.mustCall((err, result) => { data = Buffer.concat([ zlib.gzipSync('abc'), zlib.gzipSync('def'), - Buffer.from([0x1f, 0x8b, 0xff, 0xff]) + Buffer.from([0x1f, 0x8b, 0xff, 0xff]), ]); assert.throws( diff --git a/test/parallel/test-zlib-invalid-input.js b/test/parallel/test-zlib-invalid-input.js index eb651be00fb0a6..67793984a991c5 100644 --- a/test/parallel/test-zlib-invalid-input.js +++ b/test/parallel/test-zlib-invalid-input.js @@ -30,7 +30,7 @@ const nonStringInputs = [ 1, true, { a: 1 }, - ['a'] + ['a'], ]; // zlib.Unzip classes need to get valid data, or else they'll throw. @@ -39,7 +39,7 @@ const unzips = [ zlib.Gunzip(), zlib.Inflate(), zlib.InflateRaw(), - zlib.BrotliDecompress() + zlib.BrotliDecompress(), ]; nonStringInputs.forEach(common.mustCall((input) => { diff --git a/test/parallel/test-zlib-not-string-or-buffer.js b/test/parallel/test-zlib-not-string-or-buffer.js index b7b9a465cb89e1..a0954a0e1eaef7 100644 --- a/test/parallel/test-zlib-not-string-or-buffer.js +++ b/test/parallel/test-zlib-not-string-or-buffer.js @@ -15,7 +15,7 @@ const zlib = require('zlib'); 0, 1, [1, 2, 3], - { foo: 'bar' } + { foo: 'bar' }, ].forEach((input) => { assert.throws( () => zlib.deflateSync(input), diff --git a/test/parallel/test-zlib-premature-end.js b/test/parallel/test-zlib-premature-end.js index 9e191c4c88282c..17446c907ddc13 100644 --- a/test/parallel/test-zlib-premature-end.js +++ b/test/parallel/test-zlib-premature-end.js @@ -8,7 +8,7 @@ const input = '0123456789'.repeat(4); for (const [ compress, decompressor ] of [ [ zlib.deflateRawSync, zlib.createInflateRaw ], [ zlib.deflateSync, zlib.createInflate ], - [ zlib.brotliCompressSync, zlib.createBrotliDecompress ] + [ zlib.brotliCompressSync, zlib.createBrotliDecompress ], ]) { const compressed = compress(input); const trailingData = Buffer.from('not valid compressed data'); @@ -18,7 +18,7 @@ for (const [ compress, decompressor ] of [ (stream) => { stream.write(compressed); stream.write(trailingData); }, (stream) => { stream.write(compressed); stream.end(trailingData); }, (stream) => { stream.write(Buffer.concat([compressed, trailingData])); }, - (stream) => { stream.end(Buffer.concat([compressed, trailingData])); } + (stream) => { stream.end(Buffer.concat([compressed, trailingData])); }, ]) { let output = ''; const stream = decompressor(); diff --git a/test/parallel/test-zlib-reset-before-write.js b/test/parallel/test-zlib-reset-before-write.js index 6b2b107d25d313..57bd7083803810 100644 --- a/test/parallel/test-zlib-reset-before-write.js +++ b/test/parallel/test-zlib-reset-before-write.js @@ -12,7 +12,7 @@ for (const fn of [ z.reset(); cb(); }, - (z, cb) => z.params(0, zlib.constants.Z_DEFAULT_STRATEGY, cb) + (z, cb) => z.params(0, zlib.constants.Z_DEFAULT_STRATEGY, cb), ]) { const deflate = zlib.createDeflate(); const inflate = zlib.createInflate(); diff --git a/test/parallel/test-zlib-truncated.js b/test/parallel/test-zlib-truncated.js index 304f76b9da8651..bcd55923c9999c 100644 --- a/test/parallel/test-zlib-truncated.js +++ b/test/parallel/test-zlib-truncated.js @@ -21,7 +21,7 @@ const errMessage = /unexpected end of file/; { comp: 'gzip', decomp: 'gunzip', decompSync: 'gunzipSync' }, { comp: 'gzip', decomp: 'unzip', decompSync: 'unzipSync' }, { comp: 'deflate', decomp: 'inflate', decompSync: 'inflateSync' }, - { comp: 'deflateRaw', decomp: 'inflateRaw', decompSync: 'inflateRawSync' } + { comp: 'deflateRaw', decomp: 'inflateRaw', decompSync: 'inflateRawSync' }, ].forEach(function(methods) { zlib[methods.comp](inputString, function(err, compressed) { assert.ifError(err); diff --git a/test/parallel/test-zlib-unzip-one-byte-chunks.js b/test/parallel/test-zlib-unzip-one-byte-chunks.js index be3b5dda818cf6..3d3d9c37ff0198 100644 --- a/test/parallel/test-zlib-unzip-one-byte-chunks.js +++ b/test/parallel/test-zlib-unzip-one-byte-chunks.js @@ -5,7 +5,7 @@ const zlib = require('zlib'); const data = Buffer.concat([ zlib.gzipSync('abc'), - zlib.gzipSync('def') + zlib.gzipSync('def'), ]); const resultBuffers = []; diff --git a/test/pseudo-tty/test-set-raw-mode-reset-process-exit.js b/test/pseudo-tty/test-set-raw-mode-reset-process-exit.js index b6857eaebbdf60..1f80ab304d540d 100644 --- a/test/pseudo-tty/test-set-raw-mode-reset-process-exit.js +++ b/test/pseudo-tty/test-set-raw-mode-reset-process-exit.js @@ -5,7 +5,7 @@ const child_process = require('child_process'); // Tests that exiting through process.exit() resets the TTY mode. child_process.spawnSync(process.execPath, [ - '-e', 'process.stdin.setRawMode(true); process.exit(0)' + '-e', 'process.stdin.setRawMode(true); process.exit(0)', ], { stdio: 'inherit' }); const { stdout } = child_process.spawnSync('stty', { diff --git a/test/pseudo-tty/test-set-raw-mode-reset-signal.js b/test/pseudo-tty/test-set-raw-mode-reset-signal.js index f953a01331c050..8b666f3ee0a8c3 100644 --- a/test/pseudo-tty/test-set-raw-mode-reset-signal.js +++ b/test/pseudo-tty/test-set-raw-mode-reset-signal.js @@ -5,7 +5,7 @@ const child_process = require('child_process'); // Tests that exiting through a catchable signal resets the TTY mode. const proc = child_process.spawn(process.execPath, [ - '-e', 'process.stdin.setRawMode(true); console.log("Y"); while(true) {}' + '-e', 'process.stdin.setRawMode(true); console.log("Y"); while(true) {}', ], { stdio: ['inherit', 'pipe', 'inherit'] }); proc.stdout.on('data', common.mustCall(() => { diff --git a/test/pseudo-tty/test-set-raw-mode-reset.js b/test/pseudo-tty/test-set-raw-mode-reset.js index ab8f1125bfc602..7cd9bba80672fe 100644 --- a/test/pseudo-tty/test-set-raw-mode-reset.js +++ b/test/pseudo-tty/test-set-raw-mode-reset.js @@ -6,7 +6,7 @@ const child_process = require('child_process'); // Refs: https://github.com/nodejs/node/issues/21020 child_process.spawnSync(process.execPath, [ - '-e', 'process.stdin.setRawMode(true)' + '-e', 'process.stdin.setRawMode(true)', ], { stdio: 'inherit' }); const { stdout } = child_process.spawnSync('stty', { diff --git a/test/pummel/test-fs-watch-system-limit.js b/test/pummel/test-fs-watch-system-limit.js index 8b9cb62ad0a007..ce390dd3d0bb83 100644 --- a/test/pummel/test-fs-watch-system-limit.js +++ b/test/pummel/test-fs-watch-system-limit.js @@ -37,7 +37,7 @@ function spawnProcesses() { [ '-e', `process.chdir(${JSON.stringify(__dirname)}); for (const file of fs.readdirSync('.')) - fs.watch(file, () => {});` + fs.watch(file, () => {});`, ], { stdio: ['inherit', 'inherit', 'pipe'] }); proc.stderr.pipe(gatherStderr); processes.push(proc); diff --git a/test/pummel/test-heapdump-dns.js b/test/pummel/test-heapdump-dns.js index fa9ec77561512e..675ddc09aca61a 100644 --- a/test/pummel/test-heapdump-dns.js +++ b/test/pummel/test-heapdump-dns.js @@ -12,7 +12,7 @@ validateSnapshotNodes('Node / ChannelWrap', [ children: [ { node_name: 'Node / NodeAresTask::List', edge_name: 'task_list' }, // `Node / ChannelWrap` (C++) -> `ChannelWrap` (JS) - { node_name: 'ChannelWrap', edge_name: 'wrapped' } + { node_name: 'ChannelWrap', edge_name: 'wrapped' }, ] - } + }, ]); diff --git a/test/pummel/test-heapdump-fs-promise.js b/test/pummel/test-heapdump-fs-promise.js index ca170e13a61770..181029dd69c11f 100644 --- a/test/pummel/test-heapdump-fs-promise.js +++ b/test/pummel/test-heapdump-fs-promise.js @@ -10,7 +10,7 @@ validateSnapshotNodes('Node / FSReqPromise', [ { children: [ { node_name: 'FSReqPromise', edge_name: 'wrapped' }, - { node_name: 'Float64Array', edge_name: 'stats_field_array' } + { node_name: 'Float64Array', edge_name: 'stats_field_array' }, ] - } + }, ]); diff --git a/test/pummel/test-heapdump-http2.js b/test/pummel/test-heapdump-http2.js index fe11dcfb2f44bb..2fa854a91f117d 100644 --- a/test/pummel/test-heapdump-http2.js +++ b/test/pummel/test-heapdump-http2.js @@ -28,7 +28,7 @@ server.listen(0, () => { { children: [ // current_headers and/or queue could be empty - { node_name: 'Http2Stream', edge_name: 'wrapped' } + { node_name: 'Http2Stream', edge_name: 'wrapped' }, ] }, ], { loose: true }); @@ -37,32 +37,32 @@ server.listen(0, () => { state.validateSnapshotNodes('Node / FileHandle', [ { children: [ - { node_name: 'FileHandle', edge_name: 'wrapped' } + { node_name: 'FileHandle', edge_name: 'wrapped' }, // current_headers could be empty ] - } + }, ], { loose: true }); state.validateSnapshotNodes('Node / TCPSocketWrap', [ { children: [ - { node_name: 'TCP', edge_name: 'wrapped' } + { node_name: 'TCP', edge_name: 'wrapped' }, ] - } + }, ], { loose: true }); state.validateSnapshotNodes('Node / TCPServerWrap', [ { children: [ - { node_name: 'TCP', edge_name: 'wrapped' } + { node_name: 'TCP', edge_name: 'wrapped' }, ] - } + }, ], { loose: true }); // `Node / StreamPipe` (C++) -> StreamPipe (JS) state.validateSnapshotNodes('Node / StreamPipe', [ { children: [ - { node_name: 'StreamPipe', edge_name: 'wrapped' } + { node_name: 'StreamPipe', edge_name: 'wrapped' }, ] - } + }, ]); // `Node / Http2Session` (C++) -> Http2Session (JS) state.validateSnapshotNodes('Node / Http2Session', [ @@ -72,11 +72,11 @@ server.listen(0, () => { { node_name: 'Node / nghttp2_memory', edge_name: 'nghttp2_memory' }, { node_name: 'Node / streams', edge_name: 'streams' - } + }, // outstanding_pings, outgoing_buffers, outgoing_storage, // pending_rst_streams could be empty ] - } + }, ], { loose: true }); })); diff --git a/test/pummel/test-heapdump-inspector.js b/test/pummel/test-heapdump-inspector.js index d46be57c914a06..9b08e33fdb2bce 100644 --- a/test/pummel/test-heapdump-inspector.js +++ b/test/pummel/test-heapdump-inspector.js @@ -9,7 +9,7 @@ const inspector = require('inspector'); const snapshotNode = { children: [ - { node_name: 'Node / InspectorSession', edge_name: 'session' } + { node_name: 'Node / InspectorSession', edge_name: 'session' }, ] }; @@ -33,9 +33,9 @@ const snapshotNode = { { node_name: 'Connection', edge_name: 'wrapped' }, (edge) => edge.name === 'callback' && (edge.to.type === undefined || // embedded graph - edge.to.type === 'closure') // snapshot + edge.to.type === 'closure'), // snapshot ] - } + }, ]; if (process.env.NODE_V8_COVERAGE) { expected.push(snapshotNode); diff --git a/test/pummel/test-heapdump-tls.js b/test/pummel/test-heapdump-tls.js index fee19bf67625b2..a58a543a28d65d 100644 --- a/test/pummel/test-heapdump-tls.js +++ b/test/pummel/test-heapdump-tls.js @@ -27,9 +27,9 @@ const server = net.createServer(common.mustCall((c) => { { node_name: 'Node / NodeBIO', edge_name: 'enc_out' }, { node_name: 'Node / NodeBIO', edge_name: 'enc_in' }, // `Node / TLSWrap` (C++) -> `TLSWrap` (JS) - { node_name: 'TLSWrap', edge_name: 'wrapped' } + { node_name: 'TLSWrap', edge_name: 'wrapped' }, // pending_cleartext_input could be empty ] - } + }, ]); })); diff --git a/test/pummel/test-heapdump-worker.js b/test/pummel/test-heapdump-worker.js index 6e91bee4d3d378..0e8322affb5d64 100644 --- a/test/pummel/test-heapdump-worker.js +++ b/test/pummel/test-heapdump-worker.js @@ -10,15 +10,15 @@ validateSnapshotNodes('Node / Worker', [ { children: [ { node_name: 'Node / MessagePort', edge_name: 'parent_port' }, - { node_name: 'Worker', edge_name: 'wrapped' } + { node_name: 'Worker', edge_name: 'wrapped' }, ] - } + }, ]); validateSnapshotNodes('Node / MessagePort', [ { children: [ - { node_name: 'Node / MessagePortData', edge_name: 'data' } + { node_name: 'Node / MessagePortData', edge_name: 'data' }, ] - } + }, ], { loose: true }); worker.terminate(); diff --git a/test/pummel/test-heapdump-zlib.js b/test/pummel/test-heapdump-zlib.js index ef906c9935274e..16e4ede4f916a2 100644 --- a/test/pummel/test-heapdump-zlib.js +++ b/test/pummel/test-heapdump-zlib.js @@ -10,10 +10,10 @@ const gzip = zlib.createGzip(); validateSnapshotNodes('Node / ZlibStream', [ { children: [ - { node_name: 'Zlib', edge_name: 'wrapped' } + { node_name: 'Zlib', edge_name: 'wrapped' }, // No entry for memory because zlib memory is initialized lazily. ] - } + }, ]); gzip.write('hello world', common.mustCall(() => { @@ -21,8 +21,8 @@ gzip.write('hello world', common.mustCall(() => { { children: [ { node_name: 'Zlib', edge_name: 'wrapped' }, - { node_name: 'Node / zlib_memory', edge_name: 'zlib_memory' } + { node_name: 'Node / zlib_memory', edge_name: 'zlib_memory' }, ] - } + }, ]); })); diff --git a/test/pummel/test-heapsnapshot-near-heap-limit-big.js b/test/pummel/test-heapsnapshot-near-heap-limit-big.js new file mode 100644 index 00000000000000..14f62e3cbc4069 --- /dev/null +++ b/test/pummel/test-heapsnapshot-near-heap-limit-big.js @@ -0,0 +1,42 @@ +'use strict'; + +const common = require('../common'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures'); +const fs = require('fs'); +const env = { + ...process.env, + NODE_DEBUG_NATIVE: 'diagnostics' +}; + +if (!common.enoughTestMem) + common.skip('Insufficient memory for snapshot test'); + +{ + console.log('\nTesting limit = 3'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--heapsnapshot-near-heap-limit=3', + '--max-old-space-size=512', + fixtures.path('workload', 'grow.js'), + ], { + cwd: tmpdir.path, + env: { + ...env, + TEST_CHUNK: 2000, + } + }); + const stderr = child.stderr.toString(); + console.log(stderr); + assert(common.nodeProcessAborted(child.status, child.signal), + 'process should have aborted, but did not'); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + const risky = [...stderr.matchAll( + /Not generating snapshots because it's too risky/g)].length; + assert(list.length + risky > 0 && list.length <= 3, + `Generated ${list.length} snapshots ` + + `and ${risky} was too risky`); +} diff --git a/test/pummel/test-vm-memleak.js b/test/pummel/test-vm-memleak.js index 4b97b3c5b57179..419b4171d226e9 100644 --- a/test/pummel/test-vm-memleak.js +++ b/test/pummel/test-vm-memleak.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -// Flags: --max_old_space_size=32 +// Flags: --max_old_space_size=32 --expose_gc const common = require('../common'); @@ -31,6 +31,8 @@ if (process.config.variables.asan) { const assert = require('assert'); const vm = require('vm'); +const baselineRss = process.memoryUsage.rss(); + const start = Date.now(); const interval = setInterval(function() { @@ -39,9 +41,10 @@ const interval = setInterval(function() { } catch { } - const rss = process.memoryUsage().rss; - assert.ok(rss < 64 * 1024 * 1024, - `memory usage: ${rss} (${Math.round(rss / (1024 * 1024))} MB)`); + global.gc(); + const rss = process.memoryUsage.rss(); + assert.ok(rss < baselineRss + 32 * 1024 * 1024, + `memory usage: ${rss} baseline: ${baselineRss}`); // Stop after 5 seconds. if (Date.now() - start > 5 * 1000) { diff --git a/test/pummel/test-worker-take-heapsnapshot.js b/test/pummel/test-worker-take-heapsnapshot.js index b369759d0613e5..71f1782fe58d1d 100644 --- a/test/pummel/test-worker-take-heapsnapshot.js +++ b/test/pummel/test-worker-take-heapsnapshot.js @@ -14,9 +14,9 @@ const { once } = require('events'); snapshot.validateSnapshot('Node / MessagePort', [ { children: [ - { node_name: 'Node / MessagePortData', edge_name: 'data' } + { node_name: 'Node / MessagePortData', edge_name: 'data' }, ] - } + }, ], { loose: true }); await w.terminate(); })().then(common.mustCall()); diff --git a/test/report/test-report-fatal-error.js b/test/report/test-report-fatal-error.js index c166c4b86c384f..c913240c4bc7ee 100644 --- a/test/report/test-report-fatal-error.js +++ b/test/report/test-report-fatal-error.js @@ -28,7 +28,7 @@ if (process.argv[2] === 'child') { const ARGS = [ '--max-old-space-size=20', __filename, - 'child' + 'child', ]; { @@ -104,7 +104,7 @@ const ARGS = [ '--report-on-fatalerror', '--report-compact', '--report-filename=stderr', - ...ARGS + ...ARGS, ]; const child = spawnSync(process.execPath, args, { encoding: 'utf8' }); assert.notStrictEqual(child.status, 0, 'Process exited unexpectedly'); diff --git a/test/sequential/test-async-wrap-getasyncid.js b/test/sequential/test-async-wrap-getasyncid.js index 957c7f7440a4bc..921fe8fc4bdc86 100644 --- a/test/sequential/test-async-wrap-getasyncid.js +++ b/test/sequential/test-async-wrap-getasyncid.js @@ -54,6 +54,7 @@ const { getSystemErrorName } = require('util'); delete providers.ELDHISTOGRAM; delete providers.SIGINTWATCHDOG; delete providers.WORKERHEAPSNAPSHOT; + delete providers.FIXEDSIZEBLOBCOPY; const objKeys = Object.keys(providers); if (objKeys.length > 0) diff --git a/test/sequential/test-buffer-creation-regression.js b/test/sequential/test-buffer-creation-regression.js index 07deb1db0fe377..4122cd0c78a620 100644 --- a/test/sequential/test-buffer-creation-regression.js +++ b/test/sequential/test-buffer-creation-regression.js @@ -17,7 +17,7 @@ function test(arrayBuffer, offset, length) { const acceptableOOMErrors = [ 'Array buffer allocation failed', - 'Invalid array buffer length' + 'Invalid array buffer length', ]; const length = 1000; diff --git a/test/sequential/test-child-process-execsync.js b/test/sequential/test-child-process-execsync.js index 5dbf5c2f9aa915..bc589efb8b5b64 100644 --- a/test/sequential/test-child-process-execsync.js +++ b/test/sequential/test-child-process-execsync.js @@ -87,7 +87,7 @@ const cmd = `"${process.execPath}" -e "console.log('${msg}');"`; const args = [ '-e', - `console.log("${msg}");` + `console.log("${msg}");`, ]; { const ret = execFileSync(process.execPath, args); @@ -128,7 +128,7 @@ const args = [ 'signal', 'status', 'stderr', - 'stdout' + 'stdout', ]); assert.throws(() => { diff --git a/test/sequential/test-cli-syntax-bad.js b/test/sequential/test-cli-syntax-bad.js index 8298157a57e16e..319746adfb670e 100644 --- a/test/sequential/test-cli-syntax-bad.js +++ b/test/sequential/test-cli-syntax-bad.js @@ -10,7 +10,7 @@ const node = process.execPath; // Test both sets of arguments that check syntax const syntaxArgs = [ ['-c'], - ['--check'] + ['--check'], ]; // Match on the name of the `Error` but not the message as it is different @@ -22,7 +22,7 @@ const syntaxErrorRE = /^SyntaxError: \b/m; 'syntax/bad_syntax.js', 'syntax/bad_syntax', 'syntax/bad_syntax_shebang.js', - 'syntax/bad_syntax_shebang' + 'syntax/bad_syntax_shebang', ].forEach(function(file) { file = fixtures.path(file); diff --git a/test/sequential/test-cli-syntax-file-not-found.js b/test/sequential/test-cli-syntax-file-not-found.js index 3e1f3ec56118b3..6a4c6338311d58 100644 --- a/test/sequential/test-cli-syntax-file-not-found.js +++ b/test/sequential/test-cli-syntax-file-not-found.js @@ -10,7 +10,7 @@ const node = process.execPath; // Test both sets of arguments that check syntax const syntaxArgs = [ ['-c'], - ['--check'] + ['--check'], ]; const notFoundRE = /^Error: Cannot find module/m; @@ -18,7 +18,7 @@ const notFoundRE = /^Error: Cannot find module/m; // test file not found [ 'syntax/file_not_found.js', - 'syntax/file_not_found' + 'syntax/file_not_found', ].forEach(function(file) { file = fixtures.path(file); diff --git a/test/sequential/test-cli-syntax-good.js b/test/sequential/test-cli-syntax-good.js index 48581e7733da44..262c30ccad6bce 100644 --- a/test/sequential/test-cli-syntax-good.js +++ b/test/sequential/test-cli-syntax-good.js @@ -10,7 +10,7 @@ const node = process.execPath; // Test both sets of arguments that check syntax const syntaxArgs = [ ['-c'], - ['--check'] + ['--check'], ]; // Test good syntax with and without shebang @@ -19,7 +19,7 @@ const syntaxArgs = [ 'syntax/good_syntax', 'syntax/good_syntax_shebang.js', 'syntax/good_syntax_shebang', - 'syntax/illegal_if_not_wrapped.js' + 'syntax/illegal_if_not_wrapped.js', ].forEach(function(file) { file = fixtures.path(file); diff --git a/test/sequential/test-debugger-auto-resume.js b/test/sequential/test-debugger-auto-resume.js index bd498bc536535d..8a25f5fc804e1a 100644 --- a/test/sequential/test-debugger-auto-resume.js +++ b/test/sequential/test-debugger-auto-resume.js @@ -4,7 +4,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const { addLibraryPath } = require('../common/shared-lib-util'); const assert = require('assert'); @@ -14,7 +14,7 @@ addLibraryPath(process.env); // Auto-resume on start if the environment variable is defined. { - const scriptFullPath = fixtures.path('inspector-cli', 'break.js'); + const scriptFullPath = fixtures.path('debugger', 'break.js'); const script = path.relative(process.cwd(), scriptFullPath); const env = { ...process.env }; diff --git a/test/sequential/test-debugger-backtrace.js b/test/sequential/test-debugger-backtrace.js index a705efe5fe4270..f362e98068f15e 100644 --- a/test/sequential/test-debugger-backtrace.js +++ b/test/sequential/test-debugger-backtrace.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Display and navigate backtrace. { - const scriptFullPath = fixtures.path('inspector-cli', 'backtrace.js'); + const scriptFullPath = fixtures.path('debugger', 'backtrace.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-break.js b/test/sequential/test-debugger-break.js index 3720da8bae8af3..7c92aedc435eab 100644 --- a/test/sequential/test-debugger-break.js +++ b/test/sequential/test-debugger-break.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Stepping through breakpoints. { - const scriptFullPath = fixtures.path('inspector-cli', 'break.js'); + const scriptFullPath = fixtures.path('debugger', 'break.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-breakpoint-exists.js b/test/sequential/test-debugger-breakpoint-exists.js new file mode 100644 index 00000000000000..7be0ba657fa981 --- /dev/null +++ b/test/sequential/test-debugger-breakpoint-exists.js @@ -0,0 +1,27 @@ +'use strict'; + +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const fixtures = require('../common/fixtures'); +const startCLI = require('../common/debugger'); + +// Test for "Breakpoint at specified location already exists" error. +{ + const script = fixtures.path('debugger', 'three-lines.js'); + const cli = startCLI([script]); + + function onFatal(error) { + cli.quit(); + throw error; + } + + cli.waitForInitialBreak() + .then(() => cli.waitForPrompt()) + .then(() => cli.command('setBreakpoint(1)')) + .then(() => cli.command('setBreakpoint(1)')) + .then(() => cli.waitFor(/Breakpoint at specified location already exists/)) + .then(() => cli.quit()) + .then(null, onFatal); +} diff --git a/test/sequential/test-debugger-clear-breakpoints.js b/test/sequential/test-debugger-clear-breakpoints.js index f85e33280c6dfd..91349e105a1160 100644 --- a/test/sequential/test-debugger-clear-breakpoints.js +++ b/test/sequential/test-debugger-clear-breakpoints.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // clearBreakpoint { - const scriptFullPath = fixtures.path('inspector-cli', 'break.js'); + const scriptFullPath = fixtures.path('debugger', 'break.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-custom-port.js b/test/sequential/test-debugger-custom-port.js index 4b788a6488169a..e6cee10ffa53b5 100644 --- a/test/sequential/test-debugger-custom-port.js +++ b/test/sequential/test-debugger-custom-port.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Custom port. { - const script = fixtures.path('inspector-cli', 'three-lines.js'); + const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI([`--port=${common.PORT}`, script]); diff --git a/test/sequential/test-debugger-exceptions.js b/test/sequential/test-debugger-exceptions.js index 324f6f6bde2bf2..9b1163316268c7 100644 --- a/test/sequential/test-debugger-exceptions.js +++ b/test/sequential/test-debugger-exceptions.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Break on (uncaught) exceptions. { - const scriptFullPath = fixtures.path('inspector-cli', 'exceptions.js'); + const scriptFullPath = fixtures.path('debugger', 'exceptions.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-exec-scope.js b/test/sequential/test-debugger-exec-scope.js index ef1455c0b6231e..9e5d2ac7ebaeeb 100644 --- a/test/sequential/test-debugger-exec-scope.js +++ b/test/sequential/test-debugger-exec-scope.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // exec .scope { - const cli = startCLI([fixtures.path('inspector-cli/backtrace.js')]); + const cli = startCLI([fixtures.path('debugger/backtrace.js')]); function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-debugger-exec.js b/test/sequential/test-debugger-exec.js index f47eaaa5a6f62d..68a9b37d09d6aa 100644 --- a/test/sequential/test-debugger-exec.js +++ b/test/sequential/test-debugger-exec.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); { - const cli = startCLI([fixtures.path('inspector-cli/alive.js')]); + const cli = startCLI([fixtures.path('debugger/alive.js')]); function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-debugger-heap-profiler.js b/test/sequential/test-debugger-heap-profiler.js index 689604b1c597cb..86eb9d9d0d232f 100644 --- a/test/sequential/test-debugger-heap-profiler.js +++ b/test/sequential/test-debugger-heap-profiler.js @@ -3,24 +3,21 @@ const common = require('../common'); common.skipIfInspectorDisabled(); -if (!common.isMainThread) { - common.skip('process.chdir() is not available in workers'); -} - const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const tmpdir = require('../common/tmpdir'); +const path = require('path'); tmpdir.refresh(); -process.chdir(tmpdir.path); const { readFileSync } = require('fs'); -const filename = 'node.heapsnapshot'; +const filename = path.join(tmpdir.path, 'node.heapsnapshot'); // Heap profiler take snapshot. { - const cli = startCLI([fixtures.path('inspector-cli/empty.js')]); + const opts = { cwd: tmpdir.path }; + const cli = startCLI([fixtures.path('debugger/empty.js')], [], opts); function onFatal(error) { cli.quit(); @@ -32,6 +29,10 @@ const filename = 'node.heapsnapshot'; .then(() => cli.waitForPrompt()) .then(() => cli.command('takeHeapSnapshot()')) .then(() => JSON.parse(readFileSync(filename, 'utf8'))) + // Check that two simultaneous snapshots don't step all over each other. + // Refs: https://github.com/nodejs/node/issues/39555 + .then(() => cli.command('takeHeapSnapshot(); takeHeapSnapshot()')) + .then(() => JSON.parse(readFileSync(filename, 'utf8'))) .then(() => cli.quit()) .then(null, onFatal); } diff --git a/test/sequential/test-debugger-help.js b/test/sequential/test-debugger-help.js index f72d4960a75755..e24f873212b589 100644 --- a/test/sequential/test-debugger-help.js +++ b/test/sequential/test-debugger-help.js @@ -4,12 +4,12 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); { - const cli = startCLI([fixtures.path('inspector-cli/empty.js')]); + const cli = startCLI([fixtures.path('debugger/empty.js')]); function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-debugger-invalid-args.js b/test/sequential/test-debugger-invalid-args.js index 841d7a883178d7..36f8e588b04a6e 100644 --- a/test/sequential/test-debugger-invalid-args.js +++ b/test/sequential/test-debugger-invalid-args.js @@ -3,11 +3,9 @@ const common = require('../common'); common.skipIfInspectorDisabled(); -const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); -const { createServer } = require('net'); // Launch CLI w/o args. { @@ -21,7 +19,7 @@ const { createServer } = require('net'); // Launch w/ invalid host:port. { - const cli = startCLI(['localhost:914']); + const cli = startCLI([`localhost:${common.PORT}`]); cli.quit() .then((code) => { assert.match( @@ -31,29 +29,3 @@ const { createServer } = require('net'); assert.strictEqual(code, 1); }); } - -// Launch w/ unavailable port. -(async () => { - const blocker = createServer((socket) => socket.end()); - const port = await new Promise((resolve, reject) => { - blocker.on('error', reject); - blocker.listen(0, '127.0.0.1', () => resolve(blocker.address().port)); - }); - - try { - const script = fixtures.path('inspector-cli', 'three-lines.js'); - const cli = startCLI([`--port=${port}`, script]); - const code = await cli.quit(); - - assert.doesNotMatch( - cli.output, - /report this bug/, - 'Omits message about reporting this as a bug'); - assert.ok( - cli.output.includes(`waiting for 127.0.0.1:${port} to be free`), - 'Tells the user that the port wasn\'t available'); - assert.strictEqual(code, 1); - } finally { - blocker.close(); - } -})().then(common.mustCall()); diff --git a/test/sequential/test-debugger-launch.js b/test/sequential/test-debugger-launch.js index 60f09334b4ef27..3bfe541ecca05c 100644 --- a/test/sequential/test-debugger-launch.js +++ b/test/sequential/test-debugger-launch.js @@ -4,12 +4,12 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); { - const script = fixtures.path('inspector-cli', 'three-lines.js'); + const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI([script]); cli.waitForInitialBreak() diff --git a/test/sequential/test-debugger-low-level.js b/test/sequential/test-debugger-low-level.js index 5fafc7c361c33b..f6d97f2dfe153d 100644 --- a/test/sequential/test-debugger-low-level.js +++ b/test/sequential/test-debugger-low-level.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Debugger agent direct access. { - const cli = startCLI([fixtures.path('inspector-cli/three-lines.js')]); - const scriptPattern = /^\* (\d+): \S+inspector-cli(?:\/|\\)three-lines\.js/m; + const cli = startCLI([fixtures.path('debugger/three-lines.js')]); + const scriptPattern = /^\* (\d+): \S+debugger(?:\/|\\)three-lines\.js/m; function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-debugger-pid.js b/test/sequential/test-debugger-pid.js index c94ab52031111f..402c1f86dd4ed9 100644 --- a/test/sequential/test-debugger-pid.js +++ b/test/sequential/test-debugger-pid.js @@ -4,7 +4,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const { spawn } = require('child_process'); @@ -16,7 +16,7 @@ function launchTarget(...args) { } { - const script = fixtures.path('inspector-cli', 'alive.js'); + const script = fixtures.path('debugger', 'alive.js'); let cli = null; let target = null; diff --git a/test/sequential/test-debugger-preserve-breaks.js b/test/sequential/test-debugger-preserve-breaks.js index fb751016ec7614..fbc463af96a1e6 100644 --- a/test/sequential/test-debugger-preserve-breaks.js +++ b/test/sequential/test-debugger-preserve-breaks.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Run after quit. { - const scriptFullPath = fixtures.path('inspector-cli', 'three-lines.js'); + const scriptFullPath = fixtures.path('debugger', 'three-lines.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); @@ -53,19 +53,9 @@ const path = require('path'); }) .then(() => cli.command('breakpoints')) .then(() => { - // TODO: There is a known issue on AIX and some other operating systems - // where the breakpoints aren't properly resolved yet when we reach this - // point. Eventually that should be figured out but for now we don't - // want to fail builds because of it. - // What it should be: - // - // const msg = `SCRIPT: ${script}, OUTPUT: ${cli.output}`; - // assert.ok(cli.output.includes(`#0 ${script}:2`), msg); - // assert.ok(cli.output.includes(`#1 ${script}:3`), msg); - // - // What we're doing for now instead: - assert.match(cli.output, /#0 [^\n]+three-lines\.js\$?:2/); - assert.match(cli.output, /#1 [^\n]+three-lines\.js\$?:3/); + const msg = `SCRIPT: ${script}, OUTPUT: ${cli.output}`; + assert.ok(cli.output.includes(`#0 ${script}:2`), msg); + assert.ok(cli.output.includes(`#1 ${script}:3`), msg); }) .then(() => cli.quit()) .then(null, onFatal); diff --git a/test/sequential/test-debugger-profile.js b/test/sequential/test-debugger-profile.js index a683d78b06f204..992c6f71c00775 100644 --- a/test/sequential/test-debugger-profile.js +++ b/test/sequential/test-debugger-profile.js @@ -4,7 +4,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); @@ -14,7 +14,7 @@ function delay(ms) { // Profiles. { - const cli = startCLI([fixtures.path('inspector-cli/empty.js')]); + const cli = startCLI([fixtures.path('debugger/empty.js')]); function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-debugger-random-port-with-inspect-port.js b/test/sequential/test-debugger-random-port-with-inspect-port.js index 9089f352f4c91b..5617e130f02585 100644 --- a/test/sequential/test-debugger-random-port-with-inspect-port.js +++ b/test/sequential/test-debugger-random-port-with-inspect-port.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Random port with --inspect-port=0. { - const script = fixtures.path('inspector-cli', 'three-lines.js'); + const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI(['--inspect-port=0', script]); diff --git a/test/sequential/test-debugger-random-port.js b/test/sequential/test-debugger-random-port.js index aecadc549ce9c9..da8656cf1c7115 100644 --- a/test/sequential/test-debugger-random-port.js +++ b/test/sequential/test-debugger-random-port.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Random port. { - const script = fixtures.path('inspector-cli', 'three-lines.js'); + const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI(['--port=0', script]); diff --git a/test/sequential/test-debugger-repeat-last.js b/test/sequential/test-debugger-repeat-last.js index 42638e5d2ebf12..5bdcc7dc8c8642 100644 --- a/test/sequential/test-debugger-repeat-last.js +++ b/test/sequential/test-debugger-repeat-last.js @@ -9,7 +9,7 @@ const fixture = path('debugger-repeat-last.js'); const args = [ 'inspect', `--port=${common.PORT}`, - fixture + fixture, ]; const proc = spawn(process.execPath, args, { stdio: 'pipe' }); diff --git a/test/sequential/test-debugger-restart-message.js b/test/sequential/test-debugger-restart-message.js new file mode 100644 index 00000000000000..bcd06b4e230131 --- /dev/null +++ b/test/sequential/test-debugger-restart-message.js @@ -0,0 +1,39 @@ +'use strict'; + +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const assert = require('assert'); + +const RESTARTS = 10; + +const fixtures = require('../common/fixtures'); +const startCLI = require('../common/debugger'); + +// Using `restart` should result in only one "Connect/For help" message. +{ + const script = fixtures.path('debugger', 'three-lines.js'); + const cli = startCLI([script]); + + function onFatal(error) { + cli.quit(); + throw error; + } + + const listeningRegExp = /Debugger listening on/g; + + cli.waitForInitialBreak() + .then(() => cli.waitForPrompt()) + .then(() => { + assert.strictEqual(cli.output.match(listeningRegExp).length, 1); + }) + .then(async () => { + for (let i = 0; i < RESTARTS; i++) { + await cli.stepCommand('restart'); + assert.strictEqual(cli.output.match(listeningRegExp).length, 1); + } + }) + .then(() => cli.quit()) + .then(null, onFatal); +} diff --git a/test/sequential/test-debugger-run-after-quit-restart.js b/test/sequential/test-debugger-run-after-quit-restart.js index 0e0233d1209d53..a9da07dcdff8bd 100644 --- a/test/sequential/test-debugger-run-after-quit-restart.js +++ b/test/sequential/test-debugger-run-after-quit-restart.js @@ -4,14 +4,14 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Run after quit/restart. { - const scriptFullPath = fixtures.path('inspector-cli', 'three-lines.js'); + const scriptFullPath = fixtures.path('debugger', 'three-lines.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-sb-before-load.js b/test/sequential/test-debugger-sb-before-load.js index fe1923f884a1e0..586687800e8e90 100644 --- a/test/sequential/test-debugger-sb-before-load.js +++ b/test/sequential/test-debugger-sb-before-load.js @@ -4,17 +4,17 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Using sb before loading file. { - const scriptFullPath = fixtures.path('inspector-cli', 'cjs', 'index.js'); + const scriptFullPath = fixtures.path('debugger', 'cjs', 'index.js'); const script = path.relative(process.cwd(), scriptFullPath); - const otherScriptFullPath = fixtures.path('inspector-cli', 'cjs', 'other.js'); + const otherScriptFullPath = fixtures.path('debugger', 'cjs', 'other.js'); const otherScript = path.relative(process.cwd(), otherScriptFullPath); const cli = startCLI([script]); diff --git a/test/sequential/test-debugger-scripts.js b/test/sequential/test-debugger-scripts.js index b7ca635decc502..8a4491814427c0 100644 --- a/test/sequential/test-debugger-scripts.js +++ b/test/sequential/test-debugger-scripts.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // List scripts. { - const script = fixtures.path('inspector-cli', 'three-lines.js'); + const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI([script]); function onFatal(error) { @@ -24,7 +24,7 @@ const assert = require('assert'); .then(() => { assert.match( cli.output, - /^\* \d+: \S+inspector-cli(?:\/|\\)three-lines\.js/m, + /^\* \d+: \S+debugger(?:\/|\\)three-lines\.js/m, 'lists the user script'); assert.doesNotMatch( cli.output, @@ -35,7 +35,7 @@ const assert = require('assert'); .then(() => { assert.match( cli.output, - /\* \d+: \S+inspector-cli(?:\/|\\)three-lines\.js/, + /\* \d+: \S+debugger(?:\/|\\)three-lines\.js/, 'lists the user script'); assert.match( cli.output, diff --git a/test/sequential/test-debugger-use-strict.js b/test/sequential/test-debugger-use-strict.js index 4fb33c9f3e58fa..ae82a9fc82352b 100644 --- a/test/sequential/test-debugger-use-strict.js +++ b/test/sequential/test-debugger-use-strict.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Test for files that start with strict directive. { - const script = fixtures.path('inspector-cli', 'use-strict.js'); + const script = fixtures.path('debugger', 'use-strict.js'); const cli = startCLI([script]); function onFatal(error) { diff --git a/test/sequential/test-debugger-watchers.js b/test/sequential/test-debugger-watchers.js index ab39be6239ec26..e856132b74e28a 100644 --- a/test/sequential/test-debugger-watchers.js +++ b/test/sequential/test-debugger-watchers.js @@ -4,13 +4,13 @@ const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); -const startCLI = require('../common/inspector-cli'); +const startCLI = require('../common/debugger'); const assert = require('assert'); // Stepping through breakpoints. { - const cli = startCLI([fixtures.path('inspector-cli/break.js')]); + const cli = startCLI([fixtures.path('debugger/break.js')]); function onFatal(error) { cli.quit(); diff --git a/test/sequential/test-inspector-async-hook-setup-at-inspect-brk.js b/test/sequential/test-inspector-async-hook-setup-at-inspect-brk.js index 053108c415980f..2a9a2030552e6e 100644 --- a/test/sequential/test-inspector-async-hook-setup-at-inspect-brk.js +++ b/test/sequential/test-inspector-async-hook-setup-at-inspect-brk.js @@ -37,7 +37,7 @@ async function runTests() { 'params': { 'maxDepth': 10 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await skipBreakpointAtStart(session); await checkAsyncStackTrace(session); diff --git a/test/sequential/test-inspector-async-hook-setup-at-signal.js b/test/sequential/test-inspector-async-hook-setup-at-signal.js index 259a40db976e46..1de7a3ed20acf6 100644 --- a/test/sequential/test-inspector-async-hook-setup-at-signal.js +++ b/test/sequential/test-inspector-async-hook-setup-at-signal.js @@ -45,7 +45,7 @@ async function setupTimeoutForStackTrace(session) { await session.send([ { 'method': 'Runtime.evaluate', 'params': { expression: 'setupTimeoutWithBreak()' } }, - { 'method': 'Debugger.resume' } + { 'method': 'Debugger.resume' }, ]); } @@ -69,7 +69,7 @@ async function runTests() { 'params': { 'maxDepth': 10 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await waitForInitialSetup(session); diff --git a/test/sequential/test-inspector-async-stack-traces-promise-then.js b/test/sequential/test-inspector-async-stack-traces-promise-then.js index 40b05c9aacf375..f50d8994a24c95 100644 --- a/test/sequential/test-inspector-async-stack-traces-promise-then.js +++ b/test/sequential/test-inspector-async-stack-traces-promise-then.js @@ -27,7 +27,7 @@ async function runTests() { 'params': { 'maxDepth': 10 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await session.waitForBreakOnLine(0, '[eval]'); diff --git a/test/sequential/test-inspector-async-stack-traces-set-interval.js b/test/sequential/test-inspector-async-stack-traces-set-interval.js index 8f884614cc7d95..4369f6f9cc99a2 100644 --- a/test/sequential/test-inspector-async-stack-traces-set-interval.js +++ b/test/sequential/test-inspector-async-stack-traces-set-interval.js @@ -33,7 +33,7 @@ async function runTests() { 'params': { 'maxDepth': 10 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await skipFirstBreakpoint(session); diff --git a/test/sequential/test-inspector-break-e.js b/test/sequential/test-inspector-break-e.js index f2a52fcae835fd..274422cf59b190 100644 --- a/test/sequential/test-inspector-break-e.js +++ b/test/sequential/test-inspector-break-e.js @@ -11,7 +11,7 @@ async function runTests() { await session.send([ { 'method': 'Runtime.enable' }, { 'method': 'Debugger.enable' }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await session.waitForBreakOnLine(0, '[eval]'); await session.runToCompletion(); diff --git a/test/sequential/test-inspector-break-when-eval.js b/test/sequential/test-inspector-break-when-eval.js index 0dd66588ed23b9..1e7ab513dadbbb 100644 --- a/test/sequential/test-inspector-break-when-eval.js +++ b/test/sequential/test-inspector-break-when-eval.js @@ -46,7 +46,7 @@ async function breakOnLine(session) { 'returnByValue': false, 'generatePreview': true, 'userGesture': true, - 'awaitPromise': false } } + 'awaitPromise': false } }, ]; session.send(commands); await session.waitForBreakOnLine(9, pathToFileURL(script).toString()); diff --git a/test/sequential/test-inspector-console.js b/test/sequential/test-inspector-console.js index bb0f0ce42a3d03..33cd913efb2cec 100644 --- a/test/sequential/test-inspector-console.js +++ b/test/sequential/test-inspector-console.js @@ -17,7 +17,7 @@ async function runTest() { const commands = [ { 'method': 'Runtime.enable' }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]; session.send(commands); diff --git a/test/sequential/test-inspector-debug-brk-flag.js b/test/sequential/test-inspector-debug-brk-flag.js index f1312b47ad8d8b..db235326e96ff9 100644 --- a/test/sequential/test-inspector-debug-brk-flag.js +++ b/test/sequential/test-inspector-debug-brk-flag.js @@ -19,7 +19,7 @@ async function testBreakpointOnStart(session) { 'params': { 'interval': 100 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]; session.send(commands); diff --git a/test/sequential/test-inspector-exception.js b/test/sequential/test-inspector-exception.js index f1cd2eca3f30f3..fc41de97e97841 100644 --- a/test/sequential/test-inspector-exception.js +++ b/test/sequential/test-inspector-exception.js @@ -25,7 +25,7 @@ async function testBreakpointOnStart(session) { 'params': { 'interval': 100 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]; await session.send(commands); diff --git a/test/sequential/test-inspector-not-blocked-on-idle.js b/test/sequential/test-inspector-not-blocked-on-idle.js index fbf26d15c91f12..0a38540c3e8a0d 100644 --- a/test/sequential/test-inspector-not-blocked-on-idle.js +++ b/test/sequential/test-inspector-not-blocked-on-idle.js @@ -11,7 +11,7 @@ async function runTests() { const session = await node.connectInspectorSession(); await session.send([ { 'method': 'Debugger.enable' }, - { 'method': 'Debugger.pause' } + { 'method': 'Debugger.pause' }, ]); session.disconnect(); node.kill(); diff --git a/test/sequential/test-inspector-port-cluster.js b/test/sequential/test-inspector-port-cluster.js index 2d1534fc959f59..bb63b1fa437fc1 100644 --- a/test/sequential/test-inspector-port-cluster.js +++ b/test/sequential/test-inspector-port-cluster.js @@ -29,7 +29,7 @@ function testRunnerMain() { { expectedPort: 65535 }, { expectedPort: 1024 }, { expectedPort: 1025 }, - { expectedPort: 1026 } + { expectedPort: 1026 }, ] }); @@ -40,7 +40,7 @@ function testRunnerMain() { workers: [ { expectedPort: port + 1 }, { expectedPort: port + 2 }, - { expectedPort: port + 3 } + { expectedPort: port + 3 }, ] }); @@ -106,7 +106,7 @@ function testRunnerMain() { clusterSettings: { inspectPort: 'addTwo' }, workers: [ { expectedPort: port + 2 }, - { expectedPort: port + 4 } + { expectedPort: port + 4 }, ] }); @@ -164,7 +164,7 @@ function testRunnerMain() { execArgv: [], clusterSettings: { inspectPort: port, execArgv: ['--inspect'] }, workers: [ - { expectedPort: port } + { expectedPort: port }, ] }); @@ -176,7 +176,7 @@ function testRunnerMain() { workers: [ { expectedInitialPort: 0 }, { expectedInitialPort: 0 }, - { expectedInitialPort: 0 } + { expectedInitialPort: 0 }, ] }); @@ -188,7 +188,7 @@ function testRunnerMain() { workers: [ { expectedInitialPort: 0 }, { expectedInitialPort: 0 }, - { expectedInitialPort: 0 } + { expectedInitialPort: 0 }, ] }); @@ -198,7 +198,7 @@ function testRunnerMain() { execArgv: ['--inspect'], clusterSettings: { inspectPort: port + 2 }, workers: [ - { expectedInitialPort: port + 2 } + { expectedInitialPort: port + 2 }, ] }); }); diff --git a/test/sequential/test-inspector-scriptparsed-context.js b/test/sequential/test-inspector-scriptparsed-context.js index e656436879ce63..3c5c07a53a78c0 100644 --- a/test/sequential/test-inspector-scriptparsed-context.js +++ b/test/sequential/test-inspector-scriptparsed-context.js @@ -48,7 +48,7 @@ async function runTests() { const session = await instance.connectInspectorSession(); await session.send([ { 'method': 'Debugger.enable' }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]); await session.waitForBreakOnLine(2, '[eval]'); diff --git a/test/sequential/test-inspector.js b/test/sequential/test-inspector.js index d1fa08a35f9561..84e0bb1c5e0c44 100644 --- a/test/sequential/test-inspector.js +++ b/test/sequential/test-inspector.js @@ -72,7 +72,7 @@ async function testBreakpointOnStart(session) { 'params': { 'interval': 100 } }, { 'method': 'Debugger.setBlackboxPatterns', 'params': { 'patterns': [] } }, - { 'method': 'Runtime.runIfWaitingForDebugger' } + { 'method': 'Runtime.runIfWaitingForDebugger' }, ]; await session.send(commands); @@ -187,7 +187,7 @@ async function testCommandLineAPI(session) { 'expression': [ 'typeof require.resolve === "function"', 'typeof require.extensions === "object"', - 'typeof require.cache === "object"' + 'typeof require.cache === "object"', ].join(' && '), 'includeCommandLineAPI': true } diff --git a/test/sequential/test-net-bytes-per-incoming-chunk-overhead.js b/test/sequential/test-net-bytes-per-incoming-chunk-overhead.js index c905c22d8afa78..7bcdfaa9f6f6aa 100644 --- a/test/sequential/test-net-bytes-per-incoming-chunk-overhead.js +++ b/test/sequential/test-net-bytes-per-incoming-chunk-overhead.js @@ -17,7 +17,7 @@ const receivedChunks = []; const N = 250000; const server = net.createServer(common.mustCall((socket) => { - baseRSS = process.memoryUsage().rss; + baseRSS = process.memoryUsage.rss(); socket.setNoDelay(true); socket.on('data', (chunk) => { @@ -38,7 +38,7 @@ const server = net.createServer(common.mustCall((socket) => { process.on('exit', () => { global.gc(); const bytesPerChunk = - (process.memoryUsage().rss - baseRSS) / receivedChunks.length; + (process.memoryUsage.rss() - baseRSS) / receivedChunks.length; // We should always have less than one page (usually ~ 4 kB) per chunk. assert(bytesPerChunk < 650, `measured ${bytesPerChunk} bytes per chunk`); }); diff --git a/test/tick-processor/test-tick-processor-polyfill-brokenfile.js b/test/tick-processor/test-tick-processor-polyfill-brokenfile.js index f61bdbe9a12510..98cbf5bb414789 100644 --- a/test/tick-processor/test-tick-processor-polyfill-brokenfile.js +++ b/test/tick-processor/test-tick-processor-polyfill-brokenfile.js @@ -37,7 +37,7 @@ const proc = spawn(process.execPath, [ '--no_logfile_per_isolate', '--logfile=-', '--prof', - '-pe', code + '-pe', code, ], { stdio: ['ignore', 'pipe', 'inherit'] }); @@ -53,7 +53,7 @@ function runPolyfill(content) { const child = spawnSync( `${process.execPath}`, [ - '--prof-process', LOG_FILE + '--prof-process', LOG_FILE, ]); assert(WARN_REG_EXP.test(child.stderr.toString())); assert(WARN_DETAIL_REG_EXP.test(child.stderr.toString())); diff --git a/test/tick-processor/tick-processor-base.js b/test/tick-processor/tick-processor-base.js index 33944655258bef..d9f23ae7d768f5 100644 --- a/test/tick-processor/tick-processor-base.js +++ b/test/tick-processor/tick-processor-base.js @@ -15,7 +15,7 @@ function runTest(test) { '--no_logfile_per_isolate', '--logfile=-', '--prof', - '-pe', test.code + '-pe', test.code, ], { stdio: [ 'ignore', 'pipe', 'inherit' ] }); @@ -37,7 +37,7 @@ function match(pattern, parent, ticks, flags = []) { '--prof-process', '--call-graph-size=10', ...flags, - LOG_FILE + LOG_FILE, ], { stdio: [ 'ignore', 'pipe', 'inherit' ] }); diff --git a/test/v8-updates/test-linux-perf.js b/test/v8-updates/test-linux-perf.js index 01ebce0ae5af9a..9a8097b071a2b5 100644 --- a/test/v8-updates/test-linux-perf.js +++ b/test/v8-updates/test-linux-perf.js @@ -68,7 +68,7 @@ const perfCompiledFramesArgs = [ ]; const perfArgsList = [ - perfInterpretedFramesArgs, perfCompiledFramesArgs + perfInterpretedFramesArgs, perfCompiledFramesArgs, ]; const perfScriptArgs = [ diff --git a/test/wasi/test-wasi-not-started.js b/test/wasi/test-wasi-not-started.js index ad13e6d711802b..93ceba3c06c741 100644 --- a/test/wasi/test-wasi-not-started.js +++ b/test/wasi/test-wasi-not-started.js @@ -31,7 +31,7 @@ if (process.argv[2] === 'wasi-child') { '--experimental-wasi-unstable-preview1', '--experimental-wasm-bigint', __filename, - 'wasi-child' + 'wasi-child', ], { env: { ...process.env, NODE_DEBUG_NATIVE: 'wasi' } }); diff --git a/test/wasi/test-wasi-symlinks.js b/test/wasi/test-wasi-symlinks.js index b4f306916a9d9d..16acca16f38564 100644 --- a/test/wasi/test-wasi-symlinks.js +++ b/test/wasi/test-wasi-symlinks.js @@ -14,7 +14,8 @@ if (process.argv[2] === 'wasi-child') { args: [], env: process.env, preopens: { - '/sandbox': process.argv[4] + '/sandbox': process.argv[4], + '/tmp': process.argv[5] } }); const importObject = { wasi_snapshot_preview1: wasi.wasiImport }; @@ -45,9 +46,11 @@ if (process.argv[2] === 'wasi-child') { const escapingSymlink = path.join(sandboxedDir, 'outside.txt'); const loopSymlink1 = path.join(sandboxedDir, 'loop1'); const loopSymlink2 = path.join(sandboxedDir, 'loop2'); + const sandboxedTmp = path.join(tmpdir.path, 'tmp'); fs.mkdirSync(sandbox); fs.mkdirSync(sandboxedDir); + fs.mkdirSync(sandboxedTmp); fs.writeFileSync(sandboxedFile, 'hello from input.txt', 'utf8'); fs.writeFileSync(externalFile, 'this should be inaccessible', 'utf8'); fs.symlinkSync(path.join('.', 'input.txt'), sandboxedSymlink, 'file'); @@ -66,7 +69,8 @@ if (process.argv[2] === 'wasi-child') { __filename, 'wasi-child', options.test, - sandbox + sandbox, + sandboxedTmp, ], opts); console.log(child.stderr.toString()); assert.strictEqual(child.status, 0); @@ -76,6 +80,7 @@ if (process.argv[2] === 'wasi-child') { runWASI({ test: 'create_symlink', stdout: 'hello from input.txt' }); runWASI({ test: 'follow_symlink', stdout: 'hello from input.txt' }); + runWASI({ test: 'link' }); runWASI({ test: 'symlink_escape' }); runWASI({ test: 'symlink_loop' }); } diff --git a/test/wasi/test-wasi-worker-terminate.js b/test/wasi/test-wasi-worker-terminate.js index 118c2a9d47e411..a0851e14ad6b62 100644 --- a/test/wasi/test-wasi-worker-terminate.js +++ b/test/wasi/test-wasi-worker-terminate.js @@ -19,7 +19,7 @@ const bytecode = new Uint8Array([ 0x64, 0x75, 0x63, 0x65, 0x72, 0x73, 0x01, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x2d, 0x62, 0x79, 0x01, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x0f, 0x31, 0x30, 0x2e, 0x30, 0x2e, 0x30, 0x2d, 0x34, - 0x75, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x31 + 0x75, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x31, ]); // Do not use isMainThread so that this test itself can be run inside a Worker. diff --git a/test/wasi/test-wasi.js b/test/wasi/test-wasi.js index 083cf1b17b75de..bb89c51441a851 100644 --- a/test/wasi/test-wasi.js +++ b/test/wasi/test-wasi.js @@ -54,7 +54,7 @@ if (process.argv[2] === 'wasi-child') { '--experimental-wasm-bigint', __filename, 'wasi-child', - options.test + options.test, ], opts); console.log(child.stderr.toString()); assert.strictEqual(child.status, options.exitCode || 0); @@ -79,7 +79,6 @@ if (process.argv[2] === 'wasi-child') { runWASI({ test: 'getrusage' }); } runWASI({ test: 'gettimeofday' }); - runWASI({ test: 'link' }); runWASI({ test: 'main_args' }); runWASI({ test: 'notdir' }); runWASI({ test: 'poll' }); diff --git a/test/wpt/status/FileAPI/blob.json b/test/wpt/status/FileAPI/blob.json new file mode 100644 index 00000000000000..23505105eafa4d --- /dev/null +++ b/test/wpt/status/FileAPI/blob.json @@ -0,0 +1,17 @@ +{ + "Blob-constructor.any.js": { + "skip": "https://github.com/nodejs/node/issues/37358" + }, + "Blob-constructor-dom.window.js": { + "skip": "Depends on DOM API" + }, + "Blob-slice.any.js": { + "skip": "Depends on File API" + }, + "Blob-stream.any.js": { + "skip": "Depends on Web Streams API" + }, + "Blob-in-worker.worker.js": { + "skip": "Depends on Web Workers API" + } +} diff --git a/test/wpt/test-blob.js b/test/wpt/test-blob.js new file mode 100644 index 00000000000000..92e18bc0ef2f22 --- /dev/null +++ b/test/wpt/test-blob.js @@ -0,0 +1,13 @@ +'use strict'; + +require('../common'); +const { WPTRunner } = require('../common/wpt'); + +const runner = new WPTRunner('FileAPI/blob'); + +runner.setInitScript(` + const { Blob } = require('buffer'); + global.Blob = Blob; +`); + +runner.runJsTests(); diff --git a/tools/clang-format/package-lock.json b/tools/clang-format/package-lock.json index af57b9891ff830..61f17967f0e4a5 100644 --- a/tools/clang-format/package-lock.json +++ b/tools/clang-format/package-lock.json @@ -92,9 +92,9 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "resolve": { "version": "1.8.1", diff --git a/tools/doc/allhtml.mjs b/tools/doc/allhtml.mjs index 54a51dd6316010..905ea5d3dd6c6f 100644 --- a/tools/doc/allhtml.mjs +++ b/tools/doc/allhtml.mjs @@ -76,13 +76,13 @@ fs.writeFileSync(new URL('./all.html', source), all, 'utf8'); // Validate all hrefs have a target. const ids = new Set(); -const idRe = / id="(\w+)"/g; +const idRe = / id="([^"]+)"/g; let match; while (match = idRe.exec(all)) { ids.add(match[1]); } -const hrefRe = / href="#(\w+)"/g; +const hrefRe = / href="#([^"]+)"/g; while (match = hrefRe.exec(all)) { if (!ids.has(match[1])) throw new Error(`link not found: ${match[1]}`); } diff --git a/tools/doc/apilinks.mjs b/tools/doc/apilinks.mjs index 9a3291a37e2a60..a1b660f1cfaf54 100644 --- a/tools/doc/apilinks.mjs +++ b/tools/doc/apilinks.mjs @@ -61,8 +61,8 @@ inputs.forEach((file) => { const program = ast.body; // Build link - const link = `https://github.com/${repo}/blob/${tag}/` + - path.relative('.', file).replace(/\\/g, '/'); + const link = + `https://github.com/${repo}/blob/${tag}/${path.relative('.', file).replace(/\\/g, '/')}`; // Scan for exports. const exported = { constructors: [], identifiers: [] }; diff --git a/tools/doc/checkLinks.mjs b/tools/doc/checkLinks.mjs deleted file mode 100644 index 52f61af74527b9..00000000000000 --- a/tools/doc/checkLinks.mjs +++ /dev/null @@ -1,78 +0,0 @@ -import fs from 'fs'; -import { extname, join, resolve } from 'path'; -import { pathToFileURL } from 'url'; - -import gfm from 'remark-gfm'; -import markdown from 'remark-parse'; -import unified from 'unified'; - -const DIR = resolve(process.argv[2]); - -console.log('Running Markdown link checker...'); -findMarkdownFilesRecursively(DIR); - -function* getLinksRecursively(node) { - if (node.url && !node.url.startsWith('#')) { - yield node; - } - for (const child of node.children || []) { - yield* getLinksRecursively(child); - } -} - -function findMarkdownFilesRecursively(dirPath) { - const entries = fs.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 !== 'node_modules' && - entry.name !== 'out' && - entry.name !== 'tmp' - ) { - findMarkdownFilesRecursively(path); - } else if (entry.isFile() && extname(entry.name) === '.md') { - checkFile(path); - } - } -} - -function checkFile(path) { - const tree = unified() - .use(markdown) - .use(gfm) - .parse(fs.readFileSync(path)); - - const base = pathToFileURL(path); - let previousDefinitionLabel; - for (const node of getLinksRecursively(tree)) { - const targetURL = new URL(node.url, base); - if (targetURL.protocol === 'file:' && !fs.existsSync(targetURL)) { - const { line, column } = node.position.start; - console.error((process.env.GITHUB_ACTIONS ? - `::error file=${path},line=${line},col=${column}::` : '') + - `Broken link at ${path}:${line}:${column} (${node.url})`); - process.exitCode = 1; - } - if (node.type === 'definition') { - if (previousDefinitionLabel && - previousDefinitionLabel > node.label) { - const { line, column } = node.position.start; - console.error((process.env.GITHUB_ACTIONS ? - `::error file=${path},line=${line},col=${column}::` : '') + - `Unordered reference at ${path}:${line}:${column} (` + - `"${node.label}" should be before "${previousDefinitionLabel}")` - ); - process.exitCode = 1; - } - previousDefinitionLabel = node.label; - } - } -} diff --git a/tools/doc/generate.mjs b/tools/doc/generate.mjs index 3bf60878ab5e27..95f5528e31152e 100644 --- a/tools/doc/generate.mjs +++ b/tools/doc/generate.mjs @@ -27,6 +27,7 @@ import htmlStringify from 'rehype-stringify'; import gfm from 'remark-gfm'; import markdown from 'remark-parse'; import remark2rehype from 'remark-rehype'; +import frontmatter from 'remark-frontmatter'; import unified from 'unified'; import * as html from './html.mjs'; @@ -82,6 +83,7 @@ async function main() { const input = await fs.readFile(filename, 'utf8'); const content = await unified() + .use(frontmatter) .use(replaceLinks, { filename, linksMapper }) .use(markdown) .use(gfm) diff --git a/tools/doc/html.mjs b/tools/doc/html.mjs index 139d236d80b28b..c2c3a7a1836e88 100644 --- a/tools/doc/html.mjs +++ b/tools/doc/html.mjs @@ -167,12 +167,10 @@ function linkManPages(text) { const displayAs = `${name}(${number}${optionalCharacter})`; if (BSD_ONLY_SYSCALLS.has(name)) { - return `${beginning}${displayAs}`; + return `${beginning}${displayAs}`; } - return `${beginning}${displayAs}`; + return `${beginning}${displayAs}`; }); } @@ -210,17 +208,14 @@ export function preprocessElements({ filename }) { } else if (node.type === 'code') { if (!node.lang) { console.warn( - `No language set in ${filename}, ` + - `line ${node.position.start.line}`); + `No language set in ${filename}, line ${node.position.start.line}` + ); } const className = isJSFlavorSnippet(node) ? `language-js ${node.lang}` : `language-${node.lang}`; const highlighted = - `` + - (getLanguage(node.lang || '') ? - highlight(node.value, { language: node.lang }) : node).value + - ''; + `${(getLanguage(node.lang || '') ? highlight(node.value, { language: node.lang }) : node).value}`; node.type = 'html'; if (isJSFlavorSnippet(node)) { @@ -354,8 +349,7 @@ function parseYAML(text) { result += '\n\n'; } else { - result += `${added.description}${deprecated.description}` + - `${removed.description}\n`; + result += `${added.description}${deprecated.description}${removed.description}\n`; } if (meta.napiVersion) { @@ -418,15 +412,14 @@ export function buildToc({ filename, apilinks }) { const hasStability = node.stability !== undefined; toc += ' '.repeat((depth - 1) * 2) + (hasStability ? `* ` : '* ') + - `` + - `${headingText}${hasStability ? '' : ''}\n`; + `${headingText}${hasStability ? '' : ''}\n`; let anchor = `#`; if (realFilename === 'errors' && headingText.startsWith('ERR_')) { - anchor += `#`; + anchor += + `#`; } const api = headingText.replace(/^.*:\s+/, '').replace(/\(.*/, ''); @@ -476,8 +469,7 @@ function altDocs(filename, docCreated, versions) { `${host}/docs/latest-v${versionNum}/api/${filename}.html`; const wrapInListItem = (version) => - `
  • ${version.num}` + - `${version.lts ? ' LTS' : ''}
  • `; + `
  • ${version.num}${version.lts ? ' LTS' : ''}
  • `; function isDocInVersion(version) { const [versionMajor, versionMinor] = version.num.split('.').map(Number); @@ -497,8 +489,6 @@ function altDocs(filename, docCreated, versions) { ` : ''; } -// eslint-disable-next-line max-len -const githubLogo = ''; function editOnGitHub(filename) { - return `
  • ${githubLogo}Edit on GitHub
  • `; + return `
  • Edit on GitHub
  • `; } diff --git a/tools/doc/json.mjs b/tools/doc/json.mjs index 4dd8b9f67c9a72..318be8fd2ffb4e 100644 --- a/tools/doc/json.mjs +++ b/tools/doc/json.mjs @@ -455,7 +455,6 @@ const callWithParams = r`\([^)]*\)`; const maybeExtends = `(?: +extends +${maybeAncestors}${classId})?`; -/* eslint-disable max-len */ const headingExpressions = [ { type: 'event', re: RegExp( `${eventPrefix}${maybeBacktick}${maybeQuote}(${notQuotes})${maybeQuote}${maybeBacktick}$`, 'i') }, @@ -475,7 +474,6 @@ const headingExpressions = [ { type: 'property', re: RegExp( `^${maybeClassPropertyPrefix}${maybeBacktick}${ancestors}(${id})${maybeBacktick}$`, 'i') }, ]; -/* eslint-enable max-len */ function newSection(header, file) { const text = textJoin(header.children, file); diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index 9d9ce759c0896e..7d60e99f088c6c 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -11,10 +11,11 @@ "node-doc-generator": "generate.js" }, "devDependencies": { - "highlight.js": "10.7.3", + "highlight.js": "11.0.1", "js-yaml": "4.1.0", "rehype-raw": "5.1.0", "rehype-stringify": "8.0.0", + "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", "remark-html": "13.0.1", "remark-parse": "^9.0.0", @@ -25,7 +26,7 @@ "unist-util-visit": "3.1.0" }, "engines": { - "node": ">=12.10.0" + "node": ">=14.8.0" } }, "node_modules/@types/hast": { @@ -181,6 +182,28 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -356,12 +379,12 @@ } }, "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz", + "integrity": "sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==", "dev": true, "engines": { - "node": "*" + "node": ">=12.0.0" } }, "node_modules/html-void-elements": { @@ -551,6 +574,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-frontmatter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", + "integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", + "dev": true, + "dependencies": { + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-gfm": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", @@ -712,6 +748,19 @@ "parse-entities": "^2.0.0" } }, + "node_modules/micromark-extension-frontmatter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", + "integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", + "dev": true, + "dependencies": { + "fault": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/micromark-extension-gfm": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", @@ -873,6 +922,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-frontmatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", + "integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", + "dev": true, + "dependencies": { + "mdast-util-frontmatter": "^0.2.0", + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-gfm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", @@ -1380,6 +1443,21 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "requires": { + "format": "^0.2.0" + } + }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true + }, "hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -1513,9 +1591,9 @@ } }, "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz", + "integrity": "sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==", "dev": true }, "html-void-elements": { @@ -1640,6 +1718,15 @@ "unist-util-stringify-position": "^2.0.0" } }, + "mdast-util-frontmatter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", + "integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", + "dev": true, + "requires": { + "micromark-extension-frontmatter": "^0.2.0" + } + }, "mdast-util-gfm": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", @@ -1757,6 +1844,15 @@ "parse-entities": "^2.0.0" } }, + "micromark-extension-frontmatter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", + "integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", + "dev": true, + "requires": { + "fault": "^1.0.0" + } + }, "micromark-extension-gfm": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", @@ -1875,6 +1971,16 @@ "hast-util-to-html": "^7.1.1" } }, + "remark-frontmatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", + "integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", + "dev": true, + "requires": { + "mdast-util-frontmatter": "^0.2.0", + "micromark-extension-frontmatter": "^0.2.0" + } + }, "remark-gfm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", diff --git a/tools/doc/package.json b/tools/doc/package.json index 223220bcc1c7e5..92ac19660d5b42 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -7,10 +7,11 @@ "node": ">=14.8.0" }, "devDependencies": { - "highlight.js": "10.7.3", + "highlight.js": "11.0.1", "js-yaml": "4.1.0", "rehype-raw": "5.1.0", "rehype-stringify": "8.0.0", + "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", "remark-html": "13.0.1", "remark-parse": "^9.0.0", diff --git a/tools/doc/type-parser.mjs b/tools/doc/type-parser.mjs index 84d9a8a7df4fad..ca937453543049 100644 --- a/tools/doc/type-parser.mjs +++ b/tools/doc/type-parser.mjs @@ -38,6 +38,8 @@ const customTypesMap = { 'WebAssembly.Instance': `${jsDocPrefix}Reference/Global_Objects/WebAssembly/Instance`, + 'Blob': 'buffer.html#buffer_class_blob', + 'Iterable': `${jsDocPrefix}Reference/Iteration_protocols#The_iterable_protocol`, 'Iterator': @@ -122,8 +124,10 @@ const customTypesMap = { 'require': 'modules.html#modules_require_id', 'Handle': 'net.html#net_server_listen_handle_backlog_callback', + 'net.BlockList': 'net.html#net_class_net_blocklist', 'net.Server': 'net.html#net_class_net_server', 'net.Socket': 'net.html#net_class_net_socket', + 'net.SocketAddress': 'net.html#net_class_net_socketaddress', 'NodeEventTarget': 'events.html#events_class_nodeeventtarget', @@ -131,6 +135,10 @@ const customTypesMap = { 'os.constants.dlopen': 'os.html#os_dlopen_constants', 'Histogram': 'perf_hooks.html#perf_hooks_class_histogram', + 'IntervalHistogram': + 'perf_hooks.html#perf_hooks_class_intervalhistogram_extends_histogram', + 'RecordableHistogram': + 'perf_hooks.html#perf_hooks_class_recordablehistogram_extends_histogram', 'PerformanceEntry': 'perf_hooks.html#perf_hooks_class_performanceentry', 'PerformanceNodeTiming': 'perf_hooks.html#perf_hooks_class_performancenodetiming', @@ -167,6 +175,7 @@ const customTypesMap = { 'vm.SourceTextModule': 'vm.html#vm_class_vm_sourcetextmodule', 'MessagePort': 'worker_threads.html#worker_threads_class_messageport', + 'Worker': 'worker_threads.html#worker_threads_class_worker', 'zlib options': 'zlib.html#zlib_class_options', }; @@ -204,7 +213,7 @@ export function toLink(typeInput) { } else { throw new Error( `Unrecognized type: '${typeTextFull}'.\n` + - "Please, edit the type or update the 'tools/doc/type-parser.js'." + `Please, edit the type or update '${import.meta.url}'.` ); } } else { diff --git a/tools/eslint-rules/no-array-destructuring.js b/tools/eslint-rules/no-array-destructuring.js new file mode 100644 index 00000000000000..81667e698fbaad --- /dev/null +++ b/tools/eslint-rules/no-array-destructuring.js @@ -0,0 +1,83 @@ +/** + * @fileoverview Iterating over arrays should be avoided because it relies on + * user-mutable global methods (`Array.prototype[Symbol.iterator]` + * and `%ArrayIteratorPrototype%.next`), we should instead use + * other alternatives. This file defines a rule that disallow + * array destructuring syntax in favor of object destructuring + * syntax. Note that you can ignore this rule if you are using + * the array destructuring syntax over a safe iterable, or + * actually want to iterate over a user-provided object. + * @author aduh95 + */ +'use strict'; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const USE_OBJ_DESTRUCTURING = + 'Use object destructuring instead of array destructuring.'; +const USE_ARRAY_METHODS = + 'Use primordials.ArrayPrototypeSlice to avoid unsafe array iteration.'; + +const findComma = (sourceCode, elements, i, start) => { + if (i === 0) + return sourceCode.getTokenAfter(sourceCode.getTokenByRangeStart(start)); + + let element; + const originalIndex = i; + while (i && !element) { + element = elements[--i]; + } + let token = sourceCode.getTokenAfter( + element ?? sourceCode.getTokenByRangeStart(start) + ); + for (; i < originalIndex; i++) { + token = sourceCode.getTokenAfter(token); + } + return token; +}; +const createFix = (fixer, sourceCode, { range: [start, end], elements }) => [ + fixer.replaceTextRange([start, start + 1], '{'), + fixer.replaceTextRange([end - 1, end], '}'), + ...elements.map((node, i) => + (node === null ? + fixer.remove(findComma(sourceCode, elements, i, start)) : + fixer.insertTextBefore(node, i + ':')) + ), +]; +const arrayPatternContainsRestOperator = ({ elements }) => + elements?.find((node) => node?.type === 'RestElement'); + +module.exports = { + meta: { + type: 'suggestion', + fixable: 'code', + schema: [], + }, + create(context) { + const sourceCode = context.getSourceCode(); + + return { + ArrayPattern(node) { + const hasRest = arrayPatternContainsRestOperator(node); + context.report({ + message: hasRest ? USE_ARRAY_METHODS : USE_OBJ_DESTRUCTURING, + node: hasRest || node, + fix: hasRest ? + undefined : + (fixer) => [ + ...(node.parent.type === 'AssignmentExpression' ? + [ + fixer.insertTextBefore(node.parent, '('), + fixer.insertTextAfter(node.parent, ')'), + ] : + []), + ...createFix(fixer, sourceCode, node), + ], + }); + + }, + }; + }, +}; diff --git a/tools/find-inactive-collaborators.mjs b/tools/find-inactive-collaborators.mjs new file mode 100755 index 00000000000000..9f7ac239d2df01 --- /dev/null +++ b/tools/find-inactive-collaborators.mjs @@ -0,0 +1,204 @@ +#!/usr/bin/env node + +// Identify inactive collaborators. "Inactive" is not quite right, as the things +// this checks for are not the entirety of collaborator activities. Still, it is +// a pretty good proxy. Feel free to suggest or implement further metrics. + +import cp from 'node:child_process'; +import fs from 'node:fs'; +import readline from 'node:readline'; + +const SINCE = +process.argv[2] || 5000; + +async function runGitCommand(cmd, mapFn) { + const childProcess = cp.spawn('/bin/sh', ['-c', cmd], { + cwd: new URL('..', import.meta.url), + encoding: 'utf8', + stdio: ['inherit', 'pipe', 'inherit'], + }); + const lines = readline.createInterface({ + input: childProcess.stdout, + }); + const errorHandler = new Promise( + (_, reject) => childProcess.on('error', reject) + ); + let returnValue = mapFn ? new Set() : ''; + await Promise.race([errorHandler, Promise.resolve()]); + // If no mapFn, return the value. If there is a mapFn, use it to make a Set to + // return. + for await (const line of lines) { + await Promise.race([errorHandler, Promise.resolve()]); + if (mapFn) { + const val = mapFn(line); + if (val) { + returnValue.add(val); + } + } else { + returnValue += line; + } + } + return Promise.race([errorHandler, Promise.resolve(returnValue)]); +} + +// Get all commit authors during the time period. +const authors = await runGitCommand( + `git shortlog -n -s --email --max-count="${SINCE}" HEAD`, + (line) => line.trim().split('\t', 2)[1] +); + +// Get all commit landers during the time period. +const landers = await runGitCommand( + `git shortlog -n -s -c --email --max-count="${SINCE}" HEAD`, + (line) => line.trim().split('\t', 2)[1] +); + +// Get all approving reviewers of landed commits during the time period. +const approvingReviewers = await runGitCommand( + `git log --max-count="${SINCE}" | egrep "^ Reviewed-By: "`, + (line) => /^ Reviewed-By: ([^<]+)/.exec(line)[1].trim() +); + +async function getCollaboratorsFromReadme() { + const readmeText = readline.createInterface({ + input: fs.createReadStream(new URL('../README.md', import.meta.url)), + crlfDelay: Infinity, + }); + const returnedArray = []; + let foundCollaboratorHeading = false; + for await (const line of readmeText) { + // If we've found the collaborator heading already, stop processing at the + // next heading. + if (foundCollaboratorHeading && line.startsWith('#')) { + break; + } + + const isCollaborator = foundCollaboratorHeading && line.length; + + if (line === '### Collaborators') { + foundCollaboratorHeading = true; + } + if (line.startsWith('**') && isCollaborator) { + const [, name, email] = /^\*\*([^*]+)\*\* <(.+)>/.exec(line); + const mailmap = await runGitCommand( + `git check-mailmap '${name} <${email}>'` + ); + if (mailmap !== `${name} <${email}>`) { + console.log(`README entry for Collaborator does not match mailmap:\n ${name} <${email}> => ${mailmap}`); + } + returnedArray.push({ + name, + email, + mailmap, + }); + } + } + + if (!foundCollaboratorHeading) { + throw new Error('Could not find Collaborator section of README'); + } + + return returnedArray; +} + +async function moveCollaboratorToEmeritus(peopleToMove) { + const readmeText = readline.createInterface({ + input: fs.createReadStream(new URL('../README.md', import.meta.url)), + crlfDelay: Infinity, + }); + let fileContents = ''; + let inCollaboratorsSection = false; + let inCollaboratorEmeritusSection = false; + let collaboratorFirstLine = ''; + const textToMove = []; + for await (const line of readmeText) { + // If we've been processing collaborator emeriti and we reach the end of + // the list, print out the remaining entries to be moved because they come + // alphabetically after the last item. + if (inCollaboratorEmeritusSection && line === '' && + fileContents.endsWith('>\n')) { + while (textToMove.length) { + fileContents += textToMove.pop(); + } + } + + // If we've found the collaborator heading already, stop processing at the + // next heading. + if (line.startsWith('#')) { + inCollaboratorsSection = false; + inCollaboratorEmeritusSection = false; + } + + const isCollaborator = inCollaboratorsSection && line.length; + const isCollaboratorEmeritus = inCollaboratorEmeritusSection && line.length; + + if (line === '### Collaborators') { + inCollaboratorsSection = true; + } + if (line === '### Collaborator emeriti') { + inCollaboratorEmeritusSection = true; + } + + if (isCollaborator) { + if (line.startsWith('* ')) { + collaboratorFirstLine = line; + } else if (line.startsWith('**')) { + const [, name, email] = /^\*\*([^*]+)\*\* <(.+)>/.exec(line); + if (peopleToMove.some((entry) => { + return entry.name === name && entry.email === email; + })) { + textToMove.push(`${collaboratorFirstLine}\n${line}\n`); + } else { + fileContents += `${collaboratorFirstLine}\n${line}\n`; + } + } else { + fileContents += `${line}\n`; + } + } + + if (isCollaboratorEmeritus) { + if (line.startsWith('* ')) { + collaboratorFirstLine = line; + } else if (line.startsWith('**')) { + const currentLine = `${collaboratorFirstLine}\n${line}\n`; + // If textToMove is empty, this still works because when undefined is + // used in a comparison with <, the result is always false. + while (textToMove[0] < currentLine) { + fileContents += textToMove.shift(); + } + fileContents += currentLine; + } else { + fileContents += `${line}\n`; + } + } + + if (!isCollaborator && !isCollaboratorEmeritus) { + fileContents += `${line}\n`; + } + } + + return fileContents; +} + +// Get list of current collaborators from README.md. +const collaborators = await getCollaboratorsFromReadme(); + +console.log(`In the last ${SINCE} commits:\n`); +console.log(`* ${authors.size.toLocaleString()} authors have made commits.`); +console.log(`* ${landers.size.toLocaleString()} landers have landed commits.`); +console.log(`* ${approvingReviewers.size.toLocaleString()} reviewers have approved landed commits.`); +console.log(`* ${collaborators.length.toLocaleString()} collaborators currently in the project.`); + +const inactive = collaborators.filter((collaborator) => + !authors.has(collaborator.mailmap) && + !landers.has(collaborator.mailmap) && + !approvingReviewers.has(collaborator.name) +); + +if (inactive.length) { + console.log('\nInactive collaborators:\n'); + console.log(inactive.map((entry) => `* ${entry.name}`).join('\n')); + console.log('\nGenerating new README.md file...'); + const newReadmeText = await moveCollaboratorToEmeritus(inactive); + fs.writeFileSync(new URL('../README.md', import.meta.url), newReadmeText); + console.log('Updated README.md generated. Please commit these changes.'); +} diff --git a/tools/inspector_protocol/code_generator.py b/tools/inspector_protocol/code_generator.py index c1f78dc7492d78..0b8baea0ae710e 100755 --- a/tools/inspector_protocol/code_generator.py +++ b/tools/inspector_protocol/code_generator.py @@ -103,6 +103,17 @@ def init_defaults(config_tuple, path, defaults): ".lib": False, ".lib.export_macro": "", ".lib.export_header": False, + # The encoding lib consists of encoding/encoding.h and + # encoding/encoding.cc in its subdirectory, which binaries + # may link / depend on, instead of relying on the + # JINJA2 templates lib/encoding_{h,cc}.template. + # In that case, |header| identifies the include file + # and |namespace| is the namespace it's using. Usually + # inspector_protocol_encoding but for v8's copy it's + # v8_inspector_protocol_encoding. + # TODO(johannes): Migrate away from lib/encoding_{h,cc}.template + # in favor of this. + ".encoding_lib": { "header": "", "namespace": []}, } for key_value in config_values: parts = key_value.split("=") diff --git a/tools/inspector_protocol/encoding/encoding.cc b/tools/inspector_protocol/encoding/encoding.cc index c1078769c7feaf..636281dd8ad894 100644 --- a/tools/inspector_protocol/encoding/encoding.cc +++ b/tools/inspector_protocol/encoding/encoding.cc @@ -185,11 +185,10 @@ namespace internals { // |type| is the major type as specified in RFC 7049 Section 2.1. // |value| is the payload (e.g. for MajorType::UNSIGNED) or is the size // (e.g. for BYTE_STRING). -// If successful, returns the number of bytes read. Otherwise returns -1. -// TODO(johannes): change return type to size_t and use 0 for error. -int8_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { +// If successful, returns the number of bytes read. Otherwise returns 0. +size_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { if (bytes.empty()) - return -1; + return 0; uint8_t initial_byte = bytes[0]; *type = MajorType((initial_byte & kMajorTypeMask) >> kMajorTypeBitShift); @@ -203,32 +202,32 @@ int8_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { if (additional_information == kAdditionalInformation1Byte) { // Values 24-255 are encoded with one initial byte, followed by the value. if (bytes.size() < 2) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 2; } if (additional_information == kAdditionalInformation2Bytes) { // Values 256-65535: 1 initial byte + 2 bytes payload. if (bytes.size() < 1 + sizeof(uint16_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 3; } if (additional_information == kAdditionalInformation4Bytes) { // 32 bit uint: 1 initial byte + 4 bytes payload. if (bytes.size() < 1 + sizeof(uint32_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 5; } if (additional_information == kAdditionalInformation8Bytes) { // 64 bit uint: 1 initial byte + 8 bytes payload. if (bytes.size() < 1 + sizeof(uint64_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 9; } - return -1; + return 0; } // Writes the start of a token with |type|. The |value| may indicate the size, @@ -770,10 +769,10 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { SetToken(CBORTokenTag::NULL_VALUE, 1); return; case kExpectedConversionToBase64Tag: { // BINARY - const int8_t bytes_read = internals::ReadTokenStart( + const size_t bytes_read = internals::ReadTokenStart( bytes_.subspan(status_.pos + 1), &token_start_type_, &token_start_internal_value_); - if (bytes_read < 0 || token_start_type_ != MajorType::BYTE_STRING || + if (!bytes_read || token_start_type_ != MajorType::BYTE_STRING || token_start_internal_value_ > kMaxValidLength) { SetError(Error::CBOR_INVALID_BINARY); return; @@ -823,47 +822,49 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { return; } default: { - const int8_t token_start_length = internals::ReadTokenStart( + const size_t bytes_read = internals::ReadTokenStart( bytes_.subspan(status_.pos), &token_start_type_, &token_start_internal_value_); - const bool success = token_start_length >= 0; switch (token_start_type_) { case MajorType::UNSIGNED: // INT32. // INT32 is a signed int32 (int32 makes sense for the // inspector_protocol, it's not a CBOR limitation), so we check // against the signed max, so that the allowable values are // 0, 1, 2, ... 2^31 - 1. - if (!success || + if (!bytes_read || static_cast(std::numeric_limits::max()) < static_cast(token_start_internal_value_)) { SetError(Error::CBOR_INVALID_INT32); return; } - SetToken(CBORTokenTag::INT32, token_start_length); + SetToken(CBORTokenTag::INT32, bytes_read); return; case MajorType::NEGATIVE: { // INT32. // INT32 is a signed int32 (int32 makes sense for the - // inspector_protocol, it's not a CBOR limitation); in CBOR, - // the negative values for INT32 are represented as NEGATIVE, - // that is, -1 INT32 is represented as 1 << 5 | 0 (major type 1, - // additional info value 0). So here, we compute the INT32 value - // and then check it against the INT32 min. - int64_t actual_value = - -static_cast(token_start_internal_value_) - 1; - if (!success || actual_value < std::numeric_limits::min()) { + // inspector_protocol, it's not a CBOR limitation); in CBOR, the + // negative values for INT32 are represented as NEGATIVE, that is, -1 + // INT32 is represented as 1 << 5 | 0 (major type 1, additional info + // value 0). + // The represented allowed values range is -1 to -2^31. + // They are mapped into the encoded range of 0 to 2^31-1. + // We check the the payload in token_start_internal_value_ against + // that range (2^31-1 is also known as + // std::numeric_limits::max()). + if (!bytes_read || + static_cast(token_start_internal_value_) > + static_cast(std::numeric_limits::max())) { SetError(Error::CBOR_INVALID_INT32); return; } - SetToken(CBORTokenTag::INT32, token_start_length); + SetToken(CBORTokenTag::INT32, bytes_read); return; } case MajorType::STRING: { // STRING8. - if (!success || token_start_internal_value_ > kMaxValidLength) { + if (!bytes_read || token_start_internal_value_ > kMaxValidLength) { SetError(Error::CBOR_INVALID_STRING8); return; } - uint64_t token_byte_length = - token_start_internal_value_ + token_start_length; + uint64_t token_byte_length = token_start_internal_value_ + bytes_read; if (token_byte_length > remaining_bytes) { SetError(Error::CBOR_INVALID_STRING8); return; @@ -875,13 +876,12 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { case MajorType::BYTE_STRING: { // STRING16. // Length must be divisible by 2 since UTF16 is 2 bytes per // character, hence the &1 check. - if (!success || token_start_internal_value_ > kMaxValidLength || + if (!bytes_read || token_start_internal_value_ > kMaxValidLength || token_start_internal_value_ & 1) { SetError(Error::CBOR_INVALID_STRING16); return; } - uint64_t token_byte_length = - token_start_internal_value_ + token_start_length; + uint64_t token_byte_length = token_start_internal_value_ + bytes_read; if (token_byte_length > remaining_bytes) { SetError(Error::CBOR_INVALID_STRING16); return; @@ -1857,7 +1857,7 @@ class JsonParser { // If the |Char| we're dealing with is really a byte, then // we have utf8 here, and we need to check for multibyte characters // and transcode them to utf16 (either one or two utf16 chars). - if (sizeof(Char) == sizeof(uint8_t) && c >= 0x7f) { + if (sizeof(Char) == sizeof(uint8_t) && c > 0x7f) { // Inspect the leading byte to figure out how long the utf8 // byte sequence is; while doing this initialize |codepoint| // with the first few bits. @@ -1896,7 +1896,7 @@ class JsonParser { // Disallow overlong encodings for ascii characters, as these // would include " and other characters significant to JSON // string termination / control. - if (codepoint < 0x7f) + if (codepoint <= 0x7f) return false; // Invalid in UTF8, and can't be represented in UTF16 anyway. if (codepoint > 0x10ffff) diff --git a/tools/inspector_protocol/encoding/encoding.h b/tools/inspector_protocol/encoding/encoding.h index 90916d42b36dae..08596e9e1e43f0 100644 --- a/tools/inspector_protocol/encoding/encoding.h +++ b/tools/inspector_protocol/encoding/encoding.h @@ -427,7 +427,7 @@ Status AppendString8EntryToCBORMap(span string8_key, std::string* cbor); namespace internals { // Exposed only for writing tests. -int8_t ReadTokenStart(span bytes, +size_t ReadTokenStart(span bytes, cbor::MajorType* type, uint64_t* value); diff --git a/tools/inspector_protocol/encoding/encoding_test.cc b/tools/inspector_protocol/encoding/encoding_test.cc index b8d75e09baaf31..6893fe2581683c 100644 --- a/tools/inspector_protocol/encoding/encoding_test.cc +++ b/tools/inspector_protocol/encoding/encoding_test.cc @@ -234,6 +234,30 @@ TEST(EncodeDecodeInt32Test, RoundtripsInt32Max) { EXPECT_EQ(CBORTokenTag::DONE, tokenizer.TokenTag()); } +TEST(EncodeDecodeInt32Test, RoundtripsInt32Min) { + // std::numeric_limits is encoded as a uint32 (4 unsigned bytes) + // after the initial byte, which effectively carries the sign by + // designating the token as NEGATIVE. + std::vector encoded; + EncodeInt32(std::numeric_limits::min(), &encoded); + // 1 for initial byte, 4 for the uint32. + // first three bits: major type = 1; + // remaining five bits: additional info = 26, indicating payload is uint32. + EXPECT_THAT(encoded, ElementsAreArray(std::array{ + {1 << 5 | 26, 0x7f, 0xff, 0xff, 0xff}})); + + // Reverse direction: decode with CBORTokenizer. + CBORTokenizer tokenizer(SpanFrom(encoded)); + EXPECT_EQ(CBORTokenTag::INT32, tokenizer.TokenTag()); + EXPECT_EQ(std::numeric_limits::min(), tokenizer.GetInt32()); + // It's nice to see how the min int32 value reads in hex: + // That is, -1 minus the unsigned payload (0x7fffffff, see above). + int32_t expected = -1 - 0x7fffffff; + EXPECT_EQ(expected, tokenizer.GetInt32()); + tokenizer.Next(); + EXPECT_EQ(CBORTokenTag::DONE, tokenizer.TokenTag()); +} + TEST(EncodeDecodeInt32Test, CantRoundtripUint32) { // 0xdeadbeef is a value which does not fit below // std::numerical_limits::max(), so we can't encode @@ -261,15 +285,21 @@ TEST(EncodeDecodeInt32Test, DecodeErrorCases) { std::vector data; std::string msg; }; - std::vector tests{ - {TestCase{ - {24}, - "additional info = 24 would require 1 byte of payload (but it's 0)"}, - TestCase{{27, 0xaa, 0xbb, 0xcc}, - "additional info = 27 would require 8 bytes of payload (but " - "it's 3)"}, - TestCase{{29}, "additional info = 29 isn't recognized"}}}; - + std::vector tests{{ + TestCase{ + {24}, + "additional info = 24 would require 1 byte of payload (but it's 0)"}, + TestCase{{27, 0xaa, 0xbb, 0xcc}, + "additional info = 27 would require 8 bytes of payload (but " + "it's 3)"}, + TestCase{{29}, "additional info = 29 isn't recognized"}, + TestCase{{1 << 5 | 27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + "Max UINT64 payload is outside the allowed range"}, + TestCase{{1 << 5 | 26, 0xff, 0xff, 0xff, 0xff}, + "Max UINT32 payload is outside the allowed range"}, + TestCase{{1 << 5 | 26, 0x80, 0x00, 0x00, 0x00}, + "UINT32 payload w/ high bit set is outside the allowed range"}, + }}; for (const TestCase& test : tests) { SCOPED_TRACE(test.msg); CBORTokenizer tokenizer(SpanFrom(test.data)); @@ -1517,6 +1547,22 @@ TEST_F(JsonParserTest, SimpleDictionary) { log_.str()); } +TEST_F(JsonParserTest, UsAsciiDelCornerCase) { + // DEL (0x7f) is a 7 bit US-ASCII character, and while it is a control + // character according to Unicode, it's not considered a control + // character in https://tools.ietf.org/html/rfc7159#section-7, so + // it can be placed directly into the JSON string, without JSON escaping. + std::string json = "{\"foo\": \"a\x7f\"}"; + ParseJSON(GetTestPlatform(), SpanFrom(json), &log_); + EXPECT_TRUE(log_.status().ok()); + EXPECT_EQ( + "map begin\n" + "string16: foo\n" + "string16: a\x7f\n" + "map end\n", + log_.str()); +} + TEST_F(JsonParserTest, Whitespace) { std::string json = "\n {\n\"msg\"\n: \v\"Hello, world.\"\t\r}\t"; ParseJSON(GetTestPlatform(), SpanFrom(json), &log_); diff --git a/tools/inspector_protocol/lib/Values_cpp.template b/tools/inspector_protocol/lib/Values_cpp.template index be3149d50356f2..8b4dfc91e3b9c9 100644 --- a/tools/inspector_protocol/lib/Values_cpp.template +++ b/tools/inspector_protocol/lib/Values_cpp.template @@ -6,6 +6,10 @@ //#include "Values.h" +{% if config.encoding_lib.header %} +#include "{{config.encoding_lib.header}}" +{% endif %} + {% for namespace in config.protocol.namespace %} namespace {{namespace}} { {% endfor %} @@ -64,6 +68,30 @@ void escapeStringForJSONInternal(const Char* str, unsigned len, // to this constant. static constexpr int kStackLimitValues = 1000; +{% if config.encoding_lib.namespace %} +using {{"::".join(config.encoding_lib.namespace)}}::Error; +using {{"::".join(config.encoding_lib.namespace)}}::Status; +using {{"::".join(config.encoding_lib.namespace)}}::span; +namespace cbor { +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::CBORTokenTag; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::CBORTokenizer; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeBinary; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeDouble; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeFalse; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeFromLatin1; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeFromUTF16; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeIndefiniteLengthArrayStart; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeIndefiniteLengthMapStart; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeInt32; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeNull; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeStop; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeString8; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EncodeTrue; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::EnvelopeEncoder; +using {{"::".join(config.encoding_lib.namespace + ['cbor'])}}::InitialByteForEnvelope; +} // namespace cbor +{% endif %} + // Below are three parsing routines for CBOR, which cover enough // to roundtrip JSON messages. std::unique_ptr parseMap(int32_t stack_depth, cbor::CBORTokenizer* tokenizer); @@ -178,7 +206,12 @@ std::unique_ptr parseMap( key = StringUtil::fromUTF8(key_span.data(), key_span.size()); tokenizer->Next(); } else if (tokenizer->TokenTag() == cbor::CBORTokenTag::STRING16) { - return nullptr; // STRING16 not supported yet. + span key_span = tokenizer->GetString16WireRep(); + if (key_span.size() & 1) return nullptr; // UTF16 is 2 byte multiple. + key = StringUtil::fromUTF16( + reinterpret_cast(key_span.data()), + key_span.size() / 2); + tokenizer->Next(); } else { // Error::CBOR_INVALID_MAP_KEY return nullptr; diff --git a/tools/inspector_protocol/lib/encoding_cpp.template b/tools/inspector_protocol/lib/encoding_cpp.template index 2fc7dd623fdcc3..d3646491140663 100644 --- a/tools/inspector_protocol/lib/encoding_cpp.template +++ b/tools/inspector_protocol/lib/encoding_cpp.template @@ -5,6 +5,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +{% if config.encoding_lib.header == "" %} #include #include @@ -192,11 +193,10 @@ namespace internals { // |type| is the major type as specified in RFC 7049 Section 2.1. // |value| is the payload (e.g. for MajorType::UNSIGNED) or is the size // (e.g. for BYTE_STRING). -// If successful, returns the number of bytes read. Otherwise returns -1. -// TODO(johannes): change return type to size_t and use 0 for error. -int8_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { +// If successful, returns the number of bytes read. Otherwise returns 0. +size_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { if (bytes.empty()) - return -1; + return 0; uint8_t initial_byte = bytes[0]; *type = MajorType((initial_byte & kMajorTypeMask) >> kMajorTypeBitShift); @@ -210,32 +210,32 @@ int8_t ReadTokenStart(span bytes, MajorType* type, uint64_t* value) { if (additional_information == kAdditionalInformation1Byte) { // Values 24-255 are encoded with one initial byte, followed by the value. if (bytes.size() < 2) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 2; } if (additional_information == kAdditionalInformation2Bytes) { // Values 256-65535: 1 initial byte + 2 bytes payload. if (bytes.size() < 1 + sizeof(uint16_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 3; } if (additional_information == kAdditionalInformation4Bytes) { // 32 bit uint: 1 initial byte + 4 bytes payload. if (bytes.size() < 1 + sizeof(uint32_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 5; } if (additional_information == kAdditionalInformation8Bytes) { // 64 bit uint: 1 initial byte + 8 bytes payload. if (bytes.size() < 1 + sizeof(uint64_t)) - return -1; + return 0; *value = ReadBytesMostSignificantByteFirst(bytes.subspan(1)); return 9; } - return -1; + return 0; } // Writes the start of a token with |type|. The |value| may indicate the size, @@ -777,10 +777,10 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { SetToken(CBORTokenTag::NULL_VALUE, 1); return; case kExpectedConversionToBase64Tag: { // BINARY - const int8_t bytes_read = internals::ReadTokenStart( + const size_t bytes_read = internals::ReadTokenStart( bytes_.subspan(status_.pos + 1), &token_start_type_, &token_start_internal_value_); - if (bytes_read < 0 || token_start_type_ != MajorType::BYTE_STRING || + if (!bytes_read || token_start_type_ != MajorType::BYTE_STRING || token_start_internal_value_ > kMaxValidLength) { SetError(Error::CBOR_INVALID_BINARY); return; @@ -830,47 +830,49 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { return; } default: { - const int8_t token_start_length = internals::ReadTokenStart( + const size_t bytes_read = internals::ReadTokenStart( bytes_.subspan(status_.pos), &token_start_type_, &token_start_internal_value_); - const bool success = token_start_length >= 0; switch (token_start_type_) { case MajorType::UNSIGNED: // INT32. // INT32 is a signed int32 (int32 makes sense for the // inspector_protocol, it's not a CBOR limitation), so we check // against the signed max, so that the allowable values are // 0, 1, 2, ... 2^31 - 1. - if (!success || + if (!bytes_read || static_cast(std::numeric_limits::max()) < static_cast(token_start_internal_value_)) { SetError(Error::CBOR_INVALID_INT32); return; } - SetToken(CBORTokenTag::INT32, token_start_length); + SetToken(CBORTokenTag::INT32, bytes_read); return; case MajorType::NEGATIVE: { // INT32. // INT32 is a signed int32 (int32 makes sense for the - // inspector_protocol, it's not a CBOR limitation); in CBOR, - // the negative values for INT32 are represented as NEGATIVE, - // that is, -1 INT32 is represented as 1 << 5 | 0 (major type 1, - // additional info value 0). So here, we compute the INT32 value - // and then check it against the INT32 min. - int64_t actual_value = - -static_cast(token_start_internal_value_) - 1; - if (!success || actual_value < std::numeric_limits::min()) { + // inspector_protocol, it's not a CBOR limitation); in CBOR, the + // negative values for INT32 are represented as NEGATIVE, that is, -1 + // INT32 is represented as 1 << 5 | 0 (major type 1, additional info + // value 0). + // The represented allowed values range is -1 to -2^31. + // They are mapped into the encoded range of 0 to 2^31-1. + // We check the the payload in token_start_internal_value_ against + // that range (2^31-1 is also known as + // std::numeric_limits::max()). + if (!bytes_read || + static_cast(token_start_internal_value_) > + static_cast(std::numeric_limits::max())) { SetError(Error::CBOR_INVALID_INT32); return; } - SetToken(CBORTokenTag::INT32, token_start_length); + SetToken(CBORTokenTag::INT32, bytes_read); return; } case MajorType::STRING: { // STRING8. - if (!success || token_start_internal_value_ > kMaxValidLength) { + if (!bytes_read || token_start_internal_value_ > kMaxValidLength) { SetError(Error::CBOR_INVALID_STRING8); return; } - uint64_t token_byte_length = - token_start_internal_value_ + token_start_length; + uint64_t token_byte_length = token_start_internal_value_ + bytes_read; if (token_byte_length > remaining_bytes) { SetError(Error::CBOR_INVALID_STRING8); return; @@ -882,13 +884,12 @@ void CBORTokenizer::ReadNextToken(bool enter_envelope) { case MajorType::BYTE_STRING: { // STRING16. // Length must be divisible by 2 since UTF16 is 2 bytes per // character, hence the &1 check. - if (!success || token_start_internal_value_ > kMaxValidLength || + if (!bytes_read || token_start_internal_value_ > kMaxValidLength || token_start_internal_value_ & 1) { SetError(Error::CBOR_INVALID_STRING16); return; } - uint64_t token_byte_length = - token_start_internal_value_ + token_start_length; + uint64_t token_byte_length = token_start_internal_value_ + bytes_read; if (token_byte_length > remaining_bytes) { SetError(Error::CBOR_INVALID_STRING16); return; @@ -1864,7 +1865,7 @@ class JsonParser { // If the |Char| we're dealing with is really a byte, then // we have utf8 here, and we need to check for multibyte characters // and transcode them to utf16 (either one or two utf16 chars). - if (sizeof(Char) == sizeof(uint8_t) && c >= 0x7f) { + if (sizeof(Char) == sizeof(uint8_t) && c > 0x7f) { // Inspect the leading byte to figure out how long the utf8 // byte sequence is; while doing this initialize |codepoint| // with the first few bits. @@ -1903,7 +1904,7 @@ class JsonParser { // Disallow overlong encodings for ascii characters, as these // would include " and other characters significant to JSON // string termination / control. - if (codepoint < 0x7f) + if (codepoint <= 0x7f) return false; // Invalid in UTF8, and can't be represented in UTF16 anyway. if (codepoint > 0x10ffff) @@ -2198,3 +2199,5 @@ Status ConvertJSONToCBOR(const Platform& platform, {% for namespace in config.protocol.namespace %} } // namespace {{namespace}} {% endfor %} + +{% endif %} diff --git a/tools/inspector_protocol/lib/encoding_h.template b/tools/inspector_protocol/lib/encoding_h.template index f1a52a1958a14d..2c6cfc10d594c2 100644 --- a/tools/inspector_protocol/lib/encoding_h.template +++ b/tools/inspector_protocol/lib/encoding_h.template @@ -5,6 +5,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +{% if config.encoding_lib.header == "" %} #ifndef {{"_".join(config.protocol.namespace)}}_encoding_h #define {{"_".join(config.protocol.namespace)}}_encoding_h @@ -435,7 +436,7 @@ Status AppendString8EntryToCBORMap(span string8_key, std::string* cbor); namespace internals { // Exposed only for writing tests. -int8_t ReadTokenStart(span bytes, +size_t ReadTokenStart(span bytes, cbor::MajorType* type, uint64_t* value); @@ -518,3 +519,4 @@ Status ConvertJSONToCBOR(const Platform& platform, } // namespace {{namespace}} {% endfor %} #endif // !defined({{"_".join(config.protocol.namespace)}}_encoding_h) +{% endif %} diff --git a/tools/js2c.py b/tools/js2c.py index dd3ff9d5ca9f98..30475308e29bb7 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -36,6 +36,7 @@ import re import functools import codecs +import utils def ReadFile(filename): if is_verbose: @@ -202,12 +203,23 @@ def main(): fromfile_prefix_chars='@' ) parser.add_argument('--target', help='output file') + parser.add_argument( + '--directory', + default=None, + help='input file directory') parser.add_argument('--verbose', action='store_true', help='output file') parser.add_argument('sources', nargs='*', help='input files') options = parser.parse_args() global is_verbose is_verbose = options.verbose - source_files = functools.reduce(SourceFileByExt, options.sources, {}) + sources = options.sources + if options.directory is not None: + js_files = utils.SearchFiles(options.directory, 'js') + mjs_files = utils.SearchFiles(options.directory, 'mjs') + sources = js_files + mjs_files + options.sources + + source_files = functools.reduce(SourceFileByExt, sources, {}) + # Should have exactly 2 types: `.js`, and `.gypi` assert len(source_files) == 2 # Currently config.gypi is the only `.gypi` file allowed diff --git a/tools/license-builder.sh b/tools/license-builder.sh index 6bce09803c9d16..34becb8b8f77dd 100755 --- a/tools/license-builder.sh +++ b/tools/license-builder.sh @@ -30,7 +30,6 @@ fi # Dependencies bundled in distributions addlicense "Acorn" "deps/acorn" "$(cat "${rootdir}"/deps/acorn/acorn/LICENSE)" -addlicense "Acorn plugins" "deps/acorn-plugins" "$(cat "${rootdir}"/deps/acorn-plugins/acorn-class-fields/LICENSE)" addlicense "c-ares" "deps/cares" "$(tail -n +3 "${rootdir}"/deps/cares/LICENSE.md)" addlicense "cjs-module-lexer" "deps/cjs-module-lexer" "$(cat "${rootdir}"/deps/cjs-module-lexer/LICENSE)" if [ -f "${rootdir}/deps/icu/LICENSE" ]; then @@ -84,7 +83,7 @@ addlicense "cpplint.py" "tools/cpplint.py" \ "$(sed -e '/^$/,$d' -e 's/^#$//' -e 's/^# //' "${rootdir}"/tools/cpplint.py | tail -n +3)" addlicense "ESLint" "tools/node_modules/eslint" "$(cat "${rootdir}"/tools/node_modules/eslint/LICENSE)" addlicense "Babel" "tools/node_modules/@babel" "$(cat "${rootdir}"/tools/node_modules/@babel/core/LICENSE)" -addlicense "gtest" "test/cctest/gtest" "$(cat "${rootdir}"/test/cctest/gtest/LICENSE)" +addlicense "gtest" "deps/googletest" "$(cat "${rootdir}"/deps/googletest/LICENSE)" # nghttp2 addlicense "nghttp2" "deps/nghttp2" "$(cat "${rootdir}"/deps/nghttp2/COPYING)" diff --git a/tools/lint-md.js b/tools/lint-md.mjs similarity index 56% rename from tools/lint-md.js rename to tools/lint-md.mjs index 9dfa33e9614366..b614ae37d81af3 100644 --- a/tools/lint-md.js +++ b/tools/lint-md.mjs @@ -1,212 +1,19 @@ -'use strict'; - -// Don't change this file manually, -// it is generated from tools/node-lint-md-cli-rollup - -var require$$0$3 = require('stream'); -var path$2 = require('path'); -var Module = require('module'); -var util$2 = require('util'); -var os = require('os'); -var tty = require('tty'); -var fs$1 = require('fs'); -var events = require('events'); -var assert = require('assert'); - -function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - -var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$3); -var path__default = /*#__PURE__*/_interopDefaultLegacy(path$2); -var Module__default = /*#__PURE__*/_interopDefaultLegacy(Module); -var util__default = /*#__PURE__*/_interopDefaultLegacy(util$2); -var os__default = /*#__PURE__*/_interopDefaultLegacy(os); -var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty); -var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$1); -var events__default = /*#__PURE__*/_interopDefaultLegacy(events); -var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); - -var vfileStatistics = statistics; - -// Get stats for a file, list of files, or list of messages. -function statistics(files) { - var result = {true: 0, false: 0, null: 0}; - - count(files); - - return { - fatal: result.true, - nonfatal: result.false + result.null, - warn: result.false, - info: result.null, - total: result.true + result.false + result.null - } - - function count(value) { - if (value) { - if (value[0] && value[0].messages) { - // Multiple vfiles - countInAll(value); - } else { - // One vfile / messages - countAll(value.messages || value); - } - } - } - - function countInAll(files) { - var length = files.length; - var index = -1; - - while (++index < length) { - count(files[index].messages); - } - } - - function countAll(messages) { - var length = messages.length; - var index = -1; - var fatal; - - while (++index < length) { - fatal = messages[index].fatal; - result[fatal === null || fatal === undefined ? null : Boolean(fatal)]++; - } - } -} - -var slice = [].slice; - -var wrap_1 = wrap; - -// Wrap `fn`. -// Can be sync or async; return a promise, receive a completion handler, return -// new values and errors. -function wrap(fn, callback) { - var invoked; - - return wrapped - - function wrapped() { - var params = slice.call(arguments, 0); - var callback = fn.length > params.length; - var result; - - if (callback) { - params.push(done); - } - - try { - result = fn.apply(null, params); - } catch (error) { - // Well, this is quite the pickle. - // `fn` received a callback and invoked it (thus continuing the pipeline), - // but later also threw an error. - // We’re not about to restart the pipeline again, so the only thing left - // to do is to throw the thing instead. - if (callback && invoked) { - throw error - } - - return done(error) - } - - if (!callback) { - if (result && typeof result.then === 'function') { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - // Invoke `next`, only once. - function done() { - if (!invoked) { - invoked = true; - - callback.apply(null, arguments); - } - } - - // Invoke `done` with one value. - // Tracks if an error is passed, too. - function then(value) { - done(null, value); - } -} - -var trough_1 = trough; - -trough.wrap = wrap_1; - -var slice$1 = [].slice; - -// Create new middleware. -function trough() { - var fns = []; - var middleware = {}; - - middleware.run = run; - middleware.use = use; - - return middleware - - // Run `fns`. Last argument must be a completion handler. - function run() { - var index = -1; - var input = slice$1.call(arguments, 0, -1); - var done = arguments[arguments.length - 1]; - - if (typeof done !== 'function') { - throw new Error('Expected function as last argument, not ' + done) - } - - next.apply(null, [null].concat(input)); - - // Run the next `fn`, if any. - function next(err) { - var fn = fns[++index]; - var params = slice$1.call(arguments, 0); - var values = params.slice(1); - var length = input.length; - var pos = -1; - - if (err) { - done(err); - return - } - - // Copy non-nully input into values. - while (++pos < length) { - if (values[pos] === null || values[pos] === undefined) { - values[pos] = input[pos]; - } - } - - input = values; - - // Next or done. - if (fn) { - wrap_1(fn, next).apply(null, input); - } else { - done.apply(null, [null].concat(input)); - } - } - } - - // Add `fn` to the list. - function use(fn) { - if (typeof fn !== 'function') { - throw new Error('Expected `fn` to be a function, not ' + fn) - } - - fns.push(fn); - - return middleware - } -} +import path$b from 'path'; +import require$$0$3, { realpathSync as realpathSync$1, statSync, Stats } from 'fs'; +import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; +import process$2 from 'node:process'; +import stream, { PassThrough } from 'node:stream'; +import require$$0$2 from 'os'; +import tty$1 from 'tty'; +import require$$0$5 from 'events'; +import require$$0$4, { format as format$2, inspect as inspect$1 } from 'util'; +import require$$1 from 'stream'; +import path$c from 'node:path'; +import { pathToFileURL as pathToFileURL$1 } from 'node:url'; +import assert$2 from 'assert'; +import fs$a from 'node:fs'; +import { EventEmitter as EventEmitter$1 } from 'node:events'; +import process$1 from 'process'; var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -225,49234 +32,55996 @@ function getAugmentedNamespace(n) { return a; } -function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; -} - -function commonjsRequire (target) { - throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.'); +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.'); } -function isNothing(subject) { - return (typeof subject === 'undefined') || (subject === null); -} +var ansiStyles$2 = {exports: {}}; +var colorName$1 = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; -function isObject(subject) { - return (typeof subject === 'object') && (subject !== null); -} +/* MIT license */ +/* eslint-disable no-mixed-operators */ +const cssKeywords$1 = colorName$1; -function toArray(sequence) { - if (Array.isArray(sequence)) return sequence; - else if (isNothing(sequence)) return []; +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) - return [ sequence ]; +const reverseKeywords$1 = {}; +for (const key of Object.keys(cssKeywords$1)) { + reverseKeywords$1[cssKeywords$1[key]] = key; } +const convert$4 = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; -function extend(target, source) { - var index, length, key, sourceKeys; - - if (source) { - sourceKeys = Object.keys(source); - - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } - - return target; -} +var conversions$5 = convert$4; +// Hide .channels and .labels properties +for (const model of Object.keys(convert$4)) { + if (!('channels' in convert$4[model])) { + throw new Error('missing channels property: ' + model); + } -function repeat(string, count) { - var result = '', cycle; + if (!('labels' in convert$4[model])) { + throw new Error('missing channel labels property: ' + model); + } - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } + if (convert$4[model].labels.length !== convert$4[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } - return result; + const {channels, labels} = convert$4[model]; + delete convert$4[model].channels; + delete convert$4[model].labels; + Object.defineProperty(convert$4[model], 'channels', {value: channels}); + Object.defineProperty(convert$4[model], 'labels', {value: labels}); } +convert$4.rgb.hsl = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; -function isNegativeZero(number) { - return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); -} + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + h = Math.min(h * 60, 360); -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; + if (h < 0) { + h += 360; + } -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; + const l = (min + max) / 2; -// YAML error class. http://stackoverflow.com/questions/8458984 + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); + return [h, s * 100, l * 100]; +}; - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); +convert$4.rgb.hsv = function (rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } -YAMLException.prototype.toString = function toString(compact) { - var result = this.name + ': '; + return [ + h * 360, + s * 100, + v * 100 + ]; +}; - result += this.reason || '(unknown reason)'; +convert$4.rgb.hwb = function (rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert$4.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); - if (!compact && this.mark) { - result += ' ' + this.mark.toString(); - } + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return result; + return [h, w * 100, b * 100]; }; +convert$4.rgb.cmyk = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; -var exception = YAMLException; + return [c * 100, m * 100, y * 100, k * 100]; +}; -function Mark(name, buffer, position, line, column) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; +function comparativeDistance$1(x, y) { + /* + See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + */ + return ( + ((x[0] - y[0]) ** 2) + + ((x[1] - y[1]) ** 2) + + ((x[2] - y[2]) ** 2) + ); } +convert$4.rgb.keyword = function (rgb) { + const reversed = reverseKeywords$1[rgb]; + if (reversed) { + return reversed; + } -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { - var head, start, tail, end, snippet; - - if (!this.buffer) return null; + let currentClosestDistance = Infinity; + let currentClosestKeyword; - indent = indent || 4; - maxLength = maxLength || 75; + for (const keyword of Object.keys(cssKeywords$1)) { + const value = cssKeywords$1[keyword]; - head = ''; - start = this.position; + // Compute comparative distance + const distance = comparativeDistance$1(rgb, value); - while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > (maxLength / 2 - 1)) { - head = ' ... '; - start += 5; - break; - } - } + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } - tail = ''; - end = this.position; + return currentClosestKeyword; +}; - while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { - end += 1; - if (end - this.position > (maxLength / 2 - 1)) { - tail = ' ... '; - end -= 5; - break; - } - } +convert$4.keyword.rgb = function (keyword) { + return cssKeywords$1[keyword]; +}; - snippet = this.buffer.slice(start, end); +convert$4.rgb.xyz = function (rgb) { + let r = rgb[0] / 255; + let g = rgb[1] / 255; + let b = rgb[2] / 255; - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; -}; + // Assume sRGB + r = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92); + g = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92); + b = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92); + const x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + const y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + const z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); -Mark.prototype.toString = function toString(compact) { - var snippet, where = ''; + return [x * 100, y * 100, z * 100]; +}; - if (this.name) { - where += 'in "' + this.name + '" '; - } +convert$4.rgb.lab = function (rgb) { + const xyz = convert$4.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; - where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); + x /= 95.047; + y /= 100; + z /= 108.883; - if (!compact) { - snippet = this.getSnippet(); + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); - if (snippet) { - where += ':\n' + snippet; - } - } + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); - return where; + return [l, a, b]; }; +convert$4.hsl.rgb = function (hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t2; + let t3; + let val; -var mark = Mark; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'defaultStyle', - 'styleAliases' -]; + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; + const t1 = 2 * l - t2; -function compileStyleAliases(map) { - var result = {}; - - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } - - return result; -} + const rgb = [0, 0, 0]; + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } -function Type(tag, options) { - options = options || {}; + if (t3 > 1) { + t3--; + } - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } - // TODO: Add tag format check. - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + rgb[i] = val * 255; + } - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} + return rgb; +}; -var type = Type; +convert$4.hsl.hsv = function (hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); -/*eslint-disable max-len*/ + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + return [h, sv * 100, v * 100]; +}; +convert$4.hsv.rgb = function (hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - (s * f)); + const t = 255 * v * (1 - (s * (1 - f))); + v *= 255; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; +convert$4.hsv.hsl = function (hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; -function compileList(schema, name, result) { - var exclude = []; + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; - schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); - }); + return [h, sl * 100, l * 100]; +}; - schema[name].forEach(function (currentType) { - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); - } - }); +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert$4.hwb.rgb = function (hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; - result.push(currentType); - }); + // Wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); -} + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + if ((i & 0x01) !== 0) { + f = 1 - f; + } -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index, length; + const n = wh + f * (v - wh); // Linear interpolation - function collectType(type) { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } + let r; + let g; + let b; + /* eslint-disable max-statements-per-line,no-multi-spaces */ + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + /* eslint-enable max-statements-per-line,no-multi-spaces */ - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} + return [r * 255, g * 255, b * 255]; +}; +convert$4.cmyk.rgb = function (cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; -function Schema(definition) { - this.include = definition.include || []; - this.implicit = definition.implicit || []; - this.explicit = definition.explicit || []; + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); - this.implicit.forEach(function (type) { - if (type.loadKind && type.loadKind !== 'scalar') { - throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } - }); + return [r * 255, g * 255, b * 255]; +}; - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); -} +convert$4.xyz.rgb = function (xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); -Schema.DEFAULT = null; + // Assume sRGB + r = r > 0.0031308 + ? ((1.055 * (r ** (1.0 / 2.4))) - 0.055) + : r * 12.92; + g = g > 0.0031308 + ? ((1.055 * (g ** (1.0 / 2.4))) - 0.055) + : g * 12.92; -Schema.create = function createSchema() { - var schemas, types; + b = b > 0.0031308 + ? ((1.055 * (b ** (1.0 / 2.4))) - 0.055) + : b * 12.92; - switch (arguments.length) { - case 1: - schemas = Schema.DEFAULT; - types = arguments[0]; - break; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; + return [r * 255, g * 255, b * 255]; +}; - default: - throw new exception('Wrong number of arguments for Schema.create function'); - } +convert$4.xyz.lab = function (xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; - schemas = common.toArray(schemas); - types = common.toArray(types); + x /= 95.047; + y /= 100; + z /= 108.883; - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new exception('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); - } + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); - if (!types.every(function (type$1) { return type$1 instanceof type; })) { - throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); - return new Schema({ - include: schemas, - explicit: types - }); + return [l, a, b]; }; +convert$4.lab.xyz = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; -var schema = Schema; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; -var str = new type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; -var seq = new type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); + x *= 95.047; + y *= 100; + z *= 108.883; -var map = new type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); + return [x, y, z]; +}; -var failsafe = new schema({ - explicit: [ - str, - seq, - map - ] -}); +convert$4.lab.lch = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; -function resolveYamlNull(data) { - if (data === null) return true; + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; - var max = data.length; + if (h < 0) { + h += 360; + } - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} + const c = Math.sqrt(a * a + b * b); -function constructYamlNull() { - return null; -} + return [l, c, h]; +}; -function isNull(object) { - return object === null; -} +convert$4.lch.lab = function (lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; -var _null = new type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; } - }, - defaultStyle: 'lowercase' -}); + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); -function resolveYamlBoolean(data) { - if (data === null) return false; + return [l, a, b]; +}; - var max = data.length; +convert$4.rgb.ansi16 = function (args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert$4.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} + value = Math.round(value / 50); -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} + if (value === 0) { + return 30; + } -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} + let ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); -var bool = new type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); + if (value === 2) { + ansi += 60; + } -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} + return ansi; +}; -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} +convert$4.hsv.ansi16 = function (args) { + // Optimization here; we already know the value and don't need to get + // it converted for us. + return convert$4.rgb.ansi16(convert$4.hsv.rgb(args), args[2]); +}; -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} +convert$4.rgb.ansi256 = function (args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; -function resolveYamlInteger(data) { - if (data === null) return false; + // We use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } - var max = data.length, - index = 0, - hasDigits = false, - ch; + if (r > 248) { + return 231; + } - if (!max) return false; + return Math.round(((r - 8) / 247) * 24) + 232; + } - ch = data[index]; + const ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; - } + return ansi; +}; - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; +convert$4.ansi16.rgb = function (args) { + let color = args % 10; - // base 2, base 8, base 16 + // Handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } - if (ch === 'b') { - // base 2 - index++; + color = color / 10.5 * 255; - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } + return [color, color, color]; + } + const mult = (~~(args > 50) + 1) * 0.5; + const r = ((color & 1) * mult) * 255; + const g = (((color >> 1) & 1) * mult) * 255; + const b = (((color >> 2) & 1) * mult) * 255; - if (ch === 'x') { - // base 16 - index++; + return [r, g, b]; +}; - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } +convert$4.ansi256.rgb = function (args) { + // Handle greyscale + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } + args -= 16; - // base 10 (except 0) or base 60 + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = (rem % 6) / 5 * 255; - // value should not start with `_`; - if (ch === '_') return false; + return [r, g, b]; +}; - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } +convert$4.rgb.hex = function (args) { + const integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; - // if !base60 - done; - if (ch !== ':') return true; +convert$4.hex.rgb = function (args) { + const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} + let colorString = match[0]; -function constructYamlInteger(data) { - var value = data, sign = 1, ch, base, digits = []; + if (match[0].length === 3) { + colorString = colorString.split('').map(char => { + return char + char; + }).join(''); + } - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); - } + const integer = parseInt(colorString, 16); + const r = (integer >> 16) & 0xFF; + const g = (integer >> 8) & 0xFF; + const b = integer & 0xFF; - ch = value[0]; + return [r, g, b]; +}; - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; - } +convert$4.rgb.hcg = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = (max - min); + let grayscale; + let hue; - if (value === '0') return 0; + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } - if (value.indexOf(':') !== -1) { - value.split(':').forEach(function (v) { - digits.unshift(parseInt(v, 10)); - }); + hue /= 6; + hue %= 1; - value = 0; - base = 1; + return [hue * 360, chroma * 100, grayscale * 100]; +}; - digits.forEach(function (d) { - value += (d * base); - base *= 60; - }); +convert$4.hsl.hcg = function (hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; - return sign * value; + const c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l)); - } + let f = 0; + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } - return sign * parseInt(value, 10); -} + return [hsl[0], c * 100, f * 100]; +}; -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} +convert$4.hsv.hcg = function (hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; -var int = new type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] - } -}); + const c = s * v; + let f = 0; -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // 20:59 - '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); + if (c < 1.0) { + f = (v - c) / (1 - c); + } -function resolveYamlFloat(data) { - if (data === null) return false; + return [hsv[0], c * 100, f * 100]; +}; - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { - return false; - } +convert$4.hcg.rgb = function (hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; - return true; -} + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } -function constructYamlFloat(data) { - var value, sign, base, digits; + const pure = [0, 0, 0]; + const hi = (h % 1) * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; - digits = []; + /* eslint-disable max-statements-per-line */ + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } + /* eslint-enable max-statements-per-line */ - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); - } + mg = (1.0 - c) * g; - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; - } else if (value === '.nan') { - return NaN; +convert$4.hcg.hsv = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; - } else if (value.indexOf(':') >= 0) { - value.split(':').forEach(function (v) { - digits.unshift(parseFloat(v, 10)); - }); + const v = c + g * (1.0 - c); + let f = 0; - value = 0.0; - base = 1; + if (v > 0.0) { + f = c / v; + } - digits.forEach(function (d) { - value += d * base; - base *= 60; - }); + return [hcg[0], f * 100, v * 100]; +}; - return sign * value; +convert$4.hcg.hsl = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; - } - return sign * parseFloat(value, 10); -} + const l = g * (1.0 - c) + 0.5 * c; + let s = 0; + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + return [hcg[0], s * 100, l * 100]; +}; -function representYamlFloat(object, style) { - var res; +convert$4.hcg.hwb = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; - } +convert$4.hwb.hcg = function (hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; - res = object.toString(10); + if (c < 1) { + g = (v - c) / (1 - c); + } - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack + return [hwb[0], c * 100, g * 100]; +}; - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} +convert$4.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} +convert$4.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; -var float = new type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); +convert$4.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; -var json = new schema({ - include: [ - failsafe - ], - implicit: [ - _null, - bool, - int, - float - ] -}); +convert$4.gray.hsl = function (args) { + return [0, 0, args[0]]; +}; -var core = new schema({ - include: [ - json - ] -}); +convert$4.gray.hsv = convert$4.gray.hsl; -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day +convert$4.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute +convert$4.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} +convert$4.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; +convert$4.gray.hex = function (gray) { + const val = Math.round(gray[0] / 100 * 255) & 0xFF; + const integer = (val << 16) + (val << 8) + val; - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; - if (match === null) throw new Error('Date resolve error'); +convert$4.rgb.gray = function (rgb) { + const val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; - // match: [1] year [2] month [3] day +const conversions$4 = conversions$5; - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); +/* + This function routes a model to all other models. - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); - } + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). - // match: [4] hour [5] minute [6] second [7] fraction + conversions that are not possible simply are not included. +*/ - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); +function buildGraph$1() { + const graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + const models = Object.keys(conversions$4); - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } + for (let len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + return graph; +} - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS$1(fromModel) { + const graph = buildGraph$1(); + const queue = [fromModel]; // Unshift -> queue -> pop - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + graph[fromModel].distance = 0; - if (delta) date.setTime(date.getTime() - delta); + while (queue.length) { + const current = queue.pop(); + const adjacents = Object.keys(conversions$4[current]); - return date; -} + for (let len = adjacents.length, i = 0; i < len; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } -var timestamp = new type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); + return graph; +} -function resolveYamlMerge(data) { - return data === '<<' || data === null; +function link$2(from, to) { + return function (args) { + return to(from(args)); + }; } -var merge = new type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); +function wrapConversion$1(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions$4[graph[toModel].parent][toModel]; -/*eslint-disable no-bitwise*/ + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link$2(conversions$4[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } -var NodeBuffer; + fn.conversion = path; + return fn; +} -try { - // A trick for browserified version, to not include `Buffer` shim - var _require = commonjsRequire; - NodeBuffer = _require('buffer').Buffer; -} catch (__) {} +var route$3 = function (fromModel) { + const graph = deriveBFS$1(fromModel); + const conversion = {}; + const models = Object.keys(graph); + for (let len = models.length, i = 0; i < len; i++) { + const toModel = models[i]; + const node = graph[toModel]; + if (node.parent === null) { + // No possible conversion, or this node is the source model. + continue; + } + conversion[toModel] = wrapConversion$1(toModel, graph); + } -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + return conversion; +}; +const conversions$3 = conversions$5; +const route$2 = route$3; -function resolveYamlBinary(data) { - if (data === null) return false; +const convert$3 = {}; - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; +const models$1 = Object.keys(conversions$3); - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); +function wrapRaw$1(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + if (arg0 === undefined || arg0 === null) { + return arg0; + } - // Skip CR/LF - if (code > 64) continue; + if (arg0.length > 1) { + args = arg0; + } - // Fail on illegal characters - if (code < 0) return false; + return fn(args); + }; - bitlen += 6; - } + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; + return wrappedFn; } -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) +function wrapRounded$1(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } + if (arg0 === undefined || arg0 === null) { + return arg0; + } - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } + if (arg0.length > 1) { + args = arg0; + } - // Dump tail + const result = fn(args); - tailbits = (max % 4) * 6; + // We're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (let len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } + return result; + }; - // Wrap into Buffer for NodeJS and leave Array for browser - if (NodeBuffer) { - // Support node 6.+ Buffer API when available - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } - return result; + return wrappedFn; } -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. +models$1.forEach(fromModel => { + convert$3[fromModel] = {}; - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } + Object.defineProperty(convert$3[fromModel], 'channels', {value: conversions$3[fromModel].channels}); + Object.defineProperty(convert$3[fromModel], 'labels', {value: conversions$3[fromModel].labels}); - bits = (bits << 8) + object[idx]; - } + const routes = route$2(fromModel); + const routeModels = Object.keys(routes); - // Dump tail + routeModels.forEach(toModel => { + const fn = routes[toModel]; - tail = max % 3; + convert$3[fromModel][toModel] = wrapRounded$1(fn); + convert$3[fromModel][toModel].raw = wrapRaw$1(fn); + }); +}); - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; - } +var colorConvert$1 = convert$3; - return result; -} +(function (module) { -function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); -} +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; -var binary = new type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; -function resolveYamlOmap(data) { - if (data === null) return true; +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); - if (_toString.call(pair) !== '[object Object]') return false; + return value; + }, + enumerable: true, + configurable: true + }); +}; - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = colorConvert$1; + } - if (!pairHasKey) return false; + const offset = isBackground ? 10 : 0; + const styles = {}; - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } - return true; -} + return styles; +}; -function constructYamlOmap(data) { - return data !== null ? data : []; -} +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], -var omap = new type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], -var _toString$1 = Object.prototype.toString; + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; -function resolveYamlPairs(data) { - if (data === null) return true; + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; - var index, length, pair, keys, result, - object = data; + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; - result = new Array(object.length); + group[styleName] = styles[styleName]; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; + codes.set(style[0], style[1]); + } - if (_toString$1.call(pair) !== '[object Object]') return false; + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } - keys = Object.keys(pair); + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); - if (keys.length !== 1) return false; + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; - result[index] = [ keys[0], pair[keys[0]] ]; - } + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); - return true; + return styles; } -function constructYamlPairs(data) { - if (data === null) return []; +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); +}(ansiStyles$2)); - var index, length, pair, keys, result, - object = data; +var hasFlag$4 = (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); +}; - result = new Array(object.length); +const os$2 = require$$0$2; +const tty = tty$1; +const hasFlag$3 = hasFlag$4; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; +const {env: env$2} = process; - keys = Object.keys(pair); +let forceColor$1; +if (hasFlag$3('no-color') || + hasFlag$3('no-colors') || + hasFlag$3('color=false') || + hasFlag$3('color=never')) { + forceColor$1 = 0; +} else if (hasFlag$3('color') || + hasFlag$3('colors') || + hasFlag$3('color=true') || + hasFlag$3('color=always')) { + forceColor$1 = 1; +} - result[index] = [ keys[0], pair[keys[0]] ]; - } +if ('FORCE_COLOR' in env$2) { + if (env$2.FORCE_COLOR === 'true') { + forceColor$1 = 1; + } else if (env$2.FORCE_COLOR === 'false') { + forceColor$1 = 0; + } else { + forceColor$1 = env$2.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$2.FORCE_COLOR, 10), 3); + } +} - return result; +function translateLevel$2(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; } -var pairs = new type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); +function supportsColor$2(haveStream, streamIsTTY) { + if (forceColor$1 === 0) { + return 0; + } -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; + if (hasFlag$3('color=16m') || + hasFlag$3('color=full') || + hasFlag$3('color=truecolor')) { + return 3; + } -function resolveYamlSet(data) { - if (data === null) return true; + if (hasFlag$3('color=256')) { + return 2; + } - var key, object = data; + if (haveStream && !streamIsTTY && forceColor$1 === undefined) { + return 0; + } - for (key in object) { - if (_hasOwnProperty$1.call(object, key)) { - if (object[key] !== null) return false; - } - } + const min = forceColor$1 || 0; - return true; -} + if (env$2.TERM === 'dumb') { + return min; + } -function constructYamlSet(data) { - return data !== null ? data : {}; -} + 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$2.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } -var set = new type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); + return 1; + } -var default_safe = new schema({ - include: [ - core - ], - implicit: [ - timestamp, - merge - ], - explicit: [ - binary, - omap, - pairs, - set - ] -}); + if ('CI' in env$2) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { + return 1; + } -function resolveJavascriptUndefined() { - return true; -} + return min; + } -function constructJavascriptUndefined() { - /*eslint-disable no-undefined*/ - return undefined; -} + if ('TEAMCITY_VERSION' in env$2) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; + } -function representJavascriptUndefined() { - return ''; + if (env$2.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env$2) { + const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env$2.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env$2.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { + return 1; + } + + if ('COLORTERM' in env$2) { + return 1; + } + + return min; } -function isUndefined(object) { - return typeof object === 'undefined'; +function getSupportLevel$1(stream) { + const level = supportsColor$2(stream, stream && stream.isTTY); + return translateLevel$2(level); } -var _undefined = new type('tag:yaml.org,2002:js/undefined', { - kind: 'scalar', - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined -}); +var supportsColor_1$1 = { + supportsColor: getSupportLevel$1, + stdout: translateLevel$2(supportsColor$2(true, tty.isatty(1))), + stderr: translateLevel$2(supportsColor$2(true, tty.isatty(2))) +}; -function resolveJavascriptRegExp(data) { - if (data === null) return false; - if (data.length === 0) return false; +const stringReplaceAll$1 = (string, substring, replacer) => { + let index = string.indexOf(substring); + if (index === -1) { + return string; + } - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ''; + do { + returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; + endIndex = index + substringLength; + index = string.indexOf(substring, endIndex); + } while (index !== -1); - // if regexp starts with '/' it can have modifiers and must be properly closed - // `/foo/gim` - modifiers tail can be maximum 3 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; + returnValue += string.substr(endIndex); + return returnValue; +}; - if (modifiers.length > 3) return false; - // if expression starts with /, is should be properly terminated - if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; - } +const stringEncaseCRLFWithFirstIndex$1 = (string, prefix, postfix, index) => { + let endIndex = 0; + let returnValue = ''; + do { + const gotCR = string[index - 1] === '\r'; + returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; + endIndex = index + 1; + index = string.indexOf('\n', endIndex); + } while (index !== -1); - return true; -} + returnValue += string.substr(endIndex); + return returnValue; +}; -function constructJavascriptRegExp(data) { - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; +var util$4 = { + stringReplaceAll: stringReplaceAll$1, + stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 +}; - // `/foo/gim` - tail can be maximum 4 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } +const TEMPLATE_REGEX$1 = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX$1 = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; - return new RegExp(regexp, modifiers); -} +const ESCAPES$1 = new Map([ + ['n', '\n'], + ['r', '\r'], + ['t', '\t'], + ['b', '\b'], + ['f', '\f'], + ['v', '\v'], + ['0', '\0'], + ['\\', '\\'], + ['e', '\u001B'], + ['a', '\u0007'] +]); -function representJavascriptRegExp(object /*, style*/) { - var result = '/' + object.source + '/'; +function unescape$1(c) { + const u = c[0] === 'u'; + const bracket = c[1] === '{'; - if (object.global) result += 'g'; - if (object.multiline) result += 'm'; - if (object.ignoreCase) result += 'i'; + if ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } - return result; -} + if (u && bracket) { + return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); + } -function isRegExp(object) { - return Object.prototype.toString.call(object) === '[object RegExp]'; + return ESCAPES$1.get(c) || c; } -var regexp = new type('tag:yaml.org,2002:js/regexp', { - kind: 'scalar', - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp -}); +function parseArguments$1(name, arguments_) { + const results = []; + const chunks = arguments_.trim().split(/\s*,\s*/g); + let matches; -var esprima; + for (const chunk of chunks) { + const number = Number(chunk); + if (!Number.isNaN(number)) { + results.push(number); + } else if ((matches = chunk.match(STRING_REGEX$1))) { + results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, character) => escape ? unescape$1(escape) : character)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } -// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try { - // workaround to exclude package from browserify list. - var _require$1 = commonjsRequire; - esprima = _require$1('esprima'); -} catch (_) { - /* eslint-disable no-redeclare */ - /* global window */ - if (typeof window !== 'undefined') esprima = window.esprima; + return results; } +function parseStyle$1(style) { + STYLE_REGEX$1.lastIndex = 0; + const results = []; + let matches; -function resolveJavascriptFunction(data) { - if (data === null) return false; + while ((matches = STYLE_REGEX$1.exec(style)) !== null) { + const name = matches[1]; - try { - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }); - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - return false; - } + if (matches[2]) { + const args = parseArguments$1(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } - return true; - } catch (err) { - return false; - } + return results; } -function constructJavascriptFunction(data) { - /*jslint evil:true*/ +function buildStyle$1(chalk, styles) { + const enabled = {}; - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }), - params = [], - body; + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - throw new Error('Failed to resolve function'); - } + let current = chalk; + for (const [styleName, styles] of Object.entries(enabled)) { + if (!Array.isArray(styles)) { + continue; + } - ast.body[0].expression.params.forEach(function (param) { - params.push(param.name); - }); + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } - body = ast.body[0].expression.body.range; + current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; + } - // Esprima's ranges include the first '{' and the last '}' characters on - // function expressions. So cut them out. - if (ast.body[0].expression.body.type === 'BlockStatement') { - /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); - } - // ES6 arrow functions can omit the BlockStatement. In that case, just return - // the body. - /*eslint-disable no-new-func*/ - return new Function(params, 'return ' + source.slice(body[0], body[1])); + return current; } -function representJavascriptFunction(object /*, style*/) { - return object.toString(); -} +var templates$1 = (chalk, temporary) => { + const styles = []; + const chunks = []; + let chunk = []; -function isFunction(object) { - return Object.prototype.toString.call(object) === '[object Function]'; -} + // eslint-disable-next-line max-params + temporary.replace(TEMPLATE_REGEX$1, (m, escapeCharacter, inverse, style, close, character) => { + if (escapeCharacter) { + chunk.push(unescape$1(escapeCharacter)); + } else if (style) { + const string = chunk.join(''); + chunk = []; + chunks.push(styles.length === 0 ? string : buildStyle$1(chalk, styles)(string)); + styles.push({inverse, styles: parseStyle$1(style)}); + } else if (close) { + if (styles.length === 0) { + throw new Error('Found extraneous } in Chalk template literal'); + } -var _function = new type('tag:yaml.org,2002:js/function', { - kind: 'scalar', - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction, - represent: representJavascriptFunction -}); + chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); + chunk = []; + styles.pop(); + } else { + chunk.push(character); + } + }); -var default_full = schema.DEFAULT = new schema({ - include: [ - default_safe - ], - explicit: [ - _undefined, - regexp, - _function - ] -}); + chunks.push(chunk.join('')); -/*eslint-disable max-len,no-use-before-define*/ + if (styles.length > 0) { + const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; + throw new Error(errMessage); + } + return chunks.join(''); +}; +const ansiStyles$1 = ansiStyles$2.exports; +const {stdout: stdoutColor, stderr: stderrColor} = supportsColor_1$1; +const { + stringReplaceAll, + stringEncaseCRLFWithFirstIndex +} = util$4; +const {isArray: isArray$2} = Array; +// `supportsColor.level` → `ansiStyles.color[name]` mapping +const levelMapping = [ + 'ansi', + 'ansi', + 'ansi256', + 'ansi16m' +]; +const styles = Object.create(null); +const applyOptions = (object, options = {}) => { + if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { + throw new Error('The `level` option should be an integer from 0 to 3'); + } + // Detect level if not set manually + const colorLevel = stdoutColor ? stdoutColor.level : 0; + object.level = options.level === undefined ? colorLevel : options.level; +}; -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; +class ChalkClass { + constructor(options) { + // eslint-disable-next-line no-constructor-return + return chalkFactory(options); + } +} +const chalkFactory = options => { + const chalk = {}; + applyOptions(chalk, options); -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; + chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; + chalk.template.constructor = () => { + throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); + }; + chalk.template.Instance = ChalkClass; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + return chalk.template; +}; +function Chalk(options) { + return chalkFactory(options); +} -function _class(obj) { return Object.prototype.toString.call(obj); } - -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +for (const [styleName, style] of Object.entries(ansiStyles$1)) { + styles[styleName] = { + get() { + const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); + Object.defineProperty(this, styleName, {value: builder}); + return builder; + } + }; } -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} +styles.visible = { + get() { + const builder = createBuilder(this, this._styler, true); + Object.defineProperty(this, 'visible', {value: builder}); + return builder; + } +}; -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); +const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; + +for (const model of usedModels) { + styles[model] = { + get() { + const {level} = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles$1.color[levelMapping[level]][model](...arguments_), ansiStyles$1.color.close, this._styler); + return createBuilder(this, styler, this._isEmpty); + }; + } + }; } -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; +for (const model of usedModels) { + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const {level} = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles$1.bgColor[levelMapping[level]][model](...arguments_), ansiStyles$1.bgColor.close, this._styler); + return createBuilder(this, styler, this._isEmpty); + }; + } + }; } -function fromHexCode(c) { - var lc; +const proto = Object.defineProperties(() => {}, { + ...styles, + level: { + enumerable: true, + get() { + return this._generator.level; + }, + set(level) { + this._generator.level = level; + } + } +}); - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } +const createStyler = (open, close, parent) => { + let openAll; + let closeAll; + if (parent === undefined) { + openAll = open; + closeAll = close; + } else { + openAll = parent.openAll + open; + closeAll = close + parent.closeAll; + } - /*eslint-disable no-bitwise*/ - lc = c | 0x20; + return { + open, + close, + openAll, + closeAll, + parent + }; +}; - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } +const createBuilder = (self, _styler, _isEmpty) => { + const builder = (...arguments_) => { + if (isArray$2(arguments_[0]) && isArray$2(arguments_[0].raw)) { + // Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}` + return applyStyle(builder, chalkTag(builder, ...arguments_)); + } - return -1; -} + // Single argument is hot path, implicit coercion is faster than anything + // eslint-disable-next-line no-implicit-coercion + return applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' ')); + }; -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} + // We alter the prototype because we must return a function, but there is + // no way to create a function with a different prototype + Object.setPrototypeOf(builder, proto); -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } + builder._generator = self; + builder._styler = _styler; + builder._isEmpty = _isEmpty; - return -1; -} + return builder; +}; -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} +const applyStyle = (self, string) => { + if (self.level <= 0 || !string) { + return self._isEmpty ? '' : string; + } -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} + let styler = self._styler; -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} + if (styler === undefined) { + return string; + } + const {openAll, closeAll} = styler; + if (string.indexOf('\u001B') !== -1) { + while (styler !== undefined) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + string = stringReplaceAll(string, styler.close, styler.open); -function State(input, options) { - this.input = input; + styler = styler.parent; + } + } - this.filename = options['filename'] || null; - this.schema = options['schema'] || default_full; - this.onWarning = options['onWarning'] || null; - this.legacy = options['legacy'] || false; - this.json = options['json'] || false; - this.listener = options['listener'] || null; + // We can move both next actions out of loop, because remaining actions in loop won't have + // any/visible effect on parts we add here. Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 + const lfIndex = string.indexOf('\n'); + if (lfIndex !== -1) { + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); + } - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; + return openAll + string + closeAll; +}; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; +let template; +const chalkTag = (chalk, ...strings) => { + const [firstString] = strings; - this.documents = []; + if (!isArray$2(firstString) || !isArray$2(firstString.raw)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return strings.join(' '); + } - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ + const arguments_ = strings.slice(1); + const parts = [firstString.raw[0]]; -} + for (let i = 1; i < firstString.length; i++) { + parts.push( + String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), + String(firstString.raw[i]) + ); + } + if (template === undefined) { + template = templates$1; + } -function generateError(state, message) { - return new exception( - message, - new mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); -} + return template(chalk, parts.join('')); +}; -function throwError(state, message) { - throw generateError(state, message); -} +Object.defineProperties(Chalk.prototype, styles); -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} +const chalk$1 = Chalk(); // eslint-disable-line new-cap +chalk$1.supportsColor = stdoutColor; +chalk$1.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap +chalk$1.stderr.supportsColor = stderrColor; +var source$1 = chalk$1; -var directiveHandlers = { +var chokidar = {}; - YAML: function handleYamlDirective(state, name, args) { +var utils$7 = {}; - var match, major, minor; +const path$a = path$b; +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } +/** + * Posix glob regex + */ - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR$1 = `${QMARK}*?`; - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR: STAR$1, + START_ANCHOR +}; - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } +/** + * Windows glob regex + */ - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); +const WINDOWS_CHARS = { + ...POSIX_CHARS, - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}; - state.version = args[0]; - state.checkLineBreaks = (minor < 2); +/** + * POSIX Bracket Regex + */ - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, +const POSIX_REGEX_SOURCE$1 = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; - TAG: function handleTagDirective(state, name, args) { +var constants$5 = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - var handle, prefix; + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, - handle = args[0]; - prefix = args[1]; + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ - if (_hasOwnProperty$2.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } + CHAR_ASTERISK: 42, /* * */ - state.tagMap[handle] = prefix; - } -}; + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + SEP: path$a.sep, -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; + /** + * Create EXTGLOB_CHARS + */ - if (start < end) { - _result = state.input.slice(start, end); + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); - } + /** + * Create GLOB_CHARS + */ - state.result += _result; + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; } -} +}; -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; +(function (exports) { - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); - } +const path = path$b; +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = constants$5; - sourceKeys = Object.keys(source); +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; - if (!_hasOwnProperty$2.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; } -} - -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index, quantity; - - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, 'nested arrays are not supported inside keys'); - } + return false; +}; - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { - keyNode[index] = '[object Object]'; - } - } +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; } + return win32 === true || path.sep === '\\'; +}; - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { - keyNode = '[object Object]'; +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; + +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; } + return output; +}; +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; - keyNode = String(keyNode); - - if (_result === null) { - _result = {}; - } - - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && - !_hasOwnProperty$2.call(overridableKeys, keyNode) && - _hasOwnProperty$2.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - _result[keyNode] = valueNode; - delete overridableKeys[keyNode]; + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; } + return output; +}; +}(utils$7)); - return _result; -} - -function readLineBreak(state) { - var ch; +const utils$6 = utils$7; +const { + CHAR_ASTERISK: CHAR_ASTERISK$1, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA: CHAR_COMMA$2, /* , */ + CHAR_DOT: CHAR_DOT$1, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */ + CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$2, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */ + CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$2 /* ] */ +} = constants$5; - ch = state.input.charCodeAt(state.position); +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; } +}; - state.line += 1; - state.lineStart = state.position; -} +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), and `negated` (true if the path starts with `!`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); +const scan$1 = (input, options) => { + const opts = options || {}; - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; - if (is_EOL(ch)) { - readLineBreak(state); + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; + while (index < length) { + code = advance(); + let next; - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE$1) { + braceEscaped = true; } - } else { - break; + continue; } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE$1) { + braces++; - return lineBreaks; -} + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } -function testDocumentSeparator(state) { - var _position = state.position, - ch; + if (code === CHAR_LEFT_CURLY_BRACE$1) { + braces++; + continue; + } - ch = state.input.charCodeAt(_position); + if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { + if (scanToEnd === true) { + continue; + } - _position += 3; + break; + } - ch = state.input.charCodeAt(_position); + if (braceEscaped !== true && code === CHAR_COMMA$2) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } + if (scanToEnd === true) { + continue; + } - return false; -} + break; + } -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} + if (code === CHAR_RIGHT_CURLY_BRACE$1) { + braces--; + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; + if (scanToEnd === true) { + continue; + } - ch = state.input.charCodeAt(state.position); + break; + } - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { - return false; - } + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); + if (finished === true) continue; + if (prev === CHAR_DOT$1 && index === (start + 1)) { + start += 2; + continue; + } - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; + lastIndex = index + 1; + continue; } - } - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK$1 + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; - while (ch !== 0) { - if (ch === 0x3A/* : */) { - following = state.input.charCodeAt(state.position + 1); + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES$1) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES$1) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } break; } + } - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); + if (code === CHAR_ASTERISK$1) { + if (prev === CHAR_ASTERISK$1) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; - if (is_WS_OR_EOL(preceding)) { - break; + if (scanToEnd === true) { + continue; } - - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { break; + } - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); + if (scanToEnd === true) { continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; } + break; } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } + if (code === CHAR_LEFT_SQUARE_BRACKET$2) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; + if (next === CHAR_RIGHT_SQUARE_BRACKET$2) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + } } - ch = state.input.charCodeAt(++state.position); - } + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } - captureSegment(state, captureStart, captureEnd, false); + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES$1) { + isGlob = token.isGlob = true; - if (state.result) { - return true; - } + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES$1) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } - state.kind = _kind; - state.result = _result; - return false; -} + if (code === CHAR_RIGHT_PARENTHESES$1) { + finished = true; + break; + } + } + continue; + } + break; + } -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; + if (isGlob === true) { + finished = true; - ch = state.input.charCodeAt(state.position); + if (scanToEnd === true) { + continue; + } - if (ch !== 0x27/* ' */) { - return false; + break; + } } - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } - if (ch === 0x27/* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } + let base = str; + let prefix = ''; + let glob = ''; - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } - } else { - state.position++; - captureEnd = state.position; + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); } } - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} + if (opts.unescape === true) { + if (glob) glob = utils$6.removeBackslashes(glob); -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; + if (base && backslashes === true) { + base = utils$6.removeBackslashes(base); + } + } - ch = state.input.charCodeAt(state.position); + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated + }; - if (ch !== 0x22/* " */) { - return false; + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; } - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; + if (opts.parts === true || opts.tokens === true) { + let prevIndex; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== '') { + parts.push(value); + } + prevIndex = i; + } - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); + state.slashes = slashes; + state.parts = parts; + } - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; + return state; +}; - } else { - throwError(state, 'expected hexadecimal character'); - } - } +var scan_1 = scan$1; - state.result += charFromCodepoint(hexResult); +const constants$4 = constants$5; +const utils$5 = utils$7; - state.position++; +/** + * Constants + */ - } else { - throwError(state, 'unknown escape sequence'); - } +const { + MAX_LENGTH: MAX_LENGTH$4, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants$4; - captureStart = captureEnd = state.position; +/** + * Helpers + */ - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); + args.sort(); + const value = `[${args.join('-')}]`; - } else { - state.position++; - captureEnd = state.position; - } + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils$5.escapeRegex(v)).join('..'); } - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} + return value; +}; -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = {}, - keyNode, - keyTag, - valueNode, - ch; +/** + * Create the message for a syntax error + */ - ch = state.input.charCodeAt(state.position); +const syntaxError$1 = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ + +const parse$e = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; + input = REPLACEMENTS[input] || input; + + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$4, opts.maxLength) : MAX_LENGTH$4; + + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } - ch = state.input.charCodeAt(++state.position); + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); + const capture = opts.capture ? '' : '?:'; + const win32 = utils$5.isWindows(options); - ch = state.input.charCodeAt(state.position); + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants$4.globChars(win32); + const EXTGLOB_CHARS = constants$4.extglobChars(PLATFORM_CHARS); - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; + const globstar = (opts) => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } + if (opts.capture) { + star = `(${star})`; + } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; + } - ch = state.input.charCodeAt(state.position); + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } + input = utils$5.removePrefix(input, state); + len = input.length; - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); - } else { - _result.push(keyNode); - } + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; - skipSeparationSpace(state, true, nodeIndent); + /** + * Tokenizing helpers + */ - ch = state.input.charCodeAt(state.position); + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index]; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } + const negate = () => { + let count = 1; - throwError(state, 'unexpected end of the stream within a flow collection'); -} + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; + if (count % 2 === 0) { + return false; + } - ch = state.input.charCodeAt(state.position); + state.negated = true; + state.start++; + return true; + }; - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } + const increment = type => { + state[type]++; + stack.push(type); + }; - state.kind = 'scalar'; - state.result = ''; + const decrement = type => { + state[type]--; + stack.pop(); + }; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); - } + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; } - - } else { - break; } - } - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); + if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) { + extglobs[extglobs.length - 1].inner += tok.value; + } - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; } - } - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; - ch = state.input.charCodeAt(state.position); + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; - if (is_EOL(ch)) { - emptyLines++; - continue; - } + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); - // End of the scalar. - if (state.lineIndent < textIndent) { + if (token.type === 'negate') { + let extglobStar = star; - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); } - // Break this `while` cycle and go to the funciton's epilogue. - break; + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + + if (token.prev.type === 'bos' && eos()) { + state.negatedExtglob = true; + } } - // Folded style: use fancy rules to handle line breaks. - if (folding) { + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + /** + * Fast paths + */ - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; - } + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); } - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } } - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; + if (output === input && opts.contains === true) { + state.output = input; + return state; + } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; + state.output = utils$5.wrapOutput(output, state, options); + return state; } - ch = state.input.charCodeAt(state.position); + /** + * Tokenize input until we reach end-of-string + */ - while (ch !== 0) { + while (!eos()) { + value = advance(); - if (ch !== 0x2D/* - */) { - break; + if (value === '\u0000') { + continue; } - following = state.input.charCodeAt(state.position + 1); - - if (!is_WS_OR_EOL(following)) { - break; - } + /** + * Escaped characters + */ - detected = true; - state.position++; + if (value === '\\') { + const next = peek(); - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); + if (next === '/' && opts.bash !== true) { continue; } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); + if (next === '.' || next === ';') { + continue; + } - ch = state.input.charCodeAt(state.position); + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _pos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = {}, - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; + if (opts.unescape === true) { + value = advance() || ''; + } else { + value += advance() || ''; + } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } - ch = state.input.charCodeAt(state.position); + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - _pos = state.position; + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } } - - detected = true; - atExplicitKey = true; - allowCompact = true; - - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); } - state.position += 1; - ch = following; + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + prev.value += value; + append({ value }); + continue; + } - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); - } + if (state.quotes === 1 && value !== '"') { + value = utils$5.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } + /** + * Double quotes + */ - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } - } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + /** + * Parentheses + */ - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('opening', '(')); + } - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; } - } else { - break; // Reading is done. Go to the epilogue. + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; } - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; + /** + * Square brackets + */ + + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('closing', ']')); } - } - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; + value = `\\${value}`; + } else { + increment('brackets'); } - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); + push({ type: 'bracket', value }); + continue; } - if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; + } - // - // Epilogue. - // + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('opening', '[')); + } - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } + push({ type: 'text', value, output: `\\${value}` }); + continue; + } - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } + decrement('brackets'); - return detected; -} + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; + prev.value += value; + append({ value }); - ch = state.input.charCodeAt(state.position); + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils$5.hasRegexChars(prevValue)) { + continue; + } - if (ch !== 0x21/* ! */) return false; + const escaped = utils$5.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } - ch = state.input.charCodeAt(++state.position); + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); + /** + * Braces + */ - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); + if (value === '{' && opts.nobrace !== true) { + increment('braces'); - } else { - tagHandle = '!'; - } + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; - _position = state.position; + braces.push(open); + push(open); + continue; + } - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); + if (value === '}') { + const brace = braces[braces.length - 1]; - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); + let output = ')'; - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); + output = expandRange(range, opts); + state.backtrack = true; + } + + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); } } - ch = state.input.charCodeAt(++state.position); + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; } - tagName = state.input.slice(_position, state.position); + /** + * Pipes + */ - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } + /** + * Commas + */ - if (isVerbatim) { - state.tag = tagName; + if (value === ',') { + let output = value; - } else if (_hasOwnProperty$2.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } - } else if (tagHandle === '!') { - state.tag = '!' + tagName; + push({ type: 'comma', value, output }); + continue; + } - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; + /** + * Slashes + */ - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } - return true; -} + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } -function readAnchorProperty(state) { - var _position, - ch; + /** + * Dots + */ - ch = state.input.charCodeAt(state.position); + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } - if (ch !== 0x26/* & */) return false; + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + /** + * Question marks + */ - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; - state.anchor = state.input.slice(_position, state.position); - return true; -} + if (next === '<' && !utils$5.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } -function readAlias(state) { - var _position, alias, - ch; + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } - ch = state.input.charCodeAt(state.position); + push({ type: 'text', value, output }); + continue; + } - if (ch !== 0x2A/* * */) return false; + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + push({ type: 'qmark', value, output: QMARK }); + continue; + } - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } + /** + * Exclamation + */ - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } - alias = state.input.slice(_position, state.position); + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } - if (!_hasOwnProperty$2.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } + /** + * Plus + */ - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this 0) { + push({ type: 'plus', value }); + continue; + } - allowBlockStyles = allowBlockScalars = allowBlockCollections = - CONTEXT_BLOCK_OUT === nodeContext || - CONTEXT_BLOCK_IN === nodeContext; + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } - if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; + /** + * Plain text + */ - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; } + + push({ type: 'text', value }); + continue; } - } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; + /** + * Plain text + */ - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; + push({ type: 'text', value }); + continue; } - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; + /** + * Stars + */ - } else if (readAlias(state)) { - hasContent = true; + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); - } + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } - if (state.tag === null) { - state.tag = '?'; - } - } + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - if (state.tag !== null && state.tag !== '!') { - if (state.tag === '?') { - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only automatically assigned to plain scalars. - // - // We only need to check kind conformity in case user explicitly assigns '?' - // tag, for example like this: "! [0]" - // - if (state.result !== null && state.kind !== 'scalar') { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { break; } + rest = rest.slice(3); + consume('/**', 3); } - } else if (_hasOwnProperty$2.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; } - if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; } - } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); - } - } - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); + state.output += prior.output + prev.output; + state.globstar = true; - ch = state.input.charCodeAt(state.position); + consume(value + advance()); - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } + push({ type: 'slash', value: '/', output: '' }); + continue; + } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + const token = { type: 'star', value, output: star }; - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); - break; + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; } + push(token); + continue; + } - if (is_EOL(ch)) break; + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } - _position = state.position; + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + + } else { + state.output += nodot; + prev.output += nodot; } - directiveArgs.push(state.input.slice(_position, state.position)); + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } } - if (ch !== 0) readLineBreak(state); - - if (_hasOwnProperty$2.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } + push(token); } - skipSeparationSpace(state, true, -1); - - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ']')); + state.output = utils$5.escapeLast(state.output, '['); + decrement('brackets'); } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ')')); + state.output = utils$5.escapeLast(state.output, '('); + decrement('parens'); } - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', '}')); + state.output = utils$5.escapeLast(state.output, '{'); + decrement('braces'); } - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); } -} - - -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - if (input.length !== 0) { + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); + if (token.suffix) { + state.output += token.suffix; + } } } - var state = new State(input, options); - - var nullpos = input.indexOf('\0'); - - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, 'null byte is not allowed in input'); - } + return state; +}; - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; +parse$e.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$4, opts.maxLength) : MAX_LENGTH$4; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } - while (state.position < (state.length - 1)) { - readDocument(state); - } + input = REPLACEMENTS[input] || input; + const win32 = utils$5.isWindows(options); - return state.documents; -} + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants$4.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; -function loadAll(input, iterator, options) { - if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { - options = iterator; - iterator = null; + if (opts.capture) { + star = `(${star})`; } - var documents = loadDocuments(input, options); + const globstar = (opts) => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; - if (typeof iterator !== 'function') { - return documents; - } + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; -function load(input, options) { - var documents = loadDocuments(input, options); + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception('expected a single document in the stream, but found more'); -} + case '**': + return nodot + globstar(opts); + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; -function safeLoadAll(input, iterator, options) { - if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { - options = iterator; - iterator = null; - } + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - return loadAll(input, iterator, common.extend({ schema: default_safe }, options)); -} + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + const source = create(match[1]); + if (!source) return; -function safeLoad(input, options) { - return load(input, common.extend({ schema: default_safe }, options)); -} + return source + DOT_LITERAL + match[2]; + } + } + }; + const output = utils$5.removePrefix(input, state); + let source = create(output); -var loadAll_1 = loadAll; -var load_1 = load; -var safeLoadAll_1 = safeLoadAll; -var safeLoad_1 = safeLoad; + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } -var loader = { - loadAll: loadAll_1, - load: load_1, - safeLoadAll: safeLoadAll_1, - safeLoad: safeLoad_1 + return source; }; -/*eslint-disable no-use-before-define*/ +var parse_1$2 = parse$e; +const path$9 = path$b; +const scan = scan_1; +const parse$d = parse_1$2; +const utils$4 = utils$7; +const constants$3 = constants$5; +const isObject$3 = val => val && typeof val === 'object' && !Array.isArray(val); +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ +const picomatch$3 = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch$3(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } + const isState = isObject$3(glob) && glob.tokens && glob.input; + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } -var _toString$2 = Object.prototype.toString; -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; + const opts = options || {}; + const posix = utils$4.isWindows(options); + const regex = isState + ? picomatch$3.compileRe(glob, options) + : picomatch$3.makeRe(glob, options, false, true); -var CHAR_TAB = 0x09; /* Tab */ -var CHAR_LINE_FEED = 0x0A; /* LF */ -var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ -var CHAR_SPACE = 0x20; /* Space */ -var CHAR_EXCLAMATION = 0x21; /* ! */ -var CHAR_DOUBLE_QUOTE = 0x22; /* " */ -var CHAR_SHARP = 0x23; /* # */ -var CHAR_PERCENT = 0x25; /* % */ -var CHAR_AMPERSAND = 0x26; /* & */ -var CHAR_SINGLE_QUOTE = 0x27; /* ' */ -var CHAR_ASTERISK = 0x2A; /* * */ -var CHAR_COMMA = 0x2C; /* , */ -var CHAR_MINUS = 0x2D; /* - */ -var CHAR_COLON = 0x3A; /* : */ -var CHAR_EQUALS = 0x3D; /* = */ -var CHAR_GREATER_THAN = 0x3E; /* > */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; + const state = regex.state; + delete regex.state; -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch$3(opts.ignore, ignoreOpts, returnState); + } - if (map === null) return {}; + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch$3.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; - result = {}; - keys = Object.keys(map); + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; } - type = schema.compiledTypeMap['fallback'][tag]; - if (type && _hasOwnProperty$3.call(type.styleAliases, style)) { - style = type.styleAliases[style]; + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); } + return returnObject ? result : true; + }; - result[tag] = style; + if (returnState) { + matcher.state = state; } - return result; -} + return matcher; +}; -function encodeHex(character) { - var string, handle, length; +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ - string = character.toString(16).toUpperCase(); +picomatch$3.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + if (input === '') { + return { isMatch: false, output: '' }; } - return '\\' + handle + common.repeat('0', length - string.length) + string; -} + const opts = options || {}; + const format = opts.format || (posix ? utils$4.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; -function State$1(options) { - this.schema = options['schema'] || default_full; - this.indent = Math.max(1, (options['indent'] || 2)); - this.noArrayIndent = options['noArrayIndent'] || false; - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch$3.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } - this.tag = null; - this.result = ''; + return { isMatch: Boolean(match), match, output }; +}; - this.duplicates = []; - this.usedDuplicates = null; -} +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; +picomatch$3.matchBase = (input, glob, options, posix = utils$4.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch$3.makeRe(glob, options); + return regex.test(path$9.basename(input)); +}; - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ - if (line.length && line !== '\n') result += ind; +picomatch$3.isMatch = (str, patterns, options) => picomatch$3(patterns, options)(str); - result += line; - } +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ - return result; -} +picomatch$3.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch$3.parse(p, options)); + return parse$d(pattern, { ...options, fastpaths: false }); +}; -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ -function testImplicitResolving(state, str) { - var index, length, type; +picomatch$3.scan = (input, options) => scan(input, options); - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ - if (type.resolve(str)) { - return true; - } +picomatch$3.compileRe = (parsed, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return parsed.output; } - return false; -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) - || (0x10000 <= c && c <= 0x10FFFF); -} + let source = `${prepend}(?:${parsed.output})${append}`; + if (parsed && parsed.negated === true) { + source = `^(?!${source}).*$`; + } -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// [24] b-line-feed ::= #xA /* LF */ -// [25] b-carriage-return ::= #xD /* CR */ -// [3] c-byte-order-mark ::= #xFEFF -function isNsChar(c) { - return isPrintable(c) && !isWhitespace(c) - // byte-order-mark - && c !== 0xFEFF - // b-char - && c !== CHAR_CARRIAGE_RETURN - && c !== CHAR_LINE_FEED; -} + const regex = picomatch$3.toRegex(source, options); + if (returnState === true) { + regex.state = parsed; + } -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c, prev) { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // - ":" - "#" - // /* An ns-char preceding */ "#" - && c !== CHAR_COLON - && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); -} + return regex; +}; -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_EQUALS - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | “%” | “@” | “`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} +picomatch$3.makeRe = (input, options, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } -// Determines whether block indentation indicator is required. -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} + const opts = options || {}; + let parsed = { negated: false, fastpaths: true }; + let prefix = ''; + let output; -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; + if (input.startsWith('./')) { + input = input.slice(2); + prefix = parsed.prefix = './'; + } -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i; - var char, prev_char; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); + if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + output = parse$d.fastpaths(input, options); + } - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } + if (output === undefined) { + parsed = parse$d(input, options); + parsed.prefix = prefix + (parsed.prefix || ''); } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; + parsed.output = output; } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { - state.dump = (function () { - if (string.length === 0) { - return "''"; - } - if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { - return "'" + string + "'"; - } + return picomatch$3.compileRe(parsed, options, returnOutput, returnState); +}; - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } +picomatch$3.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string) + '"'; - default: - throw new exception('impossible error: invalid scalar style'); - } - }()); -} +/** + * Picomatch constants. + * @return {Object} + */ -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; +picomatch$3.constants = constants$3; - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); +/** + * Expose "picomatch" + */ - return indentIndicator + chomp + '\n'; -} +var picomatch_1 = picomatch$3; -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} +var picomatch$2 = picomatch_1; -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; +const fs$9 = require$$0$3; +const { Readable } = require$$1; +const sysPath$3 = path$b; +const { promisify: promisify$3 } = require$$0$4; +const picomatch$1 = picomatch$2; - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; - } +const readdir$1 = promisify$3(fs$9.readdir); +const stat$3 = promisify$3(fs$9.stat); +const lstat$2 = promisify$3(fs$9.lstat); +const realpath$2 = promisify$3(fs$9.realpath); - return result; -} +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; +const BANG$2 = '!'; +const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10)); +const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5)); - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); + if (typeof filter === 'string') { + const glob = picomatch$1(filter.trim()); + return entry => glob(entry.basename); } - return result.slice(1); // drop extra \n joiner -} - -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char, nextChar; - var escapeSeq; - - for (var i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); - // Advance index one extra since we already used that char here. - i++; continue; + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG$2) { + negative.push(picomatch$1(trimmed.slice(1))); + } else { + positive.push(picomatch$1(trimmed)); } } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length; - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); } + return entry => positive.some(f => f(entry.basename)); } +}; - state.tag = _tag; - state.dump = '[' + _result + ']'; -} - -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length; +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); - _result += state.dump; + const statMethod = opts.lstat ? lstat$2 : stat$3; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (wantBigintFsStats) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; } - } - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath$3.resolve(root); + this._isDirent = ('Dirent' in fs$9) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { + async _read(batch) { + if (this.reading) return; + this.reading = true; - pairBuffer = ''; - if (index !== 0) pairBuffer += ', '; + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; - if (state.condenseFlow) pairBuffer += '"'; + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; } + } - if (state.dump.length > 1024) pairBuffer += '? '; - - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. + async _exploreDir(path, depth) { + let files; + try { + files = await readdir$1(path, this._rdOptions); + } catch (error) { + this._onError(error); } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; + return { files, depth, path }; } - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new exception('sortKeys must be a boolean or a function'); + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath$3.resolve(sysPath$3.join(path, basename)); + entry = { path: sysPath$3.relative(this._root, fullPath), fullPath, basename }; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); } + } - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; } - - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; - } + if (stats.isFile()) { + return 'file'; } - - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); + if (stats.isDirectory()) { + return 'directory'; } - - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. + if (stats && stats.isSymbolicLink()) { + const full = entry.fullPath; + try { + const entryRealPath = await realpath$2(full); + const entryRealPathStats = await lstat$2(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + const len = entryRealPath.length; + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath$3.sep) { + const recursiveError = new Error( + `Circular symlink detected: "${full}" points to "${entryRealPath}"` + ); + recursiveError.code = RECURSIVE_ERROR_CODE; + return this._onError(recursiveError); + } + return 'directory'; + } + } catch (error) { + this._onError(error); + } } + } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; - pairBuffer += state.dump; + return stats && this._wantsEverything && !stats.isDirectory(); + } +} - // Both key and value are valid. - _result += pairBuffer; +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp$1 = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); } - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} + options.root = root; + return new ReaddirpStream(options); +}; -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp$1(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; - typeList = explicit ? state.explicitTypes : state.implicitTypes; +readdirp$1.promise = readdirpPromise; +readdirp$1.ReaddirpStream = ReaddirpStream; +readdirp$1.default = readdirp$1; - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; +var readdirp_1 = readdirp$1; - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { +var anymatch$2 = {exports: {}}; - state.tag = explicit ? type.tag : '?'; +/*! + * normalize-path + * + * Copyright (c) 2014-2018, Jon Schlinkert. + * Released under the MIT License. + */ - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; +var normalizePath$2 = function(path, stripTrailing) { + if (typeof path !== 'string') { + throw new TypeError('expected path to be a string'); + } - if (_toString$2.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty$3.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); - } + if (path === '\\' || path === '/') return '/'; - state.dump = _result; - } + var len = path.length; + if (len <= 1) return path; - return true; + // ensure that win32 namespaces has two leading slashes, so that the path is + // handled properly by the win32 version of path.parse() after being normalized + // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces + var prefix = ''; + if (len > 4 && path[3] === '\\') { + var ch = path[2]; + if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { + path = path.slice(2); + prefix = '//'; } } - return false; -} + var segs = path.split(/[/\\]+/); + if (stripTrailing !== false && segs[segs.length - 1] === '') { + segs.pop(); + } + return prefix + segs.join('/'); +}; -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; +Object.defineProperty(anymatch$2.exports, "__esModule", { value: true }); - if (!detectType(state, object, false)) { - detectType(state, object, true); - } +const picomatch = picomatch$2; +const normalizePath$1 = normalizePath$2; - var type = _toString$2.call(state.dump); +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG$1 = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify$1 = (item) => Array.isArray(item) ? item : [item]; - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; } + if (typeof matcher === 'string') { + const glob = picomatch(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; - - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) } + const path = normalizePath$1(_path); - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; - if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, arrayLevel, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, arrayLevel, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new exception('unacceptable kind of an object to dump ' + type); - } - - if (state.tag !== null && state.tag !== '?') { - state.dump = '!<' + state.tag + '> ' + state.dump; + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; } } - return true; -} + return returnIndex ? -1 : false; +}; -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch$1 = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; - inspectNode(object, objects, duplicatesIndexes); + // Early cache for matchers. + const mtchers = arrify$1(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG$1) + .map(item => item.slice(1)) + .map(item => picomatch(item, opts)); + const patterns = mtchers + .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG$1)) + .map(matcher => createPattern(matcher, opts)); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } } - state.usedDuplicates = new Array(length); -} -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); +anymatch$1.default = anymatch$1; +anymatch$2.exports = anymatch$1; - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } +var isExtglob$1 = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; } -} - -function dump(input, options) { - options = options || {}; - var state = new State$1(options); + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } - if (!state.noRefs) getDuplicateReferences(input, state); + return false; +}; - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - return ''; -} +var isExtglob = isExtglob$1; +var chars$1 = { '{': '}', '(': ')', '[': ']'}; +var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; +var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; -function safeDump(input, options) { - return dump(input, common.extend({ schema: default_safe }, options)); -} +var isGlob$2 = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } -var dump_1 = dump; -var safeDump_1 = safeDump; + if (isExtglob(str)) { + return true; + } -var dumper = { - dump: dump_1, - safeDump: safeDump_1 -}; + var regex = strictRegex; + var match; -function deprecated(name) { - return function () { - throw new Error('Function ' + name + ' is deprecated and cannot be used.'); - }; -} + // optionally relax regex + if (options && options.strict === false) { + regex = relaxedRegex; + } + while ((match = regex.exec(str))) { + if (match[2]) return true; + var idx = match.index + match[0].length; -var Type$1 = type; -var Schema$1 = schema; -var FAILSAFE_SCHEMA = failsafe; -var JSON_SCHEMA = json; -var CORE_SCHEMA = core; -var DEFAULT_SAFE_SCHEMA = default_safe; -var DEFAULT_FULL_SCHEMA = default_full; -var load$1 = loader.load; -var loadAll$1 = loader.loadAll; -var safeLoad$1 = loader.safeLoad; -var safeLoadAll$1 = loader.safeLoadAll; -var dump$1 = dumper.dump; -var safeDump$1 = dumper.safeDump; -var YAMLException$1 = exception; - -// Deprecated schema names from JS-YAML 2.0.x -var MINIMAL_SCHEMA = failsafe; -var SAFE_SCHEMA = default_safe; -var DEFAULT_SCHEMA = default_full; - -// Deprecated functions from JS-YAML 1.x.x -var scan = deprecated('scan'); -var parse = deprecated('parse'); -var compose = deprecated('compose'); -var addConstructor = deprecated('addConstructor'); + // if an open bracket/brace/paren is escaped, + // set the index to the next closing character + var open = match[1]; + var close = open ? chars$1[open] : null; + if (open && close) { + var n = str.indexOf(close, idx); + if (n !== -1) { + idx = n + 1; + } + } -var jsYaml = { - Type: Type$1, - Schema: Schema$1, - FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, - JSON_SCHEMA: JSON_SCHEMA, - CORE_SCHEMA: CORE_SCHEMA, - DEFAULT_SAFE_SCHEMA: DEFAULT_SAFE_SCHEMA, - DEFAULT_FULL_SCHEMA: DEFAULT_FULL_SCHEMA, - load: load$1, - loadAll: loadAll$1, - safeLoad: safeLoad$1, - safeLoadAll: safeLoadAll$1, - dump: dump$1, - safeDump: safeDump$1, - YAMLException: YAMLException$1, - MINIMAL_SCHEMA: MINIMAL_SCHEMA, - SAFE_SCHEMA: SAFE_SCHEMA, - DEFAULT_SCHEMA: DEFAULT_SCHEMA, - scan: scan, - parse: parse, - compose: compose, - addConstructor: addConstructor + str = str.slice(idx); + } + return false; }; -var jsYaml$1 = jsYaml; +var isGlob$1 = isGlob$2; +var pathPosixDirname = path$b.posix.dirname; +var isWin32 = require$$0$2.platform() === 'win32'; -var isArrayish = function isArrayish(obj) { - if (!obj) { - return false; - } +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; - return obj instanceof Array || Array.isArray(obj) || - (obj.length >= 0 && obj.splice instanceof Function); -}; +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} + */ +var globParent$1 = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); -var errorEx = function errorEx(name, properties) { - if (!name || name.constructor !== String) { - properties = name || {}; - name = Error.name; - } + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } - var errorExError = function ErrorEXError(message) { - if (!this) { - return new ErrorEXError(message); - } + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } - message = message instanceof Error - ? message.message - : (message || this.message); + // preserves full path in case of trailing path separator + str += 'a'; - Error.call(this, message); - Error.captureStackTrace(this, errorExError); + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob$1(str) || globby.test(str)); - this.name = name; + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; - Object.defineProperty(this, 'message', { - configurable: true, - enumerable: false, - get: function () { - var newMessage = message.split(/\r?\n/g); +var utils$3 = {}; - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } +(function (exports) { - var modifier = properties[key]; +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; - if ('message' in modifier) { - newMessage = modifier.message(this[key], newMessage) || newMessage; - if (!isArrayish(newMessage)) { - newMessage = [newMessage]; - } - } - } +/** + * Find a node of the given type + */ - return newMessage.join('\n'); - }, - set: function (v) { - message = v; - } - }); +exports.find = (node, type) => node.nodes.find(node => node.type === type); - var overwrittenStack = null; +/** + * Find a node of the given type + */ - var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); - var stackGetter = stackDescriptor.get; - var stackValue = stackDescriptor.value; - delete stackDescriptor.value; - delete stackDescriptor.writable; +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; - stackDescriptor.set = function (newstack) { - overwrittenStack = newstack; - }; +/** + * Escape the given node with '\\' before node.value + */ - stackDescriptor.get = function () { - var stack = (overwrittenStack || ((stackGetter) - ? stackGetter.call(this) - : stackValue)).split(/\r?\n+/g); +exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; - // starting in Node 7, the stack builder caches the message. - // just replace it. - if (!overwrittenStack) { - stack[0] = this.name + ': ' + this.message; - } + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; - var lineCount = 1; - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } +/** + * Returns true if the given brace node should be enclosed in literal braces + */ - var modifier = properties[key]; +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; - if ('line' in modifier) { - var line = modifier.line(this[key]); - if (line) { - stack.splice(lineCount++, 0, ' ' + line); - } - } +/** + * Returns true if a brace node is invalid. + */ - if ('stack' in modifier) { - modifier.stack(this[key], stack); - } - } +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; - return stack.join('\n'); - }; +/** + * Returns true if a node is an open or close node + */ - Object.defineProperty(this, 'stack', stackDescriptor); - }; +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(errorExError.prototype, Error.prototype); - Object.setPrototypeOf(errorExError, Error); - } else { - util__default['default'].inherits(errorExError, Error); - } +/** + * Reduce an array of text nodes. + */ - return errorExError; +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; }; +}(utils$3)); -errorEx.append = function (str, def) { - return { - message: function (v, message) { - v = v || def; +const utils$2 = utils$3; - if (v) { - message[0] += ' ' + str.replace('%s', v.toString()); - } +var stringify$6 = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils$2.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; - return message; - } - }; -}; + if (node.value) { + if ((invalidBlock || invalidNode) && utils$2.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } -errorEx.line = function (str, def) { - return { - line: function (v) { - v = v || def; + if (node.value) { + return node.value; + } - if (v) { - return str.replace('%s', v.toString()); - } + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } + return output; + }; - return null; - } - }; + return stringify(ast); }; -var errorEx_1 = errorEx; +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ -const hexify = char => { - const h = char.charCodeAt(0).toString(16).toUpperCase(); - return '0x' + (h.length % 2 ? '0' : '') + h +var isNumber$3 = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; }; -const parseError = (e, txt, context) => { - if (!txt) { - return { - message: e.message + ' while parsing empty string', - position: 0, - } +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +const isNumber$2 = isNumber$3; + +const toRegexRange$1 = (min, max, options) => { + if (isNumber$2(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); } - const badToken = e.message.match(/^Unexpected token (.) .*position\s+(\d+)/i); - const errIdx = badToken ? +badToken[2] - : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 - : null; - const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${ - JSON.stringify(badToken[1]) - } (${hexify(badToken[1])})`) - : e.message; + if (max === void 0 || min === max) { + return String(min); + } - if (errIdx !== null && errIdx !== undefined) { - const start = errIdx <= context ? 0 - : errIdx - context; + if (isNumber$2(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } - const end = errIdx + context >= txt.length ? txt.length - : errIdx + context; + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } - const slice = (start === 0 ? '' : '...') + - txt.slice(start, end) + - (end === txt.length ? '' : '...'); + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; - const near = txt === slice ? '' : 'near '; + if (toRegexRange$1.cache.hasOwnProperty(cacheKey)) { + return toRegexRange$1.cache[cacheKey].result; + } - return { - message: msg + ` while parsing ${near}${JSON.stringify(slice)}`, - position: errIdx, + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; } - } else { - return { - message: msg + ` while parsing '${txt.slice(0, context * 2)}'`, - position: 0, + if (opts.wrap === false) { + return result; } + return `(?:${result})`; } -}; -class JSONParseError extends SyntaxError { - constructor (er, txt, context, caller) { - context = context || 20; - const metadata = parseError(er, txt, context); - super(metadata.message); - Object.assign(this, metadata); - this.code = 'EJSONPARSE'; - this.systemError = er; - Error.captureStackTrace(this, caller || this.constructor); - } - get name () { return this.constructor.name } - set name (n) {} - get [Symbol.toStringTag] () { return this.constructor.name } -} + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; -const kIndent = Symbol.for('indent'); -const kNewline = Symbol.for('newline'); -// only respect indentation if we got a line break, otherwise squash it -// things other than objects and arrays aren't indented, so ignore those -// Important: in both of these regexps, the $1 capture group is the newline -// or undefined, and the $2 capture group is the indent, or undefined. -const formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/; -const emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/; + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } -const parseJson = (txt, reviver, context) => { - const parseText = stripBOM(txt); - context = context || 20; - try { - // get the indentation so that we can save it back nicely - // if the file starts with {" then we have an indent of '', ie, none - // otherwise, pick the indentation of the next line after the first \n - // If the pattern doesn't match, then it means no indentation. - // JSON.stringify ignores symbols, so this is reasonably safe. - // if the string is '{}' or '[]', then use the default 2-space indent. - const [, newline = '\n', indent = ' '] = parseText.match(emptyRE) || - parseText.match(formatRE) || - [, '', '']; + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } - const result = JSON.parse(parseText, reviver); - if (result && typeof result === 'object') { - result[kNewline] = newline; - result[kIndent] = indent; - } - return result - } catch (e) { - if (typeof txt !== 'string' && !Buffer.isBuffer(txt)) { - const isEmptyArray = Array.isArray(txt) && txt.length === 0; - throw Object.assign(new TypeError( - `Cannot parse ${isEmptyArray ? 'an empty array' : String(txt)}` - ), { - code: 'EJSONPARSE', - systemError: e, - }) - } + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives); - throw new JSONParseError(e, parseText, context, parseJson) + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; } + + toRegexRange$1.cache[cacheKey] = state; + return state.result; }; -// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) -// because the buffer-to-string conversion in `fs.readFileSync()` -// translates it to FEFF, the UTF-16 BOM. -const stripBOM = txt => String(txt).replace(/^\uFEFF/, ''); +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false) || []; + let onlyPositive = filterPatterns(pos, neg, '', false) || []; + let intersected = filterPatterns(neg, pos, '-?', true) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} -var jsonParseEvenBetterErrors = parseJson; -parseJson.JSONParseError = JSONParseError; +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; -parseJson.noExceptions = (txt, reviver) => { - try { - return JSON.parse(stripBOM(txt), reviver) - } catch (e) {} -}; + let stop = countNines(min, nines); + let stops = new Set([max]); -var LF = '\n'; -var CR = '\r'; -var LinesAndColumns = (function () { - function LinesAndColumns(string) { - this.string = string; - var offsets = [0]; - for (var offset = 0; offset < string.length;) { - switch (string[offset]) { - case LF: - offset += LF.length; - offsets.push(offset); - break; - case CR: - offset += CR.length; - if (string[offset] === LF) { - offset += LF.length; - } - offsets.push(offset); - break; - default: - offset++; - break; - } - } - this.offsets = offsets; - } - LinesAndColumns.prototype.locationForIndex = function (index) { - if (index < 0 || index > this.string.length) { - return null; - } - var line = 0; - var offsets = this.offsets; - while (offsets[line + 1] <= index) { - line++; - } - var column = index - offsets[line]; - return { line: line, column: column }; - }; - LinesAndColumns.prototype.indexForLocation = function (location) { - var line = location.line, column = location.column; - if (line < 0 || line >= this.offsets.length) { - return null; - } - if (column < 0 || column > this.lengthOfLine(line)) { - return null; - } - return this.offsets[line] + column; - }; - LinesAndColumns.prototype.lengthOfLine = function (line) { - var offset = this.offsets[line]; - var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1]; - return nextOffset - offset; - }; - return LinesAndColumns; -}()); + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } -var dist = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': LinesAndColumns -}); + stop = countZeros(max + 1, zeros) - 1; -// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell -// License: MIT. (See LICENSE.) + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + stops = [...stops]; + stops.sort(compare$c); + return stops; +} +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ -// This regex comes from regex.coffee, and is inserted here by generate-index.js -// (run `npm run build`). -var _default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } -var matchToToken = function(match) { - var token = {type: "invalid", value: match[0], closed: undefined}; - if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]); - else if (match[ 5]) token.type = "comment"; - else if (match[ 6]) token.type = "comment", token.closed = !!match[7]; - else if (match[ 8]) token.type = "regex"; - else if (match[ 9]) token.type = "number"; - else if (match[10]) token.type = "name"; - else if (match[11]) token.type = "punctuator"; - else if (match[12]) token.type = "whitespace"; - return token -}; + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; -var jsTokens = /*#__PURE__*/Object.defineProperty({ - default: _default, - matchToToken: matchToToken -}, '__esModule', {value: true}); + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; -var isIdentifierStart_1 = isIdentifierStart; -var isIdentifierChar_1 = isIdentifierChar; -var isIdentifierName_1 = isIdentifierName; -let 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"; -let 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"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const 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]; -const 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]; + if (startDigit === stopDigit) { + pattern += startDigit; -function isInAstralSet(code, set) { - let pos = 0x10000; + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit); - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; + } else { + count++; + } } - return false; + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; } -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; - return isInAstralSet(code, astralIdentifierStartCodes); -} + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); + return tokens; } -function isIdentifierName(name) { - let isFirst = true; +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; - for (let _i = 0, _Array$from = Array.from(name); _i < _Array$from.length; _i++) { - const char = _Array$from[_i]; - const cp = char.codePointAt(0); + for (let ele of arr) { + let { string } = ele; - if (isFirst) { - if (!isIdentifierStart(cp)) { - return false; - } + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } - isFirst = false; - } else if (!isIdentifierChar(cp)) { - return false; + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); } } + return result; +} - return !isFirst; +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; } -var identifier = /*#__PURE__*/Object.defineProperty({ - isIdentifierStart: isIdentifierStart_1, - isIdentifierChar: isIdentifierChar_1, - isIdentifierName: isIdentifierName_1 -}, '__esModule', {value: true}); +function compare$c(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} -var isReservedWord_1 = isReservedWord; -var isStrictReservedWord_1 = isStrictReservedWord; -var isStrictBindOnlyReservedWord_1 = isStrictBindOnlyReservedWord; -var isStrictBindReservedWord_1 = isStrictBindReservedWord; -var isKeyword_1 = isKeyword; -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); } -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); } -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; } -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; } -function isKeyword(word) { - return keywords.has(word); +function hasPadding(str) { + return /^-?(0+)\d/.test(str); } -var keyword = /*#__PURE__*/Object.defineProperty({ - isReservedWord: isReservedWord_1, - isStrictReservedWord: isStrictReservedWord_1, - isStrictBindOnlyReservedWord: isStrictBindOnlyReservedWord_1, - isStrictBindReservedWord: isStrictBindReservedWord_1, - isKeyword: isKeyword_1 -}, '__esModule', {value: true}); +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } -var lib = createCommonjsModule(function (module, exports) { + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return identifier.isIdentifierName; + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } } -}); -Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return identifier.isIdentifierChar; +} + +/** + * Cache + */ + +toRegexRange$1.cache = {}; +toRegexRange$1.clearCache = () => (toRegexRange$1.cache = {}); + +/** + * Expose `toRegexRange` + */ + +var toRegexRange_1 = toRegexRange$1; + +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +const util$3 = require$$0$4; +const toRegexRange = toRegexRange_1; + +const isObject$2 = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform$3 = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber$1 = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify$5 = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; } -}); -Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return identifier.isIdentifierStart; + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); } -}); -Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return keyword.isReservedWord; + if (toNumber === false) { + return String(input); } -}); -Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictBindOnlyReservedWord; + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; } -}); -Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictBindReservedWord; + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); } -}); -Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictReservedWord; + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; } -}); -Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return keyword.isKeyword; + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; } -}); -}); -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + if (options.wrap) { + return `(${prefix}${result})`; + } -var escapeStringRegexp = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } + return result; +}; - return str.replace(matchOperatorsRe, '\\$&'); +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; }; -var colorName = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); }; -/* MIT license */ - -var conversions = createCommonjsModule(function (module) { -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) - -var reverseKeywords = {}; -for (var key in colorName) { - if (colorName.hasOwnProperty(key)) { - reverseKeywords[colorName[key]] = key; - } -} +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util$3.inspect(...args)); +}; -var convert = module.exports = { - rgb: {channels: 3, labels: 'rgb'}, - hsl: {channels: 3, labels: 'hsl'}, - hsv: {channels: 3, labels: 'hsv'}, - hwb: {channels: 3, labels: 'hwb'}, - cmyk: {channels: 4, labels: 'cmyk'}, - xyz: {channels: 3, labels: 'xyz'}, - lab: {channels: 3, labels: 'lab'}, - lch: {channels: 3, labels: 'lch'}, - hex: {channels: 1, labels: ['hex']}, - keyword: {channels: 1, labels: ['keyword']}, - ansi16: {channels: 1, labels: ['ansi16']}, - ansi256: {channels: 1, labels: ['ansi256']}, - hcg: {channels: 3, labels: ['h', 'c', 'g']}, - apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, - gray: {channels: 1, labels: ['gray']} +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; }; -// hide .channels and .labels properties -for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); - } +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); - } + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - Object.defineProperty(convert[model], 'labels', {value: labels}); - } -} + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; -convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify$5(start, end, options) === false; + let format = options.transform || transform$3(toNumber); - h = Math.min(h * 60, 360); + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } - if (h < 0) { - h += 360; - } + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; - l = (min + max) / 2; + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } - return [h, s * 100, l * 100]; + return range; }; -convert.rgb.hsv = function (rgb) { - var rdif; - var gdif; - var bdif; - var h; - var s; +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber$1(start) && start.length > 1) || (!isNumber$1(end) && end.length > 1)) { + return invalidRange(start, end, options); + } - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var v = Math.max(r, g, b); - var diff = v - Math.min(r, g, b); - var diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; - if (diff === 0) { - h = s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = (1 / 3) + rdif - bdif; - } else if (b === v) { - h = (2 / 3) + gdif - rdif; - } - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - } + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); - return [ - h * 360, - s * 100, - v * 100 - ]; -}; + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } -convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); + let range = []; + let index = 0; - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } - return [h, w * 100, b * 100]; + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; }; -convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; +const fill$2 = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } - return [c * 100, m * 100, y * 100, k * 100]; -}; + if (typeof step === 'function') { + return fill$2(start, end, 1, { transform: step }); + } -/** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ -function comparativeDistance(x, y) { - return ( - Math.pow(x[0] - y[0], 2) + - Math.pow(x[1] - y[1], 2) + - Math.pow(x[2] - y[2], 2) - ); -} + if (isObject$2(step)) { + return fill$2(start, end, 0, step); + } -convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; - var currentClosestDistance = Infinity; - var currentClosestKeyword; + if (!isNumber$1(step)) { + if (step != null && !isObject$2(step)) return invalidStep(step, opts); + return fill$2(start, end, 1, step); + } - for (var keyword in colorName) { - if (colorName.hasOwnProperty(keyword)) { - var value = colorName[keyword]; + if (isNumber$1(start) && isNumber$1(end)) { + return fillNumbers(start, end, step, opts); + } - // Compute comparative distance - var distance = comparativeDistance(rgb, value); + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } +var fillRange = fill$2; - return currentClosestKeyword; -}; +const fill$1 = fillRange; +const utils$1 = utils$3; -convert.keyword.rgb = function (keyword) { - return colorName[keyword]; -}; +const compile$1 = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils$1.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; -convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } - // assume sRGB - r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); - g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); - b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); + if (node.type === 'open') { + return invalid ? (prefix + node.value) : '('; + } - var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + if (node.type === 'close') { + return invalid ? (prefix + node.value) : ')'; + } - return [x * 100, y * 100, z * 100]; -}; + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); + } -convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; + if (node.value) { + return node.value; + } - x /= 95.047; - y /= 100; - z /= 108.883; + if (node.nodes && node.ranges > 0) { + let args = utils$1.reduce(node.nodes); + let range = fill$1(...args, { ...options, wrap: false, toRegex: true }); - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; - return [l, a, b]; + return walk(ast); }; -convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; +var compile_1 = compile$1; - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +const fill = fillRange; +const stringify$4 = stringify$6; +const utils = utils$3; - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } +const append = (queue = '', stash = '', enclose = false) => { + let result = []; - t1 = 2 * l - t2; + queue = [].concat(queue); + stash = [].concat(stash); - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; + } - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); + } + } + } + return utils.flatten(result); +}; - rgb[i] = val * 255; - } +const expand$4 = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; - return rgb; -}; + let walk = (node, parent = {}) => { + node.queue = []; -convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; + let p = parent; + let q = parent.queue; - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); - - return [h, sv * 100, v * 100]; -}; - -convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - (s * f)); - var t = 255 * v * (1 - (s * (1 - f))); - v *= 255; + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify$4(node, options))); + return; + } - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } -convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } - return [h, sl * 100, l * 100]; -}; + let range = fill(...args, options); + if (range.length === 0) { + range = stringify$4(node, options); + } -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } - // wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } - if ((i & 0x01) !== 0) { - f = 1 - f; - } + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; - n = wh + f * (v - wh); // linear interpolation + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } - var r; - var g; - var b; - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } - return [r * 255, g * 255, b * 255]; -}; + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } -convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; + if (child.nodes) { + walk(child, node); + } + } - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); + return queue; + }; - return [r * 255, g * 255, b * 255]; + return utils.flatten(walk(ast)); }; -convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; +var expand_1 = expand$4; - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); +var constants$2 = { + MAX_LENGTH: 1024 * 64, - // assume sRGB - r = r > 0.0031308 - ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) - : r * 12.92; + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ - g = g > 0.0031308 - ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) - : g * 12.92; + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ - b = b > 0.0031308 - ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) - : b * 12.92; + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); + CHAR_ASTERISK: '*', /* * */ - return [r * 255, g * 255, b * 255]; + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ }; -convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; +const stringify$3 = stringify$6; - x /= 95.047; - y /= 100; - z /= 108.883; +/** + * Constants + */ - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); +const { + MAX_LENGTH: MAX_LENGTH$3, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA: CHAR_COMMA$1, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, /* ] */ + CHAR_DOUBLE_QUOTE: CHAR_DOUBLE_QUOTE$1, /* " */ + CHAR_SINGLE_QUOTE: CHAR_SINGLE_QUOTE$1, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = constants$2; - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); +/** + * parse + */ - return [l, a, b]; -}; +const parse$c = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } -convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$3, opts.maxLength) : MAX_LENGTH$3; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; + let ast = { type: 'root', input, nodes: [] }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + /** + * Helpers + */ - x *= 95.047; - y *= 100; - z *= 108.883; + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } - return [x, y, z]; -}; + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } -convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; + push({ type: 'bos' }); - if (h < 0) { - h += 360; - } + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); - c = Math.sqrt(a * a + b * b); + /** + * Invalid chars + */ - return [l, c, h]; -}; + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } -convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; + /** + * Escaped chars + */ - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } - return [l, a, b]; -}; + /** + * Right square bracket (literal): ']' + */ -convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + if (value === CHAR_RIGHT_SQUARE_BRACKET$1) { + push({ type: 'text', value: '\\' + value }); + continue; + } - value = Math.round(value / 50); + /** + * Left square bracket: '[' + */ - if (value === 0) { - return 30; - } + if (value === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + let next; - var ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); + while (index < length && (next = advance())) { + value += next; - if (value === 2) { - ansi += 60; - } + if (next === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + continue; + } - return ansi; -}; + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } -convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); -}; + if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { + brackets--; -convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; + if (brackets === 0) { + break; + } + } + } - // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } + push({ type: 'text', value }); + continue; + } - if (r > 248) { - return 231; - } + /** + * Parentheses + */ - return Math.round(((r - 8) / 247) * 24) + 232; - } + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } - var ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } - return ansi; -}; + /** + * Quotes: '|"|` + */ -convert.ansi16.rgb = function (args) { - var color = args % 10; + if (value === CHAR_DOUBLE_QUOTE$1 || value === CHAR_SINGLE_QUOTE$1 || value === CHAR_BACKTICK) { + let open = value; + let next; - // handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } + if (options.keepQuotes !== true) { + value = ''; + } - color = color / 10.5 * 255; + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } - return [color, color, color]; - } + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } - var mult = (~~(args > 50) + 1) * 0.5; - var r = ((color & 1) * mult) * 255; - var g = (((color >> 1) & 1) * mult) * 255; - var b = (((color >> 2) & 1) * mult) * 255; + value += next; + } - return [r, g, b]; -}; + push({ type: 'text', value }); + continue; + } -convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; - } + /** + * Left curly brace: '{' + */ - args -= 16; + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = (rem % 6) / 5 * 255; + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; - return [r, g, b]; -}; + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } -convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); + /** + * Right curly brace: '}' + */ - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } -convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - - var colorString = match[0]; - - if (match[0].length === 3) { - colorString = colorString.split('').map(function (char) { - return char + char; - }).join(''); - } - - var integer = parseInt(colorString, 16); - var r = (integer >> 16) & 0xFF; - var g = (integer >> 8) & 0xFF; - var b = integer & 0xFF; + let type = 'close'; + block = stack.pop(); + block.close = true; - return [r, g, b]; -}; + push({ type, value }); + depth--; -convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = (max - min); - var grayscale; - var hue; + block = stack[stack.length - 1]; + continue; + } - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } + /** + * Comma: ',' + */ - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; - } + if (value === CHAR_COMMA$1 && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify$3(block) }]; + } - hue /= 6; - hue %= 1; + push({ type: 'comma', value }); + block.commas++; + continue; + } - return [hue * 360, chroma * 100, grayscale * 100]; -}; + /** + * Dot: '.' + */ -convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); - } + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; - return [hsl[0], c * 100, f * 100]; -}; + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } -convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; + block.ranges++; + block.args = []; + continue; + } - var c = s * v; - var f = 0; + if (prev.type === 'range') { + siblings.pop(); - if (c < 1.0) { - f = (v - c) / (1 - c); - } + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } - return [hsv[0], c * 100, f * 100]; -}; + push({ type: 'dot', value }); + continue; + } -convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; + /** + * Text + */ - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } + push({ type: 'text', value }); + } - var pure = [0, 0, 0]; - var hi = (h % 1) * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); - mg = (1.0 - c) * g; + // get the location of the block on parent.nodes (block's siblings) + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; + push({ type: 'eos' }); + return ast; }; -convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - var v = c + g * (1.0 - c); - var f = 0; - - if (v > 0.0) { - f = c / v; - } - - return [hcg[0], f * 100, v * 100]; -}; +var parse_1$1 = parse$c; -convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; +const stringify$2 = stringify$6; +const compile = compile_1; +const expand$3 = expand_1; +const parse$b = parse_1$1; - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } +const braces$1 = (input, options = {}) => { + let output = []; - return [hcg[0], s * 100, l * 100]; -}; + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces$1.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces$1.create(input, options)); + } -convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; }; -convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; - - if (c < 1) { - g = (v - c) / (1 - c); - } +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ - return [hwb[0], c * 100, g * 100]; -}; +braces$1.parse = (input, options = {}) => parse$b(input, options); -convert.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ -convert.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +braces$1.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify$2(braces$1.parse(input, options), options); + } + return stringify$2(input, options); }; -convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ -convert.gray.hsl = convert.gray.hsv = function (args) { - return [0, 0, args[0]]; +braces$1.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces$1.parse(input, options); + } + return compile(input, options); }; -convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ -convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; +braces$1.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces$1.parse(input, options); + } -convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; + let result = expand$3(input, options); -convert.gray.hex = function (gray) { - var val = Math.round(gray[0] / 100 * 255) & 0xFF; - var integer = (val << 16) + (val << 8) + val; + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } -convert.rgb.gray = function (rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; + return result; }; -}); - -/* - this function routes a model to all other models. - - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). - - conversions that are not possible simply are not included. -*/ - -function buildGraph() { - var graph = {}; - // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - var models = Object.keys(conversions); - - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - - return graph; -} - -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; // unshift -> queue -> pop - - graph[fromModel].distance = 0; - - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; - - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - - return graph; -} - -function link(from, to) { - return function (args) { - return to(from(args)); - }; -} - -function wrapConversion(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; - - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - fn.conversion = path; - return fn; -} - -var route = function (fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; - - if (node.parent === null) { - // no possible conversion, or this node is the source model. - continue; - } +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ - conversion[toModel] = wrapConversion(toModel, graph); - } +braces$1.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } - return conversion; + return options.expand !== true + ? braces$1.compile(input, options) + : braces$1.expand(input, options); }; -var convert = {}; - -var models = Object.keys(conversions); - -function wrapRaw(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - return fn(args); - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -function wrapRounded(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - var result = fn(args); - - // we're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - - return result; - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -models.forEach(function (fromModel) { - convert[fromModel] = {}; - - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); - - var routes = route(fromModel); - var routeModels = Object.keys(routes); - - routeModels.forEach(function (toModel) { - var fn = routes[toModel]; - - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); -}); - -var colorConvert = convert; - -var ansiStyles = createCommonjsModule(function (module) { +/** + * Expose "braces" + */ +var braces_1 = braces$1; -const wrapAnsi16 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};5;${code}m`; -}; - -const wrapAnsi16m = (fn, offset) => function () { - const rgb = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; - -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39], - - // Bright color - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Fix humans - styles.color.grey = styles.color.gray; +var require$$0$1 = [ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +]; - for (const groupName of Object.keys(styles)) { - const group = styles[groupName]; +var binaryExtensions$1 = require$$0$1; - for (const styleName of Object.keys(group)) { - const style = group[styleName]; +const path$8 = path$b; +const binaryExtensions = binaryExtensions$1; - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; +const extensions = new Set(binaryExtensions); - group[styleName] = styles[styleName]; +var isBinaryPath$1 = filePath => extensions.has(path$8.extname(filePath).slice(1).toLowerCase()); - codes.set(style[0], style[1]); - } +var constants$1 = {}; - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); +(function (exports) { - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - } +const {sep} = path$b; +const {platform} = process; +const os = require$$0$2; - const ansi2ansi = n => n; - const rgb2rgb = (r, g, b) => [r, g, b]; +exports.EV_ALL = 'all'; +exports.EV_READY = 'ready'; +exports.EV_ADD = 'add'; +exports.EV_CHANGE = 'change'; +exports.EV_ADD_DIR = 'addDir'; +exports.EV_UNLINK = 'unlink'; +exports.EV_UNLINK_DIR = 'unlinkDir'; +exports.EV_RAW = 'raw'; +exports.EV_ERROR = 'error'; - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; +exports.STR_DATA = 'data'; +exports.STR_END = 'end'; +exports.STR_CLOSE = 'close'; - styles.color.ansi = { - ansi: wrapAnsi16(ansi2ansi, 0) - }; - styles.color.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 0) - }; - styles.color.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 0) - }; +exports.FSEVENT_CREATED = 'created'; +exports.FSEVENT_MODIFIED = 'modified'; +exports.FSEVENT_DELETED = 'deleted'; +exports.FSEVENT_MOVED = 'moved'; +exports.FSEVENT_CLONED = 'cloned'; +exports.FSEVENT_UNKNOWN = 'unknown'; +exports.FSEVENT_TYPE_FILE = 'file'; +exports.FSEVENT_TYPE_DIRECTORY = 'directory'; +exports.FSEVENT_TYPE_SYMLINK = 'symlink'; - styles.bgColor.ansi = { - ansi: wrapAnsi16(ansi2ansi, 10) - }; - styles.bgColor.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 10) - }; - styles.bgColor.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 10) - }; +exports.KEY_LISTENERS = 'listeners'; +exports.KEY_ERR = 'errHandlers'; +exports.KEY_RAW = 'rawEmitters'; +exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== 'object') { - continue; - } +exports.DOT_SLASH = `.${sep}`; - const suite = colorConvert[key]; +exports.BACK_SLASH_RE = /\\/g; +exports.DOUBLE_SLASH_RE = /\/\//; +exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; +exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; +exports.REPLACER_RE = /^\.[/\\]/; - if (key === 'ansi16') { - key = 'ansi'; - } +exports.SLASH = '/'; +exports.SLASH_SLASH = '//'; +exports.BRACE_START = '{'; +exports.BANG = '!'; +exports.ONE_DOT = '.'; +exports.TWO_DOTS = '..'; +exports.STAR = '*'; +exports.GLOBSTAR = '**'; +exports.ROOT_GLOBSTAR = '/**/*'; +exports.SLASH_GLOBSTAR = '/**'; +exports.DIR_SUFFIX = 'Dir'; +exports.ANYMATCH_OPTS = {dot: true}; +exports.STRING_TYPE = 'string'; +exports.FUNCTION_TYPE = 'function'; +exports.EMPTY_STR = ''; +exports.EMPTY_FN = () => {}; +exports.IDENTITY_FN = val => val; - if ('ansi16' in suite) { - styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); - styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); - } +exports.isWindows = platform === 'win32'; +exports.isMacos = platform === 'darwin'; +exports.isLinux = platform === 'linux'; +exports.isIBMi = os.type() === 'OS400'; +}(constants$1)); - if ('ansi256' in suite) { - styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); - styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); - } +const fs$8 = require$$0$3; +const sysPath$2 = path$b; +const { promisify: promisify$2 } = require$$0$4; +const isBinaryPath = isBinaryPath$1; +const { + isWindows: isWindows$3, + isLinux, + EMPTY_FN: EMPTY_FN$2, + EMPTY_STR: EMPTY_STR$1, + KEY_LISTENERS, + KEY_ERR, + KEY_RAW, + HANDLER_KEYS, + EV_CHANGE: EV_CHANGE$2, + EV_ADD: EV_ADD$2, + EV_ADD_DIR: EV_ADD_DIR$2, + EV_ERROR: EV_ERROR$2, + STR_DATA: STR_DATA$1, + STR_END: STR_END$2, + BRACE_START: BRACE_START$1, + STAR +} = constants$1; - if ('rgb' in suite) { - styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); - styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); - } - } +const THROTTLE_MODE_WATCH = 'watch'; - return styles; -} +const open = promisify$2(fs$8.open); +const stat$2 = promisify$2(fs$8.stat); +const lstat$1 = promisify$2(fs$8.lstat); +const close = promisify$2(fs$8.close); +const fsrealpath = promisify$2(fs$8.realpath); -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); -}); +const statMethods$1 = { lstat: lstat$1, stat: stat$2 }; -var hasFlag = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf('--'); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +// TODO: emit errors properly. Example: EMFILE on Macos. +const foreach = (val, fn) => { + if (val instanceof Set) { + val.forEach(fn); + } else { + fn(val); + } }; -const env = process.env; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = true; -} -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; -} - -function translateLevel(level) { - if (level === 0) { - return false; - } +const addAndConvert = (main, prop, item) => { + let container = main[prop]; + if (!(container instanceof Set)) { + main[prop] = container = new Set([container]); + } + container.add(item); +}; - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} +const clearItem = cont => key => { + const set = cont[key]; + if (set instanceof Set) { + set.clear(); + } else { + delete cont[key]; + } +}; -function supportsColor(stream) { - if (forceColor === false) { - return 0; - } +const delFromSet = (main, prop, item) => { + const container = main[prop]; + if (container instanceof Set) { + container.delete(item); + } else if (container === item) { + delete main[prop]; + } +}; - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } +const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; - if (hasFlag('color=256')) { - return 2; - } +/** + * @typedef {String} Path + */ - if (stream && !stream.isTTY && forceColor !== true) { - return 0; - } +// fs_watch helpers - const min = forceColor ? 1 : 0; +// object to hold per-process fs_watch instances +// (may be shared across chokidar FSWatcher instances) - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. 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__default['default'].release().split('.'); - if ( - Number(process.versions.node.split('.')[0]) >= 8 && - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } +/** + * @typedef {Object} FsWatchContainer + * @property {Set} listeners + * @property {Set} errHandlers + * @property {Set} rawEmitters + * @property {fs.FSWatcher=} watcher + * @property {Boolean=} watcherUnusable + */ - return 1; - } +/** + * @type {Map} + */ +const FsWatchInstances = new Map(); - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } +/** + * Instantiates the fs_watch interface + * @param {String} path to be watched + * @param {Object} options to be passed to fs_watch + * @param {Function} listener main event handler + * @param {Function} errHandler emits info about errors + * @param {Function} emitRaw emits raw event data + * @returns {fs.FSWatcher} new fsevents instance + */ +function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { + const handleEvent = (rawEvent, evPath) => { + listener(path); + emitRaw(rawEvent, evPath, {watchedPath: path}); - return min; - } + // emit based on events occurring for files from a directory's watcher in + // case the file's watcher misses it (and rely on throttling to de-dupe) + if (evPath && path !== evPath) { + fsWatchBroadcast( + sysPath$2.resolve(path, evPath), KEY_LISTENERS, sysPath$2.join(path, evPath) + ); + } + }; + try { + return fs$8.watch(path, options, handleEvent); + } catch (error) { + errHandler(error); + } +} - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } +/** + * Helper for passing fs_watch event data to a collection of listeners + * @param {Path} fullPath absolute path bound to fs_watch instance + * @param {String} type listener type + * @param {*=} val1 arguments to be passed to listeners + * @param {*=} val2 + * @param {*=} val3 + */ +const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { + const cont = FsWatchInstances.get(fullPath); + if (!cont) return; + foreach(cont[type], (listener) => { + listener(val1, val2, val3); + }); +}; - if (env.COLORTERM === 'truecolor') { - return 3; - } +/** + * Instantiates the fs_watch interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path + * @param {String} fullPath absolute path + * @param {Object} options to be passed to fs_watch + * @param {Object} handlers container for event listener functions + */ +const setFsWatchListener = (path, fullPath, options, handlers) => { + const {listener, errHandler, rawEmitter} = handlers; + let cont = FsWatchInstances.get(fullPath); - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + /** @type {fs.FSWatcher=} */ + let watcher; + if (!options.persistent) { + watcher = createFsWatchInstance( + path, options, listener, errHandler, rawEmitter + ); + return watcher.close.bind(watcher); + } + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_ERR, errHandler); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + watcher = createFsWatchInstance( + path, + options, + fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), + errHandler, // no need to use broadcast here + fsWatchBroadcast.bind(null, fullPath, KEY_RAW) + ); + if (!watcher) return; + watcher.on(EV_ERROR$2, async (error) => { + const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); + cont.watcherUnusable = true; // documented since Node 10.4.1 + // Workaround for https://github.com/joyent/node/issues/4337 + if (isWindows$3 && error.code === 'EPERM') { + try { + const fd = await open(path, 'r'); + await close(fd); + broadcastErr(error); + } catch (err) {} + } else { + broadcastErr(error); + } + }); + cont = { + listeners: listener, + errHandlers: errHandler, + rawEmitters: rawEmitter, + watcher + }; + FsWatchInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } + // removes this instance's listeners and closes the underlying fs_watch + // instance if there are no more listeners left + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_ERR, errHandler); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + // Check to protect against issue gh-730. + // if (cont.watcherUnusable) { + cont.watcher.close(); + // } + FsWatchInstances.delete(fullPath); + HANDLER_KEYS.forEach(clearItem(cont)); + cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } +// fs_watchFile helpers - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } +// object to hold per-process fs_watchFile instances +// (may be shared across chokidar FSWatcher instances) +const FsWatchFileInstances = new Map(); - if ('COLORTERM' in env) { - return 1; - } +/** + * Instantiates the fs_watchFile interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path to be watched + * @param {String} fullPath absolute path + * @param {Object} options options to be passed to fs_watchFile + * @param {Object} handlers container for event listener functions + * @returns {Function} closer + */ +const setFsWatchFileListener = (path, fullPath, options, handlers) => { + const {listener, rawEmitter} = handlers; + let cont = FsWatchFileInstances.get(fullPath); - if (env.TERM === 'dumb') { - return min; - } + const copts = cont && cont.options; + if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { + fs$8.unwatchFile(fullPath); + cont = undefined; + } - return min; -} + /* eslint-enable no-unused-vars, prefer-destructuring */ -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); -} + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + // TODO + // listeners.add(listener); + // rawEmitters.add(rawEmitter); + cont = { + listeners: listener, + rawEmitters: rawEmitter, + options, + watcher: fs$8.watchFile(fullPath, options, (curr, prev) => { + foreach(cont.rawEmitters, (rawEmitter) => { + rawEmitter(EV_CHANGE$2, fullPath, {curr, prev}); + }); + const currmtime = curr.mtimeMs; + if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { + foreach(cont.listeners, (listener) => listener(path, curr)); + } + }) + }; + FsWatchFileInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); -var supportsColor_1 = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) + // Removes this instance's listeners and closes the underlying fs_watchFile + // instance if there are no more listeners left. + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + FsWatchFileInstances.delete(fullPath); + fs$8.unwatchFile(fullPath); + cont.options = cont.watcher = undefined; + Object.freeze(cont); + } + }; }; -const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; - -const ESCAPES = new Map([ - ['n', '\n'], - ['r', '\r'], - ['t', '\t'], - ['b', '\b'], - ['f', '\f'], - ['v', '\v'], - ['0', '\0'], - ['\\', '\\'], - ['e', '\u001B'], - ['a', '\u0007'] -]); - -function unescape(c) { - if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } - - return ESCAPES.get(c) || c; -} - -function parseArguments(name, args) { - const results = []; - const chunks = args.trim().split(/\s*,\s*/g); - let matches; - - for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); - } else if ((matches = chunk.match(STRING_REGEX))) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } +/** + * @mixin + */ +class NodeFsHandler$1 { - return results; +/** + * @param {import("../index").FSWatcher} fsW + */ +constructor(fsW) { + this.fsw = fsW; + this._boundHandleError = (error) => fsW._handleError(error); } -function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; - - const results = []; - let matches; - - while ((matches = STYLE_REGEX.exec(style)) !== null) { - const name = matches[1]; - - if (matches[2]) { - const args = parseArguments(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } +/** + * Watch file for changes with fs_watchFile or fs_watch. + * @param {String} path to file or dir + * @param {Function} listener on fs change + * @returns {Function} closer for the watcher instance + */ +_watchWithNodeFs(path, listener) { + const opts = this.fsw.options; + const directory = sysPath$2.dirname(path); + const basename = sysPath$2.basename(path); + const parent = this.fsw._getWatchedDir(directory); + parent.add(basename); + const absolutePath = sysPath$2.resolve(path); + const options = {persistent: opts.persistent}; + if (!listener) listener = EMPTY_FN$2; - return results; + let closer; + if (opts.usePolling) { + options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? + opts.binaryInterval : opts.interval; + closer = setFsWatchFileListener(path, absolutePath, options, { + listener, + rawEmitter: this.fsw._emitRaw + }); + } else { + closer = setFsWatchListener(path, absolutePath, options, { + listener, + errHandler: this._boundHandleError, + rawEmitter: this.fsw._emitRaw + }); + } + return closer; } -function buildStyle(chalk, styles) { - const enabled = {}; +/** + * Watch a file and emit add event if warranted. + * @param {Path} file Path + * @param {fs.Stats} stats result of fs_stat + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @returns {Function} closer for the watcher instance + */ +_handleFile(file, stats, initialAdd) { + if (this.fsw.closed) { + return; + } + const dirname = sysPath$2.dirname(file); + const basename = sysPath$2.basename(file); + const parent = this.fsw._getWatchedDir(dirname); + // stats is always present + let prevStats = stats; - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } + // if the file is already being watched, do nothing + if (parent.has(basename)) return; - let current = chalk; - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } + const listener = async (path, newStats) => { + if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; + if (!newStats || newStats.mtimeMs === 0) { + try { + const newStats = await stat$2(file); + if (this.fsw.closed) return; + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE$2, file, newStats); + } + if (isLinux && prevStats.ino !== newStats.ino) { + this.fsw._closeFile(path); + prevStats = newStats; + this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); + } else { + prevStats = newStats; + } + } catch (error) { + // Fix issues where mtime is null but file is still present + this.fsw._remove(dirname, basename); + } + // add is about to be emitted if file not already tracked in parent + } else if (parent.has(basename)) { + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE$2, file, newStats); + } + prevStats = newStats; + } + }; + // kick off the watcher + const closer = this._watchWithNodeFs(file, listener); - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } - } - } + // emit an add event if we're supposed to + if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { + if (!this.fsw._throttle(EV_ADD$2, file, 0)) return; + this.fsw._emit(EV_ADD$2, file, stats); + } - return current; + return closer; } -var templates = (chalk, tmp) => { - const styles = []; - const chunks = []; - let chunk = []; +/** + * Handle symlinks encountered while reading a dir. + * @param {Object} entry returned by readdirp + * @param {String} directory path of dir being read + * @param {String} path of this item + * @param {String} item basename of this item + * @returns {Promise} true if no more processing is needed for this entry. + */ +async _handleSymlink(entry, directory, path, item) { + if (this.fsw.closed) { + return; + } + const full = entry.fullPath; + const dir = this.fsw._getWatchedDir(directory); - // eslint-disable-next-line max-params - tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape(escapeChar)); - } else if (style) { - const str = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); - styles.push({inverse, styles: parseStyle(style)}); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } + if (!this.fsw.options.followSymlinks) { + // watch symlink directly (don't follow) and detect changes + this.fsw._incrReadyCount(); + const linkPath = await fsrealpath(path); + if (this.fsw.closed) return; + if (dir.has(item)) { + if (this.fsw._symlinkPaths.get(full) !== linkPath) { + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_CHANGE$2, path, entry.stats); + } + } else { + dir.add(item); + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_ADD$2, path, entry.stats); + } + this.fsw._emitReady(); + return true; + } - chunks.push(buildStyle(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(chr); - } - }); + // don't follow the same symlink more than once + if (this.fsw._symlinkPaths.has(full)) { + return true; + } - chunks.push(chunk.join('')); + this.fsw._symlinkPaths.set(full, true); +} - if (styles.length > 0) { - const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMsg); - } +_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { + // Normalize the directory name on Windows + directory = sysPath$2.join(directory, EMPTY_STR$1); - return chunks.join(''); -}; + if (!wh.hasGlob) { + throttler = this.fsw._throttle('readdir', directory, 1000); + if (!throttler) return; + } -var chalk = createCommonjsModule(function (module) { + const previous = this.fsw._getWatchedDir(wh.path); + const current = new Set(); + let stream = this.fsw._readdirp(directory, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + depth: 0 + }).on(STR_DATA$1, async (entry) => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const item = entry.path; + let path = sysPath$2.join(directory, item); + current.add(item); -const stdoutColor = supportsColor_1.stdout; + if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { + return; + } + if (this.fsw.closed) { + stream = undefined; + return; + } + // Files that present in current directory snapshot + // but absent in previous are added to watch list and + // emit `add` event. + if (item === target || !target && !previous.has(item)) { + this.fsw._incrReadyCount(); + // ensure relativeness of path is preserved in case of watcher reuse + path = sysPath$2.join(dir, sysPath$2.relative(dir, path)); -const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); + this._addToNodeFs(path, initialAdd, wh, depth + 1); + } + }).on(EV_ERROR$2, this._boundHandleError); -// `supportsColor.level` → `ansiStyles.color[name]` mapping -const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; + return new Promise(resolve => + stream.once(STR_END$2, () => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const wasThrottled = throttler ? throttler.clear() : false; -// `color-convert` models to exclude from the Chalk API due to conflicts and such -const skipModels = new Set(['gray']); + resolve(); -const styles = Object.create(null); + // Files that absent in current directory snapshot + // but present in previous emit `remove` event + // and are removed from @watched[directory]. + previous.getChildren().filter((item) => { + return item !== directory && + !current.has(item) && + // in case of intersecting globs; + // a path may have been filtered out of this readdir, but + // shouldn't be removed because it matches a different glob + (!wh.hasGlob || wh.filterPath({ + fullPath: sysPath$2.resolve(directory, item) + })); + }).forEach((item) => { + this.fsw._remove(directory, item); + }); -function applyOptions(obj, options) { - options = options || {}; + stream = undefined; - // Detect level if not set manually - const scLevel = stdoutColor ? stdoutColor.level : 0; - obj.level = options.level === undefined ? scLevel : options.level; - obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; + // one more time for any missed in case changes came in extremely quickly + if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); + }) + ); } -function Chalk(options) { - // We check for this.template here since calling `chalk.constructor()` - // by itself will have a `this` of a previously constructed chalk object - if (!this || !(this instanceof Chalk) || this.template) { - const chalk = {}; - applyOptions(chalk, options); - - chalk.template = function () { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk.template].concat(args)); - }; - - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); +/** + * Read directory to add / remove files from `@watched` list and re-read it on change. + * @param {String} dir fs path + * @param {fs.Stats} stats + * @param {Boolean} initialAdd + * @param {Number} depth relative to user-supplied path + * @param {String} target child path targeted for watch + * @param {Object} wh Common watch helpers for this path + * @param {String} realpath + * @returns {Promise} closer for the watcher instance. + */ +async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { + const parentDir = this.fsw._getWatchedDir(sysPath$2.dirname(dir)); + const tracked = parentDir.has(sysPath$2.basename(dir)); + if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR$2, dir, stats); + } - chalk.template.constructor = Chalk; + // ensure dir is tracked (harmless if redundant) + parentDir.add(sysPath$2.basename(dir)); + this.fsw._getWatchedDir(dir); + let throttler; + let closer; - return chalk.template; - } + const oDepth = this.fsw.options.depth; + if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { + if (!target) { + await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); + if (this.fsw.closed) return; + } - applyOptions(this, options); -} + closer = this._watchWithNodeFs(dir, (dirPath, stats) => { + // if current directory is removed, do nothing + if (stats && stats.mtimeMs === 0) return; -// Use bright blue on Windows as the normal blue color is illegible -if (isSimpleWindowsTerm) { - ansiStyles.blue.open = '\u001B[94m'; + this._handleRead(dirPath, false, wh, target, dir, depth, throttler); + }); + } + return closer; } -for (const key of Object.keys(ansiStyles)) { - ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); +/** + * Handle added file, directory, or glob pattern. + * Delegates call to _handleFile / _handleDir after checks. + * @param {String} path to file or ir + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @param {Object} priorWh depth relative to user-supplied path + * @param {Number} depth Child path actually targeted for watch + * @param {String=} target Child path actually targeted for watch + * @returns {Promise} + */ +async _addToNodeFs(path, initialAdd, priorWh, depth, target) { + const ready = this.fsw._emitReady; + if (this.fsw._isIgnored(path) || this.fsw.closed) { + ready(); + return false; + } - styles[key] = { - get() { - const codes = ansiStyles[key]; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); - } - }; -} + const wh = this.fsw._getWatchHelpers(path, depth); + if (!wh.hasGlob && priorWh) { + wh.hasGlob = priorWh.hasGlob; + wh.globFilter = priorWh.globFilter; + wh.filterPath = entry => priorWh.filterPath(entry); + wh.filterDir = entry => priorWh.filterDir(entry); + } -styles.visible = { - get() { - return build.call(this, this._styles || [], true, 'visible'); - } -}; + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods$1[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + ready(); + return false; + } -ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); -for (const model of Object.keys(ansiStyles.color.ansi)) { - if (skipModels.has(model)) { - continue; - } + const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START$1); + let closer; + if (stats.isDirectory()) { + const absPath = sysPath$2.resolve(path); + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); + if (this.fsw.closed) return; + // preserve this symlink's target path + if (absPath !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(absPath, targetPath); + } + } else if (stats.isSymbolicLink()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + const parent = sysPath$2.dirname(wh.watchPath); + this.fsw._getWatchedDir(parent).add(wh.watchPath); + this.fsw._emit(EV_ADD$2, wh.watchPath, stats); + closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); + if (this.fsw.closed) return; - styles[model] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.color.close, - closeRe: ansiStyles.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } - }; -} + // preserve this symlink's target path + if (targetPath !== undefined) { + this.fsw._symlinkPaths.set(sysPath$2.resolve(path), targetPath); + } + } else { + closer = this._handleFile(wh.watchPath, stats, initialAdd); + } + ready(); -ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); -for (const model of Object.keys(ansiStyles.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } + this.fsw._addPathCloser(path, closer); + return false; - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.bgColor.close, - closeRe: ansiStyles.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } - }; + } catch (error) { + if (this.fsw._handleError(error)) { + ready(); + return path; + } + } } -const proto = Object.defineProperties(() => {}, styles); - -function build(_styles, _empty, key) { - const builder = function () { - return applyStyle.apply(builder, arguments); - }; - - builder._styles = _styles; - builder._empty = _empty; - - const self = this; - - Object.defineProperty(builder, 'level', { - enumerable: true, - get() { - return self.level; - }, - set(level) { - self.level = level; - } - }); +} - Object.defineProperty(builder, 'enabled', { - enumerable: true, - get() { - return self.enabled; - }, - set(enabled) { - self.enabled = enabled; - } - }); +var nodefsHandler = NodeFsHandler$1; - // See below for fix regarding invisible grey/dim combination on Windows - builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; +var fseventsHandler = {exports: {}}; - // `__proto__` is used because we must return a function, but there is - // no way to create a function with a different prototype - builder.__proto__ = proto; // eslint-disable-line no-proto +const fs$7 = require$$0$3; +const sysPath$1 = path$b; +const { promisify: promisify$1 } = require$$0$4; - return builder; +let fsevents; +try { + fsevents = undefined; +} catch (error) { + if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); } -function applyStyle() { - // Support varags, but simply cast to string in case there's only one arg - const args = arguments; - const argsLen = args.length; - let str = String(arguments[0]); - - if (argsLen === 0) { - return ''; - } - - if (argsLen > 1) { - // Don't slice `arguments`, it prevents V8 optimizations - for (let a = 1; a < argsLen; a++) { - str += ' ' + args[a]; - } - } +if (fsevents) { + // TODO: real check + const mtch = process.version.match(/v(\d+)\.(\d+)/); + if (mtch && mtch[1] && mtch[2]) { + const maj = Number.parseInt(mtch[1], 10); + const min = Number.parseInt(mtch[2], 10); + if (maj === 8 && min < 16) { + fsevents = undefined; + } + } +} - if (!this.enabled || this.level <= 0 || !str) { - return this._empty ? '' : str; - } +const { + EV_ADD: EV_ADD$1, + EV_CHANGE: EV_CHANGE$1, + EV_ADD_DIR: EV_ADD_DIR$1, + EV_UNLINK: EV_UNLINK$1, + EV_ERROR: EV_ERROR$1, + STR_DATA, + STR_END: STR_END$1, + FSEVENT_CREATED, + FSEVENT_MODIFIED, + FSEVENT_DELETED, + FSEVENT_MOVED, + // FSEVENT_CLONED, + FSEVENT_UNKNOWN, + FSEVENT_TYPE_FILE, + FSEVENT_TYPE_DIRECTORY, + FSEVENT_TYPE_SYMLINK, - // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, - // see https://github.com/chalk/chalk/issues/58 - // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. - const originalDim = ansiStyles.dim.open; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles.dim.open = ''; - } + ROOT_GLOBSTAR, + DIR_SUFFIX, + DOT_SLASH, + FUNCTION_TYPE: FUNCTION_TYPE$1, + EMPTY_FN: EMPTY_FN$1, + IDENTITY_FN +} = constants$1; - for (const code of this._styles.slice().reverse()) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - str = code.open + str.replace(code.closeRe, code.open) + code.close; +const Depth = (value) => isNaN(value) ? {} : {depth: value}; - // Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS - // https://github.com/chalk/chalk/pull/92 - str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); - } +const stat$1 = promisify$1(fs$7.stat); +const lstat = promisify$1(fs$7.lstat); +const realpath$1 = promisify$1(fs$7.realpath); - // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue - ansiStyles.dim.open = originalDim; +const statMethods = { stat: stat$1, lstat }; - return str; -} +/** + * @typedef {String} Path + */ -function chalkTag(chalk, strings) { - if (!Array.isArray(strings)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return [].slice.call(arguments, 1).join(' '); - } +/** + * @typedef {Object} FsEventsWatchContainer + * @property {Set} listeners + * @property {Function} rawEmitter + * @property {{stop: Function}} watcher + */ - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; +// fsevents instance helper functions +/** + * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) + * @type {Map} + */ +const FSEventsWatchers = new Map(); - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); - parts.push(String(strings.raw[i])); - } +// Threshold of duplicate path prefixes at which to start +// consolidating going forward +const consolidateThreshhold = 10; - return templates(chalk, parts.join('')); -} +const wrongEventFlags = new Set([ + 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 +]); -Object.defineProperties(Chalk.prototype, styles); +/** + * Instantiates the fsevents interface + * @param {Path} path path to be watched + * @param {Function} callback called when fsevents is bound and ready + * @returns {{stop: Function}} new fsevents instance + */ +const createFSEventsInstance = (path, callback) => { + const stop = fsevents.watch(path, callback); + return {stop}; +}; -module.exports = Chalk(); // eslint-disable-line new-cap -module.exports.supportsColor = stdoutColor; -module.exports.default = module.exports; // For TypeScript -}); +/** + * Instantiates the fsevents interface or binds listeners to an existing one covering + * the same file tree. + * @param {Path} path - to be watched + * @param {Path} realPath - real path for symlinks + * @param {Function} listener - called when fsevents emits events + * @param {Function} rawEmitter - passes data to listeners of the 'raw' event + * @returns {Function} closer + */ +function setFSEventsListener(path, realPath, listener, rawEmitter) { + let watchPath = sysPath$1.extname(realPath) ? sysPath$1.dirname(realPath) : realPath; -var shouldHighlight_1 = shouldHighlight; -var getChalk_1 = getChalk; -var _default$1 = highlight; + const parentPath = sysPath$1.dirname(watchPath); + let cont = FSEventsWatchers.get(watchPath); -var _jsTokens = _interopRequireWildcard(jsTokens); + // If we've accumulated a substantial number of paths that + // could have been consolidated by watching one directory + // above the current one, create a watcher on the parent + // path instead, so that we do consolidate going forward. + if (couldConsolidate(parentPath)) { + watchPath = parentPath; + } + const resolvedPath = sysPath$1.resolve(path); + const hasSymlink = resolvedPath !== realPath; + const filteredListener = (fullPath, flags, info) => { + if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); + if ( + fullPath === resolvedPath || + !fullPath.indexOf(resolvedPath + sysPath$1.sep) + ) listener(fullPath, flags, info); + }; -var _chalk = _interopRequireDefault(chalk); + // check if there is already a watcher on a parent path + // modifies `watchPath` to the parent path when it finds a match + let watchedParent = false; + for (const watchedPath of FSEventsWatchers.keys()) { + if (realPath.indexOf(sysPath$1.resolve(watchedPath) + sysPath$1.sep) === 0) { + watchPath = watchedPath; + cont = FSEventsWatchers.get(watchPath); + watchedParent = true; + break; + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (cont || watchedParent) { + cont.listeners.add(filteredListener); + } else { + cont = { + listeners: new Set([filteredListener]), + rawEmitter, + watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { + if (!cont.listeners.size) return; + const info = fsevents.getInfo(fullPath, flags); + cont.listeners.forEach(list => { + list(fullPath, flags, info); + }); -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } + cont.rawEmitter(info.event, fullPath, info); + }) + }; + FSEventsWatchers.set(watchPath, cont); + } -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + // removes this instance's listeners and closes the underlying fsevents + // instance if there are no more listeners left + return () => { + const lst = cont.listeners; -function getDefs(chalk) { - return { - keyword: chalk.cyan, - capitalized: chalk.yellow, - jsx_tag: chalk.yellow, - punctuator: chalk.yellow, - number: chalk.magenta, - string: chalk.green, - regex: chalk.magenta, - comment: chalk.grey, - invalid: chalk.white.bgRed.bold + lst.delete(filteredListener); + if (!lst.size) { + FSEventsWatchers.delete(watchPath); + if (cont.watcher) return cont.watcher.stop().then(() => { + cont.rawEmitter = cont.watcher = undefined; + Object.freeze(cont); + }); + } }; } -const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; -const JSX_TAG = /^[a-z][\w-]*$/i; -const BRACKET = /^[()[\]{}]$/; +// Decide whether or not we should start a new higher-level +// parent watcher +const couldConsolidate = (path) => { + let count = 0; + for (const watchPath of FSEventsWatchers.keys()) { + if (watchPath.indexOf(path) === 0) { + count++; + if (count >= consolidateThreshhold) { + return true; + } + } + } -function getTokenType(match) { - const [offset, text] = match.slice(-2); - const token = (0, _jsTokens.matchToToken)(match); + return false; +}; - if (token.type === "name") { - if ((0, lib.isKeyword)(token.value) || (0, lib.isReservedWord)(token.value)) { - return "keyword"; - } +// returns boolean indicating whether fsevents can be used +const canUse = () => fsevents && FSEventsWatchers.size < 128; - if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " { + let i = 0; + while (!path.indexOf(root) && (path = sysPath$1.dirname(path)) !== root) i++; + return i; +}; - if (token.value[0] !== token.value[0].toLowerCase()) { - return "capitalized"; - } - } +// returns boolean indicating whether the fsevents' event info has the same type +// as the one returned by fs.stat +const sameTypes = (info, stats) => ( + info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || + info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || + info.type === FSEVENT_TYPE_FILE && stats.isFile() +); - if (token.type === "punctuator" && BRACKET.test(token.value)) { - return "bracket"; - } +/** + * @mixin + */ +class FsEventsHandler$1 { - if (token.type === "invalid" && (token.value === "@" || token.value === "#")) { - return "punctuator"; +/** + * @param {import('../index').FSWatcher} fsw + */ +constructor(fsw) { + this.fsw = fsw; +} +checkIgnored(path, stats) { + const ipaths = this.fsw._ignoredPaths; + if (this.fsw._isIgnored(path, stats)) { + ipaths.add(path); + if (stats && stats.isDirectory()) { + ipaths.add(path + ROOT_GLOBSTAR); + } + return true; } - return token.type; + ipaths.delete(path); + ipaths.delete(path + ROOT_GLOBSTAR); } -function highlightTokens(defs, text) { - return text.replace(_jsTokens.default, function (...args) { - const type = getTokenType(args); - const colorize = defs[type]; +addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + const event = watchedDir.has(item) ? EV_CHANGE$1 : EV_ADD$1; + this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); +} - if (colorize) { - return args[0].split(NEWLINE).map(str => colorize(str)).join("\n"); +async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + try { + const stats = await stat$1(path); + if (this.fsw.closed) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); } else { - return args[0]; + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); } - }); -} - -function shouldHighlight(options) { - return _chalk.default.supportsColor || options.forceColor; + } catch (error) { + if (error.code === 'EACCES') { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } } -function getChalk(options) { - let chalk = _chalk.default; +handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { + if (this.fsw.closed || this.checkIgnored(path)) return; - if (options.forceColor) { - chalk = new _chalk.default.constructor({ - enabled: true, - level: 1 - }); - } + if (event === EV_UNLINK$1) { + const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY; + // suppress unlink events on never before seen files + if (isDirectory || watchedDir.has(item)) { + this.fsw._remove(parent, item, isDirectory); + } + } else { + if (event === EV_ADD$1) { + // track new directories + if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); - return chalk; -} + if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { + // push symlinks back to the top of the stack to get handled + const curDepth = opts.depth === undefined ? + undefined : calcDepth(fullPath, realPath) + 1; + return this._addToFsEvents(path, false, true, curDepth); + } -function highlight(code, options = {}) { - if (shouldHighlight(options)) { - const chalk = getChalk(options); - const defs = getDefs(chalk); - return highlightTokens(defs, code); - } else { - return code; + // track new paths + // (other than symlinks being followed, which will be tracked soon) + this.fsw._getWatchedDir(parent).add(item); + } + /** + * @type {'add'|'addDir'|'unlink'|'unlinkDir'} + */ + const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; + this.fsw._emit(eventName, path); + if (eventName === EV_ADD_DIR$1) this._addToFsEvents(path, false, true); } } -var lib$1 = /*#__PURE__*/Object.defineProperty({ - shouldHighlight: shouldHighlight_1, - getChalk: getChalk_1, - default: _default$1 -}, '__esModule', {value: true}); - -var codeFrameColumns_1 = codeFrameColumns; -var default_1 = _default$2; - -var _highlight = _interopRequireWildcard$1(lib$1); - -function _getRequireWildcardCache$1() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache$1 = function () { return cache; }; return cache; } - -function _interopRequireWildcard$1(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$1(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } - -let deprecationWarningShown = false; +/** + * Handle symlinks encountered during directory scan + * @param {String} watchPath - file/dir path to be watched with fsevents + * @param {String} realPath - real path (in case of symlinks) + * @param {Function} transform - path transformer + * @param {Function} globFilter - path filter in case a glob pattern was provided + * @returns {Function} closer for the watcher instance +*/ +_watchWithFsEvents(watchPath, realPath, transform, globFilter) { + if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; + const opts = this.fsw.options; + const watchCallback = async (fullPath, flags, info) => { + if (this.fsw.closed) return; + if ( + opts.depth !== undefined && + calcDepth(fullPath, realPath) > opts.depth + ) return; + const path = transform(sysPath$1.join( + watchPath, sysPath$1.relative(watchPath, fullPath) + )); + if (globFilter && !globFilter(path)) return; + // ensure directories are tracked + const parent = sysPath$1.dirname(path); + const item = sysPath$1.basename(path); + const watchedDir = this.fsw._getWatchedDir( + info.type === FSEVENT_TYPE_DIRECTORY ? path : parent + ); -function getDefs$1(chalk) { - return { - gutter: chalk.grey, - marker: chalk.red.bold, - message: chalk.red.bold + // correct for wrong events emitted + if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { + if (typeof opts.ignored === FUNCTION_TYPE$1) { + let stats; + try { + stats = await stat$1(path); + } catch (error) {} + if (this.fsw.closed) return; + if (this.checkIgnored(path, stats)) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + switch (info.event) { + case FSEVENT_CREATED: + case FSEVENT_MODIFIED: + return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + case FSEVENT_DELETED: + case FSEVENT_MOVED: + return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } }; -} -const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; + const closer = setFSEventsListener( + watchPath, + realPath, + watchCallback, + this.fsw._emitRaw + ); -function getMarkerLines(loc, source, opts) { - const startLoc = Object.assign({ - column: 0, - line: -1 - }, loc.start); - const endLoc = Object.assign({}, startLoc, loc.end); - const { - linesAbove = 2, - linesBelow = 3 - } = opts || {}; - const startLine = startLoc.line; - const startColumn = startLoc.column; - const endLine = endLoc.line; - const endColumn = endLoc.column; - let start = Math.max(startLine - (linesAbove + 1), 0); - let end = Math.min(source.length, endLine + linesBelow); + this.fsw._emitReady(); + return closer; +} - if (startLine === -1) { - start = 0; - } +/** + * Handle symlinks encountered during directory scan + * @param {String} linkPath path to symlink + * @param {String} fullPath absolute path to the symlink + * @param {Function} transform pre-existing path transformer + * @param {Number} curDepth level of subdirectories traversed to where symlink is + * @returns {Promise} + */ +async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { + // don't follow the same symlink more than once + if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; - if (endLine === -1) { - end = source.length; - } + this.fsw._symlinkPaths.set(fullPath, true); + this.fsw._incrReadyCount(); - const lineDiff = endLine - startLine; - const markerLines = {}; + try { + const linkTarget = await realpath$1(linkPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(linkTarget)) { + return this.fsw._emitReady(); + } - if (lineDiff) { - for (let i = 0; i <= lineDiff; i++) { - const lineNumber = i + startLine; + this.fsw._incrReadyCount(); - if (!startColumn) { - markerLines[lineNumber] = true; - } else if (i === 0) { - const sourceLength = source[lineNumber - 1].length; - markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; - } else if (i === lineDiff) { - markerLines[lineNumber] = [0, endColumn]; - } else { - const sourceLength = source[lineNumber - i].length; - markerLines[lineNumber] = [0, sourceLength]; - } - } - } else { - if (startColumn === endColumn) { - if (startColumn) { - markerLines[startLine] = [startColumn, 0]; - } else { - markerLines[startLine] = true; + // add the linkTarget for watching with a wrapper for transform + // that causes emitted paths to incorporate the link's path + this._addToFsEvents(linkTarget || linkPath, (path) => { + let aliasedPath = linkPath; + if (linkTarget && linkTarget !== DOT_SLASH) { + aliasedPath = path.replace(linkTarget, linkPath); + } else if (path !== DOT_SLASH) { + aliasedPath = sysPath$1.join(linkPath, path); } - } else { - markerLines[startLine] = [startColumn, endColumn - startColumn]; + return transform(aliasedPath); + }, false, curDepth); + } catch(error) { + if (this.fsw._handleError(error)) { + return this.fsw._emitReady(); } } - - return { - start, - end, - markerLines - }; } -function codeFrameColumns(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); - const chalk = (0, _highlight.getChalk)(opts); - const defs = getDefs$1(chalk); +/** + * + * @param {Path} newPath + * @param {fs.Stats} stats + */ +emitAdd(newPath, stats, processPath, opts, forceAdd) { + const pp = processPath(newPath); + const isDir = stats.isDirectory(); + const dirObj = this.fsw._getWatchedDir(sysPath$1.dirname(pp)); + const base = sysPath$1.basename(pp); - const maybeHighlight = (chalkFn, string) => { - return highlighted ? chalkFn(string) : string; - }; + // ensure empty dirs get tracked + if (isDir) this.fsw._getWatchedDir(pp); + if (dirObj.has(base)) return; + dirObj.add(base); - const lines = rawLines.split(NEWLINE$1); - const { - start, - end, - markerLines - } = getMarkerLines(loc, lines, opts); - const hasColumns = loc.start && typeof loc.start.column === "number"; - const numberMaxWidth = String(end).length; - const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE$1).slice(start, end).map((line, index) => { - const number = start + 1 + index; - const paddedNumber = ` ${number}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} | `; - const hasMarker = markerLines[number]; - const lastMarkerLine = !markerLines[number + 1]; + if (!opts.ignoreInitial || forceAdd === true) { + this.fsw._emit(isDir ? EV_ADD_DIR$1 : EV_ADD$1, pp, stats); + } +} - if (hasMarker) { - let markerLine = ""; +initWatch(realPath, path, wh, processPath) { + if (this.fsw.closed) return; + const closer = this._watchWithFsEvents( + wh.watchPath, + sysPath$1.resolve(realPath || wh.watchPath), + processPath, + wh.globFilter + ); + this.fsw._addPathCloser(path, closer); +} - if (Array.isArray(hasMarker)) { - const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); - const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); +/** + * Handle added path with fsevents + * @param {String} path file/dir path or glob pattern + * @param {Function|Boolean=} transform converts working path to what the user expects + * @param {Boolean=} forceAdd ensure add is emitted + * @param {Number=} priorDepth Level of subdirectories already traversed. + * @returns {Promise} + */ +async _addToFsEvents(path, transform, forceAdd, priorDepth) { + if (this.fsw.closed) { + return; + } + const opts = this.fsw.options; + const processPath = typeof transform === FUNCTION_TYPE$1 ? transform : IDENTITY_FN; - if (lastMarkerLine && opts.message) { - markerLine += " " + maybeHighlight(defs.message, opts.message); - } - } + const wh = this.fsw._getWatchHelpers(path); - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join(""); - } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line}`; + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + throw null; } - }).join("\n"); + if (stats.isDirectory()) { + // emit addDir unless this is a glob parent + if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); - if (opts.message && !hasColumns) { - frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; - } + // don't recurse further if it would exceed depth setting + if (priorDepth && priorDepth > opts.depth) return; - if (highlighted) { - return chalk.reset(frame); - } else { - return frame; - } -} + // scan the contents of the dir + this.fsw._readdirp(wh.watchPath, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + ...Depth(opts.depth - (priorDepth || 0)) + }).on(STR_DATA, (entry) => { + // need to check filterPath on dirs b/c filterDir is less restrictive + if (this.fsw.closed) { + return; + } + if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; -function _default$2(rawLines, lineNumber, colNumber, opts = {}) { - if (!deprecationWarningShown) { - deprecationWarningShown = true; - const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + const joinedPath = sysPath$1.join(wh.watchPath, entry.path); + const {fullPath} = entry; - if (process.emitWarning) { - process.emitWarning(message, "DeprecationWarning"); + if (wh.followSymlinks && entry.stats.isSymbolicLink()) { + // preserve the current depth here since it can't be derived from + // real paths past the symlink + const curDepth = opts.depth === undefined ? + undefined : calcDepth(joinedPath, sysPath$1.resolve(wh.watchPath)) + 1; + + this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); + } else { + this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); + } + }).on(EV_ERROR$1, EMPTY_FN$1).on(STR_END$1, () => { + this.fsw._emitReady(); + }); } else { - const deprecationError = new Error(message); - deprecationError.name = "DeprecationWarning"; - console.warn(new Error(message)); + this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); + this.fsw._emitReady(); + } + } catch (error) { + if (!error || this.fsw._handleError(error)) { + // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- + this.fsw._emitReady(); + this.fsw._emitReady(); } } - colNumber = Math.max(colNumber, 0); - const location = { - start: { - column: colNumber, - line: lineNumber + if (opts.persistent && forceAdd !== true) { + if (typeof transform === FUNCTION_TYPE$1) { + // realpath has already been resolved + this.initWatch(undefined, path, wh, processPath); + } else { + let realPath; + try { + realPath = await realpath$1(wh.watchPath); + } catch (e) {} + this.initWatch(realPath, path, wh, processPath); } - }; - return codeFrameColumns(rawLines, location, opts); + } } -var lib$2 = /*#__PURE__*/Object.defineProperty({ - codeFrameColumns: codeFrameColumns_1, - default: default_1 -}, '__esModule', {value: true}); - -var require$$0 = /*@__PURE__*/getAugmentedNamespace(dist); - -const {default: LinesAndColumns$1} = require$$0; -const {codeFrameColumns: codeFrameColumns$1} = lib$2; - -const JSONError = errorEx_1('JSONError', { - fileName: errorEx_1.append('in %s'), - codeFrame: errorEx_1.append('\n\n%s\n') -}); - -var parseJson$1 = (string, reviver, filename) => { - if (typeof reviver === 'string') { - filename = reviver; - reviver = null; - } - - try { - try { - return JSON.parse(string, reviver); - } catch (error) { - jsonParseEvenBetterErrors(string, reviver); - throw error; - } - } catch (error) { - error.message = error.message.replace(/\n/g, ''); - const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/); +} - const jsonError = new JSONError(error); - if (filename) { - jsonError.fileName = filename; - } +fseventsHandler.exports = FsEventsHandler$1; +fseventsHandler.exports.canUse = canUse; - if (indexMatch && indexMatch.length > 0) { - const lines = new LinesAndColumns$1(string); - const index = Number(indexMatch[1]); - const location = lines.locationForIndex(index); +const { EventEmitter } = require$$0$5; +const fs$6 = require$$0$3; +const sysPath = path$b; +const { promisify } = require$$0$4; +const readdirp = readdirp_1; +const anymatch = anymatch$2.exports.default; +const globParent = globParent$1; +const isGlob = isGlob$2; +const braces = braces_1; +const normalizePath = normalizePath$2; - const codeFrame = codeFrameColumns$1( - string, - {start: {line: location.line + 1, column: location.column + 1}}, - {highlightCode: true} - ); +const NodeFsHandler = nodefsHandler; +const FsEventsHandler = fseventsHandler.exports; +const { + EV_ALL, + EV_READY, + EV_ADD, + EV_CHANGE, + EV_UNLINK, + EV_ADD_DIR, + EV_UNLINK_DIR, + EV_RAW, + EV_ERROR, - jsonError.codeFrame = codeFrame; - } + STR_CLOSE, + STR_END, - throw jsonError; - } -}; + BACK_SLASH_RE, + DOUBLE_SLASH_RE, + SLASH_OR_BACK_SLASH_RE, + DOT_RE, + REPLACER_RE, -/** - * Helpers. - */ -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; + SLASH: SLASH$1, + SLASH_SLASH, + BRACE_START, + BANG, + ONE_DOT, + TWO_DOTS, + GLOBSTAR: GLOBSTAR$1, + SLASH_GLOBSTAR, + ANYMATCH_OPTS, + STRING_TYPE, + FUNCTION_TYPE, + EMPTY_STR, + EMPTY_FN, -/** - * 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 - */ + isWindows: isWindows$2, + isMacos, + isIBMi +} = constants$1; -var ms = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse$1(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) - ); -}; +const stat = promisify(fs$6.stat); +const readdir = promisify(fs$6.readdir); /** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private + * @typedef {String} Path + * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName + * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType */ -function parse$1(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; - } -} - /** - * Short format for `ms`. * - * @param {Number} ms - * @return {String} - * @api private + * @typedef {Object} WatchHelpers + * @property {Boolean} followSymlinks + * @property {'stat'|'lstat'} statMethod + * @property {Path} path + * @property {Path} watchPath + * @property {Function} entryPath + * @property {Boolean} hasGlob + * @property {Object} globFilter + * @property {Function} filterPath + * @property {Function} filterDir */ -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten$1 = (list, result = []) => { + list.forEach(item => { + if (Array.isArray(item)) { + flatten$1(item, result); + } else { + result.push(item); + } + }); + return result; +}; + +const unifyPaths = (paths_) => { + /** + * @type {Array} + */ + const paths = flatten$1(arrify(paths_)); + if (!paths.every(p => typeof p === STRING_TYPE)) { + throw new TypeError(`Non-string provided as watch path: ${paths}`); } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; + return paths.map(normalizePathToUnix); +}; + +// If SLASH_SLASH occurs at the beginning of path, it is not replaced +// because "//StoragePC/DrivePool/Movies" is a valid network path +const toUnix = (string) => { + let str = string.replace(BACK_SLASH_RE, SLASH$1); + let prepend = false; + if (str.startsWith(SLASH_SLASH)) { + prepend = true; } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; + while (str.match(DOUBLE_SLASH_RE)) { + str = str.replace(DOUBLE_SLASH_RE, SLASH$1); } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; + if (prepend) { + str = SLASH$1 + str; } - return ms + 'ms'; -} + return str; +}; -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ +// Our version of upath.normalize +// TODO: this is not equal to path-normalize module - investigate why +const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); -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'); +const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { + if (typeof path !== STRING_TYPE) return path; + return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); +}; + +const getAbsolutePath = (path, cwd) => { + if (sysPath.isAbsolute(path)) { + return path; } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); + if (path.startsWith(BANG)) { + return BANG + sysPath.join(cwd, path.slice(1)); } - return ms + ' ms'; -} - -/** - * Pluralization helper. - */ + return sysPath.join(cwd, path); +}; -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); -} +const undef = (opts, key) => opts[key] === undefined; /** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. + * Directory entry. + * @property {Path} path + * @property {Set} items */ +class DirEntry { + /** + * @param {Path} dir + * @param {Function} removeWatcher + */ + constructor(dir, removeWatcher) { + this.path = dir; + this._removeWatcher = removeWatcher; + /** @type {Set} */ + this.items = new Set(); + } -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = ms; - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * 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 = {}; - - /** - * 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; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; + add(item) { + const {items} = this; + if (!items) return; + if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + } - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; + async remove(item) { + const {items} = this; + if (!items) return; + items.delete(item); + if (items.size > 0) return; - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } + const dir = this.path; + try { + await readdir(dir); + } catch (err) { + if (this._removeWatcher) { + this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); + } + } + } - const self = debug; + has(item) { + const {items} = this; + if (!items) return; + return items.has(item); + } - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; + /** + * @returns {Array} + */ + getChildren() { + const {items} = this; + if (!items) return; + return [...items.values()]; + } - args[0] = createDebug.coerce(args[0]); + dispose() { + this.items.clear(); + delete this.path; + delete this._removeWatcher; + delete this.items; + Object.freeze(this); + } +} - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } +const STAT_METHOD_F = 'stat'; +const STAT_METHOD_L = 'lstat'; +class WatchHelper { + constructor(path, watchPath, follow, fsw) { + this.fsw = fsw; + this.path = path = path.replace(REPLACER_RE, EMPTY_STR); + this.watchPath = watchPath; + this.fullWatchPath = sysPath.resolve(watchPath); + this.hasGlob = watchPath !== path; + /** @type {object|boolean} */ + if (path === EMPTY_STR) this.hasGlob = false; + this.globSymlink = this.hasGlob && follow ? undefined : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; + this.dirParts = this.getDirParts(path); + this.dirParts.forEach((parts) => { + if (parts.length > 1) parts.pop(); + }); + this.followSymlinks = follow; + this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + } - // 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); + checkGlobSymlink(entry) { + // only need to resolve once + // first entry should always have entry.parentDir === EMPTY_STR + if (this.globSymlink === undefined) { + this.globSymlink = entry.fullParentDir === this.fullWatchPath ? + false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; + } - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); + if (this.globSymlink) { + return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + } - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); + return entry.fullPath; + } - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } + entryPath(entry) { + return sysPath.join(this.watchPath, + sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) + ); + } - 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. + filterPath(entry) { + const {stats} = entry; + if (stats && stats.isSymbolicLink()) return this.filterDir(entry); + const resolvedPath = this.entryPath(entry); + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? + this.globFilter(resolvedPath) : true; + return matchesGlob && + this.fsw._isntIgnored(resolvedPath, stats) && + this.fsw._hasReadPermissions(stats); + } - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, - set: v => { - enableOverride = v; - } - }); + getDirParts(path) { + if (!this.hasGlob) return []; + const parts = []; + const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; + expandedPath.forEach((path) => { + parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + }); + return parts; + } - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } + filterDir(entry) { + if (this.hasGlob) { + const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); + let globstar = false; + this.unmatchedGlob = !this.dirParts.some((parts) => { + return parts.every((part, i) => { + if (part === GLOBSTAR$1) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); + }); + }); + } + return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); + } +} - return debug; - } +/** + * Watches files & directories for changes. Emitted events: + * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` + * + * new FSWatcher() + * .add(directories) + * .on('add', path => log('File', path, 'was added')) + */ +class FSWatcher extends EventEmitter { +// Not indenting methods for history sake; for now. +constructor(_opts) { + super(); - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } + const opts = {}; + if (_opts) Object.assign(opts, _opts); // for frozen objects - /** - * 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); + /** @type {Map} */ + this._watched = new Map(); + /** @type {Map} */ + this._closers = new Map(); + /** @type {Set} */ + this._ignoredPaths = new Set(); - createDebug.names = []; - createDebug.skips = []; + /** @type {Map} */ + this._throttled = new Map(); - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; + /** @type {Map} */ + this._symlinkPaths = new Map(); - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } + this._streams = new Set(); + this.closed = false; - namespaces = split[i].replace(/\*/g, '.*?'); + // Set up default options. + if (undef(opts, 'persistent')) opts.persistent = true; + if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; + if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; + if (undef(opts, 'interval')) opts.interval = 100; + if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; + if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; + opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } + // Enable fsevents on OS X when polling isn't explicitly enabled. + if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; - /** - * 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; - } + // If we can't use fsevents, ensure the options reflect it's disabled. + const canUseFsEvents = FsEventsHandler.canUse(); + if (!canUseFsEvents) opts.useFsEvents = false; - /** - * 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; - } + // Use polling on Mac if not using fsevents. + // Other platforms use non-polling fs_watch. + if (undef(opts, 'usePolling') && !opts.useFsEvents) { + opts.usePolling = isMacos; + } - let i; - let len; + // Always default to polling on IBM i because fs.watch() is not available on IBM i. + if(isIBMi) { + opts.usePolling = true; + } - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } + // Global override (useful for end-developers that need to force polling for all + // instances of chokidar, regardless of usage/dependency depth) + const envPoll = process.env.CHOKIDAR_USEPOLLING; + if (envPoll !== undefined) { + const envLower = envPoll.toLowerCase(); - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } + if (envLower === 'false' || envLower === '0') { + opts.usePolling = false; + } else if (envLower === 'true' || envLower === '1') { + opts.usePolling = true; + } else { + opts.usePolling = !!envLower; + } + } + const envInterval = process.env.CHOKIDAR_INTERVAL; + if (envInterval) { + opts.interval = Number.parseInt(envInterval, 10); + } - return false; - } + // Editor atomic write normalization enabled by default with fs.watch + if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; + if (opts.atomic) this._pendingUnlinks = new Map(); - /** - * 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(/\.\*\?$/, '*'); - } + if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } + if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; + if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; + const awf = opts.awaitWriteFinish; + if (awf) { + if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; + if (!awf.pollInterval) awf.pollInterval = 100; + this._pendingWrites = new Map(); + } + if (opts.ignored) opts.ignored = arrify(opts.ignored); - /** - * 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`.'); - } + let readyCalls = 0; + this._emitReady = () => { + readyCalls++; + if (readyCalls >= this._readyCount) { + this._emitReady = EMPTY_FN; + this._readyEmitted = true; + // use process.nextTick to allow time for listener to be bound + process.nextTick(() => this.emit(EV_READY)); + } + }; + this._emitRaw = (...args) => this.emit(EV_RAW, ...args); + this._readyEmitted = false; + this.options = opts; - createDebug.enable(createDebug.load()); + // Initialize with proper watcher. + if (opts.useFsEvents) { + this._fsEventsHandler = new FsEventsHandler(this); + } else { + this._nodeFsHandler = new NodeFsHandler(this); + } - return createDebug; + // You’re frozen when your heart’s not open. + Object.freeze(opts); } -var common$1 = setup; - -/* eslint-env browser */ +// Public methods -var browser = createCommonjsModule(function (module, exports) { /** - * This is the web browser implementation of `debug()`. + * Adds paths to be watched on an existing FSWatcher instance + * @param {Path|Array} paths_ + * @param {String=} _origAdd private; for handling non-existent paths to be watched + * @param {Boolean=} _internal private; indicates a non-user add + * @returns {FSWatcher} for chaining */ +add(paths_, _origAdd, _internal) { + const {cwd, disableGlobbing} = this.options; + this.closed = false; + let paths = unifyPaths(paths_); + if (cwd) { + paths = paths.map((path) => { + const absPath = getAbsolutePath(path, cwd); -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - 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`.'); - } - }; -})(); + // Check `path` instead of `absPath` because the cwd portion can't be a glob + if (disableGlobbing || !isGlob(path)) { + return absPath; + } + return normalizePath(absPath); + }); + } -/** - * Colors. - */ + // set aside negated glob strings + paths = paths.filter((path) => { + if (path.startsWith(BANG)) { + this._ignoredPaths.add(path.slice(1)); + return false; + } -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' -]; + // if a path is being added that was previously ignored, stop ignoring it + this._ignoredPaths.delete(path); + this._ignoredPaths.delete(path + SLASH_GLOBSTAR); -/** - * 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 - */ + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; -// 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; - } + return true; + }); - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } + if (this.options.useFsEvents && this._fsEventsHandler) { + if (!this._readyCount) this._readyCount = paths.length; + if (this.options.persistent) this._readyCount *= 2; + paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); + } else { + if (!this._readyCount) this._readyCount = 0; + this._readyCount += paths.length; + Promise.all( + paths.map(async path => { + const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); + if (res) this._emitReady(); + return res; + }) + ).then(results => { + if (this.closed) return; + results.filter(item => item).forEach(item => { + this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); + }); + }); + } - // 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+)/)); + return this; } /** - * Colorize log arguments if enabled. - * - * @api public - */ + * Close watchers or start ignoring events from specified paths. + * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs + * @returns {FSWatcher} for chaining +*/ +unwatch(paths_) { + if (this.closed) return this; + const paths = unifyPaths(paths_); + const {cwd} = this.options; -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); + paths.forEach((path) => { + // convert to absolute path unless relative path already matches + if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath.join(cwd, path); + path = sysPath.resolve(path); + } - if (!this.useColors) { - return; - } + this._closePath(path); - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); + this._ignoredPaths.add(path); + if (this._watched.has(path)) { + this._ignoredPaths.add(path + SLASH_GLOBSTAR); + } - // 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; - } - }); + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + }); - args.splice(lastC, 0, c); + return this; } /** - * 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 || (() => {}); + * Close watchers and remove all listeners from watched paths. + * @returns {Promise}. +*/ +close() { + if (this.closed) return this._closePromise; + this.closed = true; + + // Memory management. + this.removeAllListeners(); + const closers = []; + this._closers.forEach(closerList => closerList.forEach(closer => { + const promise = closer(); + if (promise instanceof Promise) closers.push(promise); + })); + this._streams.forEach(stream => stream.destroy()); + this._userIgnored = undefined; + this._readyCount = 0; + this._readyEmitted = false; + this._watched.forEach(dirent => dirent.dispose()); + ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { + this[`_${key}`].clear(); + }); + + this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); + return this._closePromise; +} /** - * 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? - } + * Expose list of watched paths + * @returns {Object} for chaining +*/ +getWatched() { + const watchList = {}; + this._watched.forEach((entry, dir) => { + const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; + watchList[key || ONE_DOT] = entry.getChildren().sort(); + }); + return watchList; +} + +emitWithAll(event, args) { + this.emit(...args); + if (event !== EV_ERROR) this.emit(EV_ALL, ...args); } +// Common helpers +// -------------- + /** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private + * Normalize and emit events. + * Calling _emit DOES NOT MEAN emit() would be called! + * @param {EventName} event Type of event + * @param {Path} path File or directory path + * @param {*=} val1 arguments to be passed with event + * @param {*=} val2 + * @param {*=} val3 + * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } +async _emit(event, path, val1, val2, val3) { + if (this.closed) return; - // 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; - } + const opts = this.options; + if (isWindows$2) path = sysPath.normalize(path); + if (opts.cwd) path = sysPath.relative(opts.cwd, path); + /** @type Array */ + const args = [event, path]; + if (val3 !== undefined) args.push(val1, val2, val3); + else if (val2 !== undefined) args.push(val1, val2); + else if (val1 !== undefined) args.push(val1); - return r; + const awf = opts.awaitWriteFinish; + let pw; + if (awf && (pw = this._pendingWrites.get(path))) { + pw.lastChange = new Date(); + return this; + } + + if (opts.atomic) { + if (event === EV_UNLINK) { + this._pendingUnlinks.set(path, args); + setTimeout(() => { + this._pendingUnlinks.forEach((entry, path) => { + this.emit(...entry); + this.emit(EV_ALL, ...entry); + this._pendingUnlinks.delete(path); + }); + }, typeof opts.atomic === 'number' ? opts.atomic : 100); + return this; + } + if (event === EV_ADD && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE; + this._pendingUnlinks.delete(path); + } + } + + if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { + const awfEmit = (err, stats) => { + if (err) { + event = args[0] = EV_ERROR; + args[1] = err; + this.emitWithAll(event, args); + } else if (stats) { + // if stats doesn't exist the file must have been deleted + if (args.length > 2) { + args[2] = stats; + } else { + args.push(stats); + } + this.emitWithAll(event, args); + } + }; + + this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); + return this; + } + + if (event === EV_CHANGE) { + const isThrottled = !this._throttle(EV_CHANGE, path, 50); + if (isThrottled) return this; + } + + if (opts.alwaysStat && val1 === undefined && + (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) + ) { + const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; + let stats; + try { + stats = await stat(fullPath); + } catch (err) {} + // Suppress event when fs_stat fails, to avoid sending undefined 'stat' + if (!stats || this.closed) return; + args.push(stats); + } + this.emitWithAll(event, args); + + return this; } /** - * 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 + * Common handler for errors + * @param {Error} error + * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag */ - -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? - } +_handleError(error) { + const code = error && error.code; + if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && + (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) + ) { + this.emit(EV_ERROR, error); + } + return error || this.closed; } -module.exports = common$1(exports); - -const {formatters} = module.exports; - /** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + * Helper utility for throttling + * @param {ThrottleType} actionType type being throttled + * @param {Path} path being acted upon + * @param {Number} timeout duration of time to suppress duplicate actions + * @returns {Object|false} tracking object or false if action should be suppressed */ +_throttle(actionType, path, timeout) { + if (!this._throttled.has(actionType)) { + this._throttled.set(actionType, new Map()); + } -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; -}); - -var hasFlag$1 = (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); -}; + /** @type {Map} */ + const action = this._throttled.get(actionType); + /** @type {Object} */ + const actionPath = action.get(path); -const {env: env$1} = process; + if (actionPath) { + actionPath.count++; + return false; + } -let forceColor$1; -if (hasFlag$1('no-color') || - hasFlag$1('no-colors') || - hasFlag$1('color=false') || - hasFlag$1('color=never')) { - forceColor$1 = 0; -} else if (hasFlag$1('color') || - hasFlag$1('colors') || - hasFlag$1('color=true') || - hasFlag$1('color=always')) { - forceColor$1 = 1; + let timeoutObject; + const clear = () => { + const item = action.get(path); + const count = item ? item.count : 0; + action.delete(path); + clearTimeout(timeoutObject); + if (item) clearTimeout(item.timeoutObject); + return count; + }; + timeoutObject = setTimeout(clear, timeout); + const thr = {timeoutObject, clear, count: 0}; + action.set(path, thr); + return thr; } -if ('FORCE_COLOR' in env$1) { - if (env$1.FORCE_COLOR === 'true') { - forceColor$1 = 1; - } else if (env$1.FORCE_COLOR === 'false') { - forceColor$1 = 0; - } else { - forceColor$1 = env$1.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$1.FORCE_COLOR, 10), 3); - } +_incrReadyCount() { + return this._readyCount++; } -function translateLevel$1(level) { - if (level === 0) { - return false; - } +/** + * Awaits write operation to finish. + * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. + * @param {Path} path being acted upon + * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished + * @param {EventName} event + * @param {Function} awfEmit Callback to be called when ready for event to be emitted. + */ +_awaitWriteFinish(path, threshold, event, awfEmit) { + let timeoutHandler; - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} + let fullPath = path; + if (this.options.cwd && !sysPath.isAbsolute(path)) { + fullPath = sysPath.join(this.options.cwd, path); + } -function supportsColor$1(haveStream, streamIsTTY) { - if (forceColor$1 === 0) { - return 0; - } + const now = new Date(); - if (hasFlag$1('color=16m') || - hasFlag$1('color=full') || - hasFlag$1('color=truecolor')) { - return 3; - } + const awaitWriteFinish = (prevStat) => { + fs$6.stat(fullPath, (err, curStat) => { + if (err || !this._pendingWrites.has(path)) { + if (err && err.code !== 'ENOENT') awfEmit(err); + return; + } - if (hasFlag$1('color=256')) { - return 2; - } + const now = Number(new Date()); - if (haveStream && !streamIsTTY && forceColor$1 === undefined) { - return 0; - } + if (prevStat && curStat.size !== prevStat.size) { + this._pendingWrites.get(path).lastChange = now; + } + const pw = this._pendingWrites.get(path); + const df = now - pw.lastChange; - const min = forceColor$1 || 0; + if (df >= threshold) { + this._pendingWrites.delete(path); + awfEmit(undefined, curStat); + } else { + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval, + curStat + ); + } + }); + }; - if (env$1.TERM === 'dumb') { - return min; - } + if (!this._pendingWrites.has(path)) { + this._pendingWrites.set(path, { + lastChange: now, + cancelWait: () => { + this._pendingWrites.delete(path); + clearTimeout(timeoutHandler); + return event; + } + }); + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval + ); + } +} - 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__default['default'].release().split('.'); - if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } +_getGlobIgnored() { + return [...this._ignoredPaths.values()]; +} - return 1; - } +/** + * Determines whether user has asked to ignore this path. + * @param {Path} path filepath or dir + * @param {fs.Stats=} stats result of fs.stat + * @returns {Boolean} + */ +_isIgnored(path, stats) { + if (this.options.atomic && DOT_RE.test(path)) return true; + if (!this._userIgnored) { + const {cwd} = this.options; + const ign = this.options.ignored; - if ('CI' in env$1) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env$1) || env$1.CI_NAME === 'codeship') { - return 1; - } + const ignored = ign && ign.map(normalizeIgnored(cwd)); + const paths = arrify(ignored) + .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) + .map((path) => path + SLASH_GLOBSTAR); + const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); + } - return min; - } + return this._userIgnored([path, stats]); +} - if ('TEAMCITY_VERSION' in env$1) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0; - } +_isntIgnored(path, stat) { + return !this._isIgnored(path, stat); +} - if (env$1.COLORTERM === 'truecolor') { - return 3; - } +/** + * Provides a set of common helpers and properties relating to symlink and glob handling. + * @param {Path} path file, directory, or glob pattern being watched + * @param {Number=} depth at any depth > 0, this isn't a glob + * @returns {WatchHelper} object containing helpers for this path + */ +_getWatchHelpers(path, depth) { + const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); + const follow = this.options.followSymlinks; - if ('TERM_PROGRAM' in env$1) { - const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + return new WatchHelper(path, watchPath, follow, this); +} - switch (env$1.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } +// Directory helpers +// ----------------- - if (/-256(color)?$/i.test(env$1.TERM)) { - return 2; - } +/** + * Provides directory tracking objects + * @param {String} directory path of the directory + * @returns {DirEntry} the directory's tracking object + */ +_getWatchedDir(directory) { + if (!this._boundRemove) this._boundRemove = this._remove.bind(this); + const dir = sysPath.resolve(directory); + if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); + return this._watched.get(dir); +} - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) { - return 1; - } +// File helpers +// ------------ - if ('COLORTERM' in env$1) { - return 1; - } +/** + * Check for read permissions. + * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 + * @param {fs.Stats} stats - object, result of fs_stat + * @returns {Boolean} indicates whether the file can be read +*/ +_hasReadPermissions(stats) { + if (this.options.ignorePermissionErrors) return true; - return min; + // stats.mode may be bigint + const md = stats && Number.parseInt(stats.mode, 10); + const st = md & 0o777; + const it = Number.parseInt(st.toString(8)[0], 10); + return Boolean(4 & it); } -function getSupportLevel$1(stream) { - const level = supportsColor$1(stream, stream && stream.isTTY); - return translateLevel$1(level); -} +/** + * Handles emitting unlink events for + * files and directories, and via recursion, for + * files and directories within directories that are unlinked + * @param {String} directory within which the following item is located + * @param {String} item base path of item/directory + * @returns {void} +*/ +_remove(directory, item, isDirectory) { + // if what is being deleted is a directory, get that directory's paths + // for recursive deleting and cleaning of watched object + // if it is not a directory, nestedDirectoryChildren will be empty array + const path = sysPath.join(directory, item); + const fullPath = sysPath.resolve(path); + isDirectory = isDirectory != null + ? isDirectory + : this._watched.has(path) || this._watched.has(fullPath); -var supportsColor_1$1 = { - supportsColor: getSupportLevel$1, - stdout: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(1))), - stderr: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(2))) -}; + // prevent duplicate handling in case of arriving here nearly simultaneously + // via multiple paths (such as _handleFile and _handleDir) + if (!this._throttle('remove', path, 100)) return; -/** - * Module dependencies. - */ + // if the only watched file is removed, watch for its return + if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { + this.add(directory, item, true); + } -var node = createCommonjsModule(function (module, exports) { -/** - * This is the Node.js implementation of `debug()`. - */ + // This will create a new entry in the watched object in either case + // so we got to do the directory check beforehand + const wp = this._getWatchedDir(path); + const nestedDirectoryChildren = wp.getChildren(); -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util__default['default'].deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); + // Recursively remove children directories / files. + nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); -/** - * Colors. - */ + // Check if item was on the watched list and remove it + const parent = this._getWatchedDir(directory); + const wasTracked = parent.has(item); + parent.remove(item); -exports.colors = [6, 2, 3, 4, 5, 1]; + // Fixes issue #1042 -> Relative paths were detected and added as symlinks + // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), + // but never removed from the map in case the path was deleted. + // This leads to an incorrect state if the path was recreated: + // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 + if (this._symlinkPaths.has(fullPath)) { + this._symlinkPaths.delete(fullPath); + } -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 = supportsColor_1$1; + // If we wait for this file to be fully written, cancel the wait. + let relPath = path; + if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); + if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { + const event = this._pendingWrites.get(relPath).cancelWait(); + if (event === EV_ADD) return; + } - 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. + // The Entry will either be a directory that just got removed + // or a bogus entry to a file, in either case we have to remove it + this._watched.delete(path); + this._watched.delete(fullPath); + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; + if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); + + // Avoid conflicts if we later create another file with the same name + if (!this.options.useFsEvents) { + this._closePath(path); + } } /** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + * Closes all watchers for a path + * @param {Path} path */ - -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; -}, {}); +_closePath(path) { + this._closeFile(path); + const dir = sysPath.dirname(path); + this._getWatchedDir(dir).remove(sysPath.basename(path)); +} /** - * Is stdout a TTY? Colored output is enabled when `true`. + * Closes only file-specific watchers + * @param {Path} path */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty__default['default'].isatty(process.stderr.fd); +_closeFile(path) { + const closers = this._closers.get(path); + if (!closers) return; + closers.forEach(closer => closer()); + this._closers.delete(path); } /** - * Adds ANSI color escape codes if enabled. * - * @api public + * @param {Path} path + * @param {Function} closer */ - -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]; - } +_addPathCloser(path, closer) { + if (!closer) return; + let list = this._closers.get(path); + if (!list) { + list = []; + this._closers.set(path, list); + } + list.push(closer); } -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; +_readdirp(root, opts) { + if (this.closed) return; + const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; + let stream = readdirp(root, options); + this._streams.add(stream); + stream.once(STR_CLOSE, () => { + stream = undefined; + }); + stream.once(STR_END, () => { + if (stream) { + this._streams.delete(stream); + stream = undefined; + } + }); + return stream; } -/** - * Invokes `util.format()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util__default['default'].format(...args) + '\n'); } +// Export FSWatcher class +chokidar.FSWatcher = FSWatcher; + /** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private + * Instantiates watcher with paths to be tracked. + * @param {String|Array} paths file/directory paths and/or globs + * @param {Object=} options chokidar opts + * @returns an instance of FSWatcher for chaining. */ -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; - } -} +const watch = (paths, options) => { + const watcher = new FSWatcher(options); + watcher.add(paths); + return watcher; +}; + +chokidar.watch = watch; /** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private + * @typedef {import('vfile').VFile} VFile + * @typedef {import('vfile-message').VFileMessage} VFileMessage + * + * @typedef Statistics + * @property {number} fatal Fatal errors (`fatal: true`) + * @property {number} warn warning errors (`fatal: false`) + * @property {number} info informational messages (`fatal: null|undefined`) + * @property {number} nonfatal warning + info + * @property {number} total nonfatal + fatal */ -function load() { - return process.env.DEBUG; -} - /** - * Init logic for `debug` instances. + * Get stats for a file, list of files, or list of messages. * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. + * @param {Array.|VFile|VFileMessage} [value] + * @returns {Statistics} */ +function statistics(value) { + var result = {true: 0, false: 0, null: 0}; -function init(debug) { - debug.inspectOpts = {}; + if (value) { + if (Array.isArray(value)) { + list(value); + } else { + one(value); + } + } - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} + return { + fatal: result.true, + nonfatal: result.false + result.null, + warn: result.false, + info: result.null, + total: result.true + result.false + result.null + } -module.exports = common$1(exports); + /** + * @param {Array.} value + * @returns {void} + */ + function list(value) { + var index = -1; -const {formatters} = module.exports; + while (++index < value.length) { + one(value[index]); + } + } -/** - * Map %o to `util.inspect()`, all on a single line. - */ + /** + * @param {VFile|VFileMessage} value + * @returns {void} + */ + function one(value) { + if ('messages' in value) return list(value.messages) -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util__default['default'].inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; + result[ + value.fatal === undefined || value.fatal === null + ? null + : Boolean(value.fatal) + ]++; + } +} /** - * Map %O to `util.inspect()`, allowing multiple lines if needed. + * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback + * @typedef {(...input: any[]) => any} Middleware + * + * @typedef {(...input: any[]) => void} Run Call all middleware. + * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. + * @typedef {{run: Run, use: Use}} Pipeline */ -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util__default['default'].inspect(v, this.inspectOpts); -}; -}); - /** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. + * Create new middleware. + * + * @returns {Pipeline} */ +function trough() { + /** @type {Middleware[]} */ + const fns = []; + /** @type {Pipeline} */ + const pipeline = {run, use}; -var src = createCommonjsModule(function (module) { -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = browser; -} else { - module.exports = node; -} -}); - -const resolveFrom = (fromDirectory, moduleId, silent) => { - if (typeof fromDirectory !== 'string') { - throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``); - } + return pipeline - if (typeof moduleId !== 'string') { - throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``); - } + /** @type {Run} */ + function run(...values) { + let middlewareIndex = -1; + /** @type {Callback} */ + const callback = values.pop(); - try { - fromDirectory = fs__default['default'].realpathSync(fromDirectory); - } catch (error) { - if (error.code === 'ENOENT') { - fromDirectory = path__default['default'].resolve(fromDirectory); - } else if (silent) { - return; - } else { - throw error; - } - } + if (typeof callback !== 'function') { + throw new TypeError('Expected function as last argument, not ' + callback) + } - const fromFile = path__default['default'].join(fromDirectory, 'noop.js'); + next(null, ...values); - const resolveFileName = () => Module__default['default']._resolveFilename(moduleId, { - id: fromFile, - filename: fromFile, - paths: Module__default['default']._nodeModulePaths(fromDirectory) - }); + /** + * Run the next `fn`, or we’re done. + * + * @param {Error|null|undefined} error + * @param {any[]} output + */ + function next(error, ...output) { + const fn = fns[++middlewareIndex]; + let index = -1; - if (silent) { - try { - return resolveFileName(); - } catch (error) { - return; - } - } + if (error) { + callback(error); + return + } - return resolveFileName(); -}; + // Copy non-nullish input into values. + while (++index < values.length) { + if (output[index] === null || output[index] === undefined) { + output[index] = values[index]; + } + } -var resolveFrom_1 = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId); -var silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true); -resolveFrom_1.silent = silent; + // Save the newly created `output` for the next call. + values = output; -class FiggyPudding { - constructor (specs, opts, providers) { - this.__specs = specs || {}; - Object.keys(this.__specs).forEach(alias => { - if (typeof this.__specs[alias] === 'string') { - const key = this.__specs[alias]; - const realSpec = this.__specs[key]; - if (realSpec) { - const aliasArr = realSpec.aliases || []; - aliasArr.push(alias, key); - realSpec.aliases = [...(new Set(aliasArr))]; - this.__specs[alias] = realSpec; - } else { - throw new Error(`Alias refers to invalid key: ${key} -> ${alias}`) - } + // Next or done. + if (fn) { + wrap(fn, next)(...output); + } else { + callback(null, ...output); } - }); - this.__opts = opts || {}; - this.__providers = reverse((providers).filter( - x => x != null && typeof x === 'object' - )); - this.__isFiggyPudding = true; - } - get (key) { - return pudGet(this, key, true) - } - get [Symbol.toStringTag] () { return 'FiggyPudding' } - forEach (fn, thisArg = this) { - for (let [key, value] of this.entries()) { - fn.call(thisArg, value, key, this); } } - toJSON () { - const obj = {}; - this.forEach((val, key) => { - obj[key] = val; - }); - return obj + + /** @type {Use} */ + function use(middelware) { + if (typeof middelware !== 'function') { + throw new TypeError( + 'Expected `middelware` to be a function, not ' + middelware + ) + } + + fns.push(middelware); + return pipeline } - * entries (_matcher) { - for (let key of Object.keys(this.__specs)) { - yield [key, this.get(key)]; +} + +/** + * Wrap `middleware`. + * Can be sync or async; return a promise, receive a callback, or return new + * values and errors. + * + * @param {Middleware} middleware + * @param {Callback} callback + */ +function wrap(middleware, callback) { + /** @type {boolean} */ + let called; + + return wrapped + + /** + * Call `middleware`. + * @param {any[]} parameters + * @returns {void} + */ + function wrapped(...parameters) { + const fnExpectsCallback = middleware.length > parameters.length; + /** @type {any} */ + let result; + + if (fnExpectsCallback) { + parameters.push(done); } - const matcher = _matcher || this.__opts.other; - if (matcher) { - const seen = new Set(); - for (let p of this.__providers) { - const iter = p.entries ? p.entries(matcher) : entries(p); - for (let [key, val] of iter) { - if (matcher(key) && !seen.has(key)) { - seen.add(key); - yield [key, val]; - } - } + + try { + result = middleware(...parameters); + } catch (error) { + /** @type {Error} */ + const exception = error; + + // Well, this is quite the pickle. + // `middleware` received a callback and called it synchronously, but that + // threw an error. + // The only thing left to do is to throw the thing instead. + if (fnExpectsCallback && called) { + throw exception } + + return done(exception) } - } - * [Symbol.iterator] () { - for (let [key, value] of this.entries()) { - yield [key, value]; - } - } - * keys () { - for (let [key] of this.entries()) { - yield key; + + if (!fnExpectsCallback) { + if (result instanceof Promise) { + result.then(then, done); + } else if (result instanceof Error) { + done(result); + } else { + then(result); + } } } - * values () { - for (let [, value] of this.entries()) { - yield value; + + /** + * Call `callback`, only once. + * @type {Callback} + */ + function done(error, ...output) { + if (!called) { + called = true; + callback(error, ...output); } } - concat (...moreConfig) { - return new Proxy(new FiggyPudding( - this.__specs, - this.__opts, - reverse(this.__providers).concat(moreConfig) - ), proxyHandler) + + /** + * Call `done` with one value. + * + * @param {any} [value] + */ + function then(value) { + done(null, value); } } -try { - const util = util__default['default']; - FiggyPudding.prototype[util.inspect.custom] = function (depth, opts) { - return ( - this[Symbol.toStringTag] + ' ' - ) + util.inspect(this.toJSON(), opts) - }; -} catch (e) {} -function BadKeyError (key) { - throw Object.assign(new Error( - `invalid config key requested: ${key}` - ), {code: 'EBADKEY'}) +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function isNothing(subject) { + return (typeof subject === 'undefined') || (subject === null); } -function pudGet (pud, key, validate) { - let spec = pud.__specs[key]; - if (validate && !spec && (!pud.__opts.other || !pud.__opts.other(key))) { - BadKeyError(key); - } else { - if (!spec) { spec = {}; } - let ret; - for (let p of pud.__providers) { - ret = tryGet(key, p); - if (ret === undefined && spec.aliases && spec.aliases.length) { - for (let alias of spec.aliases) { - if (alias === key) { continue } - ret = tryGet(alias, p); - if (ret !== undefined) { - break - } - } - } - if (ret !== undefined) { - break - } - } - if (ret === undefined && spec.default !== undefined) { - if (typeof spec.default === 'function') { - return spec.default(pud) - } else { - return spec.default - } - } else { - return ret + +function isObject$1(subject) { + return (typeof subject === 'object') && (subject !== null); +} + + +function toArray(sequence) { + if (Array.isArray(sequence)) return sequence; + else if (isNothing(sequence)) return []; + + return [ sequence ]; +} + + +function extend$2(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; } } + + return target; } -function tryGet (key, p) { - let ret; - if (p.__isFiggyPudding) { - ret = pudGet(p, key, false); - } else if (typeof p.get === 'function') { - ret = p.get(key); - } else { - ret = p[key]; + +function repeat$1(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; } - return ret + + return result; } -const proxyHandler = { - has (obj, prop) { - return prop in obj.__specs && pudGet(obj, prop, false) !== undefined - }, - ownKeys (obj) { - return Object.keys(obj.__specs) - }, - get (obj, prop) { - if ( - typeof prop === 'symbol' || - prop.slice(0, 2) === '__' || - prop in FiggyPudding.prototype - ) { - return obj[prop] - } - return obj.get(prop) - }, - set (obj, prop, value) { - if ( - typeof prop === 'symbol' || - prop.slice(0, 2) === '__' - ) { - obj[prop] = value; - return true - } else { - throw new Error('figgyPudding options cannot be modified. Use .concat() instead.') - } - }, - deleteProperty () { - throw new Error('figgyPudding options cannot be deleted. Use .concat() and shadow them instead.') - } + +function isNegativeZero(number) { + return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); +} + + +var isNothing_1 = isNothing; +var isObject_1 = isObject$1; +var toArray_1 = toArray; +var repeat_1 = repeat$1; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend$2; + +var common$4 = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 }; -var figgyPudding_1 = figgyPudding; -function figgyPudding (specs, opts) { - function factory (...providers) { - return new Proxy(new FiggyPudding( - specs, - opts, - providers - ), proxyHandler) +// YAML error class. http://stackoverflow.com/questions/8458984 + + +function formatError(exception, compact) { + var where = '', message = exception.reason || '(unknown reason)'; + + if (!exception.mark) return message; + + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; } - return factory -} -function reverse (arr) { - const ret = []; - arr.forEach(x => ret.unshift(x)); - return ret + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; } -function entries (obj) { - return Object.keys(obj).map(k => [k, obj[k]]) + +function YAMLException$1(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } } -var pathExists = fp => new Promise(resolve => { - fs__default['default'].access(fp, err => { - resolve(!err); - }); -}); -var sync = fp => { - try { - fs__default['default'].accessSync(fp); - return true; - } catch (err) { - return false; - } +// Inherit from Error +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; + + +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); }; -pathExists.sync = sync; -const pTry = (fn, ...arguments_) => new Promise(resolve => { - resolve(fn(...arguments_)); -}); -var pTry_1 = pTry; -// TODO: remove this in the next major version -var _default$3 = pTry; -pTry_1.default = _default$3; +var exception = YAMLException$1; -const pLimit = concurrency => { - if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { - return Promise.reject(new TypeError('Expected `concurrency` to be a number from 1 and up')); - } +// get snippet for a single line, respecting maxLength +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - const queue = []; - let activeCount = 0; + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } - const next = () => { - activeCount--; + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } - if (queue.length > 0) { - queue.shift()(); - } - }; + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; +} - const run = (fn, resolve, ...args) => { - activeCount++; - const result = pTry_1(fn, ...args); +function padStart(string, max) { + return common$4.repeat(' ', max - string.length) + string; +} - resolve(result); - result.then(next, next); - }; +function makeSnippet(mark, options) { + options = Object.create(options || null); - const enqueue = (fn, resolve, ...args) => { - if (activeCount < concurrency) { - run(fn, resolve, ...args); - } else { - queue.push(run.bind(null, fn, resolve, ...args)); - } - }; + if (!mark.buffer) return null; - const generator = (fn, ...args) => new Promise(resolve => enqueue(fn, resolve, ...args)); - Object.defineProperties(generator, { - activeCount: { - get: () => activeCount - }, - pendingCount: { - get: () => queue.length - }, - clearQueue: { - value: () => { - queue.length = 0; - } - } - }); + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; - return generator; -}; + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common$4.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } -var pLimit_1 = pLimit; -var _default$4 = pLimit; -pLimit_1.default = _default$4; + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common$4.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common$4.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; -class EndError extends Error { - constructor(value) { - super(); - this.value = value; - } + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common$4.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); } -// The input can also be a promise, so we `Promise.resolve()` it -const testElement = (el, tester) => Promise.resolve(el).then(tester); -// The input can also be a promise, so we `Promise.all()` them both -const finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); +var snippet = makeSnippet; -var pLocate = (iterable, tester, opts) => { - opts = Object.assign({ - concurrency: Infinity, - preserveOrder: true - }, opts); +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' +]; - const limit = pLimit_1(opts.concurrency); +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; - // Start all the promises concurrently with optional limit - const items = [...iterable].map(el => [el, limit(testElement, el, tester)]); +function compileStyleAliases(map) { + var result = {}; - // Check the promises either serially or concurrently - const checkLimit = pLimit_1(opts.preserveOrder ? 1 : Infinity); + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } - return Promise.all(items.map(el => checkLimit(finder, el))) - .then(() => {}) - .catch(err => err instanceof EndError ? err.value : Promise.reject(err)); -}; + return result; +} -var locatePath = (iterable, options) => { - options = Object.assign({ - cwd: process.cwd() - }, options); +function Type$1(tag, options) { + options = options || {}; - return pLocate(iterable, el => pathExists(path__default['default'].resolve(options.cwd, el)), options); -}; + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); -var sync$1 = (iterable, options) => { - options = Object.assign({ - cwd: process.cwd() - }, options); + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - for (const el of iterable) { - if (pathExists.sync(path__default['default'].resolve(options.cwd, el))) { - return el; - } - } -}; -locatePath.sync = sync$1; + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} -var findUp = (filename, opts = {}) => { - const startDir = path__default['default'].resolve(opts.cwd || ''); - const {root} = path__default['default'].parse(startDir); +var type$1 = Type$1; - const filenames = [].concat(filename); +/*eslint-disable max-len*/ - return new Promise(resolve => { - (function find(dir) { - locatePath(filenames, {cwd: dir}).then(file => { - if (file) { - resolve(path__default['default'].join(dir, file)); - } else if (dir === root) { - resolve(null); - } else { - find(path__default['default'].dirname(dir)); - } - }); - })(startDir); - }); -}; -var sync$2 = (filename, opts = {}) => { - let dir = path__default['default'].resolve(opts.cwd || ''); - const {root} = path__default['default'].parse(dir); - const filenames = [].concat(filename); - // eslint-disable-next-line no-constant-condition - while (true) { - const file = locatePath.sync(filenames, {cwd: dir}); - if (file) { - return path__default['default'].join(dir, file); - } +function compileList(schema, name) { + var result = []; - if (dir === root) { - return null; - } + schema[name].forEach(function (currentType) { + var newIndex = result.length; - dir = path__default['default'].dirname(dir); - } -}; -findUp.sync = sync$2; + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); -var ini = createCommonjsModule(function (module, exports) { -exports.parse = exports.decode = decode; + result[newIndex] = currentType; + }); -exports.stringify = exports.encode = encode; + return result; +} -exports.safe = safe; -exports.unsafe = unsafe; -var eol = typeof process !== 'undefined' && - process.platform === 'win32' ? '\r\n' : '\n'; +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; -function encode (obj, opt) { - var children = []; - var out = ''; + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } - if (typeof opt === 'string') { - opt = { - section: opt, - whitespace: false, - }; - } else { - opt = opt || {}; - opt.whitespace = opt.whitespace === true; + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); } + return result; +} - var separator = opt.whitespace ? ' = ' : '='; - Object.keys(obj).forEach(function (k, _, __) { - var val = obj[k]; - if (val && Array.isArray(val)) { - val.forEach(function (item) { - out += safe(k + '[]') + separator + safe(item) + '\n'; - }); - } else if (val && typeof val === 'object') - children.push(k); - else - out += safe(k) + separator + safe(val) + eol; - }); +function Schema$1(definition) { + return this.extend(definition); +} - if (opt.section && out.length) - out = '[' + safe(opt.section) + ']' + eol + out; - children.forEach(function (k, _, __) { - var nk = dotSplit(k).join('\\.'); - var section = (opt.section ? opt.section + '.' : '') + nk; - var child = encode(obj[k], { - section: section, - whitespace: opt.whitespace, - }); - if (out.length && child.length) - out += eol; +Schema$1.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; - out += child; - }); + if (definition instanceof type$1) { + // Schema.extend(type) + explicit.push(definition); - return out -} + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); -function dotSplit (str) { - return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002') - .replace(/\\\./g, '\u0001') - .split(/\./).map(function (part) { - return part.replace(/\1/g, '\\.') - .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001') - }) -} + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); -function decode (str) { - var out = {}; - var p = out; - var section = null; - // section |key = value - var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i; - var lines = str.split(/[\r\n]+/g); + } else { + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } - lines.forEach(function (line, _, __) { - if (!line || line.match(/^\s*[;#]/)) - return - var match = line.match(re); - if (!match) - return - if (match[1] !== undefined) { - section = unsafe(match[1]); - if (section === '__proto__') { - // not allowed - // keep parsing the section, but don't attach it. - p = {}; - return - } - p = out[section] = out[section] || {}; - return - } - var key = unsafe(match[2]); - if (key === '__proto__') - return - var value = match[3] ? unsafe(match[4]) : true; - switch (value) { - case 'true': - case 'false': - case 'null': value = JSON.parse(value); + implicit.forEach(function (type$1$1) { + if (!(type$1$1 instanceof type$1)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } - // Convert keys with '[]' suffix to an array - if (key.length > 2 && key.slice(-2) === '[]') { - key = key.substring(0, key.length - 2); - if (key === '__proto__') - return - if (!p[key]) - p[key] = []; - else if (!Array.isArray(p[key])) - p[key] = [p[key]]; + if (type$1$1.loadKind && type$1$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); } - // safeguard against resetting a previously defined - // array by accidentally forgetting the brackets - if (Array.isArray(p[key])) - p[key].push(value); - else - p[key] = value; + if (type$1$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } }); - // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} - // use a filter to return the keys that have to be deleted. - Object.keys(out).filter(function (k, _, __) { - if (!out[k] || - typeof out[k] !== 'object' || - Array.isArray(out[k])) - return false - - // see if the parent section is also an object. - // if so, add it to that, and mark this one for deletion - var parts = dotSplit(k); - var p = out; - var l = parts.pop(); - var nl = l.replace(/\\\./g, '.'); - parts.forEach(function (part, _, __) { - if (part === '__proto__') - return - if (!p[part] || typeof p[part] !== 'object') - p[part] = {}; - p = p[part]; - }); - if (p === out && nl === l) - return false - - p[nl] = out[k]; - return true - }).forEach(function (del, _, __) { - delete out[del]; + explicit.forEach(function (type$1$1) { + if (!(type$1$1 instanceof type$1)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } }); - return out -} + var result = Object.create(Schema$1.prototype); -function isQuoted (val) { - return (val.charAt(0) === '"' && val.slice(-1) === '"') || - (val.charAt(0) === "'" && val.slice(-1) === "'") -} + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); -function safe (val) { - return (typeof val !== 'string' || - val.match(/[=\r\n]/) || - val.match(/^\[/) || - (val.length > 1 && - isQuoted(val)) || - val !== val.trim()) - ? JSON.stringify(val) - : val.replace(/;/g, '\\;').replace(/#/g, '\\#') -} + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); -function unsafe (val, doUnesc) { - val = (val || '').trim(); - if (isQuoted(val)) { - // remove the single quotes before calling JSON.parse - if (val.charAt(0) === "'") - val = val.substr(1, val.length - 2); + return result; +}; - try { - val = JSON.parse(val); - } catch (_) {} - } else { - // walk the val to find the first not-escaped ; character - var esc = false; - var unesc = ''; - for (var i = 0, l = val.length; i < l; i++) { - var c = val.charAt(i); - if (esc) { - if ('\\;#'.indexOf(c) !== -1) - unesc += c; - else - unesc += '\\' + c; - esc = false; - } else if (';#'.indexOf(c) !== -1) - break - else if (c === '\\') - esc = true; - else - unesc += c; - } - if (esc) - unesc += '\\'; +var schema$1 = Schema$1; - return unesc.trim() - } - return val -} +var str = new type$1('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } }); -const NpmConfig = figgyPudding_1({}, { - // Open up the pudding object. - other () { return true } +var seq = new type$1('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } }); -const ConfigOpts = figgyPudding_1({ - cache: { default: path__default['default'].join(os__default['default'].homedir(), '.npm') }, - configNames: { default: ['npmrc', '.npmrc'] }, - envPrefix: { default: /^npm_config_/i }, - cwd: { default: () => process.cwd() }, - globalconfig: { - default: () => path__default['default'].join(getGlobalPrefix(), 'etc', 'npmrc') - }, - userconfig: { default: path__default['default'].join(os__default['default'].homedir(), '.npmrc') } +var map$3 = new type$1('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } }); -var read = getNpmConfig; -function getNpmConfig (_opts, _builtin) { - const builtin = ConfigOpts(_builtin); - const env = {}; - for (let key of Object.keys(process.env)) { - if (!key.match(builtin.envPrefix)) continue - const newKey = key.toLowerCase() - .replace(builtin.envPrefix, '') - .replace(/(?!^)_/g, '-'); - env[newKey] = process.env[key]; - } - const cli = NpmConfig(_opts); - const userConfPath = ( - builtin.userconfig || - cli.userconfig || - env.userconfig - ); - const user = userConfPath && maybeReadIni(userConfPath); - const globalConfPath = ( - builtin.globalconfig || - cli.globalconfig || - env.globalconfig - ); - const global = globalConfPath && maybeReadIni(globalConfPath); - const projConfPath = findUp.sync(builtin.configNames, { cwd: builtin.cwd }); - let proj = {}; - if (projConfPath && projConfPath !== userConfPath) { - proj = maybeReadIni(projConfPath); - } - const newOpts = NpmConfig(builtin, global, user, proj, env, cli); - if (newOpts.cache) { - return newOpts.concat({ - cache: path__default['default'].resolve( - ( - (cli.cache || env.cache) - ? builtin.cwd - : proj.cache - ? path__default['default'].dirname(projConfPath) - : user.cache - ? path__default['default'].dirname(userConfPath) - : global.cache - ? path__default['default'].dirname(globalConfPath) - : path__default['default'].dirname(userConfPath) - ), - newOpts.cache - ) - }) - } else { - return newOpts - } +var failsafe = new schema$1({ + explicit: [ + str, + seq, + map$3 + ] +}); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); } -function maybeReadIni (f) { - let txt; - try { - txt = fs__default['default'].readFileSync(f, 'utf8'); - } catch (err) { - if (err.code === 'ENOENT') { - return '' - } else { - throw err - } - } - return ini.parse(txt) +function constructYamlNull() { + return null; } -function getGlobalPrefix () { - if (process.env.PREFIX) { - return process.env.PREFIX - } else if (process.platform === 'win32') { - // c:\node\node.exe --> prefix=c:\node\ - return path__default['default'].dirname(process.execPath) - } else { - // /usr/local/bin/node --> prefix=/usr/local - let pref = path__default['default'].dirname(path__default['default'].dirname(process.execPath)); - // destdir only is respected on Unix - if (process.env.DESTDIR) { - pref = path__default['default'].join(process.env.DESTDIR, pref); - } - return pref - } +function isNull(object) { + return object === null; } -var libnpmconfig = { - read: read -}; +var _null = new type$1('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' +}); -var resolve = resolveFrom_1.silent; -var readNpmConfig = libnpmconfig.read; +function resolveYamlBoolean(data) { + if (data === null) return false; -var loadPlugin_1 = loadPlugin; -loadPlugin.resolve = resolvePlugin; + var max = data.length; -var electron = process.versions.electron !== undefined; -var windows = process.platform === 'win32'; + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} -var argv = process.argv[1] || /* istanbul ignore next */ ''; -var nvm = process.env.NVM_BIN; -var appData = process.env.APPDATA; +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} -/* istanbul ignore next */ -var globalsLibrary = windows ? '' : 'lib'; +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} -var builtinNpmConfig; +var bool = new type$1('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); -// The prefix config defaults to the location where node is installed. -// On Windows, this is in a place called `%AppData%`, which we have to -// pass to `libnpmconfig` explicitly: -/* istanbul ignore next */ -if (windows && appData) { - builtinNpmConfig = {prefix: path__default['default'].join(appData, 'npm')}; +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); } -var npmPrefix = readNpmConfig(null, builtinNpmConfig).prefix; +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} -// If there is no prefix defined, use the defaults -// See: -/* istanbul ignore next */ -if (!npmPrefix) { - npmPrefix = windows - ? path__default['default'].dirname(process.execPath) - : path__default['default'].resolve(process.execPath, '../..'); +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); } -var globally = electron || argv.indexOf(npmPrefix) === 0; -var globals = path__default['default'].resolve(npmPrefix, globalsLibrary, 'node_modules'); +function resolveYamlInteger(data) { + if (data === null) return false; -// If we’re in Electron, we’re running in a modified Node that cannot really -// install global node modules. -// To find the actual modules, the user has to set `prefix` somewhere in an -// `.npmrc` (which is picked up by `libnpmconfig`). -// Most people don’t do that, and some use NVM instead to manage different -// versions of Node. -// Luckily NVM leaks some environment variables that we can pick up on to try -// and detect the actual modules. -/* istanbul ignore next */ -if (electron && nvm && !fs__default['default'].existsSync(globals)) { - globals = path__default['default'].resolve(nvm, '..', globalsLibrary, 'node_modules'); -} + var max = data.length, + index = 0, + hasDigits = false, + ch; -// Load the plugin found using `resolvePlugin`. -function loadPlugin(name, options) { - return commonjsRequire(resolvePlugin(name, options) || name) -} + if (!max) return false; -// Find a plugin. -// -// See also: -// -// -// -// Uses the standard node module loading strategy to find $name in each given -// `cwd` (and optionally the global `node_modules` directory). -// -// If a prefix is given and $name is not a path, `$prefix-$name` is also -// searched (preferring these over non-prefixed modules). -function resolvePlugin(name, options) { - var settings = options || {}; - var prefix = settings.prefix; - var cwd = settings.cwd; - var global = settings.global; - var filePath; - var sources; - var length; - var index; - var plugin; - var slash; - var scope = ''; + ch = data[index]; - if (global === null || global === undefined) { - global = globally; + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; } - if (cwd && typeof cwd === 'object') { - sources = cwd.concat(); - } else { - sources = [cwd || process.cwd()]; - } + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; - // Non-path. - if (name.charAt(0) !== '.') { - if (global) { - sources.push(globals); + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; } - // Unprefix module. - if (prefix) { - prefix = prefix.charAt(prefix.length - 1) === '-' ? prefix : prefix + '-'; - // Scope? - if (name.charAt(0) === '@') { - slash = name.indexOf('/'); + if (ch === 'x') { + // base 16 + index++; - // Let’s keep the algorithm simple. - // No need to care if this is a “valid” scope (I think?). - // But we do check for the slash. - if (slash !== -1) { - scope = name.slice(0, slash + 1); - name = name.slice(slash + 1); - } + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; } + return hasDigits && ch !== '_'; + } - if (name.slice(0, prefix.length) !== prefix) { - plugin = scope + prefix + name; - } - name = scope + name; + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; } } - length = sources.length; - index = -1; + // base 10 (except 0) - while (++index < length) { - cwd = sources[index]; - filePath = (plugin && resolve(cwd, plugin)) || resolve(cwd, name); + // value should not start with `_`; + if (ch === '_') return false; - if (filePath) { - return filePath + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; } + hasDigits = true; } - return null -} + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; -var isPlainObj = value => { - if (Object.prototype.toString.call(value) !== '[object Object]') { - return false; - } + return true; +} - const prototype = Object.getPrototypeOf(value); - return prototype === null || prototype === Object.prototype; -}; +function constructYamlInteger(data) { + var value = data, sign = 1, ch; -var format = createCommonjsModule(function (module) { -(function() { + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } - //// Export the API - var namespace; + ch = value[0]; - // CommonJS / Node module - { - namespace = module.exports = format; + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; } - namespace.format = format; - namespace.vsprintf = vsprintf; + if (value === '0') return 0; - if (typeof console !== 'undefined' && typeof console.log === 'function') { - namespace.printf = printf; + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); } - function printf(/* ... */) { - console.log(format.apply(null, arguments)); - } + return sign * parseInt(value, 10); +} - function vsprintf(fmt, replacements) { - return format.apply(null, [fmt].concat(replacements)); - } +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common$4.isNegativeZero(object)); +} - function format(fmt) { - var argIndex = 1 // skip initial format argument - , args = [].slice.call(arguments) - , i = 0 - , n = fmt.length - , result = '' - , c - , escaped = false - , arg - , tmp - , leadingZero = false - , precision - , nextArg = function() { return args[argIndex++]; } - , slurpNumber = function() { - var digits = ''; - while (/\d/.test(fmt[i])) { - digits += fmt[i++]; - c = fmt[i]; - } - return digits.length > 0 ? parseInt(digits) : null; - } - ; - for (; i < n; ++i) { - c = fmt[i]; - if (escaped) { - escaped = false; - if (c == '.') { - leadingZero = false; - c = fmt[++i]; - } - else if (c == '0' && fmt[i + 1] == '.') { - leadingZero = true; - i += 2; - c = fmt[i]; - } - else { - leadingZero = true; - } - precision = slurpNumber(); - switch (c) { - case 'b': // number in binary - result += parseInt(nextArg(), 10).toString(2); - break; - case 'c': // character - arg = nextArg(); - if (typeof arg === 'string' || arg instanceof String) - result += arg; - else - result += String.fromCharCode(parseInt(arg, 10)); - break; - case 'd': // number in decimal - result += parseInt(nextArg(), 10); - break; - case 'f': // floating point number - tmp = String(parseFloat(nextArg()).toFixed(precision || 6)); - result += leadingZero ? tmp : tmp.replace(/^0/, ''); - break; - case 'j': // JSON - result += JSON.stringify(nextArg()); - break; - case 'o': // number in octal - result += '0' + parseInt(nextArg(), 10).toString(8); - break; - case 's': // string - result += nextArg(); - break; - case 'x': // lowercase hexadecimal - result += '0x' + parseInt(nextArg(), 10).toString(16); - break; - case 'X': // uppercase hexadecimal - result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase(); - break; - default: - result += c; - break; - } - } else if (c === '%') { - escaped = true; - } else { - result += c; - } - } - return result; +var int = new type$1('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] } - -}()); }); -var fault = create(Error); - -var fault_1 = fault; +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); -fault.eval = create(EvalError); -fault.range = create(RangeError); -fault.reference = create(ReferenceError); -fault.syntax = create(SyntaxError); -fault.type = create(TypeError); -fault.uri = create(URIError); +function resolveYamlFloat(data) { + if (data === null) return false; -fault.create = create; + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } -// Create a new `EConstructor`, with the formatted `format` as a first argument. -function create(EConstructor) { - FormattedError.displayName = EConstructor.displayName || EConstructor.name; + return true; +} - return FormattedError +function constructYamlFloat(data) { + var value, sign; - function FormattedError(format$1) { - if (format$1) { - format$1 = format.apply(null, arguments); - } + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; - return new EConstructor(format$1) + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); } -} - -var debug = src('unified-engine:find-up'); -var findUp$1 = FindUp; + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; -var read$1 = fs__default['default'].readFile; -var resolve$1 = path__default['default'].resolve; -var relative = path__default['default'].relative; -var join = path__default['default'].join; -var dirname = path__default['default'].dirname; + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); +} -FindUp.prototype.load = load$2; -function FindUp(options) { - var self = this; - var fp = options.filePath; +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - self.cache = {}; - self.cwd = options.cwd; - self.detect = options.detect; - self.names = options.names; - self.create = options.create; +function representYamlFloat(object, style) { + var res; - if (fp) { - self.givenFilePath = resolve$1(options.cwd, fp); + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common$4.isNegativeZero(object)) { + return '-0.0'; } -} -function load$2(filePath, callback) { - var self = this; - var cache = self.cache; - var givenFilePath = self.givenFilePath; - var givenFile = self.givenFile; - var names = self.names; - var create = self.create; - var cwd = self.cwd; - var parent; - - if (givenFilePath) { - if (givenFile) { - apply(callback, givenFile); - } else { - givenFile = [callback]; - self.givenFile = givenFile; - debug('Checking given file `%s`', givenFilePath); - read$1(givenFilePath, loadGiven); - } + res = object.toString(10); - return - } + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack - if (!self.detect) { - return callback() - } + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} - filePath = resolve$1(cwd, filePath); - parent = dirname(filePath); +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common$4.isNegativeZero(object)); +} - if (parent in cache) { - apply(callback, cache[parent]); - } else { - cache[parent] = [callback]; - find(parent); - } +var float = new type$1('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); - function loadGiven(error, buf) { - var cbs = self.givenFile; - var result; +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); - if (error) { - result = fault_1( - 'Cannot read given file `%s`\n%s', - relative(cwd, givenFilePath), - error.stack - ); - result.code = 'ENOENT'; - result.path = error.path; - result.syscall = error.syscall; - } else { - try { - result = create(buf, givenFilePath); - debug('Read given file `%s`', givenFilePath); - } catch (error_) { - result = fault_1( - 'Cannot parse given file `%s`\n%s', - relative(cwd, givenFilePath), - error_.stack - ); - debug(error_.message); - } - } +var core = json; - givenFile = result; - self.givenFile = result; - applyAll(cbs, result); - } +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day - function find(directory) { - var index = -1; - var length = names.length; +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - next(); +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} - function next() { - var parent; +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; - // Try to read the next file. - // We do not use `readdir` because on huge directories, that could be - // *very* slow. - if (++index < length) { - read$1(join(directory, names[index]), done); - } else { - parent = dirname(directory); + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - if (directory === parent) { - debug('No files found for `%s`', filePath); - found(); - } else if (parent in cache) { - apply(found, cache[parent]); - } else { - cache[parent] = [found]; - find(parent); - } - } - } + if (match === null) throw new Error('Date resolve error'); - function done(error, buf) { - var name = names[index]; - var fp = join(directory, name); - var contents; + // match: [1] year [2] month [3] day - /* istanbul ignore if - Hard to test. */ - if (error) { - if (error.code === 'ENOENT') { - return next() - } + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); - error = fault_1( - 'Cannot read file `%s`\n%s', - relative(cwd, fp), - error.message - ); - debug(error.message); - return found(error) - } + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } - try { - contents = create(buf, fp); - } catch (error_) { - return found( - fault_1('Cannot parse file `%s`\n%s', relative(cwd, fp), error_.message) - ) - } + // match: [4] hour [5] minute [6] second [7] fraction - /* istanbul ignore else - maybe used in the future. */ - if (contents) { - debug('Read file `%s`', fp); - found(null, contents); - } else { - next(); - } - } + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); - function found(error, result) { - var cbs = cache[directory]; - cache[directory] = error || result; - applyAll(cbs, error || result); + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; } + fraction = +fraction; } - function applyAll(cbs, result) { - var index = cbs.length; + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - while (index--) { - apply(cbs[index], result); - } + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; } - function apply(cb, result) { - if ( - result !== null && - typeof result === 'object' && - typeof result[0] === 'function' - ) { - result.push(cb); - } else if (result instanceof Error) { - cb(result); - } else { - cb(null, result); - } - } -} + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); -var configuration = createCommonjsModule(function (module) { + return date; +} +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} +var timestamp = new type$1('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} +var merge$1 = new type$1('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); -var debug = src('unified-engine:configuration'); -var resolve = loadPlugin_1.resolve; +/*eslint-disable no-bitwise*/ -module.exports = Config; -var own = {}.hasOwnProperty; -var extname = path__default['default'].extname; -var basename = path__default['default'].basename; -var dirname = path__default['default'].dirname; -var relative = path__default['default'].relative; +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; -var loaders = { - '.json': loadJson, - '.js': loadScript, - '.yaml': loadYaml, - '.yml': loadYaml -}; -var defaultLoader = loadJson; +function resolveYamlBinary(data) { + if (data === null) return false; -Config.prototype.load = load; + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; -function Config(options) { - var rcName = options.rcName; - var packageField = options.packageField; - var names = []; + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); - this.cwd = options.cwd; - this.packageField = options.packageField; - this.pluginPrefix = options.pluginPrefix; - this.configTransform = options.configTransform; - this.defaultConfig = options.defaultConfig; + // Skip CR/LF + if (code > 64) continue; - if (rcName) { - names.push(rcName, rcName + '.js', rcName + '.yml', rcName + '.yaml'); - debug('Looking for `%s` configuration files', names); - } + // Fail on illegal characters + if (code < 0) return false; - if (packageField) { - names.push('package.json'); - debug('Looking for `%s` fields in `package.json` files', packageField); + bitlen += 6; } - this.given = {settings: options.settings, plugins: options.plugins}; - this.create = create.bind(this); - - this.findUp = new findUp$1({ - filePath: options.rcPath, - cwd: options.cwd, - detect: options.detectConfig, - names: names, - create: this.create - }); + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; } -function load(filePath, callback) { - var self = this; - var searchPath = filePath || path__default['default'].resolve(this.cwd, 'stdin.js'); +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; - self.findUp.load(searchPath, done); + // Collect by 6*4 bits (3 bytes) - function done(error, file) { - if (error || file) { - return callback(error, file) + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); } - callback(null, self.create()); + bits = (bits << 6) | map.indexOf(input.charAt(idx)); } -} -function create(buf, filePath) { - var self = this; - var transform = self.configTransform; - var defaults = self.defaultConfig; - var fn = (filePath && loaders[extname(filePath)]) || defaultLoader; - var options = {prefix: self.pluginPrefix, cwd: self.cwd}; - var result = {settings: {}, plugins: []}; - var contents = buf ? fn.apply(self, arguments) : undefined; + // Dump tail - if (transform && contents !== undefined) { - contents = transform(contents, filePath); - } + tailbits = (max % 4) * 6; - // Exit if we did find a `package.json`, but it does not have configuration. - if (buf && contents === undefined && basename(filePath) === 'package.json') { - return + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); } - if (contents === undefined) { - if (defaults) { - merge(result, defaults, Object.assign({}, options, {root: self.cwd})); + return new Uint8Array(result); +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; } - } else { - merge( - result, - contents, - Object.assign({}, options, {root: dirname(filePath)}) - ); - } - merge(result, self.given, Object.assign({}, options, {root: self.cwd})); + bits = (bits << 8) + object[idx]; + } - return result -} + // Dump tail -// Basically `Module.prototype.load`, but for a buffer instead of a file path. -function loadScript(buf, filePath) { - var submodule = Module__default['default']._cache[filePath]; + tail = max % 3; - if (!submodule) { - submodule = new Module__default['default'](filePath, module); - submodule.filename = filePath; - submodule.paths = Module__default['default']._nodeModulePaths(dirname(filePath)); - submodule._compile(String(buf), filePath); - submodule.loaded = true; - Module__default['default']._cache[filePath] = submodule; + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; } - return submodule.exports + return result; } -function loadYaml(buf, filePath) { - return jsYaml$1.safeLoad(buf, {filename: basename(filePath)}) +function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; } -function loadJson(buf, filePath) { - var result = parseJson$1(buf, filePath); - - if (basename(filePath) === 'package.json') { - result = result[this.packageField]; - } +var binary = new type$1('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); - return result -} +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; -function merge(target, raw, options) { - var root = options.root; - var cwd = options.cwd; - var prefix = options.prefix; +function resolveYamlOmap(data) { + if (data === null) return true; - if (typeof raw === 'object' && raw !== null) { - addPreset(raw); - } else { - throw new Error('Expected preset, not `' + raw + '`') - } + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; - return target + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; - function addPreset(result) { - var plugins = result.plugins; + if (_toString$2.call(pair) !== '[object Object]') return false; - if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && plugins !== null) { - if ('length' in plugins) { - addEach(plugins); - } else { - addIn(plugins); + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; } - } else { - throw new Error( - 'Expected a list or object of plugins, not `' + plugins + '`' - ) } - target.settings = Object.assign({}, target.settings, result.settings); + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; } - function addEach(result) { - var length = result.length; - var index = -1; - var value; + return true; +} - while (++index < length) { - value = result[index]; +function constructYamlOmap(data) { + return data !== null ? data : []; +} - if (value !== null && typeof value === 'object' && 'length' in value) { - use.apply(null, value); - } else { - use(value); - } - } - } +var omap = new type$1('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); - function addIn(result) { - var key; +var _toString$1 = Object.prototype.toString; - for (key in result) { - use(key, result[key]); - } - } +function resolveYamlPairs(data) { + if (data === null) return true; - function use(usable, value) { - if (typeof usable === 'string') { - addModule(usable, value); - } else if (typeof usable === 'function') { - addPlugin(usable, value); - } else { - merge(target, usable, options); - } - } + var index, length, pair, keys, result, + object = data; - function addModule(id, value) { - var fp = resolve(id, {cwd: root, prefix: prefix}); - var result; + result = new Array(object.length); - if (fp) { - try { - result = commonjsRequire(fp); - } catch (error) { - throw fault_1( - 'Cannot parse script `%s`\n%s', - relative(root, fp), - error.stack - ) - } + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; - try { - if (typeof result === 'function') { - addPlugin(result, value); - } else { - merge(target, result, Object.assign({}, options, {root: dirname(fp)})); - } - } catch (_) { - throw fault_1( - 'Error: Expected preset or plugin, not %s, at `%s`', - result, - relative(root, fp) - ) - } - } else { - fp = relative(cwd, path__default['default'].resolve(root, id)); - addPlugin( - failingModule(fp, new Error('Could not find module `' + id + '`')), - value - ); - } - } + if (_toString$1.call(pair) !== '[object Object]') return false; - function addPlugin(result, value) { - var entry = find(target.plugins, result); + keys = Object.keys(pair); - if (entry) { - reconfigure(entry, value); - } else { - target.plugins.push([result, value]); - } - } -} + if (keys.length !== 1) return false; -function reconfigure(entry, value) { - if (isPlainObj(entry[1]) && isPlainObj(value)) { - value = Object.assign({}, entry[1], value); + result[index] = [ keys[0], pair[keys[0]] ]; } - entry[1] = value; + return true; } -function find(entries, plugin) { - var length = entries.length; - var index = -1; - var entry; +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; - while (++index < length) { - entry = entries[index]; + result = new Array(object.length); - if (entry[0] === plugin) { - return entry - } - } -} + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; -function failingModule(id, error) { - var cache = failingModule.cache || (failingModule.cache = {}); - var submodule = own.call(cache, id) ? cache[id] : (cache[id] = fail); - return submodule - function fail() { - throw error + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; } + + return result; } + +var pairs = new type$1('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs }); -var configure_1 = configure; +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function configure(context, settings) { - context.configuration = new configuration(settings); -} +function resolveYamlSet(data) { + if (data === null) return true; -// A simple implementation of make-array -function makeArray (subject) { - return Array.isArray(subject) - ? subject - : [subject] -} + var key, object = data; -const EMPTY = ''; -const SPACE = ' '; -const ESCAPE = '\\'; -const REGEX_TEST_BLANK_LINE = /^\s+$/; -const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; -const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; -const REGEX_SPLITALL_CRLF = /\r?\n/g; -// /foo, -// ./foo, -// ../foo, -// . -// .. -const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) return false; + } + } -const SLASH = '/'; -const KEY_IGNORE = typeof Symbol !== 'undefined' - ? Symbol.for('node-ignore') - /* istanbul ignore next */ - : 'node-ignore'; + return true; +} -const define = (object, key, value) => - Object.defineProperty(object, key, {value}); +function constructYamlSet(data) { + return data !== null ? data : {}; +} -const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; +var set = new type$1('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); -// Sanitize the range of a regular expression -// The cases are complicated, see test cases for details -const sanitizeRange = range => range.replace( - REGEX_REGEXP_RANGE, - (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) - ? match - // Invalid range (out of order) which is ok for gitignore rules but - // fatal for JavaScript regular expression, so eliminate it. - : EMPTY -); +var _default$1 = core.extend({ + implicit: [ + timestamp, + merge$1 + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); -// See fixtures #59 -const cleanRangeBackSlash = slashes => { - const {length} = slashes; - return slashes.slice(0, length - length % 2) -}; +/*eslint-disable max-len,no-use-before-define*/ -// > If the pattern ends with a slash, -// > it is removed for the purpose of the following description, -// > but it would only find a match with a directory. -// > In other words, foo/ will match a directory foo and paths underneath it, -// > but will not match a regular file or a symbolic link foo -// > (this is consistent with the way how pathspec works in general in Git). -// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' -// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call -// you could use option `mark: true` with `glob` -// '`foo/`' should not continue with the '`..`' -const REPLACERS = [ - // > Trailing spaces are ignored unless they are quoted with backslash ("\") - [ - // (a\ ) -> (a ) - // (a ) -> (a) - // (a \ ) -> (a ) - /\\?\s+$/, - match => match.indexOf('\\') === 0 - ? SPACE - : EMPTY - ], - // replace (\ ) with ' ' - [ - /\\\s/g, - () => SPACE - ], - // Escape metacharacters - // which is written down by users but means special for regular expressions. - // > There are 12 characters with special meanings: - // > - the backslash \, - // > - the caret ^, - // > - the dollar sign $, - // > - the period or dot ., - // > - the vertical bar or pipe symbol |, - // > - the question mark ?, - // > - the asterisk or star *, - // > - the plus sign +, - // > - the opening parenthesis (, - // > - the closing parenthesis ), - // > - and the opening square bracket [, - // > - the opening curly brace {, - // > These special characters are often called "metacharacters". - [ - /[\\$.|*+(){^]/g, - match => `\\${match}` - ], - [ - // > a question mark (?) matches a single character - /(?!\\)\?/g, - () => '[^/]' - ], +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; - // leading slash - [ - // > A leading slash matches the beginning of the pathname. - // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". - // A leading slash matches the beginning of the pathname - /^\//, - () => '^' - ], +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; - // replace special metacharacter slash after the leading slash - [ - /\//g, - () => '\\/' - ], - [ - // > A leading "**" followed by a slash means match in all directories. - // > For example, "**/foo" matches file or directory "foo" anywhere, - // > the same as pattern "foo". - // > "**/foo/bar" matches file or directory "bar" anywhere that is directly - // > under directory "foo". - // Notice that the '*'s have been replaced as '\\*' - /^\^*\\\*\\\*\\\//, +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; - // '**/foo' <-> 'foo' - () => '^(?:.*\\/)?' - ], - // starting - [ - // there will be no leading '/' - // (which has been replaced by section "leading slash") - // If starts with '**', adding a '^' to the regular expression also works - /^(?=[^^])/, - function startingReplacer () { - // If has a slash `/` at the beginning or middle - return !/\/(?!$)/.test(this) - // > Prior to 2.22.1 - // > If the pattern does not contain a slash /, - // > Git treats it as a shell glob pattern - // Actually, if there is only a trailing slash, - // git also treats it as a shell glob pattern +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - // After 2.22.1 (compatible but clearer) - // > If there is a separator at the beginning or middle (or both) - // > of the pattern, then the pattern is relative to the directory - // > level of the particular .gitignore file itself. - // > Otherwise the pattern may also match at any level below - // > the .gitignore level. - ? '(?:^|\\/)' - // > Otherwise, Git treats the pattern as a shell glob suitable for - // > consumption by fnmatch(3) - : '^' - } - ], +function _class(obj) { return Object.prototype.toString.call(obj); } - // two globstars - [ - // Use lookahead assertions so that we could match more than one `'/**'` - /\\\/\\\*\\\*(?=\\\/|$)/g, +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} - // Zero, one or several directories - // should not use '*', or it will be replaced by the next replacer +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} - // Check if it is not the last `'/**'` - (_, index, str) => index + 6 < str.length +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} - // case: /**/ - // > A slash followed by two consecutive asterisks then a slash matches - // > zero or more directories. - // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. - // '/**/' - ? '(?:\\/[^\\/]+)*' +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} - // case: /** - // > A trailing `"/**"` matches everything inside. +function fromHexCode(c) { + var lc; - // #21: everything inside but it should not include the current folder - : '\\/.+' - ], + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } - // intermediate wildcards - [ - // Never replace escaped '*' - // ignore rule '\*' will match the path '*' + /*eslint-disable no-bitwise*/ + lc = c | 0x20; - // 'abc.*/' -> go - // 'abc.*' -> skip this rule - /(^|[^\\]+)\\\*(?=.+)/g, + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } - // '*.js' matches '.js' - // '*.js' doesn't match 'abc' - (_, p1) => `${p1}[^\\/]*` - ], + return -1; +} - [ - // unescape, revert step 3 except for back slash - // For example, if a user escape a '\\*', - // after step 3, the result will be '\\\\\\*' - /\\\\\\(?=[$.|*+(){^])/g, - () => ESCAPE - ], +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} - [ - // '\\\\' -> '\\' - /\\\\/g, - () => ESCAPE - ], +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } - [ - // > The range notation, e.g. [a-zA-Z], - // > can be used to match one of the characters in a range. + return -1; +} - // `\` is escaped by step 3 - /(\\)?\[([^\]/]*?)(\\*)($|\])/g, - (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE - // '\\[bar]' -> '\\\\[bar\\]' - ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` - : close === ']' - ? endEscape.length % 2 === 0 - // A normal case, and it is a range notation - // '[bar]' - // '[bar\\\\]' - ? `[${sanitizeRange(range)}${endEscape}]` - // Invalid range notaton - // '[bar\\]' -> '[bar\\\\]' - : '[]' - : '[]' - ], +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} - // ending - [ - // 'js' will not match 'js.' - // 'ab' will not match 'abc' - /(?:[^*])$/, +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} - // WTF! - // https://git-scm.com/docs/gitignore - // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) - // which re-fixes #24, #38 +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} - // > If there is a separator at the end of the pattern then the pattern - // > will only match directories, otherwise the pattern can match both - // > files and directories. - // 'js*' will not match 'a.js' - // 'js/' will not match 'a.js' - // 'js' will match 'a.js' and 'a.js/' - match => /\/$/.test(match) - // foo/ will not match 'foo' - ? `${match}$` - // foo matches 'foo' and 'foo/' - : `${match}(?=$|\\/$)` - ], +function State$1(input, options) { + this.input = input; - // trailing wildcard - [ - /(\^|\\\/)?\\\*$/, - (_, p1) => { - const prefix = p1 - // '\^': - // '/*' does not match EMPTY - // '/*' does not match everything + this.filename = options['filename'] || null; + this.schema = options['schema'] || _default$1; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; - // '\\\/': - // 'abc/*' does not match 'abc/' - ? `${p1}[^/]+` + this.json = options['json'] || false; + this.listener = options['listener'] || null; - // 'a*' matches 'a' - // 'a*' matches 'aa' - : '[^/]*'; + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; - return `${prefix}(?=$|\\/$)` - } - ], -]; + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; -// A simple cache, because an ignore rule only has only one certain meaning -const regexCache = Object.create(null); + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; -// @param {pattern} -const makeRegex = (pattern, negative, ignorecase) => { - const r = regexCache[pattern]; - if (r) { - return r - } + this.documents = []; - // const replacers = negative - // ? NEGATIVE_REPLACERS - // : POSITIVE_REPLACERS + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ - const source = REPLACERS.reduce( - (prev, current) => prev.replace(current[0], current[1].bind(pattern)), - pattern - ); +} - return regexCache[pattern] = ignorecase - ? new RegExp(source, 'i') - : new RegExp(source) -}; -const isString = subject => typeof subject === 'string'; +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; -// > A blank line matches no files, so it can serve as a separator for readability. -const checkPattern = pattern => pattern - && isString(pattern) - && !REGEX_TEST_BLANK_LINE.test(pattern) + mark.snippet = snippet(mark); - // > A line starting with # serves as a comment. - && pattern.indexOf('#') !== 0; + return new exception(message, mark); +} -const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF); +function throwError$1(state, message) { + throw generateError(state, message); +} -class IgnoreRule { - constructor ( - origin, - pattern, - negative, - regex - ) { - this.origin = origin; - this.pattern = pattern; - this.negative = negative; - this.regex = regex; +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); } } -const createRule = (pattern, ignorecase) => { - const origin = pattern; - let negative = false; - // > An optional prefix "!" which negates the pattern; - if (pattern.indexOf('!') === 0) { - negative = true; - pattern = pattern.substr(1); - } +var directiveHandlers = { - pattern = pattern - // > Put a backslash ("\") in front of the first "!" for patterns that - // > begin with a literal "!", for example, `"\!important!.txt"`. - .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') - // > Put a backslash ("\") in front of the first hash for patterns that - // > begin with a hash. - .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); + YAML: function handleYamlDirective(state, name, args) { - const regex = makeRegex(pattern, negative, ignorecase); + var match, major, minor; - return new IgnoreRule( - origin, - pattern, - negative, - regex - ) -}; + if (state.version !== null) { + throwError$1(state, 'duplication of %YAML directive'); + } -const throwError$1 = (message, Ctor) => { - throw new Ctor(message) -}; + if (args.length !== 1) { + throwError$1(state, 'YAML directive accepts exactly one argument'); + } -const checkPath = (path, originalPath, doThrow) => { - if (!isString(path)) { - return doThrow( - `path must be a string, but got \`${originalPath}\``, - TypeError - ) - } + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - // We don't know if we should ignore EMPTY, so throw - if (!path) { - return doThrow(`path must not be empty`, TypeError) - } + if (match === null) { + throwError$1(state, 'ill-formed argument of the YAML directive'); + } - // Check if it is a relative path - if (checkPath.isNotRelative(path)) { - const r = '`path.relative()`d'; - return doThrow( - `path should be a ${r} string, but got "${originalPath}"`, - RangeError - ) - } + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); - return true -}; + if (major !== 1) { + throwError$1(state, 'unacceptable YAML version of the document'); + } -const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path); + state.version = args[0]; + state.checkLineBreaks = (minor < 2); -checkPath.isNotRelative = isNotRelative; -checkPath.convert = p => p; + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, -class Ignore { - constructor ({ - ignorecase = true - } = {}) { - this._rules = []; - this._ignorecase = ignorecase; - define(this, KEY_IGNORE, true); - this._initCache(); - } + TAG: function handleTagDirective(state, name, args) { - _initCache () { - this._ignoreCache = Object.create(null); - this._testCache = Object.create(null); - } + var handle, prefix; - _addPattern (pattern) { - // #32 - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules); - this._added = true; - return + if (args.length !== 2) { + throwError$1(state, 'TAG directive accepts exactly two arguments'); } - if (checkPattern(pattern)) { - const rule = createRule(pattern, this._ignorecase); - this._added = true; - this._rules.push(rule); + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError$1(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError$1(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError$1(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError$1(state, 'tag prefix is malformed: ' + prefix); } + + state.tagMap[handle] = prefix; } +}; - // @param {Array | string | Ignore} pattern - add (pattern) { - this._added = false; - makeArray( - isString(pattern) - ? splitPattern(pattern) - : pattern - ).forEach(this._addPattern, this); +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; - // Some rules have just added to the ignore, - // making the behavior changed. - if (this._added) { - this._initCache(); + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError$1(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError$1(state, 'the stream contains non-printable characters'); } - return this + state.result += _result; } +} - // legacy - addPattern (pattern) { - return this.add(pattern) +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common$4.isObject(source)) { + throwError$1(state, 'cannot merge mappings; the provided source object is unacceptable'); } - // | ignored : unignored - // negative | 0:0 | 0:1 | 1:0 | 1:1 - // -------- | ------- | ------- | ------- | -------- - // 0 | TEST | TEST | SKIP | X - // 1 | TESTIF | SKIP | TEST | X + sourceKeys = Object.keys(source); - // - SKIP: always skip - // - TEST: always test - // - TESTIF: only test if checkUnignored - // - X: that never happen + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; - // @param {boolean} whether should check if the path is unignored, - // setting `checkUnignored` to `false` could reduce additional - // path matching. + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} - // @returns {TestResult} true if a file is ignored - _testOne (path, checkUnignored) { - let ignored = false; - let unignored = false; +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { - this._rules.forEach(rule => { - const {negative} = rule; - if ( - unignored === negative && ignored !== unignored - || negative && !ignored && !unignored && !checkUnignored - ) { - return - } + var index, quantity; - const matched = rule.regex.test(path); + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); - if (matched) { - ignored = !negative; - unignored = negative; + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError$1(state, 'nested arrays are not supported inside keys'); } - }); - return { - ignored, - unignored + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } } } - // @returns {TestResult} - _test (originalPath, cache, checkUnignored, slices) { - const path = originalPath - // Supports nullable path - && checkPath.convert(originalPath); + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } - checkPath(path, originalPath, throwError$1); - return this._t(path, cache, checkUnignored, slices) + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; } - _t (path, cache, checkUnignored, slices) { - if (path in cache) { - return cache[path] + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); } - - if (!slices) { - // path/to/a.js - // ['path', 'to', 'a.js'] - slices = path.split(SLASH); + } else { + if (!state.json && + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError$1(state, 'duplicated mapping key'); } - slices.pop(); - - // If the path has no parent directory, just test it - if (!slices.length) { - return cache[path] = this._testOne(path, checkUnignored) + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; } - - const parent = this._t( - slices.join(SLASH) + SLASH, - cache, - checkUnignored, - slices - ); - - // If the path contains a parent directory, check the parent first - return cache[path] = parent.ignored - // > It is not possible to re-include a file if a parent directory of - // > that file is excluded. - ? parent - : this._testOne(path, checkUnignored) + delete overridableKeys[keyNode]; } - ignores (path) { - return this._test(path, this._ignoreCache, false).ignored - } + return _result; +} - createFilter () { - return path => !this.ignores(path) - } +function readLineBreak(state) { + var ch; - filter (paths) { - return makeArray(paths).filter(this.createFilter()) - } + ch = state.input.charCodeAt(state.position); - // @returns {TestResult} - test (path) { - return this._test(path, this._testCache, true) + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError$1(state, 'a line break is expected'); } -} -const factory = options => new Ignore(options); + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} -const returnFalse = () => false; +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); -const isPathValid = path => - checkPath(path && checkPath.convert(path), path, returnFalse); + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } -factory.isPathValid = isPathValid; + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } -// Fixes typescript -factory.default = factory; + if (is_EOL(ch)) { + readLineBreak(state); -var ignore = factory; + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; -// Windows -// -------------------------------------------------------------- -/* istanbul ignore if */ -if ( - // Detect `process` so that it can run in browsers. - typeof process !== 'undefined' - && ( - process.env && process.env.IGNORE_TEST_WIN32 - || process.platform === 'win32' - ) -) { - /* eslint no-control-regex: "off" */ - const makePosix = str => /^\\\\\?\\/.test(str) - || /["<>|\u0000-\u001F]+/u.test(str) - ? str - : str.replace(/\\/g, '/'); + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } - checkPath.convert = makePosix; + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } - // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' - // 'd:\\foo' - const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; - checkPath.isNotRelative = path => - REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) - || isNotRelative(path); + return lineBreaks; } -var ignore$1 = Ignore$1; +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { -Ignore$1.prototype.check = check; + _position += 3; -var sep = path__default['default'].sep; -var dirname$1 = path__default['default'].dirname; -var relative$1 = path__default['default'].relative; -var resolve$2 = path__default['default'].resolve; + ch = state.input.charCodeAt(_position); -function Ignore$1(options) { - this.cwd = options.cwd; - this.ignorePathResolveFrom = options.ignorePathResolveFrom; + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } - this.findUp = new findUp$1({ - filePath: options.ignorePath, - cwd: options.cwd, - detect: options.detectIgnore, - names: options.ignoreName ? [options.ignoreName] : [], - create: create$1 - }); + return false; } -function check(filePath, callback) { - var self = this; +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common$4.repeat('\n', count - 1); + } +} - self.findUp.load(filePath, done); - function done(error, ignore) { - var normal; +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; - if (error) { - callback(error); - } else if (ignore) { - normal = relative$1( - resolve$2( - self.cwd, - self.ignorePathResolveFrom === 'cwd' ? '.' : ignore.filePath - ), - resolve$2(self.cwd, filePath) - ); + ch = state.input.charCodeAt(state.position); - if ( - normal === '' || - normal === '..' || - normal.charAt(0) === sep || - normal.slice(0, 3) === '..' + sep - ) { - callback(null, false); - } else { - callback(null, ignore.ignores(normal)); - } - } else { - callback(null, false); - } + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; } -} -function create$1(buf, filePath) { - var ignore$1 = ignore().add(String(buf)); - ignore$1.filePath = dirname$1(filePath); - return ignore$1 -} - -// 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. + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } -var isWindows = process.platform === 'win32'; + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); -// JavaScript implementation of realpath, ported from node pre-v6 + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; + if (is_WS_OR_EOL(preceding)) { + break; + } - return callback; + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; } } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); } -} -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} + captureSegment(state, captureStart, captureEnd, false); -var normalize = path__default['default'].normalize; + if (state.result) { + return true; + } -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; + state.kind = _kind; + state.result = _result; + return false; } -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; -var realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = path__default['default'].resolve(p); + ch = state.input.charCodeAt(state.position); - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; + if (ch !== 0x27/* ' */) { + return false; } - var original = p, - seenLinks = {}, - knownHard = {}; + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); - start(); + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs__default['default'].lstatSync(base); - knownHard[base] = true; + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError$1(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; } } - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } + throwError$1(state, 'unexpected end of the stream within a single quoted scalar'); +} - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs__default['default'].lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs__default['default'].statSync(base); - linkTarget = fs__default['default'].readlinkSync(base); - } - resolvedLink = path__default['default'].resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } + ch = state.input.charCodeAt(state.position); - // resolve the link, then start over - p = path__default['default'].resolve(resolvedLink, p.slice(pos)); - start(); + if (ch !== 0x22/* " */) { + return false; } - if (cache) cache[original] = p; + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; - return p; -}; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); -var realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); - // make p is absolute - p = path__default['default'].resolve(p); + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; - var original = p, - seenLinks = {}, - knownHard = {}; + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; - start(); + } else { + throwError$1(state, 'expected hexadecimal character'); + } + } - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; + state.result += charFromCodepoint(hexResult); - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs__default['default'].lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } + state.position++; - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } + } else { + throwError$1(state, 'unknown escape sequence'); + } - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; + captureStart = captureEnd = state.position; - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError$1(state, 'unexpected end of the document within a double quoted scalar'); - return fs__default['default'].lstat(base, gotStat); + } else { + state.position++; + captureEnd = state.position; + } } - function gotStat(err, stat) { - if (err) return cb(err); + throwError$1(state, 'unexpected end of the stream within a double quoted scalar'); +} - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs__default['default'].stat(base, function(err) { - if (err) return cb(err); + ch = state.input.charCodeAt(state.position); - fs__default['default'].readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; } - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = path__default['default'].resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; } - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = path__default['default'].resolve(resolvedLink, p.slice(pos)); - start(); - } -}; + ch = state.input.charCodeAt(++state.position); -var old = { - realpathSync: realpathSync, - realpath: realpath -}; + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); -var fs_realpath = realpath$1; -realpath$1.realpath = realpath$1; -realpath$1.sync = realpathSync$1; -realpath$1.realpathSync = realpathSync$1; -realpath$1.monkeypatch = monkeypatch; -realpath$1.unmonkeypatch = unmonkeypatch; + ch = state.input.charCodeAt(state.position); + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError$1(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError$1(state, "expected the node content, but found ','"); + } -var origRealpath = fs__default['default'].realpath; -var origRealpathSync = fs__default['default'].realpathSync; + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; -var version = process.version; -var ok = /^v[0-5]\./.test(version); + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); -function realpath$1 (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } + ch = state.input.charCodeAt(state.position); - if (typeof cache === 'function') { - cb = cache; - cache = null; - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb); - } else { - cb(er, result); + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; } - }); -} - -function realpathSync$1 (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); } else { - throw er + _result.push(keyNode); } - } -} -function monkeypatch () { - fs__default['default'].realpath = realpath$1; - fs__default['default'].realpathSync = realpathSync$1; -} + skipSeparationSpace(state, true, nodeIndent); -function unmonkeypatch () { - fs__default['default'].realpath = origRealpath; - fs__default['default'].realpathSync = origRealpathSync; -} + ch = state.input.charCodeAt(state.position); -var concatMap = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; + } -var balancedMatch = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); + throwError$1(state, 'unexpected end of the stream within a flow collection'); +} - var r = range(a, b, str); +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} + ch = state.input.charCodeAt(state.position); -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; + state.kind = 'scalar'; + state.result = ''; - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } + throwError$1(state, 'repeat of a chomping mode identifier'); + } - bi = str.indexOf(b, i + 1); + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError$1(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError$1(state, 'repeat of an indentation width identifier'); } - i = ai < bi && ai >= 0 ? ai : bi; + } else { + break; } + } - if (begs.length) { - result = [ left, right ]; + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); } } - return result; -} + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; -var braceExpansion = expandTop; + ch = state.input.charCodeAt(state.position); -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} + if (is_EOL(ch)) { + emptyLines++; + continue; + } -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} + // End of the scalar. + if (state.lineIndent < textIndent) { + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common$4.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; + // Break this `while` cycle and go to the funciton's epilogue. + break; + } - var parts = []; - var m = balancedMatch('{', '}', str); + // Folded style: use fancy rules to handle line breaks. + if (folding) { - if (!m) - return str.split(','); + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common$4.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common$4.repeat('\n', emptyLines + 1); - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } - parts.push.apply(parts, p); + // Several line breaks - perceive as different lines. + } else { + state.result += common$4.repeat('\n', emptyLines); + } - return parts; -} + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common$4.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } -function expandTop(str) { - if (!str) - return []; + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); } - return expand(escapeBraces(str), true).map(unescapeBraces); + return true; } -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; -function expand(str, isTop) { - var expansions = []; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } - var m = balancedMatch('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; + ch = state.input.charCodeAt(state.position); - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError$1(state, 'tab characters must not be used in indentation'); } - return [str]; - } - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } + if (ch !== 0x2D/* - */) { + break; } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - var N; + following = state.input.charCodeAt(state.position + 1); - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length); - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; + if (!is_WS_OR_EOL(following)) { + break; } - var pad = n.some(isPadded); - N = []; + detected = true; + state.position++; - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; } - N.push(c); } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError$1(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; } } - return expansions; + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; } -var minimatch_1 = minimatch; -minimatch.Minimatch = Minimatch; +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; -var path = { sep: '/' }; -try { - path = path__default['default']; -} catch (er) {} + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + ch = state.input.charCodeAt(state.position); -var plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' } -}; + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError$1(state, 'tab characters must not be used in indentation'); + } -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]'; + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. -// * => any number of characters -var star = qmark + '*?'; + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'; + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'; + detected = true; + atExplicitKey = true; + allowCompact = true; -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!'); + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true; - return set - }, {}) -} + } else { + throwError$1(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } -// normalizes slashes. -var slashSplit = /\/+/; + state.position += 1; + ch = following; -minimatch.filter = filter; -function filter (pattern, options) { - options = options || {}; - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; -function ext (a, b) { - a = a || {}; - b = b || {}; - var t = {}; - Object.keys(b).forEach(function (k) { - t[k] = b[k]; - }); - Object.keys(a).forEach(function (k) { - t[k] = a[k]; - }); - return t -} + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); - var orig = minimatch; + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - }; + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - }; + if (!is_WS_OR_EOL(ch)) { + throwError$1(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } - return m -}; + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -}; + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + } else if (detected) { + throwError$1(state, 'can not read an implicit mapping pair; a colon is missed'); - if (!options) options = {}; + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } + } else if (detected) { + throwError$1(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - // "" only matches "" - if (pattern.trim() === '') return p === '' + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } - return new Minimatch(pattern, options).match(p) -} + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError$1(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } } - if (!options) options = {}; - pattern = pattern.trim(); + // + // Epilogue. + // - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/'); + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); } - this.options = options; - this.set = []; - this.pattern = pattern; - this.regexp = null; - this.negate = false; - this.comment = false; - this.empty = false; + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } - // make the set of regexps etc. - this.make(); + return detected; } -Minimatch.prototype.debug = function () {}; +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; -Minimatch.prototype.make = make; -function make () { - // don't do it more than once. - if (this._made) return + ch = state.input.charCodeAt(state.position); - var pattern = this.pattern; - var options = this.options; + if (ch !== 0x21/* ! */) return false; - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true; - return - } - if (!pattern) { - this.empty = true; - return + if (state.tag !== null) { + throwError$1(state, 'duplication of a tag property'); } - // step 1: figure out negation, etc. - this.parseNegate(); - - // step 2: expand braces - var set = this.globSet = this.braceExpand(); + ch = state.input.charCodeAt(++state.position); - if (options.debug) this.debug = console.error; + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); - this.debug(this.pattern, set); + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }); + } else { + tagHandle = '!'; + } - this.debug(this.pattern, set); + _position = state.position; - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this); + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); - this.debug(this.pattern, set); + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError$1(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }); + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); - this.debug(this.pattern, set); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError$1(state, 'named tag handle cannot contain such characters'); + } - this.set = set; -} + isNamed = true; + _position = state.position + 1; + } else { + throwError$1(state, 'tag suffix cannot contain exclamation marks'); + } + } -Minimatch.prototype.parseNegate = parseNegate; -function parseNegate () { - var pattern = this.pattern; - var negate = false; - var options = this.options; - var negateOffset = 0; + ch = state.input.charCodeAt(++state.position); + } - if (options.nonegate) return + tagName = state.input.slice(_position, state.position); - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate; - negateOffset++; + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError$1(state, 'tag suffix cannot contain flow indicator characters'); + } } - if (negateOffset) this.pattern = pattern.substr(negateOffset); - this.negate = negate; -} + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError$1(state, 'tag name cannot contain such characters: ' + tagName); + } -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -}; + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError$1(state, 'tag name is malformed: ' + tagName); + } -Minimatch.prototype.braceExpand = braceExpand; + if (isVerbatim) { + state.tag = tagName; -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options; - } else { - options = {}; - } - } + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern; + } else if (tagHandle === '!') { + state.tag = '!' + tagName; - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] + } else { + throwError$1(state, 'undeclared tag handle "' + tagHandle + '"'); } - return braceExpansion(pattern) + return true; } -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse$2; -var SUBPARSE = {}; -function parse$2 (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options; +function readAnchorProperty(state) { + var _position, + ch; - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' + ch = state.input.charCodeAt(state.position); - var re = ''; - var hasMagic = !!options.nocase; - var escaping = false; - // ? => one single character - var patternListStack = []; - var negativeLists = []; - var stateChar; - var inClass = false; - var reClassStart = -1; - var classStart = -1; - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)'; - var self = this; + if (ch !== 0x26/* & */) return false; - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star; - hasMagic = true; - break - case '?': - re += qmark; - hasMagic = true; - break - default: - re += '\\' + stateChar; - break - } - self.debug('clearStateChar %j %j', stateChar, re); - stateChar = false; - } + if (state.anchor !== null) { + throwError$1(state, 'duplication of an anchor property'); } - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c); - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c; - escaping = false; - continue - } + ch = state.input.charCodeAt(++state.position); + _position = state.position; - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } - case '\\': - clearStateChar(); - escaping = true; - continue + if (state.position === _position) { + throwError$1(state, 'name of an anchor node must contain at least one character'); + } - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c); + state.anchor = state.input.slice(_position, state.position); + return true; +} - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class'); - if (c === '!' && i === classStart + 1) c = '^'; - re += c; - continue - } +function readAlias(state) { + var _position, alias, + ch; - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar); - clearStateChar(); - stateChar = c; - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar(); - continue + ch = state.input.charCodeAt(state.position); - case '(': - if (inClass) { - re += '('; - continue - } + if (ch !== 0x2A/* * */) return false; - if (!stateChar) { - re += '\\('; - continue - } + ch = state.input.charCodeAt(++state.position); + _position = state.position; - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }); - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:'; - this.debug('plType %j %j', stateChar, re); - stateChar = false; - continue + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } - case ')': - if (inClass || !patternListStack.length) { - re += '\\)'; - continue - } + if (state.position === _position) { + throwError$1(state, 'name of an alias node must contain at least one character'); + } - clearStateChar(); - hasMagic = true; - var pl = patternListStack.pop(); - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close; - if (pl.type === '!') { - negativeLists.push(pl); - } - pl.reEnd = re.length; - continue + alias = state.input.slice(_position, state.position); - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|'; - escaping = false; - continue - } + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError$1(state, 'unidentified alias "' + alias + '"'); + } - clearStateChar(); - re += '|'; - continue + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar(); +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } - default: - // swallow any state char that wasn't consumed - clearStateChar(); + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; - if (escaping) { - // no need - escaping = false; - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\'; + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; } + } else { + allowBlockCollections = false; + } + } + } - re += c; + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } - } // switch - } // for + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1); - sp = this.parse(cs, SUBPARSE); - re = re.substr(0, reClassStart) + '\\[' + sp[0]; - hasMagic = hasMagic || sp[1]; - } + blockIndent = state.position - state.lineStart; - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length); - this.debug('setting tail', re, pl); - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\'; - } + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }); + } else if (readAlias(state)) { + hasContent = true; - this.debug('tail=%j\n %s', tail, tail, pl, re); - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type; + if (state.tag !== null || state.anchor !== null) { + throwError$1(state, 'alias node should not have any properties'); + } - hasMagic = true; - re = re.slice(0, pl.reStart) + t + '\\(' + tail; - } + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; - // handle trailing things that only matter at the very end. - clearStateChar(); - if (escaping) { - // trailing \\ - re += '\\\\'; - } + if (state.tag === null) { + state.tag = '?'; + } + } - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false; - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } } - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n]; + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } - var nlBefore = re.slice(0, nl.reStart); - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8); - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd); - var nlAfter = re.slice(nl.reEnd); + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError$1(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } - nlLast += nlAfter; + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1; - var cleanAfter = nlAfter; - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, ''); + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } } - nlAfter = cleanAfter; + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; - var dollar = ''; - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$'; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; - re = newRe; - } - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re; - } + if (!type) { + throwError$1(state, 'unknown tag !<' + state.tag + '>'); + } - if (addPatternStart) { - re = patternStart + re; - } + if (state.result !== null && type.kind !== state.kind) { + throwError$1(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError$1(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } } - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) + if (state.listener !== null) { + state.listener('close', state); } + return state.tag !== null || state.anchor !== null || hasContent; +} - var flags = options.nocase ? 'i' : ''; - try { - var regExp = new RegExp('^' + re + '$', flags); - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; - regExp._glob = pattern; - regExp._src = re; + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); - return regExp -} + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -}; + ch = state.input.charCodeAt(state.position); -Minimatch.prototype.makeRe = makeRe; -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set; + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; - if (!set.length) { - this.regexp = false; - return this.regexp - } - var options = this.options; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot; - var flags = options.nocase ? 'i' : ''; + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|'); + if (directiveName.length < 1) { + throwError$1(state, 'directive name must not be less than one character in length'); + } - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$'; + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$'; + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } - try { - this.regexp = new RegExp(re, flags); - } catch (ex) { - this.regexp = false; - } - return this.regexp -} + if (is_EOL(ch)) break; -minimatch.match = function (list, pattern, options) { - options = options || {}; - var mm = new Minimatch(pattern, options); - list = list.filter(function (f) { - return mm.match(f) - }); - if (mm.options.nonull && !list.length) { - list.push(pattern); - } - return list -}; + _position = state.position; -Minimatch.prototype.match = match; -function match (f, partial) { - this.debug('match', f, this.pattern); - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } - if (f === '/' && partial) return true + directiveArgs.push(state.input.slice(_position, state.position)); + } - var options = this.options; + if (ch !== 0) readLineBreak(state); - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/'); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } } - // treat the test path as a set of pathparts. - f = f.split(slashSplit); - this.debug(this.pattern, 'split', f); + skipSeparationSpace(state, true, -1); - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); - var set = this.set; - this.debug(this.pattern, 'set', set); + } else if (hasDirectives) { + throwError$1(state, 'directives end mark is expected'); + } - // Find the basename of the path by looking for the last non-empty segment - var filename; - var i; - for (i = f.length - 1; i >= 0; i--) { - filename = f[i]; - if (filename) break + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); } - for (i = 0; i < set.length; i++) { - var pattern = set[i]; - var file = f; - if (options.matchBase && pattern.length === 1) { - file = [filename]; - } - var hit = this.matchOne(file, pattern, partial); - if (hit) { - if (options.flipNegate) return true - return !this.negate + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); } + return; } - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate + if (state.position < (state.length - 1)) { + throwError$1(state, 'end of the stream or a document separator is expected'); + } else { + return; + } } -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options; - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }); - this.debug('matchOne', file.length, pattern.length); +function loadDocuments(input, options) { + input = String(input); + options = options || {}; - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop'); - var p = pattern[pi]; - var f = file[fi]; + if (input.length !== 0) { - this.debug(pattern, p, f); + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]); + var state = new State$1(input, options); - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi; - var pr = pi + 1; - if (pr === pl) { - this.debug('** at the end'); - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } + var nullpos = input.indexOf('\0'); - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr]; + if (nullpos !== -1) { + state.position = nullpos; + throwError$1(state, 'null byte is not allowed in input'); + } - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee); - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr); - break - } + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue'); - fr++; - } - } + while (state.position < (state.length - 1)) { + readDocument(state); + } - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr); - if (fr === fl) return true - } - return false - } + return state.documents; +} - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit; - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase(); - } else { - hit = f === p; - } - this.debug('string match', p, f, hit); - } else { - hit = f.match(p); - this.debug('pattern match', p, f, hit); - } - if (!hit) return false +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; } - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* + var documents = loadDocuments(input, options); - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === ''); - return emptyFileEnd + if (typeof iterator !== 'function') { + return documents; } - // should be unreachable. - throw new Error('wtf?') -}; - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - -var inherits_browser = createCommonjsModule(function (module) { -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function () {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - }; + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } } -}); -var inherits = createCommonjsModule(function (module) { -try { - var util = util__default['default']; - /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - /* istanbul ignore next */ - module.exports = inherits_browser; -} -}); -function posix(path) { - return path.charAt(0) === '/'; +function load$1(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception('expected a single document in the stream, but found more'); } -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} +var loadAll_1 = loadAll$1; +var load_1 = load$1; -var pathIsAbsolute = process.platform === 'win32' ? win32 : posix; -var posix_1 = posix; -var win32_1 = win32; -pathIsAbsolute.posix = posix_1; -pathIsAbsolute.win32 = win32_1; +var loader = { + loadAll: loadAll_1, + load: load_1 +}; -var alphasort_1 = alphasort; -var alphasorti_1 = alphasorti; -var setopts_1 = setopts; -var ownProp_1 = ownProp; -var makeAbs_1 = makeAbs; -var finish_1 = finish; -var mark_1 = mark$1; -var isIgnored_1 = isIgnored; -var childrenIgnored_1 = childrenIgnored; +/*eslint-disable no-use-before-define*/ -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} -var Minimatch$1 = minimatch_1.Minimatch; +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} +var CHAR_BOM = 0xFEFF; +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_EQUALS = 0x3D; /* = */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ -function alphasort (a, b) { - return a.localeCompare(b) -} +var ESCAPE_SEQUENCES = {}; -function setupIgnores (self, options) { - self.ignore = options.ignore || []; +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore]; +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap); - } -} +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null; - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, ''); - gmatcher = new Minimatch$1(gpattern, { dot: true }); - } +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; - return { - matcher: new Minimatch$1(pattern, { dot: true }), - gmatcher: gmatcher - } -} + if (map === null) return {}; -function setopts (self, pattern, options) { - if (!options) - options = {}; + result = {}; + keys = Object.keys(map); - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); } - pattern = "**/" + pattern; + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; } - self.silent = !!options.silent; - self.pattern = pattern; - self.strict = options.strict !== false; - self.realpath = !!options.realpath; - self.realpathCache = options.realpathCache || Object.create(null); - self.follow = !!options.follow; - self.dot = !!options.dot; - self.mark = !!options.mark; - self.nodir = !!options.nodir; - if (self.nodir) - self.mark = true; - self.sync = !!options.sync; - self.nounique = !!options.nounique; - self.nonull = !!options.nonull; - self.nosort = !!options.nosort; - self.nocase = !!options.nocase; - self.stat = !!options.stat; - self.noprocess = !!options.noprocess; - self.absolute = !!options.absolute; + return result; +} - self.maxLength = options.maxLength || Infinity; - self.cache = options.cache || Object.create(null); - self.statCache = options.statCache || Object.create(null); - self.symlinks = options.symlinks || Object.create(null); +function encodeHex(character) { + var string, handle, length; - setupIgnores(self, options); + string = character.toString(16).toUpperCase(); - self.changedCwd = false; - var cwd = process.cwd(); - if (!ownProp(options, "cwd")) - self.cwd = cwd; - else { - self.cwd = path__default['default'].resolve(options.cwd); - self.changedCwd = self.cwd !== cwd; + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); } - self.root = options.root || path__default['default'].resolve(self.cwd, "/"); - self.root = path__default['default'].resolve(self.root); - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/"); + return '\\' + handle + common$4.repeat('0', length - string.length) + string; +} - // TODO: is an absolute `cwd` supposed to be resolved against `root`? - // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = pathIsAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd); - if (process.platform === "win32") - self.cwdAbs = self.cwdAbs.replace(/\\/g, "/"); - self.nomount = !!options.nomount; - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true; - options.nocomment = true; +var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; - self.minimatch = new Minimatch$1(pattern, options); - self.options = self.minimatch.options; +function State(options) { + this.schema = options['schema'] || _default$1; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common$4.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; } -function finish (self) { - var nou = self.nounique; - var all = nou ? [] : Object.create(null); +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common$4.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i]; - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i]; - if (nou) - all.push(literal); - else - all[literal] = true; - } + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; } else { - // had matches - var m = Object.keys(matches); - if (nou) - all.push.apply(all, m); - else - m.forEach(function (m) { - all[m] = true; - }); + line = string.slice(position, next + 1); + position = next + 1; } + + if (line.length && line !== '\n') result += ind; + + result += line; } - if (!nou) - all = Object.keys(all); + return result; +} - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort); +function generateNextLine(state, level) { + return '\n' + common$4.repeat(' ', state.indent * level); +} - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]); - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)); - var c = self.cache[e] || self.cache[makeAbs(self, e)]; - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c); - return notDir - }); +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; } } - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }); + return false; +} - self.found = all; +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; } -function mark$1 (self, p) { - var abs = makeAbs(self, p); - var c = self.cache[abs]; - var m = p; - if (c) { - var isDir = c === 'DIR' || Array.isArray(c); - var slash = p.slice(-1) === '/'; +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); +} - if (isDir && !slash) - m += '/'; - else if (!isDir && slash) - m = m.slice(0, -1); +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// Including s-white (for some reason, examples doesn't match specs in this aspect) +// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark +function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} - if (m !== p) { - var mabs = makeAbs(self, m); - self.statCache[mabs] = self.statCache[abs]; - self.cache[mabs] = self.cache[abs]; +// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out +// c = flow-in ⇒ ns-plain-safe-in +// c = block-key ⇒ ns-plain-safe-out +// c = flow-key ⇒ ns-plain-safe-in +// [128] ns-plain-safe-out ::= ns-char +// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator +// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) +// | ( /* An ns-char preceding */ “#” ) +// | ( “:” /* Followed by an ns-plain-safe(c) */ ) +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Simplified test for values allowed as the last character in plain style. +function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; +} + +// Same as 'string'.codePointAt(pos), but works in older browsers. +function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; } } + return first; +} - return m +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); } -// lotta situps... -function makeAbs (self, f) { - var abs = f; - if (f.charAt(0) === '/') { - abs = path__default['default'].join(self.root, f); - } else if (pathIsAbsolute(f) || f === '') { - abs = f; - } else if (self.changedCwd) { - abs = path__default['default'].resolve(self.cwd, f); +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } } else { - abs = path__default['default'].resolve(f); + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/'); +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { - return abs + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); + } + }()); } +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) + return indentIndicator + chomp + '\n'; } -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; } -var common$2 = { - alphasort: alphasort_1, - alphasorti: alphasorti_1, - setopts: setopts_1, - ownProp: ownProp_1, - makeAbs: makeAbs_1, - finish: finish_1, - mark: mark_1, - isIgnored: isIgnored_1, - childrenIgnored: childrenIgnored_1 -}; +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; -var sync$3 = globSync; -globSync.GlobSync = GlobSync; -var setopts$1 = common$2.setopts; -var ownProp$1 = common$2.ownProp; -var childrenIgnored$1 = common$2.childrenIgnored; -var isIgnored$1 = common$2.isIgnored; + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } - return new GlobSync(pattern, options).found + return result; } -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts$1(this, pattern, options); +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; - if (this.noprocess) - return this + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; - var n = this.minimatch.set.length; - this.matches = new Array(n); - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false); + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; } - this._finish(); -} -GlobSync.prototype._finish = function () { - assert__default['default'](this instanceof GlobSync); - if (this.realpath) { - var self = this; - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null); - for (var p in matchset) { - try { - p = self._makeAbs(p); - var real = fs_realpath.realpathSync(p, self.realpathCache); - set[real] = true; - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true; - else - throw er - } - } - }); + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); } - common$2.finish(this); -}; - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert__default['default'](this instanceof GlobSync); - - // Get the first [n] parts of pattern that are all strings. - var n = 0; - while (typeof pattern[n] === 'string') { - n ++; - } - // now n is the index of the first one that is *not* a string. + return result.slice(1); // drop extra \n joiner +} - // See if there's anything else - var prefix; - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index); - return +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null; - break + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/'); - break + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } } - var remain = pattern.slice(n); + return result; +} - // get the list of entries. - var read; - if (prefix === null) - read = '.'; - else if (pathIsAbsolute(prefix) || pathIsAbsolute(pattern.join('/'))) { - if (!prefix || !pathIsAbsolute(prefix)) - prefix = '/' + prefix; - read = prefix; - } else - read = prefix; +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; - var abs = this._makeAbs(read); + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; - //if ignored, skip processing - if (childrenIgnored$1(this, read)) - return + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } - var isGlobStar = remain[0] === minimatch_1.GLOBSTAR; - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar); - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar); -}; + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar); + state.tag = _tag; + state.dump = '[' + _result + ']'; +} - // if the abs isn't a dir, then nothing can match! - if (!entries) - return +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0]; - var negate = !!this.minimatch.negate; - var rawGlob = pn._glob; - var dotOk = this.dot || rawGlob.charAt(0) === '.'; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; - var matchedEntries = []; - for (var i = 0; i < entries.length; i++) { - var e = entries[i]; - if (e.charAt(0) !== '.' || dotOk) { - var m; - if (negate && !prefix) { - m = !e.match(pn); - } else { - m = e.match(pn); - } - if (m) - matchedEntries.push(e); + if (state.replacer) { + value = state.replacer.call(object, String(index), value); } - } - - var len = matchedEntries.length; - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null); + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i]; - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e; - else - e = prefix + e; + if (!compact || _result !== '') { + _result += generateNextLine(state, level); } - if (e.charAt(0) === '/' && !this.nomount) { - e = path__default['default'].join(this.root, e); + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; } - this._emitMatch(index, e); - } - // This was the last one, and no stats were needed - return - } - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift(); - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i]; - var newPattern; - if (prefix) - newPattern = [prefix, e]; - else - newPattern = [e]; - this._process(newPattern.concat(remain), index, inGlobStar); + _result += state.dump; + } } -}; + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} -GlobSync.prototype._emitMatch = function (index, e) { - if (isIgnored$1(this, e)) - return - - var abs = this._makeAbs(e); +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; - if (this.mark) - e = this._mark(e); + for (index = 0, length = objectKeyList.length; index < length; index += 1) { - if (this.absolute) { - e = abs; - } + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; - if (this.matches[index][e]) - return + if (state.condenseFlow) pairBuffer += '"'; - if (this.nodir) { - var c = this.cache[abs]; - if (c === 'DIR' || Array.isArray(c)) - return - } + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; - this.matches[index][e] = true; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } - if (this.stat) - this._stat(e); -}; + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + if (state.dump.length > 1024) pairBuffer += '? '; -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - var entries; - var lstat; - try { - lstat = fs__default['default'].lstatSync(abs); - } catch (er) { - if (er.code === 'ENOENT') { - // lstat failed, doesn't exist - return null + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. } - } - var isSym = lstat && lstat.isSymbolicLink(); - this.symlinks[abs] = isSym; + pairBuffer += state.dump; - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) - this.cache[abs] = 'FILE'; - else - entries = this._readdir(abs, false); + // Both key and value are valid. + _result += pairBuffer; + } - return entries -}; + state.tag = _tag; + state.dump = '{' + _result + '}'; +} -GlobSync.prototype._readdir = function (abs, inGlobStar) { +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; - if (inGlobStar && !ownProp$1(this.symlinks, abs)) - return this._readdirInGlobStar(abs) + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); + } - if (ownProp$1(this.cache, abs)) { - var c = this.cache[abs]; - if (!c || c === 'FILE') - return null + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; - if (Array.isArray(c)) - return c - } + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } - try { - return this._readdirEntries(abs, fs__default['default'].readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er); - return null - } -}; + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i]; - if (abs === '/') - e = abs + e; - else - e = abs + '/' + e; - this.cache[e] = true; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); } - } - this.cache[abs] = entries; + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } - // mark and cache dir-ness - return entries -}; + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f); - this.cache[abs] = 'FILE'; - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd); - error.path = this.cwd; - error.code = er.code; - throw error + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; } - break + } - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false; - break + pairBuffer += state.dump; - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false; - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er); - break - } -}; + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } - var entries = this._readdir(abs, inGlobStar); + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return + pairBuffer += state.dump; - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1); - var gspref = prefix ? [ prefix ] : []; - var noGlobStar = gspref.concat(remainWithoutGlobStar); + // Both key and value are valid. + _result += pairBuffer; + } - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false); + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} - var len = entries.length; - var isSym = this.symlinks[abs]; +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return + typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (var i = 0; i < len; i++) { - var e = entries[i]; - if (e.charAt(0) === '.' && !this.dot) - continue + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar); - this._process(instead, index, true); + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { - var below = gspref.concat(entries[i], remain); - this._process(below, index, true); - } -}; + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix); + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; - if (!this.matches[index]) - this.matches[index] = Object.create(null); + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } - // If it doesn't exist, then just mark the lack of results - if (!exists) - return + state.dump = _result; + } - if (prefix && pathIsAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix); - if (prefix.charAt(0) === '/') { - prefix = path__default['default'].join(this.root, prefix); - } else { - prefix = path__default['default'].resolve(this.root, prefix); - if (trail) - prefix += '/'; + return true; } } - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/'); - - // Mark this as a match - this._emitMatch(index, prefix); -}; + return false; +} -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f); - var needDir = f.slice(-1) === '/'; +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; - if (f.length > this.maxLength) - return false + if (!detectType(state, object, false)) { + detectType(state, object, true); + } - if (!this.stat && ownProp$1(this.cache, abs)) { - var c = this.cache[abs]; + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; - if (Array.isArray(c)) - c = 'DIR'; + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; - if (needDir && c === 'FILE') - return false + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; } - var stat = this.statCache[abs]; - if (!stat) { - var lstat; - try { - lstat = fs__default['default'].lstatSync(abs); - } catch (er) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false; - return false - } - } - if (lstat && lstat.isSymbolicLink()) { - try { - stat = fs__default['default'].statSync(abs); - } catch (er) { - stat = lstat; + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); } + } else if (type === '[object Undefined]') { + return false; } else { - stat = lstat; + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); } - } - this.statCache[abs] = stat; - - var c = true; - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE'; + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); - this.cache[abs] = this.cache[abs] || c; + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } - if (needDir && c === 'FILE') - return false + state.dump = tagStr + ' ' + state.dump; + } + } - return c -}; + return true; +} -GlobSync.prototype._mark = function (p) { - return common$2.mark(this, p) -}; +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; -GlobSync.prototype._makeAbs = function (f) { - return common$2.makeAbs(this, f) -}; + inspectNode(object, objects, duplicatesIndexes); -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -var wrappy_1 = wrappy; -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k]; - }); + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); - return wrapper + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); - function wrapper() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - var ret = fn.apply(this, args); - var cb = args[args.length-1]; - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k]; - }); + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } } - return ret } } -var once_1 = wrappy_1(once); -var strict = wrappy_1(onceStrict); +function dump$1(input, options) { + options = options || {}; -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }); + var state = new State(options); - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }); -}); + if (!state.noRefs) getDuplicateReferences(input, state); -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true; - return f.value = fn.apply(this, arguments) - }; - f.called = false; - return f + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; } -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true; - return f.value = fn.apply(this, arguments) +var dump_1 = dump$1; + +var dumper = { + dump: dump_1 +}; + +function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); }; - var name = fn.name || 'Function wrapped with `once`'; - f.onceError = name + " shouldn't be called more than once"; - f.called = false; - return f } -once_1.strict = strict; -var reqs = Object.create(null); +var Type = type$1; +var Schema = schema$1; +var FAILSAFE_SCHEMA = failsafe; +var JSON_SCHEMA = json; +var CORE_SCHEMA = core; +var DEFAULT_SCHEMA = _default$1; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var YAMLException = exception; + +// Re-export all types in case user wants to create custom schema +var types$1 = { + binary: binary, + float: float, + map: map$3, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge$1, + omap: omap, + seq: seq, + str: str +}; -var inflight_1 = wrappy_1(inflight); +// Removed functions from JS-YAML 3.0.x +var safeLoad = renamed('safeLoad', 'load'); +var safeLoadAll = renamed('safeLoadAll', 'loadAll'); +var safeDump = renamed('safeDump', 'dump'); -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb); - return null - } else { - reqs[key] = [cb]; - return makeres(key) - } -} +var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types$1, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump +}; -function makeres (key) { - return once_1(function RES () { - var cbs = reqs[key]; - var len = cbs.length; - var args = slice$2(arguments); +var isArrayish$2 = function isArrayish(obj) { + if (!obj) { + return false; + } - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args); - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len); - process.nextTick(function () { - RES.apply(null, args); - }); - } else { - delete reqs[key]; - } - } - }) -} + return obj instanceof Array || Array.isArray(obj) || + (obj.length >= 0 && obj.splice instanceof Function); +}; -function slice$2 (args) { - var length = args.length; - var array = []; +var util$2 = require$$0$4; +var isArrayish$1 = isArrayish$2; - for (var i = 0; i < length; i++) array[i] = args[i]; - return array -} +var errorEx$1 = function errorEx(name, properties) { + if (!name || name.constructor !== String) { + properties = name || {}; + name = Error.name; + } -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. + var errorExError = function ErrorEXError(message) { + if (!this) { + return new ErrorEXError(message); + } -var glob_1 = glob; + message = message instanceof Error + ? message.message + : (message || this.message); + + Error.call(this, message); + Error.captureStackTrace(this, errorExError); -var EE = events__default['default'].EventEmitter; -var setopts$2 = common$2.setopts; -var ownProp$2 = common$2.ownProp; + this.name = name; + Object.defineProperty(this, 'message', { + configurable: true, + enumerable: false, + get: function () { + var newMessage = message.split(/\r?\n/g); -var childrenIgnored$2 = common$2.childrenIgnored; -var isIgnored$2 = common$2.isIgnored; + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } + var modifier = properties[key]; + if ('message' in modifier) { + newMessage = modifier.message(this[key], newMessage) || newMessage; + if (!isArrayish$1(newMessage)) { + newMessage = [newMessage]; + } + } + } -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {}; - if (!options) options = {}; + return newMessage.join('\n'); + }, + set: function (v) { + message = v; + } + }); - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return sync$3(pattern, options) - } + var overwrittenStack = null; - return new Glob(pattern, options, cb) -} + var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); + var stackGetter = stackDescriptor.get; + var stackValue = stackDescriptor.value; + delete stackDescriptor.value; + delete stackDescriptor.writable; -glob.sync = sync$3; -var GlobSync$1 = glob.GlobSync = sync$3.GlobSync; + stackDescriptor.set = function (newstack) { + overwrittenStack = newstack; + }; -// old api surface -glob.glob = glob; + stackDescriptor.get = function () { + var stack = (overwrittenStack || ((stackGetter) + ? stackGetter.call(this) + : stackValue)).split(/\r?\n+/g); -function extend$1 (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } + // starting in Node 7, the stack builder caches the message. + // just replace it. + if (!overwrittenStack) { + stack[0] = this.name + ': ' + this.message; + } - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin -} + var lineCount = 1; + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } -glob.hasMagic = function (pattern, options_) { - var options = extend$1({}, options_); - options.noprocess = true; + var modifier = properties[key]; - var g = new Glob(pattern, options); - var set = g.minimatch.set; + if ('line' in modifier) { + var line = modifier.line(this[key]); + if (line) { + stack.splice(lineCount++, 0, ' ' + line); + } + } - if (!pattern) - return false + if ('stack' in modifier) { + modifier.stack(this[key], stack); + } + } + + return stack.join('\n'); + }; + + Object.defineProperty(this, 'stack', stackDescriptor); + }; + + if (Object.setPrototypeOf) { + Object.setPrototypeOf(errorExError.prototype, Error.prototype); + Object.setPrototypeOf(errorExError, Error); + } else { + util$2.inherits(errorExError, Error); + } + + return errorExError; +}; - if (set.length > 1) - return true +errorEx$1.append = function (str, def) { + return { + message: function (v, message) { + v = v || def; - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } + if (v) { + message[0] += ' ' + str.replace('%s', v.toString()); + } - return false + return message; + } + }; }; -glob.Glob = Glob; -inherits(Glob, EE); -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options; - options = null; - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync$1(pattern, options) - } +errorEx$1.line = function (str, def) { + return { + line: function (v) { + v = v || def; - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) + if (v) { + return str.replace('%s', v.toString()); + } - setopts$2(this, pattern, options); - this._didRealPath = false; + return null; + } + }; +}; - // process each pattern in the minimatch set - var n = this.minimatch.set.length; +var errorEx_1 = errorEx$1; - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n); +const hexify = char => { + const h = char.charCodeAt(0).toString(16).toUpperCase(); + return '0x' + (h.length % 2 ? '0' : '') + h +}; - if (typeof cb === 'function') { - cb = once_1(cb); - this.on('error', cb); - this.on('end', function (matches) { - cb(null, matches); - }); +const parseError = (e, txt, context) => { + if (!txt) { + return { + message: e.message + ' while parsing empty string', + position: 0, + } } + const badToken = e.message.match(/^Unexpected token (.) .*position\s+(\d+)/i); + const errIdx = badToken ? +badToken[2] + : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 + : null; - var self = this; - this._processing = 0; + const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${ + JSON.stringify(badToken[1]) + } (${hexify(badToken[1])})`) + : e.message; - this._emitQueue = []; - this._processQueue = []; - this.paused = false; + if (errIdx !== null && errIdx !== undefined) { + const start = errIdx <= context ? 0 + : errIdx - context; - if (this.noprocess) - return this + const end = errIdx + context >= txt.length ? txt.length + : errIdx + context; - if (n === 0) - return done() + const slice = (start === 0 ? '' : '...') + + txt.slice(start, end) + + (end === txt.length ? '' : '...'); - var sync = true; - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done); - } - sync = false; + const near = txt === slice ? '' : 'near '; - function done () { - --self._processing; - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish(); - }); - } else { - self._finish(); - } + return { + message: msg + ` while parsing ${near}${JSON.stringify(slice)}`, + position: errIdx, + } + } else { + return { + message: msg + ` while parsing '${txt.slice(0, context * 2)}'`, + position: 0, } } -} +}; -Glob.prototype._finish = function () { - assert__default['default'](this instanceof Glob); - if (this.aborted) - return +class JSONParseError extends SyntaxError { + constructor (er, txt, context, caller) { + context = context || 20; + const metadata = parseError(er, txt, context); + super(metadata.message); + Object.assign(this, metadata); + this.code = 'EJSONPARSE'; + this.systemError = er; + Error.captureStackTrace(this, caller || this.constructor); + } + get name () { return this.constructor.name } + set name (n) {} + get [Symbol.toStringTag] () { return this.constructor.name } +} - if (this.realpath && !this._didRealpath) - return this._realpath() +const kIndent = Symbol.for('indent'); +const kNewline = Symbol.for('newline'); +// only respect indentation if we got a line break, otherwise squash it +// things other than objects and arrays aren't indented, so ignore those +// Important: in both of these regexps, the $1 capture group is the newline +// or undefined, and the $2 capture group is the indent, or undefined. +const formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/; +const emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/; - common$2.finish(this); - this.emit('end', this.found); -}; +const parseJson$1 = (txt, reviver, context) => { + const parseText = stripBOM(txt); + context = context || 20; + try { + // get the indentation so that we can save it back nicely + // if the file starts with {" then we have an indent of '', ie, none + // otherwise, pick the indentation of the next line after the first \n + // If the pattern doesn't match, then it means no indentation. + // JSON.stringify ignores symbols, so this is reasonably safe. + // if the string is '{}' or '[]', then use the default 2-space indent. + const [, newline = '\n', indent = ' '] = parseText.match(emptyRE) || + parseText.match(formatRE) || + [, '', '']; -Glob.prototype._realpath = function () { - if (this._didRealpath) - return + const result = JSON.parse(parseText, reviver); + if (result && typeof result === 'object') { + result[kNewline] = newline; + result[kIndent] = indent; + } + return result + } catch (e) { + if (typeof txt !== 'string' && !Buffer.isBuffer(txt)) { + const isEmptyArray = Array.isArray(txt) && txt.length === 0; + throw Object.assign(new TypeError( + `Cannot parse ${isEmptyArray ? 'an empty array' : String(txt)}` + ), { + code: 'EJSONPARSE', + systemError: e, + }) + } - this._didRealpath = true; + throw new JSONParseError(e, parseText, context, parseJson$1) + } +}; - var n = this.matches.length; - if (n === 0) - return this._finish() +// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) +// because the buffer-to-string conversion in `fs.readFileSync()` +// translates it to FEFF, the UTF-16 BOM. +const stripBOM = txt => String(txt).replace(/^\uFEFF/, ''); - var self = this; - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next); +var jsonParseEvenBetterErrors = parseJson$1; +parseJson$1.JSONParseError = JSONParseError; - function next () { - if (--n === 0) - self._finish(); - } +parseJson$1.noExceptions = (txt, reviver) => { + try { + return JSON.parse(stripBOM(txt), reviver) + } catch (e) {} }; -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index]; - if (!matchset) - return cb() +var LF = '\n'; +var CR = '\r'; +var LinesAndColumns$1 = (function () { + function LinesAndColumns(string) { + this.string = string; + var offsets = [0]; + for (var offset = 0; offset < string.length;) { + switch (string[offset]) { + case LF: + offset += LF.length; + offsets.push(offset); + break; + case CR: + offset += CR.length; + if (string[offset] === LF) { + offset += LF.length; + } + offsets.push(offset); + break; + default: + offset++; + break; + } + } + this.offsets = offsets; + } + LinesAndColumns.prototype.locationForIndex = function (index) { + if (index < 0 || index > this.string.length) { + return null; + } + var line = 0; + var offsets = this.offsets; + while (offsets[line + 1] <= index) { + line++; + } + var column = index - offsets[line]; + return { line: line, column: column }; + }; + LinesAndColumns.prototype.indexForLocation = function (location) { + var line = location.line, column = location.column; + if (line < 0 || line >= this.offsets.length) { + return null; + } + if (column < 0 || column > this.lengthOfLine(line)) { + return null; + } + return this.offsets[line] + column; + }; + LinesAndColumns.prototype.lengthOfLine = function (line) { + var offset = this.offsets[line]; + var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1]; + return nextOffset - offset; + }; + return LinesAndColumns; +}()); - var found = Object.keys(matchset); - var self = this; - var n = found.length; +var dist = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': LinesAndColumns$1 +}); - if (n === 0) - return cb() +var require$$2 = /*@__PURE__*/getAugmentedNamespace(dist); - var set = this.matches[index] = Object.create(null); - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p); - fs_realpath.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true; - else if (er.syscall === 'stat') - set[p] = true; - else - self.emit('error', er); // srsly wtf right here +var lib$4 = {}; - if (--n === 0) { - self.matches[index] = set; - cb(); - } - }); - }); -}; +var lib$3 = {}; -Glob.prototype._mark = function (p) { - return common$2.mark(this, p) -}; +var jsTokens = {}; -Glob.prototype._makeAbs = function (f) { - return common$2.makeAbs(this, f) -}; +// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell +// License: MIT. (See LICENSE.) -Glob.prototype.abort = function () { - this.aborted = true; - this.emit('abort'); -}; +Object.defineProperty(jsTokens, "__esModule", { + value: true +}); -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true; - this.emit('pause'); - } -}; +// This regex comes from regex.coffee, and is inserted here by generate-index.js +// (run `npm run build`). +jsTokens.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume'); - this.paused = false; - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0); - this._emitQueue.length = 0; - for (var i = 0; i < eq.length; i ++) { - var e = eq[i]; - this._emitMatch(e[0], e[1]); - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0); - this._processQueue.length = 0; - for (var i = 0; i < pq.length; i ++) { - var p = pq[i]; - this._processing--; - this._process(p[0], p[1], p[2], p[3]); - } - } - } +jsTokens.matchToToken = function(match) { + var token = {type: "invalid", value: match[0], closed: undefined}; + if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]); + else if (match[ 5]) token.type = "comment"; + else if (match[ 6]) token.type = "comment", token.closed = !!match[7]; + else if (match[ 8]) token.type = "regex"; + else if (match[ 9]) token.type = "number"; + else if (match[10]) token.type = "name"; + else if (match[11]) token.type = "punctuator"; + else if (match[12]) token.type = "whitespace"; + return token }; -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert__default['default'](this instanceof Glob); - assert__default['default'](typeof cb === 'function'); +var lib$2 = {}; - if (this.aborted) - return +var identifier = {}; - this._processing++; - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]); - return - } +Object.defineProperty(identifier, "__esModule", { + value: true +}); +identifier.isIdentifierStart = isIdentifierStart; +identifier.isIdentifierChar = isIdentifierChar; +identifier.isIdentifierName = isIdentifierName; +let 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"; +let 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"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const 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]; +const 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]; - //console.error('PROCESS %d', this._processing, pattern) +function isInAstralSet(code, set) { + let pos = 0x10000; - // Get the first [n] parts of pattern that are all strings. - var n = 0; - while (typeof pattern[n] === 'string') { - n ++; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; } - // now n is the index of the first one that is *not* a string. - // see if there's anything else - var prefix; - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb); - return + return false; +} - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null; - break +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/'); - break + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); } - var remain = pattern.slice(n); - - // get the list of entries. - var read; - if (prefix === null) - read = '.'; - else if (pathIsAbsolute(prefix) || pathIsAbsolute(pattern.join('/'))) { - if (!prefix || !pathIsAbsolute(prefix)) - prefix = '/' + prefix; - read = prefix; - } else - read = prefix; - - var abs = this._makeAbs(read); + return isInAstralSet(code, astralIdentifierStartCodes); +} - //if ignored, skip _processing - if (childrenIgnored$2(this, read)) - return cb() +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; - var isGlobStar = remain[0] === minimatch_1.GLOBSTAR; - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb); - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb); -}; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this; - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }); -}; + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { +function isIdentifierName(name) { + let isFirst = true; - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0]; - var negate = !!this.minimatch.negate; - var rawGlob = pn._glob; - var dotOk = this.dot || rawGlob.charAt(0) === '.'; + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); - var matchedEntries = []; - for (var i = 0; i < entries.length; i++) { - var e = entries[i]; - if (e.charAt(0) !== '.' || dotOk) { - var m; - if (negate && !prefix) { - m = !e.match(pn); - } else { - m = e.match(pn); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); } - if (m) - matchedEntries.push(e); } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length; - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null); - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i]; - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e; - else - e = prefix + e; - } + if (isFirst) { + isFirst = false; - if (e.charAt(0) === '/' && !this.nomount) { - e = path__default['default'].join(this.root, e); + if (!isIdentifierStart(cp)) { + return false; } - this._emitMatch(index, e); + } else if (!isIdentifierChar(cp)) { + return false; } - // This was the last one, and no stats were needed - return cb() } - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift(); - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i]; - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e; - else - e = prefix + e; - } - this._process([e].concat(remain), index, inGlobStar, cb); - } - cb(); -}; + return !isFirst; +} -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return +var keyword = {}; + +Object.defineProperty(keyword, "__esModule", { + value: true +}); +keyword.isReservedWord = isReservedWord; +keyword.isStrictReservedWord = isStrictReservedWord; +keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +keyword.isStrictBindReservedWord = isStrictBindReservedWord; +keyword.isKeyword = isKeyword; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords$1 = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); - if (isIgnored$2(this, e)) - return +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} - if (this.paused) { - this._emitQueue.push([index, e]); - return - } +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} - var abs = pathIsAbsolute(e) ? e : this._makeAbs(e); +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} - if (this.mark) - e = this._mark(e); +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} - if (this.absolute) - e = abs; +function isKeyword(word) { + return keywords$1.has(word); +} - if (this.matches[index][e]) - return +(function (exports) { - if (this.nodir) { - var c = this.cache[abs]; - if (c === 'DIR' || Array.isArray(c)) - return +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return _identifier.isIdentifierName; } +}); +Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +}); +Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +}); +Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +}); +Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +}); +Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +}); - this.matches[index][e] = true; - - var st = this.statCache[abs]; - if (st) - this.emit('stat', e, st); +var _identifier = identifier; - this.emit('match', e); -}; +var _keyword = keyword; +}(lib$2)); -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return +var chalk = {exports: {}}; - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - var lstatkey = 'lstat\0' + abs; - var self = this; - var lstatcb = inflight_1(lstatkey, lstatcb_); +var escapeStringRegexp$1 = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } - if (lstatcb) - fs__default['default'].lstat(abs, lstatcb); + return str.replace(matchOperatorsRe, '\\$&'); +}; - function lstatcb_ (er, lstat) { - if (er && er.code === 'ENOENT') - return cb() +var ansiStyles = {exports: {}}; - var isSym = lstat && lstat.isSymbolicLink(); - self.symlinks[abs] = isSym; +var conversions$2 = {exports: {}}; - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) { - self.cache[abs] = 'FILE'; - cb(); - } else - self._readdir(abs, false, cb); - } +var colorName = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] }; -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return +/* MIT license */ - cb = inflight_1('readdir\0'+abs+'\0'+inGlobStar, cb); - if (!cb) - return +var cssKeywords = colorName; - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp$2(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) - if (ownProp$2(this.cache, abs)) { - var c = this.cache[abs]; - if (!c || c === 'FILE') - return cb() +var reverseKeywords = {}; +for (var key$1 in cssKeywords) { + if (cssKeywords.hasOwnProperty(key$1)) { + reverseKeywords[cssKeywords[key$1]] = key$1; + } +} - if (Array.isArray(c)) - return cb(null, c) - } - fs__default['default'].readdir(abs, readdirCb(this, abs, cb)); +var convert$2 = conversions$2.exports = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} }; -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb); - else - self._readdirEntries(abs, entries, cb); - } -} +// hide .channels and .labels properties +for (var model in convert$2) { + if (convert$2.hasOwnProperty(model)) { + if (!('channels' in convert$2[model])) { + throw new Error('missing channels property: ' + model); + } -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return + if (!('labels' in convert$2[model])) { + throw new Error('missing channel labels property: ' + model); + } - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i]; - if (abs === '/') - e = abs + e; - else - e = abs + '/' + e; - this.cache[e] = true; - } - } + if (convert$2[model].labels.length !== convert$2[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } - this.cache[abs] = entries; - return cb(null, entries) -}; + var channels = convert$2[model].channels; + var labels$1 = convert$2[model].labels; + delete convert$2[model].channels; + delete convert$2[model].labels; + Object.defineProperty(convert$2[model], 'channels', {value: channels}); + Object.defineProperty(convert$2[model], 'labels', {value: labels$1}); + } +} -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return +convert$2.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f); - this.cache[abs] = 'FILE'; - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd); - error.path = this.cwd; - error.code = er.code; - this.emit('error', error); - this.abort(); - } - break + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false; - break + h = Math.min(h * 60, 360); - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false; - if (this.strict) { - this.emit('error', er); - // If the error is handled, then we abort - // if not, we threw out of here - this.abort(); - } - if (!this.silent) - console.error('glob error', er); - break - } + if (h < 0) { + h += 360; + } - return cb() -}; + l = (min + max) / 2; -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this; - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb); - }); + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; }; +convert$2.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1); - var gspref = prefix ? [ prefix ] : []; - var noGlobStar = gspref.concat(remainWithoutGlobStar); + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb); + return [ + h * 360, + s * 100, + v * 100 + ]; +}; - var isSym = this.symlinks[abs]; - var len = entries.length; +convert$2.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert$2.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - for (var i = 0; i < len; i++) { - var e = entries[i]; - if (e.charAt(0) === '.' && !this.dot) - continue + return [h, w * 100, b * 100]; +}; - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar); - this._process(instead, index, true, cb); +convert$2.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; - var below = gspref.concat(entries[i], remain); - this._process(below, index, true, cb); - } + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; - cb(); + return [c * 100, m * 100, y * 100, k * 100]; }; -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this; - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb); - }); -}; -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { +/** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); +} + +convert$2.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } - //console.error('ps2', prefix, exists) + var currentClosestDistance = Infinity; + var currentClosestKeyword; - if (!this.matches[index]) - this.matches[index] = Object.create(null); + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() + // Compute comparative distance + var distance = comparativeDistance(rgb, value); - if (prefix && pathIsAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix); - if (prefix.charAt(0) === '/') { - prefix = path__default['default'].join(this.root, prefix); - } else { - prefix = path__default['default'].resolve(this.root, prefix); - if (trail) - prefix += '/'; - } - } + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/'); + return currentClosestKeyword; +}; - // Mark this as a match - this._emitMatch(index, prefix); - cb(); +convert$2.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; }; -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f); - var needDir = f.slice(-1) === '/'; +convert$2.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; - if (f.length > this.maxLength) - return cb() + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); - if (!this.stat && ownProp$2(this.cache, abs)) { - var c = this.cache[abs]; + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); - if (Array.isArray(c)) - c = 'DIR'; + return [x * 100, y * 100, z * 100]; +}; - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) +convert$2.rgb.lab = function (rgb) { + var xyz = convert$2.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; - if (needDir && c === 'FILE') - return cb() + x /= 95.047; + y /= 100; + z /= 108.883; - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - var stat = this.statCache[abs]; - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE'; - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - var self = this; - var statcb = inflight_1('stat\0' + abs, lstatcb_); - if (statcb) - fs__default['default'].lstat(abs, statcb); + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs__default['default'].stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb); - else - self._stat2(f, abs, er, stat, cb); - }) - } else { - self._stat2(f, abs, er, lstat, cb); - } - } + return [l, a, b]; }; -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false; - return cb() - } +convert$2.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; - var needDir = f.slice(-1) === '/'; - this.statCache[abs] = stat; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } - if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) - return cb(null, false, stat) + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } - var c = true; - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE'; - this.cache[abs] = this.cache[abs] || c; + t1 = 2 * l - t2; - if (needDir && c === 'FILE') - return cb() + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } - return cb(null, c, stat) -}; + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var isBuffer = function isBuffer (obj) { - return obj != null && obj.constructor != null && - typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) + rgb[i] = val * 255; + } + + return rgb; }; -var own = {}.hasOwnProperty; +convert$2.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; -var unistUtilStringifyPosition = stringify; + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); -function stringify(value) { - // Nothing. - if (!value || typeof value !== 'object') { - return '' - } + return [h, sv * 100, v * 100]; +}; - // Node. - if (own.call(value, 'position') || own.call(value, 'type')) { - return position(value.position) - } +convert$2.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; - // Position. - if (own.call(value, 'start') || own.call(value, 'end')) { - return position(value) - } + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - (s * f)); + var t = 255 * v * (1 - (s * (1 - f))); + v *= 255; - // Point. - if (own.call(value, 'line') || own.call(value, 'column')) { - return point(value) - } + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; - // ? - return '' -} +convert$2.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; -function point(point) { - if (!point || typeof point !== 'object') { - point = {}; - } + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; - return index(point.line) + ':' + index(point.column) -} + return [h, sl * 100, l * 100]; +}; -function position(pos) { - if (!pos || typeof pos !== 'object') { - pos = {}; - } +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert$2.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; - return point(pos.start) + '-' + point(pos.end) -} + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } -function index(value) { - return value && typeof value === 'number' ? value : 1 -} + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; -var vfileMessage = VMessage; + if ((i & 0x01) !== 0) { + f = 1 - f; + } -// Inherit from `Error#`. -function VMessagePrototype() {} -VMessagePrototype.prototype = Error.prototype; -VMessage.prototype = new VMessagePrototype(); + n = wh + f * (v - wh); // linear interpolation -// Message properties. -var proto = VMessage.prototype; + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } -proto.file = ''; -proto.name = ''; -proto.reason = ''; -proto.message = ''; -proto.stack = ''; -proto.fatal = null; -proto.column = null; -proto.line = null; + return [r * 255, g * 255, b * 255]; +}; -// Construct a new VMessage. -// -// Note: We cannot invoke `Error` on the created context, as that adds readonly -// `line` and `column` attributes on Safari 9, thus throwing and failing the -// data. -function VMessage(reason, position, origin) { - var parts; - var range; - var location; +convert$2.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; - if (typeof position === 'string') { - origin = position; - position = null; - } + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); - parts = parseOrigin(origin); - range = unistUtilStringifyPosition(position) || '1:1'; + return [r * 255, g * 255, b * 255]; +}; - location = { - start: {line: null, column: null}, - end: {line: null, column: null} - }; +convert$2.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; - // Node. - if (position && position.position) { - position = position.position; - } + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); - if (position) { - // Position. - if (position.start) { - location = position; - position = position.start; - } else { - // Point. - location.start = position; - } - } + // assume sRGB + r = r > 0.0031308 + ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r * 12.92; - if (reason.stack) { - this.stack = reason.stack; - reason = reason.message; - } + g = g > 0.0031308 + ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g * 12.92; - this.message = reason; - this.name = range; - this.reason = reason; - this.line = position ? position.line : null; - this.column = position ? position.column : null; - this.location = location; - this.source = parts[0]; - this.ruleId = parts[1]; -} + b = b > 0.0031308 + ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b * 12.92; -function parseOrigin(origin) { - var result = [null, null]; - var index; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); - if (typeof origin === 'string') { - index = origin.indexOf(':'); + return [r * 255, g * 255, b * 255]; +}; - if (index === -1) { - result[1] = origin; - } else { - result[0] = origin.slice(0, index); - result[1] = origin.slice(index + 1); - } - } +convert$2.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; - return result -} + x /= 95.047; + y /= 100; + z /= 108.883; -var minpath = path__default['default']; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); -var minproc = process; + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); -var core$1 = VFile; + return [l, a, b]; +}; -var own$1 = {}.hasOwnProperty; +convert$2.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; -// Order of setting (least specific to most), we need this because otherwise -// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a -// stem can be set. -var order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; -VFile.prototype.toString = toString; + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; -// Access full path (`~/index.min.js`). -Object.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath}); + x *= 95.047; + y *= 100; + z *= 108.883; -// Access parent path (`~`). -Object.defineProperty(VFile.prototype, 'dirname', { - get: getDirname, - set: setDirname -}); + return [x, y, z]; +}; -// Access basename (`index.min.js`). -Object.defineProperty(VFile.prototype, 'basename', { - get: getBasename, - set: setBasename -}); +convert$2.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; -// Access extname (`.js`). -Object.defineProperty(VFile.prototype, 'extname', { - get: getExtname, - set: setExtname -}); + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; -// Access stem (`index.min`). -Object.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem}); + if (h < 0) { + h += 360; + } -// Construct a new file. -function VFile(options) { - var prop; - var index; + c = Math.sqrt(a * a + b * b); - if (!options) { - options = {}; - } else if (typeof options === 'string' || isBuffer(options)) { - options = {contents: options}; - } else if ('message' in options && 'messages' in options) { - return options - } + return [l, c, h]; +}; - if (!(this instanceof VFile)) { - return new VFile(options) - } +convert$2.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; - this.data = {}; - this.messages = []; - this.history = []; - this.cwd = minproc.cwd(); + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); - // Set path related properties in the correct order. - index = -1; + return [l, a, b]; +}; - while (++index < order.length) { - prop = order[index]; +convert$2.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert$2.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - if (own$1.call(options, prop)) { - this[prop] = options[prop]; - } - } + value = Math.round(value / 50); - // Set non-path related properties. - for (prop in options) { - if (order.indexOf(prop) < 0) { - this[prop] = options[prop]; - } - } -} + if (value === 0) { + return 30; + } -function getPath() { - return this.history[this.history.length - 1] -} + var ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); -function setPath(path) { - assertNonEmpty(path, 'path'); + if (value === 2) { + ansi += 60; + } - if (this.path !== path) { - this.history.push(path); - } -} + return ansi; +}; -function getDirname() { - return typeof this.path === 'string' ? minpath.dirname(this.path) : undefined -} +convert$2.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert$2.rgb.ansi16(convert$2.hsv.rgb(args), args[2]); +}; -function setDirname(dirname) { - assertPath(this.path, 'dirname'); - this.path = minpath.join(dirname || '', this.basename); -} +convert$2.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; -function getBasename() { - return typeof this.path === 'string' ? minpath.basename(this.path) : undefined -} + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } -function setBasename(basename) { - assertNonEmpty(basename, 'basename'); - assertPart(basename, 'basename'); - this.path = minpath.join(this.dirname || '', basename); -} + if (r > 248) { + return 231; + } -function getExtname() { - return typeof this.path === 'string' ? minpath.extname(this.path) : undefined -} + return Math.round(((r - 8) / 247) * 24) + 232; + } -function setExtname(extname) { - assertPart(extname, 'extname'); - assertPath(this.path, 'extname'); + var ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); - if (extname) { - if (extname.charCodeAt(0) !== 46 /* `.` */) { - throw new Error('`extname` must start with `.`') - } + return ansi; +}; - if (extname.indexOf('.', 1) > -1) { - throw new Error('`extname` cannot contain multiple dots') - } - } +convert$2.ansi16.rgb = function (args) { + var color = args % 10; - this.path = minpath.join(this.dirname, this.stem + (extname || '')); -} + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } -function getStem() { - return typeof this.path === 'string' - ? minpath.basename(this.path, this.extname) - : undefined -} + color = color / 10.5 * 255; -function setStem(stem) { - assertNonEmpty(stem, 'stem'); - assertPart(stem, 'stem'); - this.path = minpath.join(this.dirname || '', stem + (this.extname || '')); -} + return [color, color, color]; + } -// Get the value of the file. -function toString(encoding) { - return (this.contents || '').toString(encoding) -} + var mult = (~~(args > 50) + 1) * 0.5; + var r = ((color & 1) * mult) * 255; + var g = (((color >> 1) & 1) * mult) * 255; + var b = (((color >> 2) & 1) * mult) * 255; -// Assert that `part` is not a path (i.e., does not contain `p.sep`). -function assertPart(part, name) { - if (part && part.indexOf(minpath.sep) > -1) { - throw new Error( - '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`' - ) - } -} + return [r, g, b]; +}; -// Assert that `part` is not empty. -function assertNonEmpty(part, name) { - if (!part) { - throw new Error('`' + name + '` cannot be empty') - } -} +convert$2.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } -// Assert `path` exists. -function assertPath(path, name) { - if (!path) { - throw new Error('Setting `' + name + '` requires `path` to be set too') - } -} + args -= 16; + + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = (rem % 6) / 5 * 255; -var lib$3 = core$1; + return [r, g, b]; +}; -core$1.prototype.message = message; -core$1.prototype.info = info; -core$1.prototype.fail = fail; +convert$2.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); -// Create a message with `reason` at `position`. -// When an error is passed in as `reason`, copies the stack. -function message(reason, position, origin) { - var message = new vfileMessage(reason, position, origin); + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; - if (this.path) { - message.name = this.path + ':' + message.name; - message.file = this.path; - } +convert$2.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } - message.fatal = false; + var colorString = match[0]; - this.messages.push(message); + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } - return message -} + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xFF; + var g = (integer >> 8) & 0xFF; + var b = integer & 0xFF; -// Fail: creates a vmessage, associates it with the file, and throws it. -function fail() { - var message = this.message.apply(this, arguments); + return [r, g, b]; +}; - message.fatal = true; +convert$2.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = (max - min); + var grayscale; + var hue; - throw message -} + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } -// Info: creates a vmessage, associates it with the file, and marks the fatality -// as null. -function info() { - var message = this.message.apply(this, arguments); + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } - message.fatal = null; + hue /= 6; + hue %= 1; - return message -} + return [hue * 360, chroma * 100, grayscale * 100]; +}; -var vfile = lib$3; +convert$2.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; -var core$2 = toVFile; + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } -// Create a virtual file from a description. If `options` is a string or a -// buffer, it’s used as the path. In all other cases, the options are passed -// through to `vfile()`. -function toVFile(options) { - if (typeof options === 'string' || isBuffer(options)) { - options = {path: String(options)}; - } + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } - return vfile(options) -} + return [hsl[0], c * 100, f * 100]; +}; -var read$2 = readSync; -var write = writeSync; +convert$2.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; -// Create a virtual file and read it in, synchronously. -function readSync(description, options) { - var file = core$2(description); - file.contents = fs__default['default'].readFileSync(path__default['default'].resolve(file.cwd, file.path), options); - return file -} + var c = s * v; + var f = 0; -// Create a virtual file and write it out, synchronously. -function writeSync(description, options) { - var file = core$2(description); - fs__default['default'].writeFileSync( - path__default['default'].resolve(file.cwd, file.path), - file.contents || '', - options - ); - return file -} + if (c < 1.0) { + f = (v - c) / (1 - c); + } -var sync$4 = { - read: read$2, - write: write + return [hsv[0], c * 100, f * 100]; }; -var read_1 = read$3; -var write_1 = write$1; +convert$2.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; -// Create a virtual file and read it in, asynchronously. -function read$3(description, options, callback) { - var file = core$2(description); + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } - if (!callback && typeof options === 'function') { - callback = options; - options = null; - } + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; - if (!callback) { - return new Promise(executor) - } + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } - executor(resolve, callback); + mg = (1.0 - c) * g; - function resolve(result) { - callback(null, result); - } + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; - function executor(resolve, reject) { - var fp; +convert$2.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; - try { - fp = path__default['default'].resolve(file.cwd, file.path); - } catch (error) { - return reject(error) - } + var v = c + g * (1.0 - c); + var f = 0; - fs__default['default'].readFile(fp, options, done); + if (v > 0.0) { + f = c / v; + } - function done(error, res) { - if (error) { - reject(error); - } else { - file.contents = res; - resolve(file); - } - } - } -} + return [hcg[0], f * 100, v * 100]; +}; -// Create a virtual file and write it out, asynchronously. -function write$1(description, options, callback) { - var file = core$2(description); +convert$2.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; - // Weird, right? Otherwise `fs` doesn’t accept it. - if (!callback && typeof options === 'function') { - callback = options; - options = undefined; - } + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; - if (!callback) { - return new Promise(executor) - } + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } - executor(resolve, callback); + return [hcg[0], s * 100, l * 100]; +}; - function resolve(result) { - callback(null, result); - } +convert$2.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; - function executor(resolve, reject) { - var fp; +convert$2.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; - try { - fp = path__default['default'].resolve(file.cwd, file.path); - } catch (error) { - return reject(error) - } + if (c < 1) { + g = (v - c) / (1 - c); + } - fs__default['default'].writeFile(fp, file.contents || '', options, done); + return [hwb[0], c * 100, g * 100]; +}; - function done(error) { - if (error) { - reject(error); - } else { - resolve(file); - } - } - } -} +convert$2.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; -var async = { - read: read_1, - write: write_1 +convert$2.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; }; -var fs = core$2; +convert$2.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; -core$2.read = async.read; -core$2.readSync = sync$4.read; -core$2.write = async.write; -core$2.writeSync = sync$4.write; +convert$2.gray.hsl = convert$2.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; -var toVfile = fs; +convert$2.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; -var readdir = fs__default['default'].readdir; -var stat = fs__default['default'].stat; -var sep$1 = path__default['default'].sep; -var join$1 = path__default['default'].join; -var relative$2 = path__default['default'].relative; -var resolve$3 = path__default['default'].resolve; -var basename = path__default['default'].basename; -var extname = path__default['default'].extname; -var magic = glob_1.hasMagic; +convert$2.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; -var finder$1 = find; +convert$2.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; -// Search `patterns`, a mix of globs, paths, and files. -function find(input, options, callback) { - expand$1(input, options, done); +convert$2.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; - function done(error, result) { - /* istanbul ignore if - glob errors are unusual. - * other errors are on the vfile results. */ - if (error) { - callback(error); - } else { - callback(null, {oneFileMode: oneFileMode(result), files: result.output}); - } - } -} + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; -// Expand the given glob patterns, search given and found directories, and map -// to vfiles. -function expand$1(input, options, next) { - var cwd = options.cwd; - var paths = []; - var actual = 0; - var expected = 0; - var failed; +convert$2.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; - input.forEach(each); +var conversions$1 = conversions$2.exports; - if (!expected) { - search(paths, options, done); - } +/* + this function routes a model to all other models. - function each(file) { - if (typeof file === 'string') { - if (magic(file)) { - expected++; - glob_1(file, {cwd: cwd}, one); - } else { - // `relative` to make the paths canonical. - file = relative$2(cwd, resolve$3(cwd, file)) || '.'; - paths.push(file); - } - } else { - file.cwd = cwd; - file.path = relative$2(cwd, file.path); - file.history = [file.path]; - paths.push(file); - } - } + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). - function one(error, files) { - /* istanbul ignore if - Glob errors are unusual. */ - if (failed) { - return - } + conversions that are not possible simply are not included. +*/ - /* istanbul ignore if - Glob errors are unusual. */ - if (error) { - failed = true; - done(error); - } else { - actual++; - paths = paths.concat(files); +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions$1); - if (actual === expected) { - search(paths, options, done); - } - } - } + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } - function done(error, files) { - /* istanbul ignore if - `search` currently does not give errors. */ - if (error) { - next(error); - } else { - next(null, {input: paths, output: files}); - } - } + return graph; } -// Search `paths`. -function search(input, options, next) { - var cwd = options.cwd; - var silent = options.silentlyIgnore; - var nested = options.nested; - var extensions = options.extensions; - var extraIgnore = ignore().add(options.ignorePatterns); - var files = []; - var expected = 0; - var actual = 0; - - input.forEach(each); - - if (!expected) { - next(null, files); - } - - return each +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop - function each(file) { - var ext = typeof file === 'string' ? extname(file) : file.extname; - var part; + graph[fromModel].distance = 0; - // Normalise globs. - if (typeof file === 'string') { - file = file.split('/').join(path__default['default'].sep); - } + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions$1[current]); - part = base(file); + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; - if (nested && (part.charAt(0) === '.' || part === 'node_modules')) { - return - } + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } - expected++; + return graph; +} - statAndIgnore( - file, - Object.assign({}, options, {extraIgnore: extraIgnore}), - handle - ); +function link$1(from, to) { + return function (args) { + return to(from(args)); + }; +} - function handle(error, result) { - var ignored = result && result.ignored; - var dir = result && result.stats && result.stats.isDirectory(); +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions$1[graph[toModel].parent][toModel]; - if (ignored && (nested || silent)) { - return one(null, []) - } + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link$1(conversions$1[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } - if (!ignored && dir) { - return readdir(resolve$3(cwd, filePath(file)), directory) - } + fn.conversion = path; + return fn; +} - if ( - nested && - !dir && - extensions.length !== 0 && - extensions.indexOf(ext) === -1 - ) { - return one(null, []) - } +var route$1 = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; - file = toVfile(file); - file.cwd = cwd; + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; - if (ignored) { - try { - file.fail('Cannot process specified file: it’s ignored'); - } catch (_) {} - } + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } - if (error && error.code === 'ENOENT') { - try { - file.fail( - error.syscall === 'stat' ? 'No such file or directory' : error - ); - } catch (_) {} - } + conversion[toModel] = wrapConversion(toModel, graph); + } - one(null, [file]); - } + return conversion; +}; - function directory(error, basenames) { - var file; +var conversions = conversions$2.exports; +var route = route$1; - /* istanbul ignore if - Should not happen often: the directory is `stat`ed - * first, which was ok, but reading it is not. */ - if (error) { - file = toVfile(filePath(file)); - file.cwd = cwd; +var convert$1 = {}; - try { - file.fail('Cannot read directory'); - } catch (_) {} +var models = Object.keys(conversions); - one(null, [file]); - } else { - search( - basenames.map(concat), - Object.assign({}, options, {nested: true}), - one - ); - } - } +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } - // Error is never given. Always given `results`. - function one(_, results) { - /* istanbul ignore else - Always given. */ - if (results) { - files = files.concat(results); - } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } - actual++; + return fn(args); + }; - if (actual === expected) { - next(null, files); - } - } + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } - function concat(value) { - return join$1(filePath(file), value) - } - } + return wrappedFn; } -function statAndIgnore(file, options, callback) { - var ignore = options.ignore; - var extraIgnore = options.extraIgnore; - var cwd = options.cwd; - var fp = resolve$3(cwd, filePath(file)); - var normal = relative$2(cwd, fp); - var expected = 1; - var actual = 0; - var stats; - var ignored; - - if (!file.contents) { - expected++; - stat(fp, handleStat); - } - - ignore.check(fp, handleIgnore); - - function handleStat(error, value) { - stats = value; - one(error); - } +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } - function handleIgnore(error, value) { - ignored = value; - one(error); - } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } - function one(error) { - actual++; + var result = fn(args); - if (error) { - callback(error); - actual = -1; - } else if (actual === expected) { - callback(null, { - stats: stats, - ignored: - ignored || - (normal === '' || - normal === '..' || - normal.charAt(0) === sep$1 || - normal.slice(0, 3) === '..' + sep$1 - ? false - : extraIgnore.ignores(normal)) - }); - } - } -} + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } -function base(file) { - return typeof file === 'string' ? basename(file) : file.basename -} + return result; + }; -function filePath(file) { - return typeof file === 'string' ? file : file.path -} + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } -function oneFileMode(result) { - return ( - result.output.length === 1 && - result.input.length === 1 && - result.output[0].path === result.input[0] - ) + return wrappedFn; } -var fileSystem_1 = fileSystem; - -// Find files from the file-system. -function fileSystem(context, settings, next) { - var input = context.files; - - if (input.length === 0) { - next(); - } else { - finder$1( - input, - { - cwd: settings.cwd, - extensions: settings.extensions, - silentlyIgnore: settings.silentlyIgnore, - ignorePatterns: settings.ignorePatterns, - ignore: new ignore$1({ - cwd: settings.cwd, - detectIgnore: settings.detectIgnore, - ignoreName: settings.ignoreName, - ignorePath: settings.ignorePath, - ignorePathResolveFrom: settings.ignorePathResolveFrom - }) - }, - onfound - ); - } +models.forEach(function (fromModel) { + convert$1[fromModel] = {}; - function onfound(error, result) { - var output = result.files; + Object.defineProperty(convert$1[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert$1[fromModel], 'labels', {value: conversions[fromModel].labels}); - // Sort alphabetically. - // Everything is unique so we do not care about cases where left and right - // are equal. - output.sort(sortAlphabetically); + var routes = route(fromModel); + var routeModels = Object.keys(routes); - // Mark as given. - // This allows outputting files, which can be pretty dangerous, so it’s - // “hidden”. - output.forEach(markAsGiven); + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; - context.files = output; + convert$1[fromModel][toModel] = wrapRounded(fn); + convert$1[fromModel][toModel].raw = wrapRaw(fn); + }); +}); - // If `out` was not set, detect it based on whether one file was given. - if (settings.out === null || settings.out === undefined) { - settings.out = result.oneFileMode; - } +var colorConvert = convert$1; - next(error); - } +(function (module) { +const colorConvert$1 = colorConvert; - function markAsGiven(file) { - file.data.unifiedEngineGiven = true; - } +const wrapAnsi16 = (fn, offset) => function () { + const code = fn.apply(colorConvert$1, arguments); + return `\u001B[${code + offset}m`; +}; - function sortAlphabetically(left, right) { - return left.path < right.path ? -1 : 1 - } -} +const wrapAnsi256 = (fn, offset) => function () { + const code = fn.apply(colorConvert$1, arguments); + return `\u001B[${38 + offset};5;${code}m`; +}; -var toString$1 = Object.prototype.toString; +const wrapAnsi16m = (fn, offset) => function () { + const rgb = fn.apply(colorConvert$1, arguments); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; -var isModern = ( - typeof Buffer.alloc === 'function' && - typeof Buffer.allocUnsafe === 'function' && - typeof Buffer.from === 'function' -); +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], -function isArrayBuffer (input) { - return toString$1.call(input).slice(8, -1) === 'ArrayBuffer' -} + // Bright color + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], -function fromArrayBuffer (obj, byteOffset, length) { - byteOffset >>>= 0; + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; - var maxLength = obj.byteLength - byteOffset; + // Fix humans + styles.color.grey = styles.color.gray; - if (maxLength < 0) { - throw new RangeError("'offset' is out of bounds") - } + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; - if (length === undefined) { - length = maxLength; - } else { - length >>>= 0; + for (const styleName of Object.keys(group)) { + const style = group[styleName]; - if (length > maxLength) { - throw new RangeError("'length' is out of bounds") - } - } + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; - return isModern - ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) - : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))) -} + group[styleName] = styles[styleName]; -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8'; - } + codes.set(style[0], style[1]); + } - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); - return isModern - ? Buffer.from(string, encoding) - : new Buffer(string, encoding) -} + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + } -function bufferFrom (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } + const ansi2ansi = n => n; + const rgb2rgb = (r, g, b) => [r, g, b]; - if (isArrayBuffer(value)) { - return fromArrayBuffer(value, encodingOrOffset, length) - } + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; - return isModern - ? Buffer.from(value) - : new Buffer(value) -} + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; -var bufferFrom_1 = bufferFrom; + for (let key of Object.keys(colorConvert$1)) { + if (typeof colorConvert$1[key] !== 'object') { + continue; + } -var typedarray = createCommonjsModule(function (module, exports) { -var undefined$1 = (void 0); // Paranoia + const suite = colorConvert$1[key]; -// Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to -// create, and consume so much memory, that the browser appears frozen. -var MAX_ARRAY_LENGTH = 1e5; + if (key === 'ansi16') { + key = 'ansi'; + } -// Approximations of internal ECMAScript conversion functions -var ECMAScript = (function() { - // Stash a copy in case other scripts modify these - var opts = Object.prototype.toString, - ophop = Object.prototype.hasOwnProperty; + if ('ansi16' in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } - return { - // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues: - Class: function(v) { return opts.call(v).replace(/^\[object *|\]$/g, ''); }, - HasProperty: function(o, p) { return p in o; }, - HasOwnProperty: function(o, p) { return ophop.call(o, p); }, - IsCallable: function(o) { return typeof o === 'function'; }, - ToInt32: function(v) { return v >> 0; }, - ToUint32: function(v) { return v >>> 0; } - }; -}()); + if ('ansi256' in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } -// Snapshot intrinsics -var LN2 = Math.LN2, - abs = Math.abs, - floor = Math.floor, - log = Math.log, - min = Math.min, - pow = Math.pow, - round = Math.round; + if ('rgb' in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } -// ES5: lock down object properties -function configureProperties(obj) { - if (getOwnPropNames && defineProp) { - var props = getOwnPropNames(obj), i; - for (i = 0; i < props.length; i += 1) { - defineProp(obj, props[i], { - value: obj[props[i]], - writable: false, - enumerable: false, - configurable: false - }); - } - } + return styles; } -// emulate ES5 getter/setter API using legacy APIs -// http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx -// (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but -// note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless) -var defineProp; -if (Object.defineProperty && (function() { - try { - Object.defineProperty({}, 'x', {}); - return true; - } catch (e) { - return false; - } - })()) { - defineProp = Object.defineProperty; -} else { - defineProp = function(o, p, desc) { - if (!o === Object(o)) throw new TypeError("Object.defineProperty called on non-object"); - if (ECMAScript.HasProperty(desc, 'get') && Object.prototype.__defineGetter__) { Object.prototype.__defineGetter__.call(o, p, desc.get); } - if (ECMAScript.HasProperty(desc, 'set') && Object.prototype.__defineSetter__) { Object.prototype.__defineSetter__.call(o, p, desc.set); } - if (ECMAScript.HasProperty(desc, 'value')) { o[p] = desc.value; } - return o; - }; -} +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); +}(ansiStyles)); -var getOwnPropNames = Object.getOwnPropertyNames || function (o) { - if (o !== Object(o)) throw new TypeError("Object.getOwnPropertyNames called on non-object"); - var props = [], p; - for (p in o) { - if (ECMAScript.HasOwnProperty(o, p)) { - props.push(p); - } - } - return props; +var hasFlag$2 = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf('--'); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; -// ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value) -// for index in 0 ... obj.length -function makeArrayAccessors(obj) { - if (!defineProp) { return; } - - if (obj.length > MAX_ARRAY_LENGTH) throw new RangeError("Array too large for polyfill"); +const os$1 = require$$0$2; +const hasFlag$1 = hasFlag$2; - function makeArrayAccessor(index) { - defineProp(obj, index, { - 'get': function() { return obj._getter(index); }, - 'set': function(v) { obj._setter(index, v); }, - enumerable: true, - configurable: false - }); - } +const env$1 = process.env; - var i; - for (i = 0; i < obj.length; i += 1) { - makeArrayAccessor(i); - } +let forceColor; +if (hasFlag$1('no-color') || + hasFlag$1('no-colors') || + hasFlag$1('color=false')) { + forceColor = false; +} else if (hasFlag$1('color') || + hasFlag$1('colors') || + hasFlag$1('color=true') || + hasFlag$1('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env$1) { + forceColor = env$1.FORCE_COLOR.length === 0 || parseInt(env$1.FORCE_COLOR, 10) !== 0; } -// Internal conversion functions: -// pack() - take a number (interpreted as Type), output a byte array -// unpack() - take a byte array, output a Type-like number - -function as_signed(value, bits) { var s = 32 - bits; return (value << s) >> s; } -function as_unsigned(value, bits) { var s = 32 - bits; return (value << s) >>> s; } +function translateLevel$1(level) { + if (level === 0) { + return false; + } -function packI8(n) { return [n & 0xff]; } -function unpackI8(bytes) { return as_signed(bytes[0], 8); } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} -function packU8(n) { return [n & 0xff]; } -function unpackU8(bytes) { return as_unsigned(bytes[0], 8); } +function supportsColor$1(stream) { + if (forceColor === false) { + return 0; + } -function packU8Clamped(n) { n = round(Number(n)); return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff]; } + if (hasFlag$1('color=16m') || + hasFlag$1('color=full') || + hasFlag$1('color=truecolor')) { + return 3; + } -function packI16(n) { return [(n >> 8) & 0xff, n & 0xff]; } -function unpackI16(bytes) { return as_signed(bytes[0] << 8 | bytes[1], 16); } + if (hasFlag$1('color=256')) { + return 2; + } -function packU16(n) { return [(n >> 8) & 0xff, n & 0xff]; } -function unpackU16(bytes) { return as_unsigned(bytes[0] << 8 | bytes[1], 16); } + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } -function packI32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } -function unpackI32(bytes) { return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } + const min = forceColor ? 1 : 0; -function packU32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } -function unpackU32(bytes) { return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. 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$1.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } -function packIEEE754(v, ebits, fbits) { + return 1; + } - var bias = (1 << (ebits - 1)) - 1, - s, e, f, i, bits, str, bytes; + if ('CI' in env$1) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$1) || env$1.CI_NAME === 'codeship') { + return 1; + } - function roundToEven(n) { - var w = floor(n), f = n - w; - if (f < 0.5) - return w; - if (f > 0.5) - return w + 1; - return w % 2 ? w + 1 : w; - } + return min; + } - // Compute sign, exponent, fraction - if (v !== v) { - // NaN - // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping - e = (1 << ebits) - 1; f = pow(2, fbits - 1); s = 0; - } else if (v === Infinity || v === -Infinity) { - e = (1 << ebits) - 1; f = 0; s = (v < 0) ? 1 : 0; - } else if (v === 0) { - e = 0; f = 0; s = (1 / v === -Infinity) ? 1 : 0; - } else { - s = v < 0; - v = abs(v); + if ('TEAMCITY_VERSION' in env$1) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0; + } - if (v >= pow(2, 1 - bias)) { - e = min(floor(log(v) / LN2), 1023); - f = roundToEven(v / pow(2, e) * pow(2, fbits)); - if (f / pow(2, fbits) >= 2) { - e = e + 1; - f = 1; - } - if (e > bias) { - // Overflow - e = (1 << ebits) - 1; - f = 0; - } else { - // Normalized - e = e + bias; - f = f - pow(2, fbits); - } - } else { - // Denormalized - e = 0; - f = roundToEven(v / pow(2, 1 - bias - fbits)); - } - } + if (env$1.COLORTERM === 'truecolor') { + return 3; + } - // Pack sign, exponent, fraction - bits = []; - for (i = fbits; i; i -= 1) { bits.push(f % 2 ? 1 : 0); f = floor(f / 2); } - for (i = ebits; i; i -= 1) { bits.push(e % 2 ? 1 : 0); e = floor(e / 2); } - bits.push(s ? 1 : 0); - bits.reverse(); - str = bits.join(''); + if ('TERM_PROGRAM' in env$1) { + const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - // Bits to bytes - bytes = []; - while (str.length) { - bytes.push(parseInt(str.substring(0, 8), 2)); - str = str.substring(8); - } - return bytes; -} + switch (env$1.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } -function unpackIEEE754(bytes, ebits, fbits) { + if (/-256(color)?$/i.test(env$1.TERM)) { + return 2; + } - // Bytes to bits - var bits = [], i, j, b, str, - bias, s, e, f; + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) { + return 1; + } - for (i = bytes.length; i; i -= 1) { - b = bytes[i - 1]; - for (j = 8; j; j -= 1) { - bits.push(b % 2 ? 1 : 0); b = b >> 1; - } - } - bits.reverse(); - str = bits.join(''); + if ('COLORTERM' in env$1) { + return 1; + } - // Unpack sign, exponent, fraction - bias = (1 << (ebits - 1)) - 1; - s = parseInt(str.substring(0, 1), 2) ? -1 : 1; - e = parseInt(str.substring(1, 1 + ebits), 2); - f = parseInt(str.substring(1 + ebits), 2); + if (env$1.TERM === 'dumb') { + return min; + } - // Produce number - if (e === (1 << ebits) - 1) { - return f !== 0 ? NaN : s * Infinity; - } else if (e > 0) { - // Normalized - return s * pow(2, e - bias) * (1 + f / pow(2, fbits)); - } else if (f !== 0) { - // Denormalized - return s * pow(2, -(bias - 1)) * (f / pow(2, fbits)); - } else { - return s < 0 ? -0 : 0; - } + return min; } -function unpackF64(b) { return unpackIEEE754(b, 11, 52); } -function packF64(v) { return packIEEE754(v, 11, 52); } -function unpackF32(b) { return unpackIEEE754(b, 8, 23); } -function packF32(v) { return packIEEE754(v, 8, 23); } - - -// -// 3 The ArrayBuffer Type -// - -(function() { - - /** @constructor */ - var ArrayBuffer = function ArrayBuffer(length) { - length = ECMAScript.ToInt32(length); - if (length < 0) throw new RangeError('ArrayBuffer size is not a small enough positive integer'); - - this.byteLength = length; - this._bytes = []; - this._bytes.length = length; +function getSupportLevel(stream) { + const level = supportsColor$1(stream); + return translateLevel$1(level); +} - var i; - for (i = 0; i < this.byteLength; i += 1) { - this._bytes[i] = 0; - } +var supportsColor_1 = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; - configureProperties(this); - }; +const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; - exports.ArrayBuffer = exports.ArrayBuffer || ArrayBuffer; +const ESCAPES = new Map([ + ['n', '\n'], + ['r', '\r'], + ['t', '\t'], + ['b', '\b'], + ['f', '\f'], + ['v', '\v'], + ['0', '\0'], + ['\\', '\\'], + ['e', '\u001B'], + ['a', '\u0007'] +]); - // - // 4 The ArrayBufferView Type - // +function unescape(c) { + if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } - // NOTE: this constructor is not exported - /** @constructor */ - var ArrayBufferView = function ArrayBufferView() { - //this.buffer = null; - //this.byteOffset = 0; - //this.byteLength = 0; - }; + return ESCAPES.get(c) || c; +} - // - // 5 The Typed Array View Types - // +function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; - function makeConstructor(bytesPerElement, pack, unpack) { - // Each TypedArray type requires a distinct constructor instance with - // identical logic, which this produces. + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if ((matches = chunk.match(STRING_REGEX))) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } - var ctor; - ctor = function(buffer, byteOffset, length) { - var array, sequence, i, s; + return results; +} - if (!arguments.length || typeof arguments[0] === 'number') { - // Constructor(unsigned long length) - this.length = ECMAScript.ToInt32(arguments[0]); - if (length < 0) throw new RangeError('ArrayBufferView size is not a small enough positive integer'); +function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; - } else if (typeof arguments[0] === 'object' && arguments[0].constructor === ctor) { - // Constructor(TypedArray array) - array = arguments[0]; + const results = []; + let matches; - this.length = array.length; - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; - for (i = 0; i < this.length; i += 1) { - this._setter(i, array._getter(i)); - } - } else if (typeof arguments[0] === 'object' && - !(arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { - // Constructor(sequence array) - sequence = arguments[0]; + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } - this.length = ECMAScript.ToUint32(sequence.length); - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; + return results; +} - for (i = 0; i < this.length; i += 1) { - s = sequence[i]; - this._setter(i, Number(s)); - } - } else if (typeof arguments[0] === 'object' && - (arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { - // Constructor(ArrayBuffer buffer, - // optional unsigned long byteOffset, optional unsigned long length) - this.buffer = buffer; +function buildStyle(chalk, styles) { + const enabled = {}; - this.byteOffset = ECMAScript.ToUint32(byteOffset); - if (this.byteOffset > this.buffer.byteLength) { - throw new RangeError("byteOffset out of range"); - } + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } - if (this.byteOffset % this.BYTES_PER_ELEMENT) { - // The given byteOffset must be a multiple of the element - // size of the specific type, otherwise an exception is raised. - throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size."); - } + let current = chalk; + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } - if (arguments.length < 3) { - this.byteLength = this.buffer.byteLength - this.byteOffset; + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } + } - if (this.byteLength % this.BYTES_PER_ELEMENT) { - throw new RangeError("length of buffer minus byteOffset not a multiple of the element size"); - } - this.length = this.byteLength / this.BYTES_PER_ELEMENT; - } else { - this.length = ECMAScript.ToUint32(length); - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - } + return current; +} - if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { - throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); - } - } else { - throw new TypeError("Unexpected argument type(s)"); - } +var templates = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; - this.constructor = ctor; + // eslint-disable-next-line max-params + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(''); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({inverse, styles: parseStyle(style)}); + } else if (close) { + if (styles.length === 0) { + throw new Error('Found extraneous } in Chalk template literal'); + } - configureProperties(this); - makeArrayAccessors(this); - }; + chunks.push(buildStyle(chalk, styles)(chunk.join(''))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); + } + }); - ctor.prototype = new ArrayBufferView(); - ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement; - ctor.prototype._pack = pack; - ctor.prototype._unpack = unpack; - ctor.BYTES_PER_ELEMENT = bytesPerElement; + chunks.push(chunk.join('')); - // getter type (unsigned long index); - ctor.prototype._getter = function(index) { - if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; + throw new Error(errMsg); + } - index = ECMAScript.ToUint32(index); - if (index >= this.length) { - return undefined$1; - } + return chunks.join(''); +}; - var bytes = [], i, o; - for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; - i < this.BYTES_PER_ELEMENT; - i += 1, o += 1) { - bytes.push(this.buffer._bytes[o]); - } - return this._unpack(bytes); - }; +(function (module) { +const escapeStringRegexp = escapeStringRegexp$1; +const ansiStyles$1 = ansiStyles.exports; +const stdoutColor = supportsColor_1.stdout; - // NONSTANDARD: convenience alias for getter: type get(unsigned long index); - ctor.prototype.get = ctor.prototype._getter; +const template = templates; - // setter void (unsigned long index, type value); - ctor.prototype._setter = function(index, value) { - if (arguments.length < 2) throw new SyntaxError("Not enough arguments"); +const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); - index = ECMAScript.ToUint32(index); - if (index >= this.length) { - return undefined$1; - } +// `supportsColor.level` → `ansiStyles.color[name]` mapping +const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; - var bytes = this._pack(value), i, o; - for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; - i < this.BYTES_PER_ELEMENT; - i += 1, o += 1) { - this.buffer._bytes[o] = bytes[i]; - } - }; +// `color-convert` models to exclude from the Chalk API due to conflicts and such +const skipModels = new Set(['gray']); - // void set(TypedArray array, optional unsigned long offset); - // void set(sequence array, optional unsigned long offset); - ctor.prototype.set = function(index, value) { - if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); - var array, sequence, offset, len, - i, s, d, - byteOffset, byteLength, tmp; +const styles = Object.create(null); - if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) { - // void set(TypedArray array, optional unsigned long offset); - array = arguments[0]; - offset = ECMAScript.ToUint32(arguments[1]); +function applyOptions(obj, options) { + options = options || {}; - if (offset + array.length > this.length) { - throw new RangeError("Offset plus length of array is out of range"); - } + // Detect level if not set manually + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === undefined ? scLevel : options.level; + obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; +} - byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT; - byteLength = array.length * this.BYTES_PER_ELEMENT; +function Chalk(options) { + // We check for this.template here since calling `chalk.constructor()` + // by itself will have a `this` of a previously constructed chalk object + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); - if (array.buffer === this.buffer) { - tmp = []; - for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) { - tmp[i] = array.buffer._bytes[s]; - } - for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) { - this.buffer._bytes[d] = tmp[i]; - } - } else { - for (i = 0, s = array.byteOffset, d = byteOffset; - i < byteLength; i += 1, s += 1, d += 1) { - this.buffer._bytes[d] = array.buffer._bytes[s]; - } - } - } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') { - // void set(sequence array, optional unsigned long offset); - sequence = arguments[0]; - len = ECMAScript.ToUint32(sequence.length); - offset = ECMAScript.ToUint32(arguments[1]); + chalk.template = function () { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; - if (offset + len > this.length) { - throw new RangeError("Offset plus length of array is out of range"); - } + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); - for (i = 0; i < len; i += 1) { - s = sequence[i]; - this._setter(offset + i, Number(s)); - } - } else { - throw new TypeError("Unexpected argument type(s)"); - } - }; + chalk.template.constructor = Chalk; - // TypedArray subarray(long begin, optional long end); - ctor.prototype.subarray = function(start, end) { - function clamp(v, min, max) { return v < min ? min : v > max ? max : v; } + return chalk.template; + } - start = ECMAScript.ToInt32(start); - end = ECMAScript.ToInt32(end); + applyOptions(this, options); +} - if (arguments.length < 1) { start = 0; } - if (arguments.length < 2) { end = this.length; } +// Use bright blue on Windows as the normal blue color is illegible +if (isSimpleWindowsTerm) { + ansiStyles$1.blue.open = '\u001B[94m'; +} - if (start < 0) { start = this.length + start; } - if (end < 0) { end = this.length + end; } +for (const key of Object.keys(ansiStyles$1)) { + ansiStyles$1[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles$1[key].close), 'g'); - start = clamp(start, 0, this.length); - end = clamp(end, 0, this.length); + styles[key] = { + get() { + const codes = ansiStyles$1[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; +} - var len = end - start; - if (len < 0) { - len = 0; - } +styles.visible = { + get() { + return build.call(this, this._styles || [], true, 'visible'); + } +}; - return new this.constructor( - this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len); - }; +ansiStyles$1.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles$1.color.close), 'g'); +for (const model of Object.keys(ansiStyles$1.color.ansi)) { + if (skipModels.has(model)) { + continue; + } - return ctor; - } + styles[model] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles$1.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles$1.color.close, + closeRe: ansiStyles$1.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} - var Int8Array = makeConstructor(1, packI8, unpackI8); - var Uint8Array = makeConstructor(1, packU8, unpackU8); - var Uint8ClampedArray = makeConstructor(1, packU8Clamped, unpackU8); - var Int16Array = makeConstructor(2, packI16, unpackI16); - var Uint16Array = makeConstructor(2, packU16, unpackU16); - var Int32Array = makeConstructor(4, packI32, unpackI32); - var Uint32Array = makeConstructor(4, packU32, unpackU32); - var Float32Array = makeConstructor(4, packF32, unpackF32); - var Float64Array = makeConstructor(8, packF64, unpackF64); +ansiStyles$1.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles$1.bgColor.close), 'g'); +for (const model of Object.keys(ansiStyles$1.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } - exports.Int8Array = exports.Int8Array || Int8Array; - exports.Uint8Array = exports.Uint8Array || Uint8Array; - exports.Uint8ClampedArray = exports.Uint8ClampedArray || Uint8ClampedArray; - exports.Int16Array = exports.Int16Array || Int16Array; - exports.Uint16Array = exports.Uint16Array || Uint16Array; - exports.Int32Array = exports.Int32Array || Int32Array; - exports.Uint32Array = exports.Uint32Array || Uint32Array; - exports.Float32Array = exports.Float32Array || Float32Array; - exports.Float64Array = exports.Float64Array || Float64Array; -}()); + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles$1.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles$1.bgColor.close, + closeRe: ansiStyles$1.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} -// -// 6 The DataView View Type -// +const proto = Object.defineProperties(() => {}, styles); -(function() { - function r(array, index) { - return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index]; - } +function build(_styles, _empty, key) { + const builder = function () { + return applyStyle.apply(builder, arguments); + }; - var IS_BIG_ENDIAN = (function() { - var u16array = new(exports.Uint16Array)([0x1234]), - u8array = new(exports.Uint8Array)(u16array.buffer); - return r(u8array, 0) === 0x12; - }()); + builder._styles = _styles; + builder._empty = _empty; - // Constructor(ArrayBuffer buffer, - // optional unsigned long byteOffset, - // optional unsigned long byteLength) - /** @constructor */ - var DataView = function DataView(buffer, byteOffset, byteLength) { - if (arguments.length === 0) { - buffer = new exports.ArrayBuffer(0); - } else if (!(buffer instanceof exports.ArrayBuffer || ECMAScript.Class(buffer) === 'ArrayBuffer')) { - throw new TypeError("TypeError"); - } + const self = this; - this.buffer = buffer || new exports.ArrayBuffer(0); + Object.defineProperty(builder, 'level', { + enumerable: true, + get() { + return self.level; + }, + set(level) { + self.level = level; + } + }); - this.byteOffset = ECMAScript.ToUint32(byteOffset); - if (this.byteOffset > this.buffer.byteLength) { - throw new RangeError("byteOffset out of range"); - } + Object.defineProperty(builder, 'enabled', { + enumerable: true, + get() { + return self.enabled; + }, + set(enabled) { + self.enabled = enabled; + } + }); - if (arguments.length < 3) { - this.byteLength = this.buffer.byteLength - this.byteOffset; - } else { - this.byteLength = ECMAScript.ToUint32(byteLength); - } + // See below for fix regarding invisible grey/dim combination on Windows + builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; - if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { - throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); - } + // `__proto__` is used because we must return a function, but there is + // no way to create a function with a different prototype + builder.__proto__ = proto; // eslint-disable-line no-proto - configureProperties(this); - }; + return builder; +} - function makeGetter(arrayType) { - return function(byteOffset, littleEndian) { +function applyStyle() { + // Support varags, but simply cast to string in case there's only one arg + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); - byteOffset = ECMAScript.ToUint32(byteOffset); + if (argsLen === 0) { + return ''; + } - if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { - throw new RangeError("Array index out of range"); - } - byteOffset += this.byteOffset; + if (argsLen > 1) { + // Don't slice `arguments`, it prevents V8 optimizations + for (let a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } - var uint8Array = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT), - bytes = [], i; - for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { - bytes.push(r(uint8Array, i)); - } + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? '' : str; + } - if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { - bytes.reverse(); - } + // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, + // see https://github.com/chalk/chalk/issues/58 + // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. + const originalDim = ansiStyles$1.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles$1.dim.open = ''; + } - return r(new arrayType(new exports.Uint8Array(bytes).buffer), 0); - }; - } + for (const code of this._styles.slice().reverse()) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + str = code.open + str.replace(code.closeRe, code.open) + code.close; - DataView.prototype.getUint8 = makeGetter(exports.Uint8Array); - DataView.prototype.getInt8 = makeGetter(exports.Int8Array); - DataView.prototype.getUint16 = makeGetter(exports.Uint16Array); - DataView.prototype.getInt16 = makeGetter(exports.Int16Array); - DataView.prototype.getUint32 = makeGetter(exports.Uint32Array); - DataView.prototype.getInt32 = makeGetter(exports.Int32Array); - DataView.prototype.getFloat32 = makeGetter(exports.Float32Array); - DataView.prototype.getFloat64 = makeGetter(exports.Float64Array); + // Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS + // https://github.com/chalk/chalk/pull/92 + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } - function makeSetter(arrayType) { - return function(byteOffset, value, littleEndian) { + // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue + ansiStyles$1.dim.open = originalDim; - byteOffset = ECMAScript.ToUint32(byteOffset); - if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { - throw new RangeError("Array index out of range"); - } + return str; +} - // Get bytes - var typeArray = new arrayType([value]), - byteArray = new exports.Uint8Array(typeArray.buffer), - bytes = [], i, byteView; +function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return [].slice.call(arguments, 1).join(' '); + } - for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { - bytes.push(r(byteArray, i)); - } + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; - // Flip if necessary - if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { - bytes.reverse(); - } + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); + parts.push(String(strings.raw[i])); + } - // Write them - byteView = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT); - byteView.set(bytes); - }; - } + return template(chalk, parts.join('')); +} - DataView.prototype.setUint8 = makeSetter(exports.Uint8Array); - DataView.prototype.setInt8 = makeSetter(exports.Int8Array); - DataView.prototype.setUint16 = makeSetter(exports.Uint16Array); - DataView.prototype.setInt16 = makeSetter(exports.Int16Array); - DataView.prototype.setUint32 = makeSetter(exports.Uint32Array); - DataView.prototype.setInt32 = makeSetter(exports.Int32Array); - DataView.prototype.setFloat32 = makeSetter(exports.Float32Array); - DataView.prototype.setFloat64 = makeSetter(exports.Float64Array); +Object.defineProperties(Chalk.prototype, styles); - exports.DataView = exports.DataView || DataView; +module.exports = Chalk(); // eslint-disable-line new-cap +module.exports.supportsColor = stdoutColor; +module.exports.default = module.exports; // For TypeScript +}(chalk)); -}()); +Object.defineProperty(lib$3, "__esModule", { + value: true }); +lib$3.shouldHighlight = shouldHighlight; +lib$3.getChalk = getChalk; +lib$3.default = highlight; -var Writable = require$$0__default['default'].Writable; +var _jsTokens = jsTokens; +var _helperValidatorIdentifier = lib$2; +var _chalk = chalk.exports; -if (typeof Uint8Array === 'undefined') { - var U8 = typedarray.Uint8Array; -} else { - var U8 = Uint8Array; +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); + +function getDefs$1(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsxIdentifier: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; } -function ConcatStream(opts, cb) { - if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb) +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; - if (typeof opts === 'function') { - cb = opts; - opts = {}; - } - if (!opts) opts = {}; + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } - var encoding = opts.encoding; - var shouldInferEncoding = false; + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); } else { - strings.push(bufferFrom_1(String(p))); + highlighted += value; } } - if (Buffer.isBuffer(parts[0])) { - strings = Buffer.concat(strings); - strings = strings.toString('utf8'); - } else { - strings = strings.join(''); - } - return strings + + return highlighted; } -function bufferConcat (parts) { - var bufs = []; - for (var i = 0; i < parts.length; i++) { - var p = parts[i]; - if (Buffer.isBuffer(p)) { - bufs.push(p); - } else if (isBufferish(p)) { - bufs.push(bufferFrom_1(p)); - } else { - bufs.push(bufferFrom_1(String(p))); - } - } - return Buffer.concat(bufs) +function shouldHighlight(options) { + return !!_chalk.supportsColor || options.forceColor; } -function arrayConcat (parts) { - var res = []; - for (var i = 0; i < parts.length; i++) { - res.push.apply(res, parts[i]); - } - return res +function getChalk(options) { + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; } -function u8Concat (parts) { - var len = 0; - for (var i = 0; i < parts.length; i++) { - if (typeof parts[i] === 'string') { - parts[i] = bufferFrom_1(parts[i]); - } - len += parts[i].length; - } - var u8 = new U8(len); - for (var i = 0, offset = 0; i < parts.length; i++) { - var part = parts[i]; - for (var j = 0; j < part.length; j++) { - u8[offset++] = part[j]; - } +function highlight(code, options = {}) { + if (shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs$1(chalk); + return highlightTokens(defs, code); + } else { + return code; } - return u8 } -var debug$1 = src('unified-engine:file-set-pipeline:stdin'); - - +Object.defineProperty(lib$4, "__esModule", { + value: true +}); +lib$4.codeFrameColumns = codeFrameColumns$1; +lib$4.default = _default; -var stdin_1 = stdin; +var _highlight = lib$3; -function stdin(context, settings, next) { - var streamIn = settings.streamIn; - var error; +let deprecationWarningShown = false; - if (settings.files && settings.files.length !== 0) { - debug$1('Ignoring `streamIn`'); +function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; +} - if (settings.filePath) { - error = new Error( - 'Do not pass both `--file-path` and real files.\nDid you mean to pass stdin instead of files?' - ); - } +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - next(error); +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); - return + if (startLine === -1) { + start = 0; } - if (streamIn.isTTY) { - debug$1('Cannot read from `tty` stream'); - next(new Error('No input')); - - return + if (endLine === -1) { + end = source.length; } - debug$1('Reading from `streamIn`'); - - streamIn.pipe(concatStream({encoding: 'string'}, read)); - - function read(value) { - var file = toVfile(settings.filePath || undefined); - - debug$1('Read from `streamIn`'); - - file.cwd = settings.cwd; - file.contents = value; - file.data.unifiedEngineGiven = true; - file.data.unifiedEngineStreamIn = true; - - context.files = [file]; + const lineDiff = endLine - startLine; + const markerLines = {}; - // If `out` was not set, set `out`. - settings.out = - settings.out === null || settings.out === undefined ? true : settings.out; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; - next(); + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } } -} - -var inherits$1 = util__default['default'].inherits; - - - -var fileSet = FileSet; -// FileSet constructor. -function FileSet() { - var self = this; - - self.files = []; - self.origins = []; - - self.expected = 0; - self.actual = 0; - - self.pipeline = trough_1(); - self.plugins = []; - - events__default['default'].init.call(self); - - self.on('one', one.bind(self)); + return { + start, + end, + markerLines + }; } -// Events. -inherits$1(FileSet, events__default['default'].EventEmitter); +function codeFrameColumns$1(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); + const defs = getDefs(chalk); -// Expose methods. -FileSet.prototype.valueOf = valueOf; -FileSet.prototype.use = use; -FileSet.prototype.add = add; + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; -// Create an array representation of `fileSet`. -function valueOf() { - return this.files -} + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; -// Attach middleware to the pipeline on `fileSet`. -function use(plugin) { - var self = this; - var pipeline = self.pipeline; - var duplicate = false; + if (hasMarker) { + let markerLine = ""; - if (plugin && plugin.pluginId) { - duplicate = self.plugins.some(matches); - } + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); - if (!duplicate && self.plugins.indexOf(plugin) !== -1) { - duplicate = true; - } + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } - if (!duplicate) { - self.plugins.push(plugin); - pipeline.use(plugin); - } + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); - return self + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } - function matches(fn) { - return fn.pluginId === plugin.pluginId + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; } } -// Add a file to be processed. -// Ignores duplicate files (based on the `filePath` at time of addition). -// Only runs `file-pipeline` on files which have not `failed` before addition. -function add(file) { - var self = this; - var origin; +function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; - if (typeof file === 'string') { - file = toVfile(file); + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } } - // Prevent files from being added multiple times. - origin = file.history[0]; + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns$1(rawLines, location, opts); +} - if (self.origins.indexOf(origin) !== -1) { - return self - } +const errorEx = errorEx_1; +const fallback = jsonParseEvenBetterErrors; +const {default: LinesAndColumns} = require$$2; +const {codeFrameColumns} = lib$4; - self.origins.push(origin); +const JSONError = errorEx('JSONError', { + fileName: errorEx.append('in %s'), + codeFrame: errorEx.append('\n\n%s\n') +}); - // Add. - self.valueOf().push(file); - self.expected++; +const parseJson = (string, reviver, filename) => { + if (typeof reviver === 'string') { + filename = reviver; + reviver = null; + } - // Force an asynchronous operation. - // This ensures that files which fall through the file pipeline immediately - // (such as, when already fatally failed) still queue up correctly. - setImmediate(add); + try { + try { + return JSON.parse(string, reviver); + } catch (error) { + fallback(string, reviver); + throw error; + } + } catch (error) { + error.message = error.message.replace(/\n/g, ''); + const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/); - return self + const jsonError = new JSONError(error); + if (filename) { + jsonError.fileName = filename; + } - function add() { - self.emit('add', file); - } -} + if (indexMatch && indexMatch.length > 0) { + const lines = new LinesAndColumns(string); + const index = Number(indexMatch[1]); + const location = lines.locationForIndex(index); -// Utility invoked when a single file has completed it's pipeline, triggering -// `done` when all files are complete. -function one() { - var self = this; + const codeFrame = codeFrameColumns( + string, + {start: {line: location.line + 1, column: location.column + 1}}, + {highlightCode: true} + ); - self.actual++; + jsonError.codeFrame = codeFrame; + } - if (self.actual >= self.expected) { - self.emit('done'); - } -} + throw jsonError; + } +}; -var debug$2 = src('unified-engine:file-pipeline:read'); +parseJson.JSONError = JSONError; +var parseJson_1 = parseJson; -var read_1$1 = read$4; +var src = {exports: {}}; -var resolve$4 = path__default['default'].resolve; -var readFile = fs__default['default'].readFile; +var browser = {exports: {}}; -// Fill a file with its contents when not already filled. -function read$4(context, file, fileSet, next) { - var filePath = file.path; +/** + * Helpers. + */ - if (file.contents || file.data.unifiedEngineStreamIn) { - debug$2('Not reading file `%s` with contents', filePath); - next(); - } else if (vfileStatistics(file).fatal) { - debug$2('Not reading failed file `%s`', filePath); - next(); - } else { - filePath = resolve$4(context.cwd, filePath); +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; - debug$2('Reading `%s` in `%s`', filePath, 'utf8'); - readFile(filePath, 'utf8', onread); - } +/** + * 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 + */ - function onread(error, contents) { - debug$2('Read `%s` (error: %s)', filePath, error); +var ms = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse$a(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) + ); +}; - file.contents = contents || ''; +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ - next(error); +function parse$a(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; } } /** - * Has own property. + * Short format for `ms`. * - * @type {Function} + * @param {Number} ms + * @return {String} + * @api private */ -var has = Object.prototype.hasOwnProperty; +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'; +} /** - * To string. + * Long format for `ms`. * - * @type {Function} + * @param {Number} ms + * @return {String} + * @api private */ -var toString$2 = Object.prototype.toString; +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural$1(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural$1(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural$1(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural$1(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} /** - * Test whether a value is "empty". - * - * @param {Mixed} val - * @return {Boolean} + * Pluralization helper. */ -function isEmpty(val) { - // Null and Undefined... - if (val == null) return true +function plural$1(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} - // Booleans... - if ('boolean' == typeof val) return false +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ - // Numbers... - if ('number' == typeof val) return val === 0 +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = ms; + createDebug.destroy = destroy; - // Strings... - if ('string' == typeof val) return val.length === 0 + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); - // Functions... - if ('function' == typeof val) return val.length === 0 + /** + * The currently active debug mode names, and names to skip. + */ - // Arrays... - if (Array.isArray(val)) return val.length === 0 + createDebug.names = []; + createDebug.skips = []; - // Errors... - if (val instanceof Error) return val.message === '' + /** + * 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 = {}; - // Objects... - if (val.toString == toString$2) { - switch (val.toString()) { + /** + * 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; - // Maps, Sets, Files and Errors... - case '[object File]': - case '[object Map]': - case '[object Set]': { - return val.size === 0 - } + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } - // Plain objects... - case '[object Object]': { - for (var key in val) { - if (has.call(val, key)) return false - } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; - return true - } - } - } + /** + * 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; - // Anything else... - return false -} + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } -/** - * Export `isEmpty`. - * - * @type {Function} - */ + const self = debug; -var lib$4 = isEmpty; + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; -var debug$3 = src('unified-engine:file-pipeline:configure'); + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + // 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); -var configure_1$1 = configure$1; + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); -// Collect configuration for a file based on the context. -function configure$1(context, file, fileSet, next) { - var config = context.configuration; - var processor = context.processor; + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); - if (vfileStatistics(file).fatal) { - return next() - } + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } - config.load(file.path, handleConfiguration); + 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. - function handleConfiguration(error, configuration) { - var plugins; - var options; - var plugin; - var length; - var index; - var name; + 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); + } - if (error) { - return next(error) - } + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); - // Store configuration on the context object. - debug$3('Using settings `%j`', configuration.settings); - processor.data('settings', configuration.settings); + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } - plugins = configuration.plugins; - length = plugins.length; - index = -1; + return debug; + } - debug$3('Using `%d` plugins', length); + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } - while (++index < length) { - plugin = plugins[index][0]; - options = plugins[index][1]; + /** + * 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; - if (options === false) { - continue - } + createDebug.names = []; + createDebug.skips = []; - // Allow for default arguments in es2020. - if (options === null || (typeof options === 'object' && lib$4(options))) { - options = undefined; - } + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; - name = plugin.displayName || plugin.name || 'function'; - debug$3('Using plugin `%s`, with options `%j`', name, options); + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } - try { - processor.use(plugin, options, fileSet); - } catch (error_) { - /* istanbul ignore next - Should not happen anymore! */ - return next(error_) - } - } + namespaces = split[i].replace(/\*/g, '.*?'); - next(); - } -} + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } -var debug$4 = src('unified-engine:file-pipeline:parse'); + /** + * 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; + } + /** + * 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; + } + let i; + let len; -var parse_1 = parse$3; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } -// Fill a file with a tree. -function parse$3(context, file) { - var message; + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } - if (vfileStatistics(file).fatal) { - return - } + return false; + } - if (context.treeIn) { - debug$4('Not parsing already parsed document'); + /** + * 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(/\.\*\?$/, '*'); + } - try { - context.tree = parseJson$1(file.toString()); - } catch (error) { - message = file.message( - new Error('Cannot read file as JSON\n' + error.message) - ); - message.fatal = true; - } + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } - // Add the preferred extension to ensure the file, when serialized, is - // correctly recognised. - // Only add it if there is a path — not if the file is for example stdin. - if (file.path) { - file.extname = context.extensions[0]; - } + /** + * 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`.'); + } - file.contents = ''; + createDebug.enable(createDebug.load()); - return - } + return createDebug; +} - debug$4('Parsing `%s`', file.path); +var common$3 = setup; - context.tree = context.processor.parse(file); +/* eslint-env browser */ - debug$4('Parsed document'); -} +(function (module, exports) { +/** + * This is the web browser implementation of `debug()`. + */ -var debug$5 = src('unified-engine:file-pipeline:transform'); +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + 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`.'); + } + }; +})(); -var transform_1 = transform; +/** + * Colors. + */ -// Transform the tree associated with a file with configured plugins. -function transform(context, file, fileSet, next) { - if (vfileStatistics(file).fatal) { - next(); - } else { - debug$5('Transforming document `%s`', file.path); - context.processor.run(context.tree, file, onrun); - } +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' +]; - function onrun(error, node) { - debug$5('Transformed document (error: %s)', error); - context.tree = node; - next(error); - } -} +/** + * 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 + */ -var debug$6 = src('unified-engine:file-pipeline:queue'); +// 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; + } + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } -var queue_1 = queue; + // 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+)/)); +} -// Queue all files which came this far. -// When the last file gets here, run the file-set pipeline and flush the queue. -function queue(context, file, fileSet, next) { - var origin = file.history[0]; - var map = fileSet.complete; - var complete = true; +/** + * Colorize log arguments if enabled. + * + * @api public + */ - if (!map) { - map = {}; - fileSet.complete = map; - } +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); - debug$6('Queueing `%s`', origin); + if (!this.useColors) { + return; + } - map[origin] = next; + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); - fileSet.valueOf().forEach(each); + // 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; + } + }); - if (!complete) { - debug$6('Not flushing: some files cannot be flushed'); - return - } + args.splice(lastC, 0, c); +} - fileSet.complete = {}; +/** + * 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 || (() => {}); - fileSet.pipeline.run(fileSet, done); +/** + * 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? + } +} - function each(file) { - var key = file.history[0]; +/** + * 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 (vfileStatistics(file).fatal) { - return - } + // 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; + } - if (typeof map[key] === 'function') { - debug$6('`%s` can be flushed', key); - } else { - debug$6('Interupting flush: `%s` is not finished', key); - complete = false; - } - } + return r; +} - function done(error) { - debug$6('Flushing: all files can be flushed'); +/** + * 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 + */ - // Flush. - for (origin in map) { - map[origin](error); - } - } +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? + } } -// Detect color support. -var color = true; +module.exports = common$3(exports); -try { - color = 'inspect' in util__default['default']; -} catch (_) { - /* istanbul ignore next - browser */ - color = false; -} - -var unistUtilInspect = color ? inspect : /* istanbul ignore next */ noColor; +const {formatters} = module.exports; -inspect.color = inspect; -noColor.color = inspect; -inspect.noColor = noColor; -noColor.noColor = noColor; +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ -var dim = ansiColor(2, 22); -var yellow = ansiColor(33, 39); -var green = ansiColor(32, 39); +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; +}(browser, browser.exports)); -// Define ANSII color removal functionality. -var colorExpression = new RegExp( - '(?:' + - '(?:\\u001b\\[)|' + - '\\u009b' + - ')' + - '(?:' + - '(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m]' + - ')|' + - '\\u001b[A-M]', - 'g' -); +var node = {exports: {}}; -// Standard keys defined by unist: https://github.com/syntax-tree/unist. -// We don’t ignore `data` though. -var ignore$2 = ['type', 'value', 'children', 'position']; +/** + * Module dependencies. + */ -// Inspects a node, without using color. -function noColor(node, pad) { - return stripColor(inspect(node, pad)) -} +(function (module, exports) { +const tty = tty$1; +const util = require$$0$4; -// Inspects a node. -function inspect(node, pad) { - var result; - var children; - var index; - var length; +/** + * This is the Node.js implementation of `debug()`. + */ - if (node && Boolean(node.length) && typeof node !== 'string') { - length = node.length; - index = -1; - result = []; +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`.' +); - while (++index < length) { - result[index] = inspect(node[index]); - } +/** + * Colors. + */ - return result.join('\n') - } +exports.colors = [6, 2, 3, 4, 5, 1]; - if (!node || !node.type) { - return String(node) - } +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 = supportsColor_1$1; - result = [formatNode(node)]; - children = node.children; - length = children && children.length; - index = -1; + 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. +} - if (!length) { - return result[0] - } +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ - if (!pad || typeof pad === 'number') { - pad = ''; - } +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(); + }); - while (++index < length) { - node = children[index]; + // 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); + } - if (index === length - 1) { - result.push(formatNesting(pad + '└─ ') + inspect(node, pad + ' ')); - } else { - result.push(formatNesting(pad + '├─ ') + inspect(node, pad + '│ ')); - } - } + obj[prop] = val; + return obj; +}, {}); - return result.join('\n') -} +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ -// Colored nesting formatter. -function formatNesting(value) { - return dim(value) +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); } -// Compile a single position. -function compile(pos) { - var values = []; +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ - if (!pos) { - return null - } +function formatArgs(args) { + const {namespace: name, useColors} = this; - values = [[pos.line || 1, pos.column || 1].join(':')]; + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; - if ('offset' in pos) { - values.push(String(pos.offset || 0)); - } + 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]; + } +} - return values +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; } -// Compile a location. -function stringify$1(start, end) { - var values = []; - var positions = []; - var offsets = []; +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ - add(start); - add(end); +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} - if (positions.length !== 0) { - values.push(positions.join('-')); - } +/** + * 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; + } +} - if (offsets.length !== 0) { - values.push(offsets.join('-')); - } +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ - return values.join(', ') +function load() { + return process.env.DEBUG; +} - // Add a position. - function add(position) { - var tuple = compile(position); +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ - if (tuple) { - positions.push(tuple[0]); +function init(debug) { + debug.inspectOpts = {}; - if (tuple[1]) { - offsets.push(tuple[1]); - } - } - } + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } } -// Colored node formatter. -function formatNode(node) { - var log = node.type; - var location = node.position || {}; - var position = stringify$1(location.start, location.end); - var key; - var values = []; - var value; - - if (node.children) { - log += dim('[') + yellow(node.children.length) + dim(']'); - } else if (typeof node.value === 'string') { - log += dim(': ') + green(JSON.stringify(node.value)); - } +module.exports = common$3(exports); - if (position) { - log += ' (' + position + ')'; - } +const {formatters} = module.exports; - for (key in node) { - value = node[key]; +/** + * Map %o to `util.inspect()`, all on a single line. + */ - if ( - ignore$2.indexOf(key) !== -1 || - value === null || - value === undefined || - (typeof value === 'object' && lib$4(value)) - ) { - continue - } +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; - values.push('[' + key + '=' + JSON.stringify(value) + ']'); - } +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ - if (values.length !== 0) { - log += ' ' + values.join(''); - } +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; +}(node, node.exports)); - return log -} +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ -// Remove ANSI colour from `value`. -function stripColor(value) { - return value.replace(colorExpression, '') +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + src.exports = browser.exports; +} else { + src.exports = node.exports; } -// Factory to wrap values in ANSI colours. -function ansiColor(open, close) { - return color +var createDebug = src.exports; - function color(value) { - return '\u001B[' + open + 'm' + value + '\u001B[' + close + 'm' - } -} +var re$6 = {exports: {}}; -var debug$7 = src('unified-engine:file-pipeline:stringify'); +// 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$2 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991; +// Max safe segment length for coercion. +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 +}; -var stringify_1 = stringify$2; +const debug$f = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {}; -// Stringify a tree. -function stringify$2(context, file) { - var processor = context.processor; - var tree = context.tree; - var value; +var debug_1 = debug$f; - if (vfileStatistics(file).fatal) { - debug$7('Not compiling failed document'); - return - } +(function (module, exports) { +const { MAX_SAFE_COMPONENT_LENGTH } = constants; +const debug = debug_1; +exports = module.exports = {}; - if (!context.output && !context.out && !context.alwaysStringify) { - debug$7('Not compiling document without output settings'); - return - } +// The actual regexps go on exports.re +const re = exports.re = []; +const src = exports.src = []; +const t = exports.t = {}; +let R = 0; - debug$7('Compiling `%s`', file.path); +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); +}; - if (context.inspect) { - // Add a `txt` extension if there is a path. - if (file.path) { - file.extname = '.txt'; - } +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. - value = unistUtilInspect[context.color ? 'color' : 'noColor'](tree) + '\n'; - } else if (context.treeOut) { - // Add a `json` extension to ensure the file is correctly seen as JSON. - // Only add it if there is a path — not if the file is for example stdin. - if (file.path) { - file.extname = '.json'; - } +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. - // Add the line feed to create a valid UNIX file. - value = JSON.stringify(tree, null, 2) + '\n'; - } else { - value = processor.stringify(tree, file); - } +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); +createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); - if (value === undefined || value === null) ; else if (typeof value === 'string' || isBuffer(value)) { - file.contents = value; - } else { - file.result = value; - } +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. - debug$7('Serialized document'); -} +createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); -var debug$8 = src('unified-engine:file-pipeline:copy'); +// ## Main Version +// Three dot-separated numeric identifiers. -var copy_1 = copy; +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`); -var stat$1 = fs__default['default'].stat; -var dirname$2 = path__default['default'].dirname; -var resolve$5 = path__default['default'].resolve; -var relative$3 = path__default['default'].relative; +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); -// Move a file. -function copy(context, file, fileSet, next) { - var output = context.output; - var multi = fileSet.expected > 1; - var outpath = output; - var currentPath = file.path; +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. - if (typeof outpath !== 'string') { - debug$8('Not copying'); - return next() - } +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] +}|${src[t.NONNUMERICIDENTIFIER]})`); - outpath = resolve$5(context.cwd, outpath); +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] +}|${src[t.NONNUMERICIDENTIFIER]})`); - debug$8('Copying `%s`', currentPath); +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. - stat$1(outpath, onstatfile); +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); - function onstatfile(error, stats) { - if (error) { - if ( - error.code !== 'ENOENT' || - output.charAt(output.length - 1) === path__default['default'].sep - ) { - return next( - new Error('Cannot read output directory. Error:\n' + error.message) - ) - } +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); - stat$1(dirname$2(outpath), onstatparent); - } else { - done(stats.isDirectory()); - } - } +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. - // This is either given an error, or the parent exists which is a directory, - // but we should keep the basename of the given file. - function onstatparent(error) { - if (error) { - next(new Error('Cannot read parent directory. Error:\n' + error.message)); - } else { - done(false); - } - } +createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); - function done(directory) { - if (!directory && multi) { - return next( - new Error('Cannot write multiple files to single output: ' + outpath) - ) - } +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. - file[directory ? 'dirname' : 'path'] = relative$3(file.cwd, outpath); +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); - debug$8('Copying document from %s to %s', currentPath, file.path); +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. - next(); - } -} +// 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. -var debug$9 = src('unified-engine:file-pipeline:stdout'); +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`); +createToken('FULL', `^${src[t.FULLPLAIN]}$`); -var stdout_1 = stdout; +// 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]}?`); -// Write a virtual file to `streamOut`. -// Ignored when `output` is given, more than one file was processed, or `out` -// is false. -function stdout(context, file, fileSet, next) { - if (!file.data.unifiedEngineGiven) { - debug$9('Ignoring programmatically added file'); - next(); - } else if (vfileStatistics(file).fatal || context.output || !context.out) { - debug$9('Ignoring writing to `streamOut`'); - next(); - } else { - debug$9('Writing document to `streamOut`'); - context.streamOut.write(file.toString(), next); - } -} +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); -var debug$a = src('unified-engine:file-pipeline:file-system'); +createToken('GTLT', '((?:<|>)?=?)'); +// 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|\\*`); -var fileSystem_1$1 = fileSystem$1; +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`); -var writeFile = fs__default['default'].writeFile; -var resolve$6 = path__default['default'].resolve; +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`); -// Write a virtual file to the file-system. -// Ignored when `output` is not given. -function fileSystem$1(context, file, fileSet, next) { - var destinationPath; +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); - if (!context.output) { - debug$a('Ignoring writing to file-system'); - return next() - } +// 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); - if (!file.data.unifiedEngineGiven) { - debug$a('Ignoring programmatically added file'); - return next() - } +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)'); - destinationPath = file.path; +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); +exports.tildeTrimReplace = '$1~'; - if (!destinationPath) { - debug$a('Cannot write file without a `destinationPath`'); - return next(new Error('Cannot write file without an output path')) - } +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); - if (vfileStatistics(file).fatal) { - debug$a('Cannot write file with a fatal error'); - return next() - } +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)'); - destinationPath = resolve$6(context.cwd, destinationPath); - debug$a('Writing document to `%s`', destinationPath); +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); +exports.caretTrimReplace = '$1^'; - file.stored = true; +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); - writeFile(destinationPath, file.toString(), next); -} +// 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]})$|^$`); -// This pipeline ensures each of the pipes always runs: even if the read pipe -// fails, queue and write run. -var filePipeline = trough_1() - .use(chunk(trough_1().use(read_1$1).use(configure_1$1).use(parse_1).use(transform_1))) - .use(chunk(trough_1().use(queue_1))) - .use(chunk(trough_1().use(stringify_1).use(copy_1).use(stdout_1).use(fileSystem_1$1))); - -// Factory to run a pipe. -// Wraps a pipe to trigger an error on the `file` in `context`, but still call -// `next`. -function chunk(pipe) { - return run +// 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'; - // Run the bound bound pipe and handles any errors. - function run(context, file, fileSet, next) { - pipe.run(context, file, fileSet, one); +// 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*$`); - function one(error) { - var messages = file.messages; - var index; +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`); - if (error) { - index = messages.indexOf(error); +// 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*$'); +}(re$6, re$6.exports)); - if (index === -1) { - error = file.message(error); - index = messages.length - 1; - } +// 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$4 = options => + !options ? {} + : typeof options !== 'object' ? { loose: true } + : opts.filter(k => options[k]).reduce((options, k) => { + options[k] = true; + return options + }, {}); +var parseOptions_1 = parseOptions$4; - messages[index].fatal = true; - } +const numeric$1 = /^[0-9]+$/; +const compareIdentifiers$1 = (a, b) => { + const anum = numeric$1.test(a); + const bnum = numeric$1.test(b); - next(); - } + if (anum && bnum) { + a = +a; + b = +b; } -} -var transform_1$1 = transform$1; - -// Transform all files. -function transform$1(context, settings, next) { - var fileSet$1 = new fileSet(); + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +}; - context.fileSet = fileSet$1; +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); - fileSet$1.on('add', add).on('done', next); +var identifiers = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers +}; - if (context.files.length === 0) { - next(); - } else { - context.files.forEach(fileSet$1.add, fileSet$1); - } +const debug$e = debug_1; +const { MAX_LENGTH: MAX_LENGTH$1, MAX_SAFE_INTEGER } = constants; +const { re: re$5, t: t$4 } = re$6.exports; - function add(file) { - filePipeline.run( - { - configuration: context.configuration, - processor: settings.processor(), - cwd: settings.cwd, - extensions: settings.extensions, - pluginPrefix: settings.pluginPrefix, - treeIn: settings.treeIn, - treeOut: settings.treeOut, - inspect: settings.inspect, - color: settings.color, - out: settings.out, - output: settings.output, - streamOut: settings.streamOut, - alwaysStringify: settings.alwaysStringify - }, - file, - fileSet$1, - done - ); +const parseOptions$3 = parseOptions_1; +const { compareIdentifiers } = identifiers; +class SemVer$e { + constructor (version, options) { + options = parseOptions$3(options); - function done(error) { - /* istanbul ignore next - Does not occur as all failures in `filePipeLine` - * are failed on each file. - * Still, just to ensure things work in the future, we add an extra - * check. */ - if (error) { - error = file.message(error); - error.fatal = true; + if (version instanceof SemVer$e) { + 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}`) + } - fileSet$1.emit('one', file); + if (version.length > MAX_LENGTH$1) { + throw new TypeError( + `version is longer than ${MAX_LENGTH$1} characters` + ) } - } -} -var hasFlag$2 = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf('--'); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); -}; + debug$e('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; -const {env: env$2} = process; + const m = version.trim().match(options.loose ? re$5[t$4.LOOSE] : re$5[t$4.FULL]); -let forceColor$2; -if (hasFlag$2('no-color') || - hasFlag$2('no-colors') || - hasFlag$2('color=false') || - hasFlag$2('color=never')) { - forceColor$2 = 0; -} else if (hasFlag$2('color') || - hasFlag$2('colors') || - hasFlag$2('color=true') || - hasFlag$2('color=always')) { - forceColor$2 = 1; -} -if ('FORCE_COLOR' in env$2) { - if (env$2.FORCE_COLOR === true || env$2.FORCE_COLOR === 'true') { - forceColor$2 = 1; - } else if (env$2.FORCE_COLOR === false || env$2.FORCE_COLOR === 'false') { - forceColor$2 = 0; - } else { - forceColor$2 = env$2.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$2.FORCE_COLOR, 10), 3); - } -} + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } -function translateLevel$2(level) { - if (level === 0) { - return false; - } + this.raw = version; - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; -function supportsColor$2(stream) { - if (forceColor$2 === 0) { - return 0; - } + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } - if (hasFlag$2('color=16m') || - hasFlag$2('color=full') || - hasFlag$2('color=truecolor')) { - return 3; - } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } - if (hasFlag$2('color=256')) { - return 2; - } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } - if (stream && !stream.isTTY && forceColor$2 === undefined) { - return 0; - } + // 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 + }); + } - const min = forceColor$2 || 0; + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } - if (env$2.TERM === 'dumb') { - return min; - } + format () { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version + } - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. 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__default['default'].release().split('.'); - if ( - Number(process.versions.node.split('.')[0]) >= 8 && - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } + toString () { + return this.version + } - return 1; - } + compare (other) { + debug$e('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer$e)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer$e(other, this.options); + } - if ('CI' in env$2) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { - return 1; - } + if (other.version === this.version) { + return 0 + } - return min; - } + return this.compareMain(other) || this.comparePre(other) + } - if ('TEAMCITY_VERSION' in env$2) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; - } + compareMain (other) { + if (!(other instanceof SemVer$e)) { + other = new SemVer$e(other, this.options); + } - if (env$2.COLORTERM === 'truecolor') { - return 3; - } + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } - if ('TERM_PROGRAM' in env$2) { - const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + comparePre (other) { + if (!(other instanceof SemVer$e)) { + other = new SemVer$e(other, this.options); + } - switch (env$2.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } + // 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 + } - if (/-256(color)?$/i.test(env$2.TERM)) { - return 2; - } + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug$e('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 (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { - return 1; - } + compareBuild (other) { + if (!(other instanceof SemVer$e)) { + other = new SemVer$e(other, this.options); + } - if ('COLORTERM' in env$2) { - return 1; - } + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug$e('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) + } - return min; -} + // 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 -function getSupportLevel$2(stream) { - const level = supportsColor$2(stream); - return translateLevel$2(level); + 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 + + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.format(); + this.raw = this.version; + return this + } } -var supportsColor_1$2 = { - supportsColor: getSupportLevel$2, - stdout: getSupportLevel$2(process.stdout), - stderr: getSupportLevel$2(process.stderr) -}; +var semver$2 = SemVer$e; -var ansiRegex = ({onlyFirst = false} = {}) => { - const pattern = [ - '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', - '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' - ].join('|'); +const {MAX_LENGTH} = constants; +const { re: re$4, t: t$3 } = re$6.exports; +const SemVer$d = semver$2; - return new RegExp(pattern, onlyFirst ? undefined : 'g'); -}; +const parseOptions$2 = parseOptions_1; +const parse$9 = (version, options) => { + options = parseOptions$2(options); -var stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; + if (version instanceof SemVer$d) { + return version + } -/* eslint-disable yoda */ + if (typeof version !== 'string') { + return null + } -const isFullwidthCodePoint = codePoint => { - if (Number.isNaN(codePoint)) { - return false; - } + if (version.length > MAX_LENGTH) { + return null + } - // Code points are derived from: - // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt - if ( - codePoint >= 0x1100 && ( - codePoint <= 0x115F || // Hangul Jamo - codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET - codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET - // CJK Radicals Supplement .. Enclosed CJK Letters and Months - (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || - // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A - (0x3250 <= codePoint && codePoint <= 0x4DBF) || - // CJK Unified Ideographs .. Yi Radicals - (0x4E00 <= codePoint && codePoint <= 0xA4C6) || - // Hangul Jamo Extended-A - (0xA960 <= codePoint && codePoint <= 0xA97C) || - // Hangul Syllables - (0xAC00 <= codePoint && codePoint <= 0xD7A3) || - // CJK Compatibility Ideographs - (0xF900 <= codePoint && codePoint <= 0xFAFF) || - // Vertical Forms - (0xFE10 <= codePoint && codePoint <= 0xFE19) || - // CJK Compatibility Forms .. Small Form Variants - (0xFE30 <= codePoint && codePoint <= 0xFE6B) || - // Halfwidth and Fullwidth Forms - (0xFF01 <= codePoint && codePoint <= 0xFF60) || - (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || - // Kana Supplement - (0x1B000 <= codePoint && codePoint <= 0x1B001) || - // Enclosed Ideographic Supplement - (0x1F200 <= codePoint && codePoint <= 0x1F251) || - // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane - (0x20000 <= codePoint && codePoint <= 0x3FFFD) - ) - ) { - return true; - } + const r = options.loose ? re$4[t$3.LOOSE] : re$4[t$3.FULL]; + if (!r.test(version)) { + return null + } - return false; + try { + return new SemVer$d(version, options) + } catch (er) { + return null + } }; -var isFullwidthCodePoint_1 = isFullwidthCodePoint; -var _default$5 = isFullwidthCodePoint; -isFullwidthCodePoint_1.default = _default$5; +var parse_1 = parse$9; -var emojiRegex = function () { - // https://mths.be/emoji - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +const parse$8 = parse_1; +const valid$1 = (version, options) => { + const v = parse$8(version, options); + return v ? v.version : null }; +var valid_1 = valid$1; -const stringWidth = string => { - string = string.replace(emojiRegex(), ' '); - - if (typeof string !== 'string' || string.length === 0) { - return 0; - } - - string = stripAnsi(string); - - let width = 0; - - for (let i = 0; i < string.length; i++) { - const code = string.codePointAt(i); - - // Ignore control characters - if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { - continue; - } - - // Ignore combining characters - if (code >= 0x300 && code <= 0x36F) { - continue; - } - - // Surrogates - if (code > 0xFFFF) { - i++; - } - - width += isFullwidthCodePoint_1(code) ? 2 : 1; - } - - return width; +const parse$7 = parse_1; +const clean = (version, options) => { + const s = parse$7(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null }; +var clean_1 = clean; -var stringWidth_1 = stringWidth; -// TODO: remove this in the next major version -var _default$6 = stringWidth; -stringWidth_1.default = _default$6; - -/*! - * repeat-string - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -/** - * Results cache - */ +const SemVer$c = semver$2; -var res = ''; -var cache; +const inc = (version, release, options, identifier) => { + if (typeof (options) === 'string') { + identifier = options; + options = undefined; + } -/** - * Expose `repeat` - */ + try { + return new SemVer$c(version, options).inc(release, identifier).version + } catch (er) { + return null + } +}; +var inc_1 = inc; -var repeatString = repeat$1; +const SemVer$b = semver$2; +const compare$b = (a, b, loose) => + new SemVer$b(a, loose).compare(new SemVer$b(b, loose)); -/** - * Repeat the given `string` the specified `number` - * of times. - * - * **Example:** - * - * ```js - * var repeat = require('repeat-string'); - * repeat('A', 5); - * //=> AAAAA - * ``` - * - * @param {String} `string` The string to repeat - * @param {Number} `number` The number of times to repeat the string - * @return {String} Repeated string - * @api public - */ +var compare_1 = compare$b; -function repeat$1(str, num) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } +const compare$a = compare_1; +const eq$2 = (a, b, loose) => compare$a(a, b, loose) === 0; +var eq_1 = eq$2; - // cover common, quick use cases - if (num === 1) return str; - if (num === 2) return str + str; +const parse$6 = parse_1; +const eq$1 = eq_1; - var max = str.length * num; - if (cache !== str || typeof cache === 'undefined') { - cache = str; - res = ''; - } else if (res.length >= max) { - return res.substr(0, max); +const diff = (version1, version2) => { + if (eq$1(version1, version2)) { + return null + } else { + const v1 = parse$6(version1); + const v2 = parse$6(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 } +}; +var diff_1 = diff; - while (max > res.length && num > 1) { - if (num & 1) { - res += str; - } - - num >>= 1; - str += str; - } +const SemVer$a = semver$2; +const major = (a, loose) => new SemVer$a(a, loose).major; +var major_1 = major; - res += str; - res = res.substr(0, max); - return res; -} +const SemVer$9 = semver$2; +const minor = (a, loose) => new SemVer$9(a, loose).minor; +var minor_1 = minor; -var vfileSort = sort; +const SemVer$8 = semver$2; +const patch = (a, loose) => new SemVer$8(a, loose).patch; +var patch_1 = patch; -var severities = { - true: 2, - false: 1, - null: 0, - undefined: 0 +const parse$5 = parse_1; +const prerelease = (version, options) => { + const parsed = parse$5(version, options); + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null }; +var prerelease_1 = prerelease; -function sort(file) { - file.messages.sort(comparator); - return file -} +const compare$9 = compare_1; +const rcompare = (a, b, loose) => compare$9(b, a, loose); +var rcompare_1 = rcompare; -function comparator(a, b) { - return ( - check$1(a, b, 'line') || - check$1(a, b, 'column') || - severities[b.fatal] - severities[a.fatal] || - compare(a, b, 'source') || - compare(a, b, 'ruleId') || - compare(a, b, 'reason') || - 0 - ) -} +const compare$8 = compare_1; +const compareLoose = (a, b) => compare$8(a, b, true); +var compareLoose_1 = compareLoose; -function check$1(a, b, property) { - return (a[property] || 0) - (b[property] || 0) -} +const SemVer$7 = semver$2; +const compareBuild$2 = (a, b, loose) => { + const versionA = new SemVer$7(a, loose); + const versionB = new SemVer$7(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB) +}; +var compareBuild_1 = compareBuild$2; -function compare(a, b, property) { - return (a[property] || '').localeCompare(b[property] || '') -} +const compareBuild$1 = compareBuild_1; +const sort$1 = (list, loose) => list.sort((a, b) => compareBuild$1(a, b, loose)); +var sort_1 = sort$1; -var supported = supportsColor_1$2.stderr.hasBasic; +const compareBuild = compareBuild_1; +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); +var rsort_1 = rsort; +const compare$7 = compare_1; +const gt$3 = (a, b, loose) => compare$7(a, b, loose) > 0; +var gt_1 = gt$3; +const compare$6 = compare_1; +const lt$2 = (a, b, loose) => compare$6(a, b, loose) < 0; +var lt_1 = lt$2; +const compare$5 = compare_1; +const neq$1 = (a, b, loose) => compare$5(a, b, loose) !== 0; +var neq_1 = neq$1; +const compare$4 = compare_1; +const gte$3 = (a, b, loose) => compare$4(a, b, loose) >= 0; +var gte_1 = gte$3; +const compare$3 = compare_1; +const lte$3 = (a, b, loose) => compare$3(a, b, loose) <= 0; +var lte_1 = lte$3; -var vfileReporter = reporter; +const eq = eq_1; +const neq = neq_1; +const gt$2 = gt_1; +const gte$2 = gte_1; +const lt$1 = lt_1; +const lte$2 = lte_1; -var push = [].push; +const cmp$1 = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') + a = a.version; + if (typeof b === 'object') + b = b.version; + return a === b -// `log-symbols` without chalk: -/* istanbul ignore next - Windows. */ -var chars = - process.platform === 'win32' - ? {error: '×', warning: '‼'} - : {error: '✖', warning: '⚠'}; + 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) -var labels = { - true: 'error', - false: 'warning', - null: 'info', - undefined: 'info' + case '>': + return gt$2(a, b, loose) + + case '>=': + return gte$2(a, b, loose) + + case '<': + return lt$1(a, b, loose) + + case '<=': + return lte$2(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } }; +var cmp_1 = cmp$1; -// Report a file’s messages. -function reporter(files, options) { - var settings = options || {}; - var one; +const SemVer$6 = semver$2; +const parse$4 = parse_1; +const {re: re$3, t: t$2} = re$6.exports; - if (!files) { - return '' +const coerce$I = (version, options) => { + if (version instanceof SemVer$6) { + return version } - // Error. - if ('name' in files && 'message' in files) { - return String(files.stack || files) + if (typeof version === 'number') { + version = String(version); } - // One file. - if (!('length' in files)) { - one = true; - files = [files]; + if (typeof version !== 'string') { + return null } - return format$1(transform$2(files, settings), one, settings) -} + options = options || {}; -function transform$2(files, options) { - var index = -1; - var rows = []; - var all = []; - var sizes = {}; - var messages; - var offset; - var message; - var messageRows; - var row; - var key; + let match = null; + if (!options.rtl) { + match = version.match(re$3[t$2.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$3[t$2.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$3[t$2.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + // leave it in a clean state + re$3[t$2.COERCERTL].lastIndex = -1; + } - while (++index < files.length) { - messages = vfileSort({messages: files[index].messages.concat()}).messages; - messageRows = []; - offset = -1; + if (match === null) + return null - while (++offset < messages.length) { - message = messages[offset]; + return parse$4(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) +}; +var coerce_1 = coerce$I; - if (!options.silent || message.fatal) { - all.push(message); +var iterator = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value; + } + }; +}; - row = { - location: unistUtilStringifyPosition( - message.location.end.line && message.location.end.column - ? message.location - : message.location.start - ), - label: labels[message.fatal], - reason: - (message.stack || message.message) + - (options.verbose && message.note ? '\n' + message.note : ''), - ruleId: message.ruleId || '', - source: message.source || '' - }; +var yallist = Yallist$1; - for (key in row) { - sizes[key] = Math.max(size(row[key]), sizes[key] || 0); - } +Yallist$1.Node = Node; +Yallist$1.create = Yallist$1; - messageRows.push(row); - } - } +function Yallist$1 (list) { + var self = this; + if (!(self instanceof Yallist$1)) { + self = new Yallist$1(); + } + + self.tail = null; + self.head = null; + self.length = 0; - if ((!options.quiet && !options.silent) || messageRows.length) { - rows.push({type: 'file', file: files[index], stats: vfileStatistics(messages)}); - push.apply(rows, messageRows); + 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 {rows: rows, stats: vfileStatistics(all), sizes: sizes} + return self } -function format$1(map, one, options) { - var enabled = options.color == null ? supported : options.color; - var lines = []; - var index = -1; - var stats; - var row; - var line; - var reason; - var rest; - var match; - - while (++index < map.rows.length) { - row = map.rows[index]; +Yallist$1.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } - if (row.type === 'file') { - stats = row.stats; - line = row.file.history[0] || options.defaultName || ''; + var next = node.next; + var prev = node.prev; - line = - one && !options.defaultName && !row.file.history[0] - ? '' - : (enabled - ? '\x1b[4m' /* Underline. */ + - (stats.fatal - ? '\x1b[31m' /* Red. */ - : stats.total - ? '\x1b[33m' /* Yellow. */ - : '\x1b[32m') /* Green. */ + - line + - '\x1b[39m\x1b[24m' - : line) + - (row.file.stored && row.file.path !== row.file.history[0] - ? ' > ' + row.file.path - : ''); + if (next) { + next.prev = prev; + } - if (!stats.total) { - line = - (line ? line + ': ' : '') + - (row.file.stored - ? enabled - ? '\x1b[33mwritten\x1b[39m' /* Yellow. */ - : 'written' - : 'no issues found'); - } + if (prev) { + prev.next = next; + } - if (line) { - if (index && map.rows[index - 1].type !== 'file') { - lines.push(''); - } + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } - lines.push(line); - } - } else { - reason = row.reason; - match = /\r?\n|\r/.exec(reason); + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; - if (match) { - rest = reason.slice(match.index); - reason = reason.slice(0, match.index); - } else { - rest = ''; - } + return next +}; - lines.push( - ( - ' ' + - repeatString(' ', map.sizes.location - size(row.location)) + - row.location + - ' ' + - (enabled - ? (row.label === 'error' - ? '\x1b[31m' /* Red. */ - : '\x1b[33m') /* Yellow. */ + - row.label + - '\x1b[39m' - : row.label) + - repeatString(' ', map.sizes.label - size(row.label)) + - ' ' + - reason + - repeatString(' ', map.sizes.reason - size(reason)) + - ' ' + - row.ruleId + - repeatString(' ', map.sizes.ruleId - size(row.ruleId)) + - ' ' + - (row.source || '') - ).replace(/ +$/, '') + rest - ); - } +Yallist$1.prototype.unshiftNode = function (node) { + if (node === this.head) { + return } - stats = map.stats; - - if (stats.fatal || stats.warn) { - line = ''; - - if (stats.fatal) { - line = - (enabled - ? '\x1b[31m' /* Red. */ + chars.error + '\x1b[39m' - : chars.error) + - ' ' + - stats.fatal + - ' ' + - (labels.true + (stats.fatal === 1 ? '' : 's')); - } + if (node.list) { + node.list.removeNode(node); + } - if (stats.warn) { - line = - (line ? line + ', ' : '') + - (enabled - ? '\x1b[33m' /* Yellow. */ + chars.warning + '\x1b[39m' - : chars.warning) + - ' ' + - stats.warn + - ' ' + - (labels.false + (stats.warn === 1 ? '' : 's')); - } + var head = this.head; + node.list = this; + node.next = head; + if (head) { + head.prev = node; + } - if (stats.total !== stats.fatal && stats.total !== stats.warn) { - line = stats.total + ' messages (' + line + ')'; - } + this.head = node; + if (!this.tail) { + this.tail = node; + } + this.length++; +}; - lines.push('', line); +Yallist$1.prototype.pushNode = function (node) { + if (node === this.tail) { + return } - return lines.join('\n') -} + if (node.list) { + node.list.removeNode(node); + } -// Get the length of `value`, ignoring ANSI sequences. -function size(value) { - var match = /\r?\n|\r/.exec(value); - return stringWidth_1(match ? value.slice(0, match.index) : value) -} + var tail = this.tail; + node.list = this; + node.prev = tail; + if (tail) { + tail.next = node; + } -var log_1 = log; + this.tail = node; + if (!this.head) { + this.head = node; + } + this.length++; +}; -var prefix = 'vfile-reporter'; +Yallist$1.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push$2(this, arguments[i]); + } + return this.length +}; -function log(context, settings, next) { - var reporter = settings.reporter || vfileReporter; - var diagnostics; +Yallist$1.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } + return this.length +}; - if (typeof reporter === 'string') { - try { - reporter = loadPlugin_1(reporter, {cwd: settings.cwd, prefix: prefix}); - } catch (_) { - next(new Error('Could not find reporter `' + reporter + '`')); - return - } +Yallist$1.prototype.pop = function () { + if (!this.tail) { + return undefined } - diagnostics = reporter( - context.files.filter(given), - Object.assign({}, settings.reporterOptions, { - quiet: settings.quiet, - silent: settings.silent, - color: settings.color - }) - ); + 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 +}; - if (diagnostics) { - if (diagnostics.charAt(diagnostics.length - 1) !== '\n') { - diagnostics += '\n'; - } +Yallist$1.prototype.shift = function () { + if (!this.head) { + return undefined + } - settings.streamError.write(diagnostics, next); + var res = this.head.value; + this.head = this.head.next; + if (this.head) { + this.head.prev = null; } else { - next(); + this.tail = null; } -} + this.length--; + return res +}; -function given(file) { - return file.data.unifiedEngineGiven -} +Yallist$1.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; + } +}; -var fileSetPipeline = trough_1() - .use(configure_1) - .use(fileSystem_1) - .use(stdin_1) - .use(transform_1$1) - .use(log_1); +Yallist$1.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; + } +}; -var PassThrough = require$$0__default['default'].PassThrough; +Yallist$1.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$1.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$1.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist$1(); + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } + return res +}; -var lib$5 = run; +Yallist$1.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist$1(); + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } + return res +}; -// Run the file set pipeline once. -// `callback` is invoked with a fatal error, or with a status code (`0` on -// success, `1` on failure). -function run(options, callback) { - var settings = {}; - var stdin = new PassThrough(); - var tree; - var detectConfig; - var hasConfig; - var detectIgnore; - var hasIgnore; +Yallist$1.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') + } - try { - stdin = process.stdin; - } catch (_) { - // Obscure bug in Node (seen on Windows). - // See: , - // . + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; } - if (!callback) { - throw new Error('Missing `callback`') + return acc +}; + +Yallist$1.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') } - if (!options || !options.processor) { - return next(new Error('Missing `processor`')) + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; } - // Processor. - settings.processor = options.processor; + return acc +}; - // Path to run as. - settings.cwd = options.cwd || process.cwd(); +Yallist$1.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 +}; - // Input. - settings.files = options.files || []; - settings.extensions = (options.extensions || []).map(extension); +Yallist$1.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 +}; - settings.filePath = options.filePath || null; - settings.streamIn = options.streamIn || stdin; +Yallist$1.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$1(); + 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 +}; - // Output. - settings.streamOut = options.streamOut || process.stdout; - settings.streamError = options.streamError || process.stderr; - settings.alwaysStringify = options.alwaysStringify; - settings.output = options.output; - settings.out = options.out; +Yallist$1.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$1(); + 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 +}; - // Null overwrites config settings, `undefined` does not. - if (settings.output === null || settings.output === undefined) { - settings.output = undefined; +Yallist$1.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1; + } + if (start < 0) { + start = this.length + start; } - if (settings.output && settings.out) { - return next(new Error('Cannot accept both `output` and `out`')) + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next; } - // Process phase management. - tree = options.tree || false; + var ret = []; + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value); + walker = this.removeNode(walker); + } + if (walker === null) { + walker = this.tail; + } - settings.treeIn = options.treeIn; - settings.treeOut = options.treeOut; - settings.inspect = options.inspect; + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev; + } - if (settings.treeIn === null || settings.treeIn === undefined) { - settings.treeIn = tree; + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]); } + return ret; +}; - if (settings.treeOut === null || settings.treeOut === undefined) { - settings.treeOut = tree; +Yallist$1.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 +}; - // Configuration. - detectConfig = options.detectConfig; - hasConfig = Boolean(options.rcName || options.packageField); +function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self); - if (detectConfig && !hasConfig) { - return next( - new Error('Missing `rcName` or `packageField` with `detectConfig`') - ) + if (inserted.next === null) { + self.tail = inserted; + } + if (inserted.prev === null) { + self.head = inserted; } - settings.detectConfig = - detectConfig === null || detectConfig === undefined - ? hasConfig - : detectConfig; - settings.rcName = options.rcName || null; - settings.rcPath = options.rcPath || null; - settings.packageField = options.packageField || null; - settings.settings = options.settings || {}; - settings.configTransform = options.configTransform; - settings.defaultConfig = options.defaultConfig; - - // Ignore. - detectIgnore = options.detectIgnore; - hasIgnore = Boolean(options.ignoreName); + self.length++; - settings.detectIgnore = - detectIgnore === null || detectIgnore === undefined - ? hasIgnore - : detectIgnore; - settings.ignoreName = options.ignoreName || null; - settings.ignorePath = options.ignorePath || null; - settings.ignorePathResolveFrom = options.ignorePathResolveFrom || 'dir'; - settings.ignorePatterns = options.ignorePatterns || []; - settings.silentlyIgnore = Boolean(options.silentlyIgnore); + return inserted +} - if (detectIgnore && !hasIgnore) { - return next(new Error('Missing `ignoreName` with `detectIgnore`')) +function push$2 (self, item) { + self.tail = new Node(item, self.tail, null, self); + if (!self.head) { + self.head = self.tail; } + self.length++; +} - // Plugins. - settings.pluginPrefix = options.pluginPrefix || null; - settings.plugins = options.plugins || {}; - - // Reporting. - settings.reporter = options.reporter || null; - settings.reporterOptions = options.reporterOptions || null; - settings.color = options.color || false; - settings.silent = options.silent || false; - settings.quiet = options.quiet || false; - settings.frail = options.frail || false; +function unshift (self, item) { + self.head = new Node(item, null, self.head, self); + if (!self.tail) { + self.tail = self.head; + } + self.length++; +} - // Process. - fileSetPipeline.run({files: options.files || []}, settings, next); +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } - function next(error, context) { - var stats = vfileStatistics((context || {}).files); - var failed = Boolean( - settings.frail ? stats.fatal || stats.warn : stats.fatal - ); + this.list = list; + this.value = value; - if (error) { - callback(error); - } else { - callback(null, failed ? 1 : 0, context); - } + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; } -} -function extension(ext) { - return ext.charAt(0) === '.' ? ext : '.' + ext + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } } -var colorName$1 = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; +try { + // add if support for Symbol.iterator is present + iterator(Yallist$1); +} catch (er) {} -/* MIT license */ +// A linked list to keep track of recently-used-ness +const Yallist = 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 = {}; -/* eslint-disable no-mixed-operators */ + 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. + 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(); + } -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) + // 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') -const reverseKeywords = {}; -for (const key of Object.keys(colorName$1)) { - reverseKeywords[colorName$1[key]] = key; -} + this[MAX] = mL || Infinity; + trim(this); + } + get max () { + return this[MAX] + } -const convert$1 = { - rgb: {channels: 3, labels: 'rgb'}, - hsl: {channels: 3, labels: 'hsl'}, - hsv: {channels: 3, labels: 'hsv'}, - hwb: {channels: 3, labels: 'hwb'}, - cmyk: {channels: 4, labels: 'cmyk'}, - xyz: {channels: 3, labels: 'xyz'}, - lab: {channels: 3, labels: 'lab'}, - lch: {channels: 3, labels: 'lch'}, - hex: {channels: 1, labels: ['hex']}, - keyword: {channels: 1, labels: ['keyword']}, - ansi16: {channels: 1, labels: ['ansi16']}, - ansi256: {channels: 1, labels: ['ansi256']}, - hcg: {channels: 3, labels: ['h', 'c', 'g']}, - apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, - gray: {channels: 1, labels: ['gray']} -}; + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale; + } + get allowStale () { + return this[ALLOW_STALE] + } -var conversions$1 = convert$1; + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') -// Hide .channels and .labels properties -for (const model of Object.keys(convert$1)) { - if (!('channels' in convert$1[model])) { - throw new Error('missing channels property: ' + model); - } + this[MAX_AGE] = mA; + trim(this); + } + get maxAge () { + return this[MAX_AGE] + } - if (!('labels' in convert$1[model])) { - throw new Error('missing channel labels property: ' + model); - } + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength; - if (convert$1[model].labels.length !== convert$1[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); - } + 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] } - const {channels, labels} = convert$1[model]; - delete convert$1[model].channels; - delete convert$1[model].labels; - Object.defineProperty(convert$1[model], 'channels', {value: channels}); - Object.defineProperty(convert$1[model], 'labels', {value: labels}); -} + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } -convert$1.rgb.hsl = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const min = Math.min(r, g, b); - const max = Math.max(r, g, b); - const delta = max - min; - let h; - let s; + 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; + } + } - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } + 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; + } + } - h = Math.min(h * 60, 360); + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } - if (h < 0) { - h += 360; - } + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } - const l = (min + max) / 2; + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + } - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } + 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 + } - return [h, s * 100, l * 100]; -}; + 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) + } -convert$1.rgb.hsv = function (rgb) { - let rdif; - let gdif; - let bdif; - let h; - let s; + dumpLru () { + return this[LRU_LIST] + } - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const v = Math.max(r, g, b); - const diff = v - Math.min(r, g, b); - const diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; - if (diff === 0) { - h = 0; - s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = (1 / 3) + rdif - bdif; - } else if (b === v) { - h = (2 / 3) + gdif - rdif; - } + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - } + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false + } - return [ - h * 360, - s * 100, - v * 100 - ]; -}; + const node = this[CACHE].get(key); + const item = node.value; -convert$1.rgb.hwb = function (rgb) { - const r = rgb[0]; - const g = rgb[1]; - let b = rgb[2]; - const h = convert$1.rgb.hsl(rgb)[0]; - const w = 1 / 255 * Math.min(r, Math.min(g, b)); + // 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); + } - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true + } - return [h, w * 100, b * 100]; -}; + const hit = new Entry(key, value, len, now, maxAge); -convert$1.rgb.cmyk = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value); - const k = Math.min(1 - r, 1 - g, 1 - b); - const c = (1 - r - k) / (1 - k) || 0; - const m = (1 - g - k) / (1 - k) || 0; - const y = (1 - b - k) / (1 - k) || 0; + return false + } - return [c * 100, m * 100, y * 100, k * 100]; -}; + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true + } -function comparativeDistance(x, y) { - /* - See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - */ - return ( - ((x[0] - y[0]) ** 2) + - ((x[1] - y[1]) ** 2) + - ((x[2] - y[2]) ** 2) - ); -} + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value; + return !isStale(this, hit) + } -convert$1.rgb.keyword = function (rgb) { - const reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } + get (key) { + return get(this, key, true) + } - let currentClosestDistance = Infinity; - let currentClosestKeyword; + peek (key) { + return get(this, key, false) + } - for (const keyword of Object.keys(colorName$1)) { - const value = colorName$1[keyword]; + pop () { + const node = this[LRU_LIST].tail; + if (!node) + return null - // Compute comparative distance - const distance = comparativeDistance(rgb, value); + del(this, node); + return node.value + } - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } + del (key) { + del(this, this[CACHE].get(key)); + } - return currentClosestKeyword; -}; + load (arr) { + // reset the cache + this.reset(); -convert$1.keyword.rgb = function (keyword) { - return colorName$1[keyword]; -}; + 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); + } + } + } + } -convert$1.rgb.xyz = function (rgb) { - let r = rgb[0] / 255; - let g = rgb[1] / 255; - let b = rgb[2] / 255; + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)); + } +} - // Assume sRGB - r = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92); - g = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92); - b = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92); +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 x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - const y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - const z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false - return [x * 100, y * 100, z * 100]; + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) }; -convert$1.rgb.lab = function (rgb) { - const xyz = convert$1.rgb.xyz(rgb); - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; +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; + } + } +}; - x /= 95.047; - y /= 100; - z /= 108.883; +const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value); - x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } +}; - const l = (116 * y) - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); +class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } +} - return [l, a, b]; +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); }; -convert$1.hsl.rgb = function (hsl) { - const h = hsl[0] / 360; - const s = hsl[1] / 100; - const l = hsl[2] / 100; - let t2; - let t3; - let val; +var lruCache = LRUCache; - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +// hoisted class for cyclic dependency +class Range$a { + constructor (range, options) { + options = parseOptions$1(options); - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } + if (range instanceof Range$a) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range$a(range.raw, options) + } + } - const t1 = 2 * l - t2; + if (range instanceof Comparator$2) { + // just put it in the set and return + this.raw = range.value; + this.set = [[range]]; + this.format(); + return this + } - const rgb = [0, 0, 0]; - for (let i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; - if (t3 > 1) { - t3--; - } + // 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.set.length) { + throw new TypeError(`Invalid SemVer Range: ${range}`) + } + + // 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 (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } + this.format(); + } - rgb[i] = val * 255; - } + format () { + this.range = this.set + .map((comps) => { + return comps.join(' ').trim() + }) + .join('||') + .trim(); + return this.range + } - return rgb; -}; + 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$1.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$2[t$1.HYPHENRANGELOOSE] : re$2[t$1.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug$d('hyphen replace', range); + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re$2[t$1.COMPARATORTRIM], comparatorTrimReplace); + debug$d('comparator trim', range, re$2[t$1.COMPARATORTRIM]); + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re$2[t$1.TILDETRIM], tildeTrimReplace); + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re$2[t$1.CARETTRIM], caretTrimReplace); + + // normalize spaces + range = range.split(/\s+/).join(' '); + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + const compRe = loose ? re$2[t$1.COMPARATORLOOSE] : re$2[t$1.COMPARATOR]; + const rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + // in loose mode, throw out any that are not valid comparators + .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true) + .map(comp => new Comparator$2(comp, this.options)); + + // 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 + 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$1.set(memoKey, result); + return result + } -convert$1.hsl.hsv = function (hsl) { - const h = hsl[0]; - let s = hsl[1] / 100; - let l = hsl[2] / 100; - let smin = s; - const lmin = Math.max(l, 0.01); + intersects (range, options) { + if (!(range instanceof Range$a)) { + throw new TypeError('a Range is required') + } - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - const v = (l + s) / 2; - const sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + 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) + }) + }) + ) + }) + ) + }) + } - return [h, sv * 100, v * 100]; -}; + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } -convert$1.hsv.rgb = function (hsv) { - const h = hsv[0] / 60; - const s = hsv[1] / 100; - let v = hsv[2] / 100; - const hi = Math.floor(h) % 6; + if (typeof version === 'string') { + try { + version = new SemVer$5(version, this.options); + } catch (er) { + return false + } + } - const f = h - Math.floor(h); - const p = 255 * v * (1 - s); - const q = 255 * v * (1 - (s * f)); - const t = 255 * v * (1 - (s * (1 - f))); - v *= 255; + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} +var range$1 = Range$a; - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; +const LRU = lruCache; +const cache$1 = new LRU({ max: 1000 }); -convert$1.hsv.hsl = function (hsv) { - const h = hsv[0]; - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const vmin = Math.max(v, 0.01); - let sl; - let l; +const parseOptions$1 = parseOptions_1; +const Comparator$2 = comparator$1; +const debug$d = debug_1; +const SemVer$5 = semver$2; +const { + re: re$2, + t: t$1, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace +} = re$6.exports; + +const isNullSet = c => c.value === '<0.0.0-0'; +const isAny = c => c.value === ''; + +// 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) + }); - l = (2 - s) * v; - const lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; + testComparator = remainingComparators.pop(); + } - return [h, sl * 100, l * 100]; + return result }; -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert$1.hwb.rgb = function (hwb) { - const h = hwb[0] / 360; - let wh = hwb[1] / 100; - let bl = hwb[2] / 100; - const ratio = wh + bl; - let f; +// 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$d('comp', comp, options); + comp = replaceCarets(comp, options); + debug$d('caret', comp); + comp = replaceTildes(comp, options); + debug$d('tildes', comp); + comp = replaceXRanges(comp, options); + debug$d('xrange', comp); + comp = replaceStars(comp, options); + debug$d('stars', comp); + return comp +}; + +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((comp) => { + return replaceTilde(comp, options) + }).join(' '); + +const replaceTilde = (comp, options) => { + const r = options.loose ? re$2[t$1.TILDELOOSE] : re$2[t$1.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug$d('tilde', comp, _, M, m, p, pr); + let ret; - // Wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } + 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$d('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`; + } - const i = Math.floor(6 * h); - const v = 1 - bl; - f = 6 * h - i; + debug$d('tilde return', ret); + return ret + }) +}; - if ((i & 0x01) !== 0) { - f = 1 - f; - } +// ^ --> * (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((comp) => { + return replaceCaret(comp, options) + }).join(' '); + +const replaceCaret = (comp, options) => { + debug$d('caret', comp, options); + const r = options.loose ? re$2[t$1.CARETLOOSE] : re$2[t$1.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug$d('caret', comp, _, M, m, p, pr); + let ret; - const n = wh + f * (v - wh); // Linear interpolation + 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$d('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`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0`; + } + } else { + debug$d('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`; + } + } - let r; - let g; - let b; - /* eslint-disable max-statements-per-line,no-multi-spaces */ - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } - /* eslint-enable max-statements-per-line,no-multi-spaces */ + debug$d('caret return', ret); + return ret + }) +}; - return [r * 255, g * 255, b * 255]; +const replaceXRanges = (comp, options) => { + debug$d('replaceXRanges', comp, options); + return comp.split(/\s+/).map((comp) => { + return replaceXRange(comp, options) + }).join(' ') }; -convert$1.cmyk.rgb = function (cmyk) { - const c = cmyk[0] / 100; - const m = cmyk[1] / 100; - const y = cmyk[2] / 100; - const k = cmyk[3] / 100; +const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re$2[t$1.XRANGELOOSE] : re$2[t$1.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug$d('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; - const r = 1 - Math.min(1, c * (1 - k) + k); - const g = 1 - Math.min(1, m * (1 - k) + k); - const b = 1 - Math.min(1, y * (1 - k) + k); + if (gtlt === '=' && anyX) { + gtlt = ''; + } - return [r * 255, g * 255, b * 255]; -}; + // 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' : ''; -convert$1.xyz.rgb = function (xyz) { - const x = xyz[0] / 100; - const y = xyz[1] / 100; - const z = xyz[2] / 100; - let r; - let g; - let b; + 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; + } + } - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + if (gtlt === '<') + pr = '-0'; - // Assume sRGB - r = r > 0.0031308 - ? ((1.055 * (r ** (1.0 / 2.4))) - 0.055) - : r * 12.92; + 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`; + } - g = g > 0.0031308 - ? ((1.055 * (g ** (1.0 / 2.4))) - 0.055) - : g * 12.92; + debug$d('xRange return', ret); - b = b > 0.0031308 - ? ((1.055 * (b ** (1.0 / 2.4))) - 0.055) - : b * 12.92; + return ret + }) +}; - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug$d('replaceStars', comp, options); + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re$2[t$1.STAR], '') +}; + +const replaceGTE0 = (comp, options) => { + debug$d('replaceGTE0', comp, options); + return comp.trim() + .replace(re$2[options.includePrerelease ? t$1.GTE0PRE : t$1.GTE0], '') +}; + +// 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 [r * 255, g * 255, b * 255]; + return (`${from} ${to}`).trim() }; -convert$1.xyz.lab = function (xyz) { - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } - x /= 95.047; - y /= 100; - z /= 108.883; + 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$d(set[i].semver); + if (set[i].semver === Comparator$2.ANY) { + continue + } - x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + 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 + } + } + } - const l = (116 * y) - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); + // Version has a -pre, but it's not one of the ones we like. + return false + } - return [l, a, b]; + return true }; -convert$1.lab.xyz = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let x; - let y; - let z; +const ANY$2 = Symbol('SemVer ANY'); +// hoisted class for cyclic dependency +class Comparator$1 { + static get ANY () { + return ANY$2 + } + constructor (comp, options) { + options = parseOptions(options); - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; + if (comp instanceof Comparator$1) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value; + } + } - const y2 = y ** 3; - const x2 = x ** 3; - const z2 = z ** 3; - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + debug$c('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); - x *= 95.047; - y *= 100; - z *= 108.883; + if (this.semver === ANY$2) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } - return [x, y, z]; -}; + debug$c('comp', this); + } -convert$1.lab.lch = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let h; + parse (comp) { + const r = this.options.loose ? re$1[t.COMPARATORLOOSE] : re$1[t.COMPARATOR]; + const m = comp.match(r); - const hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : ''; + if (this.operator === '=') { + this.operator = ''; + } - if (h < 0) { - h += 360; - } + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY$2; + } else { + this.semver = new SemVer$4(m[2], this.options.loose); + } + } - const c = Math.sqrt(a * a + b * b); + toString () { + return this.value + } - return [l, c, h]; -}; + test (version) { + debug$c('Comparator.test', version, this.options.loose); -convert$1.lch.lab = function (lch) { - const l = lch[0]; - const c = lch[1]; - const h = lch[2]; + if (this.semver === ANY$2 || version === ANY$2) { + return true + } - const hr = h / 360 * 2 * Math.PI; - const a = c * Math.cos(hr); - const b = c * Math.sin(hr); + if (typeof version === 'string') { + try { + version = new SemVer$4(version, this.options); + } catch (er) { + return false + } + } - return [l, a, b]; -}; + return cmp(version, this.operator, this.semver, this.options) + } -convert$1.rgb.ansi16 = function (args, saturation = null) { - const [r, g, b] = args; - let value = saturation === null ? convert$1.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + intersects (comp, options) { + if (!(comp instanceof Comparator$1)) { + throw new TypeError('a Comparator is required') + } - value = Math.round(value / 50); + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } - if (value === 0) { - return 30; - } + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range$9(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range$9(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 === '>'); - let ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); + return ( + sameDirectionIncreasing || + sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || + oppositeDirectionsGreaterThan + ) + } +} - if (value === 2) { - ansi += 60; - } +var comparator$1 = Comparator$1; - return ansi; -}; +const parseOptions = parseOptions_1; +const {re: re$1, t} = re$6.exports; +const cmp = cmp_1; +const debug$c = debug_1; +const SemVer$4 = semver$2; +const Range$9 = range$1; -convert$1.hsv.ansi16 = function (args) { - // Optimization here; we already know the value and don't need to get - // it converted for us. - return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]); +const Range$8 = range$1; +const satisfies$3 = (version, range, options) => { + try { + range = new Range$8(range, options); + } catch (er) { + return false + } + return range.test(version) }; +var satisfies_1 = satisfies$3; -convert$1.rgb.ansi256 = function (args) { - const r = args[0]; - const g = args[1]; - const b = args[2]; - - // We use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } +const Range$7 = range$1; - if (r > 248) { - return 231; - } +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range$7(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); - return Math.round(((r - 8) / 247) * 24) + 232; - } +var toComparators_1 = toComparators; - const ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); +const SemVer$3 = semver$2; +const Range$6 = range$1; - return ansi; +const maxSatisfying = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range$6(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$3(max, options); + } + } + }); + return max }; +var maxSatisfying_1 = maxSatisfying; -convert$1.ansi16.rgb = function (args) { - let color = args % 10; +const SemVer$2 = semver$2; +const Range$5 = range$1; +const minSatisfying = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range$5(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$2(min, options); + } + } + }); + return min +}; +var minSatisfying_1 = minSatisfying; - // Handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } +const SemVer$1 = semver$2; +const Range$4 = range$1; +const gt$1 = gt_1; - color = color / 10.5 * 255; +const minVersion = (range, loose) => { + range = new Range$4(range, loose); - return [color, color, color]; - } + let minver = new SemVer$1('0.0.0'); + if (range.test(minver)) { + return minver + } - const mult = (~~(args > 50) + 1) * 0.5; - const r = ((color & 1) * mult) * 255; - const g = (((color >> 1) & 1) * mult) * 255; - const b = (((color >> 2) & 1) * mult) * 255; + minver = new SemVer$1('0.0.0-0'); + if (range.test(minver)) { + return minver + } - return [r, g, b]; -}; + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; -convert$1.ansi256.rgb = function (args) { - // Handle greyscale - if (args >= 232) { - const c = (args - 232) * 10 + 8; - return [c, c, c]; - } + let setMin = null; + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer$1(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$1(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$1(minver, setMin))) + minver = setMin; + } - args -= 16; + if (minver && range.test(minver)) { + return minver + } - let rem; - const r = Math.floor(args / 36) / 5 * 255; - const g = Math.floor((rem = args % 36) / 6) / 5 * 255; - const b = (rem % 6) / 5 * 255; + return null +}; +var minVersion_1 = minVersion; - return [r, g, b]; +const Range$3 = range$1; +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range$3(range, options).range || '*' + } catch (er) { + return null + } }; +var valid = validRange; + +const SemVer = semver$2; +const Comparator = comparator$1; +const {ANY: ANY$1} = Comparator; +const Range$2 = range$1; +const satisfies$2 = satisfies_1; +const gt = gt_1; +const lt = lt_1; +const lte$1 = lte_1; +const gte$1 = 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; + ltefn = lte$1; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break + case '<': + gtfn = lt; + ltefn = gte$1; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } -convert$1.rgb.hex = function (args) { - const integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); + // If it satisfies the range it is not outside + if (satisfies$2(version, range, options)) { + return false + } - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. -convert$1.hex.rgb = function (args) { - const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; - let colorString = match[0]; + let high = null; + let low = null; - if (match[0].length === 3) { - colorString = colorString.split('').map(char => { - return char + char; - }).join(''); - } + comparators.forEach((comparator) => { + if (comparator.semver === ANY$1) { + 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; + } + }); - const integer = parseInt(colorString, 16); - const r = (integer >> 16) & 0xFF; - const g = (integer >> 8) & 0xFF; - const b = integer & 0xFF; + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } - return [r, g, b]; + // 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 }; -convert$1.rgb.hcg = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const max = Math.max(Math.max(r, g), b); - const min = Math.min(Math.min(r, g), b); - const chroma = (max - min); - let grayscale; - let hue; - - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } +var outside_1 = outside$2; + +// Determine if version is greater than all the versions possible in the range. +const outside$1 = outside_1; +const gtr = (version, range, options) => outside$1(version, range, '>', options); +var gtr_1 = gtr; + +const outside = outside_1; +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options); +var ltr_1 = ltr; + +const Range$1 = range$1; +const intersects = (r1, r2, options) => { + r1 = new Range$1(r1, options); + r2 = new Range$1(r2, options); + return r1.intersects(r2) +}; +var intersects_1 = intersects; + +// 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$1 = satisfies_1; +const compare$2 = compare_1; +var simplify = (versions, range, options) => { + const set = []; + let min = null; + let prev = null; + const v = versions.sort((a, b) => compare$2(a, b, options)); + for (const version of v) { + const included = satisfies$1(version, range, options); + if (included) { + prev = version; + if (!min) + min = version; + } else { + if (prev) { + set.push([min, prev]); + } + prev = null; + min = null; + } + } + if (min) + set.push([min, null]); + + 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 +}; - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma; - } +const Range = range$1; +const { ANY } = comparator$1; +const satisfies = satisfies_1; +const compare$1 = compare_1; - hue /= 6; - hue %= 1; +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` 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 return false +// - 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 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 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 any C is a = range, and GT or LT are set, return false +// - Else return true + +const subset = (sub, dom, options) => { + if (sub === dom) + return true - return [hue * 360, chroma * 100, grayscale * 100]; + 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 }; -convert$1.hsl.hcg = function (hsl) { - const s = hsl[1] / 100; - const l = hsl[2] / 100; - - const c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l)); +const simpleSubset = (sub, dom, options) => { + if (sub === dom) + return true - let f = 0; - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } + if (sub.length === 1 && sub[0].semver === ANY) + return dom.length === 1 && dom[0].semver === ANY - return [hsl[0], c * 100, f * 100]; -}; + 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); + } -convert$1.hsv.hcg = function (hsv) { - const s = hsv[1] / 100; - const v = hsv[2] / 100; + if (eqSet.size > 1) + return null - const c = s * v; - let f = 0; + let gtltComp; + if (gt && lt) { + gtltComp = compare$1(gt.semver, lt.semver, options); + if (gtltComp > 0) + return null + else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) + return null + } - if (c < 1.0) { - f = (v - c) / (1 - c); - } + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) + return null - return [hsv[0], c * 100, f * 100]; -}; + if (lt && !satisfies(eq, String(lt), options)) + return null -convert$1.hcg.rgb = function (hcg) { - const h = hcg[0] / 360; - const c = hcg[1] / 100; - const g = hcg[2] / 100; + for (const c of dom) { + if (!satisfies(eq, String(c), options)) + return false + } - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } + return true + } - const pure = [0, 0, 0]; - const hi = (h % 1) * 6; - const v = hi % 1; - const w = 1 - v; - let mg = 0; + let higher, lower; + let hasDomLT, hasDomGT; + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + if (gt) { + 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 + } + if (lt) { + 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 + } + if (!c.operator && (lt || gt) && gtltComp !== 0) + return false + } - /* eslint-disable max-statements-per-line */ - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } - /* eslint-enable max-statements-per-line */ + // 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 - mg = (1.0 - c) * g; + if (lt && hasDomGT && !gt && gtltComp !== 0) + return false - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; + return true }; -convert$1.hcg.hsv = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) + return b + const comp = compare$1(a.semver, b.semver, options); + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +}; + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) + return b + const comp = compare$1(a.semver, b.semver, options); + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +}; + +var subset_1 = subset; + +// just pre-load all the stuff that index.js lazily exports +const internalRe = re$6.exports; +var semver$1 = { + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + SemVer: semver$2, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, + parse: parse_1, + valid: valid_1, + clean: clean_1, + inc: inc_1, + diff: diff_1, + major: major_1, + minor: minor_1, + patch: patch_1, + prerelease: prerelease_1, + compare: compare_1, + rcompare: rcompare_1, + compareLoose: compareLoose_1, + compareBuild: compareBuild_1, + sort: sort_1, + rsort: rsort_1, + gt: gt_1, + lt: lt_1, + eq: eq_1, + neq: neq_1, + gte: gte_1, + lte: lte_1, + cmp: cmp_1, + coerce: coerce_1, + Comparator: comparator$1, + Range: range$1, + satisfies: satisfies_1, + toComparators: toComparators_1, + maxSatisfying: maxSatisfying_1, + minSatisfying: minSatisfying_1, + minVersion: minVersion_1, + validRange: valid, + outside: outside_1, + gtr: gtr_1, + ltr: ltr_1, + intersects: intersects_1, + simplifyRange: simplify, + subset: subset_1, +}; + +var semver = semver$1; + +var builtins = function ({ + version = process.version, + experimental = false +} = {}) { + var coreModules = [ + 'assert', + 'buffer', + 'child_process', + 'cluster', + 'console', + 'constants', + 'crypto', + 'dgram', + 'dns', + 'domain', + 'events', + 'fs', + 'http', + 'https', + 'module', + 'net', + 'os', + 'path', + 'punycode', + 'querystring', + 'readline', + 'repl', + 'stream', + 'string_decoder', + 'sys', + 'timers', + 'tls', + 'tty', + 'url', + 'util', + 'vm', + 'zlib' + ]; + + if (semver.lt(version, '6.0.0')) coreModules.push('freelist'); + if (semver.gte(version, '1.0.0')) coreModules.push('v8'); + if (semver.gte(version, '1.1.0')) coreModules.push('process'); + if (semver.gte(version, '8.0.0')) coreModules.push('inspector'); + if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks'); + if (semver.gte(version, '8.4.0')) coreModules.push('http2'); + if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks'); + if (semver.gte(version, '10.0.0')) coreModules.push('trace_events'); - const v = c + g * (1.0 - c); - let f = 0; + if ( + semver.gte(version, '10.5.0') && + (experimental || semver.gte(version, '12.0.0')) + ) { + coreModules.push('worker_threads'); + } + if (semver.gte(version, '12.16.0') && experimental) { + coreModules.push('wasi'); + } + + return coreModules +}; - if (v > 0.0) { - f = c / v; - } +// Manually “tree shaken” from: - return [hcg[0], f * 100, v * 100]; -}; +const reader = {read: read$3}; +var packageJsonReader = reader; -convert$1.hcg.hsl = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; +/** + * @param {string} jsonPath + * @returns {{string: string}} + */ +function read$3(jsonPath) { + return find$1(path$b.dirname(jsonPath)) +} - const l = g * (1.0 - c) + 0.5 * c; - let s = 0; +/** + * @param {string} dir + * @returns {{string: string}} + */ +function find$1(dir) { + try { + const string = require$$0$3.readFileSync( + path$b.toNamespacedPath(path$b.join(dir, 'package.json')), + 'utf8' + ); + return {string} + } catch (error) { + if (error.code === 'ENOENT') { + const parent = path$b.dirname(dir); + if (dir !== parent) return find$1(parent) + return {string: undefined} + // Throw all other errors. + /* c8 ignore next 4 */ + } - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } + throw error + } +} - return [hcg[0], s * 100, l * 100]; -}; +// Manually “tree shaken” from: -convert$1.hcg.hwb = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; +const isWindows$1 = process.platform === 'win32'; -convert$1.hwb.hcg = function (hwb) { - const w = hwb[1] / 100; - const b = hwb[2] / 100; - const v = 1 - b; - const c = v - w; - let g = 0; +const own$e = {}.hasOwnProperty; - if (c < 1) { - g = (v - c) / (1 - c); - } +const codes = {}; - return [hwb[0], c * 100, g * 100]; -}; +/** + * @typedef {(...args: unknown[]) => string} MessageFunction + */ -convert$1.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; +/** @type {Map} */ +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +/** @type {number} */ +let userStackTraceLimit; -convert$1.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; -}; +codes.ERR_INVALID_MODULE_SPECIFIER = createError( + 'ERR_INVALID_MODULE_SPECIFIER', + /** + * @param {string} request + * @param {string} reason + * @param {string} [base] + */ + (request, reason, base = undefined) => { + return `Invalid module "${request}" ${reason}${ + base ? ` imported from ${base}` : '' + }` + }, + TypeError +); -convert$1.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; +codes.ERR_INVALID_PACKAGE_CONFIG = createError( + 'ERR_INVALID_PACKAGE_CONFIG', + /** + * @param {string} path + * @param {string} [base] + * @param {string} [message] + */ + (path, base, message) => { + return `Invalid package config ${path}${ + base ? ` while importing ${base}` : '' + }${message ? `. ${message}` : ''}` + }, + Error +); -convert$1.gray.hsl = function (args) { - return [0, 0, args[0]]; -}; +codes.ERR_INVALID_PACKAGE_TARGET = createError( + 'ERR_INVALID_PACKAGE_TARGET', + /** + * @param {string} pkgPath + * @param {string} key + * @param {unknown} target + * @param {boolean} [isImport=false] + * @param {string} [base] + */ + (pkgPath, key, target, isImport = false, base = undefined) => { + const relError = + typeof target === 'string' && + !isImport && + target.length > 0 && + !target.startsWith('./'); + if (key === '.') { + assert$2(isImport === false); + return ( + `Invalid "exports" main target ${JSON.stringify(target)} defined ` + + `in the package config ${pkgPath}package.json${ + base ? ` imported from ${base}` : '' + }${relError ? '; targets must start with "./"' : ''}` + ) + } -convert$1.gray.hsv = convert$1.gray.hsl; + return `Invalid "${ + isImport ? 'imports' : 'exports' + }" target ${JSON.stringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${ + base ? ` imported from ${base}` : '' + }${relError ? '; targets must start with "./"' : ''}` + }, + Error +); -convert$1.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; +codes.ERR_MODULE_NOT_FOUND = createError( + 'ERR_MODULE_NOT_FOUND', + /** + * @param {string} path + * @param {string} base + * @param {string} [type] + */ + (path, base, type = 'package') => { + return `Cannot find ${type} '${path}' imported from ${base}` + }, + Error +); -convert$1.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError( + 'ERR_PACKAGE_IMPORT_NOT_DEFINED', + /** + * @param {string} specifier + * @param {string} packagePath + * @param {string} base + */ + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${ + packagePath ? ` in package ${packagePath}package.json` : '' + } imported from ${base}` + }, + TypeError +); -convert$1.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError( + 'ERR_PACKAGE_PATH_NOT_EXPORTED', + /** + * @param {string} pkgPath + * @param {string} subpath + * @param {string} [base] + */ + (pkgPath, subpath, base = undefined) => { + if (subpath === '.') + return `No "exports" main defined in ${pkgPath}package.json${ + base ? ` imported from ${base}` : '' + }` + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${ + base ? ` imported from ${base}` : '' + }` + }, + Error +); -convert$1.gray.hex = function (gray) { - const val = Math.round(gray[0] / 100 * 255) & 0xFF; - const integer = (val << 16) + (val << 8) + val; +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError( + 'ERR_UNSUPPORTED_DIR_IMPORT', + "Directory import '%s' is not supported " + + 'resolving ES modules imported from %s', + Error +); - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; +codes.ERR_UNKNOWN_FILE_EXTENSION = createError( + 'ERR_UNKNOWN_FILE_EXTENSION', + 'Unknown file extension "%s" for %s', + TypeError +); -convert$1.rgb.gray = function (rgb) { - const val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; -}; +codes.ERR_INVALID_ARG_VALUE = createError( + 'ERR_INVALID_ARG_VALUE', + /** + * @param {string} name + * @param {unknown} value + * @param {string} [reason='is invalid'] + */ + (name, value, reason = 'is invalid') => { + let inspected = inspect$1(value); -/* - This function routes a model to all other models. + if (inspected.length > 128) { + inspected = `${inspected.slice(0, 128)}...`; + } - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). + const type = name.includes('.') ? 'property' : 'argument'; - conversions that are not possible simply are not included. -*/ + return `The ${type} '${name}' ${reason}. Received ${inspected}` + }, + TypeError + // Note: extra classes have been shaken out. + // , RangeError +); -function buildGraph$1() { - const graph = {}; - // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - const models = Object.keys(conversions$1); +codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError( + 'ERR_UNSUPPORTED_ESM_URL_SCHEME', + /** + * @param {URL} url + */ + (url) => { + let message = + 'Only file and data URLs are supported by the default ESM loader'; - for (let len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } + if (isWindows$1 && url.protocol.length === 2) { + message += '. On Windows, absolute paths must be valid file:// URLs'; + } - return graph; -} + message += `. Received protocol '${url.protocol}'`; + return message + }, + Error +); -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS$1(fromModel) { - const graph = buildGraph$1(); - const queue = [fromModel]; // Unshift -> queue -> pop +/** + * Utility function for registering the error codes. Only used here. Exported + * *only* to allow for testing. + * @param {string} sym + * @param {MessageFunction|string} value + * @param {ErrorConstructor} def + * @returns {new (...args: unknown[]) => Error} + */ +function createError(sym, value, def) { + // Special case for SystemError that formats the error message differently + // The SystemErrors only have SystemError as their base classes. + messages.set(sym, value); - graph[fromModel].distance = 0; + return makeNodeErrorWithCode(def, sym) +} - while (queue.length) { - const current = queue.pop(); - const adjacents = Object.keys(conversions$1[current]); +/** + * @param {ErrorConstructor} Base + * @param {string} key + * @returns {ErrorConstructor} + */ +function makeNodeErrorWithCode(Base, key) { + // @ts-expect-error It’s a Node error. + return NodeError + /** + * @param {unknown[]} args + */ + function NodeError(...args) { + const limit = Error.stackTraceLimit; + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; + const error = new Base(); + // Reset the limit and setting the name property. + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; + const message = getMessage(key, args, error); + Object.defineProperty(error, 'message', { + value: message, + enumerable: false, + writable: true, + configurable: true + }); + Object.defineProperty(error, 'toString', { + /** @this {Error} */ + value() { + return `${this.name} [${key}]: ${this.message}` + }, + enumerable: false, + writable: true, + configurable: true + }); + addCodeToName(error, Base.name, key); + // @ts-expect-error It’s a Node error. + error.code = key; + return error + } +} - for (let len = adjacents.length, i = 0; i < len; i++) { - const adjacent = adjacents[i]; - const node = graph[adjacent]; +const addCodeToName = hideStackFrames( + /** + * @param {Error} error + * @param {string} name + * @param {string} code + * @returns {void} + */ + function (error, name, code) { + // Set the stack + error = captureLargerStackTrace(error); + // Add the error code to the name to include it in the stack trace. + error.name = `${name} [${code}]`; + // Access the stack to generate the error message including the error code + // from the name. + error.stack; // eslint-disable-line no-unused-expressions + // Reset the name to the actual name. + if (name === 'SystemError') { + Object.defineProperty(error, 'name', { + value: name, + enumerable: false, + writable: true, + configurable: true + }); + } else { + delete error.name; + } + } +); - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } +/** + * @returns {boolean} + */ +function isErrorStackTraceLimitWritable() { + const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + if (desc === undefined) { + return Object.isExtensible(Error) + } - return graph; + return own$e.call(desc, 'writable') ? desc.writable : desc.set !== undefined } -function link$1(from, to) { - return function (args) { - return to(from(args)); - }; +/** + * This function removes unnecessary frames from Node.js core errors. + * @template {(...args: unknown[]) => unknown} T + * @type {(fn: T) => T} + */ +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; + Object.defineProperty(fn, 'name', {value: hidden}); + return fn } -function wrapConversion$1(toModel, graph) { - const path = [graph[toModel].parent, toModel]; - let fn = conversions$1[graph[toModel].parent][toModel]; +const captureLargerStackTrace = hideStackFrames( + /** + * @param {Error} error + * @returns {Error} + */ + function (error) { + const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + if (stackTraceLimitIsWritable) { + userStackTraceLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Number.POSITIVE_INFINITY; + } - let cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link$1(conversions$1[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } + Error.captureStackTrace(error); - fn.conversion = path; - return fn; -} + // Reset the limit + if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; -var route$1 = function (fromModel) { - const graph = deriveBFS$1(fromModel); - const conversion = {}; + return error + } +); - const models = Object.keys(graph); - for (let len = models.length, i = 0; i < len; i++) { - const toModel = models[i]; - const node = graph[toModel]; +/** + * @param {string} key + * @param {unknown[]} args + * @param {Error} self + * @returns {string} + */ +function getMessage(key, args, self) { + const message = messages.get(key); + + if (typeof message === 'function') { + assert$2( + message.length <= args.length, // Default options do not count. + `Code: ${key}; The provided arguments length (${args.length}) does not ` + + `match the required ones (${message.length}).` + ); + return Reflect.apply(message, self, args) + } - if (node.parent === null) { - // No possible conversion, or this node is the source model. - continue; - } + const expectedLength = (message.match(/%[dfijoOs]/g) || []).length; + assert$2( + expectedLength === args.length, + `Code: ${key}; The provided arguments length (${args.length}) does not ` + + `match the required ones (${expectedLength}).` + ); + if (args.length === 0) return message - conversion[toModel] = wrapConversion$1(toModel, graph); - } + args.unshift(message); + return Reflect.apply(format$2, null, args) +} - return conversion; +// Manually “tree shaken” from: + +const {ERR_UNKNOWN_FILE_EXTENSION} = codes; + +const extensionFormatMap = { + __proto__: null, + '.cjs': 'commonjs', + '.js': 'module', + '.mjs': 'module' }; -const convert$2 = {}; +/** + * @param {string} url + * @returns {{format: string|null}} + */ +function defaultGetFormat(url) { + if (url.startsWith('node:')) { + return {format: 'builtin'} + } -const models$1 = Object.keys(conversions$1); + const parsed = new URL$1(url); -function wrapRaw$1(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; - if (arg0 === undefined || arg0 === null) { - return arg0; - } + if (parsed.protocol === 'data:') { + const {1: mime} = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec( + parsed.pathname + ) || [null, null]; + const format = mime === 'text/javascript' ? 'module' : null; + return {format} + } - if (arg0.length > 1) { - args = arg0; - } + if (parsed.protocol === 'file:') { + const ext = path$b.extname(parsed.pathname); + /** @type {string} */ + let format; + if (ext === '.js') { + format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs'; + } else { + format = extensionFormatMap[ext]; + } - return fn(args); - }; + if (!format) { + throw new ERR_UNKNOWN_FILE_EXTENSION(ext, fileURLToPath(url)) + } - // Preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } + return {format: format || null} + } - return wrappedFn; + return {format: null} } -function wrapRounded$1(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; +// Manually “tree shaken” from: - if (arg0 === undefined || arg0 === null) { - return arg0; - } +const listOfBuiltins = builtins(); - if (arg0.length > 1) { - args = arg0; - } +const { + ERR_INVALID_MODULE_SPECIFIER, + ERR_INVALID_PACKAGE_CONFIG, + ERR_INVALID_PACKAGE_TARGET, + ERR_MODULE_NOT_FOUND, + ERR_PACKAGE_IMPORT_NOT_DEFINED, + ERR_PACKAGE_PATH_NOT_EXPORTED, + ERR_UNSUPPORTED_DIR_IMPORT, + ERR_UNSUPPORTED_ESM_URL_SCHEME, + ERR_INVALID_ARG_VALUE +} = codes; + +const own$d = {}.hasOwnProperty; + +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); + +const invalidSegmentRegEx = /(^|\\|\/)(\.\.?|node_modules)(\\|\/|$)/; +const patternRegEx = /\*/g; +const encodedSepRegEx = /%2f|%2c/i; +/** @type {Set} */ +const emittedPackageWarnings = new Set(); +/** @type {Map} */ +const packageJsonCache = new Map(); - const result = fn(args); +/** + * @param {string} match + * @param {URL} pjsonUrl + * @param {boolean} isExports + * @param {URL} base + * @returns {void} + */ +function emitFolderMapDeprecation(match, pjsonUrl, isExports, base) { + const pjsonPath = fileURLToPath(pjsonUrl); + + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return + emittedPackageWarnings.add(pjsonPath + '|' + match); + process.emitWarning( + `Use of deprecated folder mapping "${match}" in the ${ + isExports ? '"exports"' : '"imports"' + } field module resolution of the package at ${pjsonPath}${ + base ? ` imported from ${fileURLToPath(base)}` : '' + }.\n` + + `Update this package.json to use a subpath pattern like "${match}*".`, + 'DeprecationWarning', + 'DEP0148' + ); +} - // We're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (let len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } +/** + * @param {URL} url + * @param {URL} packageJsonUrl + * @param {URL} base + * @param {unknown} [main] + * @returns {void} + */ +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + const {format} = defaultGetFormat(url.href); + if (format !== 'module') return + const path = fileURLToPath(url.href); + const pkgPath = fileURLToPath(new URL$1('.', packageJsonUrl)); + const basePath = fileURLToPath(base); + if (main) + process.emitWarning( + `Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, ` + + `excluding the full filename and extension to the resolved file at "${path.slice( + pkgPath.length + )}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is` + + 'deprecated for ES modules.', + 'DeprecationWarning', + 'DEP0151' + ); + else + process.emitWarning( + `No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path.slice( + pkgPath.length + )}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, + 'DeprecationWarning', + 'DEP0151' + ); +} - return result; - }; +/** + * @param {string[]} [conditions] + * @returns {Set} + */ +function getConditionsSet(conditions) { + if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) { + if (!Array.isArray(conditions)) { + throw new ERR_INVALID_ARG_VALUE( + 'conditions', + conditions, + 'expected an array' + ) + } - // Preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } + return new Set(conditions) + } - return wrappedFn; + return DEFAULT_CONDITIONS_SET } -models$1.forEach(fromModel => { - convert$2[fromModel] = {}; +/** + * @param {string} path + * @returns {Stats} + */ +function tryStatSync(path) { + // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead. + try { + return statSync(path) + } catch { + return new Stats() + } +} - Object.defineProperty(convert$2[fromModel], 'channels', {value: conversions$1[fromModel].channels}); - Object.defineProperty(convert$2[fromModel], 'labels', {value: conversions$1[fromModel].labels}); +/** + * @param {string} path + * @param {string|URL} specifier Note: `specifier` is actually optional, not base. + * @param {URL} [base] + * @returns {PackageConfig} + */ +function getPackageConfig(path, specifier, base) { + const existing = packageJsonCache.get(path); + if (existing !== undefined) { + return existing + } + + const source = packageJsonReader.read(path).string; + + if (source === undefined) { + /** @type {PackageConfig} */ + const packageConfig = { + pjsonPath: path, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig + } - const routes = route$1(fromModel); - const routeModels = Object.keys(routes); + /** @type {Object.} */ + let packageJson; + try { + packageJson = JSON.parse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : '') + fileURLToPath(base || specifier), + error.message + ) + } - routeModels.forEach(toModel => { - const fn = routes[toModel]; + const {exports, imports, main, name, type} = packageJson; - convert$2[fromModel][toModel] = wrapRounded$1(fn); - convert$2[fromModel][toModel].raw = wrapRaw$1(fn); - }); -}); + /** @type {PackageConfig} */ + const packageConfig = { + pjsonPath: path, + exists: true, + main: typeof main === 'string' ? main : undefined, + name: typeof name === 'string' ? name : undefined, + type: type === 'module' || type === 'commonjs' ? type : 'none', + // @ts-expect-error Assume `Object.`. + exports, + // @ts-expect-error Assume `Object.`. + imports: imports && typeof imports === 'object' ? imports : undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig +} -var colorConvert$1 = convert$2; +/** + * @param {URL|string} resolved + * @returns {PackageConfig} + */ +function getPackageScopeConfig(resolved) { + let packageJsonUrl = new URL$1('./package.json', resolved); -var ansiStyles$1 = createCommonjsModule(function (module) { + while (true) { + const packageJsonPath = packageJsonUrl.pathname; -const wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${code + offset}m`; -}; + if (packageJsonPath.endsWith('node_modules/package.json')) break -const wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${38 + offset};5;${code}m`; -}; + const packageConfig = getPackageConfig( + fileURLToPath(packageJsonUrl), + resolved + ); + if (packageConfig.exists) return packageConfig + + const lastPackageJsonUrl = packageJsonUrl; + packageJsonUrl = new URL$1('../package.json', packageJsonUrl); + + // Terminates at root where ../package.json equals ../../package.json + // (can't just check "/package.json" for Windows support). + if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break + } + + const packageJsonPath = fileURLToPath(packageJsonUrl); + /** @type {PackageConfig} */ + const packageConfig = { + pjsonPath: packageJsonPath, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(packageJsonPath, packageConfig); + return packageConfig +} -const wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; +/** + * Legacy CommonJS main resolution: + * 1. let M = pkg_url + (json main field) + * 2. TRY(M, M.js, M.json, M.node) + * 3. TRY(M/index.js, M/index.json, M/index.node) + * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node) + * 5. NOT_FOUND + * + * @param {URL} url + * @returns {boolean} + */ +function fileExists(url) { + return tryStatSync(fileURLToPath(url)).isFile() +} -const ansi2ansi = n => n; -const rgb2rgb = (r, g, b) => [r, g, b]; +/** + * @param {URL} packageJsonUrl + * @param {PackageConfig} packageConfig + * @param {URL} base + * @returns {URL} + */ +function legacyMainResolve(packageJsonUrl, packageConfig, base) { + /** @type {URL} */ + let guess; + if (packageConfig.main !== undefined) { + guess = new URL$1(`./${packageConfig.main}`, packageJsonUrl); + // Note: fs check redundances will be handled by Descriptor cache here. + if (fileExists(guess)) return guess + + const tries = [ + `./${packageConfig.main}.js`, + `./${packageConfig.main}.json`, + `./${packageConfig.main}.node`, + `./${packageConfig.main}/index.js`, + `./${packageConfig.main}/index.json`, + `./${packageConfig.main}/index.node` + ]; + let i = -1; + + while (++i < tries.length) { + guess = new URL$1(tries[i], packageJsonUrl); + if (fileExists(guess)) break + guess = undefined; + } + + if (guess) { + emitLegacyIndexDeprecation( + guess, + packageJsonUrl, + base, + packageConfig.main + ); + return guess + } + // Fallthrough. + } -const setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); + const tries = ['./index.js', './index.json', './index.node']; + let i = -1; - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); + while (++i < tries.length) { + guess = new URL$1(tries[i], packageJsonUrl); + if (fileExists(guess)) break + guess = undefined; + } - return value; - }, - enumerable: true, - configurable: true - }); -}; + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess + } -/** @type {typeof import('color-convert')} */ -let colorConvert; -const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = colorConvert$1; - } + // Not found. + throw new ERR_MODULE_NOT_FOUND( + fileURLToPath(new URL$1('.', packageJsonUrl)), + fileURLToPath(base) + ) +} - const offset = isBackground ? 10 : 0; - const styles = {}; +/** + * @param {URL} resolved + * @param {URL} base + * @returns {URL} + */ +function finalizeResolution(resolved, base) { + if (encodedSepRegEx.test(resolved.pathname)) + throw new ERR_INVALID_MODULE_SPECIFIER( + resolved.pathname, + 'must not include encoded "/" or "\\" characters', + fileURLToPath(base) + ) - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === 'object') { - styles[name] = wrap(suite[targetSpace], offset); - } - } + const path = fileURLToPath(resolved); - return styles; -}; + const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path); -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], + if (stats.isDirectory()) { + const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(base)); + // @ts-expect-error Add this for `import.meta.resolve`. + error.url = String(resolved); + throw error + } - // Bright color - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], + if (!stats.isFile()) { + throw new ERR_MODULE_NOT_FOUND( + path || resolved.pathname, + base && fileURLToPath(base), + 'module' + ) + } - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; + return resolved +} - // Alias bright black as gray (and grey) - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; +/** + * @param {string} specifier + * @param {URL?} packageJsonUrl + * @param {URL} base + * @returns {never} + */ +function throwImportNotDefined(specifier, packageJsonUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJsonUrl && fileURLToPath(new URL$1('.', packageJsonUrl)), + fileURLToPath(base) + ) +} - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; +/** + * @param {string} subpath + * @param {URL} packageJsonUrl + * @param {URL} base + * @returns {never} + */ +function throwExportsNotFound(subpath, packageJsonUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED( + fileURLToPath(new URL$1('.', packageJsonUrl)), + subpath, + base && fileURLToPath(base) + ) +} - group[styleName] = styles[styleName]; +/** + * @param {string} subpath + * @param {URL} packageJsonUrl + * @param {boolean} internal + * @param {URL} [base] + * @returns {never} + */ +function throwInvalidSubpath(subpath, packageJsonUrl, internal, base) { + const reason = `request is not a valid subpath for the "${ + internal ? 'imports' : 'exports' + }" resolution of ${fileURLToPath(packageJsonUrl)}`; + + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && fileURLToPath(base) + ) +} - codes.set(style[0], style[1]); - } +/** + * @param {string} subpath + * @param {unknown} target + * @param {URL} packageJsonUrl + * @param {boolean} internal + * @param {URL} [base] + * @returns {never} + */ +function throwInvalidPackageTarget( + subpath, + target, + packageJsonUrl, + internal, + base +) { + target = + typeof target === 'object' && target !== null + ? JSON.stringify(target, null, '') + : `${target}`; + + throw new ERR_INVALID_PACKAGE_TARGET( + fileURLToPath(new URL$1('.', packageJsonUrl)), + subpath, + target, + internal, + base && fileURLToPath(base) + ) +} - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - } +/** + * @param {string} target + * @param {string} subpath + * @param {string} match + * @param {URL} packageJsonUrl + * @param {URL} base + * @param {boolean} pattern + * @param {boolean} internal + * @param {Set} conditions + * @returns {URL} + */ +function resolvePackageTargetString( + target, + subpath, + match, + packageJsonUrl, + base, + pattern, + internal, + conditions +) { + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); + if (!target.startsWith('./')) { + if (internal && !target.startsWith('../') && !target.startsWith('/')) { + let isURL = false; - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; + try { + new URL$1(target); + isURL = true; + } catch {} - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + if (!isURL) { + const exportTarget = pattern + ? target.replace(patternRegEx, subpath) + : target + subpath; - return styles; -} + return packageResolve(exportTarget, packageJsonUrl, conditions) + } + } -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); -}); + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + } -const stringReplaceAll = (string, substring, replacer) => { - let index = string.indexOf(substring); - if (index === -1) { - return string; - } + if (invalidSegmentRegEx.test(target.slice(2))) + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); - const substringLength = substring.length; - let endIndex = 0; - let returnValue = ''; - do { - returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; - endIndex = index + substringLength; - index = string.indexOf(substring, endIndex); - } while (index !== -1); + const resolved = new URL$1(target, packageJsonUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL$1('.', packageJsonUrl).pathname; - returnValue += string.substr(endIndex); - return returnValue; -}; + if (!resolvedPath.startsWith(packagePath)) + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); -const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { - let endIndex = 0; - let returnValue = ''; - do { - const gotCR = string[index - 1] === '\r'; - returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; - endIndex = index + 1; - index = string.indexOf('\n', endIndex); - } while (index !== -1); + if (subpath === '') return resolved - returnValue += string.substr(endIndex); - return returnValue; -}; + if (invalidSegmentRegEx.test(subpath)) + throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base); -var util = { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex -}; + if (pattern) return new URL$1(resolved.href.replace(patternRegEx, subpath)) + return new URL$1(subpath, resolved) +} -const TEMPLATE_REGEX$1 = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX$1 = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi; +/** + * @param {string} key + * @returns {boolean} + */ +function isArrayIndex(key) { + const keyNumber = Number(key); + if (`${keyNumber}` !== key) return false + return keyNumber >= 0 && keyNumber < 0xffff_ffff +} -const ESCAPES$1 = new Map([ - ['n', '\n'], - ['r', '\r'], - ['t', '\t'], - ['b', '\b'], - ['f', '\f'], - ['v', '\v'], - ['0', '\0'], - ['\\', '\\'], - ['e', '\u001B'], - ['a', '\u0007'] -]); +/** + * @param {URL} packageJsonUrl + * @param {unknown} target + * @param {string} subpath + * @param {string} packageSubpath + * @param {URL} base + * @param {boolean} pattern + * @param {boolean} internal + * @param {Set} conditions + * @returns {URL} + */ +function resolvePackageTarget( + packageJsonUrl, + target, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions +) { + if (typeof target === 'string') { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJsonUrl, + base, + pattern, + internal, + conditions + ) + } -function unescape$1(c) { - const u = c[0] === 'u'; - const bracket = c[1] === '{'; + if (Array.isArray(target)) { + /** @type {unknown[]} */ + const targetList = target; + if (targetList.length === 0) return null - if ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } + /** @type {Error} */ + let lastException; + let i = -1; - if (u && bracket) { - return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); - } + while (++i < targetList.length) { + const targetItem = targetList[i]; + /** @type {URL} */ + let resolved; + try { + resolved = resolvePackageTarget( + packageJsonUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (error) { + lastException = error; + if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue + throw error + } - return ESCAPES$1.get(c) || c; -} + if (resolved === undefined) continue -function parseArguments$1(name, arguments_) { - const results = []; - const chunks = arguments_.trim().split(/\s*,\s*/g); - let matches; + if (resolved === null) { + lastException = null; + continue + } - for (const chunk of chunks) { - const number = Number(chunk); - if (!Number.isNaN(number)) { - results.push(number); - } else if ((matches = chunk.match(STRING_REGEX$1))) { - results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, character) => escape ? unescape$1(escape) : character)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } + return resolved + } - return results; -} + if (lastException === undefined || lastException === null) { + // @ts-expect-error The diff between `undefined` and `null` seems to be + // intentional + return lastException + } -function parseStyle$1(style) { - STYLE_REGEX$1.lastIndex = 0; + throw lastException + } - const results = []; - let matches; + if (typeof target === 'object' && target !== null) { + const keys = Object.getOwnPropertyNames(target); + let i = -1; - while ((matches = STYLE_REGEX$1.exec(style)) !== null) { - const name = matches[1]; + while (++i < keys.length) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + fileURLToPath(packageJsonUrl), + base, + '"exports" cannot contain numeric property keys.' + ) + } + } - if (matches[2]) { - const args = parseArguments$1(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } + i = -1; - return results; -} + while (++i < keys.length) { + const key = keys[i]; + if (key === 'default' || (conditions && conditions.has(key))) { + /** @type {unknown} */ + const conditionalTarget = target[key]; + const resolved = resolvePackageTarget( + packageJsonUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolved === undefined) continue + return resolved + } + } -function buildStyle$1(chalk, styles) { - const enabled = {}; + return undefined + } - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } + if (target === null) { + return null + } - let current = chalk; - for (const [styleName, styles] of Object.entries(enabled)) { - if (!Array.isArray(styles)) { - continue; - } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJsonUrl, + internal, + base + ); +} - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } +/** + * @param {unknown} exports + * @param {URL} packageJsonUrl + * @param {URL} base + * @returns {boolean} + */ +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { + if (typeof exports === 'string' || Array.isArray(exports)) return true + if (typeof exports !== 'object' || exports === null) return false - current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; - } + const keys = Object.getOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + let j = -1; + while (++j < keys.length) { + const key = keys[j]; + const curIsConditionalSugar = key === '' || key[0] !== '.'; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG( + fileURLToPath(packageJsonUrl), + base, + '"exports" cannot contain some keys starting with \'.\' and some not.' + + ' The exports object must either be an object of package subpath keys' + + ' or an object of main entry condition name keys only.' + ) + } + } - return current; + return isConditionalSugar } -var templates$1 = (chalk, temporary) => { - const styles = []; - const chunks = []; - let chunk = []; +/** + * @param {URL} packageJsonUrl + * @param {string} packageSubpath + * @param {Object.} packageConfig + * @param {URL} base + * @param {Set} conditions + * @returns {ResolveObject} + */ +function packageExportsResolve( + packageJsonUrl, + packageSubpath, + packageConfig, + base, + conditions +) { + let exports = packageConfig.exports; + if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) + exports = {'.': exports}; + + if (own$d.call(exports, packageSubpath)) { + const target = exports[packageSubpath]; + const resolved = resolvePackageTarget( + packageJsonUrl, + target, + '', + packageSubpath, + base, + false, + false, + conditions + ); + if (resolved === null || resolved === undefined) + throwExportsNotFound(packageSubpath, packageJsonUrl, base); + return {resolved, exact: true} + } - // eslint-disable-next-line max-params - temporary.replace(TEMPLATE_REGEX$1, (m, escapeCharacter, inverse, style, close, character) => { - if (escapeCharacter) { - chunk.push(unescape$1(escapeCharacter)); - } else if (style) { - const string = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? string : buildStyle$1(chalk, styles)(string)); - styles.push({inverse, styles: parseStyle$1(style)}); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(exports); + let i = -1; - chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(character); - } - }); + while (++i < keys.length) { + const key = keys[i]; + if ( + key[key.length - 1] === '*' && + packageSubpath.startsWith(key.slice(0, -1)) && + packageSubpath.length >= key.length && + key.length > bestMatch.length + ) { + bestMatch = key; + } else if ( + key[key.length - 1] === '/' && + packageSubpath.startsWith(key) && + key.length > bestMatch.length + ) { + bestMatch = key; + } + } + + if (bestMatch) { + const target = exports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget( + packageJsonUrl, + target, + subpath, + bestMatch, + base, + pattern, + false, + conditions + ); + if (resolved === null || resolved === undefined) + throwExportsNotFound(packageSubpath, packageJsonUrl, base); + if (!pattern) + emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base); + return {resolved, exact: pattern} + } - chunks.push(chunk.join('')); + throwExportsNotFound(packageSubpath, packageJsonUrl, base); +} - if (styles.length > 0) { - const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMsg); - } +/** + * @param {string} name + * @param {URL} base + * @param {Set} [conditions] + * @returns {ResolveObject} + */ +function packageImportsResolve(name, base, conditions) { + if (name === '#' || name.startsWith('#/')) { + const reason = 'is not a valid internal imports specifier name'; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)) + } + + /** @type {URL} */ + let packageJsonUrl; + + const packageConfig = getPackageScopeConfig(base); + + if (packageConfig.exists) { + packageJsonUrl = pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (own$d.call(imports, name)) { + const resolved = resolvePackageTarget( + packageJsonUrl, + imports[name], + '', + name, + base, + false, + true, + conditions + ); + if (resolved !== null) return {resolved, exact: true} + } else { + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(imports); + let i = -1; - return chunks.join(''); -}; + while (++i < keys.length) { + const key = keys[i]; -const {stdout: stdoutColor, stderr: stderrColor} = supportsColor_1$1; -const { - stringReplaceAll: stringReplaceAll$1, - stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 -} = util; + if ( + key[key.length - 1] === '*' && + name.startsWith(key.slice(0, -1)) && + name.length >= key.length && + key.length > bestMatch.length + ) { + bestMatch = key; + } else if ( + key[key.length - 1] === '/' && + name.startsWith(key) && + key.length > bestMatch.length + ) { + bestMatch = key; + } + } -// `supportsColor.level` → `ansiStyles.color[name]` mapping -const levelMapping = [ - 'ansi', - 'ansi', - 'ansi256', - 'ansi16m' -]; + if (bestMatch) { + const target = imports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget( + packageJsonUrl, + target, + subpath, + bestMatch, + base, + pattern, + true, + conditions + ); + if (resolved !== null) { + if (!pattern) + emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base); + return {resolved, exact: pattern} + } + } + } + } + } -const styles = Object.create(null); + throwImportNotDefined(name, packageJsonUrl, base); +} -const applyOptions = (object, options = {}) => { - if (options.level > 3 || options.level < 0) { - throw new Error('The `level` option should be an integer from 0 to 3'); - } +/** + * @param {string} url + * @returns {PackageType} + */ +function getPackageType(url) { + const packageConfig = getPackageScopeConfig(url); + return packageConfig.type +} - // Detect level if not set manually - const colorLevel = stdoutColor ? stdoutColor.level : 0; - object.level = options.level === undefined ? colorLevel : options.level; -}; +/** + * @param {string} specifier + * @param {URL} base + */ +function parsePackageName(specifier, base) { + let separatorIndex = specifier.indexOf('/'); + let validPackageName = true; + let isScoped = false; + if (specifier[0] === '@') { + isScoped = true; + if (separatorIndex === -1 || specifier.length === 0) { + validPackageName = false; + } else { + separatorIndex = specifier.indexOf('/', separatorIndex + 1); + } + } + + const packageName = + separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); + + // Package name cannot have leading . and cannot have percent-encoding or + // separators. + let i = -1; + while (++i < packageName.length) { + if (packageName[i] === '%' || packageName[i] === '\\') { + validPackageName = false; + break + } + } + + if (!validPackageName) { + throw new ERR_INVALID_MODULE_SPECIFIER( + specifier, + 'is not a valid package name', + fileURLToPath(base) + ) + } -class ChalkClass { - constructor(options) { - return chalkFactory(options); - } -} + const packageSubpath = + '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); -const chalkFactory = options => { - const chalk = {}; - applyOptions(chalk, options); + return {packageName, packageSubpath, isScoped} +} - chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); +/** + * @param {string} specifier + * @param {URL} base + * @param {Set} conditions + * @returns {URL} + */ +function packageResolve(specifier, base, conditions) { + const {packageName, packageSubpath, isScoped} = parsePackageName( + specifier, + base + ); - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); + // ResolveSelf + const packageConfig = getPackageScopeConfig(base); - chalk.template.constructor = () => { - throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); - }; + // Can’t test. + /* c8 ignore next 16 */ + if (packageConfig.exists) { + const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath); + if ( + packageConfig.name === packageName && + packageConfig.exports !== undefined && + packageConfig.exports !== null + ) { + return packageExportsResolve( + packageJsonUrl, + packageSubpath, + packageConfig, + base, + conditions + ).resolved + } + } - chalk.template.Instance = ChalkClass; + let packageJsonUrl = new URL$1( + './node_modules/' + packageName + '/package.json', + base + ); + let packageJsonPath = fileURLToPath(packageJsonUrl); + /** @type {string} */ + let lastPath; + do { + const stat = tryStatSync(packageJsonPath.slice(0, -13)); + if (!stat.isDirectory()) { + lastPath = packageJsonPath; + packageJsonUrl = new URL$1( + (isScoped ? '../../../../node_modules/' : '../../../node_modules/') + + packageName + + '/package.json', + packageJsonUrl + ); + packageJsonPath = fileURLToPath(packageJsonUrl); + continue + } - return chalk.template; -}; + // Package match. + const packageConfig = getPackageConfig(packageJsonPath, specifier, base); + if (packageConfig.exports !== undefined && packageConfig.exports !== null) + return packageExportsResolve( + packageJsonUrl, + packageSubpath, + packageConfig, + base, + conditions + ).resolved + if (packageSubpath === '.') + return legacyMainResolve(packageJsonUrl, packageConfig, base) + return new URL$1(packageSubpath, packageJsonUrl) + // Cross-platform root check. + } while (packageJsonPath.length !== lastPath.length) -function Chalk(options) { - return chalkFactory(options); + throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base)) } -for (const [styleName, style] of Object.entries(ansiStyles$1)) { - styles[styleName] = { - get() { - const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); - Object.defineProperty(this, styleName, {value: builder}); - return builder; - } - }; +/** + * @param {string} specifier + * @returns {boolean} + */ +function isRelativeSpecifier(specifier) { + if (specifier[0] === '.') { + if (specifier.length === 1 || specifier[1] === '/') return true + if ( + specifier[1] === '.' && + (specifier.length === 2 || specifier[2] === '/') + ) { + return true + } + } + + return false } -styles.visible = { - get() { - const builder = createBuilder(this, this._styler, true); - Object.defineProperty(this, 'visible', {value: builder}); - return builder; - } -}; +/** + * @param {string} specifier + * @returns {boolean} + */ +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { + if (specifier === '') return false + if (specifier[0] === '/') return true + return isRelativeSpecifier(specifier) +} -const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; +/** + * The “Resolver Algorithm Specification” as detailed in the Node docs (which is + * sync and slightly lower-level than `resolve`). + * + * + * + * @param {string} specifier + * @param {URL} base + * @param {Set} [conditions] + * @returns {URL} + */ +function moduleResolve(specifier, base, conditions) { + // Order swapped from spec for minor perf gain. + // Ok since relative URLs cannot parse as URLs. + /** @type {URL} */ + let resolved; + + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + resolved = new URL$1(specifier, base); + } else if (specifier[0] === '#') { +({resolved} = packageImportsResolve(specifier, base, conditions)); + } else { + try { + resolved = new URL$1(specifier); + } catch { + resolved = packageResolve(specifier, base, conditions); + } + } -for (const model of usedModels) { - styles[model] = { - get() { - const {level} = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles$1.color[levelMapping[level]][model](...arguments_), ansiStyles$1.color.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } - }; + return finalizeResolution(resolved, base) } -for (const model of usedModels) { - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const {level} = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles$1.bgColor[levelMapping[level]][model](...arguments_), ansiStyles$1.bgColor.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } - }; -} +/** + * @param {string} specifier + * @param {{parentURL?: string, conditions?: string[]}} context + * @returns {{url: string}} + */ +function defaultResolve(specifier, context = {}) { + const {parentURL} = context; + /** @type {URL} */ + let parsed; -const proto$1 = Object.defineProperties(() => {}, { - ...styles, - level: { - enumerable: true, - get() { - return this._generator.level; - }, - set(level) { - this._generator.level = level; - } - } -}); + try { + parsed = new URL$1(specifier); + if (parsed.protocol === 'data:') { + return {url: specifier} + } + } catch {} -const createStyler = (open, close, parent) => { - let openAll; - let closeAll; - if (parent === undefined) { - openAll = open; - closeAll = close; - } else { - openAll = parent.openAll + open; - closeAll = close + parent.closeAll; - } + if (parsed && parsed.protocol === 'node:') return {url: specifier} + if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:') + throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed) - return { - open, - close, - openAll, - closeAll, - parent - }; -}; + if (listOfBuiltins.includes(specifier)) { + return {url: 'node:' + specifier} + } -const createBuilder = (self, _styler, _isEmpty) => { - const builder = (...arguments_) => { - // Single argument is hot path, implicit coercion is faster than anything - // eslint-disable-next-line no-implicit-coercion - return applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' ')); - }; + if (parentURL.startsWith('data:')) { + // This is gonna blow up, we want the error + new URL$1(specifier, parentURL); + } - // `__proto__` is used because we must return a function, but there is - // no way to create a function with a different prototype - builder.__proto__ = proto$1; // eslint-disable-line no-proto + const conditions = getConditionsSet(context.conditions); + let url = moduleResolve(specifier, new URL$1(parentURL), conditions); - builder._generator = self; - builder._styler = _styler; - builder._isEmpty = _isEmpty; + const urlPath = fileURLToPath(url); + const real = realpathSync$1(urlPath); + const old = url; + url = pathToFileURL(real + (urlPath.endsWith(path$b.sep) ? '/' : '')); + url.search = old.search; + url.hash = old.hash; - return builder; -}; + return {url: `${url}`} +} -const applyStyle = (self, string) => { - if (self.level <= 0 || !string) { - return self._isEmpty ? '' : string; - } +/** + * Provides a module-relative resolution function scoped to each module, + * returning the URL string. + * `import.meta.resolve` also accepts a second argument which is the parent + * module from which to resolve from. + * + * This function is asynchronous because the ES module resolver in Node.js is + * allowed to be asynchronous. + * + * @param {string} specifier The module specifier to resolve relative to parent. + * @param {string} parent The absolute parent module URL to resolve from. + * You should pass `import.meta.url` or something else + * @returns {Promise} + */ +async function resolve(specifier, parent) { + if (!parent) { + throw new Error( + 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that' + ) + } - let styler = self._styler; + try { + return defaultResolve(specifier, {parentURL: parent}).url + } catch (error) { + return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' + ? error.url + : Promise.reject(error) + } +} - if (styler === undefined) { - return string; - } +var libnpmconfig = {}; - const {openAll, closeAll} = styler; - if (string.indexOf('\u001B') !== -1) { - while (styler !== undefined) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - string = stringReplaceAll$1(string, styler.close, styler.open); +class FiggyPudding { + constructor (specs, opts, providers) { + this.__specs = specs || {}; + Object.keys(this.__specs).forEach(alias => { + if (typeof this.__specs[alias] === 'string') { + const key = this.__specs[alias]; + const realSpec = this.__specs[key]; + if (realSpec) { + const aliasArr = realSpec.aliases || []; + aliasArr.push(alias, key); + realSpec.aliases = [...(new Set(aliasArr))]; + this.__specs[alias] = realSpec; + } else { + throw new Error(`Alias refers to invalid key: ${key} -> ${alias}`) + } + } + }); + this.__opts = opts || {}; + this.__providers = reverse((providers).filter( + x => x != null && typeof x === 'object' + )); + this.__isFiggyPudding = true; + } + get (key) { + return pudGet(this, key, true) + } + get [Symbol.toStringTag] () { return 'FiggyPudding' } + forEach (fn, thisArg = this) { + for (let [key, value] of this.entries()) { + fn.call(thisArg, value, key, this); + } + } + toJSON () { + const obj = {}; + this.forEach((val, key) => { + obj[key] = val; + }); + return obj + } + * entries (_matcher) { + for (let key of Object.keys(this.__specs)) { + yield [key, this.get(key)]; + } + const matcher = _matcher || this.__opts.other; + if (matcher) { + const seen = new Set(); + for (let p of this.__providers) { + const iter = p.entries ? p.entries(matcher) : entries(p); + for (let [key, val] of iter) { + if (matcher(key) && !seen.has(key)) { + seen.add(key); + yield [key, val]; + } + } + } + } + } + * [Symbol.iterator] () { + for (let [key, value] of this.entries()) { + yield [key, value]; + } + } + * keys () { + for (let [key] of this.entries()) { + yield key; + } + } + * values () { + for (let [, value] of this.entries()) { + yield value; + } + } + concat (...moreConfig) { + return new Proxy(new FiggyPudding( + this.__specs, + this.__opts, + reverse(this.__providers).concat(moreConfig) + ), proxyHandler) + } +} +try { + const util = require$$0$4; + FiggyPudding.prototype[util.inspect.custom] = function (depth, opts) { + return ( + this[Symbol.toStringTag] + ' ' + ) + util.inspect(this.toJSON(), opts) + }; +} catch (e) {} - styler = styler.parent; - } - } +function BadKeyError (key) { + throw Object.assign(new Error( + `invalid config key requested: ${key}` + ), {code: 'EBADKEY'}) +} - // We can move both next actions out of loop, because remaining actions in loop won't have - // any/visible effect on parts we add here. Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 - const lfIndex = string.indexOf('\n'); - if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex$1(string, closeAll, openAll, lfIndex); - } +function pudGet (pud, key, validate) { + let spec = pud.__specs[key]; + if (validate && !spec && (!pud.__opts.other || !pud.__opts.other(key))) { + BadKeyError(key); + } else { + if (!spec) { spec = {}; } + let ret; + for (let p of pud.__providers) { + ret = tryGet(key, p); + if (ret === undefined && spec.aliases && spec.aliases.length) { + for (let alias of spec.aliases) { + if (alias === key) { continue } + ret = tryGet(alias, p); + if (ret !== undefined) { + break + } + } + } + if (ret !== undefined) { + break + } + } + if (ret === undefined && spec.default !== undefined) { + if (typeof spec.default === 'function') { + return spec.default(pud) + } else { + return spec.default + } + } else { + return ret + } + } +} - return openAll + string + closeAll; +function tryGet (key, p) { + let ret; + if (p.__isFiggyPudding) { + ret = pudGet(p, key, false); + } else if (typeof p.get === 'function') { + ret = p.get(key); + } else { + ret = p[key]; + } + return ret +} + +const proxyHandler = { + has (obj, prop) { + return prop in obj.__specs && pudGet(obj, prop, false) !== undefined + }, + ownKeys (obj) { + return Object.keys(obj.__specs) + }, + get (obj, prop) { + if ( + typeof prop === 'symbol' || + prop.slice(0, 2) === '__' || + prop in FiggyPudding.prototype + ) { + return obj[prop] + } + return obj.get(prop) + }, + set (obj, prop, value) { + if ( + typeof prop === 'symbol' || + prop.slice(0, 2) === '__' + ) { + obj[prop] = value; + return true + } else { + throw new Error('figgyPudding options cannot be modified. Use .concat() instead.') + } + }, + deleteProperty () { + throw new Error('figgyPudding options cannot be deleted. Use .concat() and shadow them instead.') + } }; -let template; -const chalkTag = (chalk, ...strings) => { - const [firstString] = strings; +var figgyPudding_1 = figgyPudding$1; +function figgyPudding$1 (specs, opts) { + function factory (...providers) { + return new Proxy(new FiggyPudding( + specs, + opts, + providers + ), proxyHandler) + } + return factory +} - if (!Array.isArray(firstString)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return strings.join(' '); - } +function reverse (arr) { + const ret = []; + arr.forEach(x => ret.unshift(x)); + return ret +} - const arguments_ = strings.slice(1); - const parts = [firstString.raw[0]]; +function entries (obj) { + return Object.keys(obj).map(k => [k, obj[k]]) +} - for (let i = 1; i < firstString.length; i++) { - parts.push( - String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), - String(firstString.raw[i]) - ); - } +var findUp$1 = {exports: {}}; - if (template === undefined) { - template = templates$1; - } +var locatePath$1 = {exports: {}}; - return template(chalk, parts.join('')); -}; +var pathExists$1 = {exports: {}}; -Object.defineProperties(Chalk.prototype, styles); +const fs$5 = require$$0$3; -const chalk$1 = Chalk(); // eslint-disable-line new-cap -chalk$1.supportsColor = stdoutColor; -chalk$1.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap -chalk$1.stderr.supportsColor = stderrColor; +pathExists$1.exports = fp => new Promise(resolve => { + fs$5.access(fp, err => { + resolve(!err); + }); +}); -// For TypeScript -chalk$1.Level = { - None: 0, - Basic: 1, - Ansi256: 2, - TrueColor: 3, - 0: 'None', - 1: 'Basic', - 2: 'Ansi256', - 3: 'TrueColor' +pathExists$1.exports.sync = fp => { + try { + fs$5.accessSync(fp); + return true; + } catch (err) { + return false; + } }; -var source = chalk$1; +var pLimit$2 = {exports: {}}; -const WIN_SLASH = '\\\\/'; -const WIN_NO_SLASH = `[^${WIN_SLASH}]`; +var pTry$2 = {exports: {}}; -/** - * Posix glob regex - */ +const pTry$1 = (fn, ...arguments_) => new Promise(resolve => { + resolve(fn(...arguments_)); +}); -const DOT_LITERAL = '\\.'; -const PLUS_LITERAL = '\\+'; -const QMARK_LITERAL = '\\?'; -const SLASH_LITERAL = '\\/'; -const ONE_CHAR = '(?=.)'; -const QMARK = '[^/]'; -const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -const NO_DOT = `(?!${DOT_LITERAL})`; -const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -const STAR = `${QMARK}*?`; +pTry$2.exports = pTry$1; +// TODO: remove this in the next major version +pTry$2.exports.default = pTry$1; -const POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR -}; +const pTry = pTry$2.exports; -/** - * Windows glob regex - */ +const pLimit$1 = concurrency => { + if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { + return Promise.reject(new TypeError('Expected `concurrency` to be a number from 1 and up')); + } -const WINDOWS_CHARS = { - ...POSIX_CHARS, + const queue = []; + let activeCount = 0; - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}; + const next = () => { + activeCount--; -/** - * POSIX Bracket Regex - */ + if (queue.length > 0) { + queue.shift()(); + } + }; -const POSIX_REGEX_SOURCE = { - alnum: 'a-zA-Z0-9', - alpha: 'a-zA-Z', - ascii: '\\x00-\\x7F', - blank: ' \\t', - cntrl: '\\x00-\\x1F\\x7F', - digit: '0-9', - graph: '\\x21-\\x7E', - lower: 'a-z', - print: '\\x20-\\x7E ', - punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', - space: ' \\t\\r\\n\\v\\f', - upper: 'A-Z', - word: 'A-Za-z0-9_', - xdigit: 'A-Fa-f0-9' -}; + const run = (fn, resolve, ...args) => { + activeCount++; -var constants = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, + const result = pTry(fn, ...args); - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + resolve(result); + + result.then(next, next); + }; + + const enqueue = (fn, resolve, ...args) => { + if (activeCount < concurrency) { + run(fn, resolve, ...args); + } else { + queue.push(run.bind(null, fn, resolve, ...args)); + } + }; + + const generator = (fn, ...args) => new Promise(resolve => enqueue(fn, resolve, ...args)); + Object.defineProperties(generator, { + activeCount: { + get: () => activeCount + }, + pendingCount: { + get: () => queue.length + }, + clearQueue: { + value: () => { + queue.length = 0; + } + } + }); - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - '***': '*', - '**/**': '**', - '**/**/**': '**' - }, + return generator; +}; - // Digits - CHAR_0: 48, /* 0 */ - CHAR_9: 57, /* 9 */ +pLimit$2.exports = pLimit$1; +pLimit$2.exports.default = pLimit$1; - // Alphabet chars. - CHAR_UPPERCASE_A: 65, /* A */ - CHAR_LOWERCASE_A: 97, /* a */ - CHAR_UPPERCASE_Z: 90, /* Z */ - CHAR_LOWERCASE_Z: 122, /* z */ +const pLimit = pLimit$2.exports; - CHAR_LEFT_PARENTHESES: 40, /* ( */ - CHAR_RIGHT_PARENTHESES: 41, /* ) */ +class EndError extends Error { + constructor(value) { + super(); + this.value = value; + } +} - CHAR_ASTERISK: 42, /* * */ +// The input can also be a promise, so we `Promise.resolve()` it +const testElement = (el, tester) => Promise.resolve(el).then(tester); - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, /* & */ - CHAR_AT: 64, /* @ */ - CHAR_BACKWARD_SLASH: 92, /* \ */ - CHAR_CARRIAGE_RETURN: 13, /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ - CHAR_COLON: 58, /* : */ - CHAR_COMMA: 44, /* , */ - CHAR_DOT: 46, /* . */ - CHAR_DOUBLE_QUOTE: 34, /* " */ - CHAR_EQUAL: 61, /* = */ - CHAR_EXCLAMATION_MARK: 33, /* ! */ - CHAR_FORM_FEED: 12, /* \f */ - CHAR_FORWARD_SLASH: 47, /* / */ - CHAR_GRAVE_ACCENT: 96, /* ` */ - CHAR_HASH: 35, /* # */ - CHAR_HYPHEN_MINUS: 45, /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ - CHAR_LEFT_CURLY_BRACE: 123, /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ - CHAR_LINE_FEED: 10, /* \n */ - CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ - CHAR_PERCENT: 37, /* % */ - CHAR_PLUS: 43, /* + */ - CHAR_QUESTION_MARK: 63, /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ - CHAR_SEMICOLON: 59, /* ; */ - CHAR_SINGLE_QUOTE: 39, /* ' */ - CHAR_SPACE: 32, /* */ - CHAR_TAB: 9, /* \t */ - CHAR_UNDERSCORE: 95, /* _ */ - CHAR_VERTICAL_LINE: 124, /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ +// The input can also be a promise, so we `Promise.all()` them both +const finder$1 = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); - SEP: path__default['default'].sep, +var pLocate$1 = (iterable, tester, opts) => { + opts = Object.assign({ + concurrency: Infinity, + preserveOrder: true + }, opts); - /** - * Create EXTGLOB_CHARS - */ + const limit = pLimit(opts.concurrency); - extglobChars(chars) { - return { - '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, - '?': { type: 'qmark', open: '(?:', close: ')?' }, - '+': { type: 'plus', open: '(?:', close: ')+' }, - '*': { type: 'star', open: '(?:', close: ')*' }, - '@': { type: 'at', open: '(?:', close: ')' } - }; - }, + // Start all the promises concurrently with optional limit + const items = [...iterable].map(el => [el, limit(testElement, el, tester)]); - /** - * Create GLOB_CHARS - */ + // Check the promises either serially or concurrently + const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity); - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; - } + return Promise.all(items.map(el => checkLimit(finder$1, el))) + .then(() => {}) + .catch(err => err instanceof EndError ? err.value : Promise.reject(err)); }; -var utils = createCommonjsModule(function (module, exports) { +const path$7 = path$b; +const pathExists = pathExists$1.exports; +const pLocate = pLocate$1; +locatePath$1.exports = (iterable, options) => { + options = Object.assign({ + cwd: process.cwd() + }, options); -const win32 = process.platform === 'win32'; -const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL -} = constants; + return pLocate(iterable, el => pathExists(path$7.resolve(options.cwd, el)), options); +}; -exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); -exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); -exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); -exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); -exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); +locatePath$1.exports.sync = (iterable, options) => { + options = Object.assign({ + cwd: process.cwd() + }, options); -exports.removeBackslashes = str => { - return str.replace(REGEX_REMOVE_BACKSLASH, match => { - return match === '\\' ? '' : match; - }); + for (const el of iterable) { + if (pathExists.sync(path$7.resolve(options.cwd, el))) { + return el; + } + } }; -exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split('.').map(Number); - if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { - return true; - } - return false; -}; +const path$6 = path$b; +const locatePath = locatePath$1.exports; -exports.isWindows = options => { - if (options && typeof options.windows === 'boolean') { - return options.windows; - } - return win32 === true || path__default['default'].sep === '\\'; -}; +findUp$1.exports = (filename, opts = {}) => { + const startDir = path$6.resolve(opts.cwd || ''); + const {root} = path$6.parse(startDir); -exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; -}; + const filenames = [].concat(filename); -exports.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith('./')) { - output = output.slice(2); - state.prefix = './'; - } - return output; + return new Promise(resolve => { + (function find(dir) { + locatePath(filenames, {cwd: dir}).then(file => { + if (file) { + resolve(path$6.join(dir, file)); + } else if (dir === root) { + resolve(null); + } else { + find(path$6.dirname(dir)); + } + }); + })(startDir); + }); }; -exports.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? '' : '^'; - const append = options.contains ? '' : '$'; +findUp$1.exports.sync = (filename, opts = {}) => { + let dir = path$6.resolve(opts.cwd || ''); + const {root} = path$6.parse(dir); - let output = `${prepend}(?:${input})${append}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } - return output; -}; -}); + const filenames = [].concat(filename); -const { - CHAR_ASTERISK: CHAR_ASTERISK$1, /* * */ - CHAR_AT, /* @ */ - CHAR_BACKWARD_SLASH, /* \ */ - CHAR_COMMA: CHAR_COMMA$1, /* , */ - CHAR_DOT, /* . */ - CHAR_EXCLAMATION_MARK, /* ! */ - CHAR_FORWARD_SLASH, /* / */ - CHAR_LEFT_CURLY_BRACE, /* { */ - CHAR_LEFT_PARENTHESES, /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */ - CHAR_PLUS, /* + */ - CHAR_QUESTION_MARK, /* ? */ - CHAR_RIGHT_CURLY_BRACE, /* } */ - CHAR_RIGHT_PARENTHESES, /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 /* ] */ -} = constants; + // eslint-disable-next-line no-constant-condition + while (true) { + const file = locatePath.sync(filenames, {cwd: dir}); -const isPathSeparator = code => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; + if (file) { + return path$6.join(dir, file); + } + + if (dir === root) { + return null; + } + + dir = path$6.dirname(dir); + } }; -const depth = token => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; +var ini$1 = {}; + +ini$1.parse = ini$1.decode = decode; + +ini$1.stringify = ini$1.encode = encode$1; + +ini$1.safe = safe$1; +ini$1.unsafe = unsafe$1; + +var eol$1 = typeof process !== 'undefined' && + process.platform === 'win32' ? '\r\n' : '\n'; + +function encode$1 (obj, opt) { + var children = []; + var out = ''; + + if (typeof opt === 'string') { + opt = { + section: opt, + whitespace: false, + }; + } else { + opt = opt || {}; + opt.whitespace = opt.whitespace === true; } -}; -/** - * Quickly scans a glob pattern and returns an object with a handful of - * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), - * `glob` (the actual pattern), and `negated` (true if the path starts with `!`). - * - * ```js - * const pm = require('picomatch'); - * console.log(pm.scan('foo/bar/*.js')); - * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {Object} Returns an object with tokens and regex source string. - * @api public - */ + var separator = opt.whitespace ? ' = ' : '='; -const scan$1 = (input, options) => { - const opts = options || {}; + Object.keys(obj).forEach(function (k, _, __) { + var val = obj[k]; + if (val && Array.isArray(val)) { + val.forEach(function (item) { + out += safe$1(k + '[]') + separator + safe$1(item) + '\n'; + }); + } else if (val && typeof val === 'object') + children.push(k); + else + out += safe$1(k) + separator + safe$1(val) + eol$1; + }); - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; + if (opt.section && out.length) + out = '[' + safe$1(opt.section) + ']' + eol$1 + out; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { value: '', depth: 0, isGlob: false }; + children.forEach(function (k, _, __) { + var nk = dotSplit(k).join('\\.'); + var section = (opt.section ? opt.section + '.' : '') + nk; + var child = encode$1(obj[k], { + section: section, + whitespace: opt.whitespace, + }); + if (out.length && child.length) + out += eol$1; - const eos = () => index >= length; - const peek = () => str.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; + out += child; + }); - while (index < length) { - code = advance(); - let next; + return out +} - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); +function dotSplit (str) { + return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002') + .replace(/\\\./g, '\u0001') + .split(/\./).map(function (part) { + return part.replace(/\1/g, '\\.') + .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001') + }) +} - if (code === CHAR_LEFT_CURLY_BRACE) { - braceEscaped = true; +function decode (str) { + var out = {}; + var p = out; + var section = null; + // section |key = value + var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i; + var lines = str.split(/[\r\n]+/g); + + lines.forEach(function (line, _, __) { + if (!line || line.match(/^\s*[;#]/)) + return + var match = line.match(re); + if (!match) + return + if (match[1] !== undefined) { + section = unsafe$1(match[1]); + if (section === '__proto__') { + // not allowed + // keep parsing the section, but don't attach it. + p = {}; + return } - continue; + p = out[section] = out[section] || {}; + return + } + var key = unsafe$1(match[2]); + if (key === '__proto__') + return + var value = match[3] ? unsafe$1(match[4]) : true; + switch (value) { + case 'true': + case 'false': + case 'null': value = JSON.parse(value); } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { - braces++; + // Convert keys with '[]' suffix to an array + if (key.length > 2 && key.slice(-2) === '[]') { + key = key.substring(0, key.length - 2); + if (key === '__proto__') + return + if (!p[key]) + p[key] = []; + else if (!Array.isArray(p[key])) + p[key] = [p[key]]; + } - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } + // safeguard against resetting a previously defined + // array by accidentally forgetting the brackets + if (Array.isArray(p[key])) + p[key].push(value); + else + p[key] = value; + }); - if (code === CHAR_LEFT_CURLY_BRACE) { - braces++; - continue; - } + // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} + // use a filter to return the keys that have to be deleted. + Object.keys(out).filter(function (k, _, __) { + if (!out[k] || + typeof out[k] !== 'object' || + Array.isArray(out[k])) + return false - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + // see if the parent section is also an object. + // if so, add it to that, and mark this one for deletion + var parts = dotSplit(k); + var p = out; + var l = parts.pop(); + var nl = l.replace(/\\\./g, '.'); + parts.forEach(function (part, _, __) { + if (part === '__proto__') + return + if (!p[part] || typeof p[part] !== 'object') + p[part] = {}; + p = p[part]; + }); + if (p === out && nl === l) + return false - if (scanToEnd === true) { - continue; - } + p[nl] = out[k]; + return true + }).forEach(function (del, _, __) { + delete out[del]; + }); - break; - } + return out +} - if (braceEscaped !== true && code === CHAR_COMMA$1) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; +function isQuoted (val) { + return (val.charAt(0) === '"' && val.slice(-1) === '"') || + (val.charAt(0) === "'" && val.slice(-1) === "'") +} - if (scanToEnd === true) { - continue; - } +function safe$1 (val) { + return (typeof val !== 'string' || + val.match(/[=\r\n]/) || + val.match(/^\[/) || + (val.length > 1 && + isQuoted(val)) || + val !== val.trim()) + ? JSON.stringify(val) + : val.replace(/;/g, '\\;').replace(/#/g, '\\#') +} - break; - } +function unsafe$1 (val, doUnesc) { + val = (val || '').trim(); + if (isQuoted(val)) { + // remove the single quotes before calling JSON.parse + if (val.charAt(0) === "'") + val = val.substr(1, val.length - 2); - if (code === CHAR_RIGHT_CURLY_BRACE) { - braces--; + try { + val = JSON.parse(val); + } catch (_) {} + } else { + // walk the val to find the first not-escaped ; character + var esc = false; + var unesc = ''; + for (var i = 0, l = val.length; i < l; i++) { + var c = val.charAt(i); + if (esc) { + if ('\\;#'.indexOf(c) !== -1) + unesc += c; + else + unesc += '\\' + c; - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } + esc = false; + } else if (';#'.indexOf(c) !== -1) + break + else if (c === '\\') + esc = true; + else + unesc += c; + } + if (esc) + unesc += '\\'; - if (scanToEnd === true) { - continue; - } + return unesc.trim() + } + return val +} - break; - } +const fs$4 = require$$0$3; +const figgyPudding = figgyPudding_1; +const findUp = findUp$1.exports; +const ini = ini$1; +const os = require$$0$2; +const path$5 = path$b; - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: '', depth: 0, isGlob: false }; +const NpmConfig = figgyPudding({}, { + // Open up the pudding object. + other () { return true } +}); + +const ConfigOpts = figgyPudding({ + cache: { default: path$5.join(os.homedir(), '.npm') }, + configNames: { default: ['npmrc', '.npmrc'] }, + envPrefix: { default: /^npm_config_/i }, + cwd: { default: () => process.cwd() }, + globalconfig: { + default: () => path$5.join(getGlobalPrefix(), 'etc', 'npmrc') + }, + userconfig: { default: path$5.join(os.homedir(), '.npmrc') } +}); + +libnpmconfig.read = getNpmConfig; +function getNpmConfig (_opts, _builtin) { + const builtin = ConfigOpts(_builtin); + const env = {}; + for (let key of Object.keys(process.env)) { + if (!key.match(builtin.envPrefix)) continue + const newKey = key.toLowerCase() + .replace(builtin.envPrefix, '') + .replace(/(?!^)_/g, '-'); + env[newKey] = process.env[key]; + } + const cli = NpmConfig(_opts); + const userConfPath = ( + builtin.userconfig || + cli.userconfig || + env.userconfig + ); + const user = userConfPath && maybeReadIni(userConfPath); + const globalConfPath = ( + builtin.globalconfig || + cli.globalconfig || + env.globalconfig + ); + const global = globalConfPath && maybeReadIni(globalConfPath); + const projConfPath = findUp.sync(builtin.configNames, { cwd: builtin.cwd }); + let proj = {}; + if (projConfPath && projConfPath !== userConfPath) { + proj = maybeReadIni(projConfPath); + } + const newOpts = NpmConfig(builtin, global, user, proj, env, cli); + if (newOpts.cache) { + return newOpts.concat({ + cache: path$5.resolve( + ( + (cli.cache || env.cache) + ? builtin.cwd + : proj.cache + ? path$5.dirname(projConfPath) + : user.cache + ? path$5.dirname(userConfPath) + : global.cache + ? path$5.dirname(globalConfPath) + : path$5.dirname(userConfPath) + ), + newOpts.cache + ) + }) + } else { + return newOpts + } +} - if (finished === true) continue; - if (prev === CHAR_DOT && index === (start + 1)) { - start += 2; - continue; - } +function maybeReadIni (f) { + let txt; + try { + txt = fs$4.readFileSync(f, 'utf8'); + } catch (err) { + if (err.code === 'ENOENT') { + return '' + } else { + throw err + } + } + return ini.parse(txt) +} - lastIndex = index + 1; - continue; +function getGlobalPrefix () { + if (process.env.PREFIX) { + return process.env.PREFIX + } else if (process.platform === 'win32') { + // c:\node\node.exe --> prefix=c:\node\ + return path$5.dirname(process.execPath) + } else { + // /usr/local/bin/node --> prefix=/usr/local + let pref = path$5.dirname(path$5.dirname(process.execPath)); + // destdir only is respected on Unix + if (process.env.DESTDIR) { + pref = path$5.join(process.env.DESTDIR, pref); } + return pref + } +} - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS - || code === CHAR_AT - || code === CHAR_ASTERISK$1 - || code === CHAR_QUESTION_MARK - || code === CHAR_EXCLAMATION_MARK; +/** + * @typedef ResolveOptions + * @property {string} [prefix] + * @property {string|string[]} [cwd] + * @property {boolean} [global] + */ - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; +const electron = process.versions.electron !== undefined; +const windows = process.platform === 'win32'; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } +const argv = process.argv[1] || /* c8 ignore next */ ''; +const nvm = process.env.NVM_BIN; +const appData = process.env.APPDATA; - if (code === CHAR_RIGHT_PARENTHESES) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } +/* c8 ignore next */ +const globalsLibrary = windows ? '' : 'lib'; - if (code === CHAR_ASTERISK$1) { - if (prev === CHAR_ASTERISK$1) isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; +/** @type {{prefix?: string}} */ +let builtinNpmConfig; - if (scanToEnd === true) { - continue; - } - break; - } +// The prefix config defaults to the location where node is installed. +// On Windows, this is in a place called `%AppData%`, which we have to +// pass to `libnpmconfig` explicitly: +/* c8 ignore next 4 */ +if (windows && appData) { + builtinNpmConfig = {prefix: path$b.join(appData, 'npm')}; +} - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; +/** + * Note: `libnpmconfig` uses `figgy-pudding` which is slated for archival. + * Either `libnpmconfig` will switch to an alternative or we’ll have to. + * @type {string} + */ +let npmPrefix = libnpmconfig.read(null, builtinNpmConfig).prefix; - if (scanToEnd === true) { - continue; - } - break; - } +// If there is no prefix defined, use the defaults +// See: +/* c8 ignore next 5 */ +if (!npmPrefix) { + npmPrefix = windows + ? path$b.dirname(process.execPath) + : path$b.resolve(process.execPath, '../..'); +} - if (code === CHAR_LEFT_SQUARE_BRACKET$1) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } +const globalsDefault = electron || argv.indexOf(npmPrefix) === 0; +let globalDir = path$b.resolve(npmPrefix, globalsLibrary, 'node_modules'); - if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; +// If we’re in Electron, we’re running in a modified Node that cannot really +// install global node modules. +// To find the actual modules, the user has to set `prefix` somewhere in an +// `.npmrc` (which is picked up by `libnpmconfig`). +// Most people don’t do that, and some use NVM instead to manage different +// versions of Node. +// Luckily NVM leaks some environment variables that we can pick up on to try +// and detect the actual modules. +/* c8 ignore next 3 */ +if (electron && nvm && !require$$0$3.existsSync(globalDir)) { + globalDir = path$b.resolve(nvm, '..', globalsLibrary, 'node_modules'); +} - if (scanToEnd === true) { - continue; - } - break; - } - } - } +/** + * Load the plugin found using `resolvePlugin`. + * + * @param {string} name The name to import. + * @param {LoadOptions} [options] + * @returns {Promise} + */ +async function loadPlugin(name, options = {}) { + const {key = 'default', ...rest} = options; + const fp = await resolvePlugin(name, rest); + /** @type {Object.} */ + // Bug with coverage on Node@12. + /* c8 ignore next 3 */ + const mod = await import(pathToFileURL(fp).href); + return key === false ? mod : mod[key] +} - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; +/** + * Find a plugin. + * + * See also: + * * https://docs.npmjs.com/files/folders#node-modules + * * https://github.com/sindresorhus/resolve-from + * + * Uses the standard node module loading strategy to find `$name` in each given + * `cwd` (and optionally the global `node_modules` directory). + * + * If a prefix is given and `$name` is not a path, `$prefix-$name` is also + * searched (preferring these over non-prefixed modules). + * + * @param {string} name + * @param {ResolveOptions} [options] + * @returns {Promise.} + */ +async function resolvePlugin(name, options = {}) { + const prefix = options.prefix + ? options.prefix + + (options.prefix.charAt(options.prefix.length - 1) === '-' ? '' : '-') + : undefined; + const cwd = options.cwd; + const globals = + options.global === undefined || options.global === null + ? globalsDefault + : options.global; + const sources = Array.isArray(cwd) ? cwd.concat() : [cwd || process.cwd()]; + /** @type {string} */ + let plugin; + /** @type {Error} */ + let lastError; + + // Non-path. + if (name.charAt(0) !== '.') { + if (globals) { + sources.push(globalDir); } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; + let scope = ''; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } + // Unprefix module. + if (prefix) { + // Scope? + if (name.charAt(0) === '@') { + const slash = name.indexOf('/'); - if (code === CHAR_RIGHT_PARENTHESES) { - finished = true; - break; - } + // Let’s keep the algorithm simple. + // No need to care if this is a “valid” scope (I think?). + // But we do check for the slash. + if (slash !== -1) { + scope = name.slice(0, slash + 1); + name = name.slice(slash + 1); } - continue; } - break; - } - - if (isGlob === true) { - finished = true; - if (scanToEnd === true) { - continue; + if (name.slice(0, prefix.length) !== prefix) { + plugin = scope + prefix + name; } - break; + name = scope + name; } } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; - } + let index = -1; + /** @type {string} */ + let fp; - let base = str; - let prefix = ''; - let glob = ''; + while (++index < sources.length) { + fp = plugin && (await attempt(sources[index], plugin)); + if (fp) return fp - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; + fp = await attempt(sources[index], name); + if (fp) return fp } - if (base && isGlob === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob = str.slice(lastIndex); - } else if (isGlob === true) { - base = ''; - glob = str; - } else { - base = str; - } + // There’s always an error. + // Bug with coverage on Node@12. + /* c8 ignore next 8 */ + throw lastError - if (base && base !== '' && base !== '/' && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); + /** + * @param {string} base + * @param {string} name + * @returns {Promise} + */ + async function attempt(base, name) { + try { + // `import-meta-resolve` resolves from files, whereas `load-plugin` works + // on folders, which is why we add a `/` at the end. + return fileURLToPath( + await resolve(name, pathToFileURL(base).href + '/') + ) + // Bug with coverage on Node@12. + /* c8 ignore next 1 */ + } catch (error) { + lastError = error; } } +} - if (opts.unescape === true) { - if (glob) glob = utils.removeBackslashes(glob); +function isPlainObject$1(value) { + if (Object.prototype.toString.call(value) !== '[object Object]') { + return false; + } - if (base && backslashes === true) { - base = utils.removeBackslashes(base); - } + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.prototype; +} + +var format$1 = {exports: {}}; + +(function (module) { +(function() { + + //// Export the API + var namespace; + + // CommonJS / Node module + { + namespace = module.exports = format; } - const state = { - prefix, - input, - start, - base, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated - }; + namespace.format = format; + namespace.vsprintf = vsprintf; - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); - } - state.tokens = tokens; + if (typeof console !== 'undefined' && typeof console.log === 'function') { + namespace.printf = printf; } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; + function printf(/* ... */) { + console.log(format.apply(null, arguments)); + } - for (let idx = 0; idx < slashes.length; idx++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n, i); - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; + function vsprintf(fmt, replacements) { + return format.apply(null, [fmt].concat(replacements)); + } + + function format(fmt) { + var argIndex = 1 // skip initial format argument + , args = [].slice.call(arguments) + , i = 0 + , n = fmt.length + , result = '' + , c + , escaped = false + , arg + , tmp + , leadingZero = false + , precision + , nextArg = function() { return args[argIndex++]; } + , slurpNumber = function() { + var digits = ''; + while (/\d/.test(fmt[i])) { + digits += fmt[i++]; + c = fmt[i]; + } + return digits.length > 0 ? parseInt(digits) : null; } - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } - if (idx !== 0 || value !== '') { - parts.push(value); + ; + for (; i < n; ++i) { + c = fmt[i]; + if (escaped) { + escaped = false; + if (c == '.') { + leadingZero = false; + c = fmt[++i]; + } + else if (c == '0' && fmt[i + 1] == '.') { + leadingZero = true; + i += 2; + c = fmt[i]; + } + else { + leadingZero = true; + } + precision = slurpNumber(); + switch (c) { + case 'b': // number in binary + result += parseInt(nextArg(), 10).toString(2); + break; + case 'c': // character + arg = nextArg(); + if (typeof arg === 'string' || arg instanceof String) + result += arg; + else + result += String.fromCharCode(parseInt(arg, 10)); + break; + case 'd': // number in decimal + result += parseInt(nextArg(), 10); + break; + case 'f': // floating point number + tmp = String(parseFloat(nextArg()).toFixed(precision || 6)); + result += leadingZero ? tmp : tmp.replace(/^0/, ''); + break; + case 'j': // JSON + result += JSON.stringify(nextArg()); + break; + case 'o': // number in octal + result += '0' + parseInt(nextArg(), 10).toString(8); + break; + case 's': // string + result += nextArg(); + break; + case 'x': // lowercase hexadecimal + result += '0x' + parseInt(nextArg(), 10).toString(16); + break; + case 'X': // uppercase hexadecimal + result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase(); + break; + default: + result += c; + break; + } + } else if (c === '%') { + escaped = true; + } else { + result += c; } - prevIndex = i; } + return result; + } - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); - - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } - } +}()); +}(format$1)); - state.slashes = slashes; - state.parts = parts; - } +var formatter = format$1.exports; - return state; -}; +// @ts-ignore -var scan_1 = scan$1; +var fault = Object.assign(create$1(Error), { + eval: create$1(EvalError), + range: create$1(RangeError), + reference: create$1(ReferenceError), + syntax: create$1(SyntaxError), + type: create$1(TypeError), + uri: create$1(URIError) +}); /** - * Constants + * Create a new `EConstructor`, with the formatted `format` as a first argument. + * + * @template {Error} Fault + * @template {new (reason: string) => Fault} Class + * @param {Class} Constructor */ +function create$1(Constructor) { + /** @type {string} */ + // @ts-ignore + FormattedError.displayName = Constructor.displayName || Constructor.name; -const { - MAX_LENGTH, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants; + return FormattedError + + /** + * @param {string} [format] + * @param {...unknown} values + * @returns {Fault} + */ + function FormattedError(format, ...values) { + /** @type {string} */ + var reason = format ? formatter(format, ...values) : format; + return new Constructor(reason) + } +} + +const debug$b = createDebug('unified-engine:find-up'); /** - * Helpers + * @template Value */ +class FindUp { + /** + * @callback Create + * @param {Buffer} buf + * @param {string} filePath + * @returns {Promise|Value|undefined} + */ -const expandRange = (args, options) => { - if (typeof options.expandRange === 'function') { - return options.expandRange(...args, options); - } + /** + * @callback Callback + * @param {Error|null} error + * @param {Value} [result] + * @returns {void} + */ - args.sort(); - const value = `[${args.join('-')}]`; + /** + * @typedef Options + * @property {string} cwd + * @property {string|undefined} filePath + * @property {boolean|undefined} [detect] + * @property {string[]} names + * @property {Create} create + */ - try { - /* eslint-disable-next-line no-new */ - new RegExp(value); - } catch (ex) { - return args.map(v => utils.escapeRegex(v)).join('..'); + /** + * @param {Options} options + */ + constructor(options) { + /** @type {Record} */ + this.cache = {}; + /** @type {string} */ + this.cwd = options.cwd; + /** @type {boolean|undefined} */ + this.detect = options.detect; + /** @type {string[]} */ + this.names = options.names; + /** @type {Create} */ + this.create = options.create; + + /** @type {string|undefined} */ + this.givenFilePath = options.filePath + ? path$c.resolve(options.cwd, options.filePath) + : undefined; + + /* eslint-disable no-unused-expressions */ + /** @type {Error|Value|Callback[]|undefined} */ + this.givenFile; + /* eslint-enable no-unused-expressions */ } - return value; -}; + /** + * @param {string} filePath + * @param {Callback} callback + */ + load(filePath, callback) { + const self = this; + const givenFile = this.givenFile; + const {givenFilePath} = this; + + if (givenFilePath) { + if (givenFile) { + apply(callback, givenFile); + } else { + const cbs = [callback]; + this.givenFile = cbs; + debug$b('Checking given file `%s`', givenFilePath); + fs$a.readFile(givenFilePath, (error, buf) => { + if (error) { + /** @type {NodeJS.ErrnoException} */ + const result = fault( + 'Cannot read given file `%s`\n%s', + path$c.relative(this.cwd, givenFilePath), + error.stack + ); + result.code = 'ENOENT'; + result.path = error.path; + result.syscall = error.syscall; + loaded(result); + } else { + wrap(this.create, (error, /** @type {Value} */ result) => { + if (error) { + debug$b(error.message); + loaded( + fault( + 'Cannot parse given file `%s`\n%s', + path$c.relative(this.cwd, givenFilePath), + error.stack + ) + ); + } else { + debug$b('Read given file `%s`', givenFilePath); + loaded(result); + } + })(buf, givenFilePath); + } -/** - * Create the message for a syntax error - */ + /** @param {Error|Value} result */ + function loaded(result) { + self.givenFile = result; + applyAll(cbs, result); + } + }); + } -const syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; + return + } -/** - * Parse the given input string. - * @param {String} input - * @param {Object} options - * @return {Object} - */ + if (!this.detect) { + return callback(null) + } -const parse$4 = (input, options) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); - } + filePath = path$c.resolve(this.cwd, filePath); + const parent = path$c.dirname(filePath); - input = REPLACEMENTS[input] || input; + if (parent in this.cache) { + apply(callback, this.cache[parent]); + } else { + this.cache[parent] = [callback]; + find(parent); + } - const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + /** + * @param {string} directory + */ + function find(directory) { + let index = -1; - let len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } + next(); - const bos = { type: 'bos', value: '', output: opts.prepend || '' }; - const tokens = [bos]; + function next() { + // Try to read the next file. + // We do not use `readdir` because on huge directories, that could be + // *very* slow. + if (++index < self.names.length) { + fs$a.readFile(path$c.join(directory, self.names[index]), done); + } else { + const parent = path$c.dirname(directory); - const capture = opts.capture ? '' : '?:'; - const win32 = utils.isWindows(options); + if (directory === parent) { + debug$b('No files found for `%s`', filePath); + found(null); + } else if (parent in self.cache) { + apply(found, self.cache[parent]); + } else { + self.cache[parent] = [found]; + find(parent); + } + } + } - // create constants based on platform, for windows or posix - const PLATFORM_CHARS = constants.globChars(win32); - const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + /** + * @param {NodeJS.ErrnoException|null} error + * @param {Buffer} [buf] + * @returns {void} + */ + function done(error, buf) { + const fp = path$c.join(directory, self.names[index]); - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; + if (error) { + // Hard to test. + /* c8 ignore next 13 */ + if (error.code === 'ENOENT') { + return next() + } - const globstar = (opts) => { - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; + debug$b(error.message); + return found( + fault( + 'Cannot read file `%s`\n%s', + path$c.relative(self.cwd, fp), + error.message + ) + ) + } - const nodot = opts.dot ? '' : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; + wrap(self.create, (error, /** @type {Value} */ result) => { + if (error) { + found( + fault( + 'Cannot parse file `%s`\n%s', + path$c.relative(self.cwd, fp), + error.message + ) + ); + } else if (result) { + debug$b('Read file `%s`', fp); + found(null, result); + } else { + next(); + } + })(buf, fp); + } - if (opts.capture) { - star = `(${star})`; - } + /** + * @param {Error|null} error + * @param {Value} [result] + * @returns {void} + */ + function found(error, result) { + /** @type {Callback[]} */ + // @ts-expect-error: always a list if found. + const cbs = self.cache[directory]; + self.cache[directory] = error || result; + applyAll(cbs, error || result); + } + } - // minimatch options support - if (typeof opts.noext === 'boolean') { - opts.noextglob = opts.noext; - } + /** + * @param {Callback[]} cbs + * @param {Value|Error|undefined} result + */ + function applyAll(cbs, result) { + let index = cbs.length; - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: '', - output: '', - prefix: '', - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; + while (index--) { + apply(cbs[index], result); + } + } + + /** + * @param {Callback} cb + * @param {Value|Error|Callback[]|undefined} result + */ + function apply(cb, result) { + if (Array.isArray(result)) { + result.push(cb); + } else if (result instanceof Error) { + cb(result); + } else { + cb(null, result); + } + } + } +} - input = utils.removePrefix(input, state); - len = input.length; +/** + * @typedef {import('unified').Plugin} Plugin + * @typedef {import('unified').PluginTuple} PluginTuple + * @typedef {import('unified').PluggableList} PluggableList + * + * @typedef {Record} Settings + * + * @typedef {Record} PluginIdObject + * @typedef {Array} PluginIdList + * + * @typedef Preset + * @property {Settings} [settings] + * @property {PluggableList|PluginIdObject|PluginIdList|undefined} [plugins] + * + * @typedef Config + * @property {Settings} [settings] + * @property {Array} [plugins] + * + * @callback ConfigTransform + * @param {any} config + * @param {string} filePath + * @returns {Preset} + * + * @callback Loader + * @param {Buffer} buf + * @param {string} filePath + * @returns {Promise} + * + * @callback Callback + * @param {Error|null} error + * @param {Config} [result] + * @returns {void} + */ - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; +const debug$a = createDebug('unified-engine:configuration'); - /** - * Tokenizing helpers - */ +const own$c = {}.hasOwnProperty; - const eos = () => state.index === len - 1; - const peek = state.peek = (n = 1) => input[state.index + n]; - const advance = state.advance = () => input[++state.index]; - const remaining = () => input.slice(state.index + 1); - const consume = (value = '', num = 0) => { - state.consumed += value; - state.index += num; - }; - const append = token => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; +/** @type {Record} */ +const loaders = { + '.json': loadJson, + '.cjs': loadScriptOrModule, + '.mjs': loadScriptOrModule, + '.js': loadScriptOrModule, + '.yaml': loadYaml, + '.yml': loadYaml +}; - const negate = () => { - let count = 1; +const defaultLoader = loadJson; - while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { - advance(); - state.start++; - count++; +/** + * @typedef Options + * @property {string} cwd + * @property {string} [packageField] + * @property {string} [pluginPrefix] + * @property {string} [rcName] + * @property {string} [rcPath] + * @property {boolean} [detectConfig] + * @property {ConfigTransform} [configTransform] + * @property {Preset} [defaultConfig] + * @property {Preset['settings']} [settings] + * @property {Preset['plugins']} [plugins] + */ + +class Configuration { + /** + * @param {Options} options + */ + constructor(options) { + /** @type {string[]} */ + const names = []; + + /** @type {string} */ + this.cwd = options.cwd; + /** @type {string|undefined} */ + this.packageField = options.packageField; + /** @type {string|undefined} */ + this.pluginPrefix = options.pluginPrefix; + /** @type {ConfigTransform|undefined} */ + this.configTransform = options.configTransform; + /** @type {Preset|undefined} */ + this.defaultConfig = options.defaultConfig; + + if (options.rcName) { + names.push( + options.rcName, + options.rcName + '.js', + options.rcName + '.yml', + options.rcName + '.yaml' + ); + debug$a('Looking for `%s` configuration files', names); } - if (count % 2 === 0) { - return false; + if (options.packageField) { + names.push('package.json'); + debug$a( + 'Looking for `%s` fields in `package.json` files', + options.packageField + ); } - state.negated = true; - state.start++; - return true; - }; + /** @type {Preset} */ + this.given = {settings: options.settings, plugins: options.plugins}; + this.create = this.create.bind(this); - const increment = type => { - state[type]++; - stack.push(type); - }; + /** @type {FindUp} */ + this.findUp = new FindUp({ + cwd: options.cwd, + filePath: options.rcPath, + detect: options.detectConfig, + names, + create: this.create + }); + } - const decrement = type => { - state[type]--; - stack.pop(); - }; + /** + * @param {string} filePath + * @param {Callback} callback + * @returns {void} + */ + load(filePath, callback) { + this.findUp.load( + filePath || path$c.resolve(this.cwd, 'stdin.js'), + (error, file) => { + if (error || file) { + return callback(error, file) + } + + this.create(undefined, undefined).then((result) => { + callback(null, result); + }, callback); + } + ); + } /** - * Push tokens onto the tokens array. This helper speeds up - * tokenizing by 1) helping us avoid backtracking as much as possible, - * and 2) helping us avoid creating extra tokens when consecutive - * characters are plain text. This improves performance and simplifies - * lookbehinds. + * @param {Buffer|undefined} buf + * @param {string|undefined} filePath + * @returns {Promise} */ + async create(buf, filePath) { + const options = {prefix: this.pluginPrefix, cwd: this.cwd}; + const result = {settings: {}, plugins: []}; + const extname = filePath ? path$c.extname(filePath) : undefined; + const loader = + extname && extname in loaders ? loaders[extname] : defaultLoader; + /** @type {Preset|undefined} */ + let value; - const push = tok => { - if (prev.type === 'globstar') { - const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); - const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + if (filePath && buf) { + value = await loader.call(this, buf, filePath); - if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = 'star'; - prev.value = '*'; - prev.output = star; - state.output += prev.output; + if (this.configTransform && value !== undefined) { + value = this.configTransform(value, filePath); } } - if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) { - extglobs[extglobs.length - 1].inner += tok.value; + // Exit if we did find a `package.json`, but it does not have configuration. + if ( + filePath && + value === undefined && + path$c.basename(filePath) === 'package.json' + ) { + return } - if (tok.value || tok.output) append(tok); - if (prev && prev.type === 'text' && tok.type === 'text') { - prev.value += tok.value; - prev.output = (prev.output || '') + tok.value; - return; + if (value === undefined) { + if (this.defaultConfig) { + await merge( + result, + this.defaultConfig, + Object.assign({}, options, {root: this.cwd}) + ); + } + } else { + await merge( + result, + value, + // @ts-expect-error: `value` can only exist if w/ `filePath`. + Object.assign({}, options, {root: path$c.dirname(filePath)}) + ); } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; + await merge( + result, + this.given, + Object.assign({}, options, {root: this.cwd}) + ); - const extglobOpen = (type, value) => { - const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + // C8 bug on Node@12 + /* c8 ignore next 2 */ + return result + } +} - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? '(' : '') + token.open; +/** @type {Loader} */ +async function loadScriptOrModule(_, filePath) { + // C8 bug on Node@12 + /* c8 ignore next 4 */ + // @ts-expect-error: Assume it matches config. + // type-coverage:ignore-next-line + return loadFromAbsolutePath(filePath, this.cwd) +} - increment('parens'); - push({ type, value, output: state.output ? '' : ONE_CHAR }); - push({ type: 'paren', extglob: true, value: advance(), output }); - extglobs.push(token); - }; +/** @type {Loader} */ +async function loadYaml(buf, filePath) { + // C8 bug on Node@12 + /* c8 ignore next 4 */ + // @ts-expect-error: Assume it matches config. + return jsYaml.load(String(buf), {filename: path$c.basename(filePath)}) +} - const extglobClose = token => { - let output = token.close + (opts.capture ? ')' : ''); +/** @type {Loader} */ +async function loadJson(buf, filePath) { + /** @type {Record} */ + const result = parseJson_1(String(buf), filePath); - if (token.type === 'negate') { - let extglobStar = star; + // C8 bug on Node@12 + /* c8 ignore next 8 */ + // @ts-expect-error: Assume it matches config. + return path$c.basename(filePath) === 'package.json' + ? // @ts-expect-error: `this` is the configuration context, TS doesn’t like + // `this` on callbacks. + // type-coverage:ignore-next-line + result[this.packageField] + : result +} - if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { - extglobStar = globstar(opts); - } +/** + * @param {Required} target + * @param {Preset} raw + * @param {{root: string, prefix: string|undefined}} options + * @returns {Promise} + */ +async function merge(target, raw, options) { + if (typeof raw === 'object' && raw !== null) { + await addPreset(raw); + } else { + throw new Error('Expected preset, not `' + raw + '`') + } - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } + // C8 bug on Node@12 + /* c8 ignore next 6 */ + return target - if (token.prev.type === 'bos' && eos()) { - state.negatedExtglob = true; - } + /** + * @param {Preset} result + */ + async function addPreset(result) { + const plugins = result.plugins; + + if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && plugins !== null) { + await (Array.isArray(plugins) ? addEach(plugins) : addIn(plugins)); + } else { + throw new Error( + 'Expected a list or object of plugins, not `' + plugins + '`' + ) } - push({ type: 'paren', extglob: true, value, output }); - decrement('parens'); - }; + target.settings = Object.assign({}, target.settings, result.settings); + // C8 bug on Node@12 + /* c8 ignore next 6 */ + } /** - * Fast paths + * @param {PluginIdList|PluggableList} result */ + async function addEach(result) { + let index = -1; - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; + while (++index < result.length) { + const value = result[index]; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { - if (first === '\\') { - backslashes = true; - return m; - } + // Keep order sequential instead of parallel. + /* eslint-disable no-await-in-loop */ + // @ts-expect-error: Spreading is fine. + // type-coverage:ignore-next-line + await (Array.isArray(value) ? use(...value) : use(value, undefined)); + /* eslint-enable no-await-in-loop */ + } + // C8 bug on Node@12 + /* c8 ignore next 6 */ + } - if (first === '?') { - if (esc) { - return esc + first + (rest ? QMARK.repeat(rest.length) : ''); - } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); - } - return QMARK.repeat(chars.length); - } + /** + * @param {PluginIdObject} result + */ + async function addIn(result) { + /** @type {string} */ + let key; - if (first === '.') { - return DOT_LITERAL.repeat(chars.length); + for (key in result) { + if (own$c.call(result, key)) { + // Keep order sequential instead of parallel. + // eslint-disable-next-line no-await-in-loop + await use(key, result[key]); } + } + // C8 bug on Node@12 + /* c8 ignore next 7 */ + } - if (first === '*') { - if (esc) { - return esc + first + (rest ? star : ''); - } - return star; - } - return esc ? m : `\\${m}`; - }); + /** + * @param {string|Plugin|Preset} usable + * @param {Settings|null|undefined} value + */ + async function use(usable, value) { + if (typeof usable === 'string') { + await addModule(usable, value); + } else if (typeof usable === 'function') { + addPlugin(usable, value); + } else { + await merge(target, usable, options); + } + // C8 bug on Node@12 + /* c8 ignore next 7 */ + } - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ''); + /** + * @param {string} id + * @param {Settings|null|undefined} value + */ + async function addModule(id, value) { + /** @type {string} */ + let fp; + + try { + fp = await resolvePlugin(id, { + cwd: options.root, + prefix: options.prefix + }); + } catch (error) { + addPlugin(() => { + throw fault('Could not find module `%s`\n%s', id, error.stack) + }, value); + return + } + + const result = await loadFromAbsolutePath(fp, options.root); + + try { + if (typeof result === 'function') { + addPlugin(result, value); } else { - output = output.replace(/\\+/g, m => { - return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); - }); + await merge( + target, + result, + Object.assign({}, options, {root: path$c.dirname(fp)}) + ); } + } catch { + throw fault( + 'Error: Expected preset or plugin, not %s, at `%s`', + result, + path$c.relative(options.root, fp) + ) } + // C8 bug on Node@12 + /* c8 ignore next 8 */ + } - if (output === input && opts.contains === true) { - state.output = input; - return state; + /** + * @param {Plugin} plugin + * @param {Settings|null|undefined} value + * @returns {void} + */ + function addPlugin(plugin, value) { + const entry = find(target.plugins, plugin); + + if (value === null) { + value = undefined; } - state.output = utils.wrapOutput(output, state, options); - return state; + if (entry) { + reconfigure(entry, value); + } else { + target.plugins.push([plugin, value]); + } } +} - /** - * Tokenize input until we reach end-of-string - */ +/** + * @param {PluginTuple} entry + * @param {Settings|undefined} value + * @returns {void} + */ +function reconfigure(entry, value) { + if (isPlainObject$1(entry[1]) && isPlainObject$1(value)) { + value = Object.assign({}, entry[1], value); + } - while (!eos()) { - value = advance(); + entry[1] = value; +} - if (value === '\u0000') { - continue; +/** + * @param {Array} entries + * @param {Plugin} plugin + * @returns {PluginTuple|undefined} + */ +function find(entries, plugin) { + let index = -1; + + while (++index < entries.length) { + const entry = entries[index]; + if (entry[0] === plugin) { + return entry } + } +} - /** - * Escaped characters - */ +/** + * @param {string} fp + * @param {string} base + * @returns {Promise} + */ +async function loadFromAbsolutePath(fp, base) { + try { + /** @type {{default?: unknown}} */ + const result = await import(pathToFileURL$1(fp).href); - if (value === '\\') { - const next = peek(); + if (!('default' in result)) { + throw new Error( + 'Expected a plugin or preset exported as the default export' + ) + } - if (next === '/' && opts.bash !== true) { - continue; - } + // @ts-expect-error: assume plugin/preset. + return result.default + // C8 bug on Node@12 + /* c8 ignore next 4 */ + } catch (error) { + throw fault('Cannot import `%s`\n%s', path$c.relative(base, fp), error.stack) + } +} - if (next === '.' || next === ';') { - continue; - } +/** + * @typedef {import('./index.js').Settings} Settings + */ - if (!next) { - value += '\\'; - push({ type: 'text', value }); - continue; - } +/** + * @param {Context} context + * @param {Settings} settings + */ +function configure$3(context, settings) { + context.configuration = new Configuration(settings); +} - // collapse slashes to reduce potential for exploits - const match = /^\\+/.exec(remaining()); - let slashes = 0; +// A simple implementation of make-array +function makeArray (subject) { + return Array.isArray(subject) + ? subject + : [subject] +} - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value += '\\'; - } - } +const EMPTY = ''; +const SPACE = ' '; +const ESCAPE = '\\'; +const REGEX_TEST_BLANK_LINE = /^\s+$/; +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; +const REGEX_SPLITALL_CRLF = /\r?\n/g; +// /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; - if (opts.unescape === true) { - value = advance() || ''; - } else { - value += advance() || ''; - } +const SLASH = '/'; +const KEY_IGNORE = typeof Symbol !== 'undefined' + ? Symbol.for('node-ignore') + /* istanbul ignore next */ + : 'node-ignore'; - if (state.brackets === 0) { - push({ type: 'text', value }); - continue; - } - } +const define = (object, key, value) => + Object.defineProperty(object, key, {value}); - /** - * If we're inside a regex character class, continue - * until we reach the closing bracket. - */ +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; - if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { - if (opts.posix !== false && value === ':') { - const inner = prev.value.slice(1); - if (inner.includes('[')) { - prev.posix = true; +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +const sanitizeRange = range => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) + ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY +); - if (inner.includes(':')) { - const idx = prev.value.lastIndexOf('['); - const pre = prev.value.slice(0, idx); - const rest = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE$1[rest]; - if (posix) { - prev.value = pre + posix; - state.backtrack = true; - advance(); +// See fixtures #59 +const cleanRangeBackSlash = slashes => { + const {length} = slashes; + return slashes.slice(0, length - length % 2) +}; - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } - continue; - } - } - } - } +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` - if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { - value = `\\${value}`; - } +// '`foo/`' should not continue with the '`..`' +const REPLACERS = [ - if (value === ']' && (prev.value === '[' || prev.value === '[^')) { - value = `\\${value}`; - } + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + match => match.indexOf('\\') === 0 + ? SPACE + : EMPTY + ], - if (opts.posix === true && value === '!' && prev.value === '[') { - value = '^'; - } + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], - prev.value += value; - append({ value }); - continue; - } + // Escape metacharacters + // which is written down by users but means special for regular expressions. - /** - * If we're inside a quoted string, continue - * until we reach the closing double quote. - */ + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + match => `\\${match}` + ], - if (state.quotes === 1 && value !== '"') { - value = utils.escapeRegex(value); - prev.value += value; - append({ value }); - continue; - } + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => '[^/]' + ], - /** - * Double quotes - */ + // leading slash + [ - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push({ type: 'text', value }); - } - continue; - } + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => '^' + ], - /** - * Parentheses - */ + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => '\\/' + ], - if (value === '(') { - increment('parens'); - push({ type: 'paren', value }); - continue; - } + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, - if (value === ')') { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '(')); - } + // '**/foo' <-> 'foo' + () => '^(?:.*\\/)?' + ], - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer () { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern - push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); - decrement('parens'); - continue; - } + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' - /** - * Square brackets - */ + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^' + } + ], - if (value === '[') { - if (opts.nobracket === true || !remaining().includes(']')) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('closing', ']')); - } + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, - value = `\\${value}`; - } else { - increment('brackets'); - } + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer - push({ type: 'bracket', value }); - continue; - } + // Check if it is not the last `'/**'` + (_, index, str) => index + 6 < str.length - if (value === ']') { - if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { - push({ type: 'text', value, output: `\\${value}` }); - continue; - } + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '[')); - } + // case: /** + // > A trailing `"/**"` matches everything inside. - push({ type: 'text', value, output: `\\${value}` }); - continue; - } + // #21: everything inside but it should not include the current folder + : '\\/.+' + ], - decrement('brackets'); + // intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { - value = `/${value}`; - } + // 'abc.*/' -> go + // 'abc.*' -> skip this rule + /(^|[^\\]+)\\\*(?=.+)/g, - prev.value += value; - append({ value }); + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1) => `${p1}[^\\/]*` + ], - // when literal brackets are explicitly disabled - // assume we should match with a regex character class - if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { - continue; - } + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], - const escaped = utils.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], - // when literal brackets are explicitly enabled - // assume we should escape the brackets to match literal characters - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. - // when the user specifies nothing, try to match both - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` + : close === ']' + ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? `[${sanitizeRange(range)}${endEscape}]` + // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' + : '[]' + ], - /** - * Braces - */ + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, - if (value === '{' && opts.nobrace !== true) { - increment('braces'); + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 - const open = { - type: 'brace', - value, - output: '(', - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. - braces.push(open); - push(open); - continue; - } + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + match => /\/$/.test(match) + // foo/ will not match 'foo' + ? `${match}$` + // foo matches 'foo' and 'foo/' + : `${match}(?=$|\\/$)` + ], - if (value === '}') { - const brace = braces[braces.length - 1]; + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything - if (opts.nobrace === true || !brace) { - push({ type: 'text', value, output: value }); - continue; - } + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` - let output = ')'; + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; + return `${prefix}(?=$|\\/$)` + } + ], +]; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === 'brace') { - break; - } - if (arr[i].type !== 'dots') { - range.unshift(arr[i].value); - } - } +// A simple cache, because an ignore rule only has only one certain meaning +const regexCache = Object.create(null); - output = expandRange(range, opts); - state.backtrack = true; - } +// @param {pattern} +const makeRegex = (pattern, negative, ignorecase) => { + const r = regexCache[pattern]; + if (r) { + return r + } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = '\\{'; - value = output = '\\}'; - state.output = out; - for (const t of toks) { - state.output += (t.output || t.value); - } - } + // const replacers = negative + // ? NEGATIVE_REPLACERS + // : POSITIVE_REPLACERS - push({ type: 'brace', value, output }); - decrement('braces'); - braces.pop(); - continue; - } + const source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ); - /** - * Pipes - */ + return regexCache[pattern] = ignorecase + ? new RegExp(source, 'i') + : new RegExp(source) +}; - if (value === '|') { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push({ type: 'text', value }); - continue; - } +const isString = subject => typeof subject === 'string'; - /** - * Commas - */ +// > A blank line matches no files, so it can serve as a separator for readability. +const checkPattern = pattern => pattern + && isString(pattern) + && !REGEX_TEST_BLANK_LINE.test(pattern) - if (value === ',') { - let output = value; + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0; - const brace = braces[braces.length - 1]; - if (brace && stack[stack.length - 1] === 'braces') { - brace.comma = true; - output = '|'; - } +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF); - push({ type: 'comma', value, output }); - continue; - } +class IgnoreRule { + constructor ( + origin, + pattern, + negative, + regex + ) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; + } +} - /** - * Slashes - */ +const createRule = (pattern, ignorecase) => { + const origin = pattern; + let negative = false; - if (value === '/') { - // if the beginning of the glob is "./", advance the start - // to the current index, and don't add the "./" characters - // to the state. This greatly simplifies lookbehinds when - // checking for BOS characters like "!" and "." (not "./") - if (prev.type === 'dot' && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ''; - state.output = ''; - tokens.pop(); - prev = bos; // reset "prev" to the first token - continue; - } + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); + } - push({ type: 'slash', value, output: SLASH_LITERAL }); - continue; - } + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); - /** - * Dots - */ + const regex = makeRegex(pattern, negative, ignorecase); - if (value === '.') { - if (state.braces > 0 && prev.type === 'dot') { - if (prev.value === '.') prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = 'dots'; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } + return new IgnoreRule( + origin, + pattern, + negative, + regex + ) +}; - if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { - push({ type: 'text', value, output: DOT_LITERAL }); - continue; - } +const throwError = (message, Ctor) => { + throw new Ctor(message) +}; - push({ type: 'dot', value, output: DOT_LITERAL }); - continue; - } +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ) + } - /** - * Question marks - */ + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow(`path must not be empty`, TypeError) + } - if (value === '?') { - const isGroup = prev && prev.value === '('; - if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('qmark', value); - continue; - } + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d'; + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ) + } - if (prev && prev.type === 'paren') { - const next = peek(); - let output = value; + return true +}; - if (next === '<' && !utils.supportsLookbehinds()) { - throw new Error('Node.js v10 or higher is required for regex lookbehinds'); - } +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path); - if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { - output = `\\${value}`; - } +checkPath.isNotRelative = isNotRelative; +checkPath.convert = p => p; - push({ type: 'text', value, output }); - continue; - } +class Ignore$1 { + constructor ({ + ignorecase = true + } = {}) { + this._rules = []; + this._ignorecase = ignorecase; + define(this, KEY_IGNORE, true); + this._initCache(); + } - if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { - push({ type: 'qmark', value, output: QMARK_NO_DOT }); - continue; - } + _initCache () { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } - push({ type: 'qmark', value, output: QMARK }); - continue; + _addPattern (pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return } - /** - * Exclamation - */ - - if (value === '!') { - if (opts.noextglob !== true && peek() === '(') { - if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { - extglobOpen('negate', value); - continue; - } - } - - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignorecase); + this._added = true; + this._rules.push(rule); } + } - /** - * Plus - */ + // @param {Array | string | Ignore} pattern + add (pattern) { + this._added = false; - if (value === '+') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('plus', value); - continue; - } + makeArray( + isString(pattern) + ? splitPattern(pattern) + : pattern + ).forEach(this._addPattern, this); - if ((prev && prev.value === '(') || opts.regex === false) { - push({ type: 'plus', value, output: PLUS_LITERAL }); - continue; - } + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache(); + } - if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { - push({ type: 'plus', value }); - continue; - } + return this + } - push({ type: 'plus', value: PLUS_LITERAL }); - continue; - } + // legacy + addPattern (pattern) { + return this.add(pattern) + } - /** - * Plain text - */ + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X - if (value === '@') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - push({ type: 'at', extglob: true, value, output: '' }); - continue; - } + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen - push({ type: 'text', value }); - continue; - } + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. - /** - * Plain text - */ + // @returns {TestResult} true if a file is ignored + _testOne (path, checkUnignored) { + let ignored = false; + let unignored = false; - if (value !== '*') { - if (value === '$' || value === '^') { - value = `\\${value}`; + this._rules.forEach(rule => { + const {negative} = rule; + if ( + unignored === negative && ignored !== unignored + || negative && !ignored && !unignored && !checkUnignored + ) { + return } - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match) { - value += match[0]; - state.index += match[0].length; + const matched = rule.regex.test(path); + + if (matched) { + ignored = !negative; + unignored = negative; } + }); - push({ type: 'text', value }); - continue; + return { + ignored, + unignored } + } - /** - * Stars - */ - - if (prev && (prev.type === 'globstar' || prev.star === true)) { - prev.type = 'star'; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; - } + // @returns {TestResult} + _test (originalPath, cache, checkUnignored, slices) { + const path = originalPath + // Supports nullable path + && checkPath.convert(originalPath); - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen('star', value); - continue; - } + checkPath(path, originalPath, throwError); - if (prev.type === 'star') { - if (opts.noglobstar === true) { - consume(value); - continue; - } + return this._t(path, cache, checkUnignored, slices) + } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === 'slash' || prior.type === 'bos'; - const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + _t (path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path] + } - if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { - push({ type: 'star', value, output: '' }); - continue; - } + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } - const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); - const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); - if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { - push({ type: 'star', value, output: '' }); - continue; - } + slices.pop(); - // strip consecutive `/**/` - while (rest.slice(0, 3) === '/**') { - const after = input[state.index + 4]; - if (after && after !== '/') { - break; - } - rest = rest.slice(3); - consume('/**', 3); - } + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored) + } - if (prior.type === 'bos' && eos()) { - prev.type = 'globstar'; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ); - if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent + : this._testOne(path, checkUnignored) + } - prev.type = 'globstar'; - prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } + ignores (path) { + return this._test(path, this._ignoreCache, false).ignored + } - if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { - const end = rest[1] !== void 0 ? '|$' : ''; + createFilter () { + return path => !this.ignores(path) + } - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; + filter (paths) { + return makeArray(paths).filter(this.createFilter()) + } - prev.type = 'globstar'; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; + // @returns {TestResult} + test (path) { + return this._test(path, this._testCache, true) + } +} - state.output += prior.output + prev.output; - state.globstar = true; +const factory$1 = options => new Ignore$1(options); - consume(value + advance()); +const returnFalse = () => false; - push({ type: 'slash', value: '/', output: '' }); - continue; - } +const isPathValid = path => + checkPath(path && checkPath.convert(path), path, returnFalse); - if (prior.type === 'bos' && rest[0] === '/') { - prev.type = 'globstar'; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: 'slash', value: '/', output: '' }); - continue; - } +factory$1.isPathValid = isPathValid; - // remove single star from output - state.output = state.output.slice(0, -prev.output.length); +// Fixes typescript +factory$1.default = factory$1; - // reset previous token to globstar - prev.type = 'globstar'; - prev.output = globstar(opts); - prev.value += value; +var ignore = factory$1; - // reset output with globstar - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( + // Detect `process` so that it can run in browsers. + typeof process !== 'undefined' + && ( + process.env && process.env.IGNORE_TEST_WIN32 + || process.platform === 'win32' + ) +) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) + || /["<>|\u0000-\u001F]+/u.test(str) + ? str + : str.replace(/\\/g, '/'); - const token = { type: 'star', value, output: star }; + checkPath.convert = makePosix; - if (opts.bash === true) { - token.output = '.*?'; - if (prev.type === 'bos' || prev.type === 'slash') { - token.output = nodot + token.output; - } - push(token); - continue; - } + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = path => + REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) + || isNotRelative(path); +} - if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { - token.output = value; - push(token); - continue; - } +/** + * @typedef {import('ignore').Ignore & {filePath: string}} IgnoreConfig + * + * @typedef {'cwd'|'dir'} ResolveFrom + * + * @typedef Options + * @property {string} cwd + * @property {boolean|undefined} detectIgnore + * @property {string|undefined} ignoreName + * @property {string|undefined} ignorePath + * @property {ResolveFrom|undefined} ignorePathResolveFrom + * + * @callback Callback + * @param {Error|null} error + * @param {boolean|undefined} [result] + */ - if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { - if (prev.type === 'dot') { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; +class Ignore { + /** + * @param {Options} options + */ + constructor(options) { + /** @type {string} */ + this.cwd = options.cwd; + /** @type {ResolveFrom|undefined} */ + this.ignorePathResolveFrom = options.ignorePathResolveFrom; + + /** @type {FindUp} */ + this.findUp = new FindUp({ + cwd: options.cwd, + filePath: options.ignorePath, + detect: options.detectIgnore, + names: options.ignoreName ? [options.ignoreName] : [], + create + }); + } - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; + /** + * @param {string} filePath + * @param {Callback} callback + */ + check(filePath, callback) { + this.findUp.load(filePath, (error, ignoreSet) => { + if (error) { + callback(error); + } else if (ignoreSet) { + const normal = path$c.relative( + path$c.resolve( + this.cwd, + this.ignorePathResolveFrom === 'cwd' ? '.' : ignoreSet.filePath + ), + path$c.resolve(this.cwd, filePath) + ); + if ( + normal === '' || + normal === '..' || + normal.charAt(0) === path$c.sep || + normal.slice(0, 3) === '..' + path$c.sep + ) { + callback(null, false); + } else { + callback(null, ignoreSet.ignores(normal)); + } } else { - state.output += nodot; - prev.output += nodot; + callback(null, false); } + }); + } +} - if (peek() !== '*') { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } - } +/** + * @param {Buffer} buf + * @param {string} filePath + * @returns {IgnoreConfig} + */ +function create(buf, filePath) { + /** @type {IgnoreConfig} */ + return Object.assign(ignore().add(String(buf)), { + filePath: path$c.dirname(filePath) + }) +} - push(token); - } +var old$1 = {}; - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); - state.output = utils.escapeLast(state.output, '['); - decrement('brackets'); - } +// 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. - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); - state.output = utils.escapeLast(state.output, '('); - decrement('parens'); - } +var pathModule = path$b; +var isWindows = process.platform === 'win32'; +var fs$3 = require$$0$3; - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); - state.output = utils.escapeLast(state.output, '{'); - decrement('braces'); - } +// JavaScript implementation of realpath, ported from node pre-v6 - if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { - push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); - } +var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - // rebuild the output if we had to backtrack at any point - if (state.backtrack === true) { - state.output = ''; +function rethrow() { + // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and + // is fairly slow to generate. + var callback; + if (DEBUG) { + var backtrace = new Error; + callback = debugCallback; + } else + callback = missingCallback; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; + return callback; - if (token.suffix) { - state.output += token.suffix; - } + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); } } - return state; -}; - -/** - * Fast paths for creating regular expressions for common glob patterns. - * This can significantly speed up processing and has very little downside - * impact when none of the fast paths match. - */ - -parse$4.fastpaths = (input, options) => { - const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - const len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs + else if (!process.noDeprecation) { + var msg = 'fs: missing callback ' + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } } +} - input = REPLACEMENTS[input] || input; - const win32 = utils.isWindows(options); - - // create constants based on platform, for windows or posix - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants.globChars(win32); +function maybeCallback(cb) { + return typeof cb === 'function' ? cb : rethrow(); +} - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? '' : '?:'; - const state = { negated: false, prefix: '' }; - let star = opts.bash === true ? '.*?' : STAR; +pathModule.normalize; - if (opts.capture) { - star = `(${star})`; - } +// Regexp that finds the next partion of a (partial) path +// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] +if (isWindows) { + var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; +} else { + var nextPartRe = /(.*?)(?:[\/]+|$)/g; +} - const globstar = (opts) => { - if (opts.noglobstar === true) return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; +// Regex to find the device root, including trailing slash. E.g. 'c:\\'. +if (isWindows) { + var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; +} else { + var splitRootRe = /^[\/]*/; +} - const create = str => { - switch (str) { - case '*': - return `${nodot}${ONE_CHAR}${star}`; +old$1.realpathSync = function realpathSync(p, cache) { + // make p is absolute + p = pathModule.resolve(p); - case '.*': - return `${DOT_LITERAL}${ONE_CHAR}${star}`; + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } - case '*.*': - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + var original = p, + seenLinks = {}, + knownHard = {}; - case '*/*': - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; - case '**': - return nodot + globstar(opts); + start(); - case '**/*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; - case '**/*.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs$3.lstatSync(base); + knownHard[base] = true; + } + } - case '**/.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + // walk down the path, swapping out linked pathparts for their real + // values + // NB: p.length changes. + while (pos < p.length) { + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; - default: { - const match = /^(.*?)\.(\w+)$/.exec(str); - if (!match) return; + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + continue; + } - const source = create(match[1]); - if (!source) return; + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // some known symbolic link. no need to stat again. + resolvedLink = cache[base]; + } else { + var stat = fs$3.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + continue; + } - return source + DOT_LITERAL + match[2]; + // read the link if it wasn't read before + // dev/ino always return 0 on windows, so skip the check. + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs$3.statSync(base); + linkTarget = fs$3.readlinkSync(base); } + resolvedLink = pathModule.resolve(previous, linkTarget); + // track this, if given a cache. + if (cache) cache[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; } - }; - - const output = utils.removePrefix(input, state); - let source = create(output); - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); } - return source; -}; - -var parse_1$1 = parse$4; + if (cache) cache[original] = p; -const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val); + return p; +}; -/** - * Creates a matcher function from one or more glob patterns. The - * returned function takes a string to match as its first argument, - * and returns true if the string is a match. The returned matcher - * function also takes a boolean as the second argument that, when true, - * returns an object with additional information. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch(glob[, options]); - * - * const isMatch = picomatch('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @name picomatch - * @param {String|Array} `globs` One or more glob patterns. - * @param {Object=} `options` - * @return {Function=} Returns a matcher function. - * @api public - */ -const picomatch = (glob, options, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map(input => picomatch(input, options, returnState)); - const arrayMatcher = str => { - for (const isMatch of fns) { - const state = isMatch(str); - if (state) return state; - } - return false; - }; - return arrayMatcher; +old$1.realpath = function realpath(p, cache, cb) { + if (typeof cb !== 'function') { + cb = maybeCallback(cache); + cache = null; } - const isState = isObject$1(glob) && glob.tokens && glob.input; + // make p is absolute + p = pathModule.resolve(p); - if (glob === '' || (typeof glob !== 'string' && !isState)) { - throw new TypeError('Expected pattern to be a non-empty string'); + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); } - const opts = options || {}; - const posix = utils.isWindows(options); - const regex = isState - ? picomatch.compileRe(glob, options) - : picomatch.makeRe(glob, options, false, true); + var original = p, + seenLinks = {}, + knownHard = {}; - const state = regex.state; - delete regex.state; + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; - let isIgnored = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); - } + start(); - const matcher = (input, returnObject = false) => { - const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); - const result = { glob, state, regex, posix, input, output, match, isMatch }; + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; - if (typeof opts.onResult === 'function') { - opts.onResult(result); + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs$3.lstat(base, function(err) { + if (err) return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); } + } - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; + // walk down the path, swapping out linked pathparts for their real + // values + function LOOP() { + // stop if scanned past end of path + if (pos >= p.length) { + if (cache) cache[original] = p; + return cb(null, p); } - if (isIgnored(input)) { - if (typeof opts.onIgnore === 'function') { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + return process.nextTick(LOOP); } - if (typeof opts.onMatch === 'function') { - opts.onMatch(result); + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // known symbolic link. no need to stat again. + return gotResolvedLink(cache[base]); } - return returnObject ? result : true; - }; - if (returnState) { - matcher.state = state; + return fs$3.lstat(base, gotStat); } - return matcher; -}; + function gotStat(err, stat) { + if (err) return cb(err); -/** - * Test `input` with the given `regex`. This is used by the main - * `picomatch()` function to test the input string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.test(input, regex[, options]); - * - * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); - * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } - * ``` - * @param {String} `input` String to test. - * @param {RegExp} `regex` - * @return {Object} Returns an object with matching info. - * @api public - */ + // if not a symlink, skip to the next path part + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + return process.nextTick(LOOP); + } -picomatch.test = (input, regex, options, { glob, posix } = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected input to be a string'); - } + // stat & read the link if not read before + // call gotTarget as soon as the link target is known + // dev/ino always return 0 on windows, so skip the check. + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs$3.stat(base, function(err) { + if (err) return cb(err); - if (input === '') { - return { isMatch: false, output: '' }; + fs$3.readlink(base, function(err, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err, target); + }); + }); } - const opts = options || {}; - const format = opts.format || (posix ? utils.toPosixSlashes : null); - let match = input === glob; - let output = (match && format) ? format(input) : input; + function gotTarget(err, target, base) { + if (err) return cb(err); - if (match === false) { - output = format ? format(input) : input; - match = output === glob; + var resolvedLink = pathModule.resolve(previous, target); + if (cache) cache[base] = resolvedLink; + gotResolvedLink(resolvedLink); } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options, posix); - } else { - match = regex.exec(output); - } + function gotResolvedLink(resolvedLink) { + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); } - - return { isMatch: Boolean(match), match, output }; -}; - -/** - * Match the basename of a filepath. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.matchBase(input, glob[, options]); - * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true - * ``` - * @param {String} `input` String to test. - * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). - * @return {Boolean} - * @api public - */ - -picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); - return regex.test(path__default['default'].basename(input)); }; -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.isMatch(string, patterns[, options]); - * - * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String|Array} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); - -/** - * Parse a glob pattern to create the source string for a regular - * expression. - * - * ```js - * const picomatch = require('picomatch'); - * const result = picomatch.parse(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as a regex source string. - * @api public - */ - -picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); - return parse_1$1(pattern, { ...options, fastpaths: false }); -}; +var fs_realpath = realpath; +realpath.realpath = realpath; +realpath.sync = realpathSync; +realpath.realpathSync = realpathSync; +realpath.monkeypatch = monkeypatch; +realpath.unmonkeypatch = unmonkeypatch; -/** - * Scan a glob pattern to separate the pattern into segments. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.scan(input[, options]); - * - * const result = picomatch.scan('!./foo/*.js'); - * console.log(result); - * { prefix: '!./', - * input: '!./foo/*.js', - * start: 3, - * base: 'foo', - * glob: '*.js', - * isBrace: false, - * isBracket: false, - * isGlob: true, - * isExtglob: false, - * isGlobstar: false, - * negated: true } - * ``` - * @param {String} `input` Glob pattern to scan. - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public - */ +var fs$2 = require$$0$3; +var origRealpath = fs$2.realpath; +var origRealpathSync = fs$2.realpathSync; -picomatch.scan = (input, options) => scan_1(input, options); +var version$2 = process.version; +var ok$1 = /^v[0-5]\./.test(version$2); +var old = old$1; -/** - * Create a regular expression from a parsed glob pattern. - * - * ```js - * const picomatch = require('picomatch'); - * const state = picomatch.parse('*.js'); - * // picomatch.compileRe(state[, options]); - * - * console.log(picomatch.compileRe(state)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `state` The object returned from the `.parse` method. - * @param {Object} `options` - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ +function newError (er) { + return er && er.syscall === 'realpath' && ( + er.code === 'ELOOP' || + er.code === 'ENOMEM' || + er.code === 'ENAMETOOLONG' + ) +} -picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return parsed.output; +function realpath (p, cache, cb) { + if (ok$1) { + return origRealpath(p, cache, cb) } - const opts = options || {}; - const prepend = opts.contains ? '' : '^'; - const append = opts.contains ? '' : '$'; - - let source = `${prepend}(?:${parsed.output})${append}`; - if (parsed && parsed.negated === true) { - source = `^(?!${source}).*$`; + if (typeof cache === 'function') { + cb = cache; + cache = null; } + origRealpath(p, cache, function (er, result) { + if (newError(er)) { + old.realpath(p, cache, cb); + } else { + cb(er, result); + } + }); +} - const regex = picomatch.toRegex(source, options); - if (returnState === true) { - regex.state = parsed; +function realpathSync (p, cache) { + if (ok$1) { + return origRealpathSync(p, cache) } - return regex; -}; - -picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => { - if (!input || typeof input !== 'string') { - throw new TypeError('Expected a non-empty string'); + try { + return origRealpathSync(p, cache) + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache) + } else { + throw er + } } +} - const opts = options || {}; - let parsed = { negated: false, fastpaths: true }; - let prefix = ''; - let output; - - if (input.startsWith('./')) { - input = input.slice(2); - prefix = parsed.prefix = './'; - } +function monkeypatch () { + fs$2.realpath = realpath; + fs$2.realpathSync = realpathSync; +} - if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { - output = parse_1$1.fastpaths(input, options); - } +function unmonkeypatch () { + fs$2.realpath = origRealpath; + fs$2.realpathSync = origRealpathSync; +} - if (output === undefined) { - parsed = parse_1$1(input, options); - parsed.prefix = prefix + (parsed.prefix || ''); - } else { - parsed.output = output; - } +var concatMap$1 = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray$1(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; - return picomatch.compileRe(parsed, options, returnOutput, returnState); +var isArray$1 = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; }; -/** - * Create a regular expression from the given regex source string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.toRegex(source[, options]); - * - * const { output } = picomatch.parse('*.js'); - * console.log(picomatch.toRegex(output)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `source` Regular expression source string. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ +var balancedMatch = balanced$1; +function balanced$1(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); -picomatch.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); - } catch (err) { - if (options && options.debug === true) throw err; - return /$^/; - } -}; + var r = range(a, b, str); -/** - * Picomatch constants. - * @return {Object} - */ + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced$1.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; -picomatch.constants = constants; + if (ai >= 0 && bi > 0) { + begs = []; + left = str.length; -/** - * Expose "picomatch" - */ + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } -var picomatch_1 = picomatch; + bi = str.indexOf(b, i + 1); + } -var picomatch$1 = picomatch_1; + i = ai < bi && ai >= 0 ? ai : bi; + } -const { Readable } = require$$0__default['default']; + if (begs.length) { + result = [ left, right ]; + } + } -const { promisify } = util__default['default']; + return result; +} +var concatMap = concatMap$1; +var balanced = balancedMatch; -const readdir$1 = promisify(fs__default['default'].readdir); -const stat$2 = promisify(fs__default['default'].stat); -const lstat = promisify(fs__default['default'].lstat); -const realpath$2 = promisify(fs__default['default'].realpath); +var braceExpansion = expandTop; -/** - * @typedef {Object} EntryInfo - * @property {String} path - * @property {String} fullPath - * @property {fs.Stats=} stats - * @property {fs.Dirent=} dirent - * @property {String} basename - */ +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; -const BANG = '!'; -const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP']); -const FILE_TYPE = 'files'; -const DIR_TYPE = 'directories'; -const FILE_DIR_TYPE = 'files_directories'; -const EVERYTHING_TYPE = 'all'; -const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} -const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} -const normalizeFilter = filter => { - if (filter === undefined) return; - if (typeof filter === 'function') return filter; +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} - if (typeof filter === 'string') { - const glob = picomatch$1(filter.trim()); - return entry => glob(entry.basename); - } - if (Array.isArray(filter)) { - const positive = []; - const negative = []; - for (const item of filter) { - const trimmed = item.trim(); - if (trimmed.charAt(0) === BANG) { - negative.push(picomatch$1(trimmed.slice(1))); - } else { - positive.push(picomatch$1(trimmed)); - } - } +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; - if (negative.length > 0) { - if (positive.length > 0) { - return entry => - positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); - } - return entry => !negative.some(f => f(entry.basename)); - } - return entry => positive.some(f => f(entry.basename)); - } -}; + var parts = []; + var m = balanced('{', '}', str); -class ReaddirpStream extends Readable { - static get defaultOptions() { - return { - root: '.', - /* eslint-disable no-unused-vars */ - fileFilter: (path) => true, - directoryFilter: (path) => true, - /* eslint-enable no-unused-vars */ - type: FILE_TYPE, - lstat: false, - depth: 2147483648, - alwaysStat: false - }; - } + if (!m) + return str.split(','); - constructor(options = {}) { - super({ - objectMode: true, - autoDestroy: true, - highWaterMark: options.highWaterMark || 4096 - }); - const opts = { ...ReaddirpStream.defaultOptions, ...options }; - const { root, type } = opts; + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); - this._fileFilter = normalizeFilter(opts.fileFilter); - this._directoryFilter = normalizeFilter(opts.directoryFilter); + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } - const statMethod = opts.lstat ? lstat : stat$2; - // Use bigint stats if it's windows and stat() supports options (node 10+). - if (process.platform === 'win32' && stat$2.length === 3) { - this._stat = path => statMethod(path, { bigint: true }); - } else { - this._stat = statMethod; - } + parts.push.apply(parts, p); - this._maxDepth = opts.depth; - this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); - this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); - this._wantsEverything = type === EVERYTHING_TYPE; - this._root = path__default['default'].resolve(root); - this._isDirent = ('Dirent' in fs__default['default']) && !opts.alwaysStat; - this._statsProp = this._isDirent ? 'dirent' : 'stats'; - this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + return parts; +} - // Launch stream with one parent, the root dir. - this.parents = [this._exploreDir(root, 1)]; - this.reading = false; - this.parent = undefined; +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); } - async _read(batch) { - if (this.reading) return; - this.reading = true; + return expand$2(escapeBraces(str), true).map(unescapeBraces); +} - try { - while (!this.destroyed && batch > 0) { - const { path, depth, files = [] } = this.parent || {}; +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} - if (files.length > 0) { - const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); - for (const entry of await Promise.all(slice)) { - if (this.destroyed) return; +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} - const entryType = await this._getEntryType(entry); - if (entryType === 'directory' && this._directoryFilter(entry)) { - if (depth <= this._maxDepth) { - this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); - } +function expand$2(str, isTop) { + var expansions = []; - if (this._wantsDir) { - this.push(entry); - batch--; - } - } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { - if (this._wantsFile) { - this.push(entry); - batch--; - } - } - } - } else { - const parent = this.parents.pop(); - if (!parent) { - this.push(null); - break; - } - this.parent = await parent; - if (this.destroyed) return; - } - } - } catch (error) { - this.destroy(error); - } finally { - this.reading = false; - } - } + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; - async _exploreDir(path, depth) { - let files; - try { - files = await readdir$1(path, this._rdOptions); - } catch (error) { - this._onError(error); + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand$2(str); } - return {files, depth, path}; + return [str]; } - async _formatEntry(dirent, path) { - let entry; - try { - const basename = this._isDirent ? dirent.name : dirent; - const fullPath = path__default['default'].resolve(path__default['default'].join(path, basename)); - entry = {path: path__default['default'].relative(this._root, fullPath), fullPath, basename}; - entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); - } catch (err) { - this._onError(err); + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand$2(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand$2(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } } - return entry; } - _onError(err) { - if (isNormalFlowError(err) && !this.destroyed) { - this.emit('warn', err); - } else { - this.destroy(err); - } - } + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. - async _getEntryType(entry) { - // entry may be undefined, because a warning or an error were emitted - // and the statsProp is undefined - const stats = entry && entry[this._statsProp]; - if (!stats) { - return; - } - if (stats.isFile()) { - return 'file'; - } - if (stats.isDirectory()) { - return 'directory'; + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand$2(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; } - if (stats && stats.isSymbolicLink()) { - const full = entry.fullPath; - try { - const entryRealPath = await realpath$2(full); - const entryRealPathStats = await lstat(entryRealPath); - if (entryRealPathStats.isFile()) { - return 'file'; - } - if (entryRealPathStats.isDirectory()) { - const len = entryRealPath.length; - if (full.startsWith(entryRealPath) && full.substr(len, 1) === path__default['default'].sep) { - return this._onError(new Error( - `Circular symlink detected: "${full}" points to "${entryRealPath}"` - )); + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; } - return 'directory'; } - } catch (error) { - this._onError(error); } + N.push(c); } + } else { + N = concatMap(n, function(el) { return expand$2(el, false) }); } - _includeAsFile(entry) { - const stats = entry && entry[this._statsProp]; - - return stats && this._wantsEverything && !stats.isDirectory(); + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } } + + return expansions; } -/** - * @typedef {Object} ReaddirpArguments - * @property {Function=} fileFilter - * @property {Function=} directoryFilter - * @property {String=} type - * @property {Number=} depth - * @property {String=} root - * @property {Boolean=} lstat - * @property {Boolean=} bigint - */ +var minimatch_1 = minimatch$3; +minimatch$3.Minimatch = Minimatch$1; -/** - * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. - * @param {String} root Root directory - * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth - */ -const readdirp = (root, options = {}) => { - let type = options.entryType || options.type; - if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility - if (type) options.type = type; - if (!root) { - throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); - } else if (typeof root !== 'string') { - throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); - } else if (type && !ALL_TYPES.includes(type)) { - throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); - } +var path$4 = { sep: '/' }; +try { + path$4 = path$b; +} catch (er) {} - options.root = root; - return new ReaddirpStream(options); -}; +var GLOBSTAR = minimatch$3.GLOBSTAR = Minimatch$1.GLOBSTAR = {}; +var expand$1 = braceExpansion; -const readdirpPromise = (root, options = {}) => { - return new Promise((resolve, reject) => { - const files = []; - readdirp(root, options) - .on('data', entry => files.push(entry)) - .on('end', () => resolve(files)) - .on('error', error => reject(error)); - }); +var plTypes = { + '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, + '?': { open: '(?:', close: ')?' }, + '+': { open: '(?:', close: ')+' }, + '*': { open: '(?:', close: ')*' }, + '@': { open: '(?:', close: ')' } }; -readdirp.promise = readdirpPromise; -readdirp.ReaddirpStream = ReaddirpStream; -readdirp.default = readdirp; - -var readdirp_1 = readdirp; - -/*! - * normalize-path - * - * Copyright (c) 2014-2018, Jon Schlinkert. - * Released under the MIT License. - */ -var normalizePath = function(path, stripTrailing) { - if (typeof path !== 'string') { - throw new TypeError('expected path to be a string'); - } - - if (path === '\\' || path === '/') return '/'; +// any single thing other than / +// don't need to escape / when using new RegExp() +var qmark = '[^/]'; - var len = path.length; - if (len <= 1) return path; +// * => any number of characters +var star = qmark + '*?'; - // ensure that win32 namespaces has two leading slashes, so that the path is - // handled properly by the win32 version of path.parse() after being normalized - // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces - var prefix = ''; - if (len > 4 && path[3] === '\\') { - var ch = path[2]; - if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { - path = path.slice(2); - prefix = '//'; - } - } +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'; - var segs = path.split(/[/\\]+/); - if (stripTrailing !== false && segs[segs.length - 1] === '') { - segs.pop(); - } - return prefix + segs.join('/'); -}; +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'; -/** - * @typedef {(testString: string) => boolean} AnymatchFn - * @typedef {string|RegExp|AnymatchFn} AnymatchPattern - * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher - */ -const BANG$1 = '!'; -const DEFAULT_OPTIONS = {returnIndex: false}; -const arrify = (item) => Array.isArray(item) ? item : [item]; +// characters that need to be escaped in RegExp. +var reSpecials = charSet('().*{}+?[]^$\\!'); -/** - * @param {AnymatchPattern} matcher - * @param {object} options - * @returns {AnymatchFn} - */ -const createPattern = (matcher, options) => { - if (typeof matcher === 'function') { - return matcher; - } - if (typeof matcher === 'string') { - const glob = picomatch$1(matcher, options); - return (string) => matcher === string || glob(string); - } - if (matcher instanceof RegExp) { - return (string) => matcher.test(string); - } - return (string) => false; -}; +// "abc" -> { a:true, b:true, c:true } +function charSet (s) { + return s.split('').reduce(function (set, c) { + set[c] = true; + return set + }, {}) +} -/** - * @param {Array} patterns - * @param {Array} negPatterns - * @param {String|Array} args - * @param {Boolean} returnIndex - * @returns {boolean|number} - */ -const matchPatterns = (patterns, negPatterns, args, returnIndex) => { - const isList = Array.isArray(args); - const _path = isList ? args[0] : args; - if (!isList && typeof _path !== 'string') { - throw new TypeError('anymatch: second argument must be a string: got ' + - Object.prototype.toString.call(_path)) - } - const path = normalizePath(_path); +// normalizes slashes. +var slashSplit = /\/+/; - for (let index = 0; index < negPatterns.length; index++) { - const nglob = negPatterns[index]; - if (nglob(path)) { - return returnIndex ? -1 : false; - } +minimatch$3.filter = filter; +function filter (pattern, options) { + options = options || {}; + return function (p, i, list) { + return minimatch$3(p, pattern, options) } +} - const applied = isList && [path].concat(args.slice(1)); - for (let index = 0; index < patterns.length; index++) { - const pattern = patterns[index]; - if (isList ? pattern(...applied) : pattern(path)) { - return returnIndex ? index : true; - } - } +function ext (a, b) { + a = a || {}; + b = b || {}; + var t = {}; + Object.keys(b).forEach(function (k) { + t[k] = b[k]; + }); + Object.keys(a).forEach(function (k) { + t[k] = a[k]; + }); + return t +} - return returnIndex ? -1 : false; -}; +minimatch$3.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch$3 -/** - * @param {AnymatchMatcher} matchers - * @param {Array|string} testString - * @param {object} options - * @returns {boolean|number|Function} - */ -const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { - if (matchers == null) { - throw new TypeError('anymatch: specify first argument'); - } - const opts = typeof options === 'boolean' ? {returnIndex: options} : options; - const returnIndex = opts.returnIndex || false; + var orig = minimatch$3; - // Early cache for matchers. - const mtchers = arrify(matchers); - const negatedGlobs = mtchers - .filter(item => typeof item === 'string' && item.charAt(0) === BANG$1) - .map(item => item.slice(1)) - .map(item => picomatch$1(item, opts)); - const patterns = mtchers.map(matcher => createPattern(matcher, opts)); + var m = function minimatch (p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)) + }; - if (testString == null) { - return (testString, ri = false) => { - const returnIndex = typeof ri === 'boolean' ? ri : false; - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); - } - } + m.Minimatch = function Minimatch (pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)) + }; - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + return m }; -anymatch.default = anymatch; -var anymatch_1 = anymatch; - -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -var isExtglob = function isExtglob(str) { - if (typeof str !== 'string' || str === '') { - return false; - } - - var match; - while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { - if (match[2]) return true; - str = str.slice(match.index + match[0].length); - } - - return false; +Minimatch$1.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch$1 + return minimatch$3.defaults(def).Minimatch }; -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -var chars$1 = { '{': '}', '(': ')', '[': ']'}; -var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; -var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; - -var isGlob = function isGlob(str, options) { - if (typeof str !== 'string' || str === '') { - return false; - } - - if (isExtglob(str)) { - return true; +function minimatch$3 (p, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') } - var regex = strictRegex; - var match; + if (!options) options = {}; - // optionally relax regex - if (options && options.strict === false) { - regex = relaxedRegex; + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false } - while ((match = regex.exec(str))) { - if (match[2]) return true; - var idx = match.index + match[0].length; + // "" only matches "" + if (pattern.trim() === '') return p === '' - // if an open bracket/brace/paren is escaped, - // set the index to the next closing character - var open = match[1]; - var close = open ? chars$1[open] : null; - if (open && close) { - var n = str.indexOf(close, idx); - if (n !== -1) { - idx = n + 1; - } - } + return new Minimatch$1(pattern, options).match(p) +} - str = str.slice(idx); +function Minimatch$1 (pattern, options) { + if (!(this instanceof Minimatch$1)) { + return new Minimatch$1(pattern, options) } - return false; -}; -var pathPosixDirname = path__default['default'].posix.dirname; -var isWin32 = os__default['default'].platform() === 'win32'; - -var slash = '/'; -var backslash = /\\/g; -var enclosure = /[\{\[].*[\}\]]$/; -var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; -var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') + } -/** - * @param {string} str - * @param {Object} opts - * @param {boolean} [opts.flipBackslashes=true] - * @returns {string} - */ -var globParent = function globParent(str, opts) { - var options = Object.assign({ flipBackslashes: true }, opts); + if (!options) options = {}; + pattern = pattern.trim(); - // flip windows path separators - if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { - str = str.replace(backslash, slash); + // windows support: need to use /, not \ + if (path$4.sep !== '/') { + pattern = pattern.split(path$4.sep).join('/'); } - // special case for strings ending in enclosure containing path separator - if (enclosure.test(str)) { - str += slash; - } + this.options = options; + this.set = []; + this.pattern = pattern; + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; - // preserves full path in case of trailing path separator - str += 'a'; + // make the set of regexps etc. + this.make(); +} - // remove path parts that are globby - do { - str = pathPosixDirname(str); - } while (isGlob(str) || globby.test(str)); +Minimatch$1.prototype.debug = function () {}; - // remove escape chars and return result - return str.replace(escaped, '$1'); -}; +Minimatch$1.prototype.make = make; +function make () { + // don't do it more than once. + if (this._made) return -var utils$1 = createCommonjsModule(function (module, exports) { + var pattern = this.pattern; + var options = this.options; -exports.isInteger = num => { - if (typeof num === 'number') { - return Number.isInteger(num); + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true; + return } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isInteger(Number(num)); + if (!pattern) { + this.empty = true; + return } - return false; -}; - -/** - * Find a node of the given type - */ -exports.find = (node, type) => node.nodes.find(node => node.type === type); + // step 1: figure out negation, etc. + this.parseNegate(); -/** - * Find a node of the given type - */ + // step 2: expand braces + var set = this.globSet = this.braceExpand(); -exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) return false; - return ((Number(max) - Number(min)) / Number(step)) >= limit; -}; + if (options.debug) this.debug = console.error; -/** - * Escape the given node with '\\' before node.value - */ + this.debug(this.pattern, set); -exports.escapeNode = (block, n = 0, type) => { - let node = block.nodes[n]; - if (!node) return; + // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + set = this.globParts = set.map(function (s) { + return s.split(slashSplit) + }); - if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { - if (node.escaped !== true) { - node.value = '\\' + node.value; - node.escaped = true; - } - } -}; + this.debug(this.pattern, set); -/** - * Returns true if the given brace node should be enclosed in literal braces - */ + // glob --> regexps + set = set.map(function (s, si, set) { + return s.map(this.parse, this) + }, this); -exports.encloseBrace = node => { - if (node.type !== 'brace') return false; - if ((node.commas >> 0 + node.ranges >> 0) === 0) { - node.invalid = true; - return true; - } - return false; -}; + this.debug(this.pattern, set); -/** - * Returns true if a brace node is invalid. - */ + // filter out everything that didn't compile properly. + set = set.filter(function (s) { + return s.indexOf(false) === -1 + }); -exports.isInvalidBrace = block => { - if (block.type !== 'brace') return false; - if (block.invalid === true || block.dollar) return true; - if ((block.commas >> 0 + block.ranges >> 0) === 0) { - block.invalid = true; - return true; - } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; - } - return false; -}; + this.debug(this.pattern, set); -/** - * Returns true if a node is an open or close node - */ + this.set = set; +} -exports.isOpenOrClose = node => { - if (node.type === 'open' || node.type === 'close') { - return true; - } - return node.open === true || node.close === true; -}; +Minimatch$1.prototype.parseNegate = parseNegate; +function parseNegate () { + var pattern = this.pattern; + var negate = false; + var options = this.options; + var negateOffset = 0; -/** - * Reduce an array of text nodes. - */ + if (options.nonegate) return -exports.reduce = nodes => nodes.reduce((acc, node) => { - if (node.type === 'text') acc.push(node.value); - if (node.type === 'range') node.type = 'text'; - return acc; -}, []); + for (var i = 0, l = pattern.length + ; i < l && pattern.charAt(i) === '!' + ; i++) { + negate = !negate; + negateOffset++; + } -/** - * Flatten an array - */ + if (negateOffset) this.pattern = pattern.substr(negateOffset); + this.negate = negate; +} -exports.flatten = (...args) => { - const result = []; - const flat = arr => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); - } - return result; - }; - flat(args); - return result; +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +minimatch$3.braceExpand = function (pattern, options) { + return braceExpand(pattern, options) }; -}); -var stringify$3 = (ast, options = {}) => { - let stringify = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils$1.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ''; +Minimatch$1.prototype.braceExpand = braceExpand; - if (node.value) { - if ((invalidBlock || invalidNode) && utils$1.isOpenOrClose(node)) { - return '\\' + node.value; - } - return node.value; +function braceExpand (pattern, options) { + if (!options) { + if (this instanceof Minimatch$1) { + options = this.options; + } else { + options = {}; } + } - if (node.value) { - return node.value; - } + pattern = typeof pattern === 'undefined' + ? this.pattern : pattern; - if (node.nodes) { - for (let child of node.nodes) { - output += stringify(child); - } - } - return output; - }; + if (typeof pattern === 'undefined') { + throw new TypeError('undefined pattern') + } - return stringify(ast); -}; + if (options.nobrace || + !pattern.match(/\{.*\}/)) { + // shortcut. no need to expand. + return [pattern] + } -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ + return expand$1(pattern) +} -var isNumber = function(num) { - if (typeof num === 'number') { - return num - num === 0; - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +Minimatch$1.prototype.parse = parse$3; +var SUBPARSE = {}; +function parse$3 (pattern, isSub) { + if (pattern.length > 1024 * 64) { + throw new TypeError('pattern is too long') } - return false; -}; -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ + var options = this.options; + // shortcuts + if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (pattern === '') return '' + var re = ''; + var hasMagic = !!options.nocase; + var escaping = false; + // ? => one single character + var patternListStack = []; + var negativeLists = []; + var stateChar; + var inClass = false; + var reClassStart = -1; + var classStart = -1; + // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' + : '(?!\\.)'; + var self = this; -const toRegexRange = (min, max, options) => { - if (isNumber(min) === false) { - throw new TypeError('toRegexRange: expected the first argument to be a number'); + function clearStateChar () { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star; + hasMagic = true; + break + case '?': + re += qmark; + hasMagic = true; + break + default: + re += '\\' + stateChar; + break + } + self.debug('clearStateChar %j %j', stateChar, re); + stateChar = false; + } } - if (max === void 0 || min === max) { - return String(min); - } + for (var i = 0, len = pattern.length, c + ; (i < len) && (c = pattern.charAt(i)) + ; i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c); - if (isNumber(max) === false) { - throw new TypeError('toRegexRange: expected the second argument to be a number.'); - } + // skip over any that are escaped. + if (escaping && reSpecials[c]) { + re += '\\' + c; + escaping = false; + continue + } - let opts = { relaxZeros: true, ...options }; - if (typeof opts.strictZeros === 'boolean') { - opts.relaxZeros = opts.strictZeros === false; - } + switch (c) { + case '/': + // completely not allowed, even escaped. + // Should already be path-split by now. + return false - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + case '\\': + clearStateChar(); + escaping = true; + continue - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; - } + // the various stateChar values + // for the "extglob" stuff. + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c); - let a = Math.min(min, max); - let b = Math.max(min, max); + // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp + if (inClass) { + this.debug(' in class'); + if (c === '!' && i === classStart + 1) c = '^'; + re += c; + continue + } - if (Math.abs(a - b) === 1) { - let result = min + '|' + max; - if (opts.capture) { - return `(${result})`; - } - if (opts.wrap === false) { - return result; - } - return `(?:${result})`; - } + // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. + self.debug('call clearStateChar %j', stateChar); + clearStateChar(); + stateChar = c; + // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. + if (options.noext) clearStateChar(); + continue - let isPadded = hasPadding(min) || hasPadding(max); - let state = { min, max, a, b }; - let positives = []; - let negatives = []; + case '(': + if (inClass) { + re += '('; + continue + } - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } + if (!stateChar) { + re += '\\('; + continue + } - if (a < 0) { - let newMin = b < 0 ? Math.abs(b) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }); + // negation is (?:(?!js)[^/]*) + re += stateChar === '!' ? '(?:(?!(?:' : '(?:'; + this.debug('plType %j %j', stateChar, re); + stateChar = false; + continue - if (b >= 0) { - positives = splitToPatterns(a, b, state, opts); - } + case ')': + if (inClass || !patternListStack.length) { + re += '\\)'; + continue + } - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives); + clearStateChar(); + hasMagic = true; + var pl = patternListStack.pop(); + // negation is (?:(?!js)[^/]*) + // The others are (?:) + re += pl.close; + if (pl.type === '!') { + negativeLists.push(pl); + } + pl.reEnd = re.length; + continue - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { - state.result = `(?:${state.result})`; - } + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|'; + escaping = false; + continue + } - toRegexRange.cache[cacheKey] = state; - return state.result; -}; + clearStateChar(); + re += '|'; + continue -function collatePatterns(neg, pos, options) { - let onlyNegative = filterPatterns(neg, pos, '-', false) || []; - let onlyPositive = filterPatterns(pos, neg, '', false) || []; - let intersected = filterPatterns(neg, pos, '-?', true) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join('|'); -} + // these are mostly the same in regexp and glob + case '[': + // swallow any state-tracking char before the [ + clearStateChar(); -function splitToRanges(min, max) { - let nines = 1; - let zeros = 1; + if (inClass) { + re += '\\' + c; + continue + } - let stop = countNines(min, nines); - let stops = new Set([max]); + inClass = true; + classStart = i; + reClassStart = re.length; + re += c; + continue - while (min <= stop && stop <= max) { - stops.add(stop); - nines += 1; - stop = countNines(min, nines); - } + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c; + escaping = false; + continue + } - stop = countZeros(max + 1, zeros) - 1; + // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" + if (inClass) { + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i); + try { + RegExp('[' + cs + ']'); + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'; + hasMagic = hasMagic || sp[1]; + inClass = false; + continue + } + } - while (min < stop && stop <= max) { - stops.add(stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; - } + // finish up the class. + hasMagic = true; + inClass = false; + re += c; + continue - stops = [...stops]; - stops.sort(compare$1); - return stops; -} + default: + // swallow any state char that wasn't consumed + clearStateChar(); -/** - * Convert a range to a regex pattern - * @param {Number} `start` - * @param {Number} `stop` - * @return {String} - */ + if (escaping) { + // no need + escaping = false; + } else if (reSpecials[c] + && !(c === '^' && inClass)) { + re += '\\'; + } -function rangeToPattern(start, stop, options) { - if (start === stop) { - return { pattern: start, count: [], digits: 0 }; + re += c; + + } // switch + } // for + + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1); + sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + '\\[' + sp[0]; + hasMagic = hasMagic || sp[1]; } - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ''; - let count = 0; - - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; + // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length); + this.debug('setting tail', re, pl); + // maybe some even number of \, then maybe 1 \, followed by a | + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\'; + } - if (startDigit === stopDigit) { - pattern += startDigit; + // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. + return $1 + $1 + $2 + '|' + }); - } else if (startDigit !== '0' || stopDigit !== '9') { - pattern += toCharacterClass(startDigit, stopDigit); + this.debug('tail=%j\n %s', tail, tail, pl, re); + var t = pl.type === '*' ? star + : pl.type === '?' ? qmark + : '\\' + pl.type; - } else { - count++; - } + hasMagic = true; + re = re.slice(0, pl.reStart) + t + '\\(' + tail; } - if (count) { - pattern += options.shorthand === true ? '\\d' : '[0-9]'; + // handle trailing things that only matter at the very end. + clearStateChar(); + if (escaping) { + // trailing \\ + re += '\\\\'; } - return { pattern, count: [count], digits }; -} + // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot + var addPatternStart = false; + switch (re.charAt(0)) { + case '.': + case '[': + case '(': addPatternStart = true; + } -function splitToPatterns(min, max, tok, options) { - let ranges = splitToRanges(min, max); - let tokens = []; - let start = min; - let prev; + // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n]; - for (let i = 0; i < ranges.length; i++) { - let max = ranges[i]; - let obj = rangeToPattern(String(start), String(max), options); - let zeros = ''; + var nlBefore = re.slice(0, nl.reStart); + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8); + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd); + var nlAfter = re.slice(nl.reEnd); - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); - } + nlLast += nlAfter; - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max + 1; - continue; + // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. + var openParensBefore = nlBefore.split('(').length - 1; + var cleanAfter = nlAfter; + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, ''); } + nlAfter = cleanAfter; - if (tok.isPadded) { - zeros = padZeros(max, tok, options); + var dollar = ''; + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$'; } - - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max + 1; - prev = obj; + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; + re = newRe; } - return tokens; -} - -function filterPatterns(arr, comparison, prefix, intersection, options) { - let result = []; + // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. + if (re !== '' && hasMagic) { + re = '(?=.)' + re; + } - for (let ele of arr) { - let { string } = ele; + if (addPatternStart) { + re = patternStart + re; + } - // only push if _both_ are negative... - if (!intersection && !contains(comparison, 'string', string)) { - result.push(prefix + string); - } + // parsing just a piece of a larger pattern. + if (isSub === SUBPARSE) { + return [re, hasMagic] + } - // or _both_ are positive - if (intersection && contains(comparison, 'string', string)) { - result.push(prefix + string); - } + // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. + if (!hasMagic) { + return globUnescape(pattern) } - return result; -} -/** - * Zip strings - */ + var flags = options.nocase ? 'i' : ''; + try { + var regExp = new RegExp('^' + re + '$', flags); + } catch (er) { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.') + } -function zip(a, b) { - let arr = []; - for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); - return arr; -} + regExp._glob = pattern; + regExp._src = re; -function compare$1(a, b) { - return a > b ? 1 : b > a ? -1 : 0; + return regExp } -function contains(arr, key, val) { - return arr.some(ele => ele[key] === val); -} +minimatch$3.makeRe = function (pattern, options) { + return new Minimatch$1(pattern, options || {}).makeRe() +}; -function countNines(min, len) { - return Number(String(min).slice(0, -len) + '9'.repeat(len)); -} +Minimatch$1.prototype.makeRe = makeRe; +function makeRe () { + if (this.regexp || this.regexp === false) return this.regexp -function countZeros(integer, zeros) { - return integer - (integer % Math.pow(10, zeros)); -} + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + var set = this.set; -function toQuantifier(digits) { - let [start = 0, stop = ''] = digits; - if (stop || start > 1) { - return `{${start + (stop ? ',' + stop : '')}}`; + if (!set.length) { + this.regexp = false; + return this.regexp } - return ''; -} + var options = this.options; -function toCharacterClass(a, b, options) { - return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; -} + var twoStar = options.noglobstar ? star + : options.dot ? twoStarDot + : twoStarNoDot; + var flags = options.nocase ? 'i' : ''; -function hasPadding(str) { - return /^-?(0+)\d/.test(str); -} + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return (p === GLOBSTAR) ? twoStar + : (typeof p === 'string') ? regExpEscape(p) + : p._src + }).join('\\\/') + }).join('|'); -function padZeros(value, tok, options) { - if (!tok.isPadded) { - return value; - } + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^(?:' + re + ')$'; - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options.relaxZeros !== false; + // can match anything, as long as it's not this. + if (this.negate) re = '^(?!' + re + ').*$'; - switch (diff) { - case 0: - return ''; - case 1: - return relax ? '0?' : '0'; - case 2: - return relax ? '0{0,2}' : '00'; - default: { - return relax ? `0{0,${diff}}` : `0{${diff}}`; - } + try { + this.regexp = new RegExp(re, flags); + } catch (ex) { + this.regexp = false; } + return this.regexp } -/** - * Cache - */ - -toRegexRange.cache = {}; -toRegexRange.clearCache = () => (toRegexRange.cache = {}); - -/** - * Expose `toRegexRange` - */ - -var toRegexRange_1 = toRegexRange; - -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - - -const isObject$2 = val => val !== null && typeof val === 'object' && !Array.isArray(val); - -const transform$3 = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; - -const isValidValue = value => { - return typeof value === 'number' || (typeof value === 'string' && value !== ''); +minimatch$3.match = function (list, pattern, options) { + options = options || {}; + var mm = new Minimatch$1(pattern, options); + list = list.filter(function (f) { + return mm.match(f) + }); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list }; -const isNumber$1 = num => Number.isInteger(+num); - -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; - while (value[++index] === '0'); - return index > 0; -}; +Minimatch$1.prototype.match = match; +function match (f, partial) { + this.debug('match', f, this.pattern); + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false + if (this.empty) return f === '' -const stringify$4 = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } - return options.stringify === true; -}; + if (f === '/' && partial) return true -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); - } - if (toNumber === false) { - return String(input); - } - return input; -}; + var options = this.options; -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; - if (negative) { - input = input.slice(1); - maxLength--; + // windows: need to use /, not \ + if (path$4.sep !== '/') { + f = f.split(path$4.sep).join('/'); } - while (input.length < maxLength) input = '0' + input; - return negative ? ('-' + input) : input; -}; - -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; + // treat the test path as a set of pathparts. + f = f.split(slashSplit); + this.debug(this.pattern, 'split', f); - if (parts.positives.length) { - positives = parts.positives.join('|'); - } + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } + var set = this.set; + this.debug(this.pattern, 'set', set); - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; + // Find the basename of the path by looking for the last non-empty segment + var filename; + var i; + for (i = f.length - 1; i >= 0; i--) { + filename = f[i]; + if (filename) break } - if (options.wrap) { - return `(${prefix}${result})`; + for (i = 0; i < set.length; i++) { + var pattern = set[i]; + var file = f; + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } + var hit = this.matchOne(file, pattern, partial); + if (hit) { + if (options.flipNegate) return true + return !this.negate + } } - return result; -}; - -const toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange_1(a, b, { wrap: false, ...options }); - } + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) return false + return this.negate +} - let start = String.fromCharCode(a); - if (a === b) return start; +// set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. +Minimatch$1.prototype.matchOne = function (file, pattern, partial) { + var options = this.options; - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; + this.debug('matchOne', + { 'this': this, file: file, pattern: pattern }); -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); - } - return toRegexRange_1(start, end, options); -}; + this.debug('matchOne', file.length, pattern.length); -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); -}; + for (var fi = 0, + pi = 0, + fl = file.length, + pl = pattern.length + ; (fi < fl) && (pi < pl) + ; fi++, pi++) { + this.debug('matchOne loop'); + var p = pattern[pi]; + var f = file[fi]; -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; + this.debug(pattern, p, f); -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; -}; + // should be impossible. + // some invalid regexp stuff in the set. + if (p === false) return false -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]); - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi; + var pr = pi + 1; + if (pr === pl) { + this.debug('** at the end'); + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) return false + } + return true + } - // fix negative zero - if (a === 0) a = 0; - if (b === 0) b = 0; + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr]; - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify$4(start, end, options) === false; - let format = options.transform || transform$3(toNumber); + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee); + // found a match. + return true + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr); + break + } - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue'); + fr++; + } + } - let parts = { negatives: [], positives: [] }; - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); - let range = []; - let index = 0; + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr); + if (fr === fl) return true + } + return false + } - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + var hit; + if (typeof p === 'string') { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase(); + } else { + hit = f === p; + } + this.debug('string match', p, f, hit); } else { - range.push(pad(format(a, index), maxLen, toNumber)); + hit = f.match(p); + this.debug('pattern match', p, f, hit); } - a = descending ? a - step : a + step; - index++; + + if (!hit) return false } - if (options.toRegex === true) { - return step > 1 - ? toSequence(parts, options) - : toRegex(range, null, { wrap: false, ...options }); + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial + } else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + var emptyFileEnd = (fi === fl - 1) && (file[fi] === ''); + return emptyFileEnd } - return range; + // should be unreachable. + throw new Error('wtf?') }; -const fillLetters = (start, end, step = 1, options = {}) => { - if ((!isNumber$1(start) && start.length > 1) || (!isNumber$1(end) && end.length > 1)) { - return invalidRange(start, end, options); - } +// replace stuff like \* with * +function globUnescape (s) { + return s.replace(/\\(.)/g, '$1') +} +function regExpEscape (s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +} - let format = options.transform || (val => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); +var inherits$2 = {exports: {}}; - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); +var inherits_browser = {exports: {}}; - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + inherits_browser.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; +} else { + // old school shim for old browsers + inherits_browser.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; +} - let range = []; - let index = 0; +try { + var util$1 = require$$0$4; + /* istanbul ignore next */ + if (typeof util$1.inherits !== 'function') throw ''; + inherits$2.exports = util$1.inherits; +} catch (e) { + /* istanbul ignore next */ + inherits$2.exports = inherits_browser.exports; +} - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } +var pathIsAbsolute = {exports: {}}; - if (options.toRegex === true) { - return toRegex(range, null, { wrap: false, options }); - } +function posix(path) { + return path.charAt(0) === '/'; +} - return range; -}; +function win32(path) { + // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = Boolean(device && device.charAt(1) !== ':'); -const fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } + // UNC paths are always absolute + return Boolean(result[2] || isUnc); +} - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } +pathIsAbsolute.exports = process.platform === 'win32' ? win32 : posix; +pathIsAbsolute.exports.posix = posix; +pathIsAbsolute.exports.win32 = win32; - if (typeof step === 'function') { - return fill(start, end, 1, { transform: step }); - } +var common$2 = {}; - if (isObject$2(step)) { - return fill(start, end, 0, step); - } +common$2.alphasort = alphasort; +common$2.alphasorti = alphasorti; +common$2.setopts = setopts$2; +common$2.ownProp = ownProp$2; +common$2.makeAbs = makeAbs; +common$2.finish = finish; +common$2.mark = mark; +common$2.isIgnored = isIgnored$2; +common$2.childrenIgnored = childrenIgnored$2; - let opts = { ...options }; - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; +function ownProp$2 (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) +} - if (!isNumber$1(step)) { - if (step != null && !isObject$2(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); - } +var path$3 = path$b; +var minimatch$2 = minimatch_1; +var isAbsolute$2 = pathIsAbsolute.exports; +var Minimatch = minimatch$2.Minimatch; - if (isNumber$1(start) && isNumber$1(end)) { - return fillNumbers(start, end, step, opts); - } +function alphasorti (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()) +} - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; +function alphasort (a, b) { + return a.localeCompare(b) +} -var fillRange = fill; +function setupIgnores (self, options) { + self.ignore = options.ignore || []; -const compile$1 = (ast, options = {}) => { - let walk = (node, parent = {}) => { - let invalidBlock = utils$1.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options.escapeInvalid === true ? '\\' : ''; - let output = ''; + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore]; - if (node.isOpen === true) { - return prefix + node.value; - } - if (node.isClose === true) { - return prefix + node.value; - } + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap); + } +} - if (node.type === 'open') { - return invalid ? (prefix + node.value) : '('; - } +// ignore patterns are always in dot:true mode. +function ignoreMap (pattern) { + var gmatcher = null; + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, ''); + gmatcher = new Minimatch(gpattern, { dot: true }); + } - if (node.type === 'close') { - return invalid ? (prefix + node.value) : ')'; - } + return { + matcher: new Minimatch(pattern, { dot: true }), + gmatcher: gmatcher + } +} - if (node.type === 'comma') { - return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); - } +function setopts$2 (self, pattern, options) { + if (!options) + options = {}; - if (node.value) { - return node.value; + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") } + pattern = "**/" + pattern; + } - if (node.nodes && node.ranges > 0) { - let args = utils$1.reduce(node.nodes); - let range = fillRange(...args, { ...options, wrap: false, toRegex: true }); + self.silent = !!options.silent; + self.pattern = pattern; + self.strict = options.strict !== false; + self.realpath = !!options.realpath; + self.realpathCache = options.realpathCache || Object.create(null); + self.follow = !!options.follow; + self.dot = !!options.dot; + self.mark = !!options.mark; + self.nodir = !!options.nodir; + if (self.nodir) + self.mark = true; + self.sync = !!options.sync; + self.nounique = !!options.nounique; + self.nonull = !!options.nonull; + self.nosort = !!options.nosort; + self.nocase = !!options.nocase; + self.stat = !!options.stat; + self.noprocess = !!options.noprocess; + self.absolute = !!options.absolute; - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; - } - } + self.maxLength = options.maxLength || Infinity; + self.cache = options.cache || Object.create(null); + self.statCache = options.statCache || Object.create(null); + self.symlinks = options.symlinks || Object.create(null); - if (node.nodes) { - for (let child of node.nodes) { - output += walk(child, node); - } - } - return output; - }; + setupIgnores(self, options); - return walk(ast); -}; + self.changedCwd = false; + var cwd = process.cwd(); + if (!ownProp$2(options, "cwd")) + self.cwd = cwd; + else { + self.cwd = path$3.resolve(options.cwd); + self.changedCwd = self.cwd !== cwd; + } -var compile_1 = compile$1; + self.root = options.root || path$3.resolve(self.cwd, "/"); + self.root = path$3.resolve(self.root); + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/"); -const append = (queue = '', stash = '', enclose = false) => { - let result = []; + // TODO: is an absolute `cwd` supposed to be resolved against `root`? + // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') + self.cwdAbs = isAbsolute$2(self.cwd) ? self.cwd : makeAbs(self, self.cwd); + if (process.platform === "win32") + self.cwdAbs = self.cwdAbs.replace(/\\/g, "/"); + self.nomount = !!options.nomount; - queue = [].concat(queue); - stash = [].concat(stash); + // disable comments and negation in Minimatch. + // Note that they are not supported in Glob itself anyway. + options.nonegate = true; + options.nocomment = true; - if (!stash.length) return queue; - if (!queue.length) { - return enclose ? utils$1.flatten(stash).map(ele => `{${ele}}`) : stash; - } + self.minimatch = new Minimatch(pattern, options); + self.options = self.minimatch.options; +} - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); +function finish (self) { + var nou = self.nounique; + var all = nou ? [] : Object.create(null); + + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i]; + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i]; + if (nou) + all.push(literal); + else + all[literal] = true; } } else { - for (let ele of stash) { - if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); - } + // had matches + var m = Object.keys(matches); + if (nou) + all.push.apply(all, m); + else + m.forEach(function (m) { + all[m] = true; + }); } } - return utils$1.flatten(result); -}; - -const expand$2 = (ast, options = {}) => { - let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; - let walk = (node, parent = {}) => { - node.queue = []; + if (!nou) + all = Object.keys(all); - let p = parent; - let q = parent.queue; + if (!self.nosort) + all = all.sort(self.nocase ? alphasorti : alphasort); - while (p.type !== 'brace' && p.type !== 'root' && p.parent) { - p = p.parent; - q = p.queue; + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]); } - - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify$3(node, options))); - return; + if (self.nodir) { + all = all.filter(function (e) { + var notDir = !(/\/$/.test(e)); + var c = self.cache[e] || self.cache[makeAbs(self, e)]; + if (notDir && c) + notDir = c !== 'DIR' && !Array.isArray(c); + return notDir + }); } + } - if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ['{}'])); - return; - } + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored$2(self, m) + }); - if (node.nodes && node.ranges > 0) { - let args = utils$1.reduce(node.nodes); + self.found = all; +} - if (utils$1.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); - } +function mark (self, p) { + var abs = makeAbs(self, p); + var c = self.cache[abs]; + var m = p; + if (c) { + var isDir = c === 'DIR' || Array.isArray(c); + var slash = p.slice(-1) === '/'; - let range = fillRange(...args, options); - if (range.length === 0) { - range = stringify$3(node, options); - } + if (isDir && !slash) + m += '/'; + else if (!isDir && slash) + m = m.slice(0, -1); - q.push(append(q.pop(), range)); - node.nodes = []; - return; + if (m !== p) { + var mabs = makeAbs(self, m); + self.statCache[mabs] = self.statCache[abs]; + self.cache[mabs] = self.cache[abs]; } + } - let enclose = utils$1.encloseBrace(node); - let queue = node.queue; - let block = node; + return m +} - while (block.type !== 'brace' && block.type !== 'root' && block.parent) { - block = block.parent; - queue = block.queue; - } +// lotta situps... +function makeAbs (self, f) { + var abs = f; + if (f.charAt(0) === '/') { + abs = path$3.join(self.root, f); + } else if (isAbsolute$2(f) || f === '') { + abs = f; + } else if (self.changedCwd) { + abs = path$3.resolve(self.cwd, f); + } else { + abs = path$3.resolve(f); + } - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; + if (process.platform === 'win32') + abs = abs.replace(/\\/g, '/'); - if (child.type === 'comma' && node.type === 'brace') { - if (i === 1) queue.push(''); - queue.push(''); - continue; - } + return abs +} - if (child.type === 'close') { - q.push(append(q.pop(), queue, enclose)); - continue; - } - if (child.value && child.type !== 'open') { - queue.push(append(queue.pop(), child.value)); - continue; - } +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored$2 (self, path) { + if (!self.ignore.length) + return false - if (child.nodes) { - walk(child, node); - } - } + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} - return queue; - }; +function childrenIgnored$2 (self, path) { + if (!self.ignore.length) + return false - return utils$1.flatten(walk(ast)); -}; + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} -var expand_1 = expand$2; +var sync$1 = globSync$1; +globSync$1.GlobSync = GlobSync$1; + +var fs$1 = require$$0$3; +var rp$1 = fs_realpath; +var minimatch$1 = minimatch_1; +var path$2 = path$b; +var assert$1 = assert$2; +var isAbsolute$1 = pathIsAbsolute.exports; +var common$1 = common$2; +common$1.alphasort; +common$1.alphasorti; +var setopts$1 = common$1.setopts; +var ownProp$1 = common$1.ownProp; +var childrenIgnored$1 = common$1.childrenIgnored; +var isIgnored$1 = common$1.isIgnored; + +function globSync$1 (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') -var constants$1 = { - MAX_LENGTH: 1024 * 64, + return new GlobSync$1(pattern, options).found +} - // Digits - CHAR_0: '0', /* 0 */ - CHAR_9: '9', /* 9 */ +function GlobSync$1 (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') - // Alphabet chars. - CHAR_UPPERCASE_A: 'A', /* A */ - CHAR_LOWERCASE_A: 'a', /* a */ - CHAR_UPPERCASE_Z: 'Z', /* Z */ - CHAR_LOWERCASE_Z: 'z', /* z */ + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') - CHAR_LEFT_PARENTHESES: '(', /* ( */ - CHAR_RIGHT_PARENTHESES: ')', /* ) */ + if (!(this instanceof GlobSync$1)) + return new GlobSync$1(pattern, options) - CHAR_ASTERISK: '*', /* * */ + setopts$1(this, pattern, options); - // Non-alphabetic chars. - CHAR_AMPERSAND: '&', /* & */ - CHAR_AT: '@', /* @ */ - CHAR_BACKSLASH: '\\', /* \ */ - CHAR_BACKTICK: '`', /* ` */ - CHAR_CARRIAGE_RETURN: '\r', /* \r */ - CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ - CHAR_COLON: ':', /* : */ - CHAR_COMMA: ',', /* , */ - CHAR_DOLLAR: '$', /* . */ - CHAR_DOT: '.', /* . */ - CHAR_DOUBLE_QUOTE: '"', /* " */ - CHAR_EQUAL: '=', /* = */ - CHAR_EXCLAMATION_MARK: '!', /* ! */ - CHAR_FORM_FEED: '\f', /* \f */ - CHAR_FORWARD_SLASH: '/', /* / */ - CHAR_HASH: '#', /* # */ - CHAR_HYPHEN_MINUS: '-', /* - */ - CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ - CHAR_LEFT_CURLY_BRACE: '{', /* { */ - CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ - CHAR_LINE_FEED: '\n', /* \n */ - CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ - CHAR_PERCENT: '%', /* % */ - CHAR_PLUS: '+', /* + */ - CHAR_QUESTION_MARK: '?', /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ - CHAR_RIGHT_CURLY_BRACE: '}', /* } */ - CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ - CHAR_SEMICOLON: ';', /* ; */ - CHAR_SINGLE_QUOTE: '\'', /* ' */ - CHAR_SPACE: ' ', /* */ - CHAR_TAB: '\t', /* \t */ - CHAR_UNDERSCORE: '_', /* _ */ - CHAR_VERTICAL_LINE: '|', /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ + if (this.noprocess) + return this + + var n = this.minimatch.set.length; + this.matches = new Array(n); + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false); + } + this._finish(); +} + +GlobSync$1.prototype._finish = function () { + assert$1(this instanceof GlobSync$1); + if (this.realpath) { + var self = this; + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null); + for (var p in matchset) { + try { + p = self._makeAbs(p); + var real = rp$1.realpathSync(p, self.realpathCache); + set[real] = true; + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true; + else + throw er + } + } + }); + } + common$1.finish(this); }; -/** - * Constants - */ - -const { - MAX_LENGTH: MAX_LENGTH$1, - CHAR_BACKSLASH, /* \ */ - CHAR_BACKTICK, /* ` */ - CHAR_COMMA: CHAR_COMMA$2, /* , */ - CHAR_DOT: CHAR_DOT$1, /* . */ - CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */ - CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */ - CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */ - CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$2, /* [ */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$2, /* ] */ - CHAR_DOUBLE_QUOTE: CHAR_DOUBLE_QUOTE$1, /* " */ - CHAR_SINGLE_QUOTE: CHAR_SINGLE_QUOTE$1, /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = constants$1; - -/** - * parse - */ -const parse$5 = (input, options = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); - } +GlobSync$1.prototype._process = function (pattern, index, inGlobStar) { + assert$1(this instanceof GlobSync$1); - let opts = options || {}; - let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + // Get the first [n] parts of pattern that are all strings. + var n = 0; + while (typeof pattern[n] === 'string') { + n ++; } + // now n is the index of the first one that is *not* a string. - let ast = { type: 'root', input, nodes: [] }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; + // See if there's anything else + var prefix; + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index); + return - /** - * Helpers - */ + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null; + break - const advance = () => input[index++]; - const push = node => { - if (node.type === 'text' && prev.type === 'dot') { - prev.type = 'text'; - } + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/'); + break + } - if (prev && prev.type === 'text' && node.type === 'text') { - prev.value += node.value; - return; - } + var remain = pattern.slice(n); - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; + // get the list of entries. + var read; + if (prefix === null) + read = '.'; + else if (isAbsolute$1(prefix) || isAbsolute$1(pattern.join('/'))) { + if (!prefix || !isAbsolute$1(prefix)) + prefix = '/' + prefix; + read = prefix; + } else + read = prefix; - push({ type: 'bos' }); + var abs = this._makeAbs(read); - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); + //if ignored, skip processing + if (childrenIgnored$1(this, read)) + return - /** - * Invalid chars - */ + var isGlobStar = remain[0] === minimatch$1.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar); + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar); +}; - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - /** - * Escaped chars - */ +GlobSync$1.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar); - if (value === CHAR_BACKSLASH) { - push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); - continue; - } + // if the abs isn't a dir, then nothing can match! + if (!entries) + return - /** - * Right square bracket (literal): ']' - */ + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === '.'; - if (value === CHAR_RIGHT_SQUARE_BRACKET$2) { - push({ type: 'text', value: '\\' + value }); - continue; + var matchedEntries = []; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (e.charAt(0) !== '.' || dotOk) { + var m; + if (negate && !prefix) { + m = !e.match(pn); + } else { + m = e.match(pn); + } + if (m) + matchedEntries.push(e); } + } - /** - * Left square bracket: '[' - */ + var len = matchedEntries.length; + // If there are no matched entries, then nothing matches. + if (len === 0) + return - if (value === CHAR_LEFT_SQUARE_BRACKET$2) { - brackets++; - let next; + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. - while (index < length && (next = advance())) { - value += next; + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null); - if (next === CHAR_LEFT_SQUARE_BRACKET$2) { - brackets++; - continue; - } + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i]; + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e; + else + e = prefix + e; + } - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } + if (e.charAt(0) === '/' && !this.nomount) { + e = path$2.join(this.root, e); + } + this._emitMatch(index, e); + } + // This was the last one, and no stats were needed + return + } - if (next === CHAR_RIGHT_SQUARE_BRACKET$2) { - brackets--; + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift(); + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i]; + var newPattern; + if (prefix) + newPattern = [prefix, e]; + else + newPattern = [e]; + this._process(newPattern.concat(remain), index, inGlobStar); + } +}; - if (brackets === 0) { - break; - } - } - } - push({ type: 'text', value }); - continue; - } +GlobSync$1.prototype._emitMatch = function (index, e) { + if (isIgnored$1(this, e)) + return - /** - * Parentheses - */ + var abs = this._makeAbs(e); - if (value === CHAR_LEFT_PARENTHESES$1) { - block = push({ type: 'paren', nodes: [] }); - stack.push(block); - push({ type: 'text', value }); - continue; - } + if (this.mark) + e = this._mark(e); - if (value === CHAR_RIGHT_PARENTHESES$1) { - if (block.type !== 'paren') { - push({ type: 'text', value }); - continue; - } - block = stack.pop(); - push({ type: 'text', value }); - block = stack[stack.length - 1]; - continue; - } + if (this.absolute) { + e = abs; + } - /** - * Quotes: '|"|` - */ + if (this.matches[index][e]) + return - if (value === CHAR_DOUBLE_QUOTE$1 || value === CHAR_SINGLE_QUOTE$1 || value === CHAR_BACKTICK) { - let open = value; - let next; + if (this.nodir) { + var c = this.cache[abs]; + if (c === 'DIR' || Array.isArray(c)) + return + } - if (options.keepQuotes !== true) { - value = ''; - } + this.matches[index][e] = true; - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } + if (this.stat) + this._stat(e); +}; - if (next === open) { - if (options.keepQuotes === true) value += next; - break; - } - value += next; - } +GlobSync$1.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) - push({ type: 'text', value }); - continue; + var entries; + var lstat; + try { + lstat = fs$1.lstatSync(abs); + } catch (er) { + if (er.code === 'ENOENT') { + // lstat failed, doesn't exist + return null } + } - /** - * Left curly brace: '{' - */ + var isSym = lstat && lstat.isSymbolicLink(); + this.symlinks[abs] = isSym; - if (value === CHAR_LEFT_CURLY_BRACE$1) { - depth++; + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = 'FILE'; + else + entries = this._readdir(abs, false); - let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; - let brace = { - type: 'brace', - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; + return entries +}; - block = push(brace); - stack.push(block); - push({ type: 'open', value }); - continue; - } +GlobSync$1.prototype._readdir = function (abs, inGlobStar) { - /** - * Right curly brace: '}' - */ + if (inGlobStar && !ownProp$1(this.symlinks, abs)) + return this._readdirInGlobStar(abs) - if (value === CHAR_RIGHT_CURLY_BRACE$1) { - if (block.type !== 'brace') { - push({ type: 'text', value }); - continue; - } + if (ownProp$1(this.cache, abs)) { + var c = this.cache[abs]; + if (!c || c === 'FILE') + return null - let type = 'close'; - block = stack.pop(); - block.close = true; + if (Array.isArray(c)) + return c + } - push({ type, value }); - depth--; + try { + return this._readdirEntries(abs, fs$1.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er); + return null + } +}; - block = stack[stack.length - 1]; - continue; +GlobSync$1.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i]; + if (abs === '/') + e = abs + e; + else + e = abs + '/' + e; + this.cache[e] = true; } + } - /** - * Comma: ',' - */ + this.cache[abs] = entries; - if (value === CHAR_COMMA$2 && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { type: 'text', value: stringify$3(block) }]; + // mark and cache dir-ness + return entries +}; + +GlobSync$1.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f); + this.cache[abs] = 'FILE'; + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd); + error.path = this.cwd; + error.code = er.code; + throw error } + break - push({ type: 'comma', value }); - block.commas++; - continue; - } + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false; + break - /** - * Dot: '.' - */ + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false; + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er); + break + } +}; - if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) { - let siblings = block.nodes; +GlobSync$1.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - if (depth === 0 || siblings.length === 0) { - push({ type: 'text', value }); - continue; - } + var entries = this._readdir(abs, inGlobStar); - if (prev.type === 'dot') { - block.range = []; - prev.value += value; - prev.type = 'range'; + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = 'text'; - continue; - } + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix ? [ prefix ] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); - block.ranges++; - block.args = []; - continue; - } + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false); - if (prev.type === 'range') { - siblings.pop(); + var len = entries.length; + var isSym = this.symlinks[abs]; - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return - push({ type: 'dot', value }); - continue; - } + for (var i = 0; i < len; i++) { + var e = entries[i]; + if (e.charAt(0) === '.' && !this.dot) + continue - /** - * Text - */ + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar); + this._process(instead, index, true); - push({ type: 'text', value }); + var below = gspref.concat(entries[i], remain); + this._process(below, index, true); } +}; - // Mark imbalanced braces and brackets as invalid - do { - block = stack.pop(); +GlobSync$1.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix); - if (block.type !== 'root') { - block.nodes.forEach(node => { - if (!node.nodes) { - if (node.type === 'open') node.isOpen = true; - if (node.type === 'close') node.isClose = true; - if (!node.nodes) node.type = 'text'; - node.invalid = true; - } - }); + if (!this.matches[index]) + this.matches[index] = Object.create(null); - // get the location of the block on parent.nodes (block's siblings) - let parent = stack[stack.length - 1]; - let index = parent.nodes.indexOf(block); - // replace the (invalid) block with it's nodes - parent.nodes.splice(index, 1, ...block.nodes); + // If it doesn't exist, then just mark the lack of results + if (!exists) + return + + if (prefix && isAbsolute$1(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix); + if (prefix.charAt(0) === '/') { + prefix = path$2.join(this.root, prefix); + } else { + prefix = path$2.resolve(this.root, prefix); + if (trail) + prefix += '/'; } - } while (stack.length > 0); + } - push({ type: 'eos' }); - return ast; + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/'); + + // Mark this as a match + this._emitMatch(index, prefix); }; -var parse_1$2 = parse$5; +// Returns either 'DIR', 'FILE', or false +GlobSync$1.prototype._stat = function (f) { + var abs = this._makeAbs(f); + var needDir = f.slice(-1) === '/'; + + if (f.length > this.maxLength) + return false -/** - * Expand the given pattern or create a regex-compatible string. - * - * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ + if (!this.stat && ownProp$1(this.cache, abs)) { + var c = this.cache[abs]; -const braces = (input, options = {}) => { - let output = []; + if (Array.isArray(c)) + c = 'DIR'; - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c + + if (needDir && c === 'FILE') + return false + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + var stat = this.statCache[abs]; + if (!stat) { + var lstat; + try { + lstat = fs$1.lstatSync(abs); + } catch (er) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false; + return false } } - } else { - output = [].concat(braces.create(input, options)); - } - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; + if (lstat && lstat.isSymbolicLink()) { + try { + stat = fs$1.statSync(abs); + } catch (er) { + stat = lstat; + } + } else { + stat = lstat; + } } - return output; -}; - -/** - * Parse the given `str` with the given `options`. - * - * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); - * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST - * @api public - */ -braces.parse = (input, options = {}) => parse_1$2(input, options); + this.statCache[abs] = stat; -/** - * Creates a braces string from an AST, or an AST node. - * - * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + var c = true; + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE'; -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify$3(braces.parse(input, options), options); - } - return stringify$3(input, options); -}; + this.cache[abs] = this.cache[abs] || c; -/** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. - * - * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + if (needDir && c === 'FILE') + return false -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - return compile_1(input, options); + return c }; -/** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. - * - * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } +GlobSync$1.prototype._mark = function (p) { + return common$1.mark(this, p) +}; - let result = expand_1(input, options); +GlobSync$1.prototype._makeAbs = function (f) { + return common$1.makeAbs(this, f) +}; - // filter out empty strings if specified - if (options.noempty === true) { - result = result.filter(Boolean); - } +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +var wrappy_1 = wrappy$2; +function wrappy$2 (fn, cb) { + if (fn && cb) return wrappy$2(fn)(cb) - // filter out duplicates if specified - if (options.nodupes === true) { - result = [...new Set(result)]; - } + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') - return result; -}; + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k]; + }); -/** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. - * - * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + return wrapper -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; + function wrapper() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var ret = fn.apply(this, args); + var cb = args[args.length-1]; + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k]; + }); + } + return ret } +} - return options.expand !== true - ? braces.compile(input, options) - : braces.expand(input, options); -}; - -/** - * Expose "braces" - */ +var once$3 = {exports: {}}; -var braces_1 = braces; +var wrappy$1 = wrappy_1; +once$3.exports = wrappy$1(once$2); +once$3.exports.strict = wrappy$1(onceStrict); -var require$$0$1 = [ - "3dm", - "3ds", - "3g2", - "3gp", - "7z", - "a", - "aac", - "adp", - "ai", - "aif", - "aiff", - "alz", - "ape", - "apk", - "appimage", - "ar", - "arj", - "asf", - "au", - "avi", - "bak", - "baml", - "bh", - "bin", - "bk", - "bmp", - "btif", - "bz2", - "bzip2", - "cab", - "caf", - "cgm", - "class", - "cmx", - "cpio", - "cr2", - "cur", - "dat", - "dcm", - "deb", - "dex", - "djvu", - "dll", - "dmg", - "dng", - "doc", - "docm", - "docx", - "dot", - "dotm", - "dra", - "DS_Store", - "dsk", - "dts", - "dtshd", - "dvb", - "dwg", - "dxf", - "ecelp4800", - "ecelp7470", - "ecelp9600", - "egg", - "eol", - "eot", - "epub", - "exe", - "f4v", - "fbs", - "fh", - "fla", - "flac", - "flatpak", - "fli", - "flv", - "fpx", - "fst", - "fvt", - "g3", - "gh", - "gif", - "graffle", - "gz", - "gzip", - "h261", - "h263", - "h264", - "icns", - "ico", - "ief", - "img", - "ipa", - "iso", - "jar", - "jpeg", - "jpg", - "jpgv", - "jpm", - "jxr", - "key", - "ktx", - "lha", - "lib", - "lvp", - "lz", - "lzh", - "lzma", - "lzo", - "m3u", - "m4a", - "m4v", - "mar", - "mdi", - "mht", - "mid", - "midi", - "mj2", - "mka", - "mkv", - "mmr", - "mng", - "mobi", - "mov", - "movie", - "mp3", - "mp4", - "mp4a", - "mpeg", - "mpg", - "mpga", - "mxu", - "nef", - "npx", - "numbers", - "nupkg", - "o", - "oga", - "ogg", - "ogv", - "otf", - "pages", - "pbm", - "pcx", - "pdb", - "pdf", - "pea", - "pgm", - "pic", - "png", - "pnm", - "pot", - "potm", - "potx", - "ppa", - "ppam", - "ppm", - "pps", - "ppsm", - "ppsx", - "ppt", - "pptm", - "pptx", - "psd", - "pya", - "pyc", - "pyo", - "pyv", - "qt", - "rar", - "ras", - "raw", - "resources", - "rgb", - "rip", - "rlc", - "rmf", - "rmvb", - "rpm", - "rtf", - "rz", - "s3m", - "s7z", - "scpt", - "sgi", - "shar", - "snap", - "sil", - "sketch", - "slk", - "smv", - "snk", - "so", - "stl", - "suo", - "sub", - "swf", - "tar", - "tbz", - "tbz2", - "tga", - "tgz", - "thmx", - "tif", - "tiff", - "tlz", - "ttc", - "ttf", - "txz", - "udf", - "uvh", - "uvi", - "uvm", - "uvp", - "uvs", - "uvu", - "viv", - "vob", - "war", - "wav", - "wax", - "wbmp", - "wdp", - "weba", - "webm", - "webp", - "whl", - "wim", - "wm", - "wma", - "wmv", - "wmx", - "woff", - "woff2", - "wrm", - "wvx", - "xbm", - "xif", - "xla", - "xlam", - "xls", - "xlsb", - "xlsm", - "xlsx", - "xlt", - "xltm", - "xltx", - "xm", - "xmind", - "xpi", - "xpm", - "xwd", - "xz", - "z", - "zip", - "zipx" -]; +once$2.proto = once$2(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once$2(this) + }, + configurable: true + }); -var binaryExtensions = require$$0$1; + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }); +}); -const extensions = new Set(binaryExtensions); +function once$2 (fn) { + var f = function () { + if (f.called) return f.value + f.called = true; + return f.value = fn.apply(this, arguments) + }; + f.called = false; + return f +} -var isBinaryPath = filePath => extensions.has(path__default['default'].extname(filePath).slice(1).toLowerCase()); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true; + return f.value = fn.apply(this, arguments) + }; + var name = fn.name || 'Function wrapped with `once`'; + f.onceError = name + " shouldn't be called more than once"; + f.called = false; + return f +} -var constants$2 = createCommonjsModule(function (module, exports) { +var wrappy = wrappy_1; +var reqs = Object.create(null); +var once$1 = once$3.exports; -const {sep} = path__default['default']; -const {platform} = process; +var inflight_1 = wrappy(inflight$1); -exports.EV_ALL = 'all'; -exports.EV_READY = 'ready'; -exports.EV_ADD = 'add'; -exports.EV_CHANGE = 'change'; -exports.EV_ADD_DIR = 'addDir'; -exports.EV_UNLINK = 'unlink'; -exports.EV_UNLINK_DIR = 'unlinkDir'; -exports.EV_RAW = 'raw'; -exports.EV_ERROR = 'error'; +function inflight$1 (key, cb) { + if (reqs[key]) { + reqs[key].push(cb); + return null + } else { + reqs[key] = [cb]; + return makeres(key) + } +} -exports.STR_DATA = 'data'; -exports.STR_END = 'end'; -exports.STR_CLOSE = 'close'; +function makeres (key) { + return once$1(function RES () { + var cbs = reqs[key]; + var len = cbs.length; + var args = slice$1(arguments); -exports.FSEVENT_CREATED = 'created'; -exports.FSEVENT_MODIFIED = 'modified'; -exports.FSEVENT_DELETED = 'deleted'; -exports.FSEVENT_MOVED = 'moved'; -exports.FSEVENT_CLONED = 'cloned'; -exports.FSEVENT_UNKNOWN = 'unknown'; -exports.FSEVENT_TYPE_FILE = 'file'; -exports.FSEVENT_TYPE_DIRECTORY = 'directory'; -exports.FSEVENT_TYPE_SYMLINK = 'symlink'; + // XXX It's somewhat ambiguous whether a new callback added in this + // pass should be queued for later execution if something in the + // list of callbacks throws, or if it should just be discarded. + // However, it's such an edge case that it hardly matters, and either + // choice is likely as surprising as the other. + // As it happens, we do go ahead and schedule it for later execution. + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args); + } + } finally { + if (cbs.length > len) { + // added more in the interim. + // de-zalgo, just in case, but don't call again. + cbs.splice(0, len); + process.nextTick(function () { + RES.apply(null, args); + }); + } else { + delete reqs[key]; + } + } + }) +} -exports.KEY_LISTENERS = 'listeners'; -exports.KEY_ERR = 'errHandlers'; -exports.KEY_RAW = 'rawEmitters'; -exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; +function slice$1 (args) { + var length = args.length; + var array = []; -exports.DOT_SLASH = `.${sep}`; + for (var i = 0; i < length; i++) array[i] = args[i]; + return array +} -exports.BACK_SLASH_RE = /\\/g; -exports.DOUBLE_SLASH_RE = /\/\//; -exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; -exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; -exports.REPLACER_RE = /^\.[/\\]/; +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. -exports.SLASH = '/'; -exports.SLASH_SLASH = '//'; -exports.BRACE_START = '{'; -exports.BANG = '!'; -exports.ONE_DOT = '.'; -exports.TWO_DOTS = '..'; -exports.STAR = '*'; -exports.GLOBSTAR = '**'; -exports.ROOT_GLOBSTAR = '/**/*'; -exports.SLASH_GLOBSTAR = '/**'; -exports.DIR_SUFFIX = 'Dir'; -exports.ANYMATCH_OPTS = {dot: true}; -exports.STRING_TYPE = 'string'; -exports.FUNCTION_TYPE = 'function'; -exports.EMPTY_STR = ''; -exports.EMPTY_FN = () => {}; -exports.IDENTITY_FN = val => val; +var glob_1 = glob; -exports.isWindows = platform === 'win32'; -exports.isMacos = platform === 'darwin'; -exports.isLinux = platform === 'linux'; -}); +var fs = require$$0$3; +var rp = fs_realpath; +var minimatch = minimatch_1; +var inherits$1 = inherits$2.exports; +var EE = require$$0$5.EventEmitter; +var path$1 = path$b; +var assert = assert$2; +var isAbsolute = pathIsAbsolute.exports; +var globSync = sync$1; +var common = common$2; +common.alphasort; +common.alphasorti; +var setopts = common.setopts; +var ownProp = common.ownProp; +var inflight = inflight_1; +var childrenIgnored = common.childrenIgnored; +var isIgnored = common.isIgnored; + +var once = once$3.exports; -const { promisify: promisify$1 } = util__default['default']; +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {}; + if (!options) options = {}; -const { - isWindows: isWindows$1, - isLinux, - EMPTY_FN, - EMPTY_STR, - KEY_LISTENERS, - KEY_ERR, - KEY_RAW, - HANDLER_KEYS, - EV_CHANGE, - EV_ADD, - EV_ADD_DIR, - EV_ERROR, - STR_DATA, - STR_END, - BRACE_START, - STAR: STAR$1 -} = constants$2; + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } -const THROTTLE_MODE_WATCH = 'watch'; + return new Glob(pattern, options, cb) +} -const open = promisify$1(fs__default['default'].open); -const stat$3 = promisify$1(fs__default['default'].stat); -const lstat$1 = promisify$1(fs__default['default'].lstat); -const close = promisify$1(fs__default['default'].close); -const fsrealpath = promisify$1(fs__default['default'].realpath); +glob.sync = globSync; +var GlobSync = glob.GlobSync = globSync.GlobSync; -const statMethods = { lstat: lstat$1, stat: stat$3 }; +// old api surface +glob.glob = glob; -// TODO: emit errors properly. Example: EMFILE on Macos. -const foreach = (val, fn) => { - if (val instanceof Set) { - val.forEach(fn); - } else { - fn(val); +function extend$1 (origin, add) { + if (add === null || typeof add !== 'object') { + return origin } -}; -const addAndConvert = (main, prop, item) => { - let container = main[prop]; - if (!(container instanceof Set)) { - main[prop] = container = new Set([container]); + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; } - container.add(item); -}; + return origin +} -const clearItem = cont => key => { - const set = cont[key]; - if (set instanceof Set) { - set.clear(); - } else { - delete cont[key]; - } -}; +glob.hasMagic = function (pattern, options_) { + var options = extend$1({}, options_); + options.noprocess = true; -const delFromSet = (main, prop, item) => { - const container = main[prop]; - if (container instanceof Set) { - container.delete(item); - } else if (container === item) { - delete main[prop]; - } -}; + var g = new Glob(pattern, options); + var set = g.minimatch.set; -const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; + if (!pattern) + return false -/** - * @typedef {String} Path - */ + if (set.length > 1) + return true -// fs_watch helpers + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true + } -// object to hold per-process fs_watch instances -// (may be shared across chokidar FSWatcher instances) + return false +}; -/** - * @typedef {Object} FsWatchContainer - * @property {Set} listeners - * @property {Set} errHandlers - * @property {Set} rawEmitters - * @property {fs.FSWatcher=} watcher - * @property {Boolean=} watcherUnusable - */ +glob.Glob = Glob; +inherits$1(Glob, EE); +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options; + options = null; + } -/** - * @type {Map} - */ -const FsWatchInstances = new Map(); + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) + } -/** - * Instantiates the fs_watch interface - * @param {String} path to be watched - * @param {Object} options to be passed to fs_watch - * @param {Function} listener main event handler - * @param {Function} errHandler emits info about errors - * @param {Function} emitRaw emits raw event data - * @returns {fs.FSWatcher} new fsevents instance - */ -function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { - const handleEvent = (rawEvent, evPath) => { - listener(path); - emitRaw(rawEvent, evPath, {watchedPath: path}); + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) - // emit based on events occurring for files from a directory's watcher in - // case the file's watcher misses it (and rely on throttling to de-dupe) - if (evPath && path !== evPath) { - fsWatchBroadcast( - path__default['default'].resolve(path, evPath), KEY_LISTENERS, path__default['default'].join(path, evPath) - ); - } - }; - try { - return fs__default['default'].watch(path, options, handleEvent); - } catch (error) { - errHandler(error); - } -} + setopts(this, pattern, options); + this._didRealPath = false; -/** - * Helper for passing fs_watch event data to a collection of listeners - * @param {Path} fullPath absolute path bound to fs_watch instance - * @param {String} type listener type - * @param {*=} val1 arguments to be passed to listeners - * @param {*=} val2 - * @param {*=} val3 - */ -const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { - const cont = FsWatchInstances.get(fullPath); - if (!cont) return; - foreach(cont[type], (listener) => { - listener(val1, val2, val3); - }); -}; + // process each pattern in the minimatch set + var n = this.minimatch.set.length; -/** - * Instantiates the fs_watch interface or binds listeners - * to an existing one covering the same file system entry - * @param {String} path - * @param {String} fullPath absolute path - * @param {Object} options to be passed to fs_watch - * @param {Object} handlers container for event listener functions - */ -const setFsWatchListener = (path, fullPath, options, handlers) => { - const {listener, errHandler, rawEmitter} = handlers; - let cont = FsWatchInstances.get(fullPath); + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n); - /** @type {fs.FSWatcher=} */ - let watcher; - if (!options.persistent) { - watcher = createFsWatchInstance( - path, options, listener, errHandler, rawEmitter - ); - return watcher.close.bind(watcher); - } - if (cont) { - addAndConvert(cont, KEY_LISTENERS, listener); - addAndConvert(cont, KEY_ERR, errHandler); - addAndConvert(cont, KEY_RAW, rawEmitter); - } else { - watcher = createFsWatchInstance( - path, - options, - fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), - errHandler, // no need to use broadcast here - fsWatchBroadcast.bind(null, fullPath, KEY_RAW) - ); - if (!watcher) return; - watcher.on(EV_ERROR, async (error) => { - const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); - cont.watcherUnusable = true; // documented since Node 10.4.1 - // Workaround for https://github.com/joyent/node/issues/4337 - if (isWindows$1 && error.code === 'EPERM') { - try { - const fd = await open(path, 'r'); - await close(fd); - broadcastErr(error); - } catch (err) {} - } else { - broadcastErr(error); - } + if (typeof cb === 'function') { + cb = once(cb); + this.on('error', cb); + this.on('end', function (matches) { + cb(null, matches); }); - cont = { - listeners: listener, - errHandlers: errHandler, - rawEmitters: rawEmitter, - watcher - }; - FsWatchInstances.set(fullPath, cont); } - // const index = cont.listeners.indexOf(listener); - // removes this instance's listeners and closes the underlying fs_watch - // instance if there are no more listeners left - return () => { - delFromSet(cont, KEY_LISTENERS, listener); - delFromSet(cont, KEY_ERR, errHandler); - delFromSet(cont, KEY_RAW, rawEmitter); - if (isEmptySet(cont.listeners)) { - // Check to protect against issue gh-730. - // if (cont.watcherUnusable) { - cont.watcher.close(); - // } - FsWatchInstances.delete(fullPath); - HANDLER_KEYS.forEach(clearItem(cont)); - cont.watcher = undefined; - Object.freeze(cont); - } - }; -}; + var self = this; + this._processing = 0; -// fs_watchFile helpers + this._emitQueue = []; + this._processQueue = []; + this.paused = false; -// object to hold per-process fs_watchFile instances -// (may be shared across chokidar FSWatcher instances) -const FsWatchFileInstances = new Map(); + if (this.noprocess) + return this -/** - * Instantiates the fs_watchFile interface or binds listeners - * to an existing one covering the same file system entry - * @param {String} path to be watched - * @param {String} fullPath absolute path - * @param {Object} options options to be passed to fs_watchFile - * @param {Object} handlers container for event listener functions - * @returns {Function} closer - */ -const setFsWatchFileListener = (path, fullPath, options, handlers) => { - const {listener, rawEmitter} = handlers; - let cont = FsWatchFileInstances.get(fullPath); + if (n === 0) + return done() - const copts = cont && cont.options; - if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { - // "Upgrade" the watcher to persistence or a quicker interval. - // This creates some unlikely edge case issues if the user mixes - // settings in a very weird way, but solving for those cases - // doesn't seem worthwhile for the added complexity. - cont.listeners; - cont.rawEmitters; - fs__default['default'].unwatchFile(fullPath); - cont = undefined; + var sync = true; + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done); } + sync = false; - /* eslint-enable no-unused-vars, prefer-destructuring */ - - if (cont) { - addAndConvert(cont, KEY_LISTENERS, listener); - addAndConvert(cont, KEY_RAW, rawEmitter); - } else { - // TODO - // listeners.add(listener); - // rawEmitters.add(rawEmitter); - cont = { - listeners: listener, - rawEmitters: rawEmitter, - options, - watcher: fs__default['default'].watchFile(fullPath, options, (curr, prev) => { - foreach(cont.rawEmitters, (rawEmitter) => { - rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + function done () { + --self._processing; + if (self._processing <= 0) { + if (sync) { + process.nextTick(function () { + self._finish(); }); - const currmtime = curr.mtimeMs; - if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { - foreach(cont.listeners, (listener) => listener(path, curr)); - } - }) - }; - FsWatchFileInstances.set(fullPath, cont); + } else { + self._finish(); + } + } } - // const index = cont.listeners.indexOf(listener); +} - // Removes this instance's listeners and closes the underlying fs_watchFile - // instance if there are no more listeners left. - return () => { - delFromSet(cont, KEY_LISTENERS, listener); - delFromSet(cont, KEY_RAW, rawEmitter); - if (isEmptySet(cont.listeners)) { - FsWatchFileInstances.delete(fullPath); - fs__default['default'].unwatchFile(fullPath); - cont.options = cont.watcher = undefined; - Object.freeze(cont); - } - }; +Glob.prototype._finish = function () { + assert(this instanceof Glob); + if (this.aborted) + return + + if (this.realpath && !this._didRealpath) + return this._realpath() + + common.finish(this); + this.emit('end', this.found); }; -/** - * @mixin - */ -class NodeFsHandler { +Glob.prototype._realpath = function () { + if (this._didRealpath) + return -/** - * @param {import("../index").FSWatcher} fsW - */ -constructor(fsW) { - this.fsw = fsW; - this._boundHandleError = (error) => fsW._handleError(error); -} + this._didRealpath = true; -/** - * Watch file for changes with fs_watchFile or fs_watch. - * @param {String} path to file or dir - * @param {Function} listener on fs change - * @returns {Function} closer for the watcher instance - */ -_watchWithNodeFs(path, listener) { - const opts = this.fsw.options; - const directory = path__default['default'].dirname(path); - const basename = path__default['default'].basename(path); - const parent = this.fsw._getWatchedDir(directory); - parent.add(basename); - const absolutePath = path__default['default'].resolve(path); - const options = {persistent: opts.persistent}; - if (!listener) listener = EMPTY_FN; + var n = this.matches.length; + if (n === 0) + return this._finish() - let closer; - if (opts.usePolling) { - options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? - opts.binaryInterval : opts.interval; - closer = setFsWatchFileListener(path, absolutePath, options, { - listener, - rawEmitter: this.fsw._emitRaw - }); - } else { - closer = setFsWatchListener(path, absolutePath, options, { - listener, - errHandler: this._boundHandleError, - rawEmitter: this.fsw._emitRaw - }); - } - return closer; -} + var self = this; + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next); -/** - * Watch a file and emit add event if warranted. - * @param {Path} file Path - * @param {fs.Stats} stats result of fs_stat - * @param {Boolean} initialAdd was the file added at watch instantiation? - * @returns {Function} closer for the watcher instance - */ -_handleFile(file, stats, initialAdd) { - if (this.fsw.closed) { - return; + function next () { + if (--n === 0) + self._finish(); } - const dirname = path__default['default'].dirname(file); - const basename = path__default['default'].basename(file); - const parent = this.fsw._getWatchedDir(dirname); - // stats is always present - let prevStats = stats; +}; - // if the file is already being watched, do nothing - if (parent.has(basename)) return; +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index]; + if (!matchset) + return cb() - const listener = async (path, newStats) => { - if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; - if (!newStats || newStats.mtimeMs === 0) { - try { - const newStats = await stat$3(file); - if (this.fsw.closed) return; - // Check that change event was not fired because of changed only accessTime. - const at = newStats.atimeMs; - const mt = newStats.mtimeMs; - if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); - } - if (isLinux && prevStats.ino !== newStats.ino) { - this.fsw._closeFile(path); - prevStats = newStats; - this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); - } else { - prevStats = newStats; - } - } catch (error) { - // Fix issues where mtime is null but file is still present - this.fsw._remove(dirname, basename); - } - // add is about to be emitted if file not already tracked in parent - } else if (parent.has(basename)) { - // Check that change event was not fired because of changed only accessTime. - const at = newStats.atimeMs; - const mt = newStats.mtimeMs; - if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); + var found = Object.keys(matchset); + var self = this; + var n = found.length; + + if (n === 0) + return cb() + + var set = this.matches[index] = Object.create(null); + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p); + rp.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true; + else if (er.syscall === 'stat') + set[p] = true; + else + self.emit('error', er); // srsly wtf right here + + if (--n === 0) { + self.matches[index] = set; + cb(); } - prevStats = newStats; - } - }; - // kick off the watcher - const closer = this._watchWithNodeFs(file, listener); + }); + }); +}; - // emit an add event if we're supposed to - if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { - if (!this.fsw._throttle(EV_ADD, file, 0)) return; - this.fsw._emit(EV_ADD, file, stats); - } +Glob.prototype._mark = function (p) { + return common.mark(this, p) +}; - return closer; -} +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +}; -/** - * Handle symlinks encountered while reading a dir. - * @param {Object} entry returned by readdirp - * @param {String} directory path of dir being read - * @param {String} path of this item - * @param {String} item basename of this item - * @returns {Promise} true if no more processing is needed for this entry. - */ -async _handleSymlink(entry, directory, path, item) { - if (this.fsw.closed) { - return; +Glob.prototype.abort = function () { + this.aborted = true; + this.emit('abort'); +}; + +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true; + this.emit('pause'); } - const full = entry.fullPath; - const dir = this.fsw._getWatchedDir(directory); +}; - if (!this.fsw.options.followSymlinks) { - // watch symlink directly (don't follow) and detect changes - this.fsw._incrReadyCount(); - const linkPath = await fsrealpath(path); - if (this.fsw.closed) return; - if (dir.has(item)) { - if (this.fsw._symlinkPaths.get(full) !== linkPath) { - this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_CHANGE, path, entry.stats); +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume'); + this.paused = false; + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0); + this._emitQueue.length = 0; + for (var i = 0; i < eq.length; i ++) { + var e = eq[i]; + this._emitMatch(e[0], e[1]); + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0); + this._processQueue.length = 0; + for (var i = 0; i < pq.length; i ++) { + var p = pq[i]; + this._processing--; + this._process(p[0], p[1], p[2], p[3]); } - } else { - dir.add(item); - this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_ADD, path, entry.stats); } - this.fsw._emitReady(); - return true; - } - - // don't follow the same symlink more than once - if (this.fsw._symlinkPaths.has(full)) { - return true; } +}; - this.fsw._symlinkPaths.set(full, true); -} +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob); + assert(typeof cb === 'function'); -_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { - // Normalize the directory name on Windows - directory = path__default['default'].join(directory, EMPTY_STR); + if (this.aborted) + return - if (!wh.hasGlob) { - throttler = this.fsw._throttle('readdir', directory, 1000); - if (!throttler) return; + this._processing++; + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]); + return } - const previous = this.fsw._getWatchedDir(wh.path); - const current = new Set(); - - let stream = this.fsw._readdirp(directory, { - fileFilter: entry => wh.filterPath(entry), - directoryFilter: entry => wh.filterDir(entry), - depth: 0 - }).on(STR_DATA, async (entry) => { - if (this.fsw.closed) { - stream = undefined; - return; - } - const item = entry.path; - let path = path__default['default'].join(directory, item); - current.add(item); + //console.error('PROCESS %d', this._processing, pattern) - if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { - return; - } + // Get the first [n] parts of pattern that are all strings. + var n = 0; + while (typeof pattern[n] === 'string') { + n ++; + } + // now n is the index of the first one that is *not* a string. - if (this.fsw.closed) { - stream = undefined; - return; - } - // Files that present in current directory snapshot - // but absent in previous are added to watch list and - // emit `add` event. - if (item === target || !target && !previous.has(item)) { - this.fsw._incrReadyCount(); + // see if there's anything else + var prefix; + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb); + return - // ensure relativeness of path is preserved in case of watcher reuse - path = path__default['default'].join(dir, path__default['default'].relative(dir, path)); + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null; + break - this._addToNodeFs(path, initialAdd, wh, depth + 1); - } - }).on(EV_ERROR, this._boundHandleError); + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/'); + break + } - return new Promise(resolve => - stream.once(STR_END, () => { - if (this.fsw.closed) { - stream = undefined; - return; - } - const wasThrottled = throttler ? throttler.clear() : false; + var remain = pattern.slice(n); - resolve(); + // get the list of entries. + var read; + if (prefix === null) + read = '.'; + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix; + read = prefix; + } else + read = prefix; - // Files that absent in current directory snapshot - // but present in previous emit `remove` event - // and are removed from @watched[directory]. - previous.getChildren().filter((item) => { - return item !== directory && - !current.has(item) && - // in case of intersecting globs; - // a path may have been filtered out of this readdir, but - // shouldn't be removed because it matches a different glob - (!wh.hasGlob || wh.filterPath({ - fullPath: path__default['default'].resolve(directory, item) - })); - }).forEach((item) => { - this.fsw._remove(directory, item); - }); + var abs = this._makeAbs(read); - stream = undefined; + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() - // one more time for any missed in case changes came in extremely quickly - if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); - }) - ); -} + var isGlobStar = remain[0] === minimatch.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb); + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb); +}; -/** - * Read directory to add / remove files from `@watched` list and re-read it on change. - * @param {String} dir fs path - * @param {fs.Stats} stats - * @param {Boolean} initialAdd - * @param {Number} depth relative to user-supplied path - * @param {String} target child path targeted for watch - * @param {Object} wh Common watch helpers for this path - * @param {String} realpath - * @returns {Promise} closer for the watcher instance. - */ -async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { - const parentDir = this.fsw._getWatchedDir(path__default['default'].dirname(dir)); - const tracked = parentDir.has(path__default['default'].basename(dir)); - if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { - if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); - } +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this; + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }); +}; - // ensure dir is tracked (harmless if redundant) - parentDir.add(path__default['default'].basename(dir)); - this.fsw._getWatchedDir(dir); - let throttler; - let closer; +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - const oDepth = this.fsw.options.depth; - if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { - if (!target) { - await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); - if (this.fsw.closed) return; - } + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() - closer = this._watchWithNodeFs(dir, (dirPath, stats) => { - // if current directory is removed, do nothing - if (stats && stats.mtimeMs === 0) return; + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === '.'; - this._handleRead(dirPath, false, wh, target, dir, depth, throttler); - }); + var matchedEntries = []; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (e.charAt(0) !== '.' || dotOk) { + var m; + if (negate && !prefix) { + m = !e.match(pn); + } else { + m = e.match(pn); + } + if (m) + matchedEntries.push(e); + } } - return closer; -} -/** - * Handle added file, directory, or glob pattern. - * Delegates call to _handleFile / _handleDir after checks. - * @param {String} path to file or ir - * @param {Boolean} initialAdd was the file added at watch instantiation? - * @param {Object} priorWh depth relative to user-supplied path - * @param {Number} depth Child path actually targeted for watch - * @param {String=} target Child path actually targeted for watch - * @returns {Promise} - */ -async _addToNodeFs(path, initialAdd, priorWh, depth, target) { - const ready = this.fsw._emitReady; - if (this.fsw._isIgnored(path) || this.fsw.closed) { - ready(); - return false; - } + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - const wh = this.fsw._getWatchHelpers(path, depth); - if (!wh.hasGlob && priorWh) { - wh.hasGlob = priorWh.hasGlob; - wh.globFilter = priorWh.globFilter; - wh.filterPath = entry => priorWh.filterPath(entry); - wh.filterDir = entry => priorWh.filterDir(entry); - } + var len = matchedEntries.length; + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() - // evaluate what is at the path we're being asked to watch - try { - const stats = await statMethods[wh.statMethod](wh.watchPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(wh.watchPath, stats)) { - ready(); - return false; - } + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. - const follow = this.fsw.options.followSymlinks && !path.includes(STAR$1) && !path.includes(BRACE_START); - let closer; - if (stats.isDirectory()) { - const targetPath = follow ? await fsrealpath(path) : path; - if (this.fsw.closed) return; - closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); - if (this.fsw.closed) return; - // preserve this symlink's target path - if (path !== targetPath && targetPath !== undefined) { - this.fsw._symlinkPaths.set(targetPath, true); + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null); + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i]; + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e; + else + e = prefix + e; } - } else if (stats.isSymbolicLink()) { - const targetPath = follow ? await fsrealpath(path) : path; - if (this.fsw.closed) return; - const parent = path__default['default'].dirname(wh.watchPath); - this.fsw._getWatchedDir(parent).add(wh.watchPath); - this.fsw._emit(EV_ADD, wh.watchPath, stats); - closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); - if (this.fsw.closed) return; - // preserve this symlink's target path - if (targetPath !== undefined) { - this.fsw._symlinkPaths.set(path__default['default'].resolve(path), targetPath); + if (e.charAt(0) === '/' && !this.nomount) { + e = path$1.join(this.root, e); } - } else { - closer = this._handleFile(wh.watchPath, stats, initialAdd); + this._emitMatch(index, e); } - ready(); - - this.fsw._addPathCloser(path, closer); - return false; + // This was the last one, and no stats were needed + return cb() + } - } catch (error) { - if (this.fsw._handleError(error)) { - ready(); - return path; + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift(); + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i]; + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e; + else + e = prefix + e; } + this._process([e].concat(remain), index, inGlobStar, cb); } -} + cb(); +}; -} +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return -var nodefsHandler = NodeFsHandler; + if (isIgnored(this, e)) + return -const { promisify: promisify$2 } = util__default['default']; + if (this.paused) { + this._emitQueue.push([index, e]); + return + } -let fsevents; -try { - fsevents = undefined; -} catch (error) { - if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); -} + var abs = isAbsolute(e) ? e : this._makeAbs(e); -if (fsevents) { - // TODO: real check - const mtch = process.version.match(/v(\d+)\.(\d+)/); - if (mtch && mtch[1] && mtch[2]) { - const maj = Number.parseInt(mtch[1], 10); - const min = Number.parseInt(mtch[2], 10); - if (maj === 8 && min < 16) { - fsevents = undefined; - } - } -} + if (this.mark) + e = this._mark(e); -const { - EV_ADD: EV_ADD$1, - EV_CHANGE: EV_CHANGE$1, - EV_ADD_DIR: EV_ADD_DIR$1, - EV_UNLINK, - EV_ERROR: EV_ERROR$1, - STR_DATA: STR_DATA$1, - STR_END: STR_END$1, - FSEVENT_CREATED, - FSEVENT_MODIFIED, - FSEVENT_DELETED, - FSEVENT_MOVED, - // FSEVENT_CLONED, - FSEVENT_UNKNOWN, - FSEVENT_TYPE_FILE, - FSEVENT_TYPE_DIRECTORY, - FSEVENT_TYPE_SYMLINK, + if (this.absolute) + e = abs; - ROOT_GLOBSTAR, - DIR_SUFFIX, - DOT_SLASH, - FUNCTION_TYPE, - EMPTY_FN: EMPTY_FN$1, - IDENTITY_FN -} = constants$2; + if (this.matches[index][e]) + return -const Depth = (value) => isNaN(value) ? {} : {depth: value}; + if (this.nodir) { + var c = this.cache[abs]; + if (c === 'DIR' || Array.isArray(c)) + return + } -const stat$4 = promisify$2(fs__default['default'].stat); -const lstat$2 = promisify$2(fs__default['default'].lstat); -const realpath$3 = promisify$2(fs__default['default'].realpath); + this.matches[index][e] = true; -const statMethods$1 = { stat: stat$4, lstat: lstat$2 }; + var st = this.statCache[abs]; + if (st) + this.emit('stat', e, st); -/** - * @typedef {String} Path - */ + this.emit('match', e); +}; -/** - * @typedef {Object} FsEventsWatchContainer - * @property {Set} listeners - * @property {Function} rawEmitter - * @property {{stop: Function}} watcher - */ +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return -// fsevents instance helper functions -/** - * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) - * @type {Map} - */ -const FSEventsWatchers = new Map(); + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) -// Threshold of duplicate path prefixes at which to start -// consolidating going forward -const consolidateThreshhold = 10; + var lstatkey = 'lstat\0' + abs; + var self = this; + var lstatcb = inflight(lstatkey, lstatcb_); -const wrongEventFlags = new Set([ - 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 -]); + if (lstatcb) + fs.lstat(abs, lstatcb); -/** - * Instantiates the fsevents interface - * @param {Path} path path to be watched - * @param {Function} callback called when fsevents is bound and ready - * @returns {{stop: Function}} new fsevents instance - */ -const createFSEventsInstance = (path, callback) => { - const stop = fsevents.watch(path, callback); - return {stop}; + function lstatcb_ (er, lstat) { + if (er && er.code === 'ENOENT') + return cb() + + var isSym = lstat && lstat.isSymbolicLink(); + self.symlinks[abs] = isSym; + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) { + self.cache[abs] = 'FILE'; + cb(); + } else + self._readdir(abs, false, cb); + } }; -/** - * Instantiates the fsevents interface or binds listeners to an existing one covering - * the same file tree. - * @param {Path} path - to be watched - * @param {Path} realPath - real path for symlinks - * @param {Function} listener - called when fsevents emits events - * @param {Function} rawEmitter - passes data to listeners of the 'raw' event - * @returns {Function} closer - */ -function setFSEventsListener(path, realPath, listener, rawEmitter) { - let watchPath = path__default['default'].extname(path) ? path__default['default'].dirname(path) : path; - const parentPath = path__default['default'].dirname(watchPath); - let cont = FSEventsWatchers.get(watchPath); +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return - // If we've accumulated a substantial number of paths that - // could have been consolidated by watching one directory - // above the current one, create a watcher on the parent - // path instead, so that we do consolidate going forward. - if (couldConsolidate(parentPath)) { - watchPath = parentPath; + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb); + if (!cb) + return + + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (!c || c === 'FILE') + return cb() + + if (Array.isArray(c)) + return cb(null, c) } + fs.readdir(abs, readdirCb(this, abs, cb)); +}; - const resolvedPath = path__default['default'].resolve(path); - const hasSymlink = resolvedPath !== realPath; +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb); + else + self._readdirEntries(abs, entries, cb); + } +} - const filteredListener = (fullPath, flags, info) => { - if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); - if ( - fullPath === resolvedPath || - !fullPath.indexOf(resolvedPath + path__default['default'].sep) - ) listener(fullPath, flags, info); - }; +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return - // check if there is already a watcher on a parent path - // modifies `watchPath` to the parent path when it finds a match - let watchedParent = false; - for (const watchedPath of FSEventsWatchers.keys()) { - if (realPath.indexOf(path__default['default'].resolve(watchedPath) + path__default['default'].sep) === 0) { - watchPath = watchedPath; - cont = FSEventsWatchers.get(watchPath); - watchedParent = true; - break; + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i]; + if (abs === '/') + e = abs + e; + else + e = abs + '/' + e; + this.cache[e] = true; } } - if (cont || watchedParent) { - cont.listeners.add(filteredListener); - } else { - cont = { - listeners: new Set([filteredListener]), - rawEmitter, - watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { - if (!cont.listeners.size) return; - const info = fsevents.getInfo(fullPath, flags); - cont.listeners.forEach(list => { - list(fullPath, flags, info); - }); + this.cache[abs] = entries; + return cb(null, entries) +}; - cont.rawEmitter(info.event, fullPath, info); - }) - }; - FSEventsWatchers.set(watchPath, cont); - } +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return - // removes this instance's listeners and closes the underlying fsevents - // instance if there are no more listeners left - return () => { - const lst = cont.listeners; + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f); + this.cache[abs] = 'FILE'; + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd); + error.path = this.cwd; + error.code = er.code; + this.emit('error', error); + this.abort(); + } + break - lst.delete(filteredListener); - if (!lst.size) { - FSEventsWatchers.delete(watchPath); - if (cont.watcher) return cont.watcher.stop().then(() => { - cont.rawEmitter = cont.watcher = undefined; - Object.freeze(cont); - }); - } - }; -} + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false; + break -// Decide whether or not we should start a new higher-level -// parent watcher -const couldConsolidate = (path) => { - let count = 0; - for (const watchPath of FSEventsWatchers.keys()) { - if (watchPath.indexOf(path) === 0) { - count++; - if (count >= consolidateThreshhold) { - return true; + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false; + if (this.strict) { + this.emit('error', er); + // If the error is handled, then we abort + // if not, we threw out of here + this.abort(); } - } + if (!this.silent) + console.error('glob error', er); + break } - return false; + return cb() }; -// returns boolean indicating whether fsevents can be used -const canUse = () => fsevents && FSEventsWatchers.size < 128; - -// determines subdirectory traversal levels from root to path -const calcDepth = (path, root) => { - let i = 0; - while (!path.indexOf(root) && (path = path__default['default'].dirname(path)) !== root) i++; - return i; +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this; + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb); + }); }; -// returns boolean indicating whether the fsevents' event info has the same type -// as the one returned by fs.stat -const sameTypes = (info, stats) => ( - info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || - info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || - info.type === FSEVENT_TYPE_FILE && stats.isFile() -); -/** - * @mixin - */ -class FsEventsHandler { +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) -/** - * @param {import('../index').FSWatcher} fsw - */ -constructor(fsw) { - this.fsw = fsw; -} -checkIgnored(path, stats) { - const ipaths = this.fsw._ignoredPaths; - if (this.fsw._isIgnored(path, stats)) { - ipaths.add(path); - if (stats && stats.isDirectory()) { - ipaths.add(path + ROOT_GLOBSTAR); - } - return true; - } + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() - ipaths.delete(path); - ipaths.delete(path + ROOT_GLOBSTAR); -} + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix ? [ prefix ] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); -addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { - const event = watchedDir.has(item) ? EV_CHANGE$1 : EV_ADD$1; - this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); -} + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb); -async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { - try { - const stats = await stat$4(path); - if (this.fsw.closed) return; - if (sameTypes(info, stats)) { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } catch (error) { - if (error.code === 'EACCES') { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } -} + var isSym = this.symlinks[abs]; + var len = entries.length; -handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { - if (this.fsw.closed || this.checkIgnored(path)) return; + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() - if (event === EV_UNLINK) { - const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY; - // suppress unlink events on never before seen files - if (isDirectory || watchedDir.has(item)) { - this.fsw._remove(parent, item, isDirectory); - } - } else { - if (event === EV_ADD$1) { - // track new directories - if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); + for (var i = 0; i < len; i++) { + var e = entries[i]; + if (e.charAt(0) === '.' && !this.dot) + continue - if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { - // push symlinks back to the top of the stack to get handled - const curDepth = opts.depth === undefined ? - undefined : calcDepth(fullPath, realPath) + 1; - return this._addToFsEvents(path, false, true, curDepth); - } + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar); + this._process(instead, index, true, cb); - // track new paths - // (other than symlinks being followed, which will be tracked soon) - this.fsw._getWatchedDir(parent).add(item); - } - /** - * @type {'add'|'addDir'|'unlink'|'unlinkDir'} - */ - const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; - this.fsw._emit(eventName, path); - if (eventName === EV_ADD_DIR$1) this._addToFsEvents(path, false, true); + var below = gspref.concat(entries[i], remain); + this._process(below, index, true, cb); } -} -/** - * Handle symlinks encountered during directory scan - * @param {String} watchPath - file/dir path to be watched with fsevents - * @param {String} realPath - real path (in case of symlinks) - * @param {Function} transform - path transformer - * @param {Function} globFilter - path filter in case a glob pattern was provided - * @returns {Function} closer for the watcher instance -*/ -_watchWithFsEvents(watchPath, realPath, transform, globFilter) { - if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; - const opts = this.fsw.options; - const watchCallback = async (fullPath, flags, info) => { - if (this.fsw.closed) return; - if ( - opts.depth !== undefined && - calcDepth(fullPath, realPath) > opts.depth - ) return; - const path = transform(path__default['default'].join( - watchPath, path__default['default'].relative(watchPath, fullPath) - )); - if (globFilter && !globFilter(path)) return; - // ensure directories are tracked - const parent = path__default['default'].dirname(path); - const item = path__default['default'].basename(path); - const watchedDir = this.fsw._getWatchedDir( - info.type === FSEVENT_TYPE_DIRECTORY ? path : parent - ); + cb(); +}; - // correct for wrong events emitted - if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { - if (typeof opts.ignored === FUNCTION_TYPE) { - let stats; - try { - stats = await stat$4(path); - } catch (error) {} - if (this.fsw.closed) return; - if (this.checkIgnored(path, stats)) return; - if (sameTypes(info, stats)) { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } else { - this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this; + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb); + }); +}; +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { + + //console.error('ps2', prefix, exists) + + if (!this.matches[index]) + this.matches[index] = Object.create(null); + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix); + if (prefix.charAt(0) === '/') { + prefix = path$1.join(this.root, prefix); } else { - switch (info.event) { - case FSEVENT_CREATED: - case FSEVENT_MODIFIED: - return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - case FSEVENT_DELETED: - case FSEVENT_MOVED: - return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } + prefix = path$1.resolve(this.root, prefix); + if (trail) + prefix += '/'; } - }; + } - const closer = setFSEventsListener( - watchPath, - realPath, - watchCallback, - this.fsw._emitRaw - ); + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/'); - this.fsw._emitReady(); - return closer; -} + // Mark this as a match + this._emitMatch(index, prefix); + cb(); +}; -/** - * Handle symlinks encountered during directory scan - * @param {String} linkPath path to symlink - * @param {String} fullPath absolute path to the symlink - * @param {Function} transform pre-existing path transformer - * @param {Number} curDepth level of subdirectories traversed to where symlink is - * @returns {Promise} - */ -async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { - // don't follow the same symlink more than once - if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f); + var needDir = f.slice(-1) === '/'; - this.fsw._symlinkPaths.set(fullPath, true); - this.fsw._incrReadyCount(); + if (f.length > this.maxLength) + return cb() - try { - const linkTarget = await realpath$3(linkPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(linkTarget)) { - return this.fsw._emitReady(); - } + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs]; - this.fsw._incrReadyCount(); + if (Array.isArray(c)) + c = 'DIR'; - // add the linkTarget for watching with a wrapper for transform - // that causes emitted paths to incorporate the link's path - this._addToFsEvents(linkTarget || linkPath, (path) => { - let aliasedPath = linkPath; - if (linkTarget && linkTarget !== DOT_SLASH) { - aliasedPath = path.replace(linkTarget, linkPath); - } else if (path !== DOT_SLASH) { - aliasedPath = path__default['default'].join(linkPath, path); - } - return transform(aliasedPath); - }, false, curDepth); - } catch(error) { - if (this.fsw._handleError(error)) { - return this.fsw._emitReady(); + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + + if (needDir && c === 'FILE') + return cb() + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + var stat = this.statCache[abs]; + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE'; + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) } } -} -/** - * - * @param {Path} newPath - * @param {fs.Stats} stats - */ -emitAdd(newPath, stats, processPath, opts, forceAdd) { - const pp = processPath(newPath); - const isDir = stats.isDirectory(); - const dirObj = this.fsw._getWatchedDir(path__default['default'].dirname(pp)); - const base = path__default['default'].basename(pp); + var self = this; + var statcb = inflight('stat\0' + abs, lstatcb_); + if (statcb) + fs.lstat(abs, statcb); - // ensure empty dirs get tracked - if (isDir) this.fsw._getWatchedDir(pp); - if (dirObj.has(base)) return; - dirObj.add(base); + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb); + else + self._stat2(f, abs, er, stat, cb); + }) + } else { + self._stat2(f, abs, er, lstat, cb); + } + } +}; - if (!opts.ignoreInitial || forceAdd === true) { - this.fsw._emit(isDir ? EV_ADD_DIR$1 : EV_ADD$1, pp, stats); +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false; + return cb() } -} -initWatch(realPath, path, wh, processPath) { - if (this.fsw.closed) return; - const closer = this._watchWithFsEvents( - wh.watchPath, - path__default['default'].resolve(realPath || wh.watchPath), - processPath, - wh.globFilter - ); - this.fsw._addPathCloser(path, closer); -} + var needDir = f.slice(-1) === '/'; + this.statCache[abs] = stat; -/** - * Handle added path with fsevents - * @param {String} path file/dir path or glob pattern - * @param {Function|Boolean=} transform converts working path to what the user expects - * @param {Boolean=} forceAdd ensure add is emitted - * @param {Number=} priorDepth Level of subdirectories already traversed. - * @returns {Promise} - */ -async _addToFsEvents(path, transform, forceAdd, priorDepth) { - if (this.fsw.closed) { - return; - } - const opts = this.fsw.options; - const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) + return cb(null, false, stat) - const wh = this.fsw._getWatchHelpers(path); + var c = true; + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE'; + this.cache[abs] = this.cache[abs] || c; - // evaluate what is at the path we're being asked to watch - try { - const stats = await statMethods$1[wh.statMethod](wh.watchPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(wh.watchPath, stats)) { - throw null; - } - if (stats.isDirectory()) { - // emit addDir unless this is a glob parent - if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); + if (needDir && c === 'FILE') + return cb() - // don't recurse further if it would exceed depth setting - if (priorDepth && priorDepth > opts.depth) return; + return cb(null, c, stat) +}; - // scan the contents of the dir - this.fsw._readdirp(wh.watchPath, { - fileFilter: entry => wh.filterPath(entry), - directoryFilter: entry => wh.filterDir(entry), - ...Depth(opts.depth - (priorDepth || 0)) - }).on(STR_DATA$1, (entry) => { - // need to check filterPath on dirs b/c filterDir is less restrictive - if (this.fsw.closed) { - return; - } - if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ - const joinedPath = path__default['default'].join(wh.watchPath, entry.path); - const {fullPath} = entry; +var isBuffer = function isBuffer (obj) { + return obj != null && obj.constructor != null && + typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +}; - if (wh.followSymlinks && entry.stats.isSymbolicLink()) { - // preserve the current depth here since it can't be derived from - // real paths past the symlink - const curDepth = opts.depth === undefined ? - undefined : calcDepth(joinedPath, path__default['default'].resolve(wh.watchPath)) + 1; +const proc$1 = process; - this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); - } else { - this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); - } - }).on(EV_ERROR$1, EMPTY_FN$1).on(STR_END$1, () => { - this.fsw._emitReady(); - }); - } else { - this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); - this.fsw._emitReady(); - } - } catch (error) { - if (!error || this.fsw._handleError(error)) { - // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- - this.fsw._emitReady(); - this.fsw._emitReady(); - } +var own$b = {}.hasOwnProperty; + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Position} Position + * @typedef {import('unist').Point} Point + */ + +/** + * Stringify one point, a position (start and end points), or a node’s + * positional information. + * + * @param {Node|Position|Point} [value] + * @returns {string} + */ +function stringifyPosition$1(value) { + // Nothing. + if (!value || typeof value !== 'object') { + return '' } - if (opts.persistent && forceAdd !== true) { - if (typeof transform === FUNCTION_TYPE) { - // realpath has already been resolved - this.initWatch(undefined, path, wh, processPath); - } else { - let realPath; - try { - realPath = await realpath$3(wh.watchPath); - } catch (e) {} - this.initWatch(realPath, path, wh, processPath); - } + // Node. + if (own$b.call(value, 'position') || own$b.call(value, 'type')) { + // @ts-ignore looks like a node. + return position(value.position) } -} -} + // Position. + if (own$b.call(value, 'start') || own$b.call(value, 'end')) { + // @ts-ignore looks like a position. + return position(value) + } -var fseventsHandler = FsEventsHandler; -var canUse_1 = canUse; -fseventsHandler.canUse = canUse_1; + // Point. + if (own$b.call(value, 'line') || own$b.call(value, 'column')) { + // @ts-ignore looks like a point. + return point$1(value) + } -const { EventEmitter } = events__default['default']; + // ? + return '' +} +/** + * @param {Point} point + * @returns {string} + */ +function point$1(point) { + return index$1(point && point.line) + ':' + index$1(point && point.column) +} -const { promisify: promisify$3 } = util__default['default']; +/** + * @param {Position} pos + * @returns {string} + */ +function position(pos) { + return point$1(pos && pos.start) + '-' + point$1(pos && pos.end) +} -const anymatch$1 = anymatch_1.default; +/** + * @param {number} value + * @returns {number} + */ +function index$1(value) { + return value && typeof value === 'number' ? value : 1 +} +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Position} Position + * @typedef {import('unist').Point} Point + */ +class VFileMessage extends Error { + /** + * Constructor of a message for `reason` at `place` from `origin`. + * When an error is passed in as `reason`, copies the `stack`. + * + * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. + * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). + * @param {string} [origin] Place in code the message originates from (`string`, optional). + */ + constructor(reason, place, origin) { + /** @type {[string?, string?]} */ + var parts = [null, null]; + /** @type {Position} */ + var position = { + start: {line: null, column: null}, + end: {line: null, column: null} + }; + /** @type {number} */ + var index; + super(); + if (typeof place === 'string') { + origin = place; + place = null; + } + if (typeof origin === 'string') { + index = origin.indexOf(':'); + if (index === -1) { + parts[1] = origin; + } else { + parts[0] = origin.slice(0, index); + parts[1] = origin.slice(index + 1); + } + } -const { - EV_ALL, - EV_READY, - EV_ADD: EV_ADD$2, - EV_CHANGE: EV_CHANGE$2, - EV_UNLINK: EV_UNLINK$1, - EV_ADD_DIR: EV_ADD_DIR$2, - EV_UNLINK_DIR, - EV_RAW, - EV_ERROR: EV_ERROR$2, + if (place) { + // Node. + if ('type' in place || 'position' in place) { + if (place.position) { + position = place.position; + } + } + // Position. + else if ('start' in place || 'end' in place) { + // @ts-ignore Looks like a position. + position = place; + } + // Point. + else if ('line' in place || 'column' in place) { + // @ts-ignore Looks like a point. + position.start = place; + } + } - STR_CLOSE, - STR_END: STR_END$2, + // Fields from `Error` + this.name = stringifyPosition$1(place) || '1:1'; + this.message = typeof reason === 'object' ? reason.message : reason; + this.stack = typeof reason === 'object' ? reason.stack : ''; - BACK_SLASH_RE, - DOUBLE_SLASH_RE, - SLASH_OR_BACK_SLASH_RE, - DOT_RE, - REPLACER_RE, + /** + * Reason for message. + * @type {string} + */ + this.reason = this.message; + /** + * Starting line of error. + * @type {number?} + */ + this.line = position.start.line; + /** + * Starting column of error. + * @type {number?} + */ + this.column = position.start.column; + /** + * Namespace of warning. + * @type {string?} + */ + this.source = parts[0]; + /** + * Category of message. + * @type {string?} + */ + this.ruleId = parts[1]; + /** + * Full range information, when available. + * Has start and end properties, both set to an object with line and column, set to number?. + * @type {Position?} + */ + this.position = position; - SLASH: SLASH$1, - SLASH_SLASH, - BRACE_START: BRACE_START$1, - BANG: BANG$2, - ONE_DOT, - TWO_DOTS, - GLOBSTAR: GLOBSTAR$1, - SLASH_GLOBSTAR, - ANYMATCH_OPTS, - STRING_TYPE, - FUNCTION_TYPE: FUNCTION_TYPE$1, - EMPTY_STR: EMPTY_STR$1, - EMPTY_FN: EMPTY_FN$2, + // The following fields are “well known”. + // Not standard. + // Feel free to add other non-standard fields to your messages. - isWindows: isWindows$2, - isMacos -} = constants$2; + /* eslint-disable no-unused-expressions */ + /** + * You may add a file property with a path of a file (used throughout the VFile ecosystem). + * @type {string?} + */ + this.file; + /** + * If true, marks associated file as no longer processable. + * @type {boolean?} + */ + this.fatal; + /** + * You may add a url property with a link to documentation for the message. + * @type {string?} + */ + this.url; + /** + * You may add a note property with a long form description of the message (supported by vfile-reporter). + * @type {string?} + */ + this.note; + /* eslint-enable no-unused-expressions */ + } +} -const stat$5 = promisify$3(fs__default['default'].stat); -const readdir$2 = promisify$3(fs__default['default'].readdir); +VFileMessage.prototype.file = ''; +VFileMessage.prototype.name = ''; +VFileMessage.prototype.reason = ''; +VFileMessage.prototype.message = ''; +VFileMessage.prototype.stack = ''; +VFileMessage.prototype.fatal = null; +VFileMessage.prototype.column = null; +VFileMessage.prototype.line = null; +VFileMessage.prototype.source = null; +VFileMessage.prototype.ruleId = null; +VFileMessage.prototype.position = null; /** - * @typedef {String} Path - * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName - * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Position} Position + * @typedef {import('unist').Point} Point + * + * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'latin1'|'binary'|'hex'} BufferEncoding + * Encodings supported by the buffer class. + * This is a copy of the typing from Node, copied to prevent Node globals from + * being needed. + * Copied from: + * + * @typedef {string|Uint8Array} VFileValue Contents of the file. + * Can either be text, or a Buffer like structure. + * This does not directly use type `Buffer`, because it can also be used in a + * browser context. + * Instead this leverages `Uint8Array` which is the base type for `Buffer`, + * and a native JavaScript construct. + * + * @typedef {VFileValue|VFileOptions|VFile} VFileCompatible Things that can be + * passed to the constructor. + * + * @typedef VFileCoreOptions + * @property {VFileValue} [value] + * @property {string} [cwd] + * @property {Array.} [history] + * @property {string} [path] + * @property {string} [basename] + * @property {string} [stem] + * @property {string} [extname] + * @property {string} [dirname] + * @property {Object.} [data] + * + * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions + * Configuration: a bunch of keys that will be shallow copied over to the new + * file. + * + * @typedef {Object.} VFileReporterSettings + * @typedef {(files: VFile[], options: T) => string} VFileReporter */ -/** - * - * @typedef {Object} WatchHelpers - * @property {Boolean} followSymlinks - * @property {'stat'|'lstat'} statMethod - * @property {Path} path - * @property {Path} watchPath - * @property {Function} entryPath - * @property {Boolean} hasGlob - * @property {Object} globFilter - * @property {Function} filterPath - * @property {Function} filterDir - */ +// Order of setting (least specific to most), we need this because otherwise +// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a +// stem can be set. +var order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; -const arrify$1 = (value = []) => Array.isArray(value) ? value : [value]; -const flatten = (list, result = []) => { - list.forEach(item => { - if (Array.isArray(item)) { - flatten(item, result); +class VFile { + /** + * Create a new virtual file. + * + * If `options` is `string` or `Buffer`, treats it as `{value: options}`. + * If `options` is a `VFile`, shallow copies its data over to the new file. + * All other given fields are set on the newly created `VFile`. + * + * Path related properties are set in the following order (least specific to + * most specific): `history`, `path`, `basename`, `stem`, `extname`, + * `dirname`. + * + * It’s not possible to set either `dirname` or `extname` without setting + * either `history`, `path`, `basename`, or `stem` as well. + * + * @param {VFileCompatible} [value] + */ + constructor(value) { + var index = -1; + /** @type {VFileOptions} */ + var options; + /** @type {string} */ + var prop; + + if (!value) { + options = {}; + } else if (typeof value === 'string' || isBuffer(value)) { + // @ts-ignore Looks like a buffer. + options = {value}; } else { - result.push(item); + // @ts-ignore Looks like file or options. + options = value; } - }); - return result; -}; -const unifyPaths = (paths_) => { - /** - * @type {Array} - */ - const paths = flatten(arrify$1(paths_)); - if (!paths.every(p => typeof p === STRING_TYPE)) { - throw new TypeError(`Non-string provided as watch path: ${paths}`); - } - return paths.map(normalizePathToUnix); -}; + /** + * Place to store custom information. + * It’s OK to store custom data directly on the file, moving it to `data` + * gives a little more privacy. + * @type {Object.} + */ + this.data = {}; -// If SLASH_SLASH occurs at the beginning of path, it is not replaced -// because "//StoragePC/DrivePool/Movies" is a valid network path -const toUnix = (string) => { - let str = string.replace(BACK_SLASH_RE, SLASH$1); - let prepend = false; - if (str.startsWith(SLASH_SLASH)) { - prepend = true; - } - while (str.match(DOUBLE_SLASH_RE)) { - str = str.replace(DOUBLE_SLASH_RE, SLASH$1); - } - if (prepend) { - str = SLASH$1 + str; - } - return str; -}; + /** + * List of messages associated with the file. + * @type {Array.} + */ + this.messages = []; -// Our version of upath.normalize -// TODO: this is not equal to path-normalize module - investigate why -const normalizePathToUnix = (path) => toUnix(path__default['default'].normalize(toUnix(path))); + /** + * List of file paths the file moved between. + * @type {Array.} + */ + this.history = []; -const normalizeIgnored = (cwd = EMPTY_STR$1) => (path) => { - if (typeof path !== STRING_TYPE) return path; - return normalizePathToUnix(path__default['default'].isAbsolute(path) ? path : path__default['default'].join(cwd, path)); -}; + /** + * Base of `path`. + * Defaults to `process.cwd()` (`/` in browsers). + * @type {string} + */ + this.cwd = proc$1.cwd(); -const getAbsolutePath = (path, cwd) => { - if (path__default['default'].isAbsolute(path)) { - return path; - } - if (path.startsWith(BANG$2)) { - return BANG$2 + path__default['default'].join(cwd, path.slice(1)); - } - return path__default['default'].join(cwd, path); -}; + /* eslint-disable no-unused-expressions */ + /** + * Raw value. + * @type {VFileValue} + */ + this.value; -const undef = (opts, key) => opts[key] === undefined; + // The below are non-standard, they are “well-known”. + // As in, used in several tools. -/** - * Directory entry. - * @property {Path} path - * @property {Set} items - */ -class DirEntry { - /** - * @param {Path} dir - * @param {Function} removeWatcher - */ - constructor(dir, removeWatcher) { - this.path = dir; - this._removeWatcher = removeWatcher; - /** @type {Set} */ - this.items = new Set(); + /** + * Whether a file was saved to disk. + * This is used by vfile reporters. + * @type {boolean} + */ + this.stored; + + /** + * Sometimes files have a non-string representation. + * This can be stored in the `result` field. + * One example is when turning markdown into React nodes. + * This is used by unified to store non-string results. + * @type {unknown} + */ + this.result; + /* eslint-enable no-unused-expressions */ + + // Set path related properties in the correct order. + while (++index < order.length) { + prop = order[index]; + + // Note: we specifically use `in` instead of `hasOwnProperty` to accept + // `vfile`s too. + if (prop in options && options[prop] !== undefined) { + this[prop] = prop === 'history' ? options[prop].concat() : options[prop]; + } + } + + // Set non-path related properties. + for (prop in options) { + if (!order.includes(prop)) { + this[prop] = options[prop]; + } + } } - add(item) { - const {items} = this; - if (!items) return; - if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + /** + * Access full path (`~/index.min.js`). + */ + get path() { + return this.history[this.history.length - 1] } - async remove(item) { - const {items} = this; - if (!items) return; - items.delete(item); - if (items.size > 0) return; + /** + * Set full path (`~/index.min.js`). + * Cannot be nullified. + */ + set path(path) { + assertNonEmpty(path, 'path'); - const dir = this.path; - try { - await readdir$2(dir); - } catch (err) { - if (this._removeWatcher) { - this._removeWatcher(path__default['default'].dirname(dir), path__default['default'].basename(dir)); - } + if (this.path !== path) { + this.history.push(path); } } - has(item) { - const {items} = this; - if (!items) return; - return items.has(item); + /** + * Access parent path (`~`). + */ + get dirname() { + return typeof this.path === 'string' ? path$b.dirname(this.path) : undefined } /** - * @returns {Array} + * Set parent path (`~`). + * Cannot be set if there's no `path` yet. */ - getChildren() { - const {items} = this; - if (!items) return; - return [...items.values()]; + set dirname(dirname) { + assertPath(this.path, 'dirname'); + this.path = path$b.join(dirname || '', this.basename); } - dispose() { - this.items.clear(); - delete this.path; - delete this._removeWatcher; - delete this.items; - Object.freeze(this); + /** + * Access basename (including extname) (`index.min.js`). + */ + get basename() { + return typeof this.path === 'string' ? path$b.basename(this.path) : undefined } -} -const STAT_METHOD_F = 'stat'; -const STAT_METHOD_L = 'lstat'; -class WatchHelper { - constructor(path, watchPath, follow, fsw) { - this.fsw = fsw; - this.path = path = path.replace(REPLACER_RE, EMPTY_STR$1); - this.watchPath = watchPath; - this.fullWatchPath = path__default['default'].resolve(watchPath); - this.hasGlob = watchPath !== path; - /** @type {object|boolean} */ - if (path === EMPTY_STR$1) this.hasGlob = false; - this.globSymlink = this.hasGlob && follow ? undefined : false; - this.globFilter = this.hasGlob ? anymatch$1(path, undefined, ANYMATCH_OPTS) : false; - this.dirParts = this.getDirParts(path); - this.dirParts.forEach((parts) => { - if (parts.length > 1) parts.pop(); - }); - this.followSymlinks = follow; - this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + /** + * Set basename (`index.min.js`). + * Cannot contain path separators. + * Cannot be nullified either (use `file.path = file.dirname` instead). + */ + set basename(basename) { + assertNonEmpty(basename, 'basename'); + assertPart(basename, 'basename'); + this.path = path$b.join(this.dirname || '', basename); } - checkGlobSymlink(entry) { - // only need to resolve once - // first entry should always have entry.parentDir === EMPTY_STR - if (this.globSymlink === undefined) { - this.globSymlink = entry.fullParentDir === this.fullWatchPath ? - false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; - } + /** + * Access extname (including dot) (`.js`). + */ + get extname() { + return typeof this.path === 'string' ? path$b.extname(this.path) : undefined + } - if (this.globSymlink) { - return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + /** + * Set extname (including dot) (`.js`). + * Cannot be set if there's no `path` yet and cannot contain path separators. + */ + set extname(extname) { + assertPart(extname, 'extname'); + assertPath(this.path, 'extname'); + + if (extname) { + if (extname.charCodeAt(0) !== 46 /* `.` */) { + throw new Error('`extname` must start with `.`') + } + + if (extname.includes('.', 1)) { + throw new Error('`extname` cannot contain multiple dots') + } } - return entry.fullPath; + this.path = path$b.join(this.dirname, this.stem + (extname || '')); } - entryPath(entry) { - return path__default['default'].join(this.watchPath, - path__default['default'].relative(this.watchPath, this.checkGlobSymlink(entry)) - ); + /** + * Access stem (w/o extname) (`index.min`). + */ + get stem() { + return typeof this.path === 'string' + ? path$b.basename(this.path, this.extname) + : undefined } - filterPath(entry) { - const {stats} = entry; - if (stats && stats.isSymbolicLink()) return this.filterDir(entry); - const resolvedPath = this.entryPath(entry); - const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE$1 ? - this.globFilter(resolvedPath) : true; - return matchesGlob && - this.fsw._isntIgnored(resolvedPath, stats) && - this.fsw._hasReadPermissions(stats); + /** + * Set stem (w/o extname) (`index.min`). + * Cannot be nullified, and cannot contain path separators. + */ + set stem(stem) { + assertNonEmpty(stem, 'stem'); + assertPart(stem, 'stem'); + this.path = path$b.join(this.dirname || '', stem + (this.extname || '')); } - getDirParts(path) { - if (!this.hasGlob) return []; - const parts = []; - const expandedPath = path.includes(BRACE_START$1) ? braces_1.expand(path) : [path]; - expandedPath.forEach((path) => { - parts.push(path__default['default'].relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); - }); - return parts; + /** + * Serialize the file. + * + * @param {BufferEncoding} [encoding='utf8'] If `file.value` is a buffer, `encoding` is used to serialize buffers. + * @returns {string} + */ + toString(encoding) { + // @ts-ignore string’s don’t accept the parameter, but buffers do. + return (this.value || '').toString(encoding) } - filterDir(entry) { - if (this.hasGlob) { - const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); - let globstar = false; - this.unmatchedGlob = !this.dirParts.some((parts) => { - return parts.every((part, i) => { - if (part === GLOBSTAR$1) globstar = true; - return globstar || !entryParts[0][i] || anymatch$1(part, entryParts[0][i], ANYMATCH_OPTS); - }); - }); - } - return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); - } -} + /** + * Create a message and associates it w/ the file. + * + * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. + * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). + * @param {string} [origin] Place in code the message originates from (`string`, optional). + * @returns {VFileMessage} + */ + message(reason, place, origin) { + var message = new VFileMessage(reason, place, origin); -/** - * Watches files & directories for changes. Emitted events: - * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` - * - * new FSWatcher() - * .add(directories) - * .on('add', path => log('File', path, 'was added')) - */ -class FSWatcher extends EventEmitter { -// Not indenting methods for history sake; for now. -constructor(_opts) { - super(); + if (this.path) { + message.name = this.path + ':' + message.name; + message.file = this.path; + } - const opts = {}; - if (_opts) Object.assign(opts, _opts); // for frozen objects + message.fatal = false; - /** @type {Map} */ - this._watched = new Map(); - /** @type {Map} */ - this._closers = new Map(); - /** @type {Set} */ - this._ignoredPaths = new Set(); + this.messages.push(message); - /** @type {Map} */ - this._throttled = new Map(); + return message + } - /** @type {Map} */ - this._symlinkPaths = new Map(); + /** + * Info: create a message, associate it with the file, and mark the fatality + * as `null`. + * Calls `message()` internally. + * + * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. + * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). + * @param {string} [origin] Place in code the message originates from (`string`, optional). + * @returns {VFileMessage} + */ + info(reason, place, origin) { + var message = this.message(reason, place, origin); - this._streams = new Set(); - this.closed = false; + message.fatal = null; - // Set up default options. - if (undef(opts, 'persistent')) opts.persistent = true; - if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; - if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; - if (undef(opts, 'interval')) opts.interval = 100; - if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; - if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; - opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; + return message + } - // Enable fsevents on OS X when polling isn't explicitly enabled. - if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; + /** + * Fail: create a message, associate it with the file, mark the fatality as + * `true`. + * Note: fatal errors mean a file is no longer processable. + * Calls `message()` internally. + * + * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. + * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). + * @param {string} [origin] Place in code the message originates from (`string`, optional). + * @returns {never} + */ + fail(reason, place, origin) { + var message = this.message(reason, place, origin); - // If we can't use fsevents, ensure the options reflect it's disabled. - const canUseFsEvents = fseventsHandler.canUse(); - if (!canUseFsEvents) opts.useFsEvents = false; + message.fatal = true; - // Use polling on Mac if not using fsevents. - // Other platforms use non-polling fs_watch. - if (undef(opts, 'usePolling') && !opts.useFsEvents) { - opts.usePolling = isMacos; + throw message } +} - // Global override (useful for end-developers that need to force polling for all - // instances of chokidar, regardless of usage/dependency depth) - const envPoll = process.env.CHOKIDAR_USEPOLLING; - if (envPoll !== undefined) { - const envLower = envPoll.toLowerCase(); - - if (envLower === 'false' || envLower === '0') { - opts.usePolling = false; - } else if (envLower === 'true' || envLower === '1') { - opts.usePolling = true; - } else { - opts.usePolling = !!envLower; - } - } - const envInterval = process.env.CHOKIDAR_INTERVAL; - if (envInterval) { - opts.interval = Number.parseInt(envInterval, 10); +/** + * Assert that `part` is not a path (as in, does not contain `path.sep`). + * + * @param {string} part + * @param {string} name + * @returns {void} + */ +function assertPart(part, name) { + if (part && part.includes(path$b.sep)) { + throw new Error( + '`' + name + '` cannot be a path: did not expect `' + path$b.sep + '`' + ) } +} - // Editor atomic write normalization enabled by default with fs.watch - if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; - if (opts.atomic) this._pendingUnlinks = new Map(); - - if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; +/** + * Assert that `part` is not empty. + * + * @param {string} part + * @param {string} name + * @returns {void} + */ +function assertNonEmpty(part, name) { + if (!part) { + throw new Error('`' + name + '` cannot be empty') + } +} - if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; - if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; - const awf = opts.awaitWriteFinish; - if (awf) { - if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; - if (!awf.pollInterval) awf.pollInterval = 100; - this._pendingWrites = new Map(); +/** + * Assert `path` exists. + * + * @param {string} path + * @param {string} name + * @returns {void} + */ +function assertPath(path, name) { + if (!path) { + throw new Error('Setting `' + name + '` requires `path` to be set too') } - if (opts.ignored) opts.ignored = arrify$1(opts.ignored); +} - let readyCalls = 0; - this._emitReady = () => { - readyCalls++; - if (readyCalls >= this._readyCount) { - this._emitReady = EMPTY_FN$2; - this._readyEmitted = true; - // use process.nextTick to allow time for listener to be bound - process.nextTick(() => this.emit(EV_READY)); - } - }; - this._emitRaw = (...args) => this.emit(EV_RAW, ...args); - this._readyEmitted = false; - this.options = opts; +/** + * @typedef {import('vfile').VFileValue} Value + * @typedef {import('vfile').VFileOptions} Options + * @typedef {import('vfile').BufferEncoding} BufferEncoding + * + * @typedef {number|string} Mode + * @typedef {BufferEncoding|{encoding?: null|BufferEncoding, flag?: string}} ReadOptions + * @typedef {BufferEncoding|{encoding?: null|BufferEncoding, mode: Mode?, flag?: string}} WriteOptions + * + * @typedef {string|Uint8Array} Path Path of the file. + * @typedef {Path|URL|Options|VFile} Compatible Things that can be + * passed to the function. + */ - // Initialize with proper watcher. - if (opts.useFsEvents) { - this._fsEventsHandler = new fseventsHandler(this); - } else { - this._nodeFsHandler = new nodefsHandler(this); +/** + * Create a virtual file from a description. + * If `options` is a string or a buffer, it’s used as the path. + * If it’s a VFile itself, it’s returned instead. + * In all other cases, the options are passed through to `vfile()`. + * + * @param {Compatible} [options] + * @returns {VFile} + */ +function toVFile(options) { + if (typeof options === 'string' || isBuffer(options)) { + options = {path: String(options)}; + } else if (options instanceof URL$1) { + options = {path: fileURLToPath(options)}; } - // You’re frozen when your heart’s not open. - Object.freeze(opts); + return looksLikeAVFile$1(options) ? options : new VFile(options) } -// Public methods +/** + * Create a virtual file and read it in, synchronously. + * + * @param {Compatible} description + * @param {ReadOptions} [options] + * @returns {VFile} + */ +function readSync(description, options) { + var file = toVFile(description); + file.value = require$$0$3.readFileSync(path$b.resolve(file.cwd, file.path), options); + return file +} /** - * Adds paths to be watched on an existing FSWatcher instance - * @param {Path|Array} paths_ - * @param {String=} _origAdd private; for handling non-existent paths to be watched - * @param {Boolean=} _internal private; indicates a non-user add - * @returns {FSWatcher} for chaining + * Create a virtual file and write it in, synchronously. + * + * @param {Compatible} description + * @param {WriteOptions} [options] + * @returns {VFile} */ -add(paths_, _origAdd, _internal) { - const {cwd, disableGlobbing} = this.options; - this.closed = false; - let paths = unifyPaths(paths_); - if (cwd) { - paths = paths.map((path) => { - const absPath = getAbsolutePath(path, cwd); +function writeSync(description, options) { + var file = toVFile(description); + require$$0$3.writeFileSync(path$b.resolve(file.cwd, file.path), file.value || '', options); + return file +} - // Check `path` instead of `absPath` because the cwd portion can't be a glob - if (disableGlobbing || !isGlob(path)) { - return absPath; +const read$2 = + /** + * @type {{ + * (description: Compatible, options: ReadOptions, callback: Callback): void + * (description: Compatible, callback: Callback): void + * (description: Compatible, options?: ReadOptions): Promise + * }} + */ + ( + /** + * Create a virtual file and read it in, asynchronously. + * + * @param {Compatible} description + * @param {ReadOptions} [options] + * @param {Callback} [callback] + */ + function (description, options, callback) { + var file = toVFile(description); + + if (!callback && typeof options === 'function') { + callback = options; + options = null; } - return normalizePath(absPath); - }); - } - // set aside negated glob strings - paths = paths.filter((path) => { - if (path.startsWith(BANG$2)) { - this._ignoredPaths.add(path.slice(1)); - return false; + if (!callback) { + return new Promise(executor) + } + + executor(resolve, callback); + + /** + * @param {VFile} result + */ + function resolve(result) { + callback(null, result); + } + + /** + * @param {(x: VFile) => void} resolve + * @param {(x: Error, y?: VFile) => void} reject + */ + function executor(resolve, reject) { + /** @type {string} */ + var fp; + + try { + fp = path$b.resolve(file.cwd, file.path); + } catch (error) { + return reject(error) + } + + require$$0$3.readFile(fp, options, done); + + /** + * @param {Error} error + * @param {Value} result + */ + function done(error, result) { + if (error) { + reject(error); + } else { + file.value = result; + resolve(file); + } + } + } } + ); - // if a path is being added that was previously ignored, stop ignoring it - this._ignoredPaths.delete(path); - this._ignoredPaths.delete(path + SLASH_GLOBSTAR); +const write = + /** + * @type {{ + * (description: Compatible, options: WriteOptions, callback: Callback): void + * (description: Compatible, callback: Callback): void + * (description: Compatible, options?: WriteOptions): Promise + * }} + */ + ( + /** + * Create a virtual file and write it in, asynchronously. + * + * @param {Compatible} description + * @param {WriteOptions} [options] + * @param {Callback} [callback] + */ + function (description, options, callback) { + var file = toVFile(description); - // reset the cached userIgnored anymatch fn - // to make ignoredPaths changes effective - this._userIgnored = undefined; + // Weird, right? Otherwise `fs` doesn’t accept it. + if (!callback && typeof options === 'function') { + callback = options; + options = undefined; + } - return true; - }); + if (!callback) { + return new Promise(executor) + } - if (this.options.useFsEvents && this._fsEventsHandler) { - if (!this._readyCount) this._readyCount = paths.length; - if (this.options.persistent) this._readyCount *= 2; - paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); - } else { - if (!this._readyCount) this._readyCount = 0; - this._readyCount += paths.length; - Promise.all( - paths.map(async path => { - const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); - if (res) this._emitReady(); - return res; - }) - ).then(results => { - if (this.closed) return; - results.filter(item => item).forEach(item => { - this.add(path__default['default'].dirname(item), path__default['default'].basename(_origAdd || item)); - }); - }); - } + executor(resolve, callback); - return this; -} + /** + * @param {VFile} result + */ + function resolve(result) { + callback(null, result); + } -/** - * Close watchers or start ignoring events from specified paths. - * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs - * @returns {FSWatcher} for chaining -*/ -unwatch(paths_) { - if (this.closed) return this; - const paths = unifyPaths(paths_); - const {cwd} = this.options; + /** + * @param {(x: VFile) => void} resolve + * @param {(x: Error, y?: VFile) => void} reject + */ + function executor(resolve, reject) { + /** @type {string} */ + var fp; - paths.forEach((path) => { - // convert to absolute path unless relative path already matches - if (!path__default['default'].isAbsolute(path) && !this._closers.has(path)) { - if (cwd) path = path__default['default'].join(cwd, path); - path = path__default['default'].resolve(path); - } + try { + fp = path$b.resolve(file.cwd, file.path); + } catch (error) { + return reject(error) + } - this._closePath(path); + require$$0$3.writeFile(fp, file.value || '', options, done); - this._ignoredPaths.add(path); - if (this._watched.has(path)) { - this._ignoredPaths.add(path + SLASH_GLOBSTAR); + /** + * @param {Error} error + */ + function done(error) { + if (error) { + reject(error); + } else { + resolve(file); + } + } + } } - - // reset the cached userIgnored anymatch fn - // to make ignoredPaths changes effective - this._userIgnored = undefined; - }); - - return this; -} + ); /** - * Close watchers and remove all listeners from watched paths. - * @returns {Promise}. -*/ -close() { - if (this.closed) return this._closePromise; - this.closed = true; + * @param {Compatible} value + * @returns {value is VFile} + */ +function looksLikeAVFile$1(value) { + return ( + value && + typeof value === 'object' && + 'message' in value && + 'messages' in value + ) +} - // Memory management. - this.removeAllListeners(); - const closers = []; - this._closers.forEach(closerList => closerList.forEach(closer => { - const promise = closer(); - if (promise instanceof Promise) closers.push(promise); - })); - this._streams.forEach(stream => stream.destroy()); - this._userIgnored = undefined; - this._readyCount = 0; - this._readyEmitted = false; - this._watched.forEach(dirent => dirent.dispose()); - ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { - this[`_${key}`].clear(); - }); +toVFile.readSync = readSync; +toVFile.writeSync = writeSync; +toVFile.read = read$2; +toVFile.write = write; - this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); - return this._closePromise; -} +/** + * @typedef {import('fs').Stats} Stats + * @typedef {import('vfile').VFile} VFile + * @typedef {import('./ignore.js').Ignore} Ignore + * @typedef {import('ignore').Ignore} GitIgnore + * + * @typedef Options + * @property {string} cwd + * @property {Array.} extensions + * @property {boolean|undefined} silentlyIgnore + * @property {Array.} ignorePatterns + * @property {Ignore} ignore + * + * @typedef SearchResults + * @property {fs.Stats|undefined} stats + * @property {boolean|undefined} ignored + * + * @typedef Result + * @property {Array.} input + * @property {VFile[]} output + * + * @typedef CleanResult + * @property {boolean} oneFileMode + * @property {VFile[]} files + * + * @callback Callback + * @param {Error|null} error + * @param {CleanResult} [result] + */ /** - * Expose list of watched paths - * @returns {Object} for chaining -*/ -getWatched() { - const watchList = {}; - this._watched.forEach((entry, dir) => { - const key = this.options.cwd ? path__default['default'].relative(this.options.cwd, dir) : dir; - watchList[key || ONE_DOT] = entry.getChildren().sort(); + * Search `patterns`, a mix of globs, paths, and files. + * + * @param {Array.} input + * @param {Options} options + * @param {Callback} callback + */ +function finder(input, options, callback) { + expand(input, options, (error, result) => { + // Glob errors are unusual. + // other errors are on the vfile results. + /* c8 ignore next 2 */ + if (error || !result) { + callback(error); + } else { + callback(null, {oneFileMode: oneFileMode(result), files: result.output}); + } }); - return watchList; -} - -emitWithAll(event, args) { - this.emit(...args); - if (event !== EV_ERROR$2) this.emit(EV_ALL, ...args); } -// Common helpers -// -------------- - /** - * Normalize and emit events. - * Calling _emit DOES NOT MEAN emit() would be called! - * @param {EventName} event Type of event - * @param {Path} path File or directory path - * @param {*=} val1 arguments to be passed with event - * @param {*=} val2 - * @param {*=} val3 - * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag + * Expand the given glob patterns, search given and found directories, and map + * to vfiles. + * + * @param {Array.} input + * @param {Options} options + * @param {(error: Error|null, result?: Result) => void} next */ -async _emit(event, path, val1, val2, val3) { - if (this.closed) return; +function expand(input, options, next) { + /** @type {Array.} */ + let paths = []; + let actual = 0; + let expected = 0; + let index = -1; + /** @type {boolean|undefined} */ + let failed; - const opts = this.options; - if (isWindows$2) path = path__default['default'].normalize(path); - if (opts.cwd) path = path__default['default'].relative(opts.cwd, path); - /** @type Array */ - const args = [event, path]; - if (val3 !== undefined) args.push(val1, val2, val3); - else if (val2 !== undefined) args.push(val1, val2); - else if (val1 !== undefined) args.push(val1); + while (++index < input.length) { + let file = input[index]; + if (typeof file === 'string') { + if (glob_1.hasMagic(file)) { + expected++; + glob_1(file, {cwd: options.cwd}, (error, files) => { + // Glob errors are unusual. + /* c8 ignore next 3 */ + if (failed) { + return + } - const awf = opts.awaitWriteFinish; - let pw; - if (awf && (pw = this._pendingWrites.get(path))) { - pw.lastChange = new Date(); - return this; - } + // Glob errors are unusual. + /* c8 ignore next 4 */ + if (error) { + failed = true; + done1(error); + } else { + actual++; + paths = paths.concat(files); - if (opts.atomic) { - if (event === EV_UNLINK$1) { - this._pendingUnlinks.set(path, args); - setTimeout(() => { - this._pendingUnlinks.forEach((entry, path) => { - this.emit(...entry); - this.emit(EV_ALL, ...entry); - this._pendingUnlinks.delete(path); + if (actual === expected) { + search$1(paths, options, done1); + } + } }); - }, typeof opts.atomic === 'number' ? opts.atomic : 100); - return this; - } - if (event === EV_ADD$2 && this._pendingUnlinks.has(path)) { - event = args[0] = EV_CHANGE$2; - this._pendingUnlinks.delete(path); - } - } - - if (awf && (event === EV_ADD$2 || event === EV_CHANGE$2) && this._readyEmitted) { - const awfEmit = (err, stats) => { - if (err) { - event = args[0] = EV_ERROR$2; - args[1] = err; - this.emitWithAll(event, args); - } else if (stats) { - // if stats doesn't exist the file must have been deleted - if (args.length > 2) { - args[2] = stats; - } else { - args.push(stats); - } - this.emitWithAll(event, args); + } else { + // `relative` to make the paths canonical. + file = + path$c.relative(options.cwd, path$c.resolve(options.cwd, file)) || '.'; + paths.push(file); } - }; - - this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); - return this; + } else { + const fp = file.path ? path$c.relative(options.cwd, file.path) : options.cwd; + file.cwd = options.cwd; + file.path = fp; + file.history = [fp]; + paths.push(file); + } } - if (event === EV_CHANGE$2) { - const isThrottled = !this._throttle(EV_CHANGE$2, path, 50); - if (isThrottled) return this; + if (!expected) { + search$1(paths, options, done1); } - if (opts.alwaysStat && val1 === undefined && - (event === EV_ADD$2 || event === EV_ADD_DIR$2 || event === EV_CHANGE$2) - ) { - const fullPath = opts.cwd ? path__default['default'].join(opts.cwd, path) : path; - let stats; - try { - stats = await stat$5(fullPath); - } catch (err) {} - // Suppress event when fs_stat fails, to avoid sending undefined 'stat' - if (!stats || this.closed) return; - args.push(stats); + /** + * @param {Error|null} error + * @param {Array} [files] + */ + function done1(error, files) { + // `search` currently does not give errors. + /* c8 ignore next 2 */ + if (error || !files) { + next(error); + } else { + next(null, {input: paths, output: files}); + } } - this.emitWithAll(event, args); - - return this; } /** - * Common handler for errors - * @param {Error} error - * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag + * Search `paths`. + * + * @param {Array.} input + * @param {Options & {nested?: boolean}} options + * @param {(error: Error|null, files: Array.) => void} next */ -_handleError(error) { - const code = error && error.code; - if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && - (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) - ) { - this.emit(EV_ERROR$2, error); +function search$1(input, options, next) { + const extraIgnore = ignore().add(options.ignorePatterns); + let expected = 0; + let actual = 0; + let index = -1; + /** @type {Array.} */ + let files = []; + + while (++index < input.length) { + each(input[index]); } - return error || this.closed; -} -/** - * Helper utility for throttling - * @param {ThrottleType} actionType type being throttled - * @param {Path} path being acted upon - * @param {Number} timeout duration of time to suppress duplicate actions - * @returns {Object|false} tracking object or false if action should be suppressed - */ -_throttle(actionType, path, timeout) { - if (!this._throttled.has(actionType)) { - this._throttled.set(actionType, new Map()); + if (!expected) { + next(null, files); } - /** @type {Map} */ - const action = this._throttled.get(actionType); - /** @type {Object} */ - const actionPath = action.get(path); + /** + * @param {string|VFile} file + */ + function each(file) { + const ext = typeof file === 'string' ? path$c.extname(file) : file.extname; - if (actionPath) { - actionPath.count++; - return false; - } + // Normalise globs. + if (typeof file === 'string') { + file = file.split('/').join(path$c.sep); + } - let timeoutObject; - const clear = () => { - const item = action.get(path); - const count = item ? item.count : 0; - action.delete(path); - clearTimeout(timeoutObject); - if (item) clearTimeout(item.timeoutObject); - return count; - }; - timeoutObject = setTimeout(clear, timeout); - const thr = {timeoutObject, clear, count: 0}; - action.set(path, thr); - return thr; -} + const part = base$1(file); -_incrReadyCount() { - return this._readyCount++; -} + if (options.nested && (part.charAt(0) === '.' || part === 'node_modules')) { + return + } -/** - * Awaits write operation to finish. - * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. - * @param {Path} path being acted upon - * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished - * @param {EventName} event - * @param {Function} awfEmit Callback to be called when ready for event to be emitted. - */ -_awaitWriteFinish(path, threshold, event, awfEmit) { - let timeoutHandler; + expected++; - let fullPath = path; - if (this.options.cwd && !path__default['default'].isAbsolute(path)) { - fullPath = path__default['default'].join(this.options.cwd, path); - } + statAndIgnore( + file, + Object.assign({}, options, {extraIgnore}), + (error, result) => { + const ignored = result && result.ignored; + const dir = result && result.stats && result.stats.isDirectory(); + + if (ignored && (options.nested || options.silentlyIgnore)) { + return one(null, []) + } + + if (!ignored && dir) { + return fs$a.readdir( + path$c.resolve(options.cwd, filePath(file)), + (error, basenames) => { + // Should not happen often: the directory is `stat`ed first, which was ok, + // but reading it is not. + /* c8 ignore next 9 */ + if (error) { + const otherFile = toVFile(filePath(file)); + otherFile.cwd = options.cwd; + + try { + otherFile.fail('Cannot read directory'); + } catch {} + + one(null, [otherFile]); + } else { + search$1( + basenames.map((name) => path$c.join(filePath(file), name)), + Object.assign({}, options, {nested: true}), + one + ); + } + } + ) + } - const now = new Date(); + if ( + !dir && + options.nested && + options.extensions.length > 0 && + !options.extensions.includes(ext) + ) { + return one(null, []) + } - const awaitWriteFinish = (prevStat) => { - fs__default['default'].stat(fullPath, (err, curStat) => { - if (err || !this._pendingWrites.has(path)) { - if (err && err.code !== 'ENOENT') awfEmit(err); - return; - } + file = toVFile(file); + file.cwd = options.cwd; - const now = Number(new Date()); + if (ignored) { + try { + file.fail('Cannot process specified file: it’s ignored'); + // C8 bug on Node@12 + /* c8 ignore next 1 */ + } catch {} + } - if (prevStat && curStat.size !== prevStat.size) { - this._pendingWrites.get(path).lastChange = now; + if (error && error.code === 'ENOENT') { + try { + file.fail( + error.syscall === 'stat' ? 'No such file or directory' : error + ); + // C8 bug on Node@12 + /* c8 ignore next 1 */ + } catch {} + } + + one(null, [file]); } - const pw = this._pendingWrites.get(path); - const df = now - pw.lastChange; + ); - if (df >= threshold) { - this._pendingWrites.delete(path); - awfEmit(undefined, curStat); - } else { - timeoutHandler = setTimeout( - awaitWriteFinish, - this.options.awaitWriteFinish.pollInterval, - curStat - ); + /** + * Error is never given. Always given `results`. + * + * @param {Error|null} _ + * @param {Array.} results + */ + function one(_, results) { + /* istanbul ignore else - Always given. */ + if (results) { + files = files.concat(results); } - }); - }; - if (!this._pendingWrites.has(path)) { - this._pendingWrites.set(path, { - lastChange: now, - cancelWait: () => { - this._pendingWrites.delete(path); - clearTimeout(timeoutHandler); - return event; + actual++; + + if (actual === expected) { + next(null, files); } - }); - timeoutHandler = setTimeout( - awaitWriteFinish, - this.options.awaitWriteFinish.pollInterval - ); + } } } -_getGlobIgnored() { - return [...this._ignoredPaths.values()]; -} - /** - * Determines whether user has asked to ignore this path. - * @param {Path} path filepath or dir - * @param {fs.Stats=} stats result of fs.stat - * @returns {Boolean} + * @param {VFile|string} file + * @param {Options & {extraIgnore: GitIgnore}} options + * @param {(error: NodeJS.ErrnoException|null, result?: SearchResults) => void} callback */ -_isIgnored(path, stats) { - if (this.options.atomic && DOT_RE.test(path)) return true; - if (!this._userIgnored) { - const {cwd} = this.options; - const ign = this.options.ignored; - - const ignored = ign && ign.map(normalizeIgnored(cwd)); - const paths = arrify$1(ignored) - .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) - .map((path) => path + SLASH_GLOBSTAR); - const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); - this._userIgnored = anymatch$1(list, undefined, ANYMATCH_OPTS); +function statAndIgnore(file, options, callback) { + const fp = path$c.resolve(options.cwd, filePath(file)); + const normal = path$c.relative(options.cwd, fp); + let expected = 1; + let actual = 0; + /** @type {Stats|undefined} */ + let stats; + /** @type {boolean|undefined} */ + let ignored; + + if (typeof file === 'string' || !file.value) { + expected++; + fs$a.stat(fp, (error, value) => { + stats = value; + onStartOrCheck(error); + }); } - return this._userIgnored([path, stats]); + options.ignore.check(fp, (error, value) => { + ignored = value; + onStartOrCheck(error); + }); + + /** + * @param {Error|null} error + */ + function onStartOrCheck(error) { + actual++; + + if (error) { + callback(error); + actual = -1; + } else if (actual === expected) { + callback(null, { + stats, + ignored: + ignored || + (normal === '' || + normal === '..' || + normal.charAt(0) === path$c.sep || + normal.slice(0, 3) === '..' + path$c.sep + ? false + : options.extraIgnore.ignores(normal)) + }); + } + } } -_isntIgnored(path, stat) { - return !this._isIgnored(path, stat); +/** + * @param {string|VFile} file + * @returns {string} + */ +function base$1(file) { + return typeof file === 'string' ? path$c.basename(file) : file.basename } /** - * Provides a set of common helpers and properties relating to symlink and glob handling. - * @param {Path} path file, directory, or glob pattern being watched - * @param {Number=} depth at any depth > 0, this isn't a glob - * @returns {WatchHelper} object containing helpers for this path + * @param {string|VFile} file + * @returns {string} */ -_getWatchHelpers(path, depth) { - const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); - const follow = this.options.followSymlinks; +function filePath(file) { + return typeof file === 'string' ? file : file.path +} - return new WatchHelper(path, watchPath, follow, this); +/** + * @param {Result} result + * @returns {boolean} + */ +function oneFileMode(result) { + return ( + result.output.length === 1 && + result.input.length === 1 && + result.output[0].path === result.input[0] + ) } -// Directory helpers -// ----------------- +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Settings} Settings + * @typedef {import('./index.js').Configuration} Configuration + */ /** - * Provides directory tracking objects - * @param {String} directory path of the directory - * @returns {DirEntry} the directory's tracking object + * @param {Context} context + * @param {Settings} settings + * @param {Callback} next */ -_getWatchedDir(directory) { - if (!this._boundRemove) this._boundRemove = this._remove.bind(this); - const dir = path__default['default'].resolve(directory); - if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); - return this._watched.get(dir); +function fileSystem$1(context, settings, next) { + if (context.files.length === 0) { + next(); + } else { + finder( + context.files, + { + cwd: settings.cwd, + extensions: settings.extensions, + silentlyIgnore: settings.silentlyIgnore, + ignorePatterns: settings.ignorePatterns, + ignore: new Ignore({ + cwd: settings.cwd, + detectIgnore: settings.detectIgnore, + ignoreName: settings.ignoreName, + ignorePath: settings.ignorePath, + ignorePathResolveFrom: settings.ignorePathResolveFrom + }) + }, + (error, result) => { + // Glob errors typically don’t occur. + /* c8 ignore next 4 */ + if (!result) { + next(error); + return + } + + const output = result.files; + + // Sort alphabetically. + // Everything is unique so we do not care about cases where left and right + // are equal. + output.sort(sortAlphabetically); + + // Mark as given. + // This allows outputting files, which can be pretty dangerous, so it’s + // “hidden”. + let index = -1; + while (++index < output.length) { + output[index].data.unifiedEngineGiven = true; + } + + context.files = output; + + // If `out` was not set, detect it based on whether one file was given. + if (settings.out === null || settings.out === undefined) { + settings.out = result.oneFileMode; + } + + next(error); + } + ); + } + + /** + * @param {VFile} left + * @param {VFile} right + * @returns {number} + */ + function sortAlphabetically(left, right) { + return left.path < right.path ? -1 : 1 + } } -// File helpers -// ------------ +/* eslint-disable node/no-deprecated-api */ -/** - * Check for read permissions. - * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 - * @param {fs.Stats} stats - object, result of fs_stat - * @returns {Boolean} indicates whether the file can be read -*/ -_hasReadPermissions(stats) { - if (this.options.ignorePermissionErrors) return true; +var toString$2 = Object.prototype.toString; - // stats.mode may be bigint - const md = stats && Number.parseInt(stats.mode, 10); - const st = md & 0o777; - const it = Number.parseInt(st.toString(8)[0], 10); - return Boolean(4 & it); +var isModern = ( + typeof Buffer !== 'undefined' && + typeof Buffer.alloc === 'function' && + typeof Buffer.allocUnsafe === 'function' && + typeof Buffer.from === 'function' +); + +function isArrayBuffer (input) { + return toString$2.call(input).slice(8, -1) === 'ArrayBuffer' } -/** - * Handles emitting unlink events for - * files and directories, and via recursion, for - * files and directories within directories that are unlinked - * @param {String} directory within which the following item is located - * @param {String} item base path of item/directory - * @returns {void} -*/ -_remove(directory, item, isDirectory) { - // if what is being deleted is a directory, get that directory's paths - // for recursive deleting and cleaning of watched object - // if it is not a directory, nestedDirectoryChildren will be empty array - const path = path__default['default'].join(directory, item); - const fullPath = path__default['default'].resolve(path); - isDirectory = isDirectory != null - ? isDirectory - : this._watched.has(path) || this._watched.has(fullPath); +function fromArrayBuffer (obj, byteOffset, length) { + byteOffset >>>= 0; - // prevent duplicate handling in case of arriving here nearly simultaneously - // via multiple paths (such as _handleFile and _handleDir) - if (!this._throttle('remove', path, 100)) return; + var maxLength = obj.byteLength - byteOffset; - // if the only watched file is removed, watch for its return - if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { - this.add(directory, item, true); + if (maxLength < 0) { + throw new RangeError("'offset' is out of bounds") } - // This will create a new entry in the watched object in either case - // so we got to do the directory check beforehand - const wp = this._getWatchedDir(path); - const nestedDirectoryChildren = wp.getChildren(); + if (length === undefined) { + length = maxLength; + } else { + length >>>= 0; - // Recursively remove children directories / files. - nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); + if (length > maxLength) { + throw new RangeError("'length' is out of bounds") + } + } - // Check if item was on the watched list and remove it - const parent = this._getWatchedDir(directory); - const wasTracked = parent.has(item); - parent.remove(item); + return isModern + ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) + : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))) +} - // Fixes issue #1042 -> Relative paths were detected and added as symlinks - // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), - // but never removed from the map in case the path was deleted. - // This leads to an incorrect state if the path was recreated: - // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 - if (this._symlinkPaths.has(fullPath)) { - this._symlinkPaths.delete(fullPath); +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8'; } - // If we wait for this file to be fully written, cancel the wait. - let relPath = path; - if (this.options.cwd) relPath = path__default['default'].relative(this.options.cwd, path); - if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { - const event = this._pendingWrites.get(relPath).cancelWait(); - if (event === EV_ADD$2) return; + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') } - // The Entry will either be a directory that just got removed - // or a bogus entry to a file, in either case we have to remove it - this._watched.delete(path); - this._watched.delete(fullPath); - const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK$1; - if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); - - // Avoid conflicts if we later create another file with the same name - if (!this.options.useFsEvents) { - this._closePath(path); - } + return isModern + ? Buffer.from(string, encoding) + : new Buffer(string, encoding) } -/** - * Closes all watchers for a path - * @param {Path} path - */ -_closePath(path) { - this._closeFile(path); - const dir = path__default['default'].dirname(path); - this._getWatchedDir(dir).remove(path__default['default'].basename(path)); -} +function bufferFrom$1 (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } -/** - * Closes only file-specific watchers - * @param {Path} path - */ -_closeFile(path) { - const closers = this._closers.get(path); - if (!closers) return; - closers.forEach(closer => closer()); - this._closers.delete(path); -} + if (isArrayBuffer(value)) { + return fromArrayBuffer(value, encodingOrOffset, length) + } -/** - * - * @param {Path} path - * @param {Function} closer - */ -_addPathCloser(path, closer) { - if (!closer) return; - let list = this._closers.get(path); - if (!list) { - list = []; - this._closers.set(path, list); + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) } - list.push(closer); -} -_readdirp(root, opts) { - if (this.closed) return; - const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; - let stream = readdirp_1(root, options); - this._streams.add(stream); - stream.once(STR_CLOSE, () => { - stream = undefined; - }); - stream.once(STR_END$2, () => { - if (stream) { - this._streams.delete(stream); - stream = undefined; - } - }); - return stream; + return isModern + ? Buffer.from(value) + : new Buffer(value) } -} +var bufferFrom_1 = bufferFrom$1; -// Export FSWatcher class -var FSWatcher_1 = FSWatcher; +var typedarray = {}; -/** - * Instantiates watcher with paths to be tracked. - * @param {String|Array} paths file/directory paths and/or globs - * @param {Object=} options chokidar opts - * @returns an instance of FSWatcher for chaining. - */ -const watch = (paths, options) => { - const watcher = new FSWatcher(options); - watcher.add(paths); - return watcher; -}; +(function (exports) { +var undefined$1 = (void 0); // Paranoia -var watch_1 = watch; +// Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to +// create, and consume so much memory, that the browser appears frozen. +var MAX_ARRAY_LENGTH = 1e5; -var chokidar = { - FSWatcher: FSWatcher_1, - watch: watch_1 -}; +// Approximations of internal ECMAScript conversion functions +var ECMAScript = (function() { + // Stash a copy in case other scripts modify these + var opts = Object.prototype.toString, + ophop = Object.prototype.hasOwnProperty; -var textTable = function (rows_, opts) { - if (!opts) opts = {}; - var hsep = opts.hsep === undefined ? ' ' : opts.hsep; - var align = opts.align || []; - var stringLength = opts.stringLength - || function (s) { return String(s).length; } - ; - - var dotsizes = reduce(rows_, function (acc, row) { - forEach(row, function (c, ix) { - var n = dotindex(c); - if (!acc[ix] || n > acc[ix]) acc[ix] = n; - }); - return acc; - }, []); - - var rows = map$1(rows_, function (row) { - return map$1(row, function (c_, ix) { - var c = String(c_); - if (align[ix] === '.') { - var index = dotindex(c); - var size = dotsizes[ix] + (/\./.test(c) ? 1 : 2) - - (stringLength(c) - index) - ; - return c + Array(size).join(' '); - } - else return c; - }); - }); - - var sizes = reduce(rows, function (acc, row) { - forEach(row, function (c, ix) { - var n = stringLength(c); - if (!acc[ix] || n > acc[ix]) acc[ix] = n; - }); - return acc; - }, []); - - return map$1(rows, function (row) { - return map$1(row, function (c, ix) { - var n = (sizes[ix] - stringLength(c)) || 0; - var s = Array(Math.max(n + 1, 1)).join(' '); - if (align[ix] === 'r' || align[ix] === '.') { - return s + c; - } - if (align[ix] === 'c') { - return Array(Math.ceil(n / 2 + 1)).join(' ') - + c + Array(Math.floor(n / 2 + 1)).join(' ') - ; - } - - return c + s; - }).join(hsep).replace(/\s+$/, ''); - }).join('\n'); -}; + return { + // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues: + Class: function(v) { return opts.call(v).replace(/^\[object *|\]$/g, ''); }, + HasProperty: function(o, p) { return p in o; }, + HasOwnProperty: function(o, p) { return ophop.call(o, p); }, + IsCallable: function(o) { return typeof o === 'function'; }, + ToInt32: function(v) { return v >> 0; }, + ToUint32: function(v) { return v >>> 0; } + }; +}()); -function dotindex (c) { - var m = /\.[^.]*$/.exec(c); - return m ? m.index + 1 : c.length; -} +// Snapshot intrinsics +var LN2 = Math.LN2, + abs = Math.abs, + floor = Math.floor, + log = Math.log, + min = Math.min, + pow = Math.pow, + round = Math.round; -function reduce (xs, f, init) { - if (xs.reduce) return xs.reduce(f, init); - var i = 0; - var acc = arguments.length >= 3 ? init : xs[i++]; - for (; i < xs.length; i++) { - f(acc, xs[i], i); +// ES5: lock down object properties +function configureProperties(obj) { + if (getOwnPropNames && defineProp) { + var props = getOwnPropNames(obj), i; + for (i = 0; i < props.length; i += 1) { + defineProp(obj, props[i], { + value: obj[props[i]], + writable: false, + enumerable: false, + configurable: false + }); } - return acc; + } } -function forEach (xs, f) { - if (xs.forEach) return xs.forEach(f); - for (var i = 0; i < xs.length; i++) { - f.call(xs, xs[i], i); - } +// emulate ES5 getter/setter API using legacy APIs +// http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx +// (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but +// note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless) +var defineProp; +if (Object.defineProperty && (function() { + try { + Object.defineProperty({}, 'x', {}); + return true; + } catch (e) { + return false; + } + })()) { + defineProp = Object.defineProperty; +} else { + defineProp = function(o, p, desc) { + if (!o === Object(o)) throw new TypeError("Object.defineProperty called on non-object"); + if (ECMAScript.HasProperty(desc, 'get') && Object.prototype.__defineGetter__) { Object.prototype.__defineGetter__.call(o, p, desc.get); } + if (ECMAScript.HasProperty(desc, 'set') && Object.prototype.__defineSetter__) { Object.prototype.__defineSetter__.call(o, p, desc.set); } + if (ECMAScript.HasProperty(desc, 'value')) { o[p] = desc.value; } + return o; + }; } -function map$1 (xs, f) { - if (xs.map) return xs.map(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - res.push(f.call(xs, xs[i], i)); +var getOwnPropNames = Object.getOwnPropertyNames || function (o) { + if (o !== Object(o)) throw new TypeError("Object.getOwnPropertyNames called on non-object"); + var props = [], p; + for (p in o) { + if (ECMAScript.HasOwnProperty(o, p)) { + props.push(p); } - return res; + } + return props; +}; + +// ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value) +// for index in 0 ... obj.length +function makeArrayAccessors(obj) { + if (!defineProp) { return; } + + if (obj.length > MAX_ARRAY_LENGTH) throw new RangeError("Array too large for polyfill"); + + function makeArrayAccessor(index) { + defineProp(obj, index, { + 'get': function() { return obj._getter(index); }, + 'set': function(v) { obj._setter(index, v); }, + enumerable: true, + configurable: false + }); + } + + var i; + for (i = 0; i < obj.length; i += 1) { + makeArrayAccessor(i); + } } -const preserveCamelCase = string => { - let isLastCharLower = false; - let isLastCharUpper = false; - let isLastLastCharUpper = false; +// Internal conversion functions: +// pack() - take a number (interpreted as Type), output a byte array +// unpack() - take a byte array, output a Type-like number - for (let i = 0; i < string.length; i++) { - const character = string[i]; +function as_signed(value, bits) { var s = 32 - bits; return (value << s) >> s; } +function as_unsigned(value, bits) { var s = 32 - bits; return (value << s) >>> s; } - if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) { - string = string.slice(0, i) + '-' + string.slice(i); - isLastCharLower = false; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = true; - i++; - } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) { - string = string.slice(0, i - 1) + '-' + string.slice(i - 1); - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = false; - isLastCharLower = true; - } else { - isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character; - } - } +function packI8(n) { return [n & 0xff]; } +function unpackI8(bytes) { return as_signed(bytes[0], 8); } - return string; -}; +function packU8(n) { return [n & 0xff]; } +function unpackU8(bytes) { return as_unsigned(bytes[0], 8); } -const camelCase = (input, options) => { - if (!(typeof input === 'string' || Array.isArray(input))) { - throw new TypeError('Expected the input to be `string | string[]`'); - } +function packU8Clamped(n) { n = round(Number(n)); return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff]; } - options = Object.assign({ - pascalCase: false - }, options); +function packI16(n) { return [(n >> 8) & 0xff, n & 0xff]; } +function unpackI16(bytes) { return as_signed(bytes[0] << 8 | bytes[1], 16); } - const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x; +function packU16(n) { return [(n >> 8) & 0xff, n & 0xff]; } +function unpackU16(bytes) { return as_unsigned(bytes[0] << 8 | bytes[1], 16); } - if (Array.isArray(input)) { - input = input.map(x => x.trim()) - .filter(x => x.length) - .join('-'); - } else { - input = input.trim(); - } +function packI32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } +function unpackI32(bytes) { return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } - if (input.length === 0) { - return ''; - } +function packU32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } +function unpackU32(bytes) { return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } - if (input.length === 1) { - return options.pascalCase ? input.toUpperCase() : input.toLowerCase(); - } +function packIEEE754(v, ebits, fbits) { - const hasUpperCase = input !== input.toLowerCase(); + var bias = (1 << (ebits - 1)) - 1, + s, e, f, i, bits, str, bytes; - if (hasUpperCase) { - input = preserveCamelCase(input); - } + function roundToEven(n) { + var w = floor(n), f = n - w; + if (f < 0.5) + return w; + if (f > 0.5) + return w + 1; + return w % 2 ? w + 1 : w; + } - input = input - .replace(/^[_.\- ]+/, '') - .toLowerCase() - .replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase()) - .replace(/\d+(\w|$)/g, m => m.toUpperCase()); + // Compute sign, exponent, fraction + if (v !== v) { + // NaN + // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping + e = (1 << ebits) - 1; f = pow(2, fbits - 1); s = 0; + } else if (v === Infinity || v === -Infinity) { + e = (1 << ebits) - 1; f = 0; s = (v < 0) ? 1 : 0; + } else if (v === 0) { + e = 0; f = 0; s = (1 / v === -Infinity) ? 1 : 0; + } else { + s = v < 0; + v = abs(v); - return postProcess(input); -}; + if (v >= pow(2, 1 - bias)) { + e = min(floor(log(v) / LN2), 1023); + f = roundToEven(v / pow(2, e) * pow(2, fbits)); + if (f / pow(2, fbits) >= 2) { + e = e + 1; + f = 1; + } + if (e > bias) { + // Overflow + e = (1 << ebits) - 1; + f = 0; + } else { + // Normalized + e = e + bias; + f = f - pow(2, fbits); + } + } else { + // Denormalized + e = 0; + f = roundToEven(v / pow(2, 1 - bias - fbits)); + } + } -var camelcase = camelCase; -// TODO: Remove this for the next major release -var _default$7 = camelCase; -camelcase.default = _default$7; + // Pack sign, exponent, fraction + bits = []; + for (i = fbits; i; i -= 1) { bits.push(f % 2 ? 1 : 0); f = floor(f / 2); } + for (i = ebits; i; i -= 1) { bits.push(e % 2 ? 1 : 0); e = floor(e / 2); } + bits.push(s ? 1 : 0); + bits.reverse(); + str = bits.join(''); -var minimist = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {}, unknownFn: null }; + // Bits to bytes + bytes = []; + while (str.length) { + bytes.push(parseInt(str.substring(0, 8), 2)); + str = str.substring(8); + } + return bytes; +} - if (typeof opts['unknown'] === 'function') { - flags.unknownFn = opts['unknown']; +function unpackIEEE754(bytes, ebits, fbits) { + + // Bytes to bits + var bits = [], i, j, b, str, + bias, s, e, f; + + for (i = bytes.length; i; i -= 1) { + b = bytes[i - 1]; + for (j = 8; j; j -= 1) { + bits.push(b % 2 ? 1 : 0); b = b >> 1; } + } + bits.reverse(); + str = bits.join(''); - if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { - flags.allBools = true; - } else { - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); + // Unpack sign, exponent, fraction + bias = (1 << (ebits - 1)) - 1; + s = parseInt(str.substring(0, 1), 2) ? -1 : 1; + e = parseInt(str.substring(1, 1 + ebits), 2); + f = parseInt(str.substring(1 + ebits), 2); + + // Produce number + if (e === (1 << ebits) - 1) { + return f !== 0 ? NaN : s * Infinity; + } else if (e > 0) { + // Normalized + return s * pow(2, e - bias) * (1 + f / pow(2, fbits)); + } else if (f !== 0) { + // Denormalized + return s * pow(2, -(bias - 1)) * (f / pow(2, fbits)); + } else { + return s < 0 ? -0 : 0; + } +} + +function unpackF64(b) { return unpackIEEE754(b, 11, 52); } +function packF64(v) { return packIEEE754(v, 11, 52); } +function unpackF32(b) { return unpackIEEE754(b, 8, 23); } +function packF32(v) { return packIEEE754(v, 8, 23); } + + +// +// 3 The ArrayBuffer Type +// + +(function() { + + /** @constructor */ + var ArrayBuffer = function ArrayBuffer(length) { + length = ECMAScript.ToInt32(length); + if (length < 0) throw new RangeError('ArrayBuffer size is not a small enough positive integer'); + + this.byteLength = length; + this._bytes = []; + this._bytes.length = length; + + var i; + for (i = 0; i < this.byteLength; i += 1) { + this._bytes[i] = 0; } - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - if (aliases[key]) { - flags.strings[aliases[key]] = true; - } - }); + configureProperties(this); + }; - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; + exports.ArrayBuffer = exports.ArrayBuffer || ArrayBuffer; + + // + // 4 The ArrayBufferView Type + // + + // NOTE: this constructor is not exported + /** @constructor */ + var ArrayBufferView = function ArrayBufferView() { + //this.buffer = null; + //this.byteOffset = 0; + //this.byteLength = 0; + }; + + // + // 5 The Typed Array View Types + // + + function makeConstructor(bytesPerElement, pack, unpack) { + // Each TypedArray type requires a distinct constructor instance with + // identical logic, which this produces. + + var ctor; + ctor = function(buffer, byteOffset, length) { + var array, sequence, i, s; - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } + if (!arguments.length || typeof arguments[0] === 'number') { + // Constructor(unsigned long length) + this.length = ECMAScript.ToInt32(arguments[0]); + if (length < 0) throw new RangeError('ArrayBufferView size is not a small enough positive integer'); - function argDefined(key, arg) { - return (flags.allBools && /^--[^=]+$/.test(arg)) || - flags.strings[key] || flags.bools[key] || aliases[key]; - } + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer(this.byteLength); + this.byteOffset = 0; + } else if (typeof arguments[0] === 'object' && arguments[0].constructor === ctor) { + // Constructor(TypedArray array) + array = arguments[0]; - function setArg (key, val, arg) { - if (arg && flags.unknownFn && !argDefined(key, arg)) { - if (flags.unknownFn(arg) === false) return; + this.length = array.length; + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer(this.byteLength); + this.byteOffset = 0; + + for (i = 0; i < this.length; i += 1) { + this._setter(i, array._getter(i)); } + } else if (typeof arguments[0] === 'object' && + !(arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { + // Constructor(sequence array) + sequence = arguments[0]; - var value = !flags.strings[key] && isNumber$2(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } + this.length = ECMAScript.ToUint32(sequence.length); + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer(this.byteLength); + this.byteOffset = 0; - function setKey (obj, keys, value) { - var o = obj; - for (var i = 0; i < keys.length-1; i++) { - var key = keys[i]; - if (key === '__proto__') return; - if (o[key] === undefined) o[key] = {}; - if (o[key] === Object.prototype || o[key] === Number.prototype - || o[key] === String.prototype) o[key] = {}; - if (o[key] === Array.prototype) o[key] = []; - o = o[key]; + for (i = 0; i < this.length; i += 1) { + s = sequence[i]; + this._setter(i, Number(s)); } + } else if (typeof arguments[0] === 'object' && + (arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { + // Constructor(ArrayBuffer buffer, + // optional unsigned long byteOffset, optional unsigned long length) + this.buffer = buffer; - var key = keys[keys.length - 1]; - if (key === '__proto__') return; - if (o === Object.prototype || o === Number.prototype - || o === String.prototype) o = {}; - if (o === Array.prototype) o = []; - if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; + this.byteOffset = ECMAScript.ToUint32(byteOffset); + if (this.byteOffset > this.buffer.byteLength) { + throw new RangeError("byteOffset out of range"); } - } - - function aliasIsBoolean(key) { - return aliases[key].some(function (x) { - return flags.bools[x]; - }); - } - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - var key = m[1]; - var value = m[2]; - if (flags.bools[key]) { - value = value !== 'false'; - } - setArg(key, value, arg); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false, arg); - } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && !flags.allBools - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, next, arg); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next, arg); - continue; - } - - if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { - setArg(letters[j], next.split('=')[1], arg); - broken = true; - break; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next, arg); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2), arg); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); - } - } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, args[i+1], arg); - i++; - } - else if (args[i+1] && /^(true|false)$/.test(args[i+1])) { - setArg(key, args[i+1] === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } + if (this.byteOffset % this.BYTES_PER_ELEMENT) { + // The given byteOffset must be a multiple of the element + // size of the specific type, otherwise an exception is raised. + throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size."); } - else { - if (!flags.unknownFn || flags.unknownFn(arg) !== false) { - argv._.push( - flags.strings['_'] || !isNumber$2(arg) ? arg : Number(arg) - ); - } - if (opts.stopEarly) { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } + + if (arguments.length < 3) { + this.byteLength = this.buffer.byteLength - this.byteOffset; + + if (this.byteLength % this.BYTES_PER_ELEMENT) { + throw new RangeError("length of buffer minus byteOffset not a multiple of the element size"); + } + this.length = this.byteLength / this.BYTES_PER_ELEMENT; + } else { + this.length = ECMAScript.ToUint32(length); + this.byteLength = this.length * this.BYTES_PER_ELEMENT; } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); + + if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { + throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); } - }); - - if (opts['--']) { - argv['--'] = new Array(); - notFlags.forEach(function(key) { - argv['--'].push(key); - }); - } - else { - notFlags.forEach(function(key) { - argv._.push(key); - }); - } + } else { + throw new TypeError("Unexpected argument type(s)"); + } - return argv; -}; + this.constructor = ctor; -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); + configureProperties(this); + makeArrayAccessors(this); + }; - var key = keys[keys.length - 1]; - return key in o; -} + ctor.prototype = new ArrayBufferView(); + ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement; + ctor.prototype._pack = pack; + ctor.prototype._unpack = unpack; + ctor.BYTES_PER_ELEMENT = bytesPerElement; -function isNumber$2 (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); -} + // getter type (unsigned long index); + ctor.prototype._getter = function(index) { + if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); -// This is a generated file. Do not edit. -var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; -var ID_Start = /[\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u0D05-\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\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-\u1884\u1887-\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\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\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\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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\uDD00-\uDD43]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; -var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\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\u09FC\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-\u0AFF\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\u0C80-\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\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\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\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; + index = ECMAScript.ToUint32(index); + if (index >= this.length) { + return undefined$1; + } -var unicode = { - Space_Separator: Space_Separator, - ID_Start: ID_Start, - ID_Continue: ID_Continue -}; + var bytes = [], i, o; + for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; + i < this.BYTES_PER_ELEMENT; + i += 1, o += 1) { + bytes.push(this.buffer._bytes[o]); + } + return this._unpack(bytes); + }; -var util$1 = { - isSpaceSeparator (c) { - return typeof c === 'string' && unicode.Space_Separator.test(c) - }, + // NONSTANDARD: convenience alias for getter: type get(unsigned long index); + ctor.prototype.get = ctor.prototype._getter; - isIdStartChar (c) { - return typeof c === 'string' && ( - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (c === '$') || (c === '_') || - unicode.ID_Start.test(c) - ) - }, + // setter void (unsigned long index, type value); + ctor.prototype._setter = function(index, value) { + if (arguments.length < 2) throw new SyntaxError("Not enough arguments"); - isIdContinueChar (c) { - return typeof c === 'string' && ( - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (c >= '0' && c <= '9') || - (c === '$') || (c === '_') || - (c === '\u200C') || (c === '\u200D') || - unicode.ID_Continue.test(c) - ) - }, + index = ECMAScript.ToUint32(index); + if (index >= this.length) { + return undefined$1; + } - isDigit (c) { - return typeof c === 'string' && /[0-9]/.test(c) - }, + var bytes = this._pack(value), i, o; + for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; + i < this.BYTES_PER_ELEMENT; + i += 1, o += 1) { + this.buffer._bytes[o] = bytes[i]; + } + }; - isHexDigit (c) { - return typeof c === 'string' && /[0-9A-Fa-f]/.test(c) - }, -}; + // void set(TypedArray array, optional unsigned long offset); + // void set(sequence array, optional unsigned long offset); + ctor.prototype.set = function(index, value) { + if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); + var array, sequence, offset, len, + i, s, d, + byteOffset, byteLength, tmp; -let source$1; -let parseState; -let stack; -let pos; -let line; -let column; -let token; -let key; -let root; + if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) { + // void set(TypedArray array, optional unsigned long offset); + array = arguments[0]; + offset = ECMAScript.ToUint32(arguments[1]); -var parse$6 = function parse (text, reviver) { - source$1 = String(text); - parseState = 'start'; - stack = []; - pos = 0; - line = 1; - column = 0; - token = undefined; - key = undefined; - root = undefined; + if (offset + array.length > this.length) { + throw new RangeError("Offset plus length of array is out of range"); + } - do { - token = lex(); + byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT; + byteLength = array.length * this.BYTES_PER_ELEMENT; - // This code is unreachable. - // if (!parseStates[parseState]) { - // throw invalidParseState() - // } + if (array.buffer === this.buffer) { + tmp = []; + for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) { + tmp[i] = array.buffer._bytes[s]; + } + for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) { + this.buffer._bytes[d] = tmp[i]; + } + } else { + for (i = 0, s = array.byteOffset, d = byteOffset; + i < byteLength; i += 1, s += 1, d += 1) { + this.buffer._bytes[d] = array.buffer._bytes[s]; + } + } + } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') { + // void set(sequence array, optional unsigned long offset); + sequence = arguments[0]; + len = ECMAScript.ToUint32(sequence.length); + offset = ECMAScript.ToUint32(arguments[1]); - parseStates[parseState](); - } while (token.type !== 'eof') + if (offset + len > this.length) { + throw new RangeError("Offset plus length of array is out of range"); + } - if (typeof reviver === 'function') { - return internalize({'': root}, '', reviver) - } + for (i = 0; i < len; i += 1) { + s = sequence[i]; + this._setter(offset + i, Number(s)); + } + } else { + throw new TypeError("Unexpected argument type(s)"); + } + }; - return root -}; + // TypedArray subarray(long begin, optional long end); + ctor.prototype.subarray = function(start, end) { + function clamp(v, min, max) { return v < min ? min : v > max ? max : v; } -function internalize (holder, name, reviver) { - const value = holder[name]; - if (value != null && typeof value === 'object') { - for (const key in value) { - const replacement = internalize(value, key, reviver); - if (replacement === undefined) { - delete value[key]; - } else { - value[key] = replacement; - } - } - } + start = ECMAScript.ToInt32(start); + end = ECMAScript.ToInt32(end); - return reviver.call(holder, name, value) -} + if (arguments.length < 1) { start = 0; } + if (arguments.length < 2) { end = this.length; } -let lexState; -let buffer; -let doubleQuote; -let sign; -let c; + if (start < 0) { start = this.length + start; } + if (end < 0) { end = this.length + end; } -function lex () { - lexState = 'default'; - buffer = ''; - doubleQuote = false; - sign = 1; + start = clamp(start, 0, this.length); + end = clamp(end, 0, this.length); - for (;;) { - c = peek(); + var len = end - start; + if (len < 0) { + len = 0; + } - // This code is unreachable. - // if (!lexStates[lexState]) { - // throw invalidLexState(lexState) - // } + return new this.constructor( + this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len); + }; - const token = lexStates[lexState](); - if (token) { - return token - } - } -} + return ctor; + } -function peek () { - if (source$1[pos]) { - return String.fromCodePoint(source$1.codePointAt(pos)) + var Int8Array = makeConstructor(1, packI8, unpackI8); + var Uint8Array = makeConstructor(1, packU8, unpackU8); + var Uint8ClampedArray = makeConstructor(1, packU8Clamped, unpackU8); + var Int16Array = makeConstructor(2, packI16, unpackI16); + var Uint16Array = makeConstructor(2, packU16, unpackU16); + var Int32Array = makeConstructor(4, packI32, unpackI32); + var Uint32Array = makeConstructor(4, packU32, unpackU32); + var Float32Array = makeConstructor(4, packF32, unpackF32); + var Float64Array = makeConstructor(8, packF64, unpackF64); + + exports.Int8Array = exports.Int8Array || Int8Array; + exports.Uint8Array = exports.Uint8Array || Uint8Array; + exports.Uint8ClampedArray = exports.Uint8ClampedArray || Uint8ClampedArray; + exports.Int16Array = exports.Int16Array || Int16Array; + exports.Uint16Array = exports.Uint16Array || Uint16Array; + exports.Int32Array = exports.Int32Array || Int32Array; + exports.Uint32Array = exports.Uint32Array || Uint32Array; + exports.Float32Array = exports.Float32Array || Float32Array; + exports.Float64Array = exports.Float64Array || Float64Array; +}()); + +// +// 6 The DataView View Type +// + +(function() { + function r(array, index) { + return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index]; + } + + var IS_BIG_ENDIAN = (function() { + var u16array = new(exports.Uint16Array)([0x1234]), + u8array = new(exports.Uint8Array)(u16array.buffer); + return r(u8array, 0) === 0x12; + }()); + + // Constructor(ArrayBuffer buffer, + // optional unsigned long byteOffset, + // optional unsigned long byteLength) + /** @constructor */ + var DataView = function DataView(buffer, byteOffset, byteLength) { + if (arguments.length === 0) { + buffer = new exports.ArrayBuffer(0); + } else if (!(buffer instanceof exports.ArrayBuffer || ECMAScript.Class(buffer) === 'ArrayBuffer')) { + throw new TypeError("TypeError"); } -} -function read$5 () { - const c = peek(); + this.buffer = buffer || new exports.ArrayBuffer(0); - if (c === '\n') { - line++; - column = 0; - } else if (c) { - column += c.length; + this.byteOffset = ECMAScript.ToUint32(byteOffset); + if (this.byteOffset > this.buffer.byteLength) { + throw new RangeError("byteOffset out of range"); + } + + if (arguments.length < 3) { + this.byteLength = this.buffer.byteLength - this.byteOffset; } else { - column++; + this.byteLength = ECMAScript.ToUint32(byteLength); } - if (c) { - pos += c.length; + if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { + throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); } - return c -} + configureProperties(this); + }; -const lexStates = { - default () { - switch (c) { - case '\t': - case '\v': - case '\f': - case ' ': - case '\u00A0': - case '\uFEFF': - case '\n': - case '\r': - case '\u2028': - case '\u2029': - read$5(); - return + function makeGetter(arrayType) { + return function(byteOffset, littleEndian) { - case '/': - read$5(); - lexState = 'comment'; - return + byteOffset = ECMAScript.ToUint32(byteOffset); - case undefined: - read$5(); - return newToken('eof') - } + if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { + throw new RangeError("Array index out of range"); + } + byteOffset += this.byteOffset; - if (util$1.isSpaceSeparator(c)) { - read$5(); - return - } + var uint8Array = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT), + bytes = [], i; + for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { + bytes.push(r(uint8Array, i)); + } - // This code is unreachable. - // if (!lexStates[parseState]) { - // throw invalidLexState(parseState) - // } + if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { + bytes.reverse(); + } - return lexStates[parseState]() - }, + return r(new arrayType(new exports.Uint8Array(bytes).buffer), 0); + }; + } - comment () { - switch (c) { - case '*': - read$5(); - lexState = 'multiLineComment'; - return + DataView.prototype.getUint8 = makeGetter(exports.Uint8Array); + DataView.prototype.getInt8 = makeGetter(exports.Int8Array); + DataView.prototype.getUint16 = makeGetter(exports.Uint16Array); + DataView.prototype.getInt16 = makeGetter(exports.Int16Array); + DataView.prototype.getUint32 = makeGetter(exports.Uint32Array); + DataView.prototype.getInt32 = makeGetter(exports.Int32Array); + DataView.prototype.getFloat32 = makeGetter(exports.Float32Array); + DataView.prototype.getFloat64 = makeGetter(exports.Float64Array); - case '/': - read$5(); - lexState = 'singleLineComment'; - return - } + function makeSetter(arrayType) { + return function(byteOffset, value, littleEndian) { - throw invalidChar(read$5()) - }, + byteOffset = ECMAScript.ToUint32(byteOffset); + if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { + throw new RangeError("Array index out of range"); + } - multiLineComment () { - switch (c) { - case '*': - read$5(); - lexState = 'multiLineCommentAsterisk'; - return + // Get bytes + var typeArray = new arrayType([value]), + byteArray = new exports.Uint8Array(typeArray.buffer), + bytes = [], i, byteView; - case undefined: - throw invalidChar(read$5()) - } + for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { + bytes.push(r(byteArray, i)); + } - read$5(); - }, + // Flip if necessary + if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { + bytes.reverse(); + } - multiLineCommentAsterisk () { - switch (c) { - case '*': - read$5(); - return + // Write them + byteView = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT); + byteView.set(bytes); + }; + } - case '/': - read$5(); - lexState = 'default'; - return + DataView.prototype.setUint8 = makeSetter(exports.Uint8Array); + DataView.prototype.setInt8 = makeSetter(exports.Int8Array); + DataView.prototype.setUint16 = makeSetter(exports.Uint16Array); + DataView.prototype.setInt16 = makeSetter(exports.Int16Array); + DataView.prototype.setUint32 = makeSetter(exports.Uint32Array); + DataView.prototype.setInt32 = makeSetter(exports.Int32Array); + DataView.prototype.setFloat32 = makeSetter(exports.Float32Array); + DataView.prototype.setFloat64 = makeSetter(exports.Float64Array); - case undefined: - throw invalidChar(read$5()) - } + exports.DataView = exports.DataView || DataView; - read$5(); - lexState = 'multiLineComment'; - }, +}()); +}(typedarray)); - singleLineComment () { - switch (c) { - case '\n': - case '\r': - case '\u2028': - case '\u2029': - read$5(); - lexState = 'default'; - return +var Writable = require$$1.Writable; +var inherits = inherits$2.exports; +var bufferFrom = bufferFrom_1; - case undefined: - read$5(); - return newToken('eof') - } +if (typeof Uint8Array === 'undefined') { + var U8 = typedarray.Uint8Array; +} else { + var U8 = Uint8Array; +} - read$5(); - }, +function ConcatStream(opts, cb) { + if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb) - value () { - switch (c) { - case '{': - case '[': - return newToken('punctuator', read$5()) + if (typeof opts === 'function') { + cb = opts; + opts = {}; + } + if (!opts) opts = {}; - case 'n': - read$5(); - literal('ull'); - return newToken('null', null) + var encoding = opts.encoding; + var shouldInferEncoding = false; - case 't': - read$5(); - literal('rue'); - return newToken('boolean', true) + if (!encoding) { + shouldInferEncoding = true; + } else { + encoding = String(encoding).toLowerCase(); + if (encoding === 'u8' || encoding === 'uint8') { + encoding = 'uint8array'; + } + } - case 'f': - read$5(); - literal('alse'); - return newToken('boolean', false) + Writable.call(this, { objectMode: true }); - case '-': - case '+': - if (read$5() === '-') { - sign = -1; - } + this.encoding = encoding; + this.shouldInferEncoding = shouldInferEncoding; - lexState = 'sign'; - return + if (cb) this.on('finish', function () { cb(this.getBody()); }); + this.body = []; +} - case '.': - buffer = read$5(); - lexState = 'decimalPointLeading'; - return +var concatStream = ConcatStream; +inherits(ConcatStream, Writable); - case '0': - buffer = read$5(); - lexState = 'zero'; - return +ConcatStream.prototype._write = function(chunk, enc, next) { + this.body.push(chunk); + next(); +}; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - buffer = read$5(); - lexState = 'decimalInteger'; - return +ConcatStream.prototype.inferEncoding = function (buff) { + var firstBuffer = buff === undefined ? this.body[0] : buff; + if (Buffer.isBuffer(firstBuffer)) return 'buffer' + if (typeof Uint8Array !== 'undefined' && firstBuffer instanceof Uint8Array) return 'uint8array' + if (Array.isArray(firstBuffer)) return 'array' + if (typeof firstBuffer === 'string') return 'string' + if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return 'object' + return 'buffer' +}; - case 'I': - read$5(); - literal('nfinity'); - return newToken('numeric', Infinity) +ConcatStream.prototype.getBody = function () { + if (!this.encoding && this.body.length === 0) return [] + if (this.shouldInferEncoding) this.encoding = this.inferEncoding(); + if (this.encoding === 'array') return arrayConcat(this.body) + if (this.encoding === 'string') return stringConcat(this.body) + if (this.encoding === 'buffer') return bufferConcat(this.body) + if (this.encoding === 'uint8array') return u8Concat(this.body) + return this.body +}; - case 'N': - read$5(); - literal('aN'); - return newToken('numeric', NaN) +function isArrayish (arr) { + return /Array\]$/.test(Object.prototype.toString.call(arr)) +} - case '"': - case "'": - doubleQuote = (read$5() === '"'); - buffer = ''; - lexState = 'string'; - return - } +function isBufferish (p) { + return typeof p === 'string' || isArrayish(p) || (p && typeof p.subarray === 'function') +} - throw invalidChar(read$5()) - }, +function stringConcat (parts) { + var strings = []; + for (var i = 0; i < parts.length; i++) { + var p = parts[i]; + if (typeof p === 'string') { + strings.push(p); + } else if (Buffer.isBuffer(p)) { + strings.push(p); + } else if (isBufferish(p)) { + strings.push(bufferFrom(p)); + } else { + strings.push(bufferFrom(String(p))); + } + } + if (Buffer.isBuffer(parts[0])) { + strings = Buffer.concat(strings); + strings = strings.toString('utf8'); + } else { + strings = strings.join(''); + } + return strings +} - identifierNameStartEscape () { - if (c !== 'u') { - throw invalidChar(read$5()) - } +function bufferConcat (parts) { + var bufs = []; + for (var i = 0; i < parts.length; i++) { + var p = parts[i]; + if (Buffer.isBuffer(p)) { + bufs.push(p); + } else if (isBufferish(p)) { + bufs.push(bufferFrom(p)); + } else { + bufs.push(bufferFrom(String(p))); + } + } + return Buffer.concat(bufs) +} - read$5(); - const u = unicodeEscape(); - switch (u) { - case '$': - case '_': - break +function arrayConcat (parts) { + var res = []; + for (var i = 0; i < parts.length; i++) { + res.push.apply(res, parts[i]); + } + return res +} - default: - if (!util$1.isIdStartChar(u)) { - throw invalidIdentifier() - } +function u8Concat (parts) { + var len = 0; + for (var i = 0; i < parts.length; i++) { + if (typeof parts[i] === 'string') { + parts[i] = bufferFrom(parts[i]); + } + len += parts[i].length; + } + var u8 = new U8(len); + for (var i = 0, offset = 0; i < parts.length; i++) { + var part = parts[i]; + for (var j = 0; j < part.length; j++) { + u8[offset++] = part[j]; + } + } + return u8 +} - break - } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Settings} Settings + */ - buffer += u; - lexState = 'identifierName'; - }, +const debug$9 = createDebug('unified-engine:file-set-pipeline:stdin'); - identifierName () { - switch (c) { - case '$': - case '_': - case '\u200C': - case '\u200D': - buffer += read$5(); - return +/** + * @param {Context} context + * @param {Settings} settings + * @param {Callback} next + */ +function stdin(context, settings, next) { + if (settings.files && settings.files.length > 0) { + debug$9('Ignoring `streamIn`'); - case '\\': - read$5(); - lexState = 'identifierNameEscape'; - return - } + /** @type {Error|undefined} */ + let error; - if (util$1.isIdContinueChar(c)) { - buffer += read$5(); - return - } + if (settings.filePath) { + error = new Error( + 'Do not pass both `--file-path` and real files.\nDid you mean to pass stdin instead of files?' + ); + } - return newToken('identifier', buffer) - }, + next(error); - identifierNameEscape () { - if (c !== 'u') { - throw invalidChar(read$5()) - } + return + } - read$5(); - const u = unicodeEscape(); - switch (u) { - case '$': - case '_': - case '\u200C': - case '\u200D': - break + // @ts-expect-error: does exist on `stdin`. + if (settings.streamIn.isTTY) { + debug$9('Cannot read from `tty` stream'); + next(new Error('No input')); - default: - if (!util$1.isIdContinueChar(u)) { - throw invalidIdentifier() - } + return + } - break - } + debug$9('Reading from `streamIn`'); - buffer += u; - lexState = 'identifierName'; - }, + settings.streamIn.pipe( + concatStream({encoding: 'string'}, (value) => { + const file = toVFile(settings.filePath); - sign () { - switch (c) { - case '.': - buffer = read$5(); - lexState = 'decimalPointLeading'; - return + debug$9('Read from `streamIn`'); - case '0': - buffer = read$5(); - lexState = 'zero'; - return + file.cwd = settings.cwd; + file.value = value; + file.data.unifiedEngineGiven = true; + file.data.unifiedEngineStreamIn = true; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - buffer = read$5(); - lexState = 'decimalInteger'; - return + context.files = [file]; - case 'I': - read$5(); - literal('nfinity'); - return newToken('numeric', sign * Infinity) + // If `out` was not set, set `out`. + settings.out = + settings.out === null || settings.out === undefined + ? true + : settings.out; - case 'N': - read$5(); - literal('aN'); - return newToken('numeric', NaN) - } + next(); + }) + ); +} - throw invalidChar(read$5()) - }, +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Pipeline} Pipeline + */ - zero () { - switch (c) { - case '.': - buffer += read$5(); - lexState = 'decimalPoint'; - return +class FileSet extends EventEmitter$1 { + /** + * FileSet constructor. + * A FileSet is created to process multiple files through unified processors. + * This set, containing all files, is exposed to plugins as an argument to the + * attacher. + */ + constructor() { + super(); + + /** @type {Array.} */ + this.files = []; + /** @type {string[]} */ + this.origins = []; + /** @type {Completer[]} */ + this.plugins = []; + /** @type {number} */ + this.expected = 0; + /** @type {number} */ + this.actual = 0; + /** @type {Pipeline} */ + this.pipeline = trough(); + + // Called when a single file has completed it’s pipeline, triggering `done` + // when all files are complete. + this.on('one', () => { + this.actual++; + + if (this.actual >= this.expected) { + this.emit('done'); + } + }); + } - case 'e': - case 'E': - buffer += read$5(); - lexState = 'decimalExponent'; - return + /** + * Access the files in a set. + */ + valueOf() { + return this.files + } - case 'x': - case 'X': - buffer += read$5(); - lexState = 'hexadecimal'; - return - } + /** + * Attach middleware to the pipeline on `fileSet`. + * + * @param {Completer} plugin + */ + use(plugin) { + const pipeline = this.pipeline; + let duplicate = false; - return newToken('numeric', sign * 0) - }, + if (plugin && plugin.pluginId) { + duplicate = this.plugins.some((fn) => fn.pluginId === plugin.pluginId); + } - decimalInteger () { - switch (c) { - case '.': - buffer += read$5(); - lexState = 'decimalPoint'; - return + if (!duplicate && this.plugins.includes(plugin)) { + duplicate = true; + } - case 'e': - case 'E': - buffer += read$5(); - lexState = 'decimalExponent'; - return - } + if (!duplicate) { + this.plugins.push(plugin); + pipeline.use(plugin); + } - if (util$1.isDigit(c)) { - buffer += read$5(); - return - } + return this + } - return newToken('numeric', sign * Number(buffer)) - }, + /** + * Add a file to be processed. + * The given file is processed like other files with a few differences: + * + * * Ignored when their file path is already added + * * Never written to the file system or streamOut + * * Not reported for + * + * @param {string|VFile} file + */ + add(file) { + if (typeof file === 'string') { + file = toVFile(file); + } - decimalPointLeading () { - if (util$1.isDigit(c)) { - buffer += read$5(); - lexState = 'decimalFraction'; - return - } + // Prevent files from being added multiple times. + if (this.origins.includes(file.history[0])) { + return this + } - throw invalidChar(read$5()) - }, + this.origins.push(file.history[0]); - decimalPoint () { - switch (c) { - case 'e': - case 'E': - buffer += read$5(); - lexState = 'decimalExponent'; - return - } + // Add. + this.valueOf().push(file); + this.expected++; - if (util$1.isDigit(c)) { - buffer += read$5(); - lexState = 'decimalFraction'; - return - } + // Force an asynchronous operation. + // This ensures that files which fall through the file pipeline immediately + // (such as, when already fatally failed) still queue up correctly. + setImmediate(() => { + this.emit('add', file); + }); - return newToken('numeric', sign * Number(buffer)) - }, + return this + } +} - decimalFraction () { - switch (c) { - case 'e': - case 'E': - buffer += read$5(); - lexState = 'decimalExponent'; - return - } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ - if (util$1.isDigit(c)) { - buffer += read$5(); - return - } +const debug$8 = createDebug('unified-engine:file-pipeline:read'); - return newToken('numeric', sign * Number(buffer)) - }, +/** + * Fill a file with its value when not already filled. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function read$1(context, file, next) { + let filePath = file.path; - decimalExponent () { - switch (c) { - case '+': - case '-': - buffer += read$5(); - lexState = 'decimalExponentSign'; - return - } + if (file.value || file.data.unifiedEngineStreamIn) { + debug$8('Not reading file `%s` with `value`', filePath); + next(); + } else if (statistics(file).fatal) { + debug$8('Not reading failed file `%s`', filePath); + next(); + } else { + filePath = path$c.resolve(context.settings.cwd, filePath); - if (util$1.isDigit(c)) { - buffer += read$5(); - lexState = 'decimalExponentInteger'; - return - } + debug$8('Reading `%s` in `%s`', filePath, 'utf8'); + fs$a.readFile(filePath, 'utf8', (error, value) => { + debug$8('Read `%s` (error: %s)', filePath, error); - throw invalidChar(read$5()) - }, + file.value = value || ''; - decimalExponentSign () { - if (util$1.isDigit(c)) { - buffer += read$5(); - lexState = 'decimalExponentInteger'; - return - } + next(error); + }); + } +} - throw invalidChar(read$5()) - }, +/** + * Has own property. + * + * @type {Function} + */ - decimalExponentInteger () { - if (util$1.isDigit(c)) { - buffer += read$5(); - return - } +var has = Object.prototype.hasOwnProperty; - return newToken('numeric', sign * Number(buffer)) - }, +/** + * To string. + * + * @type {Function} + */ - hexadecimal () { - if (util$1.isHexDigit(c)) { - buffer += read$5(); - lexState = 'hexadecimalInteger'; - return - } +var toString$1 = Object.prototype.toString; - throw invalidChar(read$5()) - }, +/** + * Test whether a value is "empty". + * + * @param {Mixed} val + * @return {Boolean} + */ - hexadecimalInteger () { - if (util$1.isHexDigit(c)) { - buffer += read$5(); - return - } +function isEmpty(val) { + // Null and Undefined... + if (val == null) return true - return newToken('numeric', sign * Number(buffer)) - }, + // Booleans... + if ('boolean' == typeof val) return false - string () { - switch (c) { - case '\\': - read$5(); - buffer += escape(); - return + // Numbers... + if ('number' == typeof val) return val === 0 - case '"': - if (doubleQuote) { - read$5(); - return newToken('string', buffer) - } + // Strings... + if ('string' == typeof val) return val.length === 0 - buffer += read$5(); - return + // Functions... + if ('function' == typeof val) return val.length === 0 - case "'": - if (!doubleQuote) { - read$5(); - return newToken('string', buffer) - } + // Arrays... + if (Array.isArray(val)) return val.length === 0 - buffer += read$5(); - return + // Errors... + if (val instanceof Error) return val.message === '' - case '\n': - case '\r': - throw invalidChar(read$5()) + // Objects... + if (val.toString == toString$1) { + switch (val.toString()) { - case '\u2028': - case '\u2029': - separatorChar(c); - break + // Maps, Sets, Files and Errors... + case '[object File]': + case '[object Map]': + case '[object Set]': { + return val.size === 0 + } - case undefined: - throw invalidChar(read$5()) + // Plain objects... + case '[object Object]': { + for (var key in val) { + if (has.call(val, key)) return false } - buffer += read$5(); - }, + return true + } + } + } - start () { - switch (c) { - case '{': - case '[': - return newToken('punctuator', read$5()) + // Anything else... + return false +} - // This code is unreachable since the default lexState handles eof. - // case undefined: - // return newToken('eof') - } +/** + * Export `isEmpty`. + * + * @type {Function} + */ - lexState = 'value'; - }, +var lib$1 = isEmpty; - beforePropertyName () { - switch (c) { - case '$': - case '_': - buffer = read$5(); - lexState = 'identifierName'; - return +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ - case '\\': - read$5(); - lexState = 'identifierNameStartEscape'; - return +const debug$7 = createDebug('unified-engine:file-pipeline:configure'); - case '}': - return newToken('punctuator', read$5()) +/** + * Collect configuration for a file based on the context. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function configure$2(context, file, next) { + if (statistics(file).fatal) { + return next() + } - case '"': - case "'": - doubleQuote = (read$5() === '"'); - lexState = 'string'; - return - } + context.configuration.load(file.path, (error, configuration) => { + let index = -1; - if (util$1.isIdStartChar(c)) { - buffer += read$5(); - lexState = 'identifierName'; - return - } + if (!configuration) { + return next(error) + } - throw invalidChar(read$5()) - }, + // Could be missing if a `configTransform` returns weird things. + /* c8 ignore next 1 */ + const plugins = configuration.plugins || []; - afterPropertyName () { - if (c === ':') { - return newToken('punctuator', read$5()) - } + // Store configuration on the context object. + debug$7('Using settings `%j`', configuration.settings); + context.processor.data('settings', configuration.settings); - throw invalidChar(read$5()) - }, + debug$7('Using `%d` plugins', plugins.length); - beforePropertyValue () { - lexState = 'value'; - }, + while (++index < plugins.length) { + const plugin = plugins[index][0]; + let options = plugins[index][1]; - afterPropertyValue () { - switch (c) { - case ',': - case '}': - return newToken('punctuator', read$5()) - } + if (options === false) { + continue + } - throw invalidChar(read$5()) - }, + // Allow for default arguments in es2020. + /* c8 ignore next 6 */ + if ( + options === null || + (typeof options === 'object' && lib$1(options)) + ) { + options = undefined; + } - beforeArrayValue () { - if (c === ']') { - return newToken('punctuator', read$5()) - } + debug$7( + 'Using plugin `%s`, with options `%j`', + // @ts-expect-error: `displayName` sure can exist on functions. + plugin.displayName || plugin.name || 'function', + options + ); - lexState = 'value'; - }, + try { + context.processor.use(plugin, options, context.fileSet); + /* Should not happen anymore! */ + /* c8 ignore next 3 */ + } catch (error_) { + return next(error_) + } + } - afterArrayValue () { - switch (c) { - case ',': - case ']': - return newToken('punctuator', read$5()) - } + next(); + }); +} - throw invalidChar(read$5()) - }, +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('./index.js').Context} Context + */ - end () { - // This code is unreachable since it's handled by the default lexState. - // if (c === undefined) { - // read() - // return newToken('eof') - // } +const debug$6 = createDebug('unified-engine:file-pipeline:parse'); - throw invalidChar(read$5()) - }, -}; +/** + * Fill a file with a tree. + * + * @param {Context} context + * @param {VFile} file + */ +function parse$2(context, file) { + if (statistics(file).fatal) { + return + } -function newToken (type, value) { - return { - type, - value, - line, - column, + if (context.settings.treeIn) { + debug$6('Not parsing already parsed document'); + + try { + context.tree = parseJson_1(file.toString()); + } catch (error) { + const message = file.message( + new Error('Cannot read file as JSON\n' + error.message) + ); + message.fatal = true; } -} -function literal (s) { - for (const c of s) { - const p = peek(); + // Add the preferred extension to ensure the file, when serialized, is + // correctly recognised. + // Only add it if there is a path — not if the file is for example stdin. + if (file.path) { + file.extname = context.settings.extensions[0]; + } - if (p !== c) { - throw invalidChar(read$5()) - } + file.value = ''; - read$5(); - } -} + return + } -function escape () { - const c = peek(); - switch (c) { - case 'b': - read$5(); - return '\b' + debug$6('Parsing `%s`', file.path); - case 'f': - read$5(); - return '\f' + context.tree = context.processor.parse(file); - case 'n': - read$5(); - return '\n' + debug$6('Parsed document'); +} - case 'r': - read$5(); - return '\r' +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ - case 't': - read$5(); - return '\t' +const debug$5 = createDebug('unified-engine:file-pipeline:transform'); - case 'v': - read$5(); - return '\v' +/** + * Transform the tree associated with a file with configured plugins. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function transform$2(context, file, next) { + if (statistics(file).fatal) { + next(); + } else { + debug$5('Transforming document `%s`', file.path); + // @ts-expect-error: `tree` is defined at this point. + context.processor.run(context.tree, file, (error, node) => { + debug$5('Transformed document (error: %s)', error); + context.tree = node; + next(error); + }); + } +} - case '0': - read$5(); - if (util$1.isDigit(peek())) { - throw invalidChar(read$5()) - } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ - return '\0' +const debug$4 = createDebug('unified-engine:file-pipeline:queue'); - case 'x': - read$5(); - return hexEscape() +const own$a = {}.hasOwnProperty; - case 'u': - read$5(); - return unicodeEscape() +/** + * Queue all files which came this far. + * When the last file gets here, run the file-set pipeline and flush the queue. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function queue(context, file, next) { + let origin = file.history[0]; + // @ts-expect-error: store a completion map on the `fileSet`. + let map = context.fileSet.complete; + let complete = true; - case '\n': - case '\u2028': - case '\u2029': - read$5(); - return '' + if (!map) { + map = {}; + // @ts-expect-error: store a completion map on the `fileSet`. + context.fileSet.complete = map; + } - case '\r': - read$5(); - if (peek() === '\n') { - read$5(); - } + debug$4('Queueing `%s`', origin); - return '' + map[origin] = next; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - throw invalidChar(read$5()) + const files = context.fileSet.valueOf(); + let index = -1; + while (++index < files.length) { + each(files[index]); + } - case undefined: - throw invalidChar(read$5()) - } + if (!complete) { + debug$4('Not flushing: some files cannot be flushed'); + return + } - return read$5() -} + // @ts-expect-error: Reset map. + context.fileSet.complete = {}; + context.fileSet.pipeline.run(context.fileSet, done); -function hexEscape () { - let buffer = ''; - let c = peek(); + /** + * @param {VFile} file + */ + function each(file) { + const key = file.history[0]; - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) + if (statistics(file).fatal) { + return } - buffer += read$5(); - - c = peek(); - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) + if (typeof map[key] === 'function') { + debug$4('`%s` can be flushed', key); + } else { + debug$4('Interupting flush: `%s` is not finished', key); + complete = false; } + } - buffer += read$5(); + /** + * @param {Error|Null} error + */ + function done(error) { + debug$4('Flushing: all files can be flushed'); - return String.fromCodePoint(parseInt(buffer, 16)) + // Flush. + for (origin in map) { + if (own$a.call(map, origin)) { + map[origin](error); + } + } + } } -function unicodeEscape () { - let buffer = ''; - let count = 4; +var own$9 = {}.hasOwnProperty; - while (count-- > 0) { - const c = peek(); - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) - } +var bold = ansiColor(1, 22); +var dim = ansiColor(2, 22); +var yellow = ansiColor(33, 39); +var green = ansiColor(32, 39); - buffer += read$5(); - } +// ANSI color regex. +/* eslint-disable-next-line no-control-regex */ +var colorExpression = /(?:(?:\u001B\[)|\u009B)(?:\d{1,3})?(?:(?:;\d{0,3})*)?[A-M|f-m]|\u001B[A-M]/g; - return String.fromCodePoint(parseInt(buffer, 16)) +/** + * Inspects a node, without using color. + * + * @param {unknown} node + * @param {InspectOptions} [options] + * @returns {string} + */ +function inspectNoColor(node, options) { + return inspectColor(node, options).replace(colorExpression, '') } -const parseStates = { - start () { - if (token.type === 'eof') { - throw invalidEOF() - } - - push$1(); - }, - - beforePropertyName () { - switch (token.type) { - case 'identifier': - case 'string': - key = token.value; - parseState = 'afterPropertyName'; - return - - case 'punctuator': - // This code is unreachable since it's handled by the lexState. - // if (token.value !== '}') { - // throw invalidToken() - // } +/** + * Inspects a node, using color. + * + * @param {unknown} tree + * @param {InspectOptions} [options] + * @returns {string} + */ +function inspectColor(tree, options) { + var positions = + !options || + options.showPositions === null || + options.showPositions === undefined + ? true + : options.showPositions; - pop(); - return + return inspectValue(tree) - case 'eof': - throw invalidEOF() - } + /** + * @param {unknown} node + * @returns {string} + */ + function inspectValue(node) { + if (node && typeof node === 'object' && 'length' in node) { + // @ts-ignore looks like a list of nodes. + return inspectNodes(node) + } - // This code is unreachable since it's handled by the lexState. - // throw invalidToken() - }, + // @ts-ignore looks like a single node. + if (node && node.type) { + // @ts-ignore looks like a single node. + return inspectTree(node) + } - afterPropertyName () { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator' || token.value !== ':') { - // throw invalidToken() - // } + return inspectNonTree(node) + } - if (token.type === 'eof') { - throw invalidEOF() - } + /** + * @param {unknown} value + * @returns {string} + */ + function inspectNonTree(value) { + return JSON.stringify(value) + } - parseState = 'beforePropertyValue'; - }, + /** + * @param {Node[]} nodes + * @returns {string} + */ + function inspectNodes(nodes) { + /** @type {Array.} */ + var result = []; + var index = -1; - beforePropertyValue () { - if (token.type === 'eof') { - throw invalidEOF() - } + while (++index < nodes.length) { + result.push( + dim((index < nodes.length - 1 ? '├' : '└') + '─' + index) + + ' ' + + indent( + inspectValue(nodes[index]), + (index < nodes.length - 1 ? dim('│') : ' ') + ' ', + true + ) + ); + } - push$1(); - }, + return result.join('\n') + } - beforeArrayValue () { - if (token.type === 'eof') { - throw invalidEOF() - } + /** + * @param {Object.} object + * @returns {string} + */ + function inspectFields(object) { + /** @type {Array.} */ + var result = []; + /** @type {string} */ + var key; + /** @type {unknown} */ + var value; + /** @type {string} */ + var formatted; - if (token.type === 'punctuator' && token.value === ']') { - pop(); - return - } + for (key in object) { + /* c8 ignore next 1 */ + if (!own$9.call(object, key)) continue - push$1(); - }, + value = object[key]; - afterPropertyValue () { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator') { - // throw invalidToken() - // } + if ( + value === undefined || + // Standard keys defined by unist that we format differently. + // + key === 'type' || + key === 'value' || + key === 'children' || + key === 'position' || + // Ignore `name` (from xast) and `tagName` (from `hast`) when string. + (typeof value === 'string' && (key === 'name' || key === 'tagName')) + ) { + continue + } - if (token.type === 'eof') { - throw invalidEOF() - } + // A single node. + if ( + value && + typeof value === 'object' && + // @ts-ignore looks like a node. + value.type && + key !== 'data' && + key !== 'attributes' && + key !== 'properties' + ) { + // @ts-ignore looks like a node. + formatted = inspectTree(value); + } + // A list of nodes. + else if ( + value && + typeof value === 'object' && + 'length' in value && + value[0] && + value[0].type + ) { + // @ts-ignore looks like a list of nodes. + formatted = '\n' + inspectNodes(value); + } else { + formatted = inspectNonTree(value); + } - switch (token.value) { - case ',': - parseState = 'beforePropertyName'; - return + result.push( + key + dim(':') + (/\s/.test(formatted.charAt(0)) ? '' : ' ') + formatted + ); + } - case '}': - pop(); - } + return indent( + result.join('\n'), + // @ts-ignore looks like a parent node. + (object.children && object.children.length > 0 ? dim('│') : ' ') + ' ' + ) + } - // This code is unreachable since it's handled by the lexState. - // throw invalidToken() - }, + /** + * @param {Node} node + * @returns {string} + */ + function inspectTree(node) { + var result = [formatNode(node)]; + var fields = inspectFields(node); + // @ts-ignore looks like a parent. + var content = inspectNodes(node.children || []); + if (fields) result.push(fields); + if (content) result.push(content); + return result.join('\n') + } - afterArrayValue () { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator') { - // throw invalidToken() - // } + /** + * Colored node formatter. + * + * @param {Node} node + * @returns {string} + */ + function formatNode(node) { + var result = [bold(node.type)]; + var kind = node.tagName || node.name; + var position = positions ? stringifyPosition(node.position) : ''; - if (token.type === 'eof') { - throw invalidEOF() - } + if (typeof kind === 'string') { + result.push('<', kind, '>'); + } - switch (token.value) { - case ',': - parseState = 'beforeArrayValue'; - return + if (node.children) { + // @ts-ignore looks like a parent. + result.push(dim('['), yellow(node.children.length), dim(']')); + } else if (typeof node.value === 'string') { + result.push(' ', green(inspectNonTree(node.value))); + } - case ']': - pop(); - } + if (position) { + result.push(' ', dim('('), position, dim(')')); + } - // This code is unreachable since it's handled by the lexState. - // throw invalidToken() - }, + return result.join('') + } +} - end () { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'eof') { - // throw invalidToken() - // } - }, -}; +/** + * @param {string} value + * @param {string} indentation + * @param {boolean} [ignoreFirst=false] + * @returns {string} + */ +function indent(value, indentation, ignoreFirst) { + var lines = value.split('\n'); + var index = ignoreFirst ? 0 : -1; -function push$1 () { - let value; + if (!value) return value - switch (token.type) { - case 'punctuator': - switch (token.value) { - case '{': - value = {}; - break + while (++index < lines.length) { + lines[index] = indentation + lines[index]; + } - case '[': - value = []; - break - } + return lines.join('\n') +} - break +/** + * @param {Position} value + * @returns {string} + */ +function stringifyPosition(value) { + /** @type {Position} */ + // @ts-ignore + var position = value || {}; + /** @type {Array.} */ + var result = []; + /** @type {Array.} */ + var positions = []; + /** @type {Array.} */ + var offsets = []; - case 'null': - case 'boolean': - case 'numeric': - case 'string': - value = token.value; - break + point(position.start); + point(position.end); - // This code is unreachable. - // default: - // throw invalidToken() - } + if (positions.length > 0) result.push(positions.join('-')); + if (offsets.length > 0) result.push(offsets.join('-')); - if (root === undefined) { - root = value; - } else { - const parent = stack[stack.length - 1]; - if (Array.isArray(parent)) { - parent.push(value); - } else { - parent[key] = value; - } - } + return result.join(', ') - if (value !== null && typeof value === 'object') { - stack.push(value); + /** + * @param {Point} value + */ + function point(value) { + if (value) { + positions.push((value.line || 1) + ':' + (value.column || 1)); - if (Array.isArray(value)) { - parseState = 'beforeArrayValue'; - } else { - parseState = 'beforePropertyName'; - } - } else { - const current = stack[stack.length - 1]; - if (current == null) { - parseState = 'end'; - } else if (Array.isArray(current)) { - parseState = 'afterArrayValue'; - } else { - parseState = 'afterPropertyValue'; - } + if ('offset' in value) { + offsets.push(String(value.offset || 0)); + } } + } } -function pop () { - stack.pop(); +/** + * Factory to wrap values in ANSI colours. + * + * @param {number} open + * @param {number} close + * @returns {function(string): string} + */ +function ansiColor(open, close) { + return color - const current = stack[stack.length - 1]; - if (current == null) { - parseState = 'end'; - } else if (Array.isArray(current)) { - parseState = 'afterArrayValue'; - } else { - parseState = 'afterPropertyValue'; - } + /** + * @param {string} value + * @returns {string} + */ + function color(value) { + return '\u001B[' + open + 'm' + value + '\u001B[' + close + 'm' + } } -// This code is unreachable. -// function invalidParseState () { -// return new Error(`JSON5: invalid parse state '${parseState}'`) -// } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('./index.js').Context} Context + */ -// This code is unreachable. -// function invalidLexState (state) { -// return new Error(`JSON5: invalid lex state '${state}'`) -// } +const debug$3 = createDebug('unified-engine:file-pipeline:stringify'); -function invalidChar (c) { - if (c === undefined) { - return syntaxError$1(`JSON5: invalid end of input at ${line}:${column}`) +/** + * Stringify a tree. + * + * @param {Context} context + * @param {VFile} file + */ +function stringify$1(context, file) { + /** @type {unknown} */ + let value; + + if (statistics(file).fatal) { + debug$3('Not compiling failed document'); + return + } + + if ( + !context.settings.output && + !context.settings.out && + !context.settings.alwaysStringify + ) { + debug$3('Not compiling document without output settings'); + return + } + + debug$3('Compiling `%s`', file.path); + + if (context.settings.inspect) { + // Add a `txt` extension if there is a path. + if (file.path) { + file.extname = '.txt'; } - return syntaxError$1(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) -} + value = + (context.settings.color ? inspectColor : inspectNoColor)(context.tree) + + '\n'; + } else if (context.settings.treeOut) { + // Add a `json` extension to ensure the file is correctly seen as JSON. + // Only add it if there is a path — not if the file is for example stdin. + if (file.path) { + file.extname = '.json'; + } -function invalidEOF () { - return syntaxError$1(`JSON5: invalid end of input at ${line}:${column}`) + // Add the line feed to create a valid UNIX file. + value = JSON.stringify(context.tree, null, 2) + '\n'; + } else { + // @ts-expect-error: `tree` is defined if we came this far. + value = context.processor.stringify(context.tree, file); + } + + if (value === undefined || value === null) ; else if (typeof value === 'string' || isBuffer(value)) { + // @ts-expect-error: `isBuffer` checks buffer. + file.value = value; + } else { + file.result = value; + } + + debug$3('Serialized document'); } -// This code is unreachable. -// function invalidToken () { -// if (token.type === 'eof') { -// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) -// } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ -// const c = String.fromCodePoint(token.value.codePointAt(0)) -// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) -// } +const debug$2 = createDebug('unified-engine:file-pipeline:copy'); -function invalidIdentifier () { - column -= 5; - return syntaxError$1(`JSON5: invalid identifier character at ${line}:${column}`) -} +/** + * Move a file. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function copy(context, file, next) { + const output = context.settings.output; + const currentPath = file.path; -function separatorChar (c) { - console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`); -} + if (typeof output !== 'string') { + debug$2('Not copying'); + next(); + return + } -function formatChar (c) { - const replacements = { - "'": "\\'", - '"': '\\"', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', - '\v': '\\v', - '\0': '\\0', - '\u2028': '\\u2028', - '\u2029': '\\u2029', - }; + const outpath = path$c.resolve(context.settings.cwd, output); - if (replacements[c]) { - return replacements[c] + debug$2('Copying `%s`', currentPath); + + fs$a.stat(outpath, (error, stats) => { + if (error) { + if ( + error.code !== 'ENOENT' || + output.charAt(output.length - 1) === path$c.sep + ) { + return next( + new Error('Cannot read output directory. Error:\n' + error.message) + ) + } + + // This is either given an error, or the parent exists which is a directory, + // but we should keep the basename of the given file. + fs$a.stat(path$c.dirname(outpath), (error) => { + if (error) { + next( + new Error('Cannot read parent directory. Error:\n' + error.message) + ); + } else { + done(false); + } + }); + } else { + done(stats.isDirectory()); } + }); - if (c < ' ') { - const hexString = c.charCodeAt(0).toString(16); - return '\\x' + ('00' + hexString).substring(hexString.length) + /** + * @param {boolean} directory + */ + function done(directory) { + if (!directory && context.fileSet.expected > 1) { + return next( + new Error('Cannot write multiple files to single output: ' + outpath) + ) } - return c + file[directory ? 'dirname' : 'path'] = path$c.relative(file.cwd, outpath); + + debug$2('Copying document from %s to %s', currentPath, file.path); + + next(); + } } -function syntaxError$1 (message) { - const err = new SyntaxError(message); - err.lineNumber = line; - err.columnNumber = column; - return err +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ + +const debug$1 = createDebug('unified-engine:file-pipeline:stdout'); + +/** + * Write a virtual file to `streamOut`. + * Ignored when `output` is given, more than one file was processed, or `out` + * is false. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function stdout(context, file, next) { + if (!file.data.unifiedEngineGiven) { + debug$1('Ignoring programmatically added file'); + next(); + } else if ( + statistics(file).fatal || + context.settings.output || + !context.settings.out + ) { + debug$1('Ignoring writing to `streamOut`'); + next(); + } else { + debug$1('Writing document to `streamOut`'); + context.settings.streamOut.write(file.toString(), next); + } } -var stringify$5 = function stringify (value, replacer, space) { - const stack = []; - let indent = ''; - let propertyList; - let replacerFunc; - let gap = ''; - let quote; +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Context} Context + */ - if ( - replacer != null && - typeof replacer === 'object' && - !Array.isArray(replacer) - ) { - space = replacer.space; - quote = replacer.quote; - replacer = replacer.replacer; - } +const debug = createDebug('unified-engine:file-pipeline:file-system'); - if (typeof replacer === 'function') { - replacerFunc = replacer; - } else if (Array.isArray(replacer)) { - propertyList = []; - for (const v of replacer) { - let item; +/** + * Write a virtual file to the file-system. + * Ignored when `output` is not given. + * + * @param {Context} context + * @param {VFile} file + * @param {Callback} next + */ +function fileSystem(context, file, next) { + if (!context.settings.output) { + debug('Ignoring writing to file-system'); + return next() + } - if (typeof v === 'string') { - item = v; - } else if ( - typeof v === 'number' || - v instanceof String || - v instanceof Number - ) { - item = String(v); - } + if (!file.data.unifiedEngineGiven) { + debug('Ignoring programmatically added file'); + return next() + } - if (item !== undefined && propertyList.indexOf(item) < 0) { - propertyList.push(item); - } - } - } + let destinationPath = file.path; - if (space instanceof Number) { - space = Number(space); - } else if (space instanceof String) { - space = String(space); - } + if (!destinationPath) { + debug('Cannot write file without a `destinationPath`'); + return next(new Error('Cannot write file without an output path')) + } - if (typeof space === 'number') { - if (space > 0) { - space = Math.min(10, Math.floor(space)); - gap = ' '.substr(0, space); - } - } else if (typeof space === 'string') { - gap = space.substr(0, 10); - } + if (statistics(file).fatal) { + debug('Cannot write file with a fatal error'); + return next() + } - return serializeProperty('', {'': value}) + destinationPath = path$c.resolve(context.settings.cwd, destinationPath); + debug('Writing document to `%s`', destinationPath); - function serializeProperty (key, holder) { - let value = holder[key]; - if (value != null) { - if (typeof value.toJSON5 === 'function') { - value = value.toJSON5(key); - } else if (typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - } + file.stored = true; + fs$a.writeFile(destinationPath, file.toString(), next); +} - if (replacerFunc) { - value = replacerFunc.call(holder, key, value); - } +/** + * @typedef {import('trough').Pipeline} Pipeline + * @typedef {import('vfile').VFile} VFile + * @typedef {import('vfile-message').VFileMessage} VFileMessage + * @typedef {import('unist').Node} Node + * @typedef {import('unified').Processor} Processor + * @typedef {import('../file-set.js').FileSet} FileSet + * @typedef {import('../configuration.js').Configuration} Configuration + * @typedef {import('../index.js').Settings} Settings + */ - if (value instanceof Number) { - value = Number(value); - } else if (value instanceof String) { - value = String(value); - } else if (value instanceof Boolean) { - value = value.valueOf(); - } +// This pipeline ensures each of the pipes always runs: even if the read pipe +// fails, queue and write run. +const filePipeline = trough() + .use(chunk(trough().use(read$1).use(configure$2).use(parse$2).use(transform$2))) + .use(chunk(trough().use(queue))) + .use(chunk(trough().use(stringify$1).use(copy).use(stdout).use(fileSystem))); - switch (value) { - case null: return 'null' - case true: return 'true' - case false: return 'false' - } +/** + * Factory to run a pipe. + * Wraps a pipe to trigger an error on the `file` in `context`, but still call + * `next`. + * + * @param {Pipeline} pipe + */ +function chunk(pipe) { + return run - if (typeof value === 'string') { - return quoteString(value) - } + /** + * Run the bound pipe and handle any errors. + * + * @param {Context} context + * @param {VFile} file + * @param {() => void} next + */ + function run(context, file, next) { + pipe.run(context, file, (/** @type {VFileMessage|null} */ error) => { + const messages = file.messages; - if (typeof value === 'number') { - return String(value) - } + if (error) { + const index = messages.indexOf(error); - if (typeof value === 'object') { - return Array.isArray(value) ? serializeArray(value) : serializeObject(value) + if (index === -1) { + Object.assign(file.message(error), {fatal: true}); + } else { + messages[index].fatal = true; } + } - return undefined - } + next(); + }); + } +} - function quoteString (value) { - const quotes = { - "'": 0.1, - '"': 0.2, - }; +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('trough').Callback} Callback + * @typedef {import('./index.js').Settings} Settings + * @typedef {import('./index.js').Configuration} Configuration + */ - const replacements = { - "'": "\\'", - '"': '\\"', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', - '\v': '\\v', - '\0': '\\0', - '\u2028': '\\u2028', - '\u2029': '\\u2029', - }; +/** + * Transform all files. + * + * @param {Context} context + * @param {Settings} settings + * @param {Callback} next + */ +function transform$1(context, settings, next) { + const fileSet = new FileSet(); - let product = ''; + context.fileSet = fileSet; - for (let i = 0; i < value.length; i++) { - const c = value[i]; - switch (c) { - case "'": - case '"': - quotes[c]++; - product += c; - continue + fileSet.on('add', (/** @type {VFile} */ file) => { + filePipeline.run( + { + configuration: context.configuration, + // Needed `any`s + // type-coverage:ignore-next-line + processor: settings.processor(), + fileSet, + settings + }, + file, + (/** @type {Error|null} */ error) => { + // Does not occur as all failures in `filePipeLine` are failed on each + // file. + // Still, just to ensure things work in the future, we add an extra check. + /* c8 ignore next 4 */ + if (error) { + Object.assign(file.message(error), {fatal: true}); + } - case '\0': - if (util$1.isDigit(value[i + 1])) { - product += '\\x00'; - continue - } - } + fileSet.emit('one', file); + } + ); + }); - if (replacements[c]) { - product += replacements[c]; - continue - } + fileSet.on('done', next); - if (c < ' ') { - let hexString = c.charCodeAt(0).toString(16); - product += '\\x' + ('00' + hexString).substring(hexString.length); - continue - } + if (context.files.length === 0) { + next(); + } else { + let index = -1; + while (++index < context.files.length) { + fileSet.add(context.files[index]); + } + } +} - product += c; - } +function hasFlag(flag, argv = process$1.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 quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b); +const {env} = process$1; - product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]); +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; +} - return quoteChar + product + quoteChar - } +function envForceColor() { + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + return 1; + } - function serializeObject (value) { - if (stack.indexOf(value) >= 0) { - throw TypeError('Converting circular structure to JSON5') - } + if (env.FORCE_COLOR === 'false') { + return 0; + } - stack.push(value); + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} - let stepback = indent; - indent = indent + gap; +function translateLevel(level) { + if (level === 0) { + return false; + } - let keys = propertyList || Object.keys(value); - let partial = []; - for (const key of keys) { - const propertyString = serializeProperty(key, value); - if (propertyString !== undefined) { - let member = serializeKey(key) + ':'; - if (gap !== '') { - member += ' '; - } - member += propertyString; - partial.push(member); - } - } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} - let final; - if (partial.length === 0) { - final = '{}'; - } else { - let properties; - if (gap === '') { - properties = partial.join(','); - final = '{' + properties + '}'; - } else { - let separator = ',\n' + indent; - properties = partial.join(separator); - final = '{\n' + indent + properties + ',\n' + stepback + '}'; - } - } +function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== undefined) { + flagForceColor = noFlagForceColor; + } - stack.pop(); - indent = stepback; - return final - } + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; - function serializeKey (key) { - if (key.length === 0) { - return quoteString(key) - } + if (forceColor === 0) { + return 0; + } - const firstChar = String.fromCodePoint(key.codePointAt(0)); - if (!util$1.isIdStartChar(firstChar)) { - return quoteString(key) - } + if (sniffFlags) { + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } - for (let i = firstChar.length; i < key.length; i++) { - if (!util$1.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { - return quoteString(key) - } - } + if (hasFlag('color=256')) { + return 2; + } + } - return key - } + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } - function serializeArray (value) { - if (stack.indexOf(value) >= 0) { - throw TypeError('Converting circular structure to JSON5') - } + const min = forceColor || 0; - stack.push(value); + if (env.TERM === 'dumb') { + return min; + } - let stepback = indent; - indent = indent + gap; + if (process$1.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 = require$$0$2.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } - let partial = []; - for (let i = 0; i < value.length; i++) { - const propertyString = serializeProperty(String(i), value); - partial.push((propertyString !== undefined) ? propertyString : 'null'); - } + return 1; + } - let final; - if (partial.length === 0) { - final = '[]'; - } else { - if (gap === '') { - let properties = partial.join(','); - final = '[' + properties + ']'; - } else { - let separator = ',\n' + indent; - let properties = partial.join(separator); - final = '[\n' + indent + properties + ',\n' + stepback + ']'; - } - } + 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; + } - stack.pop(); - indent = stepback; - return final - } -}; + return min; + } -const JSON5 = { - parse: parse$6, - stringify: stringify$5, -}; + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } -var lib$6 = JSON5; + if (env.COLORTERM === 'truecolor') { + return 3; + } -var dist$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': lib$6 -}); + 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 + } + } -var schema$1 = [ - { - long: "help", - description: "output usage information", - short: "h", - type: "boolean", - "default": false - }, - { - long: "version", - description: "output version number", - short: "v", - type: "boolean", - "default": false - }, - { - long: "output", - description: "specify output location", - short: "o", - value: "[path]" - }, - { - long: "rc-path", - description: "specify configuration file", - short: "r", - type: "string", - value: "" - }, - { - long: "ignore-path", - description: "specify ignore file", - short: "i", - type: "string", - value: "" - }, - { - long: "setting", - description: "specify settings", - short: "s", - type: "string", - value: "" - }, - { - long: "ext", - description: "specify extensions", - short: "e", - type: "string", - value: "" - }, - { - long: "use", - description: "use plugins", - short: "u", - type: "string", - value: "" - }, - { - long: "watch", - description: "watch for changes and reprocess", - short: "w", - type: "boolean", - "default": false - }, - { - long: "quiet", - description: "output only warnings and errors", - short: "q", - type: "boolean", - "default": false - }, - { - long: "silent", - description: "output only errors", - short: "S", - type: "boolean", - "default": false - }, - { - long: "frail", - description: "exit with 1 on warnings", - short: "f", - type: "boolean", - "default": false - }, - { - long: "tree", - description: "specify input and output as syntax tree", - short: "t", - type: "boolean", - "default": false - }, - { - long: "report", - description: "specify reporter", - type: "string", - value: "" - }, - { - long: "file-path", - description: "specify path to process as", - type: "string", - value: "" - }, - { - long: "ignore-path-resolve-from", - description: "resolve patterns in `ignore-path` from its directory or cwd", - type: "string", - value: "dir|cwd", - "default": "dir" - }, - { - long: "ignore-pattern", - description: "specify ignore patterns", - type: "string", - value: "" - }, - { - long: "silently-ignore", - description: "do not fail when given ignored files", - type: "boolean" - }, - { - long: "tree-in", - description: "specify input as syntax tree", - type: "boolean" - }, - { - long: "tree-out", - description: "output syntax tree", - type: "boolean" - }, - { - long: "inspect", - description: "output formatted syntax tree", - type: "boolean" - }, - { - long: "stdout", - description: "specify writing to stdout", - type: "boolean", - truelike: true - }, - { - long: "color", - description: "specify color in report", - type: "boolean", - "default": true - }, - { - long: "config", - description: "search for configuration files", - type: "boolean", - "default": true - }, - { - long: "ignore", - description: "search for ignore files", - type: "boolean", - "default": true + if (/-256(color)?$/i.test(env.TERM)) { + return 2; } -]; -var json5 = /*@__PURE__*/getAugmentedNamespace(dist$1); + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } -var options_1 = options; + if ('COLORTERM' in env) { + return 1; + } -// Schema for `minimist`. -var minischema = { - unknown: handleUnknownArgument, - default: {}, - alias: {}, - string: [], - boolean: [] -}; + return min; +} -schema$1.forEach(addEach); +function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options + }); -// Parse CLI options. -function options(flags, configuration) { - var extension = configuration.extensions[0]; - var name = configuration.name; - var config = toCamelCase(minimist(flags, minischema)); - var help; - var ext; - var report; - - schema$1.forEach(function (option) { - if (option.type === 'string' && config[option.long] === '') { - throw fault_1('Missing value:%s', inspect$1(option).join(' ')) - } - }); + return translateLevel(level); +} - ext = commaSeparated(config.ext); - report = reporter$1(config.report); +const supportsColor = { + stdout: createSupportsColor({isTTY: tty$1.isatty(1)}), + stderr: createSupportsColor({isTTY: tty$1.isatty(2)}) +}; - help = [ - inspectAll(schema$1), - '', - 'Examples:', - '', - ' # Process `input.' + extension + '`', - ' $ ' + name + ' input.' + extension + ' -o output.' + extension, - '', - ' # Pipe', - ' $ ' + name + ' < input.' + extension + ' > output.' + extension, - '', - ' # Rewrite all applicable files', - ' $ ' + name + ' . -o' - ].join('\n'); +function ansiRegex({onlyFirst = false} = {}) { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); - return { - helpMessage: help, - // “hidden” feature, makes testing easier. - cwd: configuration.cwd, - processor: configuration.processor, - help: config.help, - version: config.version, - files: config._, - filePath: config.filePath, - watch: config.watch, - extensions: ext.length === 0 ? configuration.extensions : ext, - output: config.output, - out: config.stdout, - tree: config.tree, - treeIn: config.treeIn, - treeOut: config.treeOut, - inspect: config.inspect, - rcName: configuration.rcName, - packageField: configuration.packageField, - rcPath: config.rcPath, - detectConfig: config.config, - settings: settings(config.setting), - ignoreName: configuration.ignoreName, - ignorePath: config.ignorePath, - ignorePathResolveFrom: config.ignorePathResolveFrom, - ignorePatterns: commaSeparated(config.ignorePattern), - silentlyIgnore: config.silentlyIgnore, - detectIgnore: config.ignore, - pluginPrefix: configuration.pluginPrefix, - plugins: plugins(config.use), - reporter: report[0], - reporterOptions: report[1], - color: config.color, - silent: config.silent, - quiet: config.quiet, - frail: config.frail - } + return new RegExp(pattern, onlyFirst ? undefined : 'g'); } -function addEach(option) { - var value = option.default; +function stripAnsi(string) { + if (typeof string !== 'string') { + throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); + } - minischema.default[option.long] = value === undefined ? null : value; + return string.replace(ansiRegex(), ''); +} - if (option.type in minischema) { - minischema[option.type].push(option.long); - } +/* eslint-disable yoda */ - if (option.short) { - minischema.alias[option.short] = option.long; - } -} +function isFullwidthCodePoint(codePoint) { + if (!Number.isInteger(codePoint)) { + return false; + } -// Parse `extensions`. -function commaSeparated(value) { - return flatten$1(normalize$1(value).map(splitList)) + // Code points are derived from: + // https://unicode.org/Public/UNIDATA/EastAsianWidth.txt + return codePoint >= 0x1100 && ( + codePoint <= 0x115F || // Hangul Jamo + codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET + codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (0x3250 <= codePoint && codePoint <= 0x4DBF) || + // CJK Unified Ideographs .. Yi Radicals + (0x4E00 <= codePoint && codePoint <= 0xA4C6) || + // Hangul Jamo Extended-A + (0xA960 <= codePoint && codePoint <= 0xA97C) || + // Hangul Syllables + (0xAC00 <= codePoint && codePoint <= 0xD7A3) || + // CJK Compatibility Ideographs + (0xF900 <= codePoint && codePoint <= 0xFAFF) || + // Vertical Forms + (0xFE10 <= codePoint && codePoint <= 0xFE19) || + // CJK Compatibility Forms .. Small Form Variants + (0xFE30 <= codePoint && codePoint <= 0xFE6B) || + // Halfwidth and Fullwidth Forms + (0xFF01 <= codePoint && codePoint <= 0xFF60) || + (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || + // Kana Supplement + (0x1B000 <= codePoint && codePoint <= 0x1B001) || + // Enclosed Ideographic Supplement + (0x1F200 <= codePoint && codePoint <= 0x1F251) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (0x20000 <= codePoint && codePoint <= 0x3FFFD) + ); } -// Parse `plugins`. -function plugins(value) { - var result = {}; - - normalize$1(value) - .map(splitOptions) - .forEach(function (value) { - result[value[0]] = value[1] ? parseConfig(value[1], {}) : null; - }); +var emojiRegex = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; - return result -} +function stringWidth(string) { + if (typeof string !== 'string' || string.length === 0) { + return 0; + } -// Parse `reporter`: only one is accepted. -function reporter$1(value) { - var all = normalize$1(value) - .map(splitOptions) - .map(function (value) { - return [value[0], value[1] ? parseConfig(value[1], {}) : null] - }); + string = stripAnsi(string); - return all[all.length - 1] || [] -} + if (string.length === 0) { + return 0; + } -// Parse `settings`. -function settings(value) { - var cache = {}; + string = string.replace(emojiRegex(), ' '); - normalize$1(value).forEach(function (value) { - parseConfig(value, cache); - }); + let width = 0; - return cache -} + for (let index = 0; index < string.length; index++) { + const codePoint = string.codePointAt(index); -// Parse configuration. -function parseConfig(flags, cache) { - var flag; - var message; + // Ignore control characters + if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) { + continue; + } - try { - flags = toCamelCase(parseJSON(flags)); - } catch (error) { - // Fix position - message = error.message.replace(/at(?= position)/, 'around'); + // Ignore combining characters + if (codePoint >= 0x300 && codePoint <= 0x36F) { + continue; + } - throw fault_1('Cannot parse `%s` as JSON: %s', flags, message) - } + // Surrogates + if (codePoint > 0xFFFF) { + index++; + } - for (flag in flags) { - cache[flag] = flags[flag]; - } + width += isFullwidthCodePoint(codePoint) ? 2 : 1; + } - return cache + return width; } -// Handle an unknown flag. -function handleUnknownArgument(flag) { - // Glob. - if (flag.charAt(0) !== '-') { - return - } +/*! + * repeat-string + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ - // Long options, always unknown. - if (flag.charAt(1) === '-') { - throw fault_1('Unknown option `%s`, expected:\n%s', flag, inspectAll(schema$1)) - } +/** + * Results cache + */ - // Short options, can be grouped. - flag.slice(1).split('').forEach(each); +var res = ''; +var cache; - function each(key) { - var length = schema$1.length; - var index = -1; - var option; +/** + * Expose `repeat` + */ - while (++index < length) { - option = schema$1[index]; +var repeatString = repeat; - if (option.short === key) { - return - } - } +/** + * Repeat the given `string` the specified `number` + * of times. + * + * **Example:** + * + * ```js + * var repeat = require('repeat-string'); + * repeat('A', 5); + * //=> AAAAA + * ``` + * + * @param {String} `string` The string to repeat + * @param {Number} `number` The number of times to repeat the string + * @return {String} Repeated string + * @api public + */ - throw fault_1( - 'Unknown short option `-%s`, expected:\n%s', - key, - inspectAll(schema$1.filter(short)) - ) +function repeat(str, num) { + if (typeof str !== 'string') { + throw new TypeError('expected a string'); } - function short(option) { - return option.short - } -} + // cover common, quick use cases + if (num === 1) return str; + if (num === 2) return str + str; -// Inspect all `options`. -function inspectAll(options) { - return textTable(options.map(inspect$1)) -} + var max = str.length * num; + if (cache !== str || typeof cache === 'undefined') { + cache = str; + res = ''; + } else if (res.length >= max) { + return res.substr(0, max); + } -// Inspect one `option`. -function inspect$1(option) { - var description = option.description; - var long = option.long; + while (max > res.length && num > 1) { + if (num & 1) { + res += str; + } - if (option.default === true || option.truelike) { - description += ' (on by default)'; - long = '[no-]' + long; + num >>= 1; + str += str; } - return [ - '', - option.short ? '-' + option.short : '', - '--' + long + (option.value ? ' ' + option.value : ''), - description - ] + res += str; + res = res.substr(0, max); + return res; } -// Normalize `value`. -function normalize$1(value) { - if (!value) { - return [] - } +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('vfile-message').VFileMessage} VFileMessage + */ - if (typeof value === 'string') { - return [value] - } +var severities = {true: 2, false: 1, null: 0, undefined: 0}; - return flatten$1(value.map(normalize$1)) +/** + * @template {VFile} F + * @param {F} file + * @returns {F} + */ +function sort(file) { + file.messages.sort(comparator); + return file } -// Flatten `values`. -function flatten$1(values) { - return [].concat.apply([], values) +/** + * @param {VFileMessage} a + * @param {VFileMessage} b + * @returns {number} + */ +function comparator(a, b) { + return ( + check$1(a, b, 'line') || + check$1(a, b, 'column') || + severities[b.fatal] - severities[a.fatal] || + compare(a, b, 'source') || + compare(a, b, 'ruleId') || + compare(a, b, 'reason') || + 0 + ) } -function splitOptions(value) { - return value.split('=') +/** + * @param {VFileMessage} a + * @param {VFileMessage} b + * @param {string} property + * @returns {number} + */ +function check$1(a, b, property) { + return (a[property] || 0) - (b[property] || 0) } -function splitList(value) { - return value.split(',') +/** + * @param {VFileMessage} a + * @param {VFileMessage} b + * @param {string} property + * @returns {number} + */ +function compare(a, b, property) { + return String(a[property] || '').localeCompare(b[property] || '') } -// Transform the keys on an object to camel-case, recursivly. -function toCamelCase(object) { - var result = {}; - var value; - var key; +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('vfile-message').VFileMessage} VFileMessage + * @typedef {import('vfile-statistics').Statistics} Statistics + * + * @typedef Options + * @property {boolean} [color] + * @property {boolean} [silent=false] + * @property {boolean} [quiet=false] + * @property {boolean} [verbose=false] + * @property {string} [defaultName=''] + * + * @typedef _Row + * @property {string} place + * @property {string} label + * @property {string} reason + * @property {string} ruleId + * @property {string} source + * + * @typedef _FileRow + * @property {'file'} type + * @property {VFile} file + * @property {Statistics} stats + * + * @typedef {{[x: string]: number}} _Sizes + * + * @typedef _Info + * @property {Array.<_FileRow|_Row>} rows + * @property {Statistics} stats + * @property {_Sizes} sizes + */ - for (key in object) { - value = object[key]; +var own$8 = {}.hasOwnProperty; - if (value && typeof value === 'object' && !('length' in value)) { - value = toCamelCase(value); - } +// @ts-ignore Types are incorrect. +var supported = supportsColor.stderr.hasBasic; - result[camelcase(key)] = value; +// `log-symbols` without chalk, ignored for Windows: +/* c8 ignore next 4 */ +var chars = + process.platform === 'win32' + ? {error: '×', warning: '‼'} + : {error: '✖', warning: '⚠'}; + +var labels = {true: 'error', false: 'warning', null: 'info', undefined: 'info'}; + +/** + * Report a file’s messages. + * + * @param {Error|VFile|Array.} [files] + * @param {Options} [options] + * @returns {string} + */ +function reporter$1(files, options = {}) { + /** @type {boolean} */ + var one; + + if (!files) { + return '' } - return result -} + // Error. + if ('name' in files && 'message' in files) { + return String(files.stack || files) + } -// Parse a (lazy?) JSON config. -function parseJSON(value) { - return json5.parse('{' + value + '}') + // One file. + if (!Array.isArray(files)) { + one = true; + files = [files]; + } + + return format(transform(files, options), one, options) } -var lib$7 = start; +/** + * @param {Array.} files + * @param {Options} options + * @returns {_Info} + */ +function transform(files, options) { + var index = -1; + /** @type {Array.<_FileRow|_Row>} */ + var rows = []; + /** @type {Array.} */ + var all = []; + /** @type {number} */ + var offset; + /** @type {_Sizes} */ + var sizes = {}; + /** @type {Array.} */ + var messages; + /** @type {VFileMessage} */ + var message; + /** @type {_Row} */ + var row; + /** @type {Array.<_Row>} */ + var messageRows; + /** @type {string} */ + var key; -var noop = Function.prototype; + while (++index < files.length) { + // @ts-ignore it works fine. + messages = sort({messages: [...files[index].messages]}).messages; + messageRows = []; + offset = -1; -// Fake TTY stream. -var ttyStream = new require$$0__default['default'].Readable(); -ttyStream.isTTY = true; + while (++offset < messages.length) { + message = messages[offset]; -// Exit, lazily, with the correct exit status code. -var exitStatus = 0; + if (!options.silent || message.fatal) { + all.push(message); -process.on('exit', onexit); + row = { + place: stringifyPosition$1( + message.position.end.line && message.position.end.column + ? message.position + : message.position.start + ), + label: labels[message.fatal], + reason: + (message.stack || message.message) + + (options.verbose && message.note ? '\n' + message.note : ''), + ruleId: message.ruleId || '', + source: message.source || '' + }; -// Handle uncaught errors, such as from unexpected async behaviour. -process.on('uncaughtException', fail$1); + for (key in row) { + if (own$8.call(row, key)) { + sizes[key] = Math.max(size$1(row[key]), sizes[key] || 0); + } + } -// Start the CLI. -function start(cliConfig) { - var config; - var output; - var watcher; + messageRows.push(row); + } + } - try { - config = options_1(process.argv.slice(2), cliConfig); - } catch (error) { - return fail$1(error, true) + if ((!options.quiet && !options.silent) || messageRows.length > 0) { + rows.push( + {type: 'file', file: files[index], stats: statistics(messages)}, + ...messageRows + ); + } } - if (config.help) { - process.stdout.write( - [ - 'Usage: ' + cliConfig.name + ' [options] [path | glob ...]', - '', - ' ' + cliConfig.description, - '', - 'Options:', - '', - config.helpMessage, - '' - ].join('\n'), - noop - ); + return {rows, stats: statistics(all), sizes} +} - return - } +/** + * @param {_Info} map + * @param {boolean} one + * @param {Options} options + */ +function format(map, one, options) { + /** @type {boolean} */ + var enabled = + options.color === undefined || options.color === null + ? supported + : options.color; + /** @type {Array.} */ + var lines = []; + var index = -1; + /** @type {Statistics} */ + var stats; + /** @type {_FileRow|_Row} */ + var row; + /** @type {string} */ + var line; + /** @type {string} */ + var reason; + /** @type {string} */ + var rest; + /** @type {RegExpMatchArray} */ + var match; - if (config.version) { - process.stdout.write(cliConfig.version + '\n', noop); + while (++index < map.rows.length) { + row = map.rows[index]; - return - } + if ('type' in row) { + stats = row.stats; + line = row.file.history[0] || options.defaultName || ''; - // Modify `config` for watching. - if (config.watch) { - output = config.output; + line = + one && !options.defaultName && !row.file.history[0] + ? '' + : (enabled + ? '\u001B[4m' /* Underline. */ + + (stats.fatal + ? '\u001B[31m' /* Red. */ + : stats.total + ? '\u001B[33m' /* Yellow. */ + : '\u001B[32m') /* Green. */ + + line + + '\u001B[39m\u001B[24m' + : line) + + (row.file.stored && row.file.path !== row.file.history[0] + ? ' > ' + row.file.path + : ''); - // Do not read from stdin(4). - config.streamIn = ttyStream; + if (!stats.total) { + line = + (line ? line + ': ' : '') + + (row.file.stored + ? enabled + ? '\u001B[33mwritten\u001B[39m' /* Yellow. */ + : 'written' + : 'no issues found'); + } - // Do not write to stdout(4). - config.out = false; + if (line) { + if (index && !('type' in map.rows[index - 1])) { + lines.push(''); + } - process.stderr.write( - source.bold('Watching...') + ' (press CTRL+C to exit)\n', - noop - ); + lines.push(line); + } + } else { + reason = row.reason; + match = /\r?\n|\r/.exec(reason); - // Prevent infinite loop if set to regeneration. - if (output === true) { - config.output = false; + if (match) { + rest = reason.slice(match.index); + reason = reason.slice(0, match.index); + } else { + rest = ''; + } - process.stderr.write( - source.yellow('Note') + ': Ignoring `--output` until exit.\n', - noop + lines.push( + ( + ' ' + + repeatString(' ', map.sizes.place - size$1(row.place)) + + row.place + + ' ' + + (enabled + ? (row.label === 'error' + ? '\u001B[31m' /* Red. */ + : '\u001B[33m') /* Yellow. */ + + row.label + + '\u001B[39m' + : row.label) + + repeatString(' ', map.sizes.label - size$1(row.label)) + + ' ' + + reason + + repeatString(' ', map.sizes.reason - size$1(reason)) + + ' ' + + row.ruleId + + repeatString(' ', map.sizes.ruleId - size$1(row.ruleId)) + + ' ' + + (row.source || '') + ).replace(/ +$/, '') + rest ); } } - // Initial run. - lib$5(config, done); + stats = map.stats; - // Handle complete run. - function done(err, code, context) { - if (err) { - clean(); - fail$1(err); - } else { - exitStatus = code; + if (stats.fatal || stats.warn) { + line = ''; - if (config.watch && !watcher) { - subscribe(context); - } + if (stats.fatal) { + line = + (enabled + ? '\u001B[31m' /* Red. */ + chars.error + '\u001B[39m' + : chars.error) + + ' ' + + stats.fatal + + ' ' + + (labels.true + (stats.fatal === 1 ? '' : 's')); } - } - // Clean the watcher. - function clean() { - if (watcher) { - watcher.close(); - watcher = null; + if (stats.warn) { + line = + (line ? line + ', ' : '') + + (enabled + ? '\u001B[33m' /* Yellow. */ + chars.warning + '\u001B[39m' + : chars.warning) + + ' ' + + stats.warn + + ' ' + + (labels.false + (stats.warn === 1 ? '' : 's')); } - } - // Subscribe a chokidar watcher to all processed files. - function subscribe(context) { - watcher = chokidar - .watch(context.fileSet.origins, {cwd: config.cwd, ignoreInitial: true}) - .on('error', done) - .on('change', onchange); + if (stats.total !== stats.fatal && stats.total !== stats.warn) { + line = stats.total + ' messages (' + line + ')'; + } - process.on('SIGINT', onsigint); + lines.push('', line); + } - function onchange(filePath) { - config.files = [filePath]; + return lines.join('\n') +} - lib$5(config, done); - } +/** + * Get the length of `value`, ignoring ANSI sequences. + * + * @param {string} value + * @returns {number} + */ +function size$1(value) { + var match = /\r?\n|\r/.exec(value); + return stringWidth(match ? value.slice(0, match.index) : value) +} - function onsigint() { - // Hide the `^C` in terminal. - process.stderr.write('\n', noop); +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('../index.js').VFileReporter} VFileReporter + * @typedef {import('./index.js').Settings} Settings + * @typedef {import('./index.js').Configuration} Configuration + */ - clean(); +/** + * @typedef Context + * @property {Array.} files + * @property {Configuration} [configuration] + */ - // Do another process if `output` specified regeneration. - if (output === true) { - config.output = output; - config.watch = false; - lib$5(config, done); - } +/** + * @param {Context} context + * @param {Settings} settings + */ +async function log(context, settings) { + /** @type {VFileReporter} */ + let func = reporter$1; + + if (typeof settings.reporter === 'string') { + try { + // @ts-expect-error: Assume loaded value is a vfile reporter. + func = await loadPlugin(settings.reporter, { + cwd: settings.cwd, + prefix: 'vfile-reporter' + }); + } catch { + throw new Error('Could not find reporter `' + settings.reporter + '`') } + } else if (settings.reporter) { + func = settings.reporter; } -} -// Print an error, optionally with stack. -function fail$1(err, pretty) { - var message = - (pretty ? String(err).trim() : err.stack) || - /* istanbul ignore next - Old versions of Node */ err; + let diagnostics = func( + context.files.filter((file) => file.data.unifiedEngineGiven), + Object.assign({}, settings.reporterOptions, { + quiet: settings.quiet, + silent: settings.silent, + color: settings.color + }) + ); - exitStatus = 1; + if (diagnostics) { + if (diagnostics.charAt(diagnostics.length - 1) !== '\n') { + diagnostics += '\n'; + } - process.stderr.write(message.trim() + '\n', noop); + return new Promise((resolve) => { + settings.streamError.write(diagnostics, resolve); + }) + } } -function onexit() { - /* eslint-disable unicorn/no-process-exit */ - process.exit(exitStatus); - /* eslint-enable unicorn/no-process-exit */ -} +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('../configuration.js').Configuration} Configuration + * @typedef {import('../index.js').Settings} Settings + */ -var unifiedArgs = lib$7; +const fileSetPipeline = trough() + .use(configure$3) + .use(fileSystem$1) + .use(stdin) + .use(transform$1) + .use(log); -var require$$0$2 = [ - "md", - "markdown", - "mdown", - "mkdn", - "mkd", - "mdwn", - "mkdown", - "ron" -]; +/** + * @typedef {import('vfile').VFile} VFile + * @typedef {import('unified').Processor} Processor + * @typedef {import('./file-set.js').FileSet} FileSet + * @typedef {import('./file-set.js').Completer} Completer + * @typedef {import('./ignore.js').ResolveFrom} ResolveFrom + * @typedef {import('./configuration.js').ConfigTransform} ConfigTransform + * @typedef {import('./configuration.js').Preset} Preset + * + * @typedef VFileReporterFields + * @property {boolean} [color] + * @property {boolean} [quiet] + * @property {boolean} [silent] + * + * @typedef {{[key: string]: unknown} & VFileReporterFields} VFileReporterOptions + * + * @callback VFileReporter + * @param {VFile[]} files + * @param {VFileReporterOptions} options + * @returns {string} + * + * @typedef Settings + * @property {Options['processor']} processor + * @property {Exclude} cwd + * @property {Exclude} files + * @property {Exclude} extensions + * @property {Exclude} streamIn + * @property {Options['filePath']} filePath + * @property {Exclude} streamOut + * @property {Exclude} streamError + * @property {Options['out']} out + * @property {Options['output']} output + * @property {Options['alwaysStringify']} alwaysStringify + * @property {Options['tree']} tree + * @property {Options['treeIn']} treeIn + * @property {Options['treeOut']} treeOut + * @property {Options['inspect']} inspect + * @property {Options['rcName']} rcName + * @property {Options['packageField']} packageField + * @property {Options['detectConfig']} detectConfig + * @property {Options['rcPath']} rcPath + * @property {Exclude} settings + * @property {Options['ignoreName']} ignoreName + * @property {Options['detectIgnore']} detectIgnore + * @property {Options['ignorePath']} ignorePath + * @property {Options['ignorePathResolveFrom']} ignorePathResolveFrom + * @property {Exclude} ignorePatterns + * @property {Options['silentlyIgnore']} silentlyIgnore + * @property {Options['plugins']} plugins + * @property {Options['pluginPrefix']} pluginPrefix + * @property {Options['configTransform']} configTransform + * @property {Options['defaultConfig']} defaultConfig + * @property {Options['reporter']} reporter + * @property {Options['reporterOptions']} reporterOptions + * @property {Options['color']} color + * @property {Options['silent']} silent + * @property {Options['quiet']} quiet + * @property {Options['frail']} frail + * + * @typedef Options + * Options for unified engine + * @property {() => Processor} processor + * Unified processor to transform files + * @property {string} [cwd] + * Directory to search files in, load plugins from, and more. + * Defaults to `process.cwd()`. + * @property {Array} [files] + * Paths or globs to files and directories, or virtual files, to process. + * @property {string[]} [extensions] + * If `files` matches directories, include `files` with `extensions` + * @property {NodeJS.ReadableStream} [streamIn] + * Stream to read from if no files are found or given. + * Defaults to `process.stdin`. + * @property {string} [filePath] + * File path to process the given file on `streamIn` as. + * @property {NodeJS.WritableStream} [streamOut] + * Stream to write processed files to. + * Defaults to `process.stdout`. + * @property {NodeJS.WritableStream} [streamError] + * Stream to write the report (if any) to. + * Defaults to `process.stderr`. + * @property {boolean} [out=false] + * Whether to write the processed file to `streamOut` + * @property {boolean|string} [output=false] + * Whether to write successfully processed files, and where to. + * + * * When `true`, overwrites the given files + * * When `false`, does not write to the file system + * * When pointing to an existing directory, files are written to that + * directory and keep their original basenames + * * When the parent directory of the given path exists and one file is + * processed, the file is written to the given path + * @property {boolean} [alwaysStringify=false] + * Whether to always serialize successfully processed files. + * @property {boolean} [tree=false] + * Whether to treat both input and output as a syntax tree. + * @property {boolean} [treeIn] + * Whether to treat input as a syntax tree. + * Defaults to `options.tree`. + * @property {boolean} [treeOut] + * Whether to treat output as a syntax tree. + * Defaults to `options.tree`. + * @property {boolean} [inspect=false] + * Whether to output a formatted syntax tree. + * @property {string} [rcName] + * Name of configuration files to load. + * @property {string} [packageField] + * Property at which configuration can be found in `package.json` files + * @property {boolean} [detectConfig] + * Whether to search for configuration files. + * Defaults to `true` if `rcName` or `packageField` are given + * @property {string} [rcPath] + * Filepath to a configuration file to load. + * @property {Preset['settings']} [settings] + * Configuration for the parser and compiler of the processor. + * @property {string} [ignoreName] + * Name of ignore files to load. + * @property {boolean} [detectIgnore] + * Whether to search for ignore files. + * Defaults to `true` if `ignoreName` is given. + * @property {string} [ignorePath] + * Filepath to an ignore file to load. + * @property {ResolveFrom} [ignorePathResolveFrom] + * Resolve patterns in `ignorePath` from the current working + * directory (`'cwd'`) or the ignore file’s directory (`'dir'`, default). + * @property {string[]} [ignorePatterns] + * Patterns to ignore in addition to ignore files + * @property {boolean} [silentlyIgnore=false] + * Skip given files if they are ignored. + * @property {Preset['plugins']} [plugins] + * Plugins to use. + * @property {string} [pluginPrefix] + * Prefix to use when searching for plugins + * @property {ConfigTransform} [configTransform] + * Transform config files from a different schema. + * @property {Preset} [defaultConfig] + * Default configuration to use if no config file is given or found. + * @property {VFileReporter|string} [reporter] + * Reporter to use + * Defaults to `vfile-reporter` + * @property {VFileReporterOptions} [reporterOptions] + * Config to pass to the used reporter. + * @property {VFileReporterOptions['color']} [color=false] + * Whether to report with ANSI color sequences. + * @property {VFileReporterOptions['silent']} [silent=false] + * Report only fatal errors + * @property {VFileReporterOptions['quiet']} [quiet=false] + * Do not report successful files + * @property {boolean} [frail=false] + * Call back with an unsuccessful (`1`) code on warnings as well as errors + * + * @typedef Context + * Processing context. + * @property {VFile[]} [files] + * Processed files. + * @property {FileSet} [fileSet] + * Internally used information + * + * @callback Callback + * Callback called when processing according to options is complete. + * Invoked with either a fatal error if processing went horribly wrong + * (probably due to incorrect configuration), or a status code and the + * processing context. + * @param {Error|null} error + * @param {0|1} [status] + * @param {Context} [context] + * @returns {void} + */ -var markdownExtensions = require$$0$2; +/** + * Run the file set pipeline once. + * `callback` is called with a fatal error, or with a status code (`0` on + * success, `1` on failure). + * + * @param {Options} options + * @param {Callback} callback + */ +function engine(options, callback) { + /** @type {Settings} */ + const settings = {}; + /** @type {NodeJS.ReadStream} */ + // @ts-expect-error: `PassThrough` sure is readable. + let stdin = new PassThrough(); -var bail_1 = bail; + try { + stdin = process$2.stdin; + // Obscure bug in Node (seen on Windows). + // See: , + // . + /* c8 ignore next 1 */ + } catch {} -function bail(err) { - if (err) { - throw err + if (!callback) { + throw new Error('Missing `callback`') } -} -var hasOwn = Object.prototype.hasOwnProperty; -var toStr = Object.prototype.toString; -var defineProperty = Object.defineProperty; -var gOPD = Object.getOwnPropertyDescriptor; + // Needed `any`s + // type-coverage:ignore-next-line + if (!options || !options.processor) { + return next(new Error('Missing `processor`')) + } -var isArray$1 = function isArray(arr) { - if (typeof Array.isArray === 'function') { - return Array.isArray(arr); - } + // Processor. + // Needed `any`s + // type-coverage:ignore-next-line + settings.processor = options.processor; - return toStr.call(arr) === '[object Array]'; -}; + // Path to run as. + settings.cwd = options.cwd || process$2.cwd(); -var isPlainObject = function isPlainObject(obj) { - if (!obj || toStr.call(obj) !== '[object Object]') { - return false; - } + // Input. + settings.files = options.files || []; + settings.extensions = (options.extensions || []).map((ext) => + ext.charAt(0) === '.' ? ext : '.' + ext + ); - var hasOwnConstructor = hasOwn.call(obj, 'constructor'); - var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); - // Not own constructor property must be Object - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } + settings.filePath = options.filePath; + settings.streamIn = options.streamIn || stdin; - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - var key; - for (key in obj) { /**/ } + // Output. + settings.streamOut = options.streamOut || process$2.stdout; + settings.streamError = options.streamError || process$2.stderr; + settings.alwaysStringify = options.alwaysStringify; + settings.output = options.output; + settings.out = options.out; - return typeof key === 'undefined' || hasOwn.call(obj, key); -}; + // Null overwrites config settings, `undefined` does not. + if (settings.output === null || settings.output === undefined) { + settings.output = undefined; + } -// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target -var setProperty = function setProperty(target, options) { - if (defineProperty && options.name === '__proto__') { - defineProperty(target, options.name, { - enumerable: true, - configurable: true, - value: options.newValue, - writable: true - }); - } else { - target[options.name] = options.newValue; - } -}; + if (settings.output && settings.out) { + return next(new Error('Cannot accept both `output` and `out`')) + } -// Return undefined instead of __proto__ if '__proto__' is not an own property -var getProperty = function getProperty(obj, name) { - if (name === '__proto__') { - if (!hasOwn.call(obj, name)) { - return void 0; - } else if (gOPD) { - // In early versions of node, obj['__proto__'] is buggy when obj has - // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. - return gOPD(obj, name).value; - } - } + // Process phase management. + const tree = options.tree || false; - return obj[name]; -}; + settings.treeIn = options.treeIn; + settings.treeOut = options.treeOut; + settings.inspect = options.inspect; -var extend$2 = function extend() { - var options, name, src, copy, copyIsArray, clone; - var target = arguments[0]; - var i = 1; - var length = arguments.length; - var deep = false; + if (settings.treeIn === null || settings.treeIn === undefined) { + settings.treeIn = tree; + } - // Handle a deep copy situation - if (typeof target === 'boolean') { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { - target = {}; - } + if (settings.treeOut === null || settings.treeOut === undefined) { + settings.treeOut = tree; + } - for (; i < length; ++i) { - options = arguments[i]; - // Only deal with non-null/undefined values - if (options != null) { - // Extend the base object - for (name in options) { - src = getProperty(target, name); - copy = getProperty(options, name); + // Configuration. + const detectConfig = options.detectConfig; + const hasConfig = Boolean(options.rcName || options.packageField); - // Prevent never-ending loop - if (target !== copy) { - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray$1(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray$1(src) ? src : []; - } else { - clone = src && isPlainObject(src) ? src : {}; - } + if (detectConfig && !hasConfig) { + return next( + new Error('Missing `rcName` or `packageField` with `detectConfig`') + ) + } - // Never move original objects, clone them - setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); + settings.detectConfig = + detectConfig === null || detectConfig === undefined + ? hasConfig + : detectConfig; + settings.rcName = options.rcName; + settings.rcPath = options.rcPath; + settings.packageField = options.packageField; + settings.settings = options.settings || {}; + settings.configTransform = options.configTransform; + settings.defaultConfig = options.defaultConfig; - // Don't bring in undefined values - } else if (typeof copy !== 'undefined') { - setProperty(target, { name: name, newValue: copy }); - } - } - } - } - } + // Ignore. + const detectIgnore = options.detectIgnore; + const hasIgnore = Boolean(options.ignoreName); - // Return the modified object - return target; -}; + settings.detectIgnore = + detectIgnore === null || detectIgnore === undefined + ? hasIgnore + : detectIgnore; + settings.ignoreName = options.ignoreName; + settings.ignorePath = options.ignorePath; + settings.ignorePathResolveFrom = options.ignorePathResolveFrom || 'dir'; + settings.ignorePatterns = options.ignorePatterns || []; + settings.silentlyIgnore = Boolean(options.silentlyIgnore); -// Expose a frozen processor. -var unified_1 = unified().freeze(); + if (detectIgnore && !hasIgnore) { + return next(new Error('Missing `ignoreName` with `detectIgnore`')) + } -var slice$3 = [].slice; -var own$2 = {}.hasOwnProperty; + // Plugins. + settings.pluginPrefix = options.pluginPrefix; + settings.plugins = options.plugins || []; -// Process pipeline. -var pipeline = trough_1() - .use(pipelineParse) - .use(pipelineRun) - .use(pipelineStringify); + // Reporting. + settings.reporter = options.reporter; + settings.reporterOptions = options.reporterOptions; + settings.color = options.color || false; + settings.silent = options.silent; + settings.quiet = options.quiet; + settings.frail = options.frail; -function pipelineParse(p, ctx) { - ctx.tree = p.parse(ctx.file); -} + // Process. + fileSetPipeline.run({files: options.files || []}, settings, next); -function pipelineRun(p, ctx, next) { - p.run(ctx.tree, ctx.file, done); + /** + * @param {Error|null} error + * @param {Context} [context] + */ + function next(error, context) { + const stats = statistics((context || {}).files); + const failed = Boolean( + settings.frail ? stats.fatal || stats.warn : stats.fatal + ); - function done(err, tree, file) { - if (err) { - next(err); + if (error) { + callback(error); } else { - ctx.tree = tree; - ctx.file = file; - next(); + callback(null, failed ? 1 : 0, context); } } } -function pipelineStringify(p, ctx) { - var result = p.stringify(ctx.tree, ctx.file); - var file = ctx.file; +var textTable = function (rows_, opts) { + if (!opts) opts = {}; + var hsep = opts.hsep === undefined ? ' ' : opts.hsep; + var align = opts.align || []; + var stringLength = opts.stringLength + || function (s) { return String(s).length; } + ; + + var dotsizes = reduce(rows_, function (acc, row) { + forEach(row, function (c, ix) { + var n = dotindex(c); + if (!acc[ix] || n > acc[ix]) acc[ix] = n; + }); + return acc; + }, []); + + var rows = map$2(rows_, function (row) { + return map$2(row, function (c_, ix) { + var c = String(c_); + if (align[ix] === '.') { + var index = dotindex(c); + var size = dotsizes[ix] + (/\./.test(c) ? 1 : 2) + - (stringLength(c) - index) + ; + return c + Array(size).join(' '); + } + else return c; + }); + }); + + var sizes = reduce(rows, function (acc, row) { + forEach(row, function (c, ix) { + var n = stringLength(c); + if (!acc[ix] || n > acc[ix]) acc[ix] = n; + }); + return acc; + }, []); + + return map$2(rows, function (row) { + return map$2(row, function (c, ix) { + var n = (sizes[ix] - stringLength(c)) || 0; + var s = Array(Math.max(n + 1, 1)).join(' '); + if (align[ix] === 'r' || align[ix] === '.') { + return s + c; + } + if (align[ix] === 'c') { + return Array(Math.ceil(n / 2 + 1)).join(' ') + + c + Array(Math.floor(n / 2 + 1)).join(' ') + ; + } + + return c + s; + }).join(hsep).replace(/\s+$/, ''); + }).join('\n'); +}; - if (result === undefined || result === null) ; else if (typeof result === 'string' || isBuffer(result)) { - file.contents = result; - } else { - file.result = result; - } +function dotindex (c) { + var m = /\.[^.]*$/.exec(c); + return m ? m.index + 1 : c.length; } -// Function to create the first processor. -function unified() { - var attachers = []; - var transformers = trough_1(); - var namespace = {}; - var frozen = false; - var freezeIndex = -1; +function reduce (xs, f, init) { + if (xs.reduce) return xs.reduce(f, init); + var i = 0; + var acc = arguments.length >= 3 ? init : xs[i++]; + for (; i < xs.length; i++) { + f(acc, xs[i], i); + } + return acc; +} - // Data management. - processor.data = data; +function forEach (xs, f) { + if (xs.forEach) return xs.forEach(f); + for (var i = 0; i < xs.length; i++) { + f.call(xs, xs[i], i); + } +} - // Lock. - processor.freeze = freeze; +function map$2 (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f.call(xs, xs[i], i)); + } + return res; +} - // Plugins. - processor.attachers = attachers; - processor.use = use; +var camelcase$1 = {exports: {}}; - // API. - processor.parse = parse; - processor.stringify = stringify; - processor.run = run; - processor.runSync = runSync; - processor.process = process; - processor.processSync = processSync; +const preserveCamelCase = (string, locale) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; - // Expose. - return processor + for (let i = 0; i < string.length; i++) { + const character = string[i]; - // Create a new processor based on the processor in the current scope. - function processor() { - var destination = unified(); - var length = attachers.length; - var index = -1; + if (isLastCharLower && /[\p{Lu}]/u.test(character)) { + string = string.slice(0, i) + '-' + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && /[\p{Ll}]/u.test(character)) { + string = string.slice(0, i - 1) + '-' + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = character.toLocaleLowerCase(locale) === character && character.toLocaleUpperCase(locale) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = character.toLocaleUpperCase(locale) === character && character.toLocaleLowerCase(locale) !== character; + } + } - while (++index < length) { - destination.use.apply(null, attachers[index]); - } + return string; +}; - destination.data(extend$2(true, {}, namespace)); +const preserveConsecutiveUppercase = input => { + return input.replace(/^[\p{Lu}](?![\p{Lu}])/gu, m1 => m1.toLowerCase()); +}; - return destination - } +const postProcess = (input, options) => { + return input.replace(/[_.\- ]+([\p{Alpha}\p{N}_]|$)/gu, (_, p1) => p1.toLocaleUpperCase(options.locale)) + .replace(/\d+([\p{Alpha}\p{N}_]|$)/gu, m => m.toLocaleUpperCase(options.locale)); +}; - // Freeze: used to signal a processor that has finished configuration. - // - // For example, take unified itself: it’s frozen. - // Plugins should not be added to it. - // Rather, it should be extended, by invoking it, before modifying it. - // - // In essence, always invoke this when exporting a processor. - function freeze() { - var values; - var plugin; - var options; - var transformer; +const camelCase = (input, options) => { + if (!(typeof input === 'string' || Array.isArray(input))) { + throw new TypeError('Expected the input to be `string | string[]`'); + } - if (frozen) { - return processor - } + options = { + pascalCase: false, + preserveConsecutiveUppercase: false, + ...options + }; - while (++freezeIndex < attachers.length) { - values = attachers[freezeIndex]; - plugin = values[0]; - options = values[1]; - transformer = null; + if (Array.isArray(input)) { + input = input.map(x => x.trim()) + .filter(x => x.length) + .join('-'); + } else { + input = input.trim(); + } - if (options === false) { - continue - } + if (input.length === 0) { + return ''; + } - if (options === true) { - values[1] = undefined; - } + if (input.length === 1) { + return options.pascalCase ? input.toLocaleUpperCase(options.locale) : input.toLocaleLowerCase(options.locale); + } - transformer = plugin.apply(processor, values.slice(1)); + const hasUpperCase = input !== input.toLocaleLowerCase(options.locale); - if (typeof transformer === 'function') { - transformers.use(transformer); - } - } + if (hasUpperCase) { + input = preserveCamelCase(input, options.locale); + } - frozen = true; - freezeIndex = Infinity; + input = input.replace(/^[_.\- ]+/, ''); - return processor - } + if (options.preserveConsecutiveUppercase) { + input = preserveConsecutiveUppercase(input); + } else { + input = input.toLocaleLowerCase(); + } - // Data management. - // Getter / setter for processor-specific informtion. - function data(key, value) { - if (typeof key === 'string') { - // Set `key`. - if (arguments.length === 2) { - assertUnfrozen('data', frozen); + if (options.pascalCase) { + input = input.charAt(0).toLocaleUpperCase(options.locale) + input.slice(1); + } - namespace[key] = value; + return postProcess(input, options); +}; - return processor - } +camelcase$1.exports = camelCase; +// TODO: Remove this for the next major release +camelcase$1.exports.default = camelCase; - // Get `key`. - return (own$2.call(namespace, key) && namespace[key]) || null - } +var camelcase = camelcase$1.exports; - // Set space. - if (key) { - assertUnfrozen('data', frozen); - namespace = key; - return processor +var minimist = function (args, opts) { + if (!opts) opts = {}; + + var flags = { bools : {}, strings : {}, unknownFn: null }; + + if (typeof opts['unknown'] === 'function') { + flags.unknownFn = opts['unknown']; } - // Get space. - return namespace - } + if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { + flags.allBools = true; + } else { + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + } + + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat(aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); - // Plugin management. - // - // Pass it: - // * an attacher and options, - // * a preset, - // * a list of presets, attachers, and arguments (list of attachers and - // options). - function use(value) { - var settings; + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + flags.strings[aliases[key]] = true; + } + }); - assertUnfrozen('use', frozen); + var defaults = opts['default'] || {}; + + var argv = { _ : [] }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + + var notFlags = []; - if (value === null || value === undefined) ; else if (typeof value === 'function') { - addPlugin.apply(null, arguments); - } else if (typeof value === 'object') { - if ('length' in value) { - addList(value); - } else { - addPreset(value); - } - } else { - throw new Error('Expected usable value, not `' + value + '`') + if (args.indexOf('--') !== -1) { + notFlags = args.slice(args.indexOf('--')+1); + args = args.slice(0, args.indexOf('--')); } - if (settings) { - namespace.settings = extend$2(namespace.settings || {}, settings); + function argDefined(key, arg) { + return (flags.allBools && /^--[^=]+$/.test(arg)) || + flags.strings[key] || flags.bools[key] || aliases[key]; } - return processor + function setArg (key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) return; + } - function addPreset(result) { - addList(result.plugins); + var value = !flags.strings[key] && isNumber(val) + ? Number(val) : val + ; + setKey(argv, key.split('.'), value); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), value); + }); + } - if (result.settings) { - settings = extend$2(settings || {}, result.settings); - } + function setKey (obj, keys, value) { + var o = obj; + for (var i = 0; i < keys.length-1; i++) { + var key = keys[i]; + if (key === '__proto__') return; + if (o[key] === undefined) o[key] = {}; + if (o[key] === Object.prototype || o[key] === Number.prototype + || o[key] === String.prototype) o[key] = {}; + if (o[key] === Array.prototype) o[key] = []; + o = o[key]; + } + + var key = keys[keys.length - 1]; + if (key === '__proto__') return; + if (o === Object.prototype || o === Number.prototype + || o === String.prototype) o = {}; + if (o === Array.prototype) o = []; + if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { + o[key] = value; + } + else if (Array.isArray(o[key])) { + o[key].push(value); + } + else { + o[key] = [ o[key], value ]; + } + } + + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); } - function add(value) { - if (typeof value === 'function') { - addPlugin(value); - } else if (typeof value === 'object') { - if ('length' in value) { - addPlugin.apply(null, value); - } else { - addPreset(value); + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + + if (/^--.+=/.test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== 'false'; + } + setArg(key, value, arg); + } + else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } + else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== undefined && !/^-/.test(next) + && !flags.bools[key] + && !flags.allBools + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, next, arg); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next === 'true', arg); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } + else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1,-1).split(''); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j+2); + + if (next === '-') { + setArg(letters[j], next, arg); + continue; + } + + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split('=')[1], arg); + broken = true; + break; + } + + if (/[A-Za-z]/.test(letters[j]) + && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { + setArg(letters[j], next, arg); + broken = true; + break; + } + + if (letters[j+1] && letters[j+1].match(/\W/)) { + setArg(letters[j], arg.slice(j+2), arg); + broken = true; + break; + } + else { + setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); + } + } + + var key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) + && !flags.bools[key] + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, args[i+1], arg); + i++; + } + else if (args[i+1] && /^(true|false)$/.test(args[i+1])) { + setArg(key, args[i+1] === 'true', arg); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } } - } else { - throw new Error('Expected usable value, not `' + value + '`') - } - } - - function addList(plugins) { - var length; - var index; - - if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && 'length' in plugins) { - length = plugins.length; - index = -1; - - while (++index < length) { - add(plugins[index]); + else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push( + flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) + ); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } } - } else { - throw new Error('Expected a list of plugins, not `' + plugins + '`') - } } - - function addPlugin(plugin, value) { - var entry = find(plugin); - - if (entry) { - if (isPlainObj(entry[1]) && isPlainObj(value)) { - value = extend$2(entry[1], value); + + Object.keys(defaults).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) { + setKey(argv, key.split('.'), defaults[key]); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), defaults[key]); + }); } - - entry[1] = value; - } else { - attachers.push(slice$3.call(arguments)); - } - } - } - - function find(plugin) { - var length = attachers.length; - var index = -1; - var entry; - - while (++index < length) { - entry = attachers[index]; - - if (entry[0] === plugin) { - return entry - } + }); + + if (opts['--']) { + argv['--'] = new Array(); + notFlags.forEach(function(key) { + argv['--'].push(key); + }); } - } - - // Parse a file (in string or vfile representation) into a unist node using - // the `Parser` on the processor. - function parse(doc) { - var file = vfile(doc); - var Parser; - - freeze(); - Parser = processor.Parser; - assertParser('parse', Parser); - - if (newable(Parser, 'parse')) { - return new Parser(String(file), file).parse() + else { + notFlags.forEach(function(key) { + argv._.push(key); + }); } - return Parser(String(file), file) // eslint-disable-line new-cap - } - - // Run transforms on a unist node representation of a file (in string or - // vfile representation), async. - function run(node, file, cb) { - assertNode(node); - freeze(); + return argv; +}; - if (!cb && typeof file === 'function') { - cb = file; - file = null; - } +function hasKey (obj, keys) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + o = (o[key] || {}); + }); - if (!cb) { - return new Promise(executor) - } + var key = keys[keys.length - 1]; + return key in o; +} - executor(null, cb); +function isNumber (x) { + if (typeof x === 'number') return true; + if (/^0x[0-9a-f]+$/i.test(x)) return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} - function executor(resolve, reject) { - transformers.run(node, vfile(file), done); +// This is a generated file. Do not edit. +var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; +var ID_Start = /[\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u0D05-\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\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-\u1884\u1887-\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\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\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\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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\uDD00-\uDD43]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; +var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\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\u09FC\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-\u0AFF\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\u0C80-\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\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\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\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; - function done(err, tree, file) { - tree = tree || node; - if (err) { - reject(err); - } else if (resolve) { - resolve(tree); - } else { - cb(null, tree, file); - } - } - } - } +var unicode = { + Space_Separator: Space_Separator, + ID_Start: ID_Start, + ID_Continue: ID_Continue +}; - // Run transforms on a unist node representation of a file (in string or - // vfile representation), sync. - function runSync(node, file) { - var complete = false; - var result; +var util = { + isSpaceSeparator (c) { + return typeof c === 'string' && unicode.Space_Separator.test(c) + }, - run(node, file, done); + isIdStartChar (c) { + return typeof c === 'string' && ( + (c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + (c === '$') || (c === '_') || + unicode.ID_Start.test(c) + ) + }, - assertDone('runSync', 'run', complete); + isIdContinueChar (c) { + return typeof c === 'string' && ( + (c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + (c >= '0' && c <= '9') || + (c === '$') || (c === '_') || + (c === '\u200C') || (c === '\u200D') || + unicode.ID_Continue.test(c) + ) + }, - return result + isDigit (c) { + return typeof c === 'string' && /[0-9]/.test(c) + }, - function done(err, tree) { - complete = true; - bail_1(err); - result = tree; - } - } + isHexDigit (c) { + return typeof c === 'string' && /[0-9A-Fa-f]/.test(c) + }, +}; - // Stringify a unist node representation of a file (in string or vfile - // representation) into a string using the `Compiler` on the processor. - function stringify(node, doc) { - var file = vfile(doc); - var Compiler; +let source; +let parseState; +let stack; +let pos; +let line; +let column; +let token; +let key; +let root$1; - freeze(); - Compiler = processor.Compiler; - assertCompiler('stringify', Compiler); - assertNode(node); +var parse$1 = function parse (text, reviver) { + source = String(text); + parseState = 'start'; + stack = []; + pos = 0; + line = 1; + column = 0; + token = undefined; + key = undefined; + root$1 = undefined; - if (newable(Compiler, 'compile')) { - return new Compiler(node, file).compile() - } + do { + token = lex(); - return Compiler(node, file) // eslint-disable-line new-cap - } + // This code is unreachable. + // if (!parseStates[parseState]) { + // throw invalidParseState() + // } - // Parse a file (in string or vfile representation) into a unist node using - // the `Parser` on the processor, then run transforms on that node, and - // compile the resulting node using the `Compiler` on the processor, and - // store that result on the vfile. - function process(doc, cb) { - freeze(); - assertParser('process', processor.Parser); - assertCompiler('process', processor.Compiler); + parseStates[parseState](); + } while (token.type !== 'eof') - if (!cb) { - return new Promise(executor) + if (typeof reviver === 'function') { + return internalize({'': root$1}, '', reviver) } - executor(null, cb); - - function executor(resolve, reject) { - var file = vfile(doc); - - pipeline.run(processor, {file: file}, done); + return root$1 +}; - function done(err) { - if (err) { - reject(err); - } else if (resolve) { - resolve(file); - } else { - cb(null, file); +function internalize (holder, name, reviver) { + const value = holder[name]; + if (value != null && typeof value === 'object') { + for (const key in value) { + const replacement = internalize(value, key, reviver); + if (replacement === undefined) { + delete value[key]; + } else { + value[key] = replacement; + } } - } - } - } - - // Process the given document (in string or vfile representation), sync. - function processSync(doc) { - var complete = false; - var file; - - freeze(); - assertParser('processSync', processor.Parser); - assertCompiler('processSync', processor.Compiler); - file = vfile(doc); - - process(file, done); - - assertDone('processSync', 'process', complete); - - return file - - function done(err) { - complete = true; - bail_1(err); } - } -} -// Check if `value` is a constructor. -function newable(value, name) { - return ( - typeof value === 'function' && - value.prototype && - // A function with keys in its prototype is probably a constructor. - // Classes’ prototype methods are not enumerable, so we check if some value - // exists in the prototype. - (keys(value.prototype) || name in value.prototype) - ) + return reviver.call(holder, name, value) } -// Check if `value` is an object with keys. -function keys(value) { - var key; - for (key in value) { - return true - } - - return false -} +let lexState; +let buffer; +let doubleQuote; +let sign; +let c; -// Assert a parser is available. -function assertParser(name, Parser) { - if (typeof Parser !== 'function') { - throw new Error('Cannot `' + name + '` without `Parser`') - } -} +function lex () { + lexState = 'default'; + buffer = ''; + doubleQuote = false; + sign = 1; -// Assert a compiler is available. -function assertCompiler(name, Compiler) { - if (typeof Compiler !== 'function') { - throw new Error('Cannot `' + name + '` without `Compiler`') - } -} + for (;;) { + c = peek(); -// Assert the processor is not frozen. -function assertUnfrozen(name, frozen) { - if (frozen) { - throw new Error( - 'Cannot invoke `' + - name + - '` on a frozen processor.\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.' - ) - } -} + // This code is unreachable. + // if (!lexStates[lexState]) { + // throw invalidLexState(lexState) + // } -// Assert `node` is a unist node. -function assertNode(node) { - if (!node || typeof node.type !== 'string') { - throw new Error('Expected node, got `' + node + '`') - } + const token = lexStates[lexState](); + if (token) { + return token + } + } } -// Assert that `complete` is `true`. -function assertDone(name, asyncName, complete) { - if (!complete) { - throw new Error( - '`' + name + '` finished async. Use `' + asyncName + '` instead' - ) - } +function peek () { + if (source[pos]) { + return String.fromCodePoint(source.codePointAt(pos)) + } } -var mdastUtilToString = toString$3; - -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$3(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all(node.children)) || - ('length' in node && all(node)))) || - '' - ) -} +function read () { + const c = peek(); -function all(values) { - var result = []; - var index = -1; + if (c === '\n') { + line++; + column = 0; + } else if (c) { + column += c.length; + } else { + column++; + } - while (++index < values.length) { - result[index] = toString$3(values[index]); - } + if (c) { + pos += c.length; + } - return result.join('') + return c } -var assign = Object.assign; - -var assign_1 = assign; +const lexStates = { + default () { + switch (c) { + case '\t': + case '\v': + case '\f': + case ' ': + case '\u00A0': + case '\uFEFF': + case '\n': + case '\r': + case '\u2028': + case '\u2029': + read(); + return -var own$3 = {}.hasOwnProperty; + case '/': + read(); + lexState = 'comment'; + return -var hasOwnProperty = own$3; + case undefined: + read(); + return newToken('eof') + } -function normalizeIdentifier(value) { - return ( - value // Collapse Markdown whitespace. - .replace(/[\t\n\r ]+/g, ' ') // Trim. - .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase - // counterpart is uppercased will result in a different uppercase - // character. - // Hence, to get that form, we perform both lower- and uppercase. - // Upper case makes sure keys will not interact with default prototypal - // methods: no object method is uppercase. - .toLowerCase() - .toUpperCase() - ) -} + if (util.isSpaceSeparator(c)) { + read(); + return + } -var normalizeIdentifier_1 = normalizeIdentifier; + // This code is unreachable. + // if (!lexStates[parseState]) { + // throw invalidLexState(parseState) + // } -var fromCharCode = String.fromCharCode; + return lexStates[parseState]() + }, -var fromCharCode_1 = fromCharCode; + comment () { + switch (c) { + case '*': + read(); + lexState = 'multiLineComment'; + return -function safeFromInt(value, base) { - var code = parseInt(value, base); + case '/': + read(); + lexState = 'singleLineComment'; + return + } - if ( - // C0 except for HT, LF, FF, CR, space - code < 9 || - code === 11 || - (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls. - (code > 126 && code < 160) || // Lone high surrogates and low surrogates. - (code > 55295 && code < 57344) || // Noncharacters. - (code > 64975 && code < 65008) || - (code & 65535) === 65535 || - (code & 65535) === 65534 || // Out of range - code > 1114111 - ) { - return '\uFFFD' - } + throw invalidChar(read()) + }, - return fromCharCode_1(code) -} + multiLineComment () { + switch (c) { + case '*': + read(); + lexState = 'multiLineCommentAsterisk'; + return -var safeFromInt_1 = safeFromInt; + case undefined: + throw invalidChar(read()) + } -function miniflat(value) { - return value === null || value === undefined - ? [] - : 'length' in value - ? value - : [value] -} + read(); + }, -var miniflat_1 = miniflat; + multiLineCommentAsterisk () { + switch (c) { + case '*': + read(); + return -function markdownLineEnding(code) { - return code < -2 -} + case '/': + read(); + lexState = 'default'; + return -var markdownLineEnding_1 = markdownLineEnding; + case undefined: + throw invalidChar(read()) + } -function markdownSpace(code) { - return code === -2 || code === -1 || code === 32 -} + read(); + lexState = 'multiLineComment'; + }, -var markdownSpace_1 = markdownSpace; + singleLineComment () { + switch (c) { + case '\n': + case '\r': + case '\u2028': + case '\u2029': + read(); + lexState = 'default'; + return -function spaceFactory(effects, ok, type, max) { - var limit = max ? max - 1 : Infinity; - var size = 0; - return start + case undefined: + read(); + return newToken('eof') + } - function start(code) { - if (markdownSpace_1(code)) { - effects.enter(type); - return prefix(code) - } + read(); + }, - return ok(code) - } + value () { + switch (c) { + case '{': + case '[': + return newToken('punctuator', read()) - function prefix(code) { - if (markdownSpace_1(code) && size++ < limit) { - effects.consume(code); - return prefix - } + case 'n': + read(); + literal('ull'); + return newToken('null', null) - effects.exit(type); - return ok(code) - } -} + case 't': + read(); + literal('rue'); + return newToken('boolean', true) -var factorySpace = spaceFactory; + case 'f': + read(); + literal('alse'); + return newToken('boolean', false) -var tokenize = initializeContent; + case '-': + case '+': + if (read() === '-') { + sign = -1; + } -function initializeContent(effects) { - var contentStart = effects.attempt( - this.parser.constructs.contentInitial, - afterContentStartConstruct, - paragraphInitial - ); - var previous; - return contentStart + lexState = 'sign'; + return - function afterContentStartConstruct(code) { - if (code === null) { - effects.consume(code); - return - } + case '.': + buffer = read(); + lexState = 'decimalPointLeading'; + return - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, contentStart, 'linePrefix') - } + case '0': + buffer = read(); + lexState = 'zero'; + return - function paragraphInitial(code) { - effects.enter('paragraph'); - return lineStart(code) - } + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + buffer = read(); + lexState = 'decimalInteger'; + return - function lineStart(code) { - var token = effects.enter('chunkText', { - contentType: 'text', - previous: previous - }); + case 'I': + read(); + literal('nfinity'); + return newToken('numeric', Infinity) - if (previous) { - previous.next = token; - } + case 'N': + read(); + literal('aN'); + return newToken('numeric', NaN) - previous = token; - return data(code) - } + case '"': + case "'": + doubleQuote = (read() === '"'); + buffer = ''; + lexState = 'string'; + return + } - function data(code) { - if (code === null) { - effects.exit('chunkText'); - effects.exit('paragraph'); - effects.consume(code); - return - } + throw invalidChar(read()) + }, - if (markdownLineEnding_1(code)) { - effects.consume(code); - effects.exit('chunkText'); - return lineStart - } // Data. + identifierNameStartEscape () { + if (c !== 'u') { + throw invalidChar(read()) + } - effects.consume(code); - return data - } -} + read(); + const u = unicodeEscape(); + switch (u) { + case '$': + case '_': + break -var tokenize_1 = tokenize; + default: + if (!util.isIdStartChar(u)) { + throw invalidIdentifier() + } -var content = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1 -}, '__esModule', {value: true}); + break + } -var partialBlankLine = { - tokenize: tokenizePartialBlankLine, - partial: true -}; + buffer += u; + lexState = 'identifierName'; + }, -function tokenizePartialBlankLine(effects, ok, nok) { - return factorySpace(effects, afterWhitespace, 'linePrefix') + identifierName () { + switch (c) { + case '$': + case '_': + case '\u200C': + case '\u200D': + buffer += read(); + return - function afterWhitespace(code) { - return code === null || markdownLineEnding_1(code) ? ok(code) : nok(code) - } -} + case '\\': + read(); + lexState = 'identifierNameEscape'; + return + } -var partialBlankLine_1 = partialBlankLine; + if (util.isIdContinueChar(c)) { + buffer += read(); + return + } -var tokenize$1 = initializeDocument; -var containerConstruct = { - tokenize: tokenizeContainer -}; -var lazyFlowConstruct = { - tokenize: tokenizeLazyFlow -}; + return newToken('identifier', buffer) + }, -function initializeDocument(effects) { - var self = this; - var stack = []; - var continued = 0; - var inspectConstruct = { - tokenize: tokenizeInspect, - partial: true - }; - var inspectResult; - var childFlow; - var childToken; - return start + identifierNameEscape () { + if (c !== 'u') { + throw invalidChar(read()) + } - function start(code) { - if (continued < stack.length) { - self.containerState = stack[continued][1]; - return effects.attempt( - stack[continued][0].continuation, - documentContinue, - documentContinued - )(code) - } + read(); + const u = unicodeEscape(); + switch (u) { + case '$': + case '_': + case '\u200C': + case '\u200D': + break - return documentContinued(code) - } + default: + if (!util.isIdContinueChar(u)) { + throw invalidIdentifier() + } - function documentContinue(code) { - continued++; - return start(code) - } + break + } - function documentContinued(code) { - // If we’re in a concrete construct (such as when expecting another line of - // HTML, or we resulted in lazy content), we can immediately start flow. - if (inspectResult && inspectResult.flowContinue) { - return flowStart(code) - } + buffer += u; + lexState = 'identifierName'; + }, - self.interrupt = - childFlow && - childFlow.currentConstruct && - childFlow.currentConstruct.interruptible; - self.containerState = {}; - return effects.attempt( - containerConstruct, - containerContinue, - flowStart - )(code) - } + sign () { + switch (c) { + case '.': + buffer = read(); + lexState = 'decimalPointLeading'; + return - function containerContinue(code) { - stack.push([self.currentConstruct, self.containerState]); - self.containerState = undefined; - return documentContinued(code) - } + case '0': + buffer = read(); + lexState = 'zero'; + return - function flowStart(code) { - if (code === null) { - exitContainers(0, true); - effects.consume(code); - return - } + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + buffer = read(); + lexState = 'decimalInteger'; + return - childFlow = childFlow || self.parser.flow(self.now()); - effects.enter('chunkFlow', { - contentType: 'flow', - previous: childToken, - _tokenizer: childFlow - }); - return flowContinue(code) - } + case 'I': + read(); + literal('nfinity'); + return newToken('numeric', sign * Infinity) - function flowContinue(code) { - if (code === null) { - continueFlow(effects.exit('chunkFlow')); - return flowStart(code) - } + case 'N': + read(); + literal('aN'); + return newToken('numeric', NaN) + } - if (markdownLineEnding_1(code)) { - effects.consume(code); - continueFlow(effects.exit('chunkFlow')); - return effects.check(inspectConstruct, documentAfterPeek) - } + throw invalidChar(read()) + }, - effects.consume(code); - return flowContinue - } + zero () { + switch (c) { + case '.': + buffer += read(); + lexState = 'decimalPoint'; + return - function documentAfterPeek(code) { - exitContainers( - inspectResult.continued, - inspectResult && inspectResult.flowEnd - ); - continued = 0; - return start(code) - } + case 'e': + case 'E': + buffer += read(); + lexState = 'decimalExponent'; + return - function continueFlow(token) { - if (childToken) childToken.next = token; - childToken = token; - childFlow.lazy = inspectResult && inspectResult.lazy; - childFlow.defineSkip(token.start); - childFlow.write(self.sliceStream(token)); - } + case 'x': + case 'X': + buffer += read(); + lexState = 'hexadecimal'; + return + } - function exitContainers(size, end) { - var index = stack.length; // Close the flow. + return newToken('numeric', sign * 0) + }, - if (childFlow && end) { - childFlow.write([null]); - childToken = childFlow = undefined; - } // Exit open containers. + decimalInteger () { + switch (c) { + case '.': + buffer += read(); + lexState = 'decimalPoint'; + return - while (index-- > size) { - self.containerState = stack[index][1]; - stack[index][0].exit.call(self, effects); - } + case 'e': + case 'E': + buffer += read(); + lexState = 'decimalExponent'; + return + } - stack.length = size; - } + if (util.isDigit(c)) { + buffer += read(); + return + } - function tokenizeInspect(effects, ok) { - var subcontinued = 0; - inspectResult = {}; - return inspectStart + return newToken('numeric', sign * Number(buffer)) + }, - function inspectStart(code) { - if (subcontinued < stack.length) { - self.containerState = stack[subcontinued][1]; - return effects.attempt( - stack[subcontinued][0].continuation, - inspectContinue, - inspectLess - )(code) - } // If we’re continued but in a concrete flow, we can’t have more - // containers. + decimalPointLeading () { + if (util.isDigit(c)) { + buffer += read(); + lexState = 'decimalFraction'; + return + } - if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { - inspectResult.flowContinue = true; - return inspectDone(code) - } + throw invalidChar(read()) + }, - self.interrupt = - childFlow.currentConstruct && childFlow.currentConstruct.interruptible; - self.containerState = {}; - return effects.attempt( - containerConstruct, - inspectFlowEnd, - inspectDone - )(code) - } + decimalPoint () { + switch (c) { + case 'e': + case 'E': + buffer += read(); + lexState = 'decimalExponent'; + return + } - function inspectContinue(code) { - subcontinued++; - return self.containerState._closeFlow - ? inspectFlowEnd(code) - : inspectStart(code) - } + if (util.isDigit(c)) { + buffer += read(); + lexState = 'decimalFraction'; + return + } - function inspectLess(code) { - if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) { - // Maybe another container? - self.containerState = {}; - return effects.attempt( - containerConstruct, - inspectFlowEnd, // Maybe flow, or a blank line? - effects.attempt( - lazyFlowConstruct, - inspectFlowEnd, - effects.check(partialBlankLine_1, inspectFlowEnd, inspectLazy) - ) - )(code) - } // Otherwise we’re interrupting. + return newToken('numeric', sign * Number(buffer)) + }, - return inspectFlowEnd(code) - } + decimalFraction () { + switch (c) { + case 'e': + case 'E': + buffer += read(); + lexState = 'decimalExponent'; + return + } - function inspectLazy(code) { - // Act as if all containers are continued. - subcontinued = stack.length; - inspectResult.lazy = true; - inspectResult.flowContinue = true; - return inspectDone(code) - } // We’re done with flow if we have more containers, or an interruption. + if (util.isDigit(c)) { + buffer += read(); + return + } - function inspectFlowEnd(code) { - inspectResult.flowEnd = true; - return inspectDone(code) - } + return newToken('numeric', sign * Number(buffer)) + }, - function inspectDone(code) { - inspectResult.continued = subcontinued; - self.interrupt = self.containerState = undefined; - return ok(code) - } - } -} + decimalExponent () { + switch (c) { + case '+': + case '-': + buffer += read(); + lexState = 'decimalExponentSign'; + return + } -function tokenizeContainer(effects, ok, nok) { - return factorySpace( - effects, - effects.attempt(this.parser.constructs.document, ok, nok), - 'linePrefix', - this.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - ) -} + if (util.isDigit(c)) { + buffer += read(); + lexState = 'decimalExponentInteger'; + return + } -function tokenizeLazyFlow(effects, ok, nok) { - return factorySpace( - effects, - effects.lazy(this.parser.constructs.flow, ok, nok), - 'linePrefix', - this.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - ) -} + throw invalidChar(read()) + }, -var tokenize_1$1 = tokenize$1; + decimalExponentSign () { + if (util.isDigit(c)) { + buffer += read(); + lexState = 'decimalExponentInteger'; + return + } -var document$1 = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1$1 -}, '__esModule', {value: true}); + throw invalidChar(read()) + }, -// Counts tabs based on their expanded size, and CR+LF as one character. + decimalExponentInteger () { + if (util.isDigit(c)) { + buffer += read(); + return + } -function sizeChunks(chunks) { - var index = -1; - var size = 0; + return newToken('numeric', sign * Number(buffer)) + }, - while (++index < chunks.length) { - size += typeof chunks[index] === 'string' ? chunks[index].length : 1; - } + hexadecimal () { + if (util.isHexDigit(c)) { + buffer += read(); + lexState = 'hexadecimalInteger'; + return + } - return size -} + throw invalidChar(read()) + }, -var sizeChunks_1 = sizeChunks; + hexadecimalInteger () { + if (util.isHexDigit(c)) { + buffer += read(); + return + } -function prefixSize(events, type) { - var tail = events[events.length - 1]; - if (!tail || tail[1].type !== type) return 0 - return sizeChunks_1(tail[2].sliceStream(tail[1])) -} + return newToken('numeric', sign * Number(buffer)) + }, -var prefixSize_1 = prefixSize; + string () { + switch (c) { + case '\\': + read(); + buffer += escape(); + return -var splice = [].splice; + case '"': + if (doubleQuote) { + read(); + return newToken('string', buffer) + } -var splice_1 = splice; + buffer += read(); + return -// causes a stack overflow in V8 when trying to insert 100k items for instance. + case "'": + if (!doubleQuote) { + read(); + return newToken('string', buffer) + } -function chunkedSplice(list, start, remove, items) { - var end = list.length; - var chunkStart = 0; - var parameters; // Make start between zero and `end` (included). + buffer += read(); + return - if (start < 0) { - start = -start > end ? 0 : end + start; - } else { - start = start > end ? end : start; - } + case '\n': + case '\r': + throw invalidChar(read()) - remove = remove > 0 ? remove : 0; // No need to chunk the items if there’s only a couple (10k) items. + case '\u2028': + case '\u2029': + separatorChar(c); + break - if (items.length < 10000) { - parameters = Array.from(items); - parameters.unshift(start, remove); - splice_1.apply(list, parameters); - } else { - // Delete `remove` items starting from `start` - if (remove) splice_1.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. + case undefined: + throw invalidChar(read()) + } - while (chunkStart < items.length) { - parameters = items.slice(chunkStart, chunkStart + 10000); - parameters.unshift(start, 0); - splice_1.apply(list, parameters); - chunkStart += 10000; - start += 10000; - } - } -} + buffer += read(); + }, -var chunkedSplice_1 = chunkedSplice; + start () { + switch (c) { + case '{': + case '[': + return newToken('punctuator', read()) -function shallow(object) { - return assign_1({}, object) -} + // This code is unreachable since the default lexState handles eof. + // case undefined: + // return newToken('eof') + } -var shallow_1 = shallow; + lexState = 'value'; + }, -function subtokenize(events) { - var jumps = {}; - var index = -1; - var event; - var lineIndex; - var otherIndex; - var otherEvent; - var parameters; - var subevents; - var more; + beforePropertyName () { + switch (c) { + case '$': + case '_': + buffer = read(); + lexState = 'identifierName'; + return - while (++index < events.length) { - while (index in jumps) { - index = jumps[index]; - } + case '\\': + read(); + lexState = 'identifierNameStartEscape'; + return - event = events[index]; // Add a hook for the GFM tasklist extension, which needs to know if text - // is in the first content of a list item. + case '}': + return newToken('punctuator', read()) - if ( - index && - event[1].type === 'chunkFlow' && - events[index - 1][1].type === 'listItemPrefix' - ) { - subevents = event[1]._tokenizer.events; - otherIndex = 0; + case '"': + case "'": + doubleQuote = (read() === '"'); + lexState = 'string'; + return + } - if ( - otherIndex < subevents.length && - subevents[otherIndex][1].type === 'lineEndingBlank' - ) { - otherIndex += 2; - } + if (util.isIdStartChar(c)) { + buffer += read(); + lexState = 'identifierName'; + return + } - if ( - otherIndex < subevents.length && - subevents[otherIndex][1].type === 'content' - ) { - while (++otherIndex < subevents.length) { - if (subevents[otherIndex][1].type === 'content') { - break - } + throw invalidChar(read()) + }, - if (subevents[otherIndex][1].type === 'chunkText') { - subevents[otherIndex][1].isInFirstContentOfListItem = true; - otherIndex++; - } + afterPropertyName () { + if (c === ':') { + return newToken('punctuator', read()) } - } - } // Enter. - if (event[0] === 'enter') { - if (event[1].contentType) { - assign_1(jumps, subcontent(events, index)); - index = jumps[index]; - more = true; - } - } // Exit. - else if (event[1]._container || event[1]._movePreviousLineEndings) { - otherIndex = index; - lineIndex = undefined; + throw invalidChar(read()) + }, - while (otherIndex--) { - otherEvent = events[otherIndex]; + beforePropertyValue () { + lexState = 'value'; + }, - if ( - otherEvent[1].type === 'lineEnding' || - otherEvent[1].type === 'lineEndingBlank' - ) { - if (otherEvent[0] === 'enter') { - if (lineIndex) { - events[lineIndex][1].type = 'lineEndingBlank'; - } + afterPropertyValue () { + switch (c) { + case ',': + case '}': + return newToken('punctuator', read()) + } - otherEvent[1].type = 'lineEnding'; - lineIndex = otherIndex; - } - } else { - break + throw invalidChar(read()) + }, + + beforeArrayValue () { + if (c === ']') { + return newToken('punctuator', read()) } - } - if (lineIndex) { - // Fix position. - event[1].end = shallow_1(events[lineIndex][1].start); // Switch container exit w/ line endings. + lexState = 'value'; + }, - parameters = events.slice(lineIndex, index); - parameters.unshift(event); - chunkedSplice_1(events, lineIndex, index - lineIndex + 1, parameters); - } - } - } + afterArrayValue () { + switch (c) { + case ',': + case ']': + return newToken('punctuator', read()) + } - return !more -} + throw invalidChar(read()) + }, -function subcontent(events, eventIndex) { - var token = events[eventIndex][1]; - var context = events[eventIndex][2]; - var startPosition = eventIndex - 1; - var startPositions = []; - var tokenizer = - token._tokenizer || context.parser[token.contentType](token.start); - var childEvents = tokenizer.events; - var jumps = []; - var gaps = {}; - var stream; - var previous; - var index; - var entered; - var end; - var adjust; // Loop forward through the linked tokens to pass them in order to the - // subtokenizer. + end () { + // This code is unreachable since it's handled by the default lexState. + // if (c === undefined) { + // read() + // return newToken('eof') + // } - while (token) { - // Find the position of the event for this token. - while (events[++startPosition][1] !== token) { - // Empty. + throw invalidChar(read()) + }, +}; + +function newToken (type, value) { + return { + type, + value, + line, + column, } +} - startPositions.push(startPosition); +function literal (s) { + for (const c of s) { + const p = peek(); - if (!token._tokenizer) { - stream = context.sliceStream(token); + if (p !== c) { + throw invalidChar(read()) + } - if (!token.next) { - stream.push(null); - } + read(); + } +} - if (previous) { - tokenizer.defineSkip(token.start); - } +function escape () { + const c = peek(); + switch (c) { + case 'b': + read(); + return '\b' + + case 'f': + read(); + return '\f' - if (token.isInFirstContentOfListItem) { - tokenizer._gfmTasklistFirstContentOfListItem = true; - } + case 'n': + read(); + return '\n' - tokenizer.write(stream); + case 'r': + read(); + return '\r' - if (token.isInFirstContentOfListItem) { - tokenizer._gfmTasklistFirstContentOfListItem = undefined; - } - } // Unravel the next token. + case 't': + read(); + return '\t' - previous = token; - token = token.next; - } // Now, loop back through all events (and linked tokens), to figure out which - // parts belong where. + case 'v': + read(); + return '\v' - token = previous; - index = childEvents.length; + case '0': + read(); + if (util.isDigit(peek())) { + throw invalidChar(read()) + } - while (index--) { - // Make sure we’ve at least seen something (final eol is part of the last - // token). - if (childEvents[index][0] === 'enter') { - entered = true; - } else if ( - // Find a void token that includes a break. - entered && - childEvents[index][1].type === childEvents[index - 1][1].type && - childEvents[index][1].start.line !== childEvents[index][1].end.line - ) { - add(childEvents.slice(index + 1, end)); - // Help GC. - token._tokenizer = token.next = undefined; - token = token.previous; - end = index + 1; - } - } + return '\0' - // Help GC. - tokenizer.events = token._tokenizer = token.next = undefined; // Do head: + case 'x': + read(); + return hexEscape() - add(childEvents.slice(0, end)); - index = -1; - adjust = 0; + case 'u': + read(); + return unicodeEscape() - while (++index < jumps.length) { - gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]; - adjust += jumps[index][1] - jumps[index][0] - 1; - } + case '\n': + case '\u2028': + case '\u2029': + read(); + return '' - return gaps + case '\r': + read(); + if (peek() === '\n') { + read(); + } - function add(slice) { - var start = startPositions.pop(); - jumps.unshift([start, start + slice.length - 1]); - chunkedSplice_1(events, start, 2, slice); - } -} + return '' -var subtokenize_1 = subtokenize; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + throw invalidChar(read()) -// No name because it must not be turned off. -var content$1 = { - tokenize: tokenizeContent, - resolve: resolveContent, - interruptible: true, - lazy: true -}; -var continuationConstruct = { - tokenize: tokenizeContinuation, - partial: true -}; // Content is transparent: it’s parsed right now. That way, definitions are also -// parsed right now: before text in paragraphs (specifically, media) are parsed. + case undefined: + throw invalidChar(read()) + } -function resolveContent(events) { - subtokenize_1(events); - return events + return read() } -function tokenizeContent(effects, ok) { - var previous; - return start - - function start(code) { - effects.enter('content'); - previous = effects.enter('chunkContent', { - contentType: 'content' - }); - return data(code) - } +function hexEscape () { + let buffer = ''; + let c = peek(); - function data(code) { - if (code === null) { - return contentEnd(code) + if (!util.isHexDigit(c)) { + throw invalidChar(read()) } - if (markdownLineEnding_1(code)) { - return effects.check( - continuationConstruct, - contentContinue, - contentEnd - )(code) - } // Data. + buffer += read(); - effects.consume(code); - return data - } + c = peek(); + if (!util.isHexDigit(c)) { + throw invalidChar(read()) + } - function contentEnd(code) { - effects.exit('chunkContent'); - effects.exit('content'); - return ok(code) - } + buffer += read(); - function contentContinue(code) { - effects.consume(code); - effects.exit('chunkContent'); - previous = previous.next = effects.enter('chunkContent', { - contentType: 'content', - previous: previous - }); - return data - } + return String.fromCodePoint(parseInt(buffer, 16)) } -function tokenizeContinuation(effects, ok, nok) { - var self = this; - return startLookahead - - function startLookahead(code) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, prefixed, 'linePrefix') - } +function unicodeEscape () { + let buffer = ''; + let count = 4; - function prefixed(code) { - if (code === null || markdownLineEnding_1(code)) { - return nok(code) - } + while (count-- > 0) { + const c = peek(); + if (!util.isHexDigit(c)) { + throw invalidChar(read()) + } - if ( - self.parser.constructs.disable.null.indexOf('codeIndented') > -1 || - prefixSize_1(self.events, 'linePrefix') < 4 - ) { - return effects.interrupt(self.parser.constructs.flow, nok, ok)(code) + buffer += read(); } - return ok(code) - } + return String.fromCodePoint(parseInt(buffer, 16)) } -var content_1 = content$1; - -var tokenize$2 = initializeFlow; +const parseStates = { + start () { + if (token.type === 'eof') { + throw invalidEOF() + } -function initializeFlow(effects) { - var self = this; - var initial = effects.attempt( - // Try to parse a blank line. - partialBlankLine_1, - atBlankEnding, // Try to parse initial flow (essentially, only code). - effects.attempt( - this.parser.constructs.flowInitial, - afterConstruct, - factorySpace( - effects, - effects.attempt( - this.parser.constructs.flow, - afterConstruct, - effects.attempt(content_1, afterConstruct) - ), - 'linePrefix' - ) - ) - ); - return initial + push$1(); + }, - function atBlankEnding(code) { - if (code === null) { - effects.consume(code); - return - } + beforePropertyName () { + switch (token.type) { + case 'identifier': + case 'string': + key = token.value; + parseState = 'afterPropertyName'; + return - effects.enter('lineEndingBlank'); - effects.consume(code); - effects.exit('lineEndingBlank'); - self.currentConstruct = undefined; - return initial - } + case 'punctuator': + // This code is unreachable since it's handled by the lexState. + // if (token.value !== '}') { + // throw invalidToken() + // } - function afterConstruct(code) { - if (code === null) { - effects.consume(code); - return - } + pop(); + return - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - self.currentConstruct = undefined; - return initial - } -} + case 'eof': + throw invalidEOF() + } -var tokenize_1$2 = tokenize$2; + // This code is unreachable since it's handled by the lexState. + // throw invalidToken() + }, -var flow = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1$2 -}, '__esModule', {value: true}); + afterPropertyName () { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator' || token.value !== ':') { + // throw invalidToken() + // } -var text = initializeFactory('text'); -var string = initializeFactory('string'); -var resolver = { - resolveAll: createResolver() -}; + if (token.type === 'eof') { + throw invalidEOF() + } -function initializeFactory(field) { - return { - tokenize: initializeText, - resolveAll: createResolver( - field === 'text' ? resolveAllLineSuffixes : undefined - ) - } + parseState = 'beforePropertyValue'; + }, - function initializeText(effects) { - var self = this; - var constructs = this.parser.constructs[field]; - var text = effects.attempt(constructs, start, notText); - return start + beforePropertyValue () { + if (token.type === 'eof') { + throw invalidEOF() + } - function start(code) { - return atBreak(code) ? text(code) : notText(code) - } + push$1(); + }, - function notText(code) { - if (code === null) { - effects.consume(code); - return - } + beforeArrayValue () { + if (token.type === 'eof') { + throw invalidEOF() + } - effects.enter('data'); - effects.consume(code); - return data - } + if (token.type === 'punctuator' && token.value === ']') { + pop(); + return + } - function data(code) { - if (atBreak(code)) { - effects.exit('data'); - return text(code) - } // Data. + push$1(); + }, - effects.consume(code); - return data - } + afterPropertyValue () { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator') { + // throw invalidToken() + // } - function atBreak(code) { - var list = constructs[code]; - var index = -1; + if (token.type === 'eof') { + throw invalidEOF() + } - if (code === null) { - return true - } + switch (token.value) { + case ',': + parseState = 'beforePropertyName'; + return - if (list) { - while (++index < list.length) { - if ( - !list[index].previous || - list[index].previous.call(self, self.previous) - ) { - return true - } + case '}': + pop(); } - } - } - } -} -function createResolver(extraResolver) { - return resolveAllText + // This code is unreachable since it's handled by the lexState. + // throw invalidToken() + }, - function resolveAllText(events, context) { - var index = -1; - var enter; // A rather boring computation (to merge adjacent `data` events) which - // improves mm performance by 29%. + afterArrayValue () { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator') { + // throw invalidToken() + // } - while (++index <= events.length) { - if (enter === undefined) { - if (events[index] && events[index][1].type === 'data') { - enter = index; - index++; + if (token.type === 'eof') { + throw invalidEOF() } - } else if (!events[index] || events[index][1].type !== 'data') { - // Don’t do anything if there is one data token. - if (index !== enter + 2) { - events[enter][1].end = events[index - 1][1].end; - events.splice(enter + 2, index - enter - 2); - index = enter + 2; + + switch (token.value) { + case ',': + parseState = 'beforeArrayValue'; + return + + case ']': + pop(); } - enter = undefined; - } - } + // This code is unreachable since it's handled by the lexState. + // throw invalidToken() + }, - return extraResolver ? extraResolver(events, context) : events - } -} // A rather ugly set of instructions which again looks at chunks in the input -// stream. -// The reason to do this here is that it is *much* faster to parse in reverse. -// And that we can’t hook into `null` to split the line suffix before an EOF. -// To do: figure out if we can make this into a clean utility, or even in core. -// As it will be useful for GFMs literal autolink extension (and maybe even -// tables?) + end () { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'eof') { + // throw invalidToken() + // } + }, +}; -function resolveAllLineSuffixes(events, context) { - var eventIndex = -1; - var chunks; - var data; - var chunk; - var index; - var bufferIndex; - var size; - var tabs; - var token; +function push$1 () { + let value; - while (++eventIndex <= events.length) { - if ( - (eventIndex === events.length || - events[eventIndex][1].type === 'lineEnding') && - events[eventIndex - 1][1].type === 'data' - ) { - data = events[eventIndex - 1][1]; - chunks = context.sliceStream(data); - index = chunks.length; - bufferIndex = -1; - size = 0; - tabs = undefined; + switch (token.type) { + case 'punctuator': + switch (token.value) { + case '{': + value = {}; + break - while (index--) { - chunk = chunks[index]; + case '[': + value = []; + break + } - if (typeof chunk === 'string') { - bufferIndex = chunk.length; + break - while (chunk.charCodeAt(bufferIndex - 1) === 32) { - size++; - bufferIndex--; - } + case 'null': + case 'boolean': + case 'numeric': + case 'string': + value = token.value; + break - if (bufferIndex) break - bufferIndex = -1; - } // Number - else if (chunk === -2) { - tabs = true; - size++; - } else if (chunk === -1); - else { - // Replacement character, exit. - index++; - break + // This code is unreachable. + // default: + // throw invalidToken() + } + + if (root$1 === undefined) { + root$1 = value; + } else { + const parent = stack[stack.length - 1]; + if (Array.isArray(parent)) { + parent.push(value); + } else { + parent[key] = value; } - } + } - if (size) { - token = { - type: - eventIndex === events.length || tabs || size < 2 - ? 'lineSuffix' - : 'hardBreakTrailing', - start: { - line: data.end.line, - column: data.end.column - size, - offset: data.end.offset - size, - _index: data.start._index + index, - _bufferIndex: index - ? bufferIndex - : data.start._bufferIndex + bufferIndex - }, - end: shallow_1(data.end) - }; - data.end = shallow_1(token.start); + if (value !== null && typeof value === 'object') { + stack.push(value); - if (data.start.offset === data.end.offset) { - assign_1(data, token); + if (Array.isArray(value)) { + parseState = 'beforeArrayValue'; } else { - events.splice( - eventIndex, - 0, - ['enter', token, context], - ['exit', token, context] - ); - eventIndex += 2; + parseState = 'beforePropertyName'; + } + } else { + const current = stack[stack.length - 1]; + if (current == null) { + parseState = 'end'; + } else if (Array.isArray(current)) { + parseState = 'afterArrayValue'; + } else { + parseState = 'afterPropertyValue'; } - } - - eventIndex++; } - } - - return events } -var resolver_1 = resolver; -var string_1 = string; -var text_2 = text; - -var text_1 = /*#__PURE__*/Object.defineProperty({ - resolver: resolver_1, - string: string_1, - text: text_2 -}, '__esModule', {value: true}); - -function combineExtensions(extensions) { - var all = {}; - var index = -1; - - while (++index < extensions.length) { - extension$1(all, extensions[index]); - } +function pop () { + stack.pop(); - return all + const current = stack[stack.length - 1]; + if (current == null) { + parseState = 'end'; + } else if (Array.isArray(current)) { + parseState = 'afterArrayValue'; + } else { + parseState = 'afterPropertyValue'; + } } -function extension$1(all, extension) { - var hook; - var left; - var right; - var code; +// This code is unreachable. +// function invalidParseState () { +// return new Error(`JSON5: invalid parse state '${parseState}'`) +// } - for (hook in extension) { - left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {}); - right = extension[hook]; +// This code is unreachable. +// function invalidLexState (state) { +// return new Error(`JSON5: invalid lex state '${state}'`) +// } - for (code in right) { - left[code] = constructs( - miniflat_1(right[code]), - hasOwnProperty.call(left, code) ? left[code] : [] - ); +function invalidChar (c) { + if (c === undefined) { + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) } - } -} - -function constructs(list, existing) { - var index = -1; - var before = []; - while (++index < list.length) { -(list[index].add === 'after' ? existing : before).push(list[index]); - } + return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) +} - chunkedSplice_1(existing, 0, 0, before); - return existing +function invalidEOF () { + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) } -var combineExtensions_1 = combineExtensions; +// This code is unreachable. +// function invalidToken () { +// if (token.type === 'eof') { +// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) +// } -function chunkedPush(list, items) { - if (list.length) { - chunkedSplice_1(list, list.length, 0, items); - return list - } +// const c = String.fromCodePoint(token.value.codePointAt(0)) +// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) +// } - return items +function invalidIdentifier () { + column -= 5; + return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`) } -var chunkedPush_1 = chunkedPush; +function separatorChar (c) { + console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`); +} -function resolveAll(constructs, events, context) { - var called = []; - var index = -1; - var resolve; +function formatChar (c) { + const replacements = { + "'": "\\'", + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\v': '\\v', + '\0': '\\0', + '\u2028': '\\u2028', + '\u2029': '\\u2029', + }; - while (++index < constructs.length) { - resolve = constructs[index].resolveAll; + if (replacements[c]) { + return replacements[c] + } - if (resolve && called.indexOf(resolve) < 0) { - events = resolve(events, context); - called.push(resolve); + if (c < ' ') { + const hexString = c.charCodeAt(0).toString(16); + return '\\x' + ('00' + hexString).substring(hexString.length) } - } - return events + return c } -var resolveAll_1 = resolveAll; - -function serializeChunks(chunks) { - var index = -1; - var result = []; - var chunk; - var value; - var atTab; +function syntaxError (message) { + const err = new SyntaxError(message); + err.lineNumber = line; + err.columnNumber = column; + return err +} - while (++index < chunks.length) { - chunk = chunks[index]; +var stringify = function stringify (value, replacer, space) { + const stack = []; + let indent = ''; + let propertyList; + let replacerFunc; + let gap = ''; + let quote; - if (typeof chunk === 'string') { - value = chunk; - } else if (chunk === -5) { - value = '\r'; - } else if (chunk === -4) { - value = '\n'; - } else if (chunk === -3) { - value = '\r' + '\n'; - } else if (chunk === -2) { - value = '\t'; - } else if (chunk === -1) { - if (atTab) continue - value = ' '; - } else { - // Currently only replacement character. - value = fromCharCode_1(chunk); + if ( + replacer != null && + typeof replacer === 'object' && + !Array.isArray(replacer) + ) { + space = replacer.space; + quote = replacer.quote; + replacer = replacer.replacer; } - atTab = chunk === -2; - result.push(value); - } - - return result.join('') -} - -var serializeChunks_1 = serializeChunks; + if (typeof replacer === 'function') { + replacerFunc = replacer; + } else if (Array.isArray(replacer)) { + propertyList = []; + for (const v of replacer) { + let item; -function sliceChunks(chunks, token) { - var startIndex = token.start._index; - var startBufferIndex = token.start._bufferIndex; - var endIndex = token.end._index; - var endBufferIndex = token.end._bufferIndex; - var view; + if (typeof v === 'string') { + item = v; + } else if ( + typeof v === 'number' || + v instanceof String || + v instanceof Number + ) { + item = String(v); + } - if (startIndex === endIndex) { - view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]; - } else { - view = chunks.slice(startIndex, endIndex); + if (item !== undefined && propertyList.indexOf(item) < 0) { + propertyList.push(item); + } + } + } - if (startBufferIndex > -1) { - view[0] = view[0].slice(startBufferIndex); + if (space instanceof Number) { + space = Number(space); + } else if (space instanceof String) { + space = String(space); } - if (endBufferIndex > 0) { - view.push(chunks[endIndex].slice(0, endBufferIndex)); + if (typeof space === 'number') { + if (space > 0) { + space = Math.min(10, Math.floor(space)); + gap = ' '.substr(0, space); + } + } else if (typeof space === 'string') { + gap = space.substr(0, 10); } - } - return view -} + return serializeProperty('', {'': value}) -var sliceChunks_1 = sliceChunks; + function serializeProperty (key, holder) { + let value = holder[key]; + if (value != null) { + if (typeof value.toJSON5 === 'function') { + value = value.toJSON5(key); + } else if (typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + } -// Create a tokenizer. -// Tokenizers deal with one type of data (e.g., containers, flow, text). -// The parser is the object dealing with it all. -// `initialize` works like other constructs, except that only its `tokenize` -// function is used, in which case it doesn’t receive an `ok` or `nok`. -// `from` can be given to set the point before the first character, although -// when further lines are indented, they must be set with `defineSkip`. -function createTokenizer(parser, initialize, from) { - var point = from - ? shallow_1(from) - : { - line: 1, - column: 1, - offset: 0 - }; - var columnStart = {}; - var resolveAllConstructs = []; - var chunks = []; - var stack = []; - - var effects = { - consume: consume, - enter: enter, - exit: exit, - attempt: constructFactory(onsuccessfulconstruct), - check: constructFactory(onsuccessfulcheck), - interrupt: constructFactory(onsuccessfulcheck, { - interrupt: true - }), - lazy: constructFactory(onsuccessfulcheck, { - lazy: true - }) - }; // State and tools for resolving and serializing. + if (replacerFunc) { + value = replacerFunc.call(holder, key, value); + } - var context = { - previous: null, - events: [], - parser: parser, - sliceStream: sliceStream, - sliceSerialize: sliceSerialize, - now: now, - defineSkip: skip, - write: write - }; // The state function. + if (value instanceof Number) { + value = Number(value); + } else if (value instanceof String) { + value = String(value); + } else if (value instanceof Boolean) { + value = value.valueOf(); + } - var state = initialize.tokenize.call(context, effects); // Track which character we expect to be consumed, to catch bugs. + switch (value) { + case null: return 'null' + case true: return 'true' + case false: return 'false' + } - if (initialize.resolveAll) { - resolveAllConstructs.push(initialize); - } // Store where we are in the input stream. + if (typeof value === 'string') { + return quoteString(value) + } - point._index = 0; - point._bufferIndex = -1; - return context + if (typeof value === 'number') { + return String(value) + } - function write(slice) { - chunks = chunkedPush_1(chunks, slice); - main(); // Exit if we’re not done, resolve might change stuff. + if (typeof value === 'object') { + return Array.isArray(value) ? serializeArray(value) : serializeObject(value) + } - if (chunks[chunks.length - 1] !== null) { - return [] + return undefined } - addResult(initialize, 0); // Otherwise, resolve, and exit. + function quoteString (value) { + const quotes = { + "'": 0.1, + '"': 0.2, + }; - context.events = resolveAll_1(resolveAllConstructs, context.events, context); - return context.events - } // - // Tools. - // + const replacements = { + "'": "\\'", + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\v': '\\v', + '\0': '\\0', + '\u2028': '\\u2028', + '\u2029': '\\u2029', + }; - function sliceSerialize(token) { - return serializeChunks_1(sliceStream(token)) - } + let product = ''; - function sliceStream(token) { - return sliceChunks_1(chunks, token) - } + for (let i = 0; i < value.length; i++) { + const c = value[i]; + switch (c) { + case "'": + case '"': + quotes[c]++; + product += c; + continue - function now() { - return shallow_1(point) - } + case '\0': + if (util.isDigit(value[i + 1])) { + product += '\\x00'; + continue + } + } - function skip(value) { - columnStart[value.line] = value.column; - accountForPotentialSkip(); - } // - // State management. - // - // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by - // `consume`). - // Here is where we walk through the chunks, which either include strings of - // several characters, or numerical character codes. - // The reason to do this in a loop instead of a call is so the stack can - // drain. + if (replacements[c]) { + product += replacements[c]; + continue + } - function main() { - var chunkIndex; - var chunk; + if (c < ' ') { + let hexString = c.charCodeAt(0).toString(16); + product += '\\x' + ('00' + hexString).substring(hexString.length); + continue + } - while (point._index < chunks.length) { - chunk = chunks[point._index]; // If we’re in a buffer chunk, loop through it. + product += c; + } - if (typeof chunk === 'string') { - chunkIndex = point._index; + const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b); - if (point._bufferIndex < 0) { - point._bufferIndex = 0; + product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]); + + return quoteChar + product + quoteChar + } + + function serializeObject (value) { + if (stack.indexOf(value) >= 0) { + throw TypeError('Converting circular structure to JSON5') } - while ( - point._index === chunkIndex && - point._bufferIndex < chunk.length - ) { - go(chunk.charCodeAt(point._bufferIndex)); + stack.push(value); + + let stepback = indent; + indent = indent + gap; + + let keys = propertyList || Object.keys(value); + let partial = []; + for (const key of keys) { + const propertyString = serializeProperty(key, value); + if (propertyString !== undefined) { + let member = serializeKey(key) + ':'; + if (gap !== '') { + member += ' '; + } + member += propertyString; + partial.push(member); + } } - } else { - go(chunk); - } - } - } // Deal with one code. - function go(code) { - state = state(code); - } // Move a character forward. + let final; + if (partial.length === 0) { + final = '{}'; + } else { + let properties; + if (gap === '') { + properties = partial.join(','); + final = '{' + properties + '}'; + } else { + let separator = ',\n' + indent; + properties = partial.join(separator); + final = '{\n' + indent + properties + ',\n' + stepback + '}'; + } + } - function consume(code) { - if (markdownLineEnding_1(code)) { - point.line++; - point.column = 1; - point.offset += code === -3 ? 2 : 1; - accountForPotentialSkip(); - } else if (code !== -1) { - point.column++; - point.offset++; - } // Not in a string chunk. + stack.pop(); + indent = stepback; + return final + } - if (point._bufferIndex < 0) { - point._index++; - } else { - point._bufferIndex++; // At end of string chunk. + function serializeKey (key) { + if (key.length === 0) { + return quoteString(key) + } - if (point._bufferIndex === chunks[point._index].length) { - point._bufferIndex = -1; - point._index++; - } - } // Expose the previous character. + const firstChar = String.fromCodePoint(key.codePointAt(0)); + if (!util.isIdStartChar(firstChar)) { + return quoteString(key) + } - context.previous = code; // Mark as consumed. - } // Start a token. + for (let i = firstChar.length; i < key.length; i++) { + if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { + return quoteString(key) + } + } - function enter(type, fields) { - var token = fields || {}; - token.type = type; - token.start = now(); - context.events.push(['enter', token, context]); - stack.push(token); - return token - } // Stop a token. + return key + } - function exit(type) { - var token = stack.pop(); - token.end = now(); - context.events.push(['exit', token, context]); - return token - } // Use results. + function serializeArray (value) { + if (stack.indexOf(value) >= 0) { + throw TypeError('Converting circular structure to JSON5') + } - function onsuccessfulconstruct(construct, info) { - addResult(construct, info.from); - } // Discard results. + stack.push(value); - function onsuccessfulcheck(construct, info) { - info.restore(); - } // Factory to attempt/check/interrupt. + let stepback = indent; + indent = indent + gap; - function constructFactory(onreturn, fields) { - return hook // Handle either an object mapping codes to constructs, a list of - // constructs, or a single construct. + let partial = []; + for (let i = 0; i < value.length; i++) { + const propertyString = serializeProperty(String(i), value); + partial.push((propertyString !== undefined) ? propertyString : 'null'); + } - function hook(constructs, returnState, bogusState) { - var listOfConstructs; - var constructIndex; - var currentConstruct; - var info; - return constructs.tokenize || 'length' in constructs - ? handleListOfConstructs(miniflat_1(constructs)) - : handleMapOfConstructs - - function handleMapOfConstructs(code) { - if (code in constructs || null in constructs) { - return handleListOfConstructs( - constructs.null - ? /* c8 ignore next */ - miniflat_1(constructs[code]).concat(miniflat_1(constructs.null)) - : constructs[code] - )(code) + let final; + if (partial.length === 0) { + final = '[]'; + } else { + if (gap === '') { + let properties = partial.join(','); + final = '[' + properties + ']'; + } else { + let separator = ',\n' + indent; + let properties = partial.join(separator); + final = '[\n' + indent + properties + ',\n' + stepback + ']'; + } } - return bogusState(code) - } + stack.pop(); + indent = stepback; + return final + } +}; - function handleListOfConstructs(list) { - listOfConstructs = list; - constructIndex = 0; - return handleConstruct(list[constructIndex]) - } +const JSON5 = { + parse: parse$1, + stringify, +}; - function handleConstruct(construct) { - return start +var lib = JSON5; - function start(code) { - // To do: not nede to store if there is no bogus state, probably? - // Currently doesn’t work because `inspect` in document does a check - // w/o a bogus, which doesn’t make sense. But it does seem to help perf - // by not storing. - info = store(); - currentConstruct = construct; +/** + * @typedef Option + * @property {'boolean'|'string'} [type='string'] + * @property {string} long + * @property {string} description + * @property {string} [value] + * @property {string} [short] + * @property {boolean|string} [default=''] + * @property {boolean} [truelike=false] + */ - if (!construct.partial) { - context.currentConstruct = construct; - } +/** @type {Option[]} */ +const schema = [ + { + long: 'help', + description: 'output usage information', + short: 'h', + type: 'boolean', + default: false + }, + { + long: 'version', + description: 'output version number', + short: 'v', + type: 'boolean', + default: false + }, + { + long: 'output', + description: 'specify output location', + short: 'o', + value: '[path]' + }, + { + long: 'rc-path', + description: 'specify configuration file', + short: 'r', + type: 'string', + value: '' + }, + { + long: 'ignore-path', + description: 'specify ignore file', + short: 'i', + type: 'string', + value: '' + }, + { + long: 'setting', + description: 'specify settings', + short: 's', + type: 'string', + value: '' + }, + { + long: 'ext', + description: 'specify extensions', + short: 'e', + type: 'string', + value: '' + }, + { + long: 'use', + description: 'use plugins', + short: 'u', + type: 'string', + value: '' + }, + { + long: 'watch', + description: 'watch for changes and reprocess', + short: 'w', + type: 'boolean', + default: false + }, + { + long: 'quiet', + description: 'output only warnings and errors', + short: 'q', + type: 'boolean', + default: false + }, + { + long: 'silent', + description: 'output only errors', + short: 'S', + type: 'boolean', + default: false + }, + { + long: 'frail', + description: 'exit with 1 on warnings', + short: 'f', + type: 'boolean', + default: false + }, + { + long: 'tree', + description: 'specify input and output as syntax tree', + short: 't', + type: 'boolean', + default: false + }, + { + long: 'report', + description: 'specify reporter', + type: 'string', + value: '' + }, + { + long: 'file-path', + description: 'specify path to process as', + type: 'string', + value: '' + }, + { + long: 'ignore-path-resolve-from', + description: 'resolve patterns in `ignore-path` from its directory or cwd', + type: 'string', + value: 'dir|cwd', + default: 'dir' + }, + { + long: 'ignore-pattern', + description: 'specify ignore patterns', + type: 'string', + value: '' + }, + { + long: 'silently-ignore', + description: 'do not fail when given ignored files', + type: 'boolean' + }, + { + long: 'tree-in', + description: 'specify input as syntax tree', + type: 'boolean' + }, + { + long: 'tree-out', + description: 'output syntax tree', + type: 'boolean' + }, + { + long: 'inspect', + description: 'output formatted syntax tree', + type: 'boolean' + }, + { + long: 'stdout', + description: 'specify writing to stdout', + type: 'boolean', + truelike: true + }, + { + long: 'color', + description: 'specify color in report', + type: 'boolean', + default: true + }, + { + long: 'config', + description: 'search for configuration files', + type: 'boolean', + default: true + }, + { + long: 'ignore', + description: 'search for ignore files', + type: 'boolean', + default: true + } +]; - if ( - construct.name && - context.parser.constructs.disable.null.indexOf(construct.name) > -1 - ) { - return nok() - } +/** + * @typedef {import('unified-engine').Options} EngineOptions + * @typedef {import('./schema.js').Option} Option + * + * @typedef {Required< + * Pick< + * EngineOptions, + * | 'extensions' + * | 'ignoreName' + * | 'packageField' + * | 'pluginPrefix' + * | 'processor' + * | 'rcName' + * > + * >} RequiredEngineOptions + * + * @typedef ArgsOptionsFields + * @property {string} name + * Name of executable + * @property {string} description + * Description of executable + * @property {string} version + * Version (semver) of executable + * + * @typedef {RequiredEngineOptions & Pick & ArgsOptionsFields} Options + */ - return construct.tokenize.call( - fields ? assign_1({}, context, fields) : context, - effects, - ok, - nok - )(code) - } - } +const own$7 = {}.hasOwnProperty; - function ok(code) { - onreturn(currentConstruct, info); - return returnState - } +/** + * Schema for `minimist`. + */ +const minischema = { + unknown: handleUnknownArgument, + /** @type {Record} */ + default: {}, + /** @type {Record} */ + alias: {}, + /** @type {string[]} */ + string: [], + /** @type {string[]} */ + boolean: [] +}; - function nok(code) { - info.restore(); +let index = -1; +while (++index < schema.length) { + addEach(schema[index]); +} - if (++constructIndex < listOfConstructs.length) { - return handleConstruct(listOfConstructs[constructIndex]) - } +/** + * Parse CLI options. + * + * @param {string[]} flags + * @param {Options} configuration + */ +function options(flags, configuration) { + const extension = configuration.extensions[0]; + const name = configuration.name; + const config = toCamelCase(minimist(flags, minischema)); + let index = -1; - return bogusState - } + while (++index < schema.length) { + const option = schema[index]; + if (option.type === 'string' && config[option.long] === '') { + throw fault('Missing value:%s', inspect(option).join(' ')) } } - function addResult(construct, from) { - if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) { - resolveAllConstructs.push(construct); - } - - if (construct.resolve) { - chunkedSplice_1( - context.events, - from, - context.events.length - from, - construct.resolve(context.events.slice(from), context) - ); - } + const ext = commaSeparated(/** @type {string} */ (config.ext)); + const report = reporter(/** @type {string} */ (config.report)); + const help = [ + inspectAll(schema), + '', + 'Examples:', + '', + ' # Process `input.' + extension + '`', + ' $ ' + name + ' input.' + extension + ' -o output.' + extension, + '', + ' # Pipe', + ' $ ' + name + ' < input.' + extension + ' > output.' + extension, + '', + ' # Rewrite all applicable files', + ' $ ' + name + ' . -o' + ].join('\n'); - if (construct.resolveTo) { - context.events = construct.resolveTo(context.events, context); - } + return { + helpMessage: help, + cwd: configuration.cwd, + processor: configuration.processor, + help: config.help, + version: config.version, + files: config._, + filePath: config.filePath, + watch: config.watch, + extensions: ext.length === 0 ? configuration.extensions : ext, + output: config.output, + out: config.stdout, + tree: config.tree, + treeIn: config.treeIn, + treeOut: config.treeOut, + inspect: config.inspect, + rcName: configuration.rcName, + packageField: configuration.packageField, + rcPath: config.rcPath, + detectConfig: config.config, + settings: /** @type {Record} */ ( + settings(/** @type {string} */ (config.setting)) + ), + ignoreName: configuration.ignoreName, + ignorePath: config.ignorePath, + ignorePathResolveFrom: config.ignorePathResolveFrom, + ignorePatterns: commaSeparated( + /** @type {string} */ (config.ignorePattern) + ), + silentlyIgnore: config.silentlyIgnore, + detectIgnore: config.ignore, + pluginPrefix: configuration.pluginPrefix, + plugins: plugins$2(/** @type {string} */ (config.use)), + reporter: report[0], + reporterOptions: report[1], + color: config.color, + silent: config.silent, + quiet: config.quiet, + frail: config.frail } +} + +/** + * @param {Option} option + */ +function addEach(option) { + const value = option.default; - function store() { - var startPoint = now(); - var startPrevious = context.previous; - var startCurrentConstruct = context.currentConstruct; - var startEventsIndex = context.events.length; - var startStack = Array.from(stack); - return { - restore: restore, - from: startEventsIndex - } + minischema.default[option.long] = value === undefined ? null : value; - function restore() { - point = startPoint; - context.previous = startPrevious; - context.currentConstruct = startCurrentConstruct; - context.events.length = startEventsIndex; - stack = startStack; - accountForPotentialSkip(); - } + if (option.type && option.type in minischema) { + minischema[option.type].push(option.long); } - function accountForPotentialSkip() { - if (point.line in columnStart && point.column < 2) { - point.column = columnStart[point.line]; - point.offset += columnStart[point.line] - 1; - } + if (option.short) { + minischema.alias[option.short] = option.long; } } -var createTokenizer_1 = createTokenizer; - -function markdownLineEndingOrSpace(code) { - return code < 0 || code === 32 +/** + * Parse `extensions`. + * + * @param {string[]|string|null|undefined} value + * @returns {string[]} + */ +function commaSeparated(value) { + return flatten(normalize(value).map((d) => splitList(d))) } -var markdownLineEndingOrSpace_1 = markdownLineEndingOrSpace; - -function regexCheck(regex) { - return check +/** + * Parse `plugins`. + * + * @param {string[]|string|null|undefined} value + * @returns {Record|undefined>} + */ +function plugins$2(value) { + const normalized = normalize(value).map((d) => splitOptions(d)); + let index = -1; + /** @type {Record|undefined>} */ + const result = {}; - function check(code) { - return regex.test(fromCharCode_1(code)) + while (++index < normalized.length) { + const value = normalized[index]; + result[value[0]] = value[1] ? parseConfig(value[1], {}) : undefined; } -} -var regexCheck_1 = regexCheck; - -// This module is generated by `script/`. -// -// CommonMark handles attention (emphasis, strong) markers based on what comes -// before or after them. -// One such difference is if those characters are Unicode punctuation. -// This script is generated from the Unicode data. -var unicodePunctuation = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; + return result +} -var unicodePunctuationRegex = unicodePunctuation; +/** + * Parse `reporter`: only one is accepted. + * + * @param {string[]|string|null|undefined} value + * @returns {[string|undefined, Record|undefined]} + */ +function reporter(value) { + const all = normalize(value) + .map((d) => splitOptions(d)) + .map( + /** + * @returns {[string, Record|undefined]} + */ + (value) => [value[0], value[1] ? parseConfig(value[1], {}) : undefined] + ); -// In fact adds to the bundle size. + return all[all.length - 1] || [] +} -var unicodePunctuation$1 = regexCheck_1(unicodePunctuationRegex); +/** + * Parse `settings`. + * + * @param {string[]|string|null|undefined} value + * @returns {Record} + */ +function settings(value) { + const normalized = normalize(value); + let index = -1; + /** @type {Record} */ + const cache = {}; -var unicodePunctuation_1 = unicodePunctuation$1; + while (++index < normalized.length) { + parseConfig(normalized[index], cache); + } -var unicodeWhitespace = regexCheck_1(/\s/); + return cache +} -var unicodeWhitespace_1 = unicodeWhitespace; +/** + * Parse configuration. + * + * @param {string} value + * @param {Record} cache + * @returns {Record} + */ +function parseConfig(value, cache) { + /** @type {Record} */ + let flags; + /** @type {string} */ + let flag; -// Classify whether a character is unicode whitespace, unicode punctuation, or -// anything else. -// Used for attention (emphasis, strong), whose sequences can open or close -// based on the class of surrounding characters. -function classifyCharacter(code) { - if ( - code === null || - markdownLineEndingOrSpace_1(code) || - unicodeWhitespace_1(code) - ) { - return 1 + try { + flags = toCamelCase(parseJSON(value)); + } catch (error) { + throw fault( + 'Cannot parse `%s` as JSON: %s', + value, + // Fix position + error.message.replace(/at(?= position)/, 'around') + ) } - if (unicodePunctuation_1(code)) { - return 2 + for (flag in flags) { + if (own$7.call(flags, flag)) { + cache[flag] = flags[flag]; + } } + + return cache } -var classifyCharacter_1 = classifyCharacter; +/** + * Handle an unknown flag. + * + * @param {string} flag + * @returns {boolean} + */ +function handleUnknownArgument(flag) { + // Not a glob. + if (flag.charAt(0) === '-') { + // Long options, always unknown. + if (flag.charAt(1) === '-') { + throw fault( + 'Unknown option `%s`, expected:\n%s', + flag, + inspectAll(schema) + ) + } + + // Short options, can be grouped. + const found = flag.slice(1).split(''); + const known = schema.filter((d) => d.short); + const knownKeys = new Set(known.map((d) => d.short)); + let index = -1; -// chunks (replacement characters, tabs, or line endings). + while (++index < found.length) { + const key = found[index]; + if (!knownKeys.has(key)) { + throw fault( + 'Unknown short option `-%s`, expected:\n%s', + key, + inspectAll(known) + ) + } + } + } -function movePoint(point, offset) { - point.column += offset; - point.offset += offset; - point._bufferIndex += offset; - return point + return true } -var movePoint_1 = movePoint; +/** + * Inspect all `options`. + * + * @param {Option[]} options + * @returns {string} + */ +function inspectAll(options) { + return textTable(options.map((d) => inspect(d))) +} -var attention = { - name: 'attention', - tokenize: tokenizeAttention, - resolveAll: resolveAllAttention -}; +/** + * Inspect one `option`. + * + * @param {Option} option + * @returns {string[]} + */ +function inspect(option) { + let description = option.description; + let long = option.long; -function resolveAllAttention(events, context) { - var index = -1; - var open; - var group; - var text; - var openingSequence; - var closingSequence; - var use; - var nextEvents; - var offset; // Walk through all events. - // - // Note: performance of this is fine on an mb of normal markdown, but it’s - // a bottleneck for malicious stuff. + if (option.default === true || option.truelike) { + description += ' (on by default)'; + long = '[no-]' + long; + } - while (++index < events.length) { - // Find a token that can close. - if ( - events[index][0] === 'enter' && - events[index][1].type === 'attentionSequence' && - events[index][1]._close - ) { - open = index; // Now walk back to find an opener. + return [ + '', + option.short ? '-' + option.short : '', + '--' + long + (option.value ? ' ' + option.value : ''), + description + ] +} - while (open--) { - // Find a token that can open the closer. - if ( - events[open][0] === 'exit' && - events[open][1].type === 'attentionSequence' && - events[open][1]._open && // If the markers are the same: - context.sliceSerialize(events[open][1]).charCodeAt(0) === - context.sliceSerialize(events[index][1]).charCodeAt(0) - ) { - // If the opening can close or the closing can open, - // and the close size *is not* a multiple of three, - // but the sum of the opening and closing size *is* multiple of three, - // then don’t match. - if ( - (events[open][1]._close || events[index][1]._open) && - (events[index][1].end.offset - events[index][1].start.offset) % 3 && - !( - (events[open][1].end.offset - - events[open][1].start.offset + - events[index][1].end.offset - - events[index][1].start.offset) % - 3 - ) - ) { - continue - } // Number of markers to use from the sequence. +/** + * Normalize `value`. + * + * @param {string[]|string|null|undefined} value + * @returns {string[]} + */ +function normalize(value) { + if (!value) { + return [] + } - use = - events[open][1].end.offset - events[open][1].start.offset > 1 && - events[index][1].end.offset - events[index][1].start.offset > 1 - ? 2 - : 1; - openingSequence = { - type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start: movePoint_1(shallow_1(events[open][1].end), -use), - end: shallow_1(events[open][1].end) - }; - closingSequence = { - type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start: shallow_1(events[index][1].start), - end: movePoint_1(shallow_1(events[index][1].start), use) - }; - text = { - type: use > 1 ? 'strongText' : 'emphasisText', - start: shallow_1(events[open][1].end), - end: shallow_1(events[index][1].start) - }; - group = { - type: use > 1 ? 'strong' : 'emphasis', - start: shallow_1(openingSequence.start), - end: shallow_1(closingSequence.end) - }; - events[open][1].end = shallow_1(openingSequence.start); - events[index][1].start = shallow_1(closingSequence.end); - nextEvents = []; // If there are more markers in the opening, add them before. + if (typeof value === 'string') { + return [value] + } - if (events[open][1].end.offset - events[open][1].start.offset) { - nextEvents = chunkedPush_1(nextEvents, [ - ['enter', events[open][1], context], - ['exit', events[open][1], context] - ]); - } // Opening. + return flatten(value.map((d) => normalize(d))) +} - nextEvents = chunkedPush_1(nextEvents, [ - ['enter', group, context], - ['enter', openingSequence, context], - ['exit', openingSequence, context], - ['enter', text, context] - ]); // Between. +/** + * Flatten `values`. + * + * @param {string|string[]|string[][]} values + * @returns {string[]} + */ +function flatten(values) { + // @ts-expect-error: TS is wrong. + return values.flat() +} - nextEvents = chunkedPush_1( - nextEvents, - resolveAll_1( - context.parser.constructs.insideSpan.null, - events.slice(open + 1, index), - context - ) - ); // Closing. +/** + * @param {string} value + * @returns {string[]} + */ +function splitOptions(value) { + return value.split('=') +} - nextEvents = chunkedPush_1(nextEvents, [ - ['exit', text, context], - ['enter', closingSequence, context], - ['exit', closingSequence, context], - ['exit', group, context] - ]); // If there are more markers in the closing, add them after. +/** + * @param {string} value + * @returns {string[]} + */ +function splitList(value) { + return value.split(',') +} - if (events[index][1].end.offset - events[index][1].start.offset) { - offset = 2; - nextEvents = chunkedPush_1(nextEvents, [ - ['enter', events[index][1], context], - ['exit', events[index][1], context] - ]); - } else { - offset = 0; - } +/** + * Transform the keys on an object to camel-case, recursivly. + * + * @param {Record} object + * @returns {Record} + */ +function toCamelCase(object) { + /** @type {Record} */ + const result = {}; + /** @type {string} */ + let key; - chunkedSplice_1(events, open - 1, index - open + 3, nextEvents); - index = open + nextEvents.length - offset - 2; - break - } - } - } - } // Remove remaining sequences. + for (key in object) { + if (own$7.call(object, key)) { + let value = object[key]; - index = -1; + if (value && typeof value === 'object' && !Array.isArray(value)) { + // @ts-expect-error: looks like an object. + value = toCamelCase(value); + } - while (++index < events.length) { - if (events[index][1].type === 'attentionSequence') { - events[index][1].type = 'data'; + result[camelcase(key)] = value; } } - return events + return result } -function tokenizeAttention(effects, ok) { - var before = classifyCharacter_1(this.previous); - var marker; - return start +/** + * Parse a (lazy?) JSON config. + * + * @param {string} value + * @returns {Record} + */ +function parseJSON(value) { + return lib.parse('{' + value + '}') +} - function start(code) { - effects.enter('attentionSequence'); - marker = code; - return sequence(code) - } +/** + * @typedef {import('unified-engine').Options} EngineOptions + * @typedef {import('unified-engine').Context} EngineContext + * @typedef {import('unified-engine').Callback} EngineCallback + * @typedef {import('./options.js').Options} Options + */ - function sequence(code) { - var token; - var after; - var open; - var close; +// Fake TTY stream. +const ttyStream = Object.assign(new stream.Readable(), {isTTY: true}); - if (code === marker) { - effects.consume(code); - return sequence - } +// Exit, lazily, with the correct exit status code. +let exitStatus = 0; - token = effects.exit('attentionSequence'); - after = classifyCharacter_1(code); - open = !after || (after === 2 && before); - close = !before || (before === 2 && after); - token._open = marker === 42 ? open : open && (before || !close); - token._close = marker === 42 ? close : close && (after || !open); - return ok(code) - } -} +process$2.on('exit', onexit); -var attention_1 = attention; +// Handle uncaught errors, such as from unexpected async behaviour. +process$2.on('uncaughtException', fail); -var asciiAlphanumeric = regexCheck_1(/[\dA-Za-z]/); +/** + * Start the CLI. + * + * @param {Options} cliConfig + */ +function args(cliConfig) { + /** @type {EngineOptions & {help: boolean, helpMessage: string, watch: boolean, version: boolean}} */ + let config; + /** @type {chokidar.FSWatcher|undefined} */ + let watcher; + /** @type {boolean|string|undefined} */ + let output; -var asciiAlphanumeric_1 = asciiAlphanumeric; + try { + // @ts-expect-error: Close enough. + config = options(process$2.argv.slice(2), cliConfig); + } catch (error) { + return fail(error, true) + } -var asciiAlpha = regexCheck_1(/[A-Za-z]/); + if (config.help) { + process$2.stdout.write( + [ + 'Usage: ' + cliConfig.name + ' [options] [path | glob ...]', + '', + ' ' + cliConfig.description, + '', + 'Options:', + '', + config.helpMessage, + '' + ].join('\n'), + noop$1 + ); -var asciiAlpha_1 = asciiAlpha; + return + } -var asciiAtext = regexCheck_1(/[#-'*+\--9=?A-Z^-~]/); + if (config.version) { + process$2.stdout.write(cliConfig.version + '\n', noop$1); -var asciiAtext_1 = asciiAtext; + return + } -// Note: EOF is seen as ASCII control here, because `null < 32 == true`. -function asciiControl(code) { - return ( - // Special whitespace codes (which have negative values), C0 and Control - // character DEL - code < 32 || code === 127 - ) -} + // Modify `config` for watching. + if (config.watch) { + output = config.output; -var asciiControl_1 = asciiControl; + // Do not read from stdin(4). + config.streamIn = ttyStream; -var autolink = { - name: 'autolink', - tokenize: tokenizeAutolink -}; + // Do not write to stdout(4). + config.out = false; -function tokenizeAutolink(effects, ok, nok) { - var size = 1; - return start + process$2.stderr.write( + source$1.bold('Watching...') + ' (press CTRL+C to exit)\n', + noop$1 + ); - function start(code) { - effects.enter('autolink'); - effects.enter('autolinkMarker'); - effects.consume(code); - effects.exit('autolinkMarker'); - effects.enter('autolinkProtocol'); - return open - } + // Prevent infinite loop if set to regeneration. + if (output === true) { + config.output = false; - function open(code) { - if (asciiAlpha_1(code)) { - effects.consume(code); - return schemeOrEmailAtext + process$2.stderr.write( + source$1.yellow('Note') + ': Ignoring `--output` until exit.\n', + noop$1 + ); } - - return asciiAtext_1(code) ? emailAtext(code) : nok(code) } - function schemeOrEmailAtext(code) { - return code === 43 || code === 45 || code === 46 || asciiAlphanumeric_1(code) - ? schemeInsideOrEmailAtext(code) - : emailAtext(code) - } + // Initial run. + engine(config, done); - function schemeInsideOrEmailAtext(code) { - if (code === 58) { - effects.consume(code); - return urlInside - } + /** + * Handle complete run. + * + * @type {EngineCallback} + */ + function done(error, code, context) { + if (error) { + clean(); + fail(error); + } else { + exitStatus = code || 0; - if ( - (code === 43 || code === 45 || code === 46 || asciiAlphanumeric_1(code)) && - size++ < 32 - ) { - effects.consume(code); - return schemeInsideOrEmailAtext + if (config.watch && !watcher && context) { + subscribe(context); + } } - - return emailAtext(code) } - function urlInside(code) { - if (code === 62) { - effects.exit('autolinkProtocol'); - return end(code) + // Clean the watcher. + function clean() { + if (watcher) { + watcher.close(); + watcher = undefined; } + } - if (code === 32 || code === 60 || asciiControl_1(code)) { - return nok(code) - } + /** + * Subscribe a chokidar watcher to all processed files. + * + * @param {EngineContext} context + */ + function subscribe(context) { + watcher = chokidar + // @ts-expect-error: `fileSet` is available. + .watch(context.fileSet.origins, {cwd: config.cwd, ignoreInitial: true}) + .on('error', done) + .on('change', (filePath) => { + config.files = [filePath]; + engine(config, done); + }); - effects.consume(code); - return urlInside - } + process$2.on('SIGINT', onsigint); - function emailAtext(code) { - if (code === 64) { - effects.consume(code); - size = 0; - return emailAtSignOrDot - } + /** + * Handle a SIGINT. + */ + function onsigint() { + // Hide the `^C` in terminal. + process$2.stderr.write('\n', noop$1); - if (asciiAtext_1(code)) { - effects.consume(code); - return emailAtext - } + clean(); - return nok(code) + // Do another process if `output` specified regeneration. + if (output === true) { + config.output = output; + config.watch = false; + engine(config, done); + } + } } +} - function emailAtSignOrDot(code) { - return asciiAlphanumeric_1(code) ? emailLabel(code) : nok(code) - } +/** + * Print an error, optionally with stack. + * + * @param {Error} error + * @param {boolean} [pretty=false] + */ +function fail(error, pretty) { + // Old versions of Node + /* c8 ignore next 1 */ + const message = String((pretty ? error : error.stack) || error); - function emailLabel(code) { - if (code === 46) { - effects.consume(code); - size = 0; - return emailAtSignOrDot - } + exitStatus = 1; - if (code === 62) { - // Exit, then change the type. - effects.exit('autolinkProtocol').type = 'autolinkEmail'; - return end(code) - } + process$2.stderr.write(message.trim() + '\n', noop$1); +} - return emailValue(code) - } +function onexit() { + /* eslint-disable unicorn/no-process-exit */ + process$2.exit(exitStatus); + /* eslint-enable unicorn/no-process-exit */ +} - function emailValue(code) { - if ((code === 45 || asciiAlphanumeric_1(code)) && size++ < 63) { - effects.consume(code); - return code === 45 ? emailValue : emailLabel - } +function noop$1() {} - return nok(code) - } +var require$$0 = [ + "md", + "markdown", + "mdown", + "mkdn", + "mkd", + "mdwn", + "mkdown", + "ron" +]; - function end(code) { - effects.enter('autolinkMarker'); - effects.consume(code); - effects.exit('autolinkMarker'); - effects.exit('autolink'); - return ok +var markdownExtensions = require$$0; + +/** + * Throw a given error. + * + * @param {Error | null | undefined} [error] + */ +function bail(error) { + if (error) { + throw error } } -var autolink_1 = autolink; +var hasOwn = Object.prototype.hasOwnProperty; +var toStr = Object.prototype.toString; +var defineProperty = Object.defineProperty; +var gOPD = Object.getOwnPropertyDescriptor; -var blockQuote = { - name: 'blockQuote', - tokenize: tokenizeBlockQuoteStart, - continuation: { - tokenize: tokenizeBlockQuoteContinuation - }, - exit: exit +var isArray = function isArray(arr) { + if (typeof Array.isArray === 'function') { + return Array.isArray(arr); + } + + return toStr.call(arr) === '[object Array]'; }; -function tokenizeBlockQuoteStart(effects, ok, nok) { - var self = this; - return start +var isPlainObject = function isPlainObject(obj) { + if (!obj || toStr.call(obj) !== '[object Object]') { + return false; + } - function start(code) { - if (code === 62) { - if (!self.containerState.open) { - effects.enter('blockQuote', { - _container: true - }); - self.containerState.open = true; - } + var hasOwnConstructor = hasOwn.call(obj, 'constructor'); + var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); + // Not own constructor property must be Object + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } - effects.enter('blockQuotePrefix'); - effects.enter('blockQuoteMarker'); - effects.consume(code); - effects.exit('blockQuoteMarker'); - return after - } + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + var key; + for (key in obj) { /**/ } - return nok(code) - } + return typeof key === 'undefined' || hasOwn.call(obj, key); +}; + +// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target +var setProperty = function setProperty(target, options) { + if (defineProperty && options.name === '__proto__') { + defineProperty(target, options.name, { + enumerable: true, + configurable: true, + value: options.newValue, + writable: true + }); + } else { + target[options.name] = options.newValue; + } +}; + +// Return undefined instead of __proto__ if '__proto__' is not an own property +var getProperty = function getProperty(obj, name) { + if (name === '__proto__') { + if (!hasOwn.call(obj, name)) { + return void 0; + } else if (gOPD) { + // In early versions of node, obj['__proto__'] is buggy when obj has + // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. + return gOPD(obj, name).value; + } + } - function after(code) { - if (markdownSpace_1(code)) { - effects.enter('blockQuotePrefixWhitespace'); - effects.consume(code); - effects.exit('blockQuotePrefixWhitespace'); - effects.exit('blockQuotePrefix'); - return ok - } + return obj[name]; +}; - effects.exit('blockQuotePrefix'); - return ok(code) - } -} +var extend = function extend() { + var options, name, src, copy, copyIsArray, clone; + var target = arguments[0]; + var i = 1; + var length = arguments.length; + var deep = false; -function tokenizeBlockQuoteContinuation(effects, ok, nok) { - return factorySpace( - effects, - effects.attempt(blockQuote, ok, nok), - 'linePrefix', - this.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - ) -} + // Handle a deep copy situation + if (typeof target === 'boolean') { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { + target = {}; + } -function exit(effects) { - effects.exit('blockQuote'); -} + for (; i < length; ++i) { + options = arguments[i]; + // Only deal with non-null/undefined values + if (options != null) { + // Extend the base object + for (name in options) { + src = getProperty(target, name); + copy = getProperty(options, name); -var blockQuote_1 = blockQuote; + // Prevent never-ending loop + if (target !== copy) { + // Recurse if we're merging plain objects or arrays + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && isArray(src) ? src : []; + } else { + clone = src && isPlainObject(src) ? src : {}; + } -var asciiPunctuation = regexCheck_1(/[!-/:-@[-`{-~]/); + // Never move original objects, clone them + setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); -var asciiPunctuation_1 = asciiPunctuation; + // Don't bring in undefined values + } else if (typeof copy !== 'undefined') { + setProperty(target, { name: name, newValue: copy }); + } + } + } + } + } -var characterEscape = { - name: 'characterEscape', - tokenize: tokenizeCharacterEscape + // Return the modified object + return target; }; -function tokenizeCharacterEscape(effects, ok, nok) { - return start +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFileCompatible} VFileCompatible + * @typedef {import('vfile').VFileValue} VFileValue + * @typedef {import('..').Processor} Processor + * @typedef {import('..').Plugin} Plugin + * @typedef {import('..').Preset} Preset + * @typedef {import('..').Pluggable} Pluggable + * @typedef {import('..').PluggableList} PluggableList + * @typedef {import('..').Transformer} Transformer + * @typedef {import('..').Parser} Parser + * @typedef {import('..').Compiler} Compiler + * @typedef {import('..').RunCallback} RunCallback + * @typedef {import('..').ProcessCallback} ProcessCallback + * + * @typedef Context + * @property {Node} tree + * @property {VFile} file + */ - function start(code) { - effects.enter('characterEscape'); - effects.enter('escapeMarker'); - effects.consume(code); - effects.exit('escapeMarker'); - return open - } +// Expose a frozen processor. +const unified = base().freeze(); - function open(code) { - if (asciiPunctuation_1(code)) { - effects.enter('characterEscapeValue'); - effects.consume(code); - effects.exit('characterEscapeValue'); - effects.exit('characterEscape'); - return ok - } +const own$6 = {}.hasOwnProperty; - return nok(code) - } -} +// Function to create the first processor. +/** + * @returns {Processor} + */ +function base() { + const transformers = trough(); + /** @type {Processor['attachers']} */ + const attachers = []; + /** @type {Record} */ + let namespace = {}; + /** @type {boolean|undefined} */ + let frozen; + let freezeIndex = -1; -var characterEscape_1 = characterEscape; - -const AEli = "Æ"; -const AElig = "Æ"; -const AM = "&"; -const AMP = "&"; -const Aacut = "Á"; -const Aacute = "Á"; -const Abreve = "Ă"; -const Acir = "Â"; -const Acirc = "Â"; -const Acy = "А"; -const Afr = "𝔄"; -const Agrav = "À"; -const Agrave = "À"; -const Alpha = "Α"; -const Amacr = "Ā"; -const And = "⩓"; -const Aogon = "Ą"; -const Aopf = "𝔸"; -const ApplyFunction = "⁡"; -const Arin = "Å"; -const Aring = "Å"; -const Ascr = "𝒜"; -const Assign = "≔"; -const Atild = "Ã"; -const Atilde = "Ã"; -const Aum = "Ä"; -const Auml = "Ä"; -const Backslash = "∖"; -const Barv = "⫧"; -const Barwed = "⌆"; -const Bcy = "Б"; -const Because = "∵"; -const Bernoullis = "ℬ"; -const Beta = "Β"; -const Bfr = "𝔅"; -const Bopf = "𝔹"; -const Breve = "˘"; -const Bscr = "ℬ"; -const Bumpeq = "≎"; -const CHcy = "Ч"; -const COP = "©"; -const COPY = "©"; -const Cacute = "Ć"; -const Cap = "⋒"; -const CapitalDifferentialD = "ⅅ"; -const Cayleys = "ℭ"; -const Ccaron = "Č"; -const Ccedi = "Ç"; -const Ccedil = "Ç"; -const Ccirc = "Ĉ"; -const Cconint = "∰"; -const Cdot = "Ċ"; -const Cedilla = "¸"; -const CenterDot = "·"; -const Cfr = "ℭ"; -const Chi = "Χ"; -const CircleDot = "⊙"; -const CircleMinus = "⊖"; -const CirclePlus = "⊕"; -const CircleTimes = "⊗"; -const ClockwiseContourIntegral = "∲"; -const CloseCurlyDoubleQuote = "”"; -const CloseCurlyQuote = "’"; -const Colon = "∷"; -const Colone = "⩴"; -const Congruent = "≡"; -const Conint = "∯"; -const ContourIntegral = "∮"; -const Copf = "ℂ"; -const Coproduct = "∐"; -const CounterClockwiseContourIntegral = "∳"; -const Cross = "⨯"; -const Cscr = "𝒞"; -const Cup = "⋓"; -const CupCap = "≍"; -const DD = "ⅅ"; -const DDotrahd = "⤑"; -const DJcy = "Ђ"; -const DScy = "Ѕ"; -const DZcy = "Џ"; -const Dagger = "‡"; -const Darr = "↡"; -const Dashv = "⫤"; -const Dcaron = "Ď"; -const Dcy = "Д"; -const Del = "∇"; -const Delta = "Δ"; -const Dfr = "𝔇"; -const DiacriticalAcute = "´"; -const DiacriticalDot = "˙"; -const DiacriticalDoubleAcute = "˝"; -const DiacriticalGrave = "`"; -const DiacriticalTilde = "˜"; -const Diamond = "⋄"; -const DifferentialD = "ⅆ"; -const Dopf = "𝔻"; -const Dot = "¨"; -const DotDot = "⃜"; -const DotEqual = "≐"; -const DoubleContourIntegral = "∯"; -const DoubleDot = "¨"; -const DoubleDownArrow = "⇓"; -const DoubleLeftArrow = "⇐"; -const DoubleLeftRightArrow = "⇔"; -const DoubleLeftTee = "⫤"; -const DoubleLongLeftArrow = "⟸"; -const DoubleLongLeftRightArrow = "⟺"; -const DoubleLongRightArrow = "⟹"; -const DoubleRightArrow = "⇒"; -const DoubleRightTee = "⊨"; -const DoubleUpArrow = "⇑"; -const DoubleUpDownArrow = "⇕"; -const DoubleVerticalBar = "∥"; -const DownArrow = "↓"; -const DownArrowBar = "⤓"; -const DownArrowUpArrow = "⇵"; -const DownBreve = "̑"; -const DownLeftRightVector = "⥐"; -const DownLeftTeeVector = "⥞"; -const DownLeftVector = "↽"; -const DownLeftVectorBar = "⥖"; -const DownRightTeeVector = "⥟"; -const DownRightVector = "⇁"; -const DownRightVectorBar = "⥗"; -const DownTee = "⊤"; -const DownTeeArrow = "↧"; -const Downarrow = "⇓"; -const Dscr = "𝒟"; -const Dstrok = "Đ"; -const ENG = "Ŋ"; -const ET = "Ð"; -const ETH = "Ð"; -const Eacut = "É"; -const Eacute = "É"; -const Ecaron = "Ě"; -const Ecir = "Ê"; -const Ecirc = "Ê"; -const Ecy = "Э"; -const Edot = "Ė"; -const Efr = "𝔈"; -const Egrav = "È"; -const Egrave = "È"; -const Element = "∈"; -const Emacr = "Ē"; -const EmptySmallSquare = "◻"; -const EmptyVerySmallSquare = "▫"; -const Eogon = "Ę"; -const Eopf = "𝔼"; -const Epsilon = "Ε"; -const Equal = "⩵"; -const EqualTilde = "≂"; -const Equilibrium = "⇌"; -const Escr = "ℰ"; -const Esim = "⩳"; -const Eta = "Η"; -const Eum = "Ë"; -const Euml = "Ë"; -const Exists = "∃"; -const ExponentialE = "ⅇ"; -const Fcy = "Ф"; -const Ffr = "𝔉"; -const FilledSmallSquare = "◼"; -const FilledVerySmallSquare = "▪"; -const Fopf = "𝔽"; -const ForAll = "∀"; -const Fouriertrf = "ℱ"; -const Fscr = "ℱ"; -const GJcy = "Ѓ"; -const G = ">"; -const GT = ">"; -const Gamma = "Γ"; -const Gammad = "Ϝ"; -const Gbreve = "Ğ"; -const Gcedil = "Ģ"; -const Gcirc = "Ĝ"; -const Gcy = "Г"; -const Gdot = "Ġ"; -const Gfr = "𝔊"; -const Gg = "⋙"; -const Gopf = "𝔾"; -const GreaterEqual = "≥"; -const GreaterEqualLess = "⋛"; -const GreaterFullEqual = "≧"; -const GreaterGreater = "⪢"; -const GreaterLess = "≷"; -const GreaterSlantEqual = "⩾"; -const GreaterTilde = "≳"; -const Gscr = "𝒢"; -const Gt = "≫"; -const HARDcy = "Ъ"; -const Hacek = "ˇ"; -const Hat = "^"; -const Hcirc = "Ĥ"; -const Hfr = "ℌ"; -const HilbertSpace = "ℋ"; -const Hopf = "ℍ"; -const HorizontalLine = "─"; -const Hscr = "ℋ"; -const Hstrok = "Ħ"; -const HumpDownHump = "≎"; -const HumpEqual = "≏"; -const IEcy = "Е"; -const IJlig = "IJ"; -const IOcy = "Ё"; -const Iacut = "Í"; -const Iacute = "Í"; -const Icir = "Î"; -const Icirc = "Î"; -const Icy = "И"; -const Idot = "İ"; -const Ifr = "ℑ"; -const Igrav = "Ì"; -const Igrave = "Ì"; -const Im = "ℑ"; -const Imacr = "Ī"; -const ImaginaryI = "ⅈ"; -const Implies = "⇒"; -const Int = "∬"; -const Integral = "∫"; -const Intersection = "⋂"; -const InvisibleComma = "⁣"; -const InvisibleTimes = "⁢"; -const Iogon = "Į"; -const Iopf = "𝕀"; -const Iota = "Ι"; -const Iscr = "ℐ"; -const Itilde = "Ĩ"; -const Iukcy = "І"; -const Ium = "Ï"; -const Iuml = "Ï"; -const Jcirc = "Ĵ"; -const Jcy = "Й"; -const Jfr = "𝔍"; -const Jopf = "𝕁"; -const Jscr = "𝒥"; -const Jsercy = "Ј"; -const Jukcy = "Є"; -const KHcy = "Х"; -const KJcy = "Ќ"; -const Kappa = "Κ"; -const Kcedil = "Ķ"; -const Kcy = "К"; -const Kfr = "𝔎"; -const Kopf = "𝕂"; -const Kscr = "𝒦"; -const LJcy = "Љ"; -const L = "<"; -const LT = "<"; -const Lacute = "Ĺ"; -const Lambda = "Λ"; -const Lang = "⟪"; -const Laplacetrf = "ℒ"; -const Larr = "↞"; -const Lcaron = "Ľ"; -const Lcedil = "Ļ"; -const Lcy = "Л"; -const LeftAngleBracket = "⟨"; -const LeftArrow = "←"; -const LeftArrowBar = "⇤"; -const LeftArrowRightArrow = "⇆"; -const LeftCeiling = "⌈"; -const LeftDoubleBracket = "⟦"; -const LeftDownTeeVector = "⥡"; -const LeftDownVector = "⇃"; -const LeftDownVectorBar = "⥙"; -const LeftFloor = "⌊"; -const LeftRightArrow = "↔"; -const LeftRightVector = "⥎"; -const LeftTee = "⊣"; -const LeftTeeArrow = "↤"; -const LeftTeeVector = "⥚"; -const LeftTriangle = "⊲"; -const LeftTriangleBar = "⧏"; -const LeftTriangleEqual = "⊴"; -const LeftUpDownVector = "⥑"; -const LeftUpTeeVector = "⥠"; -const LeftUpVector = "↿"; -const LeftUpVectorBar = "⥘"; -const LeftVector = "↼"; -const LeftVectorBar = "⥒"; -const Leftarrow = "⇐"; -const Leftrightarrow = "⇔"; -const LessEqualGreater = "⋚"; -const LessFullEqual = "≦"; -const LessGreater = "≶"; -const LessLess = "⪡"; -const LessSlantEqual = "⩽"; -const LessTilde = "≲"; -const Lfr = "𝔏"; -const Ll = "⋘"; -const Lleftarrow = "⇚"; -const Lmidot = "Ŀ"; -const LongLeftArrow = "⟵"; -const LongLeftRightArrow = "⟷"; -const LongRightArrow = "⟶"; -const Longleftarrow = "⟸"; -const Longleftrightarrow = "⟺"; -const Longrightarrow = "⟹"; -const Lopf = "𝕃"; -const LowerLeftArrow = "↙"; -const LowerRightArrow = "↘"; -const Lscr = "ℒ"; -const Lsh = "↰"; -const Lstrok = "Ł"; -const Lt = "≪"; -const Mcy = "М"; -const MediumSpace = " "; -const Mellintrf = "ℳ"; -const Mfr = "𝔐"; -const MinusPlus = "∓"; -const Mopf = "𝕄"; -const Mscr = "ℳ"; -const Mu = "Μ"; -const NJcy = "Њ"; -const Nacute = "Ń"; -const Ncaron = "Ň"; -const Ncedil = "Ņ"; -const Ncy = "Н"; -const NegativeMediumSpace = "​"; -const NegativeThickSpace = "​"; -const NegativeThinSpace = "​"; -const NegativeVeryThinSpace = "​"; -const NestedGreaterGreater = "≫"; -const NestedLessLess = "≪"; -const NewLine = "\n"; -const Nfr = "𝔑"; -const NoBreak = "⁠"; -const NonBreakingSpace = " "; -const Nopf = "ℕ"; -const Not = "⫬"; -const NotCongruent = "≢"; -const NotCupCap = "≭"; -const NotDoubleVerticalBar = "∦"; -const NotElement = "∉"; -const NotEqual = "≠"; -const NotEqualTilde = "≂̸"; -const NotExists = "∄"; -const NotGreater = "≯"; -const NotGreaterEqual = "≱"; -const NotGreaterFullEqual = "≧̸"; -const NotGreaterGreater = "≫̸"; -const NotGreaterLess = "≹"; -const NotGreaterSlantEqual = "⩾̸"; -const NotGreaterTilde = "≵"; -const NotHumpDownHump = "≎̸"; -const NotHumpEqual = "≏̸"; -const NotLeftTriangle = "⋪"; -const NotLeftTriangleBar = "⧏̸"; -const NotLeftTriangleEqual = "⋬"; -const NotLess = "≮"; -const NotLessEqual = "≰"; -const NotLessGreater = "≸"; -const NotLessLess = "≪̸"; -const NotLessSlantEqual = "⩽̸"; -const NotLessTilde = "≴"; -const NotNestedGreaterGreater = "⪢̸"; -const NotNestedLessLess = "⪡̸"; -const NotPrecedes = "⊀"; -const NotPrecedesEqual = "⪯̸"; -const NotPrecedesSlantEqual = "⋠"; -const NotReverseElement = "∌"; -const NotRightTriangle = "⋫"; -const NotRightTriangleBar = "⧐̸"; -const NotRightTriangleEqual = "⋭"; -const NotSquareSubset = "⊏̸"; -const NotSquareSubsetEqual = "⋢"; -const NotSquareSuperset = "⊐̸"; -const NotSquareSupersetEqual = "⋣"; -const NotSubset = "⊂⃒"; -const NotSubsetEqual = "⊈"; -const NotSucceeds = "⊁"; -const NotSucceedsEqual = "⪰̸"; -const NotSucceedsSlantEqual = "⋡"; -const NotSucceedsTilde = "≿̸"; -const NotSuperset = "⊃⃒"; -const NotSupersetEqual = "⊉"; -const NotTilde = "≁"; -const NotTildeEqual = "≄"; -const NotTildeFullEqual = "≇"; -const NotTildeTilde = "≉"; -const NotVerticalBar = "∤"; -const Nscr = "𝒩"; -const Ntild = "Ñ"; -const Ntilde = "Ñ"; -const Nu = "Ν"; -const OElig = "Œ"; -const Oacut = "Ó"; -const Oacute = "Ó"; -const Ocir = "Ô"; -const Ocirc = "Ô"; -const Ocy = "О"; -const Odblac = "Ő"; -const Ofr = "𝔒"; -const Ograv = "Ò"; -const Ograve = "Ò"; -const Omacr = "Ō"; -const Omega = "Ω"; -const Omicron = "Ο"; -const Oopf = "𝕆"; -const OpenCurlyDoubleQuote = "“"; -const OpenCurlyQuote = "‘"; -const Or = "⩔"; -const Oscr = "𝒪"; -const Oslas = "Ø"; -const Oslash = "Ø"; -const Otild = "Õ"; -const Otilde = "Õ"; -const Otimes = "⨷"; -const Oum = "Ö"; -const Ouml = "Ö"; -const OverBar = "‾"; -const OverBrace = "⏞"; -const OverBracket = "⎴"; -const OverParenthesis = "⏜"; -const PartialD = "∂"; -const Pcy = "П"; -const Pfr = "𝔓"; -const Phi = "Φ"; -const Pi = "Π"; -const PlusMinus = "±"; -const Poincareplane = "ℌ"; -const Popf = "ℙ"; -const Pr = "⪻"; -const Precedes = "≺"; -const PrecedesEqual = "⪯"; -const PrecedesSlantEqual = "≼"; -const PrecedesTilde = "≾"; -const Prime = "″"; -const Product = "∏"; -const Proportion = "∷"; -const Proportional = "∝"; -const Pscr = "𝒫"; -const Psi = "Ψ"; -const QUO = "\""; -const QUOT = "\""; -const Qfr = "𝔔"; -const Qopf = "ℚ"; -const Qscr = "𝒬"; -const RBarr = "⤐"; -const RE = "®"; -const REG = "®"; -const Racute = "Ŕ"; -const Rang = "⟫"; -const Rarr = "↠"; -const Rarrtl = "⤖"; -const Rcaron = "Ř"; -const Rcedil = "Ŗ"; -const Rcy = "Р"; -const Re = "ℜ"; -const ReverseElement = "∋"; -const ReverseEquilibrium = "⇋"; -const ReverseUpEquilibrium = "⥯"; -const Rfr = "ℜ"; -const Rho = "Ρ"; -const RightAngleBracket = "⟩"; -const RightArrow = "→"; -const RightArrowBar = "⇥"; -const RightArrowLeftArrow = "⇄"; -const RightCeiling = "⌉"; -const RightDoubleBracket = "⟧"; -const RightDownTeeVector = "⥝"; -const RightDownVector = "⇂"; -const RightDownVectorBar = "⥕"; -const RightFloor = "⌋"; -const RightTee = "⊢"; -const RightTeeArrow = "↦"; -const RightTeeVector = "⥛"; -const RightTriangle = "⊳"; -const RightTriangleBar = "⧐"; -const RightTriangleEqual = "⊵"; -const RightUpDownVector = "⥏"; -const RightUpTeeVector = "⥜"; -const RightUpVector = "↾"; -const RightUpVectorBar = "⥔"; -const RightVector = "⇀"; -const RightVectorBar = "⥓"; -const Rightarrow = "⇒"; -const Ropf = "ℝ"; -const RoundImplies = "⥰"; -const Rrightarrow = "⇛"; -const Rscr = "ℛ"; -const Rsh = "↱"; -const RuleDelayed = "⧴"; -const SHCHcy = "Щ"; -const SHcy = "Ш"; -const SOFTcy = "Ь"; -const Sacute = "Ś"; -const Sc = "⪼"; -const Scaron = "Š"; -const Scedil = "Ş"; -const Scirc = "Ŝ"; -const Scy = "С"; -const Sfr = "𝔖"; -const ShortDownArrow = "↓"; -const ShortLeftArrow = "←"; -const ShortRightArrow = "→"; -const ShortUpArrow = "↑"; -const Sigma = "Σ"; -const SmallCircle = "∘"; -const Sopf = "𝕊"; -const Sqrt = "√"; -const Square = "□"; -const SquareIntersection = "⊓"; -const SquareSubset = "⊏"; -const SquareSubsetEqual = "⊑"; -const SquareSuperset = "⊐"; -const SquareSupersetEqual = "⊒"; -const SquareUnion = "⊔"; -const Sscr = "𝒮"; -const Star = "⋆"; -const Sub = "⋐"; -const Subset = "⋐"; -const SubsetEqual = "⊆"; -const Succeeds = "≻"; -const SucceedsEqual = "⪰"; -const SucceedsSlantEqual = "≽"; -const SucceedsTilde = "≿"; -const SuchThat = "∋"; -const Sum = "∑"; -const Sup = "⋑"; -const Superset = "⊃"; -const SupersetEqual = "⊇"; -const Supset = "⋑"; -const THOR = "Þ"; -const THORN = "Þ"; -const TRADE = "™"; -const TSHcy = "Ћ"; -const TScy = "Ц"; -const Tab = "\t"; -const Tau = "Τ"; -const Tcaron = "Ť"; -const Tcedil = "Ţ"; -const Tcy = "Т"; -const Tfr = "𝔗"; -const Therefore = "∴"; -const Theta = "Θ"; -const ThickSpace = "  "; -const ThinSpace = " "; -const Tilde = "∼"; -const TildeEqual = "≃"; -const TildeFullEqual = "≅"; -const TildeTilde = "≈"; -const Topf = "𝕋"; -const TripleDot = "⃛"; -const Tscr = "𝒯"; -const Tstrok = "Ŧ"; -const Uacut = "Ú"; -const Uacute = "Ú"; -const Uarr = "↟"; -const Uarrocir = "⥉"; -const Ubrcy = "Ў"; -const Ubreve = "Ŭ"; -const Ucir = "Û"; -const Ucirc = "Û"; -const Ucy = "У"; -const Udblac = "Ű"; -const Ufr = "𝔘"; -const Ugrav = "Ù"; -const Ugrave = "Ù"; -const Umacr = "Ū"; -const UnderBar = "_"; -const UnderBrace = "⏟"; -const UnderBracket = "⎵"; -const UnderParenthesis = "⏝"; -const Union = "⋃"; -const UnionPlus = "⊎"; -const Uogon = "Ų"; -const Uopf = "𝕌"; -const UpArrow = "↑"; -const UpArrowBar = "⤒"; -const UpArrowDownArrow = "⇅"; -const UpDownArrow = "↕"; -const UpEquilibrium = "⥮"; -const UpTee = "⊥"; -const UpTeeArrow = "↥"; -const Uparrow = "⇑"; -const Updownarrow = "⇕"; -const UpperLeftArrow = "↖"; -const UpperRightArrow = "↗"; -const Upsi = "ϒ"; -const Upsilon = "Υ"; -const Uring = "Ů"; -const Uscr = "𝒰"; -const Utilde = "Ũ"; -const Uum = "Ü"; -const Uuml = "Ü"; -const VDash = "⊫"; -const Vbar = "⫫"; -const Vcy = "В"; -const Vdash = "⊩"; -const Vdashl = "⫦"; -const Vee = "⋁"; -const Verbar = "‖"; -const Vert = "‖"; -const VerticalBar = "∣"; -const VerticalLine = "|"; -const VerticalSeparator = "❘"; -const VerticalTilde = "≀"; -const VeryThinSpace = " "; -const Vfr = "𝔙"; -const Vopf = "𝕍"; -const Vscr = "𝒱"; -const Vvdash = "⊪"; -const Wcirc = "Ŵ"; -const Wedge = "⋀"; -const Wfr = "𝔚"; -const Wopf = "𝕎"; -const Wscr = "𝒲"; -const Xfr = "𝔛"; -const Xi = "Ξ"; -const Xopf = "𝕏"; -const Xscr = "𝒳"; -const YAcy = "Я"; -const YIcy = "Ї"; -const YUcy = "Ю"; -const Yacut = "Ý"; -const Yacute = "Ý"; -const Ycirc = "Ŷ"; -const Ycy = "Ы"; -const Yfr = "𝔜"; -const Yopf = "𝕐"; -const Yscr = "𝒴"; -const Yuml = "Ÿ"; -const ZHcy = "Ж"; -const Zacute = "Ź"; -const Zcaron = "Ž"; -const Zcy = "З"; -const Zdot = "Ż"; -const ZeroWidthSpace = "​"; -const Zeta = "Ζ"; -const Zfr = "ℨ"; -const Zopf = "ℤ"; -const Zscr = "𝒵"; -const aacut = "á"; -const aacute = "á"; -const abreve = "ă"; -const ac = "∾"; -const acE = "∾̳"; -const acd = "∿"; -const acir = "â"; -const acirc = "â"; -const acut = "´"; -const acute = "´"; -const acy = "а"; -const aeli = "æ"; -const aelig = "æ"; -const af = "⁡"; -const afr = "𝔞"; -const agrav = "à"; -const agrave = "à"; -const alefsym = "ℵ"; -const aleph = "ℵ"; -const alpha = "α"; -const amacr = "ā"; -const amalg = "⨿"; -const am = "&"; -const amp = "&"; -const and = "∧"; -const andand = "⩕"; -const andd = "⩜"; -const andslope = "⩘"; -const andv = "⩚"; -const ang = "∠"; -const ange = "⦤"; -const angle = "∠"; -const angmsd = "∡"; -const angmsdaa = "⦨"; -const angmsdab = "⦩"; -const angmsdac = "⦪"; -const angmsdad = "⦫"; -const angmsdae = "⦬"; -const angmsdaf = "⦭"; -const angmsdag = "⦮"; -const angmsdah = "⦯"; -const angrt = "∟"; -const angrtvb = "⊾"; -const angrtvbd = "⦝"; -const angsph = "∢"; -const angst = "Å"; -const angzarr = "⍼"; -const aogon = "ą"; -const aopf = "𝕒"; -const ap = "≈"; -const apE = "⩰"; -const apacir = "⩯"; -const ape = "≊"; -const apid = "≋"; -const apos = "'"; -const approx = "≈"; -const approxeq = "≊"; -const arin = "å"; -const aring = "å"; -const ascr = "𝒶"; -const ast = "*"; -const asymp = "≈"; -const asympeq = "≍"; -const atild = "ã"; -const atilde = "ã"; -const aum = "ä"; -const auml = "ä"; -const awconint = "∳"; -const awint = "⨑"; -const bNot = "⫭"; -const backcong = "≌"; -const backepsilon = "϶"; -const backprime = "‵"; -const backsim = "∽"; -const backsimeq = "⋍"; -const barvee = "⊽"; -const barwed = "⌅"; -const barwedge = "⌅"; -const bbrk = "⎵"; -const bbrktbrk = "⎶"; -const bcong = "≌"; -const bcy = "б"; -const bdquo = "„"; -const becaus = "∵"; -const because = "∵"; -const bemptyv = "⦰"; -const bepsi = "϶"; -const bernou = "ℬ"; -const beta = "β"; -const beth = "ℶ"; -const between = "≬"; -const bfr = "𝔟"; -const bigcap = "⋂"; -const bigcirc = "◯"; -const bigcup = "⋃"; -const bigodot = "⨀"; -const bigoplus = "⨁"; -const bigotimes = "⨂"; -const bigsqcup = "⨆"; -const bigstar = "★"; -const bigtriangledown = "▽"; -const bigtriangleup = "△"; -const biguplus = "⨄"; -const bigvee = "⋁"; -const bigwedge = "⋀"; -const bkarow = "⤍"; -const blacklozenge = "⧫"; -const blacksquare = "▪"; -const blacktriangle = "▴"; -const blacktriangledown = "▾"; -const blacktriangleleft = "◂"; -const blacktriangleright = "▸"; -const blank = "␣"; -const blk12 = "▒"; -const blk14 = "░"; -const blk34 = "▓"; -const block = "█"; -const bne = "=⃥"; -const bnequiv = "≡⃥"; -const bnot = "⌐"; -const bopf = "𝕓"; -const bot = "⊥"; -const bottom = "⊥"; -const bowtie = "⋈"; -const boxDL = "╗"; -const boxDR = "╔"; -const boxDl = "╖"; -const boxDr = "╓"; -const boxH = "═"; -const boxHD = "╦"; -const boxHU = "╩"; -const boxHd = "╤"; -const boxHu = "╧"; -const boxUL = "╝"; -const boxUR = "╚"; -const boxUl = "╜"; -const boxUr = "╙"; -const boxV = "║"; -const boxVH = "╬"; -const boxVL = "╣"; -const boxVR = "╠"; -const boxVh = "╫"; -const boxVl = "╢"; -const boxVr = "╟"; -const boxbox = "⧉"; -const boxdL = "╕"; -const boxdR = "╒"; -const boxdl = "┐"; -const boxdr = "┌"; -const boxh = "─"; -const boxhD = "╥"; -const boxhU = "╨"; -const boxhd = "┬"; -const boxhu = "┴"; -const boxminus = "⊟"; -const boxplus = "⊞"; -const boxtimes = "⊠"; -const boxuL = "╛"; -const boxuR = "╘"; -const boxul = "┘"; -const boxur = "└"; -const boxv = "│"; -const boxvH = "╪"; -const boxvL = "╡"; -const boxvR = "╞"; -const boxvh = "┼"; -const boxvl = "┤"; -const boxvr = "├"; -const bprime = "‵"; -const breve = "˘"; -const brvba = "¦"; -const brvbar = "¦"; -const bscr = "𝒷"; -const bsemi = "⁏"; -const bsim = "∽"; -const bsime = "⋍"; -const bsol = "\\"; -const bsolb = "⧅"; -const bsolhsub = "⟈"; -const bull = "•"; -const bullet = "•"; -const bump = "≎"; -const bumpE = "⪮"; -const bumpe = "≏"; -const bumpeq = "≏"; -const cacute = "ć"; -const cap = "∩"; -const capand = "⩄"; -const capbrcup = "⩉"; -const capcap = "⩋"; -const capcup = "⩇"; -const capdot = "⩀"; -const caps = "∩︀"; -const caret = "⁁"; -const caron = "ˇ"; -const ccaps = "⩍"; -const ccaron = "č"; -const ccedi = "ç"; -const ccedil = "ç"; -const ccirc = "ĉ"; -const ccups = "⩌"; -const ccupssm = "⩐"; -const cdot = "ċ"; -const cedi = "¸"; -const cedil = "¸"; -const cemptyv = "⦲"; -const cen = "¢"; -const cent = "¢"; -const centerdot = "·"; -const cfr = "𝔠"; -const chcy = "ч"; -const check$2 = "✓"; -const checkmark = "✓"; -const chi = "χ"; -const cir = "○"; -const cirE = "⧃"; -const circ = "ˆ"; -const circeq = "≗"; -const circlearrowleft = "↺"; -const circlearrowright = "↻"; -const circledR = "®"; -const circledS = "Ⓢ"; -const circledast = "⊛"; -const circledcirc = "⊚"; -const circleddash = "⊝"; -const cire = "≗"; -const cirfnint = "⨐"; -const cirmid = "⫯"; -const cirscir = "⧂"; -const clubs = "♣"; -const clubsuit = "♣"; -const colon = ":"; -const colone = "≔"; -const coloneq = "≔"; -const comma = ","; -const commat = "@"; -const comp = "∁"; -const compfn = "∘"; -const complement = "∁"; -const complexes = "ℂ"; -const cong = "≅"; -const congdot = "⩭"; -const conint = "∮"; -const copf = "𝕔"; -const coprod = "∐"; -const cop = "©"; -const copy$1 = "©"; -const copysr = "℗"; -const crarr = "↵"; -const cross = "✗"; -const cscr = "𝒸"; -const csub = "⫏"; -const csube = "⫑"; -const csup = "⫐"; -const csupe = "⫒"; -const ctdot = "⋯"; -const cudarrl = "⤸"; -const cudarrr = "⤵"; -const cuepr = "⋞"; -const cuesc = "⋟"; -const cularr = "↶"; -const cularrp = "⤽"; -const cup = "∪"; -const cupbrcap = "⩈"; -const cupcap = "⩆"; -const cupcup = "⩊"; -const cupdot = "⊍"; -const cupor = "⩅"; -const cups = "∪︀"; -const curarr = "↷"; -const curarrm = "⤼"; -const curlyeqprec = "⋞"; -const curlyeqsucc = "⋟"; -const curlyvee = "⋎"; -const curlywedge = "⋏"; -const curre = "¤"; -const curren = "¤"; -const curvearrowleft = "↶"; -const curvearrowright = "↷"; -const cuvee = "⋎"; -const cuwed = "⋏"; -const cwconint = "∲"; -const cwint = "∱"; -const cylcty = "⌭"; -const dArr = "⇓"; -const dHar = "⥥"; -const dagger = "†"; -const daleth = "ℸ"; -const darr = "↓"; -const dash = "‐"; -const dashv = "⊣"; -const dbkarow = "⤏"; -const dblac = "˝"; -const dcaron = "ď"; -const dcy = "д"; -const dd = "ⅆ"; -const ddagger = "‡"; -const ddarr = "⇊"; -const ddotseq = "⩷"; -const de = "°"; -const deg = "°"; -const delta = "δ"; -const demptyv = "⦱"; -const dfisht = "⥿"; -const dfr = "𝔡"; -const dharl = "⇃"; -const dharr = "⇂"; -const diam = "⋄"; -const diamond = "⋄"; -const diamondsuit = "♦"; -const diams = "♦"; -const die = "¨"; -const digamma = "ϝ"; -const disin = "⋲"; -const div = "÷"; -const divid = "÷"; -const divide = "÷"; -const divideontimes = "⋇"; -const divonx = "⋇"; -const djcy = "ђ"; -const dlcorn = "⌞"; -const dlcrop = "⌍"; -const dollar = "$"; -const dopf = "𝕕"; -const dot = "˙"; -const doteq = "≐"; -const doteqdot = "≑"; -const dotminus = "∸"; -const dotplus = "∔"; -const dotsquare = "⊡"; -const doublebarwedge = "⌆"; -const downarrow = "↓"; -const downdownarrows = "⇊"; -const downharpoonleft = "⇃"; -const downharpoonright = "⇂"; -const drbkarow = "⤐"; -const drcorn = "⌟"; -const drcrop = "⌌"; -const dscr = "𝒹"; -const dscy = "ѕ"; -const dsol = "⧶"; -const dstrok = "đ"; -const dtdot = "⋱"; -const dtri = "▿"; -const dtrif = "▾"; -const duarr = "⇵"; -const duhar = "⥯"; -const dwangle = "⦦"; -const dzcy = "џ"; -const dzigrarr = "⟿"; -const eDDot = "⩷"; -const eDot = "≑"; -const eacut = "é"; -const eacute = "é"; -const easter = "⩮"; -const ecaron = "ě"; -const ecir = "ê"; -const ecirc = "ê"; -const ecolon = "≕"; -const ecy = "э"; -const edot = "ė"; -const ee = "ⅇ"; -const efDot = "≒"; -const efr = "𝔢"; -const eg = "⪚"; -const egrav = "è"; -const egrave = "è"; -const egs = "⪖"; -const egsdot = "⪘"; -const el = "⪙"; -const elinters = "⏧"; -const ell = "ℓ"; -const els = "⪕"; -const elsdot = "⪗"; -const emacr = "ē"; -const empty = "∅"; -const emptyset = "∅"; -const emptyv = "∅"; -const emsp13 = " "; -const emsp14 = " "; -const emsp = " "; -const eng = "ŋ"; -const ensp = " "; -const eogon = "ę"; -const eopf = "𝕖"; -const epar = "⋕"; -const eparsl = "⧣"; -const eplus = "⩱"; -const epsi = "ε"; -const epsilon = "ε"; -const epsiv = "ϵ"; -const eqcirc = "≖"; -const eqcolon = "≕"; -const eqsim = "≂"; -const eqslantgtr = "⪖"; -const eqslantless = "⪕"; -const equals = "="; -const equest = "≟"; -const equiv = "≡"; -const equivDD = "⩸"; -const eqvparsl = "⧥"; -const erDot = "≓"; -const erarr = "⥱"; -const escr = "ℯ"; -const esdot = "≐"; -const esim = "≂"; -const eta = "η"; -const et = "ð"; -const eth = "ð"; -const eum = "ë"; -const euml = "ë"; -const euro = "€"; -const excl = "!"; -const exist = "∃"; -const expectation = "ℰ"; -const exponentiale = "ⅇ"; -const fallingdotseq = "≒"; -const fcy = "ф"; -const female = "♀"; -const ffilig = "ffi"; -const fflig = "ff"; -const ffllig = "ffl"; -const ffr = "𝔣"; -const filig = "fi"; -const fjlig = "fj"; -const flat = "♭"; -const fllig = "fl"; -const fltns = "▱"; -const fnof = "ƒ"; -const fopf = "𝕗"; -const forall = "∀"; -const fork = "⋔"; -const forkv = "⫙"; -const fpartint = "⨍"; -const frac1 = "¼"; -const frac12 = "½"; -const frac13 = "⅓"; -const frac14 = "¼"; -const frac15 = "⅕"; -const frac16 = "⅙"; -const frac18 = "⅛"; -const frac23 = "⅔"; -const frac25 = "⅖"; -const frac3 = "¾"; -const frac34 = "¾"; -const frac35 = "⅗"; -const frac38 = "⅜"; -const frac45 = "⅘"; -const frac56 = "⅚"; -const frac58 = "⅝"; -const frac78 = "⅞"; -const frasl = "⁄"; -const frown = "⌢"; -const fscr = "𝒻"; -const gE = "≧"; -const gEl = "⪌"; -const gacute = "ǵ"; -const gamma = "γ"; -const gammad = "ϝ"; -const gap = "⪆"; -const gbreve = "ğ"; -const gcirc = "ĝ"; -const gcy = "г"; -const gdot = "ġ"; -const ge = "≥"; -const gel = "⋛"; -const geq = "≥"; -const geqq = "≧"; -const geqslant = "⩾"; -const ges = "⩾"; -const gescc = "⪩"; -const gesdot = "⪀"; -const gesdoto = "⪂"; -const gesdotol = "⪄"; -const gesl = "⋛︀"; -const gesles = "⪔"; -const gfr = "𝔤"; -const gg = "≫"; -const ggg = "⋙"; -const gimel = "ℷ"; -const gjcy = "ѓ"; -const gl = "≷"; -const glE = "⪒"; -const gla = "⪥"; -const glj = "⪤"; -const gnE = "≩"; -const gnap = "⪊"; -const gnapprox = "⪊"; -const gne = "⪈"; -const gneq = "⪈"; -const gneqq = "≩"; -const gnsim = "⋧"; -const gopf = "𝕘"; -const grave = "`"; -const gscr = "ℊ"; -const gsim = "≳"; -const gsime = "⪎"; -const gsiml = "⪐"; -const g = ">"; -const gt = ">"; -const gtcc = "⪧"; -const gtcir = "⩺"; -const gtdot = "⋗"; -const gtlPar = "⦕"; -const gtquest = "⩼"; -const gtrapprox = "⪆"; -const gtrarr = "⥸"; -const gtrdot = "⋗"; -const gtreqless = "⋛"; -const gtreqqless = "⪌"; -const gtrless = "≷"; -const gtrsim = "≳"; -const gvertneqq = "≩︀"; -const gvnE = "≩︀"; -const hArr = "⇔"; -const hairsp = " "; -const half = "½"; -const hamilt = "ℋ"; -const hardcy = "ъ"; -const harr = "↔"; -const harrcir = "⥈"; -const harrw = "↭"; -const hbar = "ℏ"; -const hcirc = "ĥ"; -const hearts = "♥"; -const heartsuit = "♥"; -const hellip = "…"; -const hercon = "⊹"; -const hfr = "𝔥"; -const hksearow = "⤥"; -const hkswarow = "⤦"; -const hoarr = "⇿"; -const homtht = "∻"; -const hookleftarrow = "↩"; -const hookrightarrow = "↪"; -const hopf = "𝕙"; -const horbar = "―"; -const hscr = "𝒽"; -const hslash = "ℏ"; -const hstrok = "ħ"; -const hybull = "⁃"; -const hyphen = "‐"; -const iacut = "í"; -const iacute = "í"; -const ic = "⁣"; -const icir = "î"; -const icirc = "î"; -const icy = "и"; -const iecy = "е"; -const iexc = "¡"; -const iexcl = "¡"; -const iff = "⇔"; -const ifr = "𝔦"; -const igrav = "ì"; -const igrave = "ì"; -const ii = "ⅈ"; -const iiiint = "⨌"; -const iiint = "∭"; -const iinfin = "⧜"; -const iiota = "℩"; -const ijlig = "ij"; -const imacr = "ī"; -const image = "ℑ"; -const imagline = "ℐ"; -const imagpart = "ℑ"; -const imath = "ı"; -const imof = "⊷"; -const imped = "Ƶ"; -const incare = "℅"; -const infin = "∞"; -const infintie = "⧝"; -const inodot = "ı"; -const int$1 = "∫"; -const intcal = "⊺"; -const integers = "ℤ"; -const intercal = "⊺"; -const intlarhk = "⨗"; -const intprod = "⨼"; -const iocy = "ё"; -const iogon = "į"; -const iopf = "𝕚"; -const iota = "ι"; -const iprod = "⨼"; -const iques = "¿"; -const iquest = "¿"; -const iscr = "𝒾"; -const isin = "∈"; -const isinE = "⋹"; -const isindot = "⋵"; -const isins = "⋴"; -const isinsv = "⋳"; -const isinv = "∈"; -const it = "⁢"; -const itilde = "ĩ"; -const iukcy = "і"; -const ium = "ï"; -const iuml = "ï"; -const jcirc = "ĵ"; -const jcy = "й"; -const jfr = "𝔧"; -const jmath = "ȷ"; -const jopf = "𝕛"; -const jscr = "𝒿"; -const jsercy = "ј"; -const jukcy = "є"; -const kappa = "κ"; -const kappav = "ϰ"; -const kcedil = "ķ"; -const kcy = "к"; -const kfr = "𝔨"; -const kgreen = "ĸ"; -const khcy = "х"; -const kjcy = "ќ"; -const kopf = "𝕜"; -const kscr = "𝓀"; -const lAarr = "⇚"; -const lArr = "⇐"; -const lAtail = "⤛"; -const lBarr = "⤎"; -const lE = "≦"; -const lEg = "⪋"; -const lHar = "⥢"; -const lacute = "ĺ"; -const laemptyv = "⦴"; -const lagran = "ℒ"; -const lambda = "λ"; -const lang = "⟨"; -const langd = "⦑"; -const langle = "⟨"; -const lap = "⪅"; -const laqu = "«"; -const laquo = "«"; -const larr = "←"; -const larrb = "⇤"; -const larrbfs = "⤟"; -const larrfs = "⤝"; -const larrhk = "↩"; -const larrlp = "↫"; -const larrpl = "⤹"; -const larrsim = "⥳"; -const larrtl = "↢"; -const lat = "⪫"; -const latail = "⤙"; -const late = "⪭"; -const lates = "⪭︀"; -const lbarr = "⤌"; -const lbbrk = "❲"; -const lbrace = "{"; -const lbrack = "["; -const lbrke = "⦋"; -const lbrksld = "⦏"; -const lbrkslu = "⦍"; -const lcaron = "ľ"; -const lcedil = "ļ"; -const lceil = "⌈"; -const lcub = "{"; -const lcy = "л"; -const ldca = "⤶"; -const ldquo = "“"; -const ldquor = "„"; -const ldrdhar = "⥧"; -const ldrushar = "⥋"; -const ldsh = "↲"; -const le = "≤"; -const leftarrow = "←"; -const leftarrowtail = "↢"; -const leftharpoondown = "↽"; -const leftharpoonup = "↼"; -const leftleftarrows = "⇇"; -const leftrightarrow = "↔"; -const leftrightarrows = "⇆"; -const leftrightharpoons = "⇋"; -const leftrightsquigarrow = "↭"; -const leftthreetimes = "⋋"; -const leg = "⋚"; -const leq = "≤"; -const leqq = "≦"; -const leqslant = "⩽"; -const les = "⩽"; -const lescc = "⪨"; -const lesdot = "⩿"; -const lesdoto = "⪁"; -const lesdotor = "⪃"; -const lesg = "⋚︀"; -const lesges = "⪓"; -const lessapprox = "⪅"; -const lessdot = "⋖"; -const lesseqgtr = "⋚"; -const lesseqqgtr = "⪋"; -const lessgtr = "≶"; -const lesssim = "≲"; -const lfisht = "⥼"; -const lfloor = "⌊"; -const lfr = "𝔩"; -const lg = "≶"; -const lgE = "⪑"; -const lhard = "↽"; -const lharu = "↼"; -const lharul = "⥪"; -const lhblk = "▄"; -const ljcy = "љ"; -const ll = "≪"; -const llarr = "⇇"; -const llcorner = "⌞"; -const llhard = "⥫"; -const lltri = "◺"; -const lmidot = "ŀ"; -const lmoust = "⎰"; -const lmoustache = "⎰"; -const lnE = "≨"; -const lnap = "⪉"; -const lnapprox = "⪉"; -const lne = "⪇"; -const lneq = "⪇"; -const lneqq = "≨"; -const lnsim = "⋦"; -const loang = "⟬"; -const loarr = "⇽"; -const lobrk = "⟦"; -const longleftarrow = "⟵"; -const longleftrightarrow = "⟷"; -const longmapsto = "⟼"; -const longrightarrow = "⟶"; -const looparrowleft = "↫"; -const looparrowright = "↬"; -const lopar = "⦅"; -const lopf = "𝕝"; -const loplus = "⨭"; -const lotimes = "⨴"; -const lowast = "∗"; -const lowbar = "_"; -const loz = "◊"; -const lozenge = "◊"; -const lozf = "⧫"; -const lpar = "("; -const lparlt = "⦓"; -const lrarr = "⇆"; -const lrcorner = "⌟"; -const lrhar = "⇋"; -const lrhard = "⥭"; -const lrm = "‎"; -const lrtri = "⊿"; -const lsaquo = "‹"; -const lscr = "𝓁"; -const lsh = "↰"; -const lsim = "≲"; -const lsime = "⪍"; -const lsimg = "⪏"; -const lsqb = "["; -const lsquo = "‘"; -const lsquor = "‚"; -const lstrok = "ł"; -const l = "<"; -const lt = "<"; -const ltcc = "⪦"; -const ltcir = "⩹"; -const ltdot = "⋖"; -const lthree = "⋋"; -const ltimes = "⋉"; -const ltlarr = "⥶"; -const ltquest = "⩻"; -const ltrPar = "⦖"; -const ltri = "◃"; -const ltrie = "⊴"; -const ltrif = "◂"; -const lurdshar = "⥊"; -const luruhar = "⥦"; -const lvertneqq = "≨︀"; -const lvnE = "≨︀"; -const mDDot = "∺"; -const mac = "¯"; -const macr = "¯"; -const male = "♂"; -const malt = "✠"; -const maltese = "✠"; -const map$2 = "↦"; -const mapsto = "↦"; -const mapstodown = "↧"; -const mapstoleft = "↤"; -const mapstoup = "↥"; -const marker = "▮"; -const mcomma = "⨩"; -const mcy = "м"; -const mdash = "—"; -const measuredangle = "∡"; -const mfr = "𝔪"; -const mho = "℧"; -const micr = "µ"; -const micro = "µ"; -const mid = "∣"; -const midast = "*"; -const midcir = "⫰"; -const middo = "·"; -const middot = "·"; -const minus = "−"; -const minusb = "⊟"; -const minusd = "∸"; -const minusdu = "⨪"; -const mlcp = "⫛"; -const mldr = "…"; -const mnplus = "∓"; -const models$2 = "⊧"; -const mopf = "𝕞"; -const mp = "∓"; -const mscr = "𝓂"; -const mstpos = "∾"; -const mu = "μ"; -const multimap = "⊸"; -const mumap = "⊸"; -const nGg = "⋙̸"; -const nGt = "≫⃒"; -const nGtv = "≫̸"; -const nLeftarrow = "⇍"; -const nLeftrightarrow = "⇎"; -const nLl = "⋘̸"; -const nLt = "≪⃒"; -const nLtv = "≪̸"; -const nRightarrow = "⇏"; -const nVDash = "⊯"; -const nVdash = "⊮"; -const nabla = "∇"; -const nacute = "ń"; -const nang = "∠⃒"; -const nap = "≉"; -const napE = "⩰̸"; -const napid = "≋̸"; -const napos = "ʼn"; -const napprox = "≉"; -const natur = "♮"; -const natural = "♮"; -const naturals = "ℕ"; -const nbs = " "; -const nbsp = " "; -const nbump = "≎̸"; -const nbumpe = "≏̸"; -const ncap = "⩃"; -const ncaron = "ň"; -const ncedil = "ņ"; -const ncong = "≇"; -const ncongdot = "⩭̸"; -const ncup = "⩂"; -const ncy = "н"; -const ndash = "–"; -const ne = "≠"; -const neArr = "⇗"; -const nearhk = "⤤"; -const nearr = "↗"; -const nearrow = "↗"; -const nedot = "≐̸"; -const nequiv = "≢"; -const nesear = "⤨"; -const nesim = "≂̸"; -const nexist = "∄"; -const nexists = "∄"; -const nfr = "𝔫"; -const ngE = "≧̸"; -const nge = "≱"; -const ngeq = "≱"; -const ngeqq = "≧̸"; -const ngeqslant = "⩾̸"; -const nges = "⩾̸"; -const ngsim = "≵"; -const ngt = "≯"; -const ngtr = "≯"; -const nhArr = "⇎"; -const nharr = "↮"; -const nhpar = "⫲"; -const ni = "∋"; -const nis = "⋼"; -const nisd = "⋺"; -const niv = "∋"; -const njcy = "њ"; -const nlArr = "⇍"; -const nlE = "≦̸"; -const nlarr = "↚"; -const nldr = "‥"; -const nle = "≰"; -const nleftarrow = "↚"; -const nleftrightarrow = "↮"; -const nleq = "≰"; -const nleqq = "≦̸"; -const nleqslant = "⩽̸"; -const nles = "⩽̸"; -const nless = "≮"; -const nlsim = "≴"; -const nlt = "≮"; -const nltri = "⋪"; -const nltrie = "⋬"; -const nmid = "∤"; -const nopf = "𝕟"; -const no = "¬"; -const not = "¬"; -const notin = "∉"; -const notinE = "⋹̸"; -const notindot = "⋵̸"; -const notinva = "∉"; -const notinvb = "⋷"; -const notinvc = "⋶"; -const notni = "∌"; -const notniva = "∌"; -const notnivb = "⋾"; -const notnivc = "⋽"; -const npar = "∦"; -const nparallel = "∦"; -const nparsl = "⫽⃥"; -const npart = "∂̸"; -const npolint = "⨔"; -const npr = "⊀"; -const nprcue = "⋠"; -const npre = "⪯̸"; -const nprec = "⊀"; -const npreceq = "⪯̸"; -const nrArr = "⇏"; -const nrarr = "↛"; -const nrarrc = "⤳̸"; -const nrarrw = "↝̸"; -const nrightarrow = "↛"; -const nrtri = "⋫"; -const nrtrie = "⋭"; -const nsc = "⊁"; -const nsccue = "⋡"; -const nsce = "⪰̸"; -const nscr = "𝓃"; -const nshortmid = "∤"; -const nshortparallel = "∦"; -const nsim = "≁"; -const nsime = "≄"; -const nsimeq = "≄"; -const nsmid = "∤"; -const nspar = "∦"; -const nsqsube = "⋢"; -const nsqsupe = "⋣"; -const nsub = "⊄"; -const nsubE = "⫅̸"; -const nsube = "⊈"; -const nsubset = "⊂⃒"; -const nsubseteq = "⊈"; -const nsubseteqq = "⫅̸"; -const nsucc = "⊁"; -const nsucceq = "⪰̸"; -const nsup = "⊅"; -const nsupE = "⫆̸"; -const nsupe = "⊉"; -const nsupset = "⊃⃒"; -const nsupseteq = "⊉"; -const nsupseteqq = "⫆̸"; -const ntgl = "≹"; -const ntild = "ñ"; -const ntilde = "ñ"; -const ntlg = "≸"; -const ntriangleleft = "⋪"; -const ntrianglelefteq = "⋬"; -const ntriangleright = "⋫"; -const ntrianglerighteq = "⋭"; -const nu = "ν"; -const num = "#"; -const numero = "№"; -const numsp = " "; -const nvDash = "⊭"; -const nvHarr = "⤄"; -const nvap = "≍⃒"; -const nvdash = "⊬"; -const nvge = "≥⃒"; -const nvgt = ">⃒"; -const nvinfin = "⧞"; -const nvlArr = "⤂"; -const nvle = "≤⃒"; -const nvlt = "<⃒"; -const nvltrie = "⊴⃒"; -const nvrArr = "⤃"; -const nvrtrie = "⊵⃒"; -const nvsim = "∼⃒"; -const nwArr = "⇖"; -const nwarhk = "⤣"; -const nwarr = "↖"; -const nwarrow = "↖"; -const nwnear = "⤧"; -const oS = "Ⓢ"; -const oacut = "ó"; -const oacute = "ó"; -const oast = "⊛"; -const ocir = "ô"; -const ocirc = "ô"; -const ocy = "о"; -const odash = "⊝"; -const odblac = "ő"; -const odiv = "⨸"; -const odot = "⊙"; -const odsold = "⦼"; -const oelig = "œ"; -const ofcir = "⦿"; -const ofr = "𝔬"; -const ogon = "˛"; -const ograv = "ò"; -const ograve = "ò"; -const ogt = "⧁"; -const ohbar = "⦵"; -const ohm = "Ω"; -const oint = "∮"; -const olarr = "↺"; -const olcir = "⦾"; -const olcross = "⦻"; -const oline = "‾"; -const olt = "⧀"; -const omacr = "ō"; -const omega = "ω"; -const omicron = "ο"; -const omid = "⦶"; -const ominus = "⊖"; -const oopf = "𝕠"; -const opar = "⦷"; -const operp = "⦹"; -const oplus = "⊕"; -const or = "∨"; -const orarr = "↻"; -const ord = "º"; -const order$1 = "ℴ"; -const orderof = "ℴ"; -const ordf = "ª"; -const ordm = "º"; -const origof = "⊶"; -const oror = "⩖"; -const orslope = "⩗"; -const orv = "⩛"; -const oscr = "ℴ"; -const oslas = "ø"; -const oslash = "ø"; -const osol = "⊘"; -const otild = "õ"; -const otilde = "õ"; -const otimes = "⊗"; -const otimesas = "⨶"; -const oum = "ö"; -const ouml = "ö"; -const ovbar = "⌽"; -const par = "¶"; -const para = "¶"; -const parallel = "∥"; -const parsim = "⫳"; -const parsl = "⫽"; -const part = "∂"; -const pcy = "п"; -const percnt = "%"; -const period = "."; -const permil = "‰"; -const perp = "⊥"; -const pertenk = "‱"; -const pfr = "𝔭"; -const phi = "φ"; -const phiv = "ϕ"; -const phmmat = "ℳ"; -const phone = "☎"; -const pi = "π"; -const pitchfork = "⋔"; -const piv = "ϖ"; -const planck = "ℏ"; -const planckh = "ℎ"; -const plankv = "ℏ"; -const plus = "+"; -const plusacir = "⨣"; -const plusb = "⊞"; -const pluscir = "⨢"; -const plusdo = "∔"; -const plusdu = "⨥"; -const pluse = "⩲"; -const plusm = "±"; -const plusmn = "±"; -const plussim = "⨦"; -const plustwo = "⨧"; -const pm = "±"; -const pointint = "⨕"; -const popf = "𝕡"; -const poun = "£"; -const pound = "£"; -const pr = "≺"; -const prE = "⪳"; -const prap = "⪷"; -const prcue = "≼"; -const pre = "⪯"; -const prec = "≺"; -const precapprox = "⪷"; -const preccurlyeq = "≼"; -const preceq = "⪯"; -const precnapprox = "⪹"; -const precneqq = "⪵"; -const precnsim = "⋨"; -const precsim = "≾"; -const prime = "′"; -const primes = "ℙ"; -const prnE = "⪵"; -const prnap = "⪹"; -const prnsim = "⋨"; -const prod = "∏"; -const profalar = "⌮"; -const profline = "⌒"; -const profsurf = "⌓"; -const prop = "∝"; -const propto = "∝"; -const prsim = "≾"; -const prurel = "⊰"; -const pscr = "𝓅"; -const psi = "ψ"; -const puncsp = " "; -const qfr = "𝔮"; -const qint = "⨌"; -const qopf = "𝕢"; -const qprime = "⁗"; -const qscr = "𝓆"; -const quaternions = "ℍ"; -const quatint = "⨖"; -const quest = "?"; -const questeq = "≟"; -const quo = "\""; -const quot = "\""; -const rAarr = "⇛"; -const rArr = "⇒"; -const rAtail = "⤜"; -const rBarr = "⤏"; -const rHar = "⥤"; -const race = "∽̱"; -const racute = "ŕ"; -const radic = "√"; -const raemptyv = "⦳"; -const rang = "⟩"; -const rangd = "⦒"; -const range$1 = "⦥"; -const rangle = "⟩"; -const raqu = "»"; -const raquo = "»"; -const rarr = "→"; -const rarrap = "⥵"; -const rarrb = "⇥"; -const rarrbfs = "⤠"; -const rarrc = "⤳"; -const rarrfs = "⤞"; -const rarrhk = "↪"; -const rarrlp = "↬"; -const rarrpl = "⥅"; -const rarrsim = "⥴"; -const rarrtl = "↣"; -const rarrw = "↝"; -const ratail = "⤚"; -const ratio = "∶"; -const rationals = "ℚ"; -const rbarr = "⤍"; -const rbbrk = "❳"; -const rbrace = "}"; -const rbrack = "]"; -const rbrke = "⦌"; -const rbrksld = "⦎"; -const rbrkslu = "⦐"; -const rcaron = "ř"; -const rcedil = "ŗ"; -const rceil = "⌉"; -const rcub = "}"; -const rcy = "р"; -const rdca = "⤷"; -const rdldhar = "⥩"; -const rdquo = "”"; -const rdquor = "”"; -const rdsh = "↳"; -const real = "ℜ"; -const realine = "ℛ"; -const realpart = "ℜ"; -const reals = "ℝ"; -const rect = "▭"; -const re = "®"; -const reg = "®"; -const rfisht = "⥽"; -const rfloor = "⌋"; -const rfr = "𝔯"; -const rhard = "⇁"; -const rharu = "⇀"; -const rharul = "⥬"; -const rho = "ρ"; -const rhov = "ϱ"; -const rightarrow = "→"; -const rightarrowtail = "↣"; -const rightharpoondown = "⇁"; -const rightharpoonup = "⇀"; -const rightleftarrows = "⇄"; -const rightleftharpoons = "⇌"; -const rightrightarrows = "⇉"; -const rightsquigarrow = "↝"; -const rightthreetimes = "⋌"; -const ring = "˚"; -const risingdotseq = "≓"; -const rlarr = "⇄"; -const rlhar = "⇌"; -const rlm = "‏"; -const rmoust = "⎱"; -const rmoustache = "⎱"; -const rnmid = "⫮"; -const roang = "⟭"; -const roarr = "⇾"; -const robrk = "⟧"; -const ropar = "⦆"; -const ropf = "𝕣"; -const roplus = "⨮"; -const rotimes = "⨵"; -const rpar = ")"; -const rpargt = "⦔"; -const rppolint = "⨒"; -const rrarr = "⇉"; -const rsaquo = "›"; -const rscr = "𝓇"; -const rsh = "↱"; -const rsqb = "]"; -const rsquo = "’"; -const rsquor = "’"; -const rthree = "⋌"; -const rtimes = "⋊"; -const rtri = "▹"; -const rtrie = "⊵"; -const rtrif = "▸"; -const rtriltri = "⧎"; -const ruluhar = "⥨"; -const rx = "℞"; -const sacute = "ś"; -const sbquo = "‚"; -const sc = "≻"; -const scE = "⪴"; -const scap = "⪸"; -const scaron = "š"; -const sccue = "≽"; -const sce = "⪰"; -const scedil = "ş"; -const scirc = "ŝ"; -const scnE = "⪶"; -const scnap = "⪺"; -const scnsim = "⋩"; -const scpolint = "⨓"; -const scsim = "≿"; -const scy = "с"; -const sdot = "⋅"; -const sdotb = "⊡"; -const sdote = "⩦"; -const seArr = "⇘"; -const searhk = "⤥"; -const searr = "↘"; -const searrow = "↘"; -const sec = "§"; -const sect = "§"; -const semi = ";"; -const seswar = "⤩"; -const setminus = "∖"; -const setmn = "∖"; -const sext = "✶"; -const sfr = "𝔰"; -const sfrown = "⌢"; -const sharp = "♯"; -const shchcy = "щ"; -const shcy = "ш"; -const shortmid = "∣"; -const shortparallel = "∥"; -const sh = "­"; -const shy = "­"; -const sigma = "σ"; -const sigmaf = "ς"; -const sigmav = "ς"; -const sim = "∼"; -const simdot = "⩪"; -const sime = "≃"; -const simeq = "≃"; -const simg = "⪞"; -const simgE = "⪠"; -const siml = "⪝"; -const simlE = "⪟"; -const simne = "≆"; -const simplus = "⨤"; -const simrarr = "⥲"; -const slarr = "←"; -const smallsetminus = "∖"; -const smashp = "⨳"; -const smeparsl = "⧤"; -const smid = "∣"; -const smile = "⌣"; -const smt = "⪪"; -const smte = "⪬"; -const smtes = "⪬︀"; -const softcy = "ь"; -const sol = "/"; -const solb = "⧄"; -const solbar = "⌿"; -const sopf = "𝕤"; -const spades = "♠"; -const spadesuit = "♠"; -const spar = "∥"; -const sqcap = "⊓"; -const sqcaps = "⊓︀"; -const sqcup = "⊔"; -const sqcups = "⊔︀"; -const sqsub = "⊏"; -const sqsube = "⊑"; -const sqsubset = "⊏"; -const sqsubseteq = "⊑"; -const sqsup = "⊐"; -const sqsupe = "⊒"; -const sqsupset = "⊐"; -const sqsupseteq = "⊒"; -const squ = "□"; -const square = "□"; -const squarf = "▪"; -const squf = "▪"; -const srarr = "→"; -const sscr = "𝓈"; -const ssetmn = "∖"; -const ssmile = "⌣"; -const sstarf = "⋆"; -const star$1 = "☆"; -const starf = "★"; -const straightepsilon = "ϵ"; -const straightphi = "ϕ"; -const strns = "¯"; -const sub = "⊂"; -const subE = "⫅"; -const subdot = "⪽"; -const sube = "⊆"; -const subedot = "⫃"; -const submult = "⫁"; -const subnE = "⫋"; -const subne = "⊊"; -const subplus = "⪿"; -const subrarr = "⥹"; -const subset = "⊂"; -const subseteq = "⊆"; -const subseteqq = "⫅"; -const subsetneq = "⊊"; -const subsetneqq = "⫋"; -const subsim = "⫇"; -const subsub = "⫕"; -const subsup = "⫓"; -const succ = "≻"; -const succapprox = "⪸"; -const succcurlyeq = "≽"; -const succeq = "⪰"; -const succnapprox = "⪺"; -const succneqq = "⪶"; -const succnsim = "⋩"; -const succsim = "≿"; -const sum = "∑"; -const sung = "♪"; -const sup = "⊃"; -const sup1 = "¹"; -const sup2 = "²"; -const sup3 = "³"; -const supE = "⫆"; -const supdot = "⪾"; -const supdsub = "⫘"; -const supe = "⊇"; -const supedot = "⫄"; -const suphsol = "⟉"; -const suphsub = "⫗"; -const suplarr = "⥻"; -const supmult = "⫂"; -const supnE = "⫌"; -const supne = "⊋"; -const supplus = "⫀"; -const supset = "⊃"; -const supseteq = "⊇"; -const supseteqq = "⫆"; -const supsetneq = "⊋"; -const supsetneqq = "⫌"; -const supsim = "⫈"; -const supsub = "⫔"; -const supsup = "⫖"; -const swArr = "⇙"; -const swarhk = "⤦"; -const swarr = "↙"; -const swarrow = "↙"; -const swnwar = "⤪"; -const szli = "ß"; -const szlig = "ß"; -const target = "⌖"; -const tau = "τ"; -const tbrk = "⎴"; -const tcaron = "ť"; -const tcedil = "ţ"; -const tcy = "т"; -const tdot = "⃛"; -const telrec = "⌕"; -const tfr = "𝔱"; -const there4 = "∴"; -const therefore = "∴"; -const theta = "θ"; -const thetasym = "ϑ"; -const thetav = "ϑ"; -const thickapprox = "≈"; -const thicksim = "∼"; -const thinsp = " "; -const thkap = "≈"; -const thksim = "∼"; -const thor = "þ"; -const thorn = "þ"; -const tilde = "˜"; -const time = "×"; -const times = "×"; -const timesb = "⊠"; -const timesbar = "⨱"; -const timesd = "⨰"; -const tint = "∭"; -const toea = "⤨"; -const top = "⊤"; -const topbot = "⌶"; -const topcir = "⫱"; -const topf = "𝕥"; -const topfork = "⫚"; -const tosa = "⤩"; -const tprime = "‴"; -const trade = "™"; -const triangle = "▵"; -const triangledown = "▿"; -const triangleleft = "◃"; -const trianglelefteq = "⊴"; -const triangleq = "≜"; -const triangleright = "▹"; -const trianglerighteq = "⊵"; -const tridot = "◬"; -const trie = "≜"; -const triminus = "⨺"; -const triplus = "⨹"; -const trisb = "⧍"; -const tritime = "⨻"; -const trpezium = "⏢"; -const tscr = "𝓉"; -const tscy = "ц"; -const tshcy = "ћ"; -const tstrok = "ŧ"; -const twixt = "≬"; -const twoheadleftarrow = "↞"; -const twoheadrightarrow = "↠"; -const uArr = "⇑"; -const uHar = "⥣"; -const uacut = "ú"; -const uacute = "ú"; -const uarr = "↑"; -const ubrcy = "ў"; -const ubreve = "ŭ"; -const ucir = "û"; -const ucirc = "û"; -const ucy = "у"; -const udarr = "⇅"; -const udblac = "ű"; -const udhar = "⥮"; -const ufisht = "⥾"; -const ufr = "𝔲"; -const ugrav = "ù"; -const ugrave = "ù"; -const uharl = "↿"; -const uharr = "↾"; -const uhblk = "▀"; -const ulcorn = "⌜"; -const ulcorner = "⌜"; -const ulcrop = "⌏"; -const ultri = "◸"; -const umacr = "ū"; -const um = "¨"; -const uml = "¨"; -const uogon = "ų"; -const uopf = "𝕦"; -const uparrow = "↑"; -const updownarrow = "↕"; -const upharpoonleft = "↿"; -const upharpoonright = "↾"; -const uplus = "⊎"; -const upsi = "υ"; -const upsih = "ϒ"; -const upsilon = "υ"; -const upuparrows = "⇈"; -const urcorn = "⌝"; -const urcorner = "⌝"; -const urcrop = "⌎"; -const uring = "ů"; -const urtri = "◹"; -const uscr = "𝓊"; -const utdot = "⋰"; -const utilde = "ũ"; -const utri = "▵"; -const utrif = "▴"; -const uuarr = "⇈"; -const uum = "ü"; -const uuml = "ü"; -const uwangle = "⦧"; -const vArr = "⇕"; -const vBar = "⫨"; -const vBarv = "⫩"; -const vDash = "⊨"; -const vangrt = "⦜"; -const varepsilon = "ϵ"; -const varkappa = "ϰ"; -const varnothing = "∅"; -const varphi = "ϕ"; -const varpi = "ϖ"; -const varpropto = "∝"; -const varr = "↕"; -const varrho = "ϱ"; -const varsigma = "ς"; -const varsubsetneq = "⊊︀"; -const varsubsetneqq = "⫋︀"; -const varsupsetneq = "⊋︀"; -const varsupsetneqq = "⫌︀"; -const vartheta = "ϑ"; -const vartriangleleft = "⊲"; -const vartriangleright = "⊳"; -const vcy = "в"; -const vdash = "⊢"; -const vee = "∨"; -const veebar = "⊻"; -const veeeq = "≚"; -const vellip = "⋮"; -const verbar = "|"; -const vert = "|"; -const vfr = "𝔳"; -const vltri = "⊲"; -const vnsub = "⊂⃒"; -const vnsup = "⊃⃒"; -const vopf = "𝕧"; -const vprop = "∝"; -const vrtri = "⊳"; -const vscr = "𝓋"; -const vsubnE = "⫋︀"; -const vsubne = "⊊︀"; -const vsupnE = "⫌︀"; -const vsupne = "⊋︀"; -const vzigzag = "⦚"; -const wcirc = "ŵ"; -const wedbar = "⩟"; -const wedge = "∧"; -const wedgeq = "≙"; -const weierp = "℘"; -const wfr = "𝔴"; -const wopf = "𝕨"; -const wp = "℘"; -const wr = "≀"; -const wreath = "≀"; -const wscr = "𝓌"; -const xcap = "⋂"; -const xcirc = "◯"; -const xcup = "⋃"; -const xdtri = "▽"; -const xfr = "𝔵"; -const xhArr = "⟺"; -const xharr = "⟷"; -const xi = "ξ"; -const xlArr = "⟸"; -const xlarr = "⟵"; -const xmap = "⟼"; -const xnis = "⋻"; -const xodot = "⨀"; -const xopf = "𝕩"; -const xoplus = "⨁"; -const xotime = "⨂"; -const xrArr = "⟹"; -const xrarr = "⟶"; -const xscr = "𝓍"; -const xsqcup = "⨆"; -const xuplus = "⨄"; -const xutri = "△"; -const xvee = "⋁"; -const xwedge = "⋀"; -const yacut = "ý"; -const yacute = "ý"; -const yacy = "я"; -const ycirc = "ŷ"; -const ycy = "ы"; -const ye = "¥"; -const yen = "¥"; -const yfr = "𝔶"; -const yicy = "ї"; -const yopf = "𝕪"; -const yscr = "𝓎"; -const yucy = "ю"; -const yum = "ÿ"; -const yuml = "ÿ"; -const zacute = "ź"; -const zcaron = "ž"; -const zcy = "з"; -const zdot = "ż"; -const zeetrf = "ℨ"; -const zeta = "ζ"; -const zfr = "𝔷"; -const zhcy = "ж"; -const zigrarr = "⇝"; -const zopf = "𝕫"; -const zscr = "𝓏"; -const zwj = "‍"; -const zwnj = "‌"; -var characterEntities = { - AEli: AEli, - AElig: AElig, - AM: AM, - AMP: AMP, - Aacut: Aacut, - Aacute: Aacute, - Abreve: Abreve, - Acir: Acir, - Acirc: Acirc, - Acy: Acy, - Afr: Afr, - Agrav: Agrav, - Agrave: Agrave, - Alpha: Alpha, - Amacr: Amacr, - And: And, - Aogon: Aogon, - Aopf: Aopf, - ApplyFunction: ApplyFunction, - Arin: Arin, - Aring: Aring, - Ascr: Ascr, - Assign: Assign, - Atild: Atild, - Atilde: Atilde, - Aum: Aum, - Auml: Auml, - Backslash: Backslash, - Barv: Barv, - Barwed: Barwed, - Bcy: Bcy, - Because: Because, - Bernoullis: Bernoullis, - Beta: Beta, - Bfr: Bfr, - Bopf: Bopf, - Breve: Breve, - Bscr: Bscr, - Bumpeq: Bumpeq, - CHcy: CHcy, - COP: COP, - COPY: COPY, - Cacute: Cacute, - Cap: Cap, - CapitalDifferentialD: CapitalDifferentialD, - Cayleys: Cayleys, - Ccaron: Ccaron, - Ccedi: Ccedi, - Ccedil: Ccedil, - Ccirc: Ccirc, - Cconint: Cconint, - Cdot: Cdot, - Cedilla: Cedilla, - CenterDot: CenterDot, - Cfr: Cfr, - Chi: Chi, - CircleDot: CircleDot, - CircleMinus: CircleMinus, - CirclePlus: CirclePlus, - CircleTimes: CircleTimes, - ClockwiseContourIntegral: ClockwiseContourIntegral, - CloseCurlyDoubleQuote: CloseCurlyDoubleQuote, - CloseCurlyQuote: CloseCurlyQuote, - Colon: Colon, - Colone: Colone, - Congruent: Congruent, - Conint: Conint, - ContourIntegral: ContourIntegral, - Copf: Copf, - Coproduct: Coproduct, - CounterClockwiseContourIntegral: CounterClockwiseContourIntegral, - Cross: Cross, - Cscr: Cscr, - Cup: Cup, - CupCap: CupCap, - DD: DD, - DDotrahd: DDotrahd, - DJcy: DJcy, - DScy: DScy, - DZcy: DZcy, - Dagger: Dagger, - Darr: Darr, - Dashv: Dashv, - Dcaron: Dcaron, - Dcy: Dcy, - Del: Del, - Delta: Delta, - Dfr: Dfr, - DiacriticalAcute: DiacriticalAcute, - DiacriticalDot: DiacriticalDot, - DiacriticalDoubleAcute: DiacriticalDoubleAcute, - DiacriticalGrave: DiacriticalGrave, - DiacriticalTilde: DiacriticalTilde, - Diamond: Diamond, - DifferentialD: DifferentialD, - Dopf: Dopf, - Dot: Dot, - DotDot: DotDot, - DotEqual: DotEqual, - DoubleContourIntegral: DoubleContourIntegral, - DoubleDot: DoubleDot, - DoubleDownArrow: DoubleDownArrow, - DoubleLeftArrow: DoubleLeftArrow, - DoubleLeftRightArrow: DoubleLeftRightArrow, - DoubleLeftTee: DoubleLeftTee, - DoubleLongLeftArrow: DoubleLongLeftArrow, - DoubleLongLeftRightArrow: DoubleLongLeftRightArrow, - DoubleLongRightArrow: DoubleLongRightArrow, - DoubleRightArrow: DoubleRightArrow, - DoubleRightTee: DoubleRightTee, - DoubleUpArrow: DoubleUpArrow, - DoubleUpDownArrow: DoubleUpDownArrow, - DoubleVerticalBar: DoubleVerticalBar, - DownArrow: DownArrow, - DownArrowBar: DownArrowBar, - DownArrowUpArrow: DownArrowUpArrow, - DownBreve: DownBreve, - DownLeftRightVector: DownLeftRightVector, - DownLeftTeeVector: DownLeftTeeVector, - DownLeftVector: DownLeftVector, - DownLeftVectorBar: DownLeftVectorBar, - DownRightTeeVector: DownRightTeeVector, - DownRightVector: DownRightVector, - DownRightVectorBar: DownRightVectorBar, - DownTee: DownTee, - DownTeeArrow: DownTeeArrow, - Downarrow: Downarrow, - Dscr: Dscr, - Dstrok: Dstrok, - ENG: ENG, - ET: ET, - ETH: ETH, - Eacut: Eacut, - Eacute: Eacute, - Ecaron: Ecaron, - Ecir: Ecir, - Ecirc: Ecirc, - Ecy: Ecy, - Edot: Edot, - Efr: Efr, - Egrav: Egrav, - Egrave: Egrave, - Element: Element, - Emacr: Emacr, - EmptySmallSquare: EmptySmallSquare, - EmptyVerySmallSquare: EmptyVerySmallSquare, - Eogon: Eogon, - Eopf: Eopf, - Epsilon: Epsilon, - Equal: Equal, - EqualTilde: EqualTilde, - Equilibrium: Equilibrium, - Escr: Escr, - Esim: Esim, - Eta: Eta, - Eum: Eum, - Euml: Euml, - Exists: Exists, - ExponentialE: ExponentialE, - Fcy: Fcy, - Ffr: Ffr, - FilledSmallSquare: FilledSmallSquare, - FilledVerySmallSquare: FilledVerySmallSquare, - Fopf: Fopf, - ForAll: ForAll, - Fouriertrf: Fouriertrf, - Fscr: Fscr, - GJcy: GJcy, - G: G, - GT: GT, - Gamma: Gamma, - Gammad: Gammad, - Gbreve: Gbreve, - Gcedil: Gcedil, - Gcirc: Gcirc, - Gcy: Gcy, - Gdot: Gdot, - Gfr: Gfr, - Gg: Gg, - Gopf: Gopf, - GreaterEqual: GreaterEqual, - GreaterEqualLess: GreaterEqualLess, - GreaterFullEqual: GreaterFullEqual, - GreaterGreater: GreaterGreater, - GreaterLess: GreaterLess, - GreaterSlantEqual: GreaterSlantEqual, - GreaterTilde: GreaterTilde, - Gscr: Gscr, - Gt: Gt, - HARDcy: HARDcy, - Hacek: Hacek, - Hat: Hat, - Hcirc: Hcirc, - Hfr: Hfr, - HilbertSpace: HilbertSpace, - Hopf: Hopf, - HorizontalLine: HorizontalLine, - Hscr: Hscr, - Hstrok: Hstrok, - HumpDownHump: HumpDownHump, - HumpEqual: HumpEqual, - IEcy: IEcy, - IJlig: IJlig, - IOcy: IOcy, - Iacut: Iacut, - Iacute: Iacute, - Icir: Icir, - Icirc: Icirc, - Icy: Icy, - Idot: Idot, - Ifr: Ifr, - Igrav: Igrav, - Igrave: Igrave, - Im: Im, - Imacr: Imacr, - ImaginaryI: ImaginaryI, - Implies: Implies, - Int: Int, - Integral: Integral, - Intersection: Intersection, - InvisibleComma: InvisibleComma, - InvisibleTimes: InvisibleTimes, - Iogon: Iogon, - Iopf: Iopf, - Iota: Iota, - Iscr: Iscr, - Itilde: Itilde, - Iukcy: Iukcy, - Ium: Ium, - Iuml: Iuml, - Jcirc: Jcirc, - Jcy: Jcy, - Jfr: Jfr, - Jopf: Jopf, - Jscr: Jscr, - Jsercy: Jsercy, - Jukcy: Jukcy, - KHcy: KHcy, - KJcy: KJcy, - Kappa: Kappa, - Kcedil: Kcedil, - Kcy: Kcy, - Kfr: Kfr, - Kopf: Kopf, - Kscr: Kscr, - LJcy: LJcy, - L: L, - LT: LT, - Lacute: Lacute, - Lambda: Lambda, - Lang: Lang, - Laplacetrf: Laplacetrf, - Larr: Larr, - Lcaron: Lcaron, - Lcedil: Lcedil, - Lcy: Lcy, - LeftAngleBracket: LeftAngleBracket, - LeftArrow: LeftArrow, - LeftArrowBar: LeftArrowBar, - LeftArrowRightArrow: LeftArrowRightArrow, - LeftCeiling: LeftCeiling, - LeftDoubleBracket: LeftDoubleBracket, - LeftDownTeeVector: LeftDownTeeVector, - LeftDownVector: LeftDownVector, - LeftDownVectorBar: LeftDownVectorBar, - LeftFloor: LeftFloor, - LeftRightArrow: LeftRightArrow, - LeftRightVector: LeftRightVector, - LeftTee: LeftTee, - LeftTeeArrow: LeftTeeArrow, - LeftTeeVector: LeftTeeVector, - LeftTriangle: LeftTriangle, - LeftTriangleBar: LeftTriangleBar, - LeftTriangleEqual: LeftTriangleEqual, - LeftUpDownVector: LeftUpDownVector, - LeftUpTeeVector: LeftUpTeeVector, - LeftUpVector: LeftUpVector, - LeftUpVectorBar: LeftUpVectorBar, - LeftVector: LeftVector, - LeftVectorBar: LeftVectorBar, - Leftarrow: Leftarrow, - Leftrightarrow: Leftrightarrow, - LessEqualGreater: LessEqualGreater, - LessFullEqual: LessFullEqual, - LessGreater: LessGreater, - LessLess: LessLess, - LessSlantEqual: LessSlantEqual, - LessTilde: LessTilde, - Lfr: Lfr, - Ll: Ll, - Lleftarrow: Lleftarrow, - Lmidot: Lmidot, - LongLeftArrow: LongLeftArrow, - LongLeftRightArrow: LongLeftRightArrow, - LongRightArrow: LongRightArrow, - Longleftarrow: Longleftarrow, - Longleftrightarrow: Longleftrightarrow, - Longrightarrow: Longrightarrow, - Lopf: Lopf, - LowerLeftArrow: LowerLeftArrow, - LowerRightArrow: LowerRightArrow, - Lscr: Lscr, - Lsh: Lsh, - Lstrok: Lstrok, - Lt: Lt, - "Map": "⤅", - Mcy: Mcy, - MediumSpace: MediumSpace, - Mellintrf: Mellintrf, - Mfr: Mfr, - MinusPlus: MinusPlus, - Mopf: Mopf, - Mscr: Mscr, - Mu: Mu, - NJcy: NJcy, - Nacute: Nacute, - Ncaron: Ncaron, - Ncedil: Ncedil, - Ncy: Ncy, - NegativeMediumSpace: NegativeMediumSpace, - NegativeThickSpace: NegativeThickSpace, - NegativeThinSpace: NegativeThinSpace, - NegativeVeryThinSpace: NegativeVeryThinSpace, - NestedGreaterGreater: NestedGreaterGreater, - NestedLessLess: NestedLessLess, - NewLine: NewLine, - Nfr: Nfr, - NoBreak: NoBreak, - NonBreakingSpace: NonBreakingSpace, - Nopf: Nopf, - Not: Not, - NotCongruent: NotCongruent, - NotCupCap: NotCupCap, - NotDoubleVerticalBar: NotDoubleVerticalBar, - NotElement: NotElement, - NotEqual: NotEqual, - NotEqualTilde: NotEqualTilde, - NotExists: NotExists, - NotGreater: NotGreater, - NotGreaterEqual: NotGreaterEqual, - NotGreaterFullEqual: NotGreaterFullEqual, - NotGreaterGreater: NotGreaterGreater, - NotGreaterLess: NotGreaterLess, - NotGreaterSlantEqual: NotGreaterSlantEqual, - NotGreaterTilde: NotGreaterTilde, - NotHumpDownHump: NotHumpDownHump, - NotHumpEqual: NotHumpEqual, - NotLeftTriangle: NotLeftTriangle, - NotLeftTriangleBar: NotLeftTriangleBar, - NotLeftTriangleEqual: NotLeftTriangleEqual, - NotLess: NotLess, - NotLessEqual: NotLessEqual, - NotLessGreater: NotLessGreater, - NotLessLess: NotLessLess, - NotLessSlantEqual: NotLessSlantEqual, - NotLessTilde: NotLessTilde, - NotNestedGreaterGreater: NotNestedGreaterGreater, - NotNestedLessLess: NotNestedLessLess, - NotPrecedes: NotPrecedes, - NotPrecedesEqual: NotPrecedesEqual, - NotPrecedesSlantEqual: NotPrecedesSlantEqual, - NotReverseElement: NotReverseElement, - NotRightTriangle: NotRightTriangle, - NotRightTriangleBar: NotRightTriangleBar, - NotRightTriangleEqual: NotRightTriangleEqual, - NotSquareSubset: NotSquareSubset, - NotSquareSubsetEqual: NotSquareSubsetEqual, - NotSquareSuperset: NotSquareSuperset, - NotSquareSupersetEqual: NotSquareSupersetEqual, - NotSubset: NotSubset, - NotSubsetEqual: NotSubsetEqual, - NotSucceeds: NotSucceeds, - NotSucceedsEqual: NotSucceedsEqual, - NotSucceedsSlantEqual: NotSucceedsSlantEqual, - NotSucceedsTilde: NotSucceedsTilde, - NotSuperset: NotSuperset, - NotSupersetEqual: NotSupersetEqual, - NotTilde: NotTilde, - NotTildeEqual: NotTildeEqual, - NotTildeFullEqual: NotTildeFullEqual, - NotTildeTilde: NotTildeTilde, - NotVerticalBar: NotVerticalBar, - Nscr: Nscr, - Ntild: Ntild, - Ntilde: Ntilde, - Nu: Nu, - OElig: OElig, - Oacut: Oacut, - Oacute: Oacute, - Ocir: Ocir, - Ocirc: Ocirc, - Ocy: Ocy, - Odblac: Odblac, - Ofr: Ofr, - Ograv: Ograv, - Ograve: Ograve, - Omacr: Omacr, - Omega: Omega, - Omicron: Omicron, - Oopf: Oopf, - OpenCurlyDoubleQuote: OpenCurlyDoubleQuote, - OpenCurlyQuote: OpenCurlyQuote, - Or: Or, - Oscr: Oscr, - Oslas: Oslas, - Oslash: Oslash, - Otild: Otild, - Otilde: Otilde, - Otimes: Otimes, - Oum: Oum, - Ouml: Ouml, - OverBar: OverBar, - OverBrace: OverBrace, - OverBracket: OverBracket, - OverParenthesis: OverParenthesis, - PartialD: PartialD, - Pcy: Pcy, - Pfr: Pfr, - Phi: Phi, - Pi: Pi, - PlusMinus: PlusMinus, - Poincareplane: Poincareplane, - Popf: Popf, - Pr: Pr, - Precedes: Precedes, - PrecedesEqual: PrecedesEqual, - PrecedesSlantEqual: PrecedesSlantEqual, - PrecedesTilde: PrecedesTilde, - Prime: Prime, - Product: Product, - Proportion: Proportion, - Proportional: Proportional, - Pscr: Pscr, - Psi: Psi, - QUO: QUO, - QUOT: QUOT, - Qfr: Qfr, - Qopf: Qopf, - Qscr: Qscr, - RBarr: RBarr, - RE: RE, - REG: REG, - Racute: Racute, - Rang: Rang, - Rarr: Rarr, - Rarrtl: Rarrtl, - Rcaron: Rcaron, - Rcedil: Rcedil, - Rcy: Rcy, - Re: Re, - ReverseElement: ReverseElement, - ReverseEquilibrium: ReverseEquilibrium, - ReverseUpEquilibrium: ReverseUpEquilibrium, - Rfr: Rfr, - Rho: Rho, - RightAngleBracket: RightAngleBracket, - RightArrow: RightArrow, - RightArrowBar: RightArrowBar, - RightArrowLeftArrow: RightArrowLeftArrow, - RightCeiling: RightCeiling, - RightDoubleBracket: RightDoubleBracket, - RightDownTeeVector: RightDownTeeVector, - RightDownVector: RightDownVector, - RightDownVectorBar: RightDownVectorBar, - RightFloor: RightFloor, - RightTee: RightTee, - RightTeeArrow: RightTeeArrow, - RightTeeVector: RightTeeVector, - RightTriangle: RightTriangle, - RightTriangleBar: RightTriangleBar, - RightTriangleEqual: RightTriangleEqual, - RightUpDownVector: RightUpDownVector, - RightUpTeeVector: RightUpTeeVector, - RightUpVector: RightUpVector, - RightUpVectorBar: RightUpVectorBar, - RightVector: RightVector, - RightVectorBar: RightVectorBar, - Rightarrow: Rightarrow, - Ropf: Ropf, - RoundImplies: RoundImplies, - Rrightarrow: Rrightarrow, - Rscr: Rscr, - Rsh: Rsh, - RuleDelayed: RuleDelayed, - SHCHcy: SHCHcy, - SHcy: SHcy, - SOFTcy: SOFTcy, - Sacute: Sacute, - Sc: Sc, - Scaron: Scaron, - Scedil: Scedil, - Scirc: Scirc, - Scy: Scy, - Sfr: Sfr, - ShortDownArrow: ShortDownArrow, - ShortLeftArrow: ShortLeftArrow, - ShortRightArrow: ShortRightArrow, - ShortUpArrow: ShortUpArrow, - Sigma: Sigma, - SmallCircle: SmallCircle, - Sopf: Sopf, - Sqrt: Sqrt, - Square: Square, - SquareIntersection: SquareIntersection, - SquareSubset: SquareSubset, - SquareSubsetEqual: SquareSubsetEqual, - SquareSuperset: SquareSuperset, - SquareSupersetEqual: SquareSupersetEqual, - SquareUnion: SquareUnion, - Sscr: Sscr, - Star: Star, - Sub: Sub, - Subset: Subset, - SubsetEqual: SubsetEqual, - Succeeds: Succeeds, - SucceedsEqual: SucceedsEqual, - SucceedsSlantEqual: SucceedsSlantEqual, - SucceedsTilde: SucceedsTilde, - SuchThat: SuchThat, - Sum: Sum, - Sup: Sup, - Superset: Superset, - SupersetEqual: SupersetEqual, - Supset: Supset, - THOR: THOR, - THORN: THORN, - TRADE: TRADE, - TSHcy: TSHcy, - TScy: TScy, - Tab: Tab, - Tau: Tau, - Tcaron: Tcaron, - Tcedil: Tcedil, - Tcy: Tcy, - Tfr: Tfr, - Therefore: Therefore, - Theta: Theta, - ThickSpace: ThickSpace, - ThinSpace: ThinSpace, - Tilde: Tilde, - TildeEqual: TildeEqual, - TildeFullEqual: TildeFullEqual, - TildeTilde: TildeTilde, - Topf: Topf, - TripleDot: TripleDot, - Tscr: Tscr, - Tstrok: Tstrok, - Uacut: Uacut, - Uacute: Uacute, - Uarr: Uarr, - Uarrocir: Uarrocir, - Ubrcy: Ubrcy, - Ubreve: Ubreve, - Ucir: Ucir, - Ucirc: Ucirc, - Ucy: Ucy, - Udblac: Udblac, - Ufr: Ufr, - Ugrav: Ugrav, - Ugrave: Ugrave, - Umacr: Umacr, - UnderBar: UnderBar, - UnderBrace: UnderBrace, - UnderBracket: UnderBracket, - UnderParenthesis: UnderParenthesis, - Union: Union, - UnionPlus: UnionPlus, - Uogon: Uogon, - Uopf: Uopf, - UpArrow: UpArrow, - UpArrowBar: UpArrowBar, - UpArrowDownArrow: UpArrowDownArrow, - UpDownArrow: UpDownArrow, - UpEquilibrium: UpEquilibrium, - UpTee: UpTee, - UpTeeArrow: UpTeeArrow, - Uparrow: Uparrow, - Updownarrow: Updownarrow, - UpperLeftArrow: UpperLeftArrow, - UpperRightArrow: UpperRightArrow, - Upsi: Upsi, - Upsilon: Upsilon, - Uring: Uring, - Uscr: Uscr, - Utilde: Utilde, - Uum: Uum, - Uuml: Uuml, - VDash: VDash, - Vbar: Vbar, - Vcy: Vcy, - Vdash: Vdash, - Vdashl: Vdashl, - Vee: Vee, - Verbar: Verbar, - Vert: Vert, - VerticalBar: VerticalBar, - VerticalLine: VerticalLine, - VerticalSeparator: VerticalSeparator, - VerticalTilde: VerticalTilde, - VeryThinSpace: VeryThinSpace, - Vfr: Vfr, - Vopf: Vopf, - Vscr: Vscr, - Vvdash: Vvdash, - Wcirc: Wcirc, - Wedge: Wedge, - Wfr: Wfr, - Wopf: Wopf, - Wscr: Wscr, - Xfr: Xfr, - Xi: Xi, - Xopf: Xopf, - Xscr: Xscr, - YAcy: YAcy, - YIcy: YIcy, - YUcy: YUcy, - Yacut: Yacut, - Yacute: Yacute, - Ycirc: Ycirc, - Ycy: Ycy, - Yfr: Yfr, - Yopf: Yopf, - Yscr: Yscr, - Yuml: Yuml, - ZHcy: ZHcy, - Zacute: Zacute, - Zcaron: Zcaron, - Zcy: Zcy, - Zdot: Zdot, - ZeroWidthSpace: ZeroWidthSpace, - Zeta: Zeta, - Zfr: Zfr, - Zopf: Zopf, - Zscr: Zscr, - aacut: aacut, - aacute: aacute, - abreve: abreve, - ac: ac, - acE: acE, - acd: acd, - acir: acir, - acirc: acirc, - acut: acut, - acute: acute, - acy: acy, - aeli: aeli, - aelig: aelig, - af: af, - afr: afr, - agrav: agrav, - agrave: agrave, - alefsym: alefsym, - aleph: aleph, - alpha: alpha, - amacr: amacr, - amalg: amalg, - am: am, - amp: amp, - and: and, - andand: andand, - andd: andd, - andslope: andslope, - andv: andv, - ang: ang, - ange: ange, - angle: angle, - angmsd: angmsd, - angmsdaa: angmsdaa, - angmsdab: angmsdab, - angmsdac: angmsdac, - angmsdad: angmsdad, - angmsdae: angmsdae, - angmsdaf: angmsdaf, - angmsdag: angmsdag, - angmsdah: angmsdah, - angrt: angrt, - angrtvb: angrtvb, - angrtvbd: angrtvbd, - angsph: angsph, - angst: angst, - angzarr: angzarr, - aogon: aogon, - aopf: aopf, - ap: ap, - apE: apE, - apacir: apacir, - ape: ape, - apid: apid, - apos: apos, - approx: approx, - approxeq: approxeq, - arin: arin, - aring: aring, - ascr: ascr, - ast: ast, - asymp: asymp, - asympeq: asympeq, - atild: atild, - atilde: atilde, - aum: aum, - auml: auml, - awconint: awconint, - awint: awint, - bNot: bNot, - backcong: backcong, - backepsilon: backepsilon, - backprime: backprime, - backsim: backsim, - backsimeq: backsimeq, - barvee: barvee, - barwed: barwed, - barwedge: barwedge, - bbrk: bbrk, - bbrktbrk: bbrktbrk, - bcong: bcong, - bcy: bcy, - bdquo: bdquo, - becaus: becaus, - because: because, - bemptyv: bemptyv, - bepsi: bepsi, - bernou: bernou, - beta: beta, - beth: beth, - between: between, - bfr: bfr, - bigcap: bigcap, - bigcirc: bigcirc, - bigcup: bigcup, - bigodot: bigodot, - bigoplus: bigoplus, - bigotimes: bigotimes, - bigsqcup: bigsqcup, - bigstar: bigstar, - bigtriangledown: bigtriangledown, - bigtriangleup: bigtriangleup, - biguplus: biguplus, - bigvee: bigvee, - bigwedge: bigwedge, - bkarow: bkarow, - blacklozenge: blacklozenge, - blacksquare: blacksquare, - blacktriangle: blacktriangle, - blacktriangledown: blacktriangledown, - blacktriangleleft: blacktriangleleft, - blacktriangleright: blacktriangleright, - blank: blank, - blk12: blk12, - blk14: blk14, - blk34: blk34, - block: block, - bne: bne, - bnequiv: bnequiv, - bnot: bnot, - bopf: bopf, - bot: bot, - bottom: bottom, - bowtie: bowtie, - boxDL: boxDL, - boxDR: boxDR, - boxDl: boxDl, - boxDr: boxDr, - boxH: boxH, - boxHD: boxHD, - boxHU: boxHU, - boxHd: boxHd, - boxHu: boxHu, - boxUL: boxUL, - boxUR: boxUR, - boxUl: boxUl, - boxUr: boxUr, - boxV: boxV, - boxVH: boxVH, - boxVL: boxVL, - boxVR: boxVR, - boxVh: boxVh, - boxVl: boxVl, - boxVr: boxVr, - boxbox: boxbox, - boxdL: boxdL, - boxdR: boxdR, - boxdl: boxdl, - boxdr: boxdr, - boxh: boxh, - boxhD: boxhD, - boxhU: boxhU, - boxhd: boxhd, - boxhu: boxhu, - boxminus: boxminus, - boxplus: boxplus, - boxtimes: boxtimes, - boxuL: boxuL, - boxuR: boxuR, - boxul: boxul, - boxur: boxur, - boxv: boxv, - boxvH: boxvH, - boxvL: boxvL, - boxvR: boxvR, - boxvh: boxvh, - boxvl: boxvl, - boxvr: boxvr, - bprime: bprime, - breve: breve, - brvba: brvba, - brvbar: brvbar, - bscr: bscr, - bsemi: bsemi, - bsim: bsim, - bsime: bsime, - bsol: bsol, - bsolb: bsolb, - bsolhsub: bsolhsub, - bull: bull, - bullet: bullet, - bump: bump, - bumpE: bumpE, - bumpe: bumpe, - bumpeq: bumpeq, - cacute: cacute, - cap: cap, - capand: capand, - capbrcup: capbrcup, - capcap: capcap, - capcup: capcup, - capdot: capdot, - caps: caps, - caret: caret, - caron: caron, - ccaps: ccaps, - ccaron: ccaron, - ccedi: ccedi, - ccedil: ccedil, - ccirc: ccirc, - ccups: ccups, - ccupssm: ccupssm, - cdot: cdot, - cedi: cedi, - cedil: cedil, - cemptyv: cemptyv, - cen: cen, - cent: cent, - centerdot: centerdot, - cfr: cfr, - chcy: chcy, - check: check$2, - checkmark: checkmark, - chi: chi, - cir: cir, - cirE: cirE, - circ: circ, - circeq: circeq, - circlearrowleft: circlearrowleft, - circlearrowright: circlearrowright, - circledR: circledR, - circledS: circledS, - circledast: circledast, - circledcirc: circledcirc, - circleddash: circleddash, - cire: cire, - cirfnint: cirfnint, - cirmid: cirmid, - cirscir: cirscir, - clubs: clubs, - clubsuit: clubsuit, - colon: colon, - colone: colone, - coloneq: coloneq, - comma: comma, - commat: commat, - comp: comp, - compfn: compfn, - complement: complement, - complexes: complexes, - cong: cong, - congdot: congdot, - conint: conint, - copf: copf, - coprod: coprod, - cop: cop, - copy: copy$1, - copysr: copysr, - crarr: crarr, - cross: cross, - cscr: cscr, - csub: csub, - csube: csube, - csup: csup, - csupe: csupe, - ctdot: ctdot, - cudarrl: cudarrl, - cudarrr: cudarrr, - cuepr: cuepr, - cuesc: cuesc, - cularr: cularr, - cularrp: cularrp, - cup: cup, - cupbrcap: cupbrcap, - cupcap: cupcap, - cupcup: cupcup, - cupdot: cupdot, - cupor: cupor, - cups: cups, - curarr: curarr, - curarrm: curarrm, - curlyeqprec: curlyeqprec, - curlyeqsucc: curlyeqsucc, - curlyvee: curlyvee, - curlywedge: curlywedge, - curre: curre, - curren: curren, - curvearrowleft: curvearrowleft, - curvearrowright: curvearrowright, - cuvee: cuvee, - cuwed: cuwed, - cwconint: cwconint, - cwint: cwint, - cylcty: cylcty, - dArr: dArr, - dHar: dHar, - dagger: dagger, - daleth: daleth, - darr: darr, - dash: dash, - dashv: dashv, - dbkarow: dbkarow, - dblac: dblac, - dcaron: dcaron, - dcy: dcy, - dd: dd, - ddagger: ddagger, - ddarr: ddarr, - ddotseq: ddotseq, - de: de, - deg: deg, - delta: delta, - demptyv: demptyv, - dfisht: dfisht, - dfr: dfr, - dharl: dharl, - dharr: dharr, - diam: diam, - diamond: diamond, - diamondsuit: diamondsuit, - diams: diams, - die: die, - digamma: digamma, - disin: disin, - div: div, - divid: divid, - divide: divide, - divideontimes: divideontimes, - divonx: divonx, - djcy: djcy, - dlcorn: dlcorn, - dlcrop: dlcrop, - dollar: dollar, - dopf: dopf, - dot: dot, - doteq: doteq, - doteqdot: doteqdot, - dotminus: dotminus, - dotplus: dotplus, - dotsquare: dotsquare, - doublebarwedge: doublebarwedge, - downarrow: downarrow, - downdownarrows: downdownarrows, - downharpoonleft: downharpoonleft, - downharpoonright: downharpoonright, - drbkarow: drbkarow, - drcorn: drcorn, - drcrop: drcrop, - dscr: dscr, - dscy: dscy, - dsol: dsol, - dstrok: dstrok, - dtdot: dtdot, - dtri: dtri, - dtrif: dtrif, - duarr: duarr, - duhar: duhar, - dwangle: dwangle, - dzcy: dzcy, - dzigrarr: dzigrarr, - eDDot: eDDot, - eDot: eDot, - eacut: eacut, - eacute: eacute, - easter: easter, - ecaron: ecaron, - ecir: ecir, - ecirc: ecirc, - ecolon: ecolon, - ecy: ecy, - edot: edot, - ee: ee, - efDot: efDot, - efr: efr, - eg: eg, - egrav: egrav, - egrave: egrave, - egs: egs, - egsdot: egsdot, - el: el, - elinters: elinters, - ell: ell, - els: els, - elsdot: elsdot, - emacr: emacr, - empty: empty, - emptyset: emptyset, - emptyv: emptyv, - emsp13: emsp13, - emsp14: emsp14, - emsp: emsp, - eng: eng, - ensp: ensp, - eogon: eogon, - eopf: eopf, - epar: epar, - eparsl: eparsl, - eplus: eplus, - epsi: epsi, - epsilon: epsilon, - epsiv: epsiv, - eqcirc: eqcirc, - eqcolon: eqcolon, - eqsim: eqsim, - eqslantgtr: eqslantgtr, - eqslantless: eqslantless, - equals: equals, - equest: equest, - equiv: equiv, - equivDD: equivDD, - eqvparsl: eqvparsl, - erDot: erDot, - erarr: erarr, - escr: escr, - esdot: esdot, - esim: esim, - eta: eta, - et: et, - eth: eth, - eum: eum, - euml: euml, - euro: euro, - excl: excl, - exist: exist, - expectation: expectation, - exponentiale: exponentiale, - fallingdotseq: fallingdotseq, - fcy: fcy, - female: female, - ffilig: ffilig, - fflig: fflig, - ffllig: ffllig, - ffr: ffr, - filig: filig, - fjlig: fjlig, - flat: flat, - fllig: fllig, - fltns: fltns, - fnof: fnof, - fopf: fopf, - forall: forall, - fork: fork, - forkv: forkv, - fpartint: fpartint, - frac1: frac1, - frac12: frac12, - frac13: frac13, - frac14: frac14, - frac15: frac15, - frac16: frac16, - frac18: frac18, - frac23: frac23, - frac25: frac25, - frac3: frac3, - frac34: frac34, - frac35: frac35, - frac38: frac38, - frac45: frac45, - frac56: frac56, - frac58: frac58, - frac78: frac78, - frasl: frasl, - frown: frown, - fscr: fscr, - gE: gE, - gEl: gEl, - gacute: gacute, - gamma: gamma, - gammad: gammad, - gap: gap, - gbreve: gbreve, - gcirc: gcirc, - gcy: gcy, - gdot: gdot, - ge: ge, - gel: gel, - geq: geq, - geqq: geqq, - geqslant: geqslant, - ges: ges, - gescc: gescc, - gesdot: gesdot, - gesdoto: gesdoto, - gesdotol: gesdotol, - gesl: gesl, - gesles: gesles, - gfr: gfr, - gg: gg, - ggg: ggg, - gimel: gimel, - gjcy: gjcy, - gl: gl, - glE: glE, - gla: gla, - glj: glj, - gnE: gnE, - gnap: gnap, - gnapprox: gnapprox, - gne: gne, - gneq: gneq, - gneqq: gneqq, - gnsim: gnsim, - gopf: gopf, - grave: grave, - gscr: gscr, - gsim: gsim, - gsime: gsime, - gsiml: gsiml, - g: g, - gt: gt, - gtcc: gtcc, - gtcir: gtcir, - gtdot: gtdot, - gtlPar: gtlPar, - gtquest: gtquest, - gtrapprox: gtrapprox, - gtrarr: gtrarr, - gtrdot: gtrdot, - gtreqless: gtreqless, - gtreqqless: gtreqqless, - gtrless: gtrless, - gtrsim: gtrsim, - gvertneqq: gvertneqq, - gvnE: gvnE, - hArr: hArr, - hairsp: hairsp, - half: half, - hamilt: hamilt, - hardcy: hardcy, - harr: harr, - harrcir: harrcir, - harrw: harrw, - hbar: hbar, - hcirc: hcirc, - hearts: hearts, - heartsuit: heartsuit, - hellip: hellip, - hercon: hercon, - hfr: hfr, - hksearow: hksearow, - hkswarow: hkswarow, - hoarr: hoarr, - homtht: homtht, - hookleftarrow: hookleftarrow, - hookrightarrow: hookrightarrow, - hopf: hopf, - horbar: horbar, - hscr: hscr, - hslash: hslash, - hstrok: hstrok, - hybull: hybull, - hyphen: hyphen, - iacut: iacut, - iacute: iacute, - ic: ic, - icir: icir, - icirc: icirc, - icy: icy, - iecy: iecy, - iexc: iexc, - iexcl: iexcl, - iff: iff, - ifr: ifr, - igrav: igrav, - igrave: igrave, - ii: ii, - iiiint: iiiint, - iiint: iiint, - iinfin: iinfin, - iiota: iiota, - ijlig: ijlig, - imacr: imacr, - image: image, - imagline: imagline, - imagpart: imagpart, - imath: imath, - imof: imof, - imped: imped, - "in": "∈", - incare: incare, - infin: infin, - infintie: infintie, - inodot: inodot, - int: int$1, - intcal: intcal, - integers: integers, - intercal: intercal, - intlarhk: intlarhk, - intprod: intprod, - iocy: iocy, - iogon: iogon, - iopf: iopf, - iota: iota, - iprod: iprod, - iques: iques, - iquest: iquest, - iscr: iscr, - isin: isin, - isinE: isinE, - isindot: isindot, - isins: isins, - isinsv: isinsv, - isinv: isinv, - it: it, - itilde: itilde, - iukcy: iukcy, - ium: ium, - iuml: iuml, - jcirc: jcirc, - jcy: jcy, - jfr: jfr, - jmath: jmath, - jopf: jopf, - jscr: jscr, - jsercy: jsercy, - jukcy: jukcy, - kappa: kappa, - kappav: kappav, - kcedil: kcedil, - kcy: kcy, - kfr: kfr, - kgreen: kgreen, - khcy: khcy, - kjcy: kjcy, - kopf: kopf, - kscr: kscr, - lAarr: lAarr, - lArr: lArr, - lAtail: lAtail, - lBarr: lBarr, - lE: lE, - lEg: lEg, - lHar: lHar, - lacute: lacute, - laemptyv: laemptyv, - lagran: lagran, - lambda: lambda, - lang: lang, - langd: langd, - langle: langle, - lap: lap, - laqu: laqu, - laquo: laquo, - larr: larr, - larrb: larrb, - larrbfs: larrbfs, - larrfs: larrfs, - larrhk: larrhk, - larrlp: larrlp, - larrpl: larrpl, - larrsim: larrsim, - larrtl: larrtl, - lat: lat, - latail: latail, - late: late, - lates: lates, - lbarr: lbarr, - lbbrk: lbbrk, - lbrace: lbrace, - lbrack: lbrack, - lbrke: lbrke, - lbrksld: lbrksld, - lbrkslu: lbrkslu, - lcaron: lcaron, - lcedil: lcedil, - lceil: lceil, - lcub: lcub, - lcy: lcy, - ldca: ldca, - ldquo: ldquo, - ldquor: ldquor, - ldrdhar: ldrdhar, - ldrushar: ldrushar, - ldsh: ldsh, - le: le, - leftarrow: leftarrow, - leftarrowtail: leftarrowtail, - leftharpoondown: leftharpoondown, - leftharpoonup: leftharpoonup, - leftleftarrows: leftleftarrows, - leftrightarrow: leftrightarrow, - leftrightarrows: leftrightarrows, - leftrightharpoons: leftrightharpoons, - leftrightsquigarrow: leftrightsquigarrow, - leftthreetimes: leftthreetimes, - leg: leg, - leq: leq, - leqq: leqq, - leqslant: leqslant, - les: les, - lescc: lescc, - lesdot: lesdot, - lesdoto: lesdoto, - lesdotor: lesdotor, - lesg: lesg, - lesges: lesges, - lessapprox: lessapprox, - lessdot: lessdot, - lesseqgtr: lesseqgtr, - lesseqqgtr: lesseqqgtr, - lessgtr: lessgtr, - lesssim: lesssim, - lfisht: lfisht, - lfloor: lfloor, - lfr: lfr, - lg: lg, - lgE: lgE, - lhard: lhard, - lharu: lharu, - lharul: lharul, - lhblk: lhblk, - ljcy: ljcy, - ll: ll, - llarr: llarr, - llcorner: llcorner, - llhard: llhard, - lltri: lltri, - lmidot: lmidot, - lmoust: lmoust, - lmoustache: lmoustache, - lnE: lnE, - lnap: lnap, - lnapprox: lnapprox, - lne: lne, - lneq: lneq, - lneqq: lneqq, - lnsim: lnsim, - loang: loang, - loarr: loarr, - lobrk: lobrk, - longleftarrow: longleftarrow, - longleftrightarrow: longleftrightarrow, - longmapsto: longmapsto, - longrightarrow: longrightarrow, - looparrowleft: looparrowleft, - looparrowright: looparrowright, - lopar: lopar, - lopf: lopf, - loplus: loplus, - lotimes: lotimes, - lowast: lowast, - lowbar: lowbar, - loz: loz, - lozenge: lozenge, - lozf: lozf, - lpar: lpar, - lparlt: lparlt, - lrarr: lrarr, - lrcorner: lrcorner, - lrhar: lrhar, - lrhard: lrhard, - lrm: lrm, - lrtri: lrtri, - lsaquo: lsaquo, - lscr: lscr, - lsh: lsh, - lsim: lsim, - lsime: lsime, - lsimg: lsimg, - lsqb: lsqb, - lsquo: lsquo, - lsquor: lsquor, - lstrok: lstrok, - l: l, - lt: lt, - ltcc: ltcc, - ltcir: ltcir, - ltdot: ltdot, - lthree: lthree, - ltimes: ltimes, - ltlarr: ltlarr, - ltquest: ltquest, - ltrPar: ltrPar, - ltri: ltri, - ltrie: ltrie, - ltrif: ltrif, - lurdshar: lurdshar, - luruhar: luruhar, - lvertneqq: lvertneqq, - lvnE: lvnE, - mDDot: mDDot, - mac: mac, - macr: macr, - male: male, - malt: malt, - maltese: maltese, - map: map$2, - mapsto: mapsto, - mapstodown: mapstodown, - mapstoleft: mapstoleft, - mapstoup: mapstoup, - marker: marker, - mcomma: mcomma, - mcy: mcy, - mdash: mdash, - measuredangle: measuredangle, - mfr: mfr, - mho: mho, - micr: micr, - micro: micro, - mid: mid, - midast: midast, - midcir: midcir, - middo: middo, - middot: middot, - minus: minus, - minusb: minusb, - minusd: minusd, - minusdu: minusdu, - mlcp: mlcp, - mldr: mldr, - mnplus: mnplus, - models: models$2, - mopf: mopf, - mp: mp, - mscr: mscr, - mstpos: mstpos, - mu: mu, - multimap: multimap, - mumap: mumap, - nGg: nGg, - nGt: nGt, - nGtv: nGtv, - nLeftarrow: nLeftarrow, - nLeftrightarrow: nLeftrightarrow, - nLl: nLl, - nLt: nLt, - nLtv: nLtv, - nRightarrow: nRightarrow, - nVDash: nVDash, - nVdash: nVdash, - nabla: nabla, - nacute: nacute, - nang: nang, - nap: nap, - napE: napE, - napid: napid, - napos: napos, - napprox: napprox, - natur: natur, - natural: natural, - naturals: naturals, - nbs: nbs, - nbsp: nbsp, - nbump: nbump, - nbumpe: nbumpe, - ncap: ncap, - ncaron: ncaron, - ncedil: ncedil, - ncong: ncong, - ncongdot: ncongdot, - ncup: ncup, - ncy: ncy, - ndash: ndash, - ne: ne, - neArr: neArr, - nearhk: nearhk, - nearr: nearr, - nearrow: nearrow, - nedot: nedot, - nequiv: nequiv, - nesear: nesear, - nesim: nesim, - nexist: nexist, - nexists: nexists, - nfr: nfr, - ngE: ngE, - nge: nge, - ngeq: ngeq, - ngeqq: ngeqq, - ngeqslant: ngeqslant, - nges: nges, - ngsim: ngsim, - ngt: ngt, - ngtr: ngtr, - nhArr: nhArr, - nharr: nharr, - nhpar: nhpar, - ni: ni, - nis: nis, - nisd: nisd, - niv: niv, - njcy: njcy, - nlArr: nlArr, - nlE: nlE, - nlarr: nlarr, - nldr: nldr, - nle: nle, - nleftarrow: nleftarrow, - nleftrightarrow: nleftrightarrow, - nleq: nleq, - nleqq: nleqq, - nleqslant: nleqslant, - nles: nles, - nless: nless, - nlsim: nlsim, - nlt: nlt, - nltri: nltri, - nltrie: nltrie, - nmid: nmid, - nopf: nopf, - no: no, - not: not, - notin: notin, - notinE: notinE, - notindot: notindot, - notinva: notinva, - notinvb: notinvb, - notinvc: notinvc, - notni: notni, - notniva: notniva, - notnivb: notnivb, - notnivc: notnivc, - npar: npar, - nparallel: nparallel, - nparsl: nparsl, - npart: npart, - npolint: npolint, - npr: npr, - nprcue: nprcue, - npre: npre, - nprec: nprec, - npreceq: npreceq, - nrArr: nrArr, - nrarr: nrarr, - nrarrc: nrarrc, - nrarrw: nrarrw, - nrightarrow: nrightarrow, - nrtri: nrtri, - nrtrie: nrtrie, - nsc: nsc, - nsccue: nsccue, - nsce: nsce, - nscr: nscr, - nshortmid: nshortmid, - nshortparallel: nshortparallel, - nsim: nsim, - nsime: nsime, - nsimeq: nsimeq, - nsmid: nsmid, - nspar: nspar, - nsqsube: nsqsube, - nsqsupe: nsqsupe, - nsub: nsub, - nsubE: nsubE, - nsube: nsube, - nsubset: nsubset, - nsubseteq: nsubseteq, - nsubseteqq: nsubseteqq, - nsucc: nsucc, - nsucceq: nsucceq, - nsup: nsup, - nsupE: nsupE, - nsupe: nsupe, - nsupset: nsupset, - nsupseteq: nsupseteq, - nsupseteqq: nsupseteqq, - ntgl: ntgl, - ntild: ntild, - ntilde: ntilde, - ntlg: ntlg, - ntriangleleft: ntriangleleft, - ntrianglelefteq: ntrianglelefteq, - ntriangleright: ntriangleright, - ntrianglerighteq: ntrianglerighteq, - nu: nu, - num: num, - numero: numero, - numsp: numsp, - nvDash: nvDash, - nvHarr: nvHarr, - nvap: nvap, - nvdash: nvdash, - nvge: nvge, - nvgt: nvgt, - nvinfin: nvinfin, - nvlArr: nvlArr, - nvle: nvle, - nvlt: nvlt, - nvltrie: nvltrie, - nvrArr: nvrArr, - nvrtrie: nvrtrie, - nvsim: nvsim, - nwArr: nwArr, - nwarhk: nwarhk, - nwarr: nwarr, - nwarrow: nwarrow, - nwnear: nwnear, - oS: oS, - oacut: oacut, - oacute: oacute, - oast: oast, - ocir: ocir, - ocirc: ocirc, - ocy: ocy, - odash: odash, - odblac: odblac, - odiv: odiv, - odot: odot, - odsold: odsold, - oelig: oelig, - ofcir: ofcir, - ofr: ofr, - ogon: ogon, - ograv: ograv, - ograve: ograve, - ogt: ogt, - ohbar: ohbar, - ohm: ohm, - oint: oint, - olarr: olarr, - olcir: olcir, - olcross: olcross, - oline: oline, - olt: olt, - omacr: omacr, - omega: omega, - omicron: omicron, - omid: omid, - ominus: ominus, - oopf: oopf, - opar: opar, - operp: operp, - oplus: oplus, - or: or, - orarr: orarr, - ord: ord, - order: order$1, - orderof: orderof, - ordf: ordf, - ordm: ordm, - origof: origof, - oror: oror, - orslope: orslope, - orv: orv, - oscr: oscr, - oslas: oslas, - oslash: oslash, - osol: osol, - otild: otild, - otilde: otilde, - otimes: otimes, - otimesas: otimesas, - oum: oum, - ouml: ouml, - ovbar: ovbar, - par: par, - para: para, - parallel: parallel, - parsim: parsim, - parsl: parsl, - part: part, - pcy: pcy, - percnt: percnt, - period: period, - permil: permil, - perp: perp, - pertenk: pertenk, - pfr: pfr, - phi: phi, - phiv: phiv, - phmmat: phmmat, - phone: phone, - pi: pi, - pitchfork: pitchfork, - piv: piv, - planck: planck, - planckh: planckh, - plankv: plankv, - plus: plus, - plusacir: plusacir, - plusb: plusb, - pluscir: pluscir, - plusdo: plusdo, - plusdu: plusdu, - pluse: pluse, - plusm: plusm, - plusmn: plusmn, - plussim: plussim, - plustwo: plustwo, - pm: pm, - pointint: pointint, - popf: popf, - poun: poun, - pound: pound, - pr: pr, - prE: prE, - prap: prap, - prcue: prcue, - pre: pre, - prec: prec, - precapprox: precapprox, - preccurlyeq: preccurlyeq, - preceq: preceq, - precnapprox: precnapprox, - precneqq: precneqq, - precnsim: precnsim, - precsim: precsim, - prime: prime, - primes: primes, - prnE: prnE, - prnap: prnap, - prnsim: prnsim, - prod: prod, - profalar: profalar, - profline: profline, - profsurf: profsurf, - prop: prop, - propto: propto, - prsim: prsim, - prurel: prurel, - pscr: pscr, - psi: psi, - puncsp: puncsp, - qfr: qfr, - qint: qint, - qopf: qopf, - qprime: qprime, - qscr: qscr, - quaternions: quaternions, - quatint: quatint, - quest: quest, - questeq: questeq, - quo: quo, - quot: quot, - rAarr: rAarr, - rArr: rArr, - rAtail: rAtail, - rBarr: rBarr, - rHar: rHar, - race: race, - racute: racute, - radic: radic, - raemptyv: raemptyv, - rang: rang, - rangd: rangd, - range: range$1, - rangle: rangle, - raqu: raqu, - raquo: raquo, - rarr: rarr, - rarrap: rarrap, - rarrb: rarrb, - rarrbfs: rarrbfs, - rarrc: rarrc, - rarrfs: rarrfs, - rarrhk: rarrhk, - rarrlp: rarrlp, - rarrpl: rarrpl, - rarrsim: rarrsim, - rarrtl: rarrtl, - rarrw: rarrw, - ratail: ratail, - ratio: ratio, - rationals: rationals, - rbarr: rbarr, - rbbrk: rbbrk, - rbrace: rbrace, - rbrack: rbrack, - rbrke: rbrke, - rbrksld: rbrksld, - rbrkslu: rbrkslu, - rcaron: rcaron, - rcedil: rcedil, - rceil: rceil, - rcub: rcub, - rcy: rcy, - rdca: rdca, - rdldhar: rdldhar, - rdquo: rdquo, - rdquor: rdquor, - rdsh: rdsh, - real: real, - realine: realine, - realpart: realpart, - reals: reals, - rect: rect, - re: re, - reg: reg, - rfisht: rfisht, - rfloor: rfloor, - rfr: rfr, - rhard: rhard, - rharu: rharu, - rharul: rharul, - rho: rho, - rhov: rhov, - rightarrow: rightarrow, - rightarrowtail: rightarrowtail, - rightharpoondown: rightharpoondown, - rightharpoonup: rightharpoonup, - rightleftarrows: rightleftarrows, - rightleftharpoons: rightleftharpoons, - rightrightarrows: rightrightarrows, - rightsquigarrow: rightsquigarrow, - rightthreetimes: rightthreetimes, - ring: ring, - risingdotseq: risingdotseq, - rlarr: rlarr, - rlhar: rlhar, - rlm: rlm, - rmoust: rmoust, - rmoustache: rmoustache, - rnmid: rnmid, - roang: roang, - roarr: roarr, - robrk: robrk, - ropar: ropar, - ropf: ropf, - roplus: roplus, - rotimes: rotimes, - rpar: rpar, - rpargt: rpargt, - rppolint: rppolint, - rrarr: rrarr, - rsaquo: rsaquo, - rscr: rscr, - rsh: rsh, - rsqb: rsqb, - rsquo: rsquo, - rsquor: rsquor, - rthree: rthree, - rtimes: rtimes, - rtri: rtri, - rtrie: rtrie, - rtrif: rtrif, - rtriltri: rtriltri, - ruluhar: ruluhar, - rx: rx, - sacute: sacute, - sbquo: sbquo, - sc: sc, - scE: scE, - scap: scap, - scaron: scaron, - sccue: sccue, - sce: sce, - scedil: scedil, - scirc: scirc, - scnE: scnE, - scnap: scnap, - scnsim: scnsim, - scpolint: scpolint, - scsim: scsim, - scy: scy, - sdot: sdot, - sdotb: sdotb, - sdote: sdote, - seArr: seArr, - searhk: searhk, - searr: searr, - searrow: searrow, - sec: sec, - sect: sect, - semi: semi, - seswar: seswar, - setminus: setminus, - setmn: setmn, - sext: sext, - sfr: sfr, - sfrown: sfrown, - sharp: sharp, - shchcy: shchcy, - shcy: shcy, - shortmid: shortmid, - shortparallel: shortparallel, - sh: sh, - shy: shy, - sigma: sigma, - sigmaf: sigmaf, - sigmav: sigmav, - sim: sim, - simdot: simdot, - sime: sime, - simeq: simeq, - simg: simg, - simgE: simgE, - siml: siml, - simlE: simlE, - simne: simne, - simplus: simplus, - simrarr: simrarr, - slarr: slarr, - smallsetminus: smallsetminus, - smashp: smashp, - smeparsl: smeparsl, - smid: smid, - smile: smile, - smt: smt, - smte: smte, - smtes: smtes, - softcy: softcy, - sol: sol, - solb: solb, - solbar: solbar, - sopf: sopf, - spades: spades, - spadesuit: spadesuit, - spar: spar, - sqcap: sqcap, - sqcaps: sqcaps, - sqcup: sqcup, - sqcups: sqcups, - sqsub: sqsub, - sqsube: sqsube, - sqsubset: sqsubset, - sqsubseteq: sqsubseteq, - sqsup: sqsup, - sqsupe: sqsupe, - sqsupset: sqsupset, - sqsupseteq: sqsupseteq, - squ: squ, - square: square, - squarf: squarf, - squf: squf, - srarr: srarr, - sscr: sscr, - ssetmn: ssetmn, - ssmile: ssmile, - sstarf: sstarf, - star: star$1, - starf: starf, - straightepsilon: straightepsilon, - straightphi: straightphi, - strns: strns, - sub: sub, - subE: subE, - subdot: subdot, - sube: sube, - subedot: subedot, - submult: submult, - subnE: subnE, - subne: subne, - subplus: subplus, - subrarr: subrarr, - subset: subset, - subseteq: subseteq, - subseteqq: subseteqq, - subsetneq: subsetneq, - subsetneqq: subsetneqq, - subsim: subsim, - subsub: subsub, - subsup: subsup, - succ: succ, - succapprox: succapprox, - succcurlyeq: succcurlyeq, - succeq: succeq, - succnapprox: succnapprox, - succneqq: succneqq, - succnsim: succnsim, - succsim: succsim, - sum: sum, - sung: sung, - sup: sup, - sup1: sup1, - sup2: sup2, - sup3: sup3, - supE: supE, - supdot: supdot, - supdsub: supdsub, - supe: supe, - supedot: supedot, - suphsol: suphsol, - suphsub: suphsub, - suplarr: suplarr, - supmult: supmult, - supnE: supnE, - supne: supne, - supplus: supplus, - supset: supset, - supseteq: supseteq, - supseteqq: supseteqq, - supsetneq: supsetneq, - supsetneqq: supsetneqq, - supsim: supsim, - supsub: supsub, - supsup: supsup, - swArr: swArr, - swarhk: swarhk, - swarr: swarr, - swarrow: swarrow, - swnwar: swnwar, - szli: szli, - szlig: szlig, - target: target, - tau: tau, - tbrk: tbrk, - tcaron: tcaron, - tcedil: tcedil, - tcy: tcy, - tdot: tdot, - telrec: telrec, - tfr: tfr, - there4: there4, - therefore: therefore, - theta: theta, - thetasym: thetasym, - thetav: thetav, - thickapprox: thickapprox, - thicksim: thicksim, - thinsp: thinsp, - thkap: thkap, - thksim: thksim, - thor: thor, - thorn: thorn, - tilde: tilde, - time: time, - times: times, - timesb: timesb, - timesbar: timesbar, - timesd: timesd, - tint: tint, - toea: toea, - top: top, - topbot: topbot, - topcir: topcir, - topf: topf, - topfork: topfork, - tosa: tosa, - tprime: tprime, - trade: trade, - triangle: triangle, - triangledown: triangledown, - triangleleft: triangleleft, - trianglelefteq: trianglelefteq, - triangleq: triangleq, - triangleright: triangleright, - trianglerighteq: trianglerighteq, - tridot: tridot, - trie: trie, - triminus: triminus, - triplus: triplus, - trisb: trisb, - tritime: tritime, - trpezium: trpezium, - tscr: tscr, - tscy: tscy, - tshcy: tshcy, - tstrok: tstrok, - twixt: twixt, - twoheadleftarrow: twoheadleftarrow, - twoheadrightarrow: twoheadrightarrow, - uArr: uArr, - uHar: uHar, - uacut: uacut, - uacute: uacute, - uarr: uarr, - ubrcy: ubrcy, - ubreve: ubreve, - ucir: ucir, - ucirc: ucirc, - ucy: ucy, - udarr: udarr, - udblac: udblac, - udhar: udhar, - ufisht: ufisht, - ufr: ufr, - ugrav: ugrav, - ugrave: ugrave, - uharl: uharl, - uharr: uharr, - uhblk: uhblk, - ulcorn: ulcorn, - ulcorner: ulcorner, - ulcrop: ulcrop, - ultri: ultri, - umacr: umacr, - um: um, - uml: uml, - uogon: uogon, - uopf: uopf, - uparrow: uparrow, - updownarrow: updownarrow, - upharpoonleft: upharpoonleft, - upharpoonright: upharpoonright, - uplus: uplus, - upsi: upsi, - upsih: upsih, - upsilon: upsilon, - upuparrows: upuparrows, - urcorn: urcorn, - urcorner: urcorner, - urcrop: urcrop, - uring: uring, - urtri: urtri, - uscr: uscr, - utdot: utdot, - utilde: utilde, - utri: utri, - utrif: utrif, - uuarr: uuarr, - uum: uum, - uuml: uuml, - uwangle: uwangle, - vArr: vArr, - vBar: vBar, - vBarv: vBarv, - vDash: vDash, - vangrt: vangrt, - varepsilon: varepsilon, - varkappa: varkappa, - varnothing: varnothing, - varphi: varphi, - varpi: varpi, - varpropto: varpropto, - varr: varr, - varrho: varrho, - varsigma: varsigma, - varsubsetneq: varsubsetneq, - varsubsetneqq: varsubsetneqq, - varsupsetneq: varsupsetneq, - varsupsetneqq: varsupsetneqq, - vartheta: vartheta, - vartriangleleft: vartriangleleft, - vartriangleright: vartriangleright, - vcy: vcy, - vdash: vdash, - vee: vee, - veebar: veebar, - veeeq: veeeq, - vellip: vellip, - verbar: verbar, - vert: vert, - vfr: vfr, - vltri: vltri, - vnsub: vnsub, - vnsup: vnsup, - vopf: vopf, - vprop: vprop, - vrtri: vrtri, - vscr: vscr, - vsubnE: vsubnE, - vsubne: vsubne, - vsupnE: vsupnE, - vsupne: vsupne, - vzigzag: vzigzag, - wcirc: wcirc, - wedbar: wedbar, - wedge: wedge, - wedgeq: wedgeq, - weierp: weierp, - wfr: wfr, - wopf: wopf, - wp: wp, - wr: wr, - wreath: wreath, - wscr: wscr, - xcap: xcap, - xcirc: xcirc, - xcup: xcup, - xdtri: xdtri, - xfr: xfr, - xhArr: xhArr, - xharr: xharr, - xi: xi, - xlArr: xlArr, - xlarr: xlarr, - xmap: xmap, - xnis: xnis, - xodot: xodot, - xopf: xopf, - xoplus: xoplus, - xotime: xotime, - xrArr: xrArr, - xrarr: xrarr, - xscr: xscr, - xsqcup: xsqcup, - xuplus: xuplus, - xutri: xutri, - xvee: xvee, - xwedge: xwedge, - yacut: yacut, - yacute: yacute, - yacy: yacy, - ycirc: ycirc, - ycy: ycy, - ye: ye, - yen: yen, - yfr: yfr, - yicy: yicy, - yopf: yopf, - yscr: yscr, - yucy: yucy, - yum: yum, - yuml: yuml, - zacute: zacute, - zcaron: zcaron, - zcy: zcy, - zdot: zdot, - zeetrf: zeetrf, - zeta: zeta, - zfr: zfr, - zhcy: zhcy, - zigrarr: zigrarr, - zopf: zopf, - zscr: zscr, - zwj: zwj, - zwnj: zwnj -}; - -var decodeEntity_1 = decodeEntity; - -var own$4 = {}.hasOwnProperty; + // Data management. + // @ts-expect-error: overloads are handled. + processor.data = data; + processor.Parser = undefined; + processor.Compiler = undefined; -function decodeEntity(characters) { - return own$4.call(characterEntities, characters) - ? characterEntities[characters] - : false -} + // Lock. + processor.freeze = freeze; -var asciiDigit = regexCheck_1(/\d/); + // Plugins. + processor.attachers = attachers; + // @ts-expect-error: overloads are handled. + processor.use = use; -var asciiDigit_1 = asciiDigit; + // API. + processor.parse = parse; + processor.stringify = stringify; + // @ts-expect-error: overloads are handled. + processor.run = run; + processor.runSync = runSync; + // @ts-expect-error: overloads are handled. + processor.process = process; + processor.processSync = processSync; -var asciiHexDigit = regexCheck_1(/[\dA-Fa-f]/); + // Expose. + return processor -var asciiHexDigit_1 = asciiHexDigit; + // Create a new processor based on the processor in the current scope. + /** @type {Processor} */ + function processor() { + const destination = base(); + let index = -1; -function _interopDefaultLegacy$1(e) { - return e && typeof e === 'object' && 'default' in e ? e : {default: e} -} + while (++index < attachers.length) { + destination.use(...attachers[index]); + } -var decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy$1(decodeEntity_1); + destination.data(extend(true, {}, namespace)); -var characterReference = { - name: 'characterReference', - tokenize: tokenizeCharacterReference -}; + return destination + } -function tokenizeCharacterReference(effects, ok, nok) { - var self = this; - var size = 0; - var max; - var test; - return start + /** + * @param {string|Record} [key] + * @param {unknown} [value] + * @returns {unknown} + */ + function data(key, value) { + if (typeof key === 'string') { + // Set `key`. + if (arguments.length === 2) { + assertUnfrozen('data', frozen); + namespace[key] = value; + return processor + } - function start(code) { - effects.enter('characterReference'); - effects.enter('characterReferenceMarker'); - effects.consume(code); - effects.exit('characterReferenceMarker'); - return open - } + // Get `key`. + return (own$6.call(namespace, key) && namespace[key]) || null + } - function open(code) { - if (code === 35) { - effects.enter('characterReferenceMarkerNumeric'); - effects.consume(code); - effects.exit('characterReferenceMarkerNumeric'); - return numeric + // Set space. + if (key) { + assertUnfrozen('data', frozen); + namespace = key; + return processor } - effects.enter('characterReferenceValue'); - max = 31; - test = asciiAlphanumeric_1; - return value(code) + // Get space. + return namespace } - function numeric(code) { - if (code === 88 || code === 120) { - effects.enter('characterReferenceMarkerHexadecimal'); - effects.consume(code); - effects.exit('characterReferenceMarkerHexadecimal'); - effects.enter('characterReferenceValue'); - max = 6; - test = asciiHexDigit_1; - return value + /** @type {Processor['freeze']} */ + function freeze() { + if (frozen) { + return processor } - effects.enter('characterReferenceValue'); - max = 7; - test = asciiDigit_1; - return value(code) - } - - function value(code) { - var token; + while (++freezeIndex < attachers.length) { + const [attacher, ...options] = attachers[freezeIndex]; - if (code === 59 && size) { - token = effects.exit('characterReferenceValue'); + if (options[0] === false) { + continue + } - if ( - test === asciiAlphanumeric_1 && - !decodeEntity__default['default'](self.sliceSerialize(token)) - ) { - return nok(code) + if (options[0] === true) { + options[1] = undefined; } - effects.enter('characterReferenceMarker'); - effects.consume(code); - effects.exit('characterReferenceMarker'); - effects.exit('characterReference'); - return ok - } + /** @type {Transformer|void} */ + const transformer = attacher.call(processor, ...options); - if (test(code) && size++ < max) { - effects.consume(code); - return value + if (typeof transformer === 'function') { + transformers.use(transformer); + } } - return nok(code) - } -} + frozen = true; + freezeIndex = Number.POSITIVE_INFINITY; -var characterReference_1 = characterReference; + return processor + } -var codeFenced = { - name: 'codeFenced', - tokenize: tokenizeCodeFenced, - concrete: true -}; + /** + * @param {Pluggable|null|undefined} [value] + * @param {...unknown} options + * @returns {Processor} + */ + function use(value, ...options) { + /** @type {Record|undefined} */ + let settings; -function tokenizeCodeFenced(effects, ok, nok) { - var self = this; - var closingFenceConstruct = { - tokenize: tokenizeClosingFence, - partial: true - }; - var initialPrefix = prefixSize_1(this.events, 'linePrefix'); - var sizeOpen = 0; - var marker; - return start + assertUnfrozen('use', frozen); - function start(code) { - effects.enter('codeFenced'); - effects.enter('codeFencedFence'); - effects.enter('codeFencedFenceSequence'); - marker = code; - return sequenceOpen(code) - } + if (value === null || value === undefined) ; else if (typeof value === 'function') { + addPlugin(value, ...options); + } else if (typeof value === 'object') { + if (Array.isArray(value)) { + addList(value); + } else { + addPreset(value); + } + } else { + throw new TypeError('Expected usable value, not `' + value + '`') + } - function sequenceOpen(code) { - if (code === marker) { - effects.consume(code); - sizeOpen++; - return sequenceOpen + if (settings) { + namespace.settings = Object.assign(namespace.settings || {}, settings); } - effects.exit('codeFencedFenceSequence'); - return sizeOpen < 3 - ? nok(code) - : factorySpace(effects, infoOpen, 'whitespace')(code) - } + return processor - function infoOpen(code) { - if (code === null || markdownLineEnding_1(code)) { - return openAfter(code) + /** + * @param {import('..').Pluggable} value + * @returns {void} + */ + function add(value) { + if (typeof value === 'function') { + addPlugin(value); + } else if (typeof value === 'object') { + if (Array.isArray(value)) { + const [plugin, ...options] = value; + addPlugin(plugin, ...options); + } else { + addPreset(value); + } + } else { + throw new TypeError('Expected usable value, not `' + value + '`') + } } - effects.enter('codeFencedFenceInfo'); - effects.enter('chunkString', { - contentType: 'string' - }); - return info(code) - } + /** + * @param {Preset} result + * @returns {void} + */ + function addPreset(result) { + addList(result.plugins); - function info(code) { - if (code === null || markdownLineEndingOrSpace_1(code)) { - effects.exit('chunkString'); - effects.exit('codeFencedFenceInfo'); - return factorySpace(effects, infoAfter, 'whitespace')(code) + if (result.settings) { + settings = Object.assign(settings || {}, result.settings); + } } - if (code === 96 && code === marker) return nok(code) - effects.consume(code); - return info - } + /** + * @param {PluggableList|null|undefined} [plugins] + * @returns {void} + */ + function addList(plugins) { + let index = -1; - function infoAfter(code) { - if (code === null || markdownLineEnding_1(code)) { - return openAfter(code) + if (plugins === null || plugins === undefined) ; else if (Array.isArray(plugins)) { + while (++index < plugins.length) { + const thing = plugins[index]; + add(thing); + } + } else { + throw new TypeError('Expected a list of plugins, not `' + plugins + '`') + } } - effects.enter('codeFencedFenceMeta'); - effects.enter('chunkString', { - contentType: 'string' - }); - return meta(code) - } + /** + * @param {Plugin} plugin + * @param {...unknown} [value] + * @returns {void} + */ + function addPlugin(plugin, value) { + let index = -1; + /** @type {Processor['attachers'][number]|undefined} */ + let entry; - function meta(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('chunkString'); - effects.exit('codeFencedFenceMeta'); - return openAfter(code) - } + while (++index < attachers.length) { + if (attachers[index][0] === plugin) { + entry = attachers[index]; + break + } + } - if (code === 96 && code === marker) return nok(code) - effects.consume(code); - return meta - } + if (entry) { + if (isPlainObject$1(entry[1]) && isPlainObject$1(value)) { + value = extend(true, entry[1], value); + } - function openAfter(code) { - effects.exit('codeFencedFence'); - return self.interrupt ? ok(code) : content(code) + entry[1] = value; + } else { + // @ts-expect-error: fine. + attachers.push([...arguments]); + } + } } - function content(code) { - if (code === null) { - return after(code) - } + /** @type {Processor['parse']} */ + function parse(doc) { + processor.freeze(); + const file = vfile(doc); + const Parser = processor.Parser; + assertParser('parse', Parser); - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return effects.attempt( - closingFenceConstruct, - after, - initialPrefix - ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1) - : content - ) + if (newable(Parser, 'parse')) { + // @ts-expect-error: `newable` checks this. + return new Parser(String(file), file).parse() } - effects.enter('codeFlowValue'); - return contentContinue(code) + // @ts-expect-error: `newable` checks this. + return Parser(String(file), file) // eslint-disable-line new-cap } - function contentContinue(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('codeFlowValue'); - return content(code) - } + /** @type {Processor['stringify']} */ + function stringify(node, doc) { + processor.freeze(); + const file = vfile(doc); + const Compiler = processor.Compiler; + assertCompiler('stringify', Compiler); + assertNode(node); - effects.consume(code); - return contentContinue - } + if (newable(Compiler, 'compile')) { + // @ts-expect-error: `newable` checks this. + return new Compiler(node, file).compile() + } - function after(code) { - effects.exit('codeFenced'); - return ok(code) + // @ts-expect-error: `newable` checks this. + return Compiler(node, file) // eslint-disable-line new-cap } - function tokenizeClosingFence(effects, ok, nok) { - var size = 0; - return factorySpace( - effects, - closingSequenceStart, - 'linePrefix', - this.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - ) + /** + * @param {Node} node + * @param {VFileCompatible|RunCallback} [doc] + * @param {RunCallback} [callback] + * @returns {Promise|void} + */ + function run(node, doc, callback) { + assertNode(node); + processor.freeze(); - function closingSequenceStart(code) { - effects.enter('codeFencedFence'); - effects.enter('codeFencedFenceSequence'); - return closingSequence(code) + if (!callback && typeof doc === 'function') { + callback = doc; + doc = undefined; } - function closingSequence(code) { - if (code === marker) { - effects.consume(code); - size++; - return closingSequence - } - - if (size < sizeOpen) return nok(code) - effects.exit('codeFencedFenceSequence'); - return factorySpace(effects, closingSequenceEnd, 'whitespace')(code) + if (!callback) { + return new Promise(executor) } - function closingSequenceEnd(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('codeFencedFence'); - return ok(code) - } + executor(null, callback); - return nok(code) + /** + * @param {null|((node: Node) => void)} resolve + * @param {(error: Error) => void} reject + * @returns {void} + */ + function executor(resolve, reject) { + // @ts-expect-error: `doc` can’t be a callback anymore, we checked. + transformers.run(node, vfile(doc), done); + + /** + * @param {Error|null} error + * @param {Node} tree + * @param {VFile} file + * @returns {void} + */ + function done(error, tree, file) { + tree = tree || node; + if (error) { + reject(error); + } else if (resolve) { + resolve(tree); + } else { + // @ts-expect-error: `callback` is defined if `resolve` is not. + callback(null, tree, file); + } + } } } -} -var codeFenced_1 = codeFenced; - -var codeIndented = { - name: 'codeIndented', - tokenize: tokenizeCodeIndented, - resolve: resolveCodeIndented -}; -var indentedContentConstruct = { - tokenize: tokenizeIndentedContent, - partial: true -}; - -function resolveCodeIndented(events, context) { - var code = { - type: 'codeIndented', - start: events[0][1].start, - end: events[events.length - 1][1].end - }; - chunkedSplice_1(events, 0, 0, [['enter', code, context]]); - chunkedSplice_1(events, events.length, 0, [['exit', code, context]]); - return events -} - -function tokenizeCodeIndented(effects, ok, nok) { - return effects.attempt(indentedContentConstruct, afterPrefix, nok) + /** @type {Processor['runSync']} */ + function runSync(node, file) { + /** @type {Node|undefined} */ + let result; + /** @type {boolean|undefined} */ + let complete; - function afterPrefix(code) { - if (code === null) { - return ok(code) - } + processor.run(node, file, done); - if (markdownLineEnding_1(code)) { - return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code) - } + assertDone('runSync', 'run', complete); - effects.enter('codeFlowValue'); - return content(code) - } + // @ts-expect-error: we either bailed on an error or have a tree. + return result - function content(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('codeFlowValue'); - return afterPrefix(code) + /** + * @param {Error|null} [error] + * @param {Node} [tree] + * @returns {void} + */ + function done(error, tree) { + bail(error); + result = tree; + complete = true; } - - effects.consume(code); - return content } -} -function tokenizeIndentedContent(effects, ok, nok) { - var self = this; - return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1) + /** + * @param {VFileCompatible} doc + * @param {ProcessCallback} [callback] + * @returns {Promise|undefined} + */ + function process(doc, callback) { + processor.freeze(); + assertParser('process', processor.Parser); + assertCompiler('process', processor.Compiler); - function afterPrefix(code) { - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1) + if (!callback) { + return new Promise(executor) } - return prefixSize_1(self.events, 'linePrefix') < 4 ? nok(code) : ok(code) - } -} + executor(null, callback); -var codeIndented_1 = codeIndented; + /** + * @param {null|((file: VFile) => void)} resolve + * @param {(error?: Error|null|undefined) => void} reject + * @returns {void} + */ + function executor(resolve, reject) { + const file = vfile(doc); -var codeText = { - name: 'codeText', - tokenize: tokenizeCodeText, - resolve: resolveCodeText, - previous: previous -}; + processor.run(processor.parse(file), file, (error, tree, file) => { + if (error || !tree || !file) { + done(error); + } else { + /** @type {unknown} */ + const result = processor.stringify(tree, file); -function resolveCodeText(events) { - var tailExitIndex = events.length - 4; - var headEnterIndex = 3; - var index; - var enter; // If we start and end with an EOL or a space. + if (result === undefined || result === null) ; else if (looksLikeAVFileValue(result)) { + file.value = result; + } else { + file.result = result; + } - if ( - (events[headEnterIndex][1].type === 'lineEnding' || - events[headEnterIndex][1].type === 'space') && - (events[tailExitIndex][1].type === 'lineEnding' || - events[tailExitIndex][1].type === 'space') - ) { - index = headEnterIndex; // And we have data. + done(error, file); + } + }); - while (++index < tailExitIndex) { - if (events[index][1].type === 'codeTextData') { - // Then we have padding. - events[tailExitIndex][1].type = events[headEnterIndex][1].type = - 'codeTextPadding'; - headEnterIndex += 2; - tailExitIndex -= 2; - break + /** + * @param {Error|null|undefined} [error] + * @param {VFile|undefined} [file] + * @returns {void} + */ + function done(error, file) { + if (error || !file) { + reject(error); + } else if (resolve) { + resolve(file); + } else { + // @ts-expect-error: `callback` is defined if `resolve` is not. + callback(null, file); + } } } - } // Merge adjacent spaces and data. + } - index = headEnterIndex - 1; - tailExitIndex++; + /** @type {Processor['processSync']} */ + function processSync(doc) { + /** @type {boolean|undefined} */ + let complete; - while (++index <= tailExitIndex) { - if (enter === undefined) { - if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') { - enter = index; - } - } else if ( - index === tailExitIndex || - events[index][1].type === 'lineEnding' - ) { - events[enter][1].type = 'codeTextData'; + processor.freeze(); + assertParser('processSync', processor.Parser); + assertCompiler('processSync', processor.Compiler); - if (index !== enter + 2) { - events[enter][1].end = events[index - 1][1].end; - events.splice(enter + 2, index - enter - 2); - tailExitIndex -= index - enter - 2; - index = enter + 2; - } + const file = vfile(doc); - enter = undefined; + processor.process(file, done); + + assertDone('processSync', 'process', complete); + + return file + + /** + * @param {Error|null|undefined} [error] + * @returns {void} + */ + function done(error) { + complete = true; + bail(error); } } - - return events } -function previous(code) { - // If there is a previous code, there will always be a tail. +/** + * Check if `value` is a constructor. + * + * @param {unknown} value + * @param {string} name + * @returns {boolean} + */ +function newable(value, name) { return ( - code !== 96 || - this.events[this.events.length - 1][1].type === 'characterEscape' + typeof value === 'function' && + // Prototypes do exist. + // type-coverage:ignore-next-line + value.prototype && + // A function with keys in its prototype is probably a constructor. + // Classes’ prototype methods are not enumerable, so we check if some value + // exists in the prototype. + // type-coverage:ignore-next-line + (keys(value.prototype) || name in value.prototype) ) } -function tokenizeCodeText(effects, ok, nok) { - var sizeOpen = 0; - var size; - var token; - return start +/** + * Check if `value` is an object with keys. + * + * @param {Record} value + * @returns {boolean} + */ +function keys(value) { + /** @type {string} */ + let key; - function start(code) { - effects.enter('codeText'); - effects.enter('codeTextSequence'); - return openingSequence(code) + for (key in value) { + if (own$6.call(value, key)) { + return true + } } - function openingSequence(code) { - if (code === 96) { - effects.consume(code); - sizeOpen++; - return openingSequence - } + return false +} - effects.exit('codeTextSequence'); - return gap(code) +/** + * Assert a parser is available. + * + * @param {string} name + * @param {unknown} value + * @returns {asserts value is Parser} + */ +function assertParser(name, value) { + if (typeof value !== 'function') { + throw new TypeError('Cannot `' + name + '` without `Parser`') } +} - function gap(code) { - // EOF. - if (code === null) { - return nok(code) - } // Closing fence? - // Could also be data. +/** + * Assert a compiler is available. + * + * @param {string} name + * @param {unknown} value + * @returns {asserts value is Compiler} + */ +function assertCompiler(name, value) { + if (typeof value !== 'function') { + throw new TypeError('Cannot `' + name + '` without `Compiler`') + } +} - if (code === 96) { - token = effects.enter('codeTextSequence'); - size = 0; - return closingSequence(code) - } // Tabs don’t work, and virtual spaces don’t make sense. +/** + * Assert the processor is not frozen. + * + * @param {string} name + * @param {unknown} frozen + * @returns {asserts frozen is false} + */ +function assertUnfrozen(name, frozen) { + if (frozen) { + throw new Error( + 'Cannot call `' + + name + + '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.' + ) + } +} - if (code === 32) { - effects.enter('space'); - effects.consume(code); - effects.exit('space'); - return gap - } +/** + * Assert `node` is a unist node. + * + * @param {unknown} node + * @returns {asserts node is Node} + */ +function assertNode(node) { + // `isPlainObj` unfortunately uses `any` instead of `unknown`. + // type-coverage:ignore-next-line + if (!isPlainObject$1(node) || typeof node.type !== 'string') { + throw new TypeError('Expected node, got `' + node + '`') + // Fine. + } +} - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return gap - } // Data. +/** + * Assert that `complete` is `true`. + * + * @param {string} name + * @param {string} asyncName + * @param {unknown} complete + * @returns {asserts complete is true} + */ +function assertDone(name, asyncName, complete) { + if (!complete) { + throw new Error( + '`' + name + '` finished async. Use `' + asyncName + '` instead' + ) + } +} - effects.enter('codeTextData'); - return data(code) - } // In code. +/** + * @param {VFileCompatible} [value] + * @returns {VFile} + */ +function vfile(value) { + return looksLikeAVFile(value) ? value : new VFile(value) +} - function data(code) { - if ( - code === null || - code === 32 || - code === 96 || - markdownLineEnding_1(code) - ) { - effects.exit('codeTextData'); - return gap(code) - } +/** + * @param {VFileCompatible} [value] + * @returns {value is VFile} + */ +function looksLikeAVFile(value) { + return Boolean( + value && + typeof value === 'object' && + 'message' in value && + 'messages' in value + ) +} - effects.consume(code); - return data - } // Closing fence. +/** + * @param {unknown} [value] + * @returns {value is VFileValue} + */ +function looksLikeAVFileValue(value) { + return typeof value === 'string' || isBuffer(value) +} - function closingSequence(code) { - // More. - if (code === 96) { - effects.consume(code); - size++; - return closingSequence - } // Done! +/** + * @typedef Options + * @property {boolean} [includeImageAlt=true] + */ - if (size === sizeOpen) { - effects.exit('codeTextSequence'); - effects.exit('codeText'); - return ok(code) - } // More or less accents: mark as data. +/** + * Get the text content of a node. + * Prefer the node’s plain-text fields, otherwise serialize its children, + * and if the given value is an array, serialize the nodes in it. + * + * @param {unknown} node + * @param {Options} [options] + * @returns {string} + */ +function toString(node, options) { + var {includeImageAlt = true} = options || {}; + return one(node, includeImageAlt) +} - token.type = 'codeTextData'; - return data(code) - } +/** + * @param {unknown} node + * @param {boolean} includeImageAlt + * @returns {string} + */ +function one(node, includeImageAlt) { + return ( + (node && + typeof node === 'object' && + // @ts-ignore looks like a literal. + (node.value || + // @ts-ignore looks like an image. + (includeImageAlt ? node.alt : '') || + // @ts-ignore looks like a parent. + ('children' in node && all(node.children, includeImageAlt)) || + (Array.isArray(node) && all(node, includeImageAlt)))) || + '' + ) } -var codeText_1 = codeText; +/** + * @param {Array.} values + * @param {boolean} includeImageAlt + * @returns {string} + */ +function all(values, includeImageAlt) { + /** @type {Array.} */ + var result = []; + var index = -1; -// eslint-disable-next-line max-params -function destinationFactory( - effects, - ok, - nok, - type, - literalType, - literalMarkerType, - rawType, - stringType, - max -) { - var limit = max || Infinity; - var balance = 0; - return start + while (++index < values.length) { + result[index] = one(values[index], includeImageAlt); + } - function start(code) { - if (code === 60) { - effects.enter(type); - effects.enter(literalType); - effects.enter(literalMarkerType); - effects.consume(code); - effects.exit(literalMarkerType); - return destinationEnclosedBefore - } + return result.join('') +} - if (asciiControl_1(code)) { - return nok(code) - } +/** + * Like `Array#splice`, but smarter for giant arrays. + * + * `Array#splice` takes all items to be inserted as individual argument which + * causes a stack overflow in V8 when trying to insert 100k items for instance. + * + * Otherwise, this does not return the removed items, and takes `items` as an + * array instead of rest parameters. + * + * @template {unknown} T + * @param {T[]} list + * @param {number} start + * @param {number} remove + * @param {T[]} items + * @returns {void} + */ +function splice(list, start, remove, items) { + const end = list.length; + let chunkStart = 0; + /** @type {unknown[]} */ - effects.enter(type); - effects.enter(rawType); - effects.enter(stringType); - effects.enter('chunkString', { - contentType: 'string' - }); - return destinationRaw(code) + let parameters; // Make start between zero and `end` (included). + + if (start < 0) { + start = -start > end ? 0 : end + start; + } else { + start = start > end ? end : start; } - function destinationEnclosedBefore(code) { - if (code === 62) { - effects.enter(literalMarkerType); - effects.consume(code); - effects.exit(literalMarkerType); - effects.exit(literalType); - effects.exit(type); - return ok + remove = remove > 0 ? remove : 0; // No need to chunk the items if there’s only a couple (10k) items. + + if (items.length < 10000) { + parameters = Array.from(items); + parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine. + ;[].splice.apply(list, parameters); + } else { + // Delete `remove` items starting from `start` + if (remove) [].splice.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. + + while (chunkStart < items.length) { + parameters = items.slice(chunkStart, chunkStart + 10000); + parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine. + ;[].splice.apply(list, parameters); + chunkStart += 10000; + start += 10000; } + } +} +/** + * Append `items` (an array) at the end of `list` (another array). + * When `list` was empty, returns `items` instead. + * + * This prevents a potentially expensive operation when `list` is empty, + * and adds items in batches to prevent V8 from hanging. + * + * @template {unknown} T + * @param {T[]} list + * @param {T[]} items + * @returns {T[]} + */ - effects.enter(stringType); - effects.enter('chunkString', { - contentType: 'string' - }); - return destinationEnclosed(code) +function push(list, items) { + if (list.length > 0) { + splice(list, list.length, 0, items); + return list } - function destinationEnclosed(code) { - if (code === 62) { - effects.exit('chunkString'); - effects.exit(stringType); - return destinationEnclosedBefore(code) - } + return items +} - if (code === null || code === 60 || markdownLineEnding_1(code)) { - return nok(code) - } +/** + * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + */ - effects.consume(code); - return code === 92 ? destinationEnclosedEscape : destinationEnclosed - } +const hasOwnProperty = {}.hasOwnProperty; - function destinationEnclosedEscape(code) { - if (code === 60 || code === 62 || code === 92) { - effects.consume(code); - return destinationEnclosed - } +/** + * Combine several syntax extensions into one. + * + * @param {Extension[]} extensions List of syntax extensions. + * @returns {NormalizedExtension} A single combined extension. + */ +function combineExtensions(extensions) { + /** @type {NormalizedExtension} */ + const all = {}; + let index = -1; - return destinationEnclosed(code) + while (++index < extensions.length) { + syntaxExtension(all, extensions[index]); } - function destinationRaw(code) { - if (code === 40) { - if (++balance > limit) return nok(code) - effects.consume(code); - return destinationRaw - } + return all +} - if (code === 41) { - if (!balance--) { - effects.exit('chunkString'); - effects.exit(stringType); - effects.exit(rawType); - effects.exit(type); - return ok(code) - } +/** + * Merge `extension` into `all`. + * + * @param {NormalizedExtension} all Extension to merge into. + * @param {Extension} extension Extension to merge. + * @returns {void} + */ +function syntaxExtension(all, extension) { + /** @type {string} */ + let hook; - effects.consume(code); - return destinationRaw - } + for (hook in extension) { + const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; + const left = maybe || (all[hook] = {}); + const right = extension[hook]; + /** @type {string} */ + let code; - if (code === null || markdownLineEndingOrSpace_1(code)) { - if (balance) return nok(code) - effects.exit('chunkString'); - effects.exit(stringType); - effects.exit(rawType); - effects.exit(type); - return ok(code) + for (code in right) { + if (!hasOwnProperty.call(left, code)) left[code] = []; + const value = right[code]; + constructs( + // @ts-expect-error Looks like a list. + left[code], + Array.isArray(value) ? value : value ? [value] : [] + ); } + } +} - if (asciiControl_1(code)) return nok(code) - effects.consume(code); - return code === 92 ? destinationRawEscape : destinationRaw +/** + * Merge `list` into `existing` (both lists of constructs). + * Mutates `existing`. + * + * @param {unknown[]} existing + * @param {unknown[]} list + * @returns {void} + */ +function constructs(existing, list) { + let index = -1; + /** @type {unknown[]} */ + const before = []; + + while (++index < list.length) { +(list[index].add === 'after' ? existing : before).push(list[index]); } - function destinationRawEscape(code) { - if (code === 40 || code === 41 || code === 92) { - effects.consume(code); - return destinationRaw - } + splice(existing, 0, 0, before); +} - return destinationRaw(code) +/** + * Combine several HTML extensions into one. + * + * @param {HtmlExtension[]} htmlExtensions List of HTML extensions. + * @returns {HtmlExtension} A single combined extension. + */ +function combineHtmlExtensions(htmlExtensions) { + /** @type {HtmlExtension} */ + const handlers = {}; + let index = -1; + + while (++index < htmlExtensions.length) { + htmlExtension(handlers, htmlExtensions[index]); } + + return handlers } -var factoryDestination = destinationFactory; +/** + * Merge `extension` into `all`. + * + * @param {HtmlExtension} all Extension to merge into. + * @param {HtmlExtension} extension Extension to merge. + * @returns {void} + */ +function htmlExtension(all, extension) { + /** @type {string} */ + let hook; -// eslint-disable-next-line max-params -function labelFactory(effects, ok, nok, type, markerType, stringType) { - var self = this; - var size = 0; - var data; - return start + for (hook in extension) { + const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; + const left = maybe || (all[hook] = {}); + const right = extension[hook]; + /** @type {string} */ + let type; - function start(code) { - effects.enter(type); - effects.enter(markerType); - effects.consume(code); - effects.exit(markerType); - effects.enter(stringType); - return atBreak + if (right) { + for (type in right) { + left[type] = right[type]; + } + } } +} - function atBreak(code) { - if ( - code === null || - code === 91 || - (code === 93 && !data) || - /* c8 ignore next */ - (code === 94 && - /* c8 ignore next */ - !size && - /* c8 ignore next */ - '_hiddenFootnoteSupport' in self.parser.constructs) || - size > 999 - ) { - return nok(code) - } +// This module is generated by `script/`. +// +// CommonMark handles attention (emphasis, strong) markers based on what comes +// before or after them. +// One such difference is if those characters are Unicode punctuation. +// This script is generated from the Unicode data. +const unicodePunctuationRegex = + /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; - if (code === 93) { - effects.exit(stringType); - effects.enter(markerType); - effects.consume(code); - effects.exit(markerType); - effects.exit(type); - return ok - } +/** + * @typedef {import('micromark-util-types').Code} Code + */ +/** + * Check whether the character code represents an ASCII alpha (`a` through `z`, + * case insensitive). + * + * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha. + * + * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`) + * to U+005A (`Z`). + * + * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`) + * to U+007A (`z`). + */ - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return atBreak - } +const asciiAlpha = regexCheck(/[A-Za-z]/); +/** + * Check whether the character code represents an ASCII digit (`0` through `9`). + * + * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to + * U+0039 (`9`). + */ - effects.enter('chunkString', { - contentType: 'string' - }); - return label(code) - } +const asciiDigit = regexCheck(/\d/); +/** + * Check whether the character code represents an ASCII hex digit (`a` through + * `f`, case insensitive, or `0` through `9`). + * + * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex + * digit, or an ASCII lower hex digit. + * + * An **ASCII upper hex digit** is a character in the inclusive range U+0041 + * (`A`) to U+0046 (`F`). + * + * An **ASCII lower hex digit** is a character in the inclusive range U+0061 + * (`a`) to U+0066 (`f`). + */ - function label(code) { - if ( - code === null || - code === 91 || - code === 93 || - markdownLineEnding_1(code) || - size++ > 999 - ) { - effects.exit('chunkString'); - return atBreak(code) - } +const asciiHexDigit = regexCheck(/[\dA-Fa-f]/); +/** + * Check whether the character code represents an ASCII alphanumeric (`a` + * through `z`, case insensitive, or `0` through `9`). + * + * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha + * (see `asciiAlpha`). + */ - effects.consume(code); - data = data || !markdownSpace_1(code); - return code === 92 ? labelEscape : label - } +const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); +/** + * Check whether the character code represents ASCII punctuation. + * + * An **ASCII punctuation** is a character in the inclusive ranges U+0021 + * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT + * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT + * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`). + */ - function labelEscape(code) { - if (code === 91 || code === 92 || code === 93) { - effects.consume(code); - size++; - return label - } +const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); +/** + * Check whether the character code represents an ASCII atext. + * + * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in + * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`), + * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F + * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E + * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE + * (`{`) to U+007E TILDE (`~`). + * + * See: + * **\[RFC5322]**: + * [Internet Message Format](https://tools.ietf.org/html/rfc5322). + * P. Resnick. + * IETF. + */ - return label(code) - } +const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); +/** + * Check whether a character code is an ASCII control character. + * + * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL) + * to U+001F (US), or U+007F (DEL). + * + * @param {Code} code + * @returns {code is number} + */ + +function asciiControl(code) { + return ( + // Special whitespace codes (which have negative values), C0 and Control + // character DEL + code !== null && (code < 32 || code === 127) + ) } +/** + * Check whether a character code is a markdown line ending (see + * `markdownLineEnding`) or markdown space (see `markdownSpace`). + * + * @param {Code} code + * @returns {code is number} + */ -var factoryLabel = labelFactory; +function markdownLineEndingOrSpace(code) { + return code !== null && (code < 0 || code === 32) +} +/** + * Check whether a character code is a markdown line ending. + * + * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN + * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR). + * + * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE + * RETURN (CR) are replaced by these virtual characters depending on whether + * they occurred together. + * + * @param {Code} code + * @returns {code is number} + */ -function whitespaceFactory(effects, ok) { - var seen; - return start +function markdownLineEnding(code) { + return code !== null && code < -2 +} +/** + * Check whether a character code is a markdown space. + * + * A **markdown space** is the concrete character U+0020 SPACE (SP) and the + * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT). + * + * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is + * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL + * SPACE (VS) characters, depending on the column at which the tab occurred. + * + * @param {Code} code + * @returns {code is number} + */ - function start(code) { - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - seen = true; - return start - } +function markdownSpace(code) { + return code === -2 || code === -1 || code === 32 +} +/** + * Check whether the character code represents Unicode whitespace. + * + * Note that this does handle micromark specific markdown whitespace characters. + * See `markdownLineEndingOrSpace` to check that. + * + * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator, + * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF), + * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**). + * + * See: + * **\[UNICODE]**: + * [The Unicode Standard](https://www.unicode.org/versions/). + * Unicode Consortium. + */ - if (markdownSpace_1(code)) { - return factorySpace( - effects, - start, - seen ? 'linePrefix' : 'lineSuffix' - )(code) - } +const unicodeWhitespace = regexCheck(/\s/); +/** + * Check whether the character code represents Unicode punctuation. + * + * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation, + * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf` + * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po` + * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII + * punctuation (see `asciiPunctuation`). + * + * See: + * **\[UNICODE]**: + * [The Unicode Standard](https://www.unicode.org/versions/). + * Unicode Consortium. + */ +// Size note: removing ASCII from the regex and using `asciiPunctuation` here +// In fact adds to the bundle size. - return ok(code) +const unicodePunctuation = regexCheck(unicodePunctuationRegex); +/** + * Create a code check from a regex. + * + * @param {RegExp} regex + * @returns {(code: Code) => code is number} + */ + +function regexCheck(regex) { + return check + /** + * Check whether a code matches the bound regex. + * + * @param {Code} code Character code + * @returns {code is number} Whether the character code matches the bound regex + */ + + function check(code) { + return code !== null && regex.test(String.fromCharCode(code)) } } -var factoryWhitespace = whitespaceFactory; +/** + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + */ +/** + * @param {Effects} effects + * @param {State} ok + * @param {string} type + * @param {number} [max=Infinity] + * @returns {State} + */ -function titleFactory(effects, ok, nok, type, markerType, stringType) { - var marker; +function factorySpace(effects, ok, type, max) { + const limit = max ? max - 1 : Number.POSITIVE_INFINITY; + let size = 0; return start + /** @type {State} */ function start(code) { - effects.enter(type); - effects.enter(markerType); - effects.consume(code); - effects.exit(markerType); - marker = code === 40 ? 41 : code; - return atFirstTitleBreak + if (markdownSpace(code)) { + effects.enter(type); + return prefix(code) + } + + return ok(code) } + /** @type {State} */ - function atFirstTitleBreak(code) { - if (code === marker) { - effects.enter(markerType); + function prefix(code) { + if (markdownSpace(code) && size++ < limit) { effects.consume(code); - effects.exit(markerType); - effects.exit(type); - return ok + return prefix } - effects.enter(stringType); - return atTitleBreak(code) + effects.exit(type); + return ok(code) } +} + +/** + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').Initializer} Initializer + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + */ + +/** @type {InitialConstruct} */ +const content$1 = { + tokenize: initializeContent +}; +/** @type {Initializer} */ + +function initializeContent(effects) { + const contentStart = effects.attempt( + this.parser.constructs.contentInitial, + afterContentStartConstruct, + paragraphInitial + ); + /** @type {Token} */ - function atTitleBreak(code) { - if (code === marker) { - effects.exit(stringType); - return atFirstTitleBreak(marker) - } + let previous; + return contentStart + /** @type {State} */ + function afterContentStartConstruct(code) { if (code === null) { - return nok(code) - } // Note: blank lines can’t exist in content. - - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, atTitleBreak, 'linePrefix') + return } - effects.enter('chunkString', { - contentType: 'string' - }); - return title(code) + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace(effects, contentStart, 'linePrefix') } + /** @type {State} */ - function title(code) { - if (code === marker || code === null || markdownLineEnding_1(code)) { - effects.exit('chunkString'); - return atTitleBreak(code) + function paragraphInitial(code) { + effects.enter('paragraph'); + return lineStart(code) + } + /** @type {State} */ + + function lineStart(code) { + const token = effects.enter('chunkText', { + contentType: 'text', + previous + }); + + if (previous) { + previous.next = token; } - effects.consume(code); - return code === 92 ? titleEscape : title + previous = token; + return data(code) } + /** @type {State} */ - function titleEscape(code) { - if (code === marker || code === 92) { + function data(code) { + if (code === null) { + effects.exit('chunkText'); + effects.exit('paragraph'); effects.consume(code); - return title + return } - return title(code) + if (markdownLineEnding(code)) { + effects.consume(code); + effects.exit('chunkText'); + return lineStart + } // Data. + + effects.consume(code); + return data } } -var factoryTitle = titleFactory; +/** + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').Initializer} Initializer + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Point} Point + */ +/** @type {InitialConstruct} */ -var definition = { - name: 'definition', - tokenize: tokenizeDefinition +const document$2 = { + tokenize: initializeDocument }; -var titleConstruct = { - tokenize: tokenizeTitle, - partial: true +/** @type {Construct} */ + +const containerConstruct = { + tokenize: tokenizeContainer }; +/** @type {Initializer} */ -function tokenizeDefinition(effects, ok, nok) { - var self = this; - var identifier; +function initializeDocument(effects) { + const self = this; + /** @type {StackItem[]} */ + + const stack = []; + let continued = 0; + /** @type {TokenizeContext|undefined} */ + + let childFlow; + /** @type {Token|undefined} */ + + let childToken; + /** @type {number} */ + + let lineStartOffset; return start + /** @type {State} */ function start(code) { - effects.enter('definition'); - return factoryLabel.call( - self, - effects, - labelAfter, - nok, - 'definitionLabel', - 'definitionLabelMarker', - 'definitionLabelString' - )(code) + // First we iterate through the open blocks, starting with the root + // document, and descending through last children down to the last open + // block. + // Each block imposes a condition that the line must satisfy if the block is + // to remain open. + // For example, a block quote requires a `>` character. + // A paragraph requires a non-blank line. + // In this phase we may match all or just some of the open blocks. + // But we cannot close unmatched blocks yet, because we may have a lazy + // continuation line. + if (continued < stack.length) { + const item = stack[continued]; + self.containerState = item[1]; + return effects.attempt( + item[0].continuation, + documentContinue, + checkNewContainers + )(code) + } // Done. + + return checkNewContainers(code) } + /** @type {State} */ - function labelAfter(code) { - identifier = normalizeIdentifier_1( - self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) - ); + function documentContinue(code) { + if (self.containerState._closeFlow) closeFlow(); + continued++; + return start(code) + } + /** @type {State} */ + + function checkNewContainers(code) { + // Next, after consuming the continuation markers for existing blocks, we + // look for new block starts (e.g. `>` for a block quote). + // If we encounter a new block start, we close any blocks unmatched in + // step 1 before creating the new block as a child of the last matched + // block. + if (continued === stack.length) { + // No need to `check` whether there’s a container, of `exitContainers` + // would be moot. + // We can instead immediately `attempt` to parse one. + if (!childFlow) { + return documentContinued(code) + } // If we have concrete content, such as block HTML or fenced code, + // we can’t have containers “pierce” into them, so we can immediately + // start. - if (code === 58) { - effects.enter('definitionMarker'); - effects.consume(code); - effects.exit('definitionMarker'); // Note: blank lines can’t exist in content. + if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { + return flowStart(code) + } // If we do have flow, it could still be a blank line, + // but we’d be interrupting it w/ a new container if there’s a current + // construct. - return factoryWhitespace( - effects, - factoryDestination( - effects, - effects.attempt( - titleConstruct, - factorySpace(effects, after, 'whitespace'), - factorySpace(effects, after, 'whitespace') - ), - nok, - 'definitionDestination', - 'definitionDestinationLiteral', - 'definitionDestinationLiteralMarker', - 'definitionDestinationRaw', - 'definitionDestinationString' - ) - ) - } + self.interrupt = Boolean(childFlow.currentConstruct); + } // Check if there is a new container. - return nok(code) + self.containerState = {}; + return effects.check( + containerConstruct, + thereIsANewContainer, + thereIsNoNewContainer + )(code) } + /** @type {State} */ - function after(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('definition'); - - if (self.parser.defined.indexOf(identifier) < 0) { - self.parser.defined.push(identifier); - } + function thereIsANewContainer(code) { + if (childFlow) closeFlow(); + exitContainers(continued); + return documentContinued(code) + } + /** @type {State} */ - return ok(code) - } + function thereIsNoNewContainer(code) { + self.parser.lazy[self.now().line] = continued !== stack.length; + lineStartOffset = self.now().offset; + return flowStart(code) + } + /** @type {State} */ - return nok(code) + function documentContinued(code) { + // Try new containers. + self.containerState = {}; + return effects.attempt( + containerConstruct, + containerContinue, + flowStart + )(code) } -} + /** @type {State} */ -function tokenizeTitle(effects, ok, nok) { - return start + function containerContinue(code) { + continued++; + stack.push([self.currentConstruct, self.containerState]); // Try another. - function start(code) { - return markdownLineEndingOrSpace_1(code) - ? factoryWhitespace(effects, before)(code) - : nok(code) + return documentContinued(code) } + /** @type {State} */ - function before(code) { - if (code === 34 || code === 39 || code === 40) { - return factoryTitle( - effects, - factorySpace(effects, after, 'whitespace'), - nok, - 'definitionTitle', - 'definitionTitleMarker', - 'definitionTitleString' - )(code) + function flowStart(code) { + if (code === null) { + if (childFlow) closeFlow(); + exitContainers(0); + effects.consume(code); + return } - return nok(code) - } - - function after(code) { - return code === null || markdownLineEnding_1(code) ? ok(code) : nok(code) + childFlow = childFlow || self.parser.flow(self.now()); + effects.enter('chunkFlow', { + contentType: 'flow', + previous: childToken, + _tokenizer: childFlow + }); + return flowContinue(code) } -} + /** @type {State} */ -var definition_1 = definition; + function flowContinue(code) { + if (code === null) { + writeToChild(effects.exit('chunkFlow'), true); + exitContainers(0); + effects.consume(code); + return + } -var hardBreakEscape = { - name: 'hardBreakEscape', - tokenize: tokenizeHardBreakEscape -}; + if (markdownLineEnding(code)) { + effects.consume(code); + writeToChild(effects.exit('chunkFlow')); // Get ready for the next line. -function tokenizeHardBreakEscape(effects, ok, nok) { - return start + continued = 0; + self.interrupt = undefined; + return start + } - function start(code) { - effects.enter('hardBreakEscape'); - effects.enter('escapeMarker'); effects.consume(code); - return open + return flowContinue } + /** + * @param {Token} token + * @param {boolean} [eof] + * @returns {void} + */ - function open(code) { - if (markdownLineEnding_1(code)) { - effects.exit('escapeMarker'); - effects.exit('hardBreakEscape'); - return ok(code) - } - - return nok(code) - } -} + function writeToChild(token, eof) { + const stream = self.sliceStream(token); + if (eof) stream.push(null); + token.previous = childToken; + if (childToken) childToken.next = token; + childToken = token; + childFlow.defineSkip(token.start); + childFlow.write(stream); // Alright, so we just added a lazy line: + // + // ```markdown + // > a + // b. + // + // Or: + // + // > ~~~c + // d + // + // Or: + // + // > | e | + // f + // ``` + // + // The construct in the second example (fenced code) does not accept lazy + // lines, so it marked itself as done at the end of its first line, and + // then the content construct parses `d`. + // Most constructs in markdown match on the first line: if the first line + // forms a construct, a non-lazy line can’t “unmake” it. + // + // The construct in the third example is potentially a GFM table, and + // those are *weird*. + // It *could* be a table, from the first line, if the following line + // matches a condition. + // In this case, that second line is lazy, which “unmakes” the first line + // and turns the whole into one content block. + // + // We’ve now parsed the non-lazy and the lazy line, and can figure out + // whether the lazy line started a new flow block. + // If it did, we exit the current containers between the two flow blocks. -var hardBreakEscape_1 = hardBreakEscape; + if (self.parser.lazy[token.start.line]) { + let index = childFlow.events.length; -var headingAtx = { - name: 'headingAtx', - tokenize: tokenizeHeadingAtx, - resolve: resolveHeadingAtx -}; + while (index--) { + if ( + // The token starts before the line ending… + childFlow.events[index][1].start.offset < lineStartOffset && + (!childFlow.events[index][1].end || // …or ends after it. + childFlow.events[index][1].end.offset > lineStartOffset) + ) { + // Exit: there’s still something open, which means it’s a lazy line + // part of something. + return + } + } -function resolveHeadingAtx(events, context) { - var contentEnd = events.length - 2; - var contentStart = 3; - var content; - var text; // Prefix whitespace, part of the opening. + const indexBeforeExits = self.events.length; + let indexBeforeFlow = indexBeforeExits; + /** @type {boolean|undefined} */ - if (events[contentStart][1].type === 'whitespace') { - contentStart += 2; - } // Suffix whitespace, part of the closing. + let seen; + /** @type {Point|undefined} */ - if ( - contentEnd - 2 > contentStart && - events[contentEnd][1].type === 'whitespace' - ) { - contentEnd -= 2; - } + let point; // Find the previous chunk (the one before the lazy line). - if ( - events[contentEnd][1].type === 'atxHeadingSequence' && - (contentStart === contentEnd - 1 || - (contentEnd - 4 > contentStart && - events[contentEnd - 2][1].type === 'whitespace')) - ) { - contentEnd -= contentStart + 1 === contentEnd ? 2 : 4; - } + while (indexBeforeFlow--) { + if ( + self.events[indexBeforeFlow][0] === 'exit' && + self.events[indexBeforeFlow][1].type === 'chunkFlow' + ) { + if (seen) { + point = self.events[indexBeforeFlow][1].end; + break + } - if (contentEnd > contentStart) { - content = { - type: 'atxHeadingText', - start: events[contentStart][1].start, - end: events[contentEnd][1].end - }; - text = { - type: 'chunkText', - start: events[contentStart][1].start, - end: events[contentEnd][1].end, - contentType: 'text' - }; - chunkedSplice_1(events, contentStart, contentEnd - contentStart + 1, [ - ['enter', content, context], - ['enter', text, context], - ['exit', text, context], - ['exit', content, context] - ]); - } + seen = true; + } + } - return events -} + exitContainers(continued); // Fix positions. -function tokenizeHeadingAtx(effects, ok, nok) { - var self = this; - var size = 0; - return start + index = indexBeforeExits; - function start(code) { - effects.enter('atxHeading'); - effects.enter('atxHeadingSequence'); - return fenceOpenInside(code) - } + while (index < self.events.length) { + self.events[index][1].end = Object.assign({}, point); + index++; + } // Inject the exits earlier (they’re still also at the end). - function fenceOpenInside(code) { - if (code === 35 && size++ < 6) { - effects.consume(code); - return fenceOpenInside - } + splice( + self.events, + indexBeforeFlow + 1, + 0, + self.events.slice(indexBeforeExits) + ); // Discard the duplicate exits. - if (code === null || markdownLineEndingOrSpace_1(code)) { - effects.exit('atxHeadingSequence'); - return self.interrupt ? ok(code) : headingBreak(code) + self.events.length = index; } - - return nok(code) } + /** + * @param {number} size + * @returns {void} + */ - function headingBreak(code) { - if (code === 35) { - effects.enter('atxHeadingSequence'); - return sequence(code) - } + function exitContainers(size) { + let index = stack.length; // Exit open containers. - if (code === null || markdownLineEnding_1(code)) { - effects.exit('atxHeading'); - return ok(code) + while (index-- > size) { + const entry = stack[index]; + self.containerState = entry[1]; + entry[0].exit.call(self, effects); } - if (markdownSpace_1(code)) { - return factorySpace(effects, headingBreak, 'whitespace')(code) - } + stack.length = size; + } - effects.enter('atxHeadingText'); - return data(code) + function closeFlow() { + childFlow.write([null]); + childToken = undefined; + childFlow = undefined; + self.containerState._closeFlow = undefined; } +} +/** @type {Tokenizer} */ - function sequence(code) { - if (code === 35) { - effects.consume(code); - return sequence - } +function tokenizeContainer(effects, ok, nok) { + return factorySpace( + effects, + effects.attempt(this.parser.constructs.document, ok, nok), + 'linePrefix', + this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + ) +} - effects.exit('atxHeadingSequence'); - return headingBreak(code) - } +/** + * @typedef {import('micromark-util-types').Code} Code + */ - function data(code) { - if (code === null || code === 35 || markdownLineEndingOrSpace_1(code)) { - effects.exit('atxHeadingText'); - return headingBreak(code) - } +/** + * Classify whether a character code represents whitespace, punctuation, or + * something else. + * + * Used for attention (emphasis, strong), whose sequences can open or close + * based on the class of surrounding characters. + * + * Note that eof (`null`) is seen as whitespace. + * + * @param {Code} code + * @returns {number|undefined} + */ +function classifyCharacter(code) { + if ( + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) + ) { + return 1 + } - effects.consume(code); - return data + if (unicodePunctuation(code)) { + return 2 } } -var headingAtx_1 = headingAtx; +/** + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Resolver} Resolver + */ -// This module is copied from . -var basics = [ - 'address', - 'article', - 'aside', - 'base', - 'basefont', - 'blockquote', - 'body', - 'caption', - 'center', - 'col', - 'colgroup', - 'dd', - 'details', - 'dialog', - 'dir', - 'div', - 'dl', - 'dt', - 'fieldset', - 'figcaption', - 'figure', - 'footer', - 'form', - 'frame', - 'frameset', - 'h1', - 'h2', - 'h3', - 'h4', - 'h5', - 'h6', - 'head', - 'header', - 'hr', - 'html', - 'iframe', - 'legend', - 'li', - 'link', - 'main', - 'menu', - 'menuitem', - 'nav', - 'noframes', - 'ol', - 'optgroup', - 'option', - 'p', - 'param', - 'section', - 'source', - 'summary', - 'table', - 'tbody', - 'td', - 'tfoot', - 'th', - 'thead', - 'title', - 'tr', - 'track', - 'ul' -]; +/** + * Call all `resolveAll`s. + * + * @param {{resolveAll?: Resolver}[]} constructs + * @param {Event[]} events + * @param {TokenizeContext} context + * @returns {Event[]} + */ +function resolveAll(constructs, events, context) { + /** @type {Resolver[]} */ + const called = []; + let index = -1; + + while (++index < constructs.length) { + const resolve = constructs[index].resolveAll; -var htmlBlockNames = basics; + if (resolve && !called.includes(resolve)) { + events = resolve(events, context); + called.push(resolve); + } + } -// This module is copied from . -var raws = ['pre', 'script', 'style', 'textarea']; + return events +} -var htmlRawNames = raws; +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Code} Code + * @typedef {import('micromark-util-types').Point} Point + */ -var htmlFlow = { - name: 'htmlFlow', - tokenize: tokenizeHtmlFlow, - resolveTo: resolveToHtmlFlow, - concrete: true -}; -var nextBlankConstruct = { - tokenize: tokenizeNextBlank, - partial: true +/** @type {Construct} */ +const attention = { + name: 'attention', + tokenize: tokenizeAttention, + resolveAll: resolveAllAttention }; +/** + * Take all events and resolve attention to emphasis or strong. + * + * @type {Resolver} + */ -function resolveToHtmlFlow(events) { - var index = events.length; +function resolveAllAttention(events, context) { + let index = -1; + /** @type {number} */ - while (index--) { - if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') { - break - } - } + let open; + /** @type {Token} */ - if (index > 1 && events[index - 2][1].type === 'linePrefix') { - // Add the prefix start to the HTML token. - events[index][1].start = events[index - 2][1].start; // Add the prefix start to the HTML line token. + let group; + /** @type {Token} */ - events[index + 1][1].start = events[index - 2][1].start; // Remove the line prefix. + let text; + /** @type {Token} */ - events.splice(index - 2, 2); - } + let openingSequence; + /** @type {Token} */ - return events -} + let closingSequence; + /** @type {number} */ -function tokenizeHtmlFlow(effects, ok, nok) { - var self = this; - var kind; - var startTag; - var buffer; - var index; - var marker; - return start + let use; + /** @type {Event[]} */ - function start(code) { - effects.enter('htmlFlow'); - effects.enter('htmlFlowData'); - effects.consume(code); - return open - } + let nextEvents; + /** @type {number} */ - function open(code) { - if (code === 33) { - effects.consume(code); - return declarationStart - } + let offset; // Walk through all events. + // + // Note: performance of this is fine on an mb of normal markdown, but it’s + // a bottleneck for malicious stuff. + + while (++index < events.length) { + // Find a token that can close. + if ( + events[index][0] === 'enter' && + events[index][1].type === 'attentionSequence' && + events[index][1]._close + ) { + open = index; // Now walk back to find an opener. + + while (open--) { + // Find a token that can open the closer. + if ( + events[open][0] === 'exit' && + events[open][1].type === 'attentionSequence' && + events[open][1]._open && // If the markers are the same: + context.sliceSerialize(events[open][1]).charCodeAt(0) === + context.sliceSerialize(events[index][1]).charCodeAt(0) + ) { + // If the opening can close or the closing can open, + // and the close size *is not* a multiple of three, + // but the sum of the opening and closing size *is* multiple of three, + // then don’t match. + if ( + (events[open][1]._close || events[index][1]._open) && + (events[index][1].end.offset - events[index][1].start.offset) % 3 && + !( + (events[open][1].end.offset - + events[open][1].start.offset + + events[index][1].end.offset - + events[index][1].start.offset) % + 3 + ) + ) { + continue + } // Number of markers to use from the sequence. + + use = + events[open][1].end.offset - events[open][1].start.offset > 1 && + events[index][1].end.offset - events[index][1].start.offset > 1 + ? 2 + : 1; + const start = Object.assign({}, events[open][1].end); + const end = Object.assign({}, events[index][1].start); + movePoint(start, -use); + movePoint(end, use); + openingSequence = { + type: use > 1 ? 'strongSequence' : 'emphasisSequence', + start, + end: Object.assign({}, events[open][1].end) + }; + closingSequence = { + type: use > 1 ? 'strongSequence' : 'emphasisSequence', + start: Object.assign({}, events[index][1].start), + end + }; + text = { + type: use > 1 ? 'strongText' : 'emphasisText', + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index][1].start) + }; + group = { + type: use > 1 ? 'strong' : 'emphasis', + start: Object.assign({}, openingSequence.start), + end: Object.assign({}, closingSequence.end) + }; + events[open][1].end = Object.assign({}, openingSequence.start); + events[index][1].start = Object.assign({}, closingSequence.end); + nextEvents = []; // If there are more markers in the opening, add them before. - if (code === 47) { - effects.consume(code); - return tagCloseStart - } + if (events[open][1].end.offset - events[open][1].start.offset) { + nextEvents = push(nextEvents, [ + ['enter', events[open][1], context], + ['exit', events[open][1], context] + ]); + } // Opening. - if (code === 63) { - effects.consume(code); - kind = 3; // While we’re in an instruction instead of a declaration, we’re on a `?` - // right now, so we do need to search for `>`, similar to declarations. + nextEvents = push(nextEvents, [ + ['enter', group, context], + ['enter', openingSequence, context], + ['exit', openingSequence, context], + ['enter', text, context] + ]); // Between. - return self.interrupt ? ok : continuationDeclarationInside - } + nextEvents = push( + nextEvents, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + 1, index), + context + ) + ); // Closing. - if (asciiAlpha_1(code)) { - effects.consume(code); - buffer = fromCharCode_1(code); - startTag = true; - return tagName - } + nextEvents = push(nextEvents, [ + ['exit', text, context], + ['enter', closingSequence, context], + ['exit', closingSequence, context], + ['exit', group, context] + ]); // If there are more markers in the closing, add them after. - return nok(code) - } + if (events[index][1].end.offset - events[index][1].start.offset) { + offset = 2; + nextEvents = push(nextEvents, [ + ['enter', events[index][1], context], + ['exit', events[index][1], context] + ]); + } else { + offset = 0; + } - function declarationStart(code) { - if (code === 45) { - effects.consume(code); - kind = 2; - return commentOpenInside + splice(events, open - 1, index - open + 3, nextEvents); + index = open + nextEvents.length - offset - 2; + break + } + } } + } // Remove remaining sequences. - if (code === 91) { - effects.consume(code); - kind = 5; - buffer = 'CDATA['; - index = 0; - return cdataOpenInside - } + index = -1; - if (asciiAlpha_1(code)) { - effects.consume(code); - kind = 4; - return self.interrupt ? ok : continuationDeclarationInside + while (++index < events.length) { + if (events[index][1].type === 'attentionSequence') { + events[index][1].type = 'data'; } - - return nok(code) } - function commentOpenInside(code) { - if (code === 45) { - effects.consume(code); - return self.interrupt ? ok : continuationDeclarationInside - } + return events +} +/** @type {Tokenizer} */ - return nok(code) - } +function tokenizeAttention(effects, ok) { + const before = classifyCharacter(this.previous); + /** @type {NonNullable} */ - function cdataOpenInside(code) { - if (code === buffer.charCodeAt(index++)) { - effects.consume(code); - return index === buffer.length - ? self.interrupt - ? ok - : continuation - : cdataOpenInside - } + let marker; + return start + /** @type {State} */ - return nok(code) + function start(code) { + effects.enter('attentionSequence'); + marker = code; + return sequence(code) } + /** @type {State} */ - function tagCloseStart(code) { - if (asciiAlpha_1(code)) { + function sequence(code) { + if (code === marker) { effects.consume(code); - buffer = fromCharCode_1(code); - return tagName + return sequence } - return nok(code) + const token = effects.exit('attentionSequence'); + const after = classifyCharacter(code); + const open = !after || (after === 2 && before); + const close = !before || (before === 2 && after); + token._open = Boolean(marker === 42 ? open : open && (before || !close)); + token._close = Boolean(marker === 42 ? close : close && (after || !open)); + return ok(code) } +} +/** + * Move a point a bit. + * + * Note: `move` only works inside lines! It’s not possible to move past other + * chunks (replacement characters, tabs, or line endings). + * + * @param {Point} point + * @param {number} offset + * @returns {void} + */ - function tagName(code) { - if ( - code === null || - code === 47 || - code === 62 || - markdownLineEndingOrSpace_1(code) - ) { - if ( - code !== 47 && - startTag && - htmlRawNames.indexOf(buffer.toLowerCase()) > -1 - ) { - kind = 1; - return self.interrupt ? ok(code) : continuation(code) - } - - if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) { - kind = 6; - - if (code === 47) { - effects.consume(code); - return basicSelfClosing - } - - return self.interrupt ? ok(code) : continuation(code) - } +function movePoint(point, offset) { + point.column += offset; + point.offset += offset; + point._bufferIndex += offset; +} - kind = 7; // Do not support complete HTML when interrupting. +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ - return self.interrupt - ? nok(code) - : startTag - ? completeAttributeNameBefore(code) - : completeClosingTagAfter(code) - } +/** @type {Construct} */ +const autolink = { + name: 'autolink', + tokenize: tokenizeAutolink +}; +/** @type {Tokenizer} */ - if (code === 45 || asciiAlphanumeric_1(code)) { - effects.consume(code); - buffer += fromCharCode_1(code); - return tagName - } +function tokenizeAutolink(effects, ok, nok) { + let size = 1; + return start + /** @type {State} */ - return nok(code) + function start(code) { + effects.enter('autolink'); + effects.enter('autolinkMarker'); + effects.consume(code); + effects.exit('autolinkMarker'); + effects.enter('autolinkProtocol'); + return open } + /** @type {State} */ - function basicSelfClosing(code) { - if (code === 62) { + function open(code) { + if (asciiAlpha(code)) { effects.consume(code); - return self.interrupt ? ok : continuation + return schemeOrEmailAtext } - return nok(code) + return asciiAtext(code) ? emailAtext(code) : nok(code) } + /** @type {State} */ - function completeClosingTagAfter(code) { - if (markdownSpace_1(code)) { - effects.consume(code); - return completeClosingTagAfter - } - - return completeEnd(code) + function schemeOrEmailAtext(code) { + return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code) + ? schemeInsideOrEmailAtext(code) + : emailAtext(code) } + /** @type {State} */ - function completeAttributeNameBefore(code) { - if (code === 47) { - effects.consume(code); - return completeEnd - } - - if (code === 58 || code === 95 || asciiAlpha_1(code)) { - effects.consume(code); - return completeAttributeName - } - - if (markdownSpace_1(code)) { + function schemeInsideOrEmailAtext(code) { + if (code === 58) { effects.consume(code); - return completeAttributeNameBefore + return urlInside } - return completeEnd(code) - } - - function completeAttributeName(code) { if ( - code === 45 || - code === 46 || - code === 58 || - code === 95 || - asciiAlphanumeric_1(code) + (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && + size++ < 32 ) { effects.consume(code); - return completeAttributeName + return schemeInsideOrEmailAtext } - return completeAttributeNameAfter(code) + return emailAtext(code) } + /** @type {State} */ - function completeAttributeNameAfter(code) { - if (code === 61) { - effects.consume(code); - return completeAttributeValueBefore + function urlInside(code) { + if (code === 62) { + effects.exit('autolinkProtocol'); + return end(code) } - if (markdownSpace_1(code)) { - effects.consume(code); - return completeAttributeNameAfter + if (code === null || code === 32 || code === 60 || asciiControl(code)) { + return nok(code) } - return completeAttributeNameBefore(code) + effects.consume(code); + return urlInside } + /** @type {State} */ - function completeAttributeValueBefore(code) { - if ( - code === null || - code === 60 || - code === 61 || - code === 62 || - code === 96 - ) { - return nok(code) - } - - if (code === 34 || code === 39) { + function emailAtext(code) { + if (code === 64) { effects.consume(code); - marker = code; - return completeAttributeValueQuoted + size = 0; + return emailAtSignOrDot } - if (markdownSpace_1(code)) { + if (asciiAtext(code)) { effects.consume(code); - return completeAttributeValueBefore + return emailAtext } - marker = undefined; - return completeAttributeValueUnquoted(code) + return nok(code) } + /** @type {State} */ - function completeAttributeValueQuoted(code) { - if (code === marker) { - effects.consume(code); - return completeAttributeValueQuotedAfter - } - - if (code === null || markdownLineEnding_1(code)) { - return nok(code) - } - - effects.consume(code); - return completeAttributeValueQuoted + function emailAtSignOrDot(code) { + return asciiAlphanumeric(code) ? emailLabel(code) : nok(code) } + /** @type {State} */ - function completeAttributeValueUnquoted(code) { - if ( - code === null || - code === 34 || - code === 39 || - code === 60 || - code === 61 || - code === 62 || - code === 96 || - markdownLineEndingOrSpace_1(code) - ) { - return completeAttributeNameAfter(code) + function emailLabel(code) { + if (code === 46) { + effects.consume(code); + size = 0; + return emailAtSignOrDot } - effects.consume(code); - return completeAttributeValueUnquoted - } - - function completeAttributeValueQuotedAfter(code) { - if (code === 47 || code === 62 || markdownSpace_1(code)) { - return completeAttributeNameBefore(code) + if (code === 62) { + // Exit, then change the type. + effects.exit('autolinkProtocol').type = 'autolinkEmail'; + return end(code) } - return nok(code) + return emailValue(code) } + /** @type {State} */ - function completeEnd(code) { - if (code === 62) { + function emailValue(code) { + if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) { effects.consume(code); - return completeAfter + return code === 45 ? emailValue : emailLabel } return nok(code) } + /** @type {State} */ - function completeAfter(code) { - if (markdownSpace_1(code)) { - effects.consume(code); - return completeAfter - } - - return code === null || markdownLineEnding_1(code) - ? continuation(code) - : nok(code) + function end(code) { + effects.enter('autolinkMarker'); + effects.consume(code); + effects.exit('autolinkMarker'); + effects.exit('autolink'); + return ok } +} - function continuation(code) { - if (code === 45 && kind === 2) { - effects.consume(code); - return continuationCommentInside - } - - if (code === 60 && kind === 1) { - effects.consume(code); - return continuationRawTagOpen - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ - if (code === 62 && kind === 4) { - effects.consume(code); - return continuationClose - } +/** @type {Construct} */ +const blankLine = { + tokenize: tokenizeBlankLine, + partial: true +}; +/** @type {Tokenizer} */ - if (code === 63 && kind === 3) { - effects.consume(code); - return continuationDeclarationInside - } +function tokenizeBlankLine(effects, ok, nok) { + return factorySpace(effects, afterWhitespace, 'linePrefix') + /** @type {State} */ - if (code === 93 && kind === 5) { - effects.consume(code); - return continuationCharacterDataInside - } + function afterWhitespace(code) { + return code === null || markdownLineEnding(code) ? ok(code) : nok(code) + } +} - if (markdownLineEnding_1(code) && (kind === 6 || kind === 7)) { - return effects.check( - nextBlankConstruct, - continuationClose, - continuationAtLineEnding - )(code) - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Exiter} Exiter + * @typedef {import('micromark-util-types').State} State + */ - if (code === null || markdownLineEnding_1(code)) { - return continuationAtLineEnding(code) - } +/** @type {Construct} */ +const blockQuote = { + name: 'blockQuote', + tokenize: tokenizeBlockQuoteStart, + continuation: { + tokenize: tokenizeBlockQuoteContinuation + }, + exit: exit$1 +}; +/** @type {Tokenizer} */ - effects.consume(code); - return continuation - } +function tokenizeBlockQuoteStart(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ - function continuationAtLineEnding(code) { - effects.exit('htmlFlowData'); - return htmlContinueStart(code) - } + function start(code) { + if (code === 62) { + const state = self.containerState; - function htmlContinueStart(code) { - if (code === null) { - return done(code) - } + if (!state.open) { + effects.enter('blockQuote', { + _container: true + }); + state.open = true; + } - if (markdownLineEnding_1(code)) { - effects.enter('lineEnding'); + effects.enter('blockQuotePrefix'); + effects.enter('blockQuoteMarker'); effects.consume(code); - effects.exit('lineEnding'); - return htmlContinueStart + effects.exit('blockQuoteMarker'); + return after } - effects.enter('htmlFlowData'); - return continuation(code) + return nok(code) } + /** @type {State} */ - function continuationCommentInside(code) { - if (code === 45) { + function after(code) { + if (markdownSpace(code)) { + effects.enter('blockQuotePrefixWhitespace'); effects.consume(code); - return continuationDeclarationInside + effects.exit('blockQuotePrefixWhitespace'); + effects.exit('blockQuotePrefix'); + return ok } - return continuation(code) + effects.exit('blockQuotePrefix'); + return ok(code) } +} +/** @type {Tokenizer} */ - function continuationRawTagOpen(code) { - if (code === 47) { - effects.consume(code); - buffer = ''; - return continuationRawEndTag - } - - return continuation(code) - } +function tokenizeBlockQuoteContinuation(effects, ok, nok) { + return factorySpace( + effects, + effects.attempt(blockQuote, ok, nok), + 'linePrefix', + this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + ) +} +/** @type {Exiter} */ - function continuationRawEndTag(code) { - if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) { - effects.consume(code); - return continuationClose - } +function exit$1(effects) { + effects.exit('blockQuote'); +} - if (asciiAlpha_1(code) && buffer.length < 8) { - effects.consume(code); - buffer += fromCharCode_1(code); - return continuationRawEndTag - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ - return continuation(code) - } +/** @type {Construct} */ +const characterEscape$1 = { + name: 'characterEscape', + tokenize: tokenizeCharacterEscape +}; +/** @type {Tokenizer} */ - function continuationCharacterDataInside(code) { - if (code === 93) { - effects.consume(code); - return continuationDeclarationInside - } +function tokenizeCharacterEscape(effects, ok, nok) { + return start + /** @type {State} */ - return continuation(code) + function start(code) { + effects.enter('characterEscape'); + effects.enter('escapeMarker'); + effects.consume(code); + effects.exit('escapeMarker'); + return open } + /** @type {State} */ - function continuationDeclarationInside(code) { - if (code === 62) { + function open(code) { + if (asciiPunctuation(code)) { + effects.enter('characterEscapeValue'); effects.consume(code); - return continuationClose + effects.exit('characterEscapeValue'); + effects.exit('characterEscape'); + return ok } - return continuation(code) + return nok(code) } +} - function continuationClose(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('htmlFlowData'); - return done(code) - } +var characterEntities = { + AEli: 'Æ', + AElig: 'Æ', + AM: '&', + AMP: '&', + Aacut: 'Á', + Aacute: 'Á', + Abreve: 'Ă', + Acir: 'Â', + Acirc: 'Â', + Acy: 'А', + Afr: '𝔄', + Agrav: 'À', + Agrave: 'À', + Alpha: 'Α', + Amacr: 'Ā', + And: '⩓', + Aogon: 'Ą', + Aopf: '𝔸', + ApplyFunction: '⁡', + Arin: 'Å', + Aring: 'Å', + Ascr: '𝒜', + Assign: '≔', + Atild: 'Ã', + Atilde: 'Ã', + Aum: 'Ä', + Auml: 'Ä', + Backslash: '∖', + Barv: '⫧', + Barwed: '⌆', + Bcy: 'Б', + Because: '∵', + Bernoullis: 'ℬ', + Beta: 'Β', + Bfr: '𝔅', + Bopf: '𝔹', + Breve: '˘', + Bscr: 'ℬ', + Bumpeq: '≎', + CHcy: 'Ч', + COP: '©', + COPY: '©', + Cacute: 'Ć', + Cap: '⋒', + CapitalDifferentialD: 'ⅅ', + Cayleys: 'ℭ', + Ccaron: 'Č', + Ccedi: 'Ç', + Ccedil: 'Ç', + Ccirc: 'Ĉ', + Cconint: '∰', + Cdot: 'Ċ', + Cedilla: '¸', + CenterDot: '·', + Cfr: 'ℭ', + Chi: 'Χ', + CircleDot: '⊙', + CircleMinus: '⊖', + CirclePlus: '⊕', + CircleTimes: '⊗', + ClockwiseContourIntegral: '∲', + CloseCurlyDoubleQuote: '”', + CloseCurlyQuote: '’', + Colon: '∷', + Colone: '⩴', + Congruent: '≡', + Conint: '∯', + ContourIntegral: '∮', + Copf: 'ℂ', + Coproduct: '∐', + CounterClockwiseContourIntegral: '∳', + Cross: '⨯', + Cscr: '𝒞', + Cup: '⋓', + CupCap: '≍', + DD: 'ⅅ', + DDotrahd: '⤑', + DJcy: 'Ђ', + DScy: 'Ѕ', + DZcy: 'Џ', + Dagger: '‡', + Darr: '↡', + Dashv: '⫤', + Dcaron: 'Ď', + Dcy: 'Д', + Del: '∇', + Delta: 'Δ', + Dfr: '𝔇', + DiacriticalAcute: '´', + DiacriticalDot: '˙', + DiacriticalDoubleAcute: '˝', + DiacriticalGrave: '`', + DiacriticalTilde: '˜', + Diamond: '⋄', + DifferentialD: 'ⅆ', + Dopf: '𝔻', + Dot: '¨', + DotDot: '⃜', + DotEqual: '≐', + DoubleContourIntegral: '∯', + DoubleDot: '¨', + DoubleDownArrow: '⇓', + DoubleLeftArrow: '⇐', + DoubleLeftRightArrow: '⇔', + DoubleLeftTee: '⫤', + DoubleLongLeftArrow: '⟸', + DoubleLongLeftRightArrow: '⟺', + DoubleLongRightArrow: '⟹', + DoubleRightArrow: '⇒', + DoubleRightTee: '⊨', + DoubleUpArrow: '⇑', + DoubleUpDownArrow: '⇕', + DoubleVerticalBar: '∥', + DownArrow: '↓', + DownArrowBar: '⤓', + DownArrowUpArrow: '⇵', + DownBreve: '̑', + DownLeftRightVector: '⥐', + DownLeftTeeVector: '⥞', + DownLeftVector: '↽', + DownLeftVectorBar: '⥖', + DownRightTeeVector: '⥟', + DownRightVector: '⇁', + DownRightVectorBar: '⥗', + DownTee: '⊤', + DownTeeArrow: '↧', + Downarrow: '⇓', + Dscr: '𝒟', + Dstrok: 'Đ', + ENG: 'Ŋ', + ET: 'Ð', + ETH: 'Ð', + Eacut: 'É', + Eacute: 'É', + Ecaron: 'Ě', + Ecir: 'Ê', + Ecirc: 'Ê', + Ecy: 'Э', + Edot: 'Ė', + Efr: '𝔈', + Egrav: 'È', + Egrave: 'È', + Element: '∈', + Emacr: 'Ē', + EmptySmallSquare: '◻', + EmptyVerySmallSquare: '▫', + Eogon: 'Ę', + Eopf: '𝔼', + Epsilon: 'Ε', + Equal: '⩵', + EqualTilde: '≂', + Equilibrium: '⇌', + Escr: 'ℰ', + Esim: '⩳', + Eta: 'Η', + Eum: 'Ë', + Euml: 'Ë', + Exists: '∃', + ExponentialE: 'ⅇ', + Fcy: 'Ф', + Ffr: '𝔉', + FilledSmallSquare: '◼', + FilledVerySmallSquare: '▪', + Fopf: '𝔽', + ForAll: '∀', + Fouriertrf: 'ℱ', + Fscr: 'ℱ', + GJcy: 'Ѓ', + G: '>', + GT: '>', + Gamma: 'Γ', + Gammad: 'Ϝ', + Gbreve: 'Ğ', + Gcedil: 'Ģ', + Gcirc: 'Ĝ', + Gcy: 'Г', + Gdot: 'Ġ', + Gfr: '𝔊', + Gg: '⋙', + Gopf: '𝔾', + GreaterEqual: '≥', + GreaterEqualLess: '⋛', + GreaterFullEqual: '≧', + GreaterGreater: '⪢', + GreaterLess: '≷', + GreaterSlantEqual: '⩾', + GreaterTilde: '≳', + Gscr: '𝒢', + Gt: '≫', + HARDcy: 'Ъ', + Hacek: 'ˇ', + Hat: '^', + Hcirc: 'Ĥ', + Hfr: 'ℌ', + HilbertSpace: 'ℋ', + Hopf: 'ℍ', + HorizontalLine: '─', + Hscr: 'ℋ', + Hstrok: 'Ħ', + HumpDownHump: '≎', + HumpEqual: '≏', + IEcy: 'Е', + IJlig: 'IJ', + IOcy: 'Ё', + Iacut: 'Í', + Iacute: 'Í', + Icir: 'Î', + Icirc: 'Î', + Icy: 'И', + Idot: 'İ', + Ifr: 'ℑ', + Igrav: 'Ì', + Igrave: 'Ì', + Im: 'ℑ', + Imacr: 'Ī', + ImaginaryI: 'ⅈ', + Implies: '⇒', + Int: '∬', + Integral: '∫', + Intersection: '⋂', + InvisibleComma: '⁣', + InvisibleTimes: '⁢', + Iogon: 'Į', + Iopf: '𝕀', + Iota: 'Ι', + Iscr: 'ℐ', + Itilde: 'Ĩ', + Iukcy: 'І', + Ium: 'Ï', + Iuml: 'Ï', + Jcirc: 'Ĵ', + Jcy: 'Й', + Jfr: '𝔍', + Jopf: '𝕁', + Jscr: '𝒥', + Jsercy: 'Ј', + Jukcy: 'Є', + KHcy: 'Х', + KJcy: 'Ќ', + Kappa: 'Κ', + Kcedil: 'Ķ', + Kcy: 'К', + Kfr: '𝔎', + Kopf: '𝕂', + Kscr: '𝒦', + LJcy: 'Љ', + L: '<', + LT: '<', + Lacute: 'Ĺ', + Lambda: 'Λ', + Lang: '⟪', + Laplacetrf: 'ℒ', + Larr: '↞', + Lcaron: 'Ľ', + Lcedil: 'Ļ', + Lcy: 'Л', + LeftAngleBracket: '⟨', + LeftArrow: '←', + LeftArrowBar: '⇤', + LeftArrowRightArrow: '⇆', + LeftCeiling: '⌈', + LeftDoubleBracket: '⟦', + LeftDownTeeVector: '⥡', + LeftDownVector: '⇃', + LeftDownVectorBar: '⥙', + LeftFloor: '⌊', + LeftRightArrow: '↔', + LeftRightVector: '⥎', + LeftTee: '⊣', + LeftTeeArrow: '↤', + LeftTeeVector: '⥚', + LeftTriangle: '⊲', + LeftTriangleBar: '⧏', + LeftTriangleEqual: '⊴', + LeftUpDownVector: '⥑', + LeftUpTeeVector: '⥠', + LeftUpVector: '↿', + LeftUpVectorBar: '⥘', + LeftVector: '↼', + LeftVectorBar: '⥒', + Leftarrow: '⇐', + Leftrightarrow: '⇔', + LessEqualGreater: '⋚', + LessFullEqual: '≦', + LessGreater: '≶', + LessLess: '⪡', + LessSlantEqual: '⩽', + LessTilde: '≲', + Lfr: '𝔏', + Ll: '⋘', + Lleftarrow: '⇚', + Lmidot: 'Ŀ', + LongLeftArrow: '⟵', + LongLeftRightArrow: '⟷', + LongRightArrow: '⟶', + Longleftarrow: '⟸', + Longleftrightarrow: '⟺', + Longrightarrow: '⟹', + Lopf: '𝕃', + LowerLeftArrow: '↙', + LowerRightArrow: '↘', + Lscr: 'ℒ', + Lsh: '↰', + Lstrok: 'Ł', + Lt: '≪', + Map: '⤅', + Mcy: 'М', + MediumSpace: ' ', + Mellintrf: 'ℳ', + Mfr: '𝔐', + MinusPlus: '∓', + Mopf: '𝕄', + Mscr: 'ℳ', + Mu: 'Μ', + NJcy: 'Њ', + Nacute: 'Ń', + Ncaron: 'Ň', + Ncedil: 'Ņ', + Ncy: 'Н', + NegativeMediumSpace: '​', + NegativeThickSpace: '​', + NegativeThinSpace: '​', + NegativeVeryThinSpace: '​', + NestedGreaterGreater: '≫', + NestedLessLess: '≪', + NewLine: '\n', + Nfr: '𝔑', + NoBreak: '⁠', + NonBreakingSpace: ' ', + Nopf: 'ℕ', + Not: '⫬', + NotCongruent: '≢', + NotCupCap: '≭', + NotDoubleVerticalBar: '∦', + NotElement: '∉', + NotEqual: '≠', + NotEqualTilde: '≂̸', + NotExists: '∄', + NotGreater: '≯', + NotGreaterEqual: '≱', + NotGreaterFullEqual: '≧̸', + NotGreaterGreater: '≫̸', + NotGreaterLess: '≹', + NotGreaterSlantEqual: '⩾̸', + NotGreaterTilde: '≵', + NotHumpDownHump: '≎̸', + NotHumpEqual: '≏̸', + NotLeftTriangle: '⋪', + NotLeftTriangleBar: '⧏̸', + NotLeftTriangleEqual: '⋬', + NotLess: '≮', + NotLessEqual: '≰', + NotLessGreater: '≸', + NotLessLess: '≪̸', + NotLessSlantEqual: '⩽̸', + NotLessTilde: '≴', + NotNestedGreaterGreater: '⪢̸', + NotNestedLessLess: '⪡̸', + NotPrecedes: '⊀', + NotPrecedesEqual: '⪯̸', + NotPrecedesSlantEqual: '⋠', + NotReverseElement: '∌', + NotRightTriangle: '⋫', + NotRightTriangleBar: '⧐̸', + NotRightTriangleEqual: '⋭', + NotSquareSubset: '⊏̸', + NotSquareSubsetEqual: '⋢', + NotSquareSuperset: '⊐̸', + NotSquareSupersetEqual: '⋣', + NotSubset: '⊂⃒', + NotSubsetEqual: '⊈', + NotSucceeds: '⊁', + NotSucceedsEqual: '⪰̸', + NotSucceedsSlantEqual: '⋡', + NotSucceedsTilde: '≿̸', + NotSuperset: '⊃⃒', + NotSupersetEqual: '⊉', + NotTilde: '≁', + NotTildeEqual: '≄', + NotTildeFullEqual: '≇', + NotTildeTilde: '≉', + NotVerticalBar: '∤', + Nscr: '𝒩', + Ntild: 'Ñ', + Ntilde: 'Ñ', + Nu: 'Ν', + OElig: 'Œ', + Oacut: 'Ó', + Oacute: 'Ó', + Ocir: 'Ô', + Ocirc: 'Ô', + Ocy: 'О', + Odblac: 'Ő', + Ofr: '𝔒', + Ograv: 'Ò', + Ograve: 'Ò', + Omacr: 'Ō', + Omega: 'Ω', + Omicron: 'Ο', + Oopf: '𝕆', + OpenCurlyDoubleQuote: '“', + OpenCurlyQuote: '‘', + Or: '⩔', + Oscr: '𝒪', + Oslas: 'Ø', + Oslash: 'Ø', + Otild: 'Õ', + Otilde: 'Õ', + Otimes: '⨷', + Oum: 'Ö', + Ouml: 'Ö', + OverBar: '‾', + OverBrace: '⏞', + OverBracket: '⎴', + OverParenthesis: '⏜', + PartialD: '∂', + Pcy: 'П', + Pfr: '𝔓', + Phi: 'Φ', + Pi: 'Π', + PlusMinus: '±', + Poincareplane: 'ℌ', + Popf: 'ℙ', + Pr: '⪻', + Precedes: '≺', + PrecedesEqual: '⪯', + PrecedesSlantEqual: '≼', + PrecedesTilde: '≾', + Prime: '″', + Product: '∏', + Proportion: '∷', + Proportional: '∝', + Pscr: '𝒫', + Psi: 'Ψ', + QUO: '"', + QUOT: '"', + Qfr: '𝔔', + Qopf: 'ℚ', + Qscr: '𝒬', + RBarr: '⤐', + RE: '®', + REG: '®', + Racute: 'Ŕ', + Rang: '⟫', + Rarr: '↠', + Rarrtl: '⤖', + Rcaron: 'Ř', + Rcedil: 'Ŗ', + Rcy: 'Р', + Re: 'ℜ', + ReverseElement: '∋', + ReverseEquilibrium: '⇋', + ReverseUpEquilibrium: '⥯', + Rfr: 'ℜ', + Rho: 'Ρ', + RightAngleBracket: '⟩', + RightArrow: '→', + RightArrowBar: '⇥', + RightArrowLeftArrow: '⇄', + RightCeiling: '⌉', + RightDoubleBracket: '⟧', + RightDownTeeVector: '⥝', + RightDownVector: '⇂', + RightDownVectorBar: '⥕', + RightFloor: '⌋', + RightTee: '⊢', + RightTeeArrow: '↦', + RightTeeVector: '⥛', + RightTriangle: '⊳', + RightTriangleBar: '⧐', + RightTriangleEqual: '⊵', + RightUpDownVector: '⥏', + RightUpTeeVector: '⥜', + RightUpVector: '↾', + RightUpVectorBar: '⥔', + RightVector: '⇀', + RightVectorBar: '⥓', + Rightarrow: '⇒', + Ropf: 'ℝ', + RoundImplies: '⥰', + Rrightarrow: '⇛', + Rscr: 'ℛ', + Rsh: '↱', + RuleDelayed: '⧴', + SHCHcy: 'Щ', + SHcy: 'Ш', + SOFTcy: 'Ь', + Sacute: 'Ś', + Sc: '⪼', + Scaron: 'Š', + Scedil: 'Ş', + Scirc: 'Ŝ', + Scy: 'С', + Sfr: '𝔖', + ShortDownArrow: '↓', + ShortLeftArrow: '←', + ShortRightArrow: '→', + ShortUpArrow: '↑', + Sigma: 'Σ', + SmallCircle: '∘', + Sopf: '𝕊', + Sqrt: '√', + Square: '□', + SquareIntersection: '⊓', + SquareSubset: '⊏', + SquareSubsetEqual: '⊑', + SquareSuperset: '⊐', + SquareSupersetEqual: '⊒', + SquareUnion: '⊔', + Sscr: '𝒮', + Star: '⋆', + Sub: '⋐', + Subset: '⋐', + SubsetEqual: '⊆', + Succeeds: '≻', + SucceedsEqual: '⪰', + SucceedsSlantEqual: '≽', + SucceedsTilde: '≿', + SuchThat: '∋', + Sum: '∑', + Sup: '⋑', + Superset: '⊃', + SupersetEqual: '⊇', + Supset: '⋑', + THOR: 'Þ', + THORN: 'Þ', + TRADE: '™', + TSHcy: 'Ћ', + TScy: 'Ц', + Tab: '\t', + Tau: 'Τ', + Tcaron: 'Ť', + Tcedil: 'Ţ', + Tcy: 'Т', + Tfr: '𝔗', + Therefore: '∴', + Theta: 'Θ', + ThickSpace: '  ', + ThinSpace: ' ', + Tilde: '∼', + TildeEqual: '≃', + TildeFullEqual: '≅', + TildeTilde: '≈', + Topf: '𝕋', + TripleDot: '⃛', + Tscr: '𝒯', + Tstrok: 'Ŧ', + Uacut: 'Ú', + Uacute: 'Ú', + Uarr: '↟', + Uarrocir: '⥉', + Ubrcy: 'Ў', + Ubreve: 'Ŭ', + Ucir: 'Û', + Ucirc: 'Û', + Ucy: 'У', + Udblac: 'Ű', + Ufr: '𝔘', + Ugrav: 'Ù', + Ugrave: 'Ù', + Umacr: 'Ū', + UnderBar: '_', + UnderBrace: '⏟', + UnderBracket: '⎵', + UnderParenthesis: '⏝', + Union: '⋃', + UnionPlus: '⊎', + Uogon: 'Ų', + Uopf: '𝕌', + UpArrow: '↑', + UpArrowBar: '⤒', + UpArrowDownArrow: '⇅', + UpDownArrow: '↕', + UpEquilibrium: '⥮', + UpTee: '⊥', + UpTeeArrow: '↥', + Uparrow: '⇑', + Updownarrow: '⇕', + UpperLeftArrow: '↖', + UpperRightArrow: '↗', + Upsi: 'ϒ', + Upsilon: 'Υ', + Uring: 'Ů', + Uscr: '𝒰', + Utilde: 'Ũ', + Uum: 'Ü', + Uuml: 'Ü', + VDash: '⊫', + Vbar: '⫫', + Vcy: 'В', + Vdash: '⊩', + Vdashl: '⫦', + Vee: '⋁', + Verbar: '‖', + Vert: '‖', + VerticalBar: '∣', + VerticalLine: '|', + VerticalSeparator: '❘', + VerticalTilde: '≀', + VeryThinSpace: ' ', + Vfr: '𝔙', + Vopf: '𝕍', + Vscr: '𝒱', + Vvdash: '⊪', + Wcirc: 'Ŵ', + Wedge: '⋀', + Wfr: '𝔚', + Wopf: '𝕎', + Wscr: '𝒲', + Xfr: '𝔛', + Xi: 'Ξ', + Xopf: '𝕏', + Xscr: '𝒳', + YAcy: 'Я', + YIcy: 'Ї', + YUcy: 'Ю', + Yacut: 'Ý', + Yacute: 'Ý', + Ycirc: 'Ŷ', + Ycy: 'Ы', + Yfr: '𝔜', + Yopf: '𝕐', + Yscr: '𝒴', + Yuml: 'Ÿ', + ZHcy: 'Ж', + Zacute: 'Ź', + Zcaron: 'Ž', + Zcy: 'З', + Zdot: 'Ż', + ZeroWidthSpace: '​', + Zeta: 'Ζ', + Zfr: 'ℨ', + Zopf: 'ℤ', + Zscr: '𝒵', + aacut: 'á', + aacute: 'á', + abreve: 'ă', + ac: '∾', + acE: '∾̳', + acd: '∿', + acir: 'â', + acirc: 'â', + acut: '´', + acute: '´', + acy: 'а', + aeli: 'æ', + aelig: 'æ', + af: '⁡', + afr: '𝔞', + agrav: 'à', + agrave: 'à', + alefsym: 'ℵ', + aleph: 'ℵ', + alpha: 'α', + amacr: 'ā', + amalg: '⨿', + am: '&', + amp: '&', + and: '∧', + andand: '⩕', + andd: '⩜', + andslope: '⩘', + andv: '⩚', + ang: '∠', + ange: '⦤', + angle: '∠', + angmsd: '∡', + angmsdaa: '⦨', + angmsdab: '⦩', + angmsdac: '⦪', + angmsdad: '⦫', + angmsdae: '⦬', + angmsdaf: '⦭', + angmsdag: '⦮', + angmsdah: '⦯', + angrt: '∟', + angrtvb: '⊾', + angrtvbd: '⦝', + angsph: '∢', + angst: 'Å', + angzarr: '⍼', + aogon: 'ą', + aopf: '𝕒', + ap: '≈', + apE: '⩰', + apacir: '⩯', + ape: '≊', + apid: '≋', + apos: "'", + approx: '≈', + approxeq: '≊', + arin: 'å', + aring: 'å', + ascr: '𝒶', + ast: '*', + asymp: '≈', + asympeq: '≍', + atild: 'ã', + atilde: 'ã', + aum: 'ä', + auml: 'ä', + awconint: '∳', + awint: '⨑', + bNot: '⫭', + backcong: '≌', + backepsilon: '϶', + backprime: '‵', + backsim: '∽', + backsimeq: '⋍', + barvee: '⊽', + barwed: '⌅', + barwedge: '⌅', + bbrk: '⎵', + bbrktbrk: '⎶', + bcong: '≌', + bcy: 'б', + bdquo: '„', + becaus: '∵', + because: '∵', + bemptyv: '⦰', + bepsi: '϶', + bernou: 'ℬ', + beta: 'β', + beth: 'ℶ', + between: '≬', + bfr: '𝔟', + bigcap: '⋂', + bigcirc: '◯', + bigcup: '⋃', + bigodot: '⨀', + bigoplus: '⨁', + bigotimes: '⨂', + bigsqcup: '⨆', + bigstar: '★', + bigtriangledown: '▽', + bigtriangleup: '△', + biguplus: '⨄', + bigvee: '⋁', + bigwedge: '⋀', + bkarow: '⤍', + blacklozenge: '⧫', + blacksquare: '▪', + blacktriangle: '▴', + blacktriangledown: '▾', + blacktriangleleft: '◂', + blacktriangleright: '▸', + blank: '␣', + blk12: '▒', + blk14: '░', + blk34: '▓', + block: '█', + bne: '=⃥', + bnequiv: '≡⃥', + bnot: '⌐', + bopf: '𝕓', + bot: '⊥', + bottom: '⊥', + bowtie: '⋈', + boxDL: '╗', + boxDR: '╔', + boxDl: '╖', + boxDr: '╓', + boxH: '═', + boxHD: '╦', + boxHU: '╩', + boxHd: '╤', + boxHu: '╧', + boxUL: '╝', + boxUR: '╚', + boxUl: '╜', + boxUr: '╙', + boxV: '║', + boxVH: '╬', + boxVL: '╣', + boxVR: '╠', + boxVh: '╫', + boxVl: '╢', + boxVr: '╟', + boxbox: '⧉', + boxdL: '╕', + boxdR: '╒', + boxdl: '┐', + boxdr: '┌', + boxh: '─', + boxhD: '╥', + boxhU: '╨', + boxhd: '┬', + boxhu: '┴', + boxminus: '⊟', + boxplus: '⊞', + boxtimes: '⊠', + boxuL: '╛', + boxuR: '╘', + boxul: '┘', + boxur: '└', + boxv: '│', + boxvH: '╪', + boxvL: '╡', + boxvR: '╞', + boxvh: '┼', + boxvl: '┤', + boxvr: '├', + bprime: '‵', + breve: '˘', + brvba: '¦', + brvbar: '¦', + bscr: '𝒷', + bsemi: '⁏', + bsim: '∽', + bsime: '⋍', + bsol: '\\', + bsolb: '⧅', + bsolhsub: '⟈', + bull: '•', + bullet: '•', + bump: '≎', + bumpE: '⪮', + bumpe: '≏', + bumpeq: '≏', + cacute: 'ć', + cap: '∩', + capand: '⩄', + capbrcup: '⩉', + capcap: '⩋', + capcup: '⩇', + capdot: '⩀', + caps: '∩︀', + caret: '⁁', + caron: 'ˇ', + ccaps: '⩍', + ccaron: 'č', + ccedi: 'ç', + ccedil: 'ç', + ccirc: 'ĉ', + ccups: '⩌', + ccupssm: '⩐', + cdot: 'ċ', + cedi: '¸', + cedil: '¸', + cemptyv: '⦲', + cen: '¢', + cent: '¢', + centerdot: '·', + cfr: '𝔠', + chcy: 'ч', + check: '✓', + checkmark: '✓', + chi: 'χ', + cir: '○', + cirE: '⧃', + circ: 'ˆ', + circeq: '≗', + circlearrowleft: '↺', + circlearrowright: '↻', + circledR: '®', + circledS: 'Ⓢ', + circledast: '⊛', + circledcirc: '⊚', + circleddash: '⊝', + cire: '≗', + cirfnint: '⨐', + cirmid: '⫯', + cirscir: '⧂', + clubs: '♣', + clubsuit: '♣', + colon: ':', + colone: '≔', + coloneq: '≔', + comma: ',', + commat: '@', + comp: '∁', + compfn: '∘', + complement: '∁', + complexes: 'ℂ', + cong: '≅', + congdot: '⩭', + conint: '∮', + copf: '𝕔', + coprod: '∐', + cop: '©', + copy: '©', + copysr: '℗', + crarr: '↵', + cross: '✗', + cscr: '𝒸', + csub: '⫏', + csube: '⫑', + csup: '⫐', + csupe: '⫒', + ctdot: '⋯', + cudarrl: '⤸', + cudarrr: '⤵', + cuepr: '⋞', + cuesc: '⋟', + cularr: '↶', + cularrp: '⤽', + cup: '∪', + cupbrcap: '⩈', + cupcap: '⩆', + cupcup: '⩊', + cupdot: '⊍', + cupor: '⩅', + cups: '∪︀', + curarr: '↷', + curarrm: '⤼', + curlyeqprec: '⋞', + curlyeqsucc: '⋟', + curlyvee: '⋎', + curlywedge: '⋏', + curre: '¤', + curren: '¤', + curvearrowleft: '↶', + curvearrowright: '↷', + cuvee: '⋎', + cuwed: '⋏', + cwconint: '∲', + cwint: '∱', + cylcty: '⌭', + dArr: '⇓', + dHar: '⥥', + dagger: '†', + daleth: 'ℸ', + darr: '↓', + dash: '‐', + dashv: '⊣', + dbkarow: '⤏', + dblac: '˝', + dcaron: 'ď', + dcy: 'д', + dd: 'ⅆ', + ddagger: '‡', + ddarr: '⇊', + ddotseq: '⩷', + de: '°', + deg: '°', + delta: 'δ', + demptyv: '⦱', + dfisht: '⥿', + dfr: '𝔡', + dharl: '⇃', + dharr: '⇂', + diam: '⋄', + diamond: '⋄', + diamondsuit: '♦', + diams: '♦', + die: '¨', + digamma: 'ϝ', + disin: '⋲', + div: '÷', + divid: '÷', + divide: '÷', + divideontimes: '⋇', + divonx: '⋇', + djcy: 'ђ', + dlcorn: '⌞', + dlcrop: '⌍', + dollar: '$', + dopf: '𝕕', + dot: '˙', + doteq: '≐', + doteqdot: '≑', + dotminus: '∸', + dotplus: '∔', + dotsquare: '⊡', + doublebarwedge: '⌆', + downarrow: '↓', + downdownarrows: '⇊', + downharpoonleft: '⇃', + downharpoonright: '⇂', + drbkarow: '⤐', + drcorn: '⌟', + drcrop: '⌌', + dscr: '𝒹', + dscy: 'ѕ', + dsol: '⧶', + dstrok: 'đ', + dtdot: '⋱', + dtri: '▿', + dtrif: '▾', + duarr: '⇵', + duhar: '⥯', + dwangle: '⦦', + dzcy: 'џ', + dzigrarr: '⟿', + eDDot: '⩷', + eDot: '≑', + eacut: 'é', + eacute: 'é', + easter: '⩮', + ecaron: 'ě', + ecir: 'ê', + ecirc: 'ê', + ecolon: '≕', + ecy: 'э', + edot: 'ė', + ee: 'ⅇ', + efDot: '≒', + efr: '𝔢', + eg: '⪚', + egrav: 'è', + egrave: 'è', + egs: '⪖', + egsdot: '⪘', + el: '⪙', + elinters: '⏧', + ell: 'ℓ', + els: '⪕', + elsdot: '⪗', + emacr: 'ē', + empty: '∅', + emptyset: '∅', + emptyv: '∅', + emsp13: ' ', + emsp14: ' ', + emsp: ' ', + eng: 'ŋ', + ensp: ' ', + eogon: 'ę', + eopf: '𝕖', + epar: '⋕', + eparsl: '⧣', + eplus: '⩱', + epsi: 'ε', + epsilon: 'ε', + epsiv: 'ϵ', + eqcirc: '≖', + eqcolon: '≕', + eqsim: '≂', + eqslantgtr: '⪖', + eqslantless: '⪕', + equals: '=', + equest: '≟', + equiv: '≡', + equivDD: '⩸', + eqvparsl: '⧥', + erDot: '≓', + erarr: '⥱', + escr: 'ℯ', + esdot: '≐', + esim: '≂', + eta: 'η', + et: 'ð', + eth: 'ð', + eum: 'ë', + euml: 'ë', + euro: '€', + excl: '!', + exist: '∃', + expectation: 'ℰ', + exponentiale: 'ⅇ', + fallingdotseq: '≒', + fcy: 'ф', + female: '♀', + ffilig: 'ffi', + fflig: 'ff', + ffllig: 'ffl', + ffr: '𝔣', + filig: 'fi', + fjlig: 'fj', + flat: '♭', + fllig: 'fl', + fltns: '▱', + fnof: 'ƒ', + fopf: '𝕗', + forall: '∀', + fork: '⋔', + forkv: '⫙', + fpartint: '⨍', + frac1: '¼', + frac12: '½', + frac13: '⅓', + frac14: '¼', + frac15: '⅕', + frac16: '⅙', + frac18: '⅛', + frac23: '⅔', + frac25: '⅖', + frac3: '¾', + frac34: '¾', + frac35: '⅗', + frac38: '⅜', + frac45: '⅘', + frac56: '⅚', + frac58: '⅝', + frac78: '⅞', + frasl: '⁄', + frown: '⌢', + fscr: '𝒻', + gE: '≧', + gEl: '⪌', + gacute: 'ǵ', + gamma: 'γ', + gammad: 'ϝ', + gap: '⪆', + gbreve: 'ğ', + gcirc: 'ĝ', + gcy: 'г', + gdot: 'ġ', + ge: '≥', + gel: '⋛', + geq: '≥', + geqq: '≧', + geqslant: '⩾', + ges: '⩾', + gescc: '⪩', + gesdot: '⪀', + gesdoto: '⪂', + gesdotol: '⪄', + gesl: '⋛︀', + gesles: '⪔', + gfr: '𝔤', + gg: '≫', + ggg: '⋙', + gimel: 'ℷ', + gjcy: 'ѓ', + gl: '≷', + glE: '⪒', + gla: '⪥', + glj: '⪤', + gnE: '≩', + gnap: '⪊', + gnapprox: '⪊', + gne: '⪈', + gneq: '⪈', + gneqq: '≩', + gnsim: '⋧', + gopf: '𝕘', + grave: '`', + gscr: 'ℊ', + gsim: '≳', + gsime: '⪎', + gsiml: '⪐', + g: '>', + gt: '>', + gtcc: '⪧', + gtcir: '⩺', + gtdot: '⋗', + gtlPar: '⦕', + gtquest: '⩼', + gtrapprox: '⪆', + gtrarr: '⥸', + gtrdot: '⋗', + gtreqless: '⋛', + gtreqqless: '⪌', + gtrless: '≷', + gtrsim: '≳', + gvertneqq: '≩︀', + gvnE: '≩︀', + hArr: '⇔', + hairsp: ' ', + half: '½', + hamilt: 'ℋ', + hardcy: 'ъ', + harr: '↔', + harrcir: '⥈', + harrw: '↭', + hbar: 'ℏ', + hcirc: 'ĥ', + hearts: '♥', + heartsuit: '♥', + hellip: '…', + hercon: '⊹', + hfr: '𝔥', + hksearow: '⤥', + hkswarow: '⤦', + hoarr: '⇿', + homtht: '∻', + hookleftarrow: '↩', + hookrightarrow: '↪', + hopf: '𝕙', + horbar: '―', + hscr: '𝒽', + hslash: 'ℏ', + hstrok: 'ħ', + hybull: '⁃', + hyphen: '‐', + iacut: 'í', + iacute: 'í', + ic: '⁣', + icir: 'î', + icirc: 'î', + icy: 'и', + iecy: 'е', + iexc: '¡', + iexcl: '¡', + iff: '⇔', + ifr: '𝔦', + igrav: 'ì', + igrave: 'ì', + ii: 'ⅈ', + iiiint: '⨌', + iiint: '∭', + iinfin: '⧜', + iiota: '℩', + ijlig: 'ij', + imacr: 'ī', + image: 'ℑ', + imagline: 'ℐ', + imagpart: 'ℑ', + imath: 'ı', + imof: '⊷', + imped: 'Ƶ', + in: '∈', + incare: '℅', + infin: '∞', + infintie: '⧝', + inodot: 'ı', + int: '∫', + intcal: '⊺', + integers: 'ℤ', + intercal: '⊺', + intlarhk: '⨗', + intprod: '⨼', + iocy: 'ё', + iogon: 'į', + iopf: '𝕚', + iota: 'ι', + iprod: '⨼', + iques: '¿', + iquest: '¿', + iscr: '𝒾', + isin: '∈', + isinE: '⋹', + isindot: '⋵', + isins: '⋴', + isinsv: '⋳', + isinv: '∈', + it: '⁢', + itilde: 'ĩ', + iukcy: 'і', + ium: 'ï', + iuml: 'ï', + jcirc: 'ĵ', + jcy: 'й', + jfr: '𝔧', + jmath: 'ȷ', + jopf: '𝕛', + jscr: '𝒿', + jsercy: 'ј', + jukcy: 'є', + kappa: 'κ', + kappav: 'ϰ', + kcedil: 'ķ', + kcy: 'к', + kfr: '𝔨', + kgreen: 'ĸ', + khcy: 'х', + kjcy: 'ќ', + kopf: '𝕜', + kscr: '𝓀', + lAarr: '⇚', + lArr: '⇐', + lAtail: '⤛', + lBarr: '⤎', + lE: '≦', + lEg: '⪋', + lHar: '⥢', + lacute: 'ĺ', + laemptyv: '⦴', + lagran: 'ℒ', + lambda: 'λ', + lang: '⟨', + langd: '⦑', + langle: '⟨', + lap: '⪅', + laqu: '«', + laquo: '«', + larr: '←', + larrb: '⇤', + larrbfs: '⤟', + larrfs: '⤝', + larrhk: '↩', + larrlp: '↫', + larrpl: '⤹', + larrsim: '⥳', + larrtl: '↢', + lat: '⪫', + latail: '⤙', + late: '⪭', + lates: '⪭︀', + lbarr: '⤌', + lbbrk: '❲', + lbrace: '{', + lbrack: '[', + lbrke: '⦋', + lbrksld: '⦏', + lbrkslu: '⦍', + lcaron: 'ľ', + lcedil: 'ļ', + lceil: '⌈', + lcub: '{', + lcy: 'л', + ldca: '⤶', + ldquo: '“', + ldquor: '„', + ldrdhar: '⥧', + ldrushar: '⥋', + ldsh: '↲', + le: '≤', + leftarrow: '←', + leftarrowtail: '↢', + leftharpoondown: '↽', + leftharpoonup: '↼', + leftleftarrows: '⇇', + leftrightarrow: '↔', + leftrightarrows: '⇆', + leftrightharpoons: '⇋', + leftrightsquigarrow: '↭', + leftthreetimes: '⋋', + leg: '⋚', + leq: '≤', + leqq: '≦', + leqslant: '⩽', + les: '⩽', + lescc: '⪨', + lesdot: '⩿', + lesdoto: '⪁', + lesdotor: '⪃', + lesg: '⋚︀', + lesges: '⪓', + lessapprox: '⪅', + lessdot: '⋖', + lesseqgtr: '⋚', + lesseqqgtr: '⪋', + lessgtr: '≶', + lesssim: '≲', + lfisht: '⥼', + lfloor: '⌊', + lfr: '𝔩', + lg: '≶', + lgE: '⪑', + lhard: '↽', + lharu: '↼', + lharul: '⥪', + lhblk: '▄', + ljcy: 'љ', + ll: '≪', + llarr: '⇇', + llcorner: '⌞', + llhard: '⥫', + lltri: '◺', + lmidot: 'ŀ', + lmoust: '⎰', + lmoustache: '⎰', + lnE: '≨', + lnap: '⪉', + lnapprox: '⪉', + lne: '⪇', + lneq: '⪇', + lneqq: '≨', + lnsim: '⋦', + loang: '⟬', + loarr: '⇽', + lobrk: '⟦', + longleftarrow: '⟵', + longleftrightarrow: '⟷', + longmapsto: '⟼', + longrightarrow: '⟶', + looparrowleft: '↫', + looparrowright: '↬', + lopar: '⦅', + lopf: '𝕝', + loplus: '⨭', + lotimes: '⨴', + lowast: '∗', + lowbar: '_', + loz: '◊', + lozenge: '◊', + lozf: '⧫', + lpar: '(', + lparlt: '⦓', + lrarr: '⇆', + lrcorner: '⌟', + lrhar: '⇋', + lrhard: '⥭', + lrm: '‎', + lrtri: '⊿', + lsaquo: '‹', + lscr: '𝓁', + lsh: '↰', + lsim: '≲', + lsime: '⪍', + lsimg: '⪏', + lsqb: '[', + lsquo: '‘', + lsquor: '‚', + lstrok: 'ł', + l: '<', + lt: '<', + ltcc: '⪦', + ltcir: '⩹', + ltdot: '⋖', + lthree: '⋋', + ltimes: '⋉', + ltlarr: '⥶', + ltquest: '⩻', + ltrPar: '⦖', + ltri: '◃', + ltrie: '⊴', + ltrif: '◂', + lurdshar: '⥊', + luruhar: '⥦', + lvertneqq: '≨︀', + lvnE: '≨︀', + mDDot: '∺', + mac: '¯', + macr: '¯', + male: '♂', + malt: '✠', + maltese: '✠', + map: '↦', + mapsto: '↦', + mapstodown: '↧', + mapstoleft: '↤', + mapstoup: '↥', + marker: '▮', + mcomma: '⨩', + mcy: 'м', + mdash: '—', + measuredangle: '∡', + mfr: '𝔪', + mho: '℧', + micr: 'µ', + micro: 'µ', + mid: '∣', + midast: '*', + midcir: '⫰', + middo: '·', + middot: '·', + minus: '−', + minusb: '⊟', + minusd: '∸', + minusdu: '⨪', + mlcp: '⫛', + mldr: '…', + mnplus: '∓', + models: '⊧', + mopf: '𝕞', + mp: '∓', + mscr: '𝓂', + mstpos: '∾', + mu: 'μ', + multimap: '⊸', + mumap: '⊸', + nGg: '⋙̸', + nGt: '≫⃒', + nGtv: '≫̸', + nLeftarrow: '⇍', + nLeftrightarrow: '⇎', + nLl: '⋘̸', + nLt: '≪⃒', + nLtv: '≪̸', + nRightarrow: '⇏', + nVDash: '⊯', + nVdash: '⊮', + nabla: '∇', + nacute: 'ń', + nang: '∠⃒', + nap: '≉', + napE: '⩰̸', + napid: '≋̸', + napos: 'ʼn', + napprox: '≉', + natur: '♮', + natural: '♮', + naturals: 'ℕ', + nbs: ' ', + nbsp: ' ', + nbump: '≎̸', + nbumpe: '≏̸', + ncap: '⩃', + ncaron: 'ň', + ncedil: 'ņ', + ncong: '≇', + ncongdot: '⩭̸', + ncup: '⩂', + ncy: 'н', + ndash: '–', + ne: '≠', + neArr: '⇗', + nearhk: '⤤', + nearr: '↗', + nearrow: '↗', + nedot: '≐̸', + nequiv: '≢', + nesear: '⤨', + nesim: '≂̸', + nexist: '∄', + nexists: '∄', + nfr: '𝔫', + ngE: '≧̸', + nge: '≱', + ngeq: '≱', + ngeqq: '≧̸', + ngeqslant: '⩾̸', + nges: '⩾̸', + ngsim: '≵', + ngt: '≯', + ngtr: '≯', + nhArr: '⇎', + nharr: '↮', + nhpar: '⫲', + ni: '∋', + nis: '⋼', + nisd: '⋺', + niv: '∋', + njcy: 'њ', + nlArr: '⇍', + nlE: '≦̸', + nlarr: '↚', + nldr: '‥', + nle: '≰', + nleftarrow: '↚', + nleftrightarrow: '↮', + nleq: '≰', + nleqq: '≦̸', + nleqslant: '⩽̸', + nles: '⩽̸', + nless: '≮', + nlsim: '≴', + nlt: '≮', + nltri: '⋪', + nltrie: '⋬', + nmid: '∤', + nopf: '𝕟', + no: '¬', + not: '¬', + notin: '∉', + notinE: '⋹̸', + notindot: '⋵̸', + notinva: '∉', + notinvb: '⋷', + notinvc: '⋶', + notni: '∌', + notniva: '∌', + notnivb: '⋾', + notnivc: '⋽', + npar: '∦', + nparallel: '∦', + nparsl: '⫽⃥', + npart: '∂̸', + npolint: '⨔', + npr: '⊀', + nprcue: '⋠', + npre: '⪯̸', + nprec: '⊀', + npreceq: '⪯̸', + nrArr: '⇏', + nrarr: '↛', + nrarrc: '⤳̸', + nrarrw: '↝̸', + nrightarrow: '↛', + nrtri: '⋫', + nrtrie: '⋭', + nsc: '⊁', + nsccue: '⋡', + nsce: '⪰̸', + nscr: '𝓃', + nshortmid: '∤', + nshortparallel: '∦', + nsim: '≁', + nsime: '≄', + nsimeq: '≄', + nsmid: '∤', + nspar: '∦', + nsqsube: '⋢', + nsqsupe: '⋣', + nsub: '⊄', + nsubE: '⫅̸', + nsube: '⊈', + nsubset: '⊂⃒', + nsubseteq: '⊈', + nsubseteqq: '⫅̸', + nsucc: '⊁', + nsucceq: '⪰̸', + nsup: '⊅', + nsupE: '⫆̸', + nsupe: '⊉', + nsupset: '⊃⃒', + nsupseteq: '⊉', + nsupseteqq: '⫆̸', + ntgl: '≹', + ntild: 'ñ', + ntilde: 'ñ', + ntlg: '≸', + ntriangleleft: '⋪', + ntrianglelefteq: '⋬', + ntriangleright: '⋫', + ntrianglerighteq: '⋭', + nu: 'ν', + num: '#', + numero: '№', + numsp: ' ', + nvDash: '⊭', + nvHarr: '⤄', + nvap: '≍⃒', + nvdash: '⊬', + nvge: '≥⃒', + nvgt: '>⃒', + nvinfin: '⧞', + nvlArr: '⤂', + nvle: '≤⃒', + nvlt: '<⃒', + nvltrie: '⊴⃒', + nvrArr: '⤃', + nvrtrie: '⊵⃒', + nvsim: '∼⃒', + nwArr: '⇖', + nwarhk: '⤣', + nwarr: '↖', + nwarrow: '↖', + nwnear: '⤧', + oS: 'Ⓢ', + oacut: 'ó', + oacute: 'ó', + oast: '⊛', + ocir: 'ô', + ocirc: 'ô', + ocy: 'о', + odash: '⊝', + odblac: 'ő', + odiv: '⨸', + odot: '⊙', + odsold: '⦼', + oelig: 'œ', + ofcir: '⦿', + ofr: '𝔬', + ogon: '˛', + ograv: 'ò', + ograve: 'ò', + ogt: '⧁', + ohbar: '⦵', + ohm: 'Ω', + oint: '∮', + olarr: '↺', + olcir: '⦾', + olcross: '⦻', + oline: '‾', + olt: '⧀', + omacr: 'ō', + omega: 'ω', + omicron: 'ο', + omid: '⦶', + ominus: '⊖', + oopf: '𝕠', + opar: '⦷', + operp: '⦹', + oplus: '⊕', + or: '∨', + orarr: '↻', + ord: 'º', + order: 'ℴ', + orderof: 'ℴ', + ordf: 'ª', + ordm: 'º', + origof: '⊶', + oror: '⩖', + orslope: '⩗', + orv: '⩛', + oscr: 'ℴ', + oslas: 'ø', + oslash: 'ø', + osol: '⊘', + otild: 'õ', + otilde: 'õ', + otimes: '⊗', + otimesas: '⨶', + oum: 'ö', + ouml: 'ö', + ovbar: '⌽', + par: '¶', + para: '¶', + parallel: '∥', + parsim: '⫳', + parsl: '⫽', + part: '∂', + pcy: 'п', + percnt: '%', + period: '.', + permil: '‰', + perp: '⊥', + pertenk: '‱', + pfr: '𝔭', + phi: 'φ', + phiv: 'ϕ', + phmmat: 'ℳ', + phone: '☎', + pi: 'π', + pitchfork: '⋔', + piv: 'ϖ', + planck: 'ℏ', + planckh: 'ℎ', + plankv: 'ℏ', + plus: '+', + plusacir: '⨣', + plusb: '⊞', + pluscir: '⨢', + plusdo: '∔', + plusdu: '⨥', + pluse: '⩲', + plusm: '±', + plusmn: '±', + plussim: '⨦', + plustwo: '⨧', + pm: '±', + pointint: '⨕', + popf: '𝕡', + poun: '£', + pound: '£', + pr: '≺', + prE: '⪳', + prap: '⪷', + prcue: '≼', + pre: '⪯', + prec: '≺', + precapprox: '⪷', + preccurlyeq: '≼', + preceq: '⪯', + precnapprox: '⪹', + precneqq: '⪵', + precnsim: '⋨', + precsim: '≾', + prime: '′', + primes: 'ℙ', + prnE: '⪵', + prnap: '⪹', + prnsim: '⋨', + prod: '∏', + profalar: '⌮', + profline: '⌒', + profsurf: '⌓', + prop: '∝', + propto: '∝', + prsim: '≾', + prurel: '⊰', + pscr: '𝓅', + psi: 'ψ', + puncsp: ' ', + qfr: '𝔮', + qint: '⨌', + qopf: '𝕢', + qprime: '⁗', + qscr: '𝓆', + quaternions: 'ℍ', + quatint: '⨖', + quest: '?', + questeq: '≟', + quo: '"', + quot: '"', + rAarr: '⇛', + rArr: '⇒', + rAtail: '⤜', + rBarr: '⤏', + rHar: '⥤', + race: '∽̱', + racute: 'ŕ', + radic: '√', + raemptyv: '⦳', + rang: '⟩', + rangd: '⦒', + range: '⦥', + rangle: '⟩', + raqu: '»', + raquo: '»', + rarr: '→', + rarrap: '⥵', + rarrb: '⇥', + rarrbfs: '⤠', + rarrc: '⤳', + rarrfs: '⤞', + rarrhk: '↪', + rarrlp: '↬', + rarrpl: '⥅', + rarrsim: '⥴', + rarrtl: '↣', + rarrw: '↝', + ratail: '⤚', + ratio: '∶', + rationals: 'ℚ', + rbarr: '⤍', + rbbrk: '❳', + rbrace: '}', + rbrack: ']', + rbrke: '⦌', + rbrksld: '⦎', + rbrkslu: '⦐', + rcaron: 'ř', + rcedil: 'ŗ', + rceil: '⌉', + rcub: '}', + rcy: 'р', + rdca: '⤷', + rdldhar: '⥩', + rdquo: '”', + rdquor: '”', + rdsh: '↳', + real: 'ℜ', + realine: 'ℛ', + realpart: 'ℜ', + reals: 'ℝ', + rect: '▭', + re: '®', + reg: '®', + rfisht: '⥽', + rfloor: '⌋', + rfr: '𝔯', + rhard: '⇁', + rharu: '⇀', + rharul: '⥬', + rho: 'ρ', + rhov: 'ϱ', + rightarrow: '→', + rightarrowtail: '↣', + rightharpoondown: '⇁', + rightharpoonup: '⇀', + rightleftarrows: '⇄', + rightleftharpoons: '⇌', + rightrightarrows: '⇉', + rightsquigarrow: '↝', + rightthreetimes: '⋌', + ring: '˚', + risingdotseq: '≓', + rlarr: '⇄', + rlhar: '⇌', + rlm: '‏', + rmoust: '⎱', + rmoustache: '⎱', + rnmid: '⫮', + roang: '⟭', + roarr: '⇾', + robrk: '⟧', + ropar: '⦆', + ropf: '𝕣', + roplus: '⨮', + rotimes: '⨵', + rpar: ')', + rpargt: '⦔', + rppolint: '⨒', + rrarr: '⇉', + rsaquo: '›', + rscr: '𝓇', + rsh: '↱', + rsqb: ']', + rsquo: '’', + rsquor: '’', + rthree: '⋌', + rtimes: '⋊', + rtri: '▹', + rtrie: '⊵', + rtrif: '▸', + rtriltri: '⧎', + ruluhar: '⥨', + rx: '℞', + sacute: 'ś', + sbquo: '‚', + sc: '≻', + scE: '⪴', + scap: '⪸', + scaron: 'š', + sccue: '≽', + sce: '⪰', + scedil: 'ş', + scirc: 'ŝ', + scnE: '⪶', + scnap: '⪺', + scnsim: '⋩', + scpolint: '⨓', + scsim: '≿', + scy: 'с', + sdot: '⋅', + sdotb: '⊡', + sdote: '⩦', + seArr: '⇘', + searhk: '⤥', + searr: '↘', + searrow: '↘', + sec: '§', + sect: '§', + semi: ';', + seswar: '⤩', + setminus: '∖', + setmn: '∖', + sext: '✶', + sfr: '𝔰', + sfrown: '⌢', + sharp: '♯', + shchcy: 'щ', + shcy: 'ш', + shortmid: '∣', + shortparallel: '∥', + sh: '­', + shy: '­', + sigma: 'σ', + sigmaf: 'ς', + sigmav: 'ς', + sim: '∼', + simdot: '⩪', + sime: '≃', + simeq: '≃', + simg: '⪞', + simgE: '⪠', + siml: '⪝', + simlE: '⪟', + simne: '≆', + simplus: '⨤', + simrarr: '⥲', + slarr: '←', + smallsetminus: '∖', + smashp: '⨳', + smeparsl: '⧤', + smid: '∣', + smile: '⌣', + smt: '⪪', + smte: '⪬', + smtes: '⪬︀', + softcy: 'ь', + sol: '/', + solb: '⧄', + solbar: '⌿', + sopf: '𝕤', + spades: '♠', + spadesuit: '♠', + spar: '∥', + sqcap: '⊓', + sqcaps: '⊓︀', + sqcup: '⊔', + sqcups: '⊔︀', + sqsub: '⊏', + sqsube: '⊑', + sqsubset: '⊏', + sqsubseteq: '⊑', + sqsup: '⊐', + sqsupe: '⊒', + sqsupset: '⊐', + sqsupseteq: '⊒', + squ: '□', + square: '□', + squarf: '▪', + squf: '▪', + srarr: '→', + sscr: '𝓈', + ssetmn: '∖', + ssmile: '⌣', + sstarf: '⋆', + star: '☆', + starf: '★', + straightepsilon: 'ϵ', + straightphi: 'ϕ', + strns: '¯', + sub: '⊂', + subE: '⫅', + subdot: '⪽', + sube: '⊆', + subedot: '⫃', + submult: '⫁', + subnE: '⫋', + subne: '⊊', + subplus: '⪿', + subrarr: '⥹', + subset: '⊂', + subseteq: '⊆', + subseteqq: '⫅', + subsetneq: '⊊', + subsetneqq: '⫋', + subsim: '⫇', + subsub: '⫕', + subsup: '⫓', + succ: '≻', + succapprox: '⪸', + succcurlyeq: '≽', + succeq: '⪰', + succnapprox: '⪺', + succneqq: '⪶', + succnsim: '⋩', + succsim: '≿', + sum: '∑', + sung: '♪', + sup: '⊃', + sup1: '¹', + sup2: '²', + sup3: '³', + supE: '⫆', + supdot: '⪾', + supdsub: '⫘', + supe: '⊇', + supedot: '⫄', + suphsol: '⟉', + suphsub: '⫗', + suplarr: '⥻', + supmult: '⫂', + supnE: '⫌', + supne: '⊋', + supplus: '⫀', + supset: '⊃', + supseteq: '⊇', + supseteqq: '⫆', + supsetneq: '⊋', + supsetneqq: '⫌', + supsim: '⫈', + supsub: '⫔', + supsup: '⫖', + swArr: '⇙', + swarhk: '⤦', + swarr: '↙', + swarrow: '↙', + swnwar: '⤪', + szli: 'ß', + szlig: 'ß', + target: '⌖', + tau: 'τ', + tbrk: '⎴', + tcaron: 'ť', + tcedil: 'ţ', + tcy: 'т', + tdot: '⃛', + telrec: '⌕', + tfr: '𝔱', + there4: '∴', + therefore: '∴', + theta: 'θ', + thetasym: 'ϑ', + thetav: 'ϑ', + thickapprox: '≈', + thicksim: '∼', + thinsp: ' ', + thkap: '≈', + thksim: '∼', + thor: 'þ', + thorn: 'þ', + tilde: '˜', + time: '×', + times: '×', + timesb: '⊠', + timesbar: '⨱', + timesd: '⨰', + tint: '∭', + toea: '⤨', + top: '⊤', + topbot: '⌶', + topcir: '⫱', + topf: '𝕥', + topfork: '⫚', + tosa: '⤩', + tprime: '‴', + trade: '™', + triangle: '▵', + triangledown: '▿', + triangleleft: '◃', + trianglelefteq: '⊴', + triangleq: '≜', + triangleright: '▹', + trianglerighteq: '⊵', + tridot: '◬', + trie: '≜', + triminus: '⨺', + triplus: '⨹', + trisb: '⧍', + tritime: '⨻', + trpezium: '⏢', + tscr: '𝓉', + tscy: 'ц', + tshcy: 'ћ', + tstrok: 'ŧ', + twixt: '≬', + twoheadleftarrow: '↞', + twoheadrightarrow: '↠', + uArr: '⇑', + uHar: '⥣', + uacut: 'ú', + uacute: 'ú', + uarr: '↑', + ubrcy: 'ў', + ubreve: 'ŭ', + ucir: 'û', + ucirc: 'û', + ucy: 'у', + udarr: '⇅', + udblac: 'ű', + udhar: '⥮', + ufisht: '⥾', + ufr: '𝔲', + ugrav: 'ù', + ugrave: 'ù', + uharl: '↿', + uharr: '↾', + uhblk: '▀', + ulcorn: '⌜', + ulcorner: '⌜', + ulcrop: '⌏', + ultri: '◸', + umacr: 'ū', + um: '¨', + uml: '¨', + uogon: 'ų', + uopf: '𝕦', + uparrow: '↑', + updownarrow: '↕', + upharpoonleft: '↿', + upharpoonright: '↾', + uplus: '⊎', + upsi: 'υ', + upsih: 'ϒ', + upsilon: 'υ', + upuparrows: '⇈', + urcorn: '⌝', + urcorner: '⌝', + urcrop: '⌎', + uring: 'ů', + urtri: '◹', + uscr: '𝓊', + utdot: '⋰', + utilde: 'ũ', + utri: '▵', + utrif: '▴', + uuarr: '⇈', + uum: 'ü', + uuml: 'ü', + uwangle: '⦧', + vArr: '⇕', + vBar: '⫨', + vBarv: '⫩', + vDash: '⊨', + vangrt: '⦜', + varepsilon: 'ϵ', + varkappa: 'ϰ', + varnothing: '∅', + varphi: 'ϕ', + varpi: 'ϖ', + varpropto: '∝', + varr: '↕', + varrho: 'ϱ', + varsigma: 'ς', + varsubsetneq: '⊊︀', + varsubsetneqq: '⫋︀', + varsupsetneq: '⊋︀', + varsupsetneqq: '⫌︀', + vartheta: 'ϑ', + vartriangleleft: '⊲', + vartriangleright: '⊳', + vcy: 'в', + vdash: '⊢', + vee: '∨', + veebar: '⊻', + veeeq: '≚', + vellip: '⋮', + verbar: '|', + vert: '|', + vfr: '𝔳', + vltri: '⊲', + vnsub: '⊂⃒', + vnsup: '⊃⃒', + vopf: '𝕧', + vprop: '∝', + vrtri: '⊳', + vscr: '𝓋', + vsubnE: '⫋︀', + vsubne: '⊊︀', + vsupnE: '⫌︀', + vsupne: '⊋︀', + vzigzag: '⦚', + wcirc: 'ŵ', + wedbar: '⩟', + wedge: '∧', + wedgeq: '≙', + weierp: '℘', + wfr: '𝔴', + wopf: '𝕨', + wp: '℘', + wr: '≀', + wreath: '≀', + wscr: '𝓌', + xcap: '⋂', + xcirc: '◯', + xcup: '⋃', + xdtri: '▽', + xfr: '𝔵', + xhArr: '⟺', + xharr: '⟷', + xi: 'ξ', + xlArr: '⟸', + xlarr: '⟵', + xmap: '⟼', + xnis: '⋻', + xodot: '⨀', + xopf: '𝕩', + xoplus: '⨁', + xotime: '⨂', + xrArr: '⟹', + xrarr: '⟶', + xscr: '𝓍', + xsqcup: '⨆', + xuplus: '⨄', + xutri: '△', + xvee: '⋁', + xwedge: '⋀', + yacut: 'ý', + yacute: 'ý', + yacy: 'я', + ycirc: 'ŷ', + ycy: 'ы', + ye: '¥', + yen: '¥', + yfr: '𝔶', + yicy: 'ї', + yopf: '𝕪', + yscr: '𝓎', + yucy: 'ю', + yum: 'ÿ', + yuml: 'ÿ', + zacute: 'ź', + zcaron: 'ž', + zcy: 'з', + zdot: 'ż', + zeetrf: 'ℨ', + zeta: 'ζ', + zfr: '𝔷', + zhcy: 'ж', + zigrarr: '⇝', + zopf: '𝕫', + zscr: '𝓏', + zwj: '‍', + zwnj: '‌' +}; - effects.consume(code); - return continuationClose - } +var own$5 = {}.hasOwnProperty; - function done(code) { - effects.exit('htmlFlow'); - return ok(code) - } +/** + * @param {string} characters + * @returns {string|false} + */ +function decodeEntity(characters) { + return own$5.call(characterEntities, characters) + ? characterEntities[characters] + : false } -function tokenizeNextBlank(effects, ok, nok) { - return start +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ - function start(code) { - effects.exit('htmlFlowData'); - effects.enter('lineEndingBlank'); - effects.consume(code); - effects.exit('lineEndingBlank'); - return effects.attempt(partialBlankLine_1, ok, nok) - } -} +/** @type {Construct} */ +const characterReference$1 = { + name: 'characterReference', + tokenize: tokenizeCharacterReference +}; +/** @type {Tokenizer} */ -var htmlFlow_1 = htmlFlow; +function tokenizeCharacterReference(effects, ok, nok) { + const self = this; + let size = 0; + /** @type {number} */ -var htmlText = { - name: 'htmlText', - tokenize: tokenizeHtmlText -}; + let max; + /** @type {(code: Code) => code is number} */ -function tokenizeHtmlText(effects, ok, nok) { - var self = this; - var marker; - var buffer; - var index; - var returnState; + let test; return start + /** @type {State} */ function start(code) { - effects.enter('htmlText'); - effects.enter('htmlTextData'); + effects.enter('characterReference'); + effects.enter('characterReferenceMarker'); effects.consume(code); - return open - } - - function open(code) { - if (code === 33) { - effects.consume(code); - return declarationOpen - } - - if (code === 47) { - effects.consume(code); - return tagCloseStart - } + effects.exit('characterReferenceMarker'); + return open + } + /** @type {State} */ - if (code === 63) { + function open(code) { + if (code === 35) { + effects.enter('characterReferenceMarkerNumeric'); effects.consume(code); - return instruction + effects.exit('characterReferenceMarkerNumeric'); + return numeric } - if (asciiAlpha_1(code)) { + effects.enter('characterReferenceValue'); + max = 31; + test = asciiAlphanumeric; + return value(code) + } + /** @type {State} */ + + function numeric(code) { + if (code === 88 || code === 120) { + effects.enter('characterReferenceMarkerHexadecimal'); effects.consume(code); - return tagOpen + effects.exit('characterReferenceMarkerHexadecimal'); + effects.enter('characterReferenceValue'); + max = 6; + test = asciiHexDigit; + return value } - return nok(code) + effects.enter('characterReferenceValue'); + max = 7; + test = asciiDigit; + return value(code) } + /** @type {State} */ - function declarationOpen(code) { - if (code === 45) { - effects.consume(code); - return commentOpen - } + function value(code) { + /** @type {Token} */ + let token; - if (code === 91) { + if (code === 59 && size) { + token = effects.exit('characterReferenceValue'); + + if ( + test === asciiAlphanumeric && + !decodeEntity(self.sliceSerialize(token)) + ) { + return nok(code) + } + + effects.enter('characterReferenceMarker'); effects.consume(code); - buffer = 'CDATA['; - index = 0; - return cdataOpen + effects.exit('characterReferenceMarker'); + effects.exit('characterReference'); + return ok } - if (asciiAlpha_1(code)) { + if (test(code) && size++ < max) { effects.consume(code); - return declaration + return value } return nok(code) } +} - function commentOpen(code) { - if (code === 45) { - effects.consume(code); - return commentStart - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ - return nok(code) - } +/** @type {Construct} */ +const codeFenced = { + name: 'codeFenced', + tokenize: tokenizeCodeFenced, + concrete: true +}; +/** @type {Tokenizer} */ - function commentStart(code) { - if (code === null || code === 62) { - return nok(code) - } +function tokenizeCodeFenced(effects, ok, nok) { + const self = this; + /** @type {Construct} */ - if (code === 45) { - effects.consume(code); - return commentStartDash - } + const closingFenceConstruct = { + tokenize: tokenizeClosingFence, + partial: true + }; + /** @type {Construct} */ - return comment(code) + const nonLazyLine = { + tokenize: tokenizeNonLazyLine, + partial: true + }; + const tail = this.events[this.events.length - 1]; + const initialPrefix = + tail && tail[1].type === 'linePrefix' + ? tail[2].sliceSerialize(tail[1], true).length + : 0; + let sizeOpen = 0; + /** @type {NonNullable} */ + + let marker; + return start + /** @type {State} */ + + function start(code) { + effects.enter('codeFenced'); + effects.enter('codeFencedFence'); + effects.enter('codeFencedFenceSequence'); + marker = code; + return sequenceOpen(code) } + /** @type {State} */ - function commentStartDash(code) { - if (code === null || code === 62) { - return nok(code) + function sequenceOpen(code) { + if (code === marker) { + effects.consume(code); + sizeOpen++; + return sequenceOpen } - return comment(code) + effects.exit('codeFencedFenceSequence'); + return sizeOpen < 3 + ? nok(code) + : factorySpace(effects, infoOpen, 'whitespace')(code) } + /** @type {State} */ - function comment(code) { - if (code === null) { - return nok(code) + function infoOpen(code) { + if (code === null || markdownLineEnding(code)) { + return openAfter(code) } - if (code === 45) { - effects.consume(code); - return commentClose - } + effects.enter('codeFencedFenceInfo'); + effects.enter('chunkString', { + contentType: 'string' + }); + return info(code) + } + /** @type {State} */ - if (markdownLineEnding_1(code)) { - returnState = comment; - return atLineEnding(code) + function info(code) { + if (code === null || markdownLineEndingOrSpace(code)) { + effects.exit('chunkString'); + effects.exit('codeFencedFenceInfo'); + return factorySpace(effects, infoAfter, 'whitespace')(code) } + if (code === 96 && code === marker) return nok(code) effects.consume(code); - return comment + return info } + /** @type {State} */ - function commentClose(code) { - if (code === 45) { - effects.consume(code); - return end + function infoAfter(code) { + if (code === null || markdownLineEnding(code)) { + return openAfter(code) } - return comment(code) + effects.enter('codeFencedFenceMeta'); + effects.enter('chunkString', { + contentType: 'string' + }); + return meta(code) } + /** @type {State} */ - function cdataOpen(code) { - if (code === buffer.charCodeAt(index++)) { - effects.consume(code); - return index === buffer.length ? cdata : cdataOpen + function meta(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('chunkString'); + effects.exit('codeFencedFenceMeta'); + return openAfter(code) } - return nok(code) + if (code === 96 && code === marker) return nok(code) + effects.consume(code); + return meta } + /** @type {State} */ - function cdata(code) { + function openAfter(code) { + effects.exit('codeFencedFence'); + return self.interrupt ? ok(code) : contentStart(code) + } + /** @type {State} */ + + function contentStart(code) { if (code === null) { - return nok(code) + return after(code) } - if (code === 93) { - effects.consume(code); - return cdataClose + if (markdownLineEnding(code)) { + return effects.attempt( + nonLazyLine, + effects.attempt( + closingFenceConstruct, + after, + initialPrefix + ? factorySpace( + effects, + contentStart, + 'linePrefix', + initialPrefix + 1 + ) + : contentStart + ), + after + )(code) } - if (markdownLineEnding_1(code)) { - returnState = cdata; - return atLineEnding(code) + effects.enter('codeFlowValue'); + return contentContinue(code) + } + /** @type {State} */ + + function contentContinue(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('codeFlowValue'); + return contentStart(code) } effects.consume(code); - return cdata + return contentContinue } + /** @type {State} */ - function cdataClose(code) { - if (code === 93) { - effects.consume(code); - return cdataEnd - } - - return cdata(code) + function after(code) { + effects.exit('codeFenced'); + return ok(code) } + /** @type {Tokenizer} */ - function cdataEnd(code) { - if (code === 62) { - return end(code) - } + function tokenizeNonLazyLine(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ - if (code === 93) { + function start(code) { + effects.enter('lineEnding'); effects.consume(code); - return cdataEnd + effects.exit('lineEnding'); + return lineStart } + /** @type {State} */ - return cdata(code) + function lineStart(code) { + return self.parser.lazy[self.now().line] ? nok(code) : ok(code) + } } + /** @type {Tokenizer} */ - function declaration(code) { - if (code === null || code === 62) { - return end(code) + function tokenizeClosingFence(effects, ok, nok) { + let size = 0; + return factorySpace( + effects, + closingSequenceStart, + 'linePrefix', + this.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + ) + /** @type {State} */ + + function closingSequenceStart(code) { + effects.enter('codeFencedFence'); + effects.enter('codeFencedFenceSequence'); + return closingSequence(code) } + /** @type {State} */ - if (markdownLineEnding_1(code)) { - returnState = declaration; - return atLineEnding(code) + function closingSequence(code) { + if (code === marker) { + effects.consume(code); + size++; + return closingSequence + } + + if (size < sizeOpen) return nok(code) + effects.exit('codeFencedFenceSequence'); + return factorySpace(effects, closingSequenceEnd, 'whitespace')(code) } + /** @type {State} */ - effects.consume(code); - return declaration - } + function closingSequenceEnd(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('codeFencedFence'); + return ok(code) + } - function instruction(code) { - if (code === null) { return nok(code) } + } +} - if (code === 63) { - effects.consume(code); - return instructionClose - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + */ - if (markdownLineEnding_1(code)) { - returnState = instruction; - return atLineEnding(code) - } +/** @type {Construct} */ +const codeIndented = { + name: 'codeIndented', + tokenize: tokenizeCodeIndented +}; +/** @type {Construct} */ - effects.consume(code); - return instruction +const indentedContent = { + tokenize: tokenizeIndentedContent, + partial: true +}; +/** @type {Tokenizer} */ + +function tokenizeCodeIndented(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ + + function start(code) { + effects.enter('codeIndented'); + return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code) } + /** @type {State} */ - function instructionClose(code) { - return code === 62 ? end(code) : instruction(code) + function afterStartPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'linePrefix' && + tail[2].sliceSerialize(tail[1], true).length >= 4 + ? afterPrefix(code) + : nok(code) } + /** @type {State} */ - function tagCloseStart(code) { - if (asciiAlpha_1(code)) { - effects.consume(code); - return tagClose + function afterPrefix(code) { + if (code === null) { + return after(code) } - return nok(code) + if (markdownLineEnding(code)) { + return effects.attempt(indentedContent, afterPrefix, after)(code) + } + + effects.enter('codeFlowValue'); + return content(code) } + /** @type {State} */ - function tagClose(code) { - if (code === 45 || asciiAlphanumeric_1(code)) { - effects.consume(code); - return tagClose + function content(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('codeFlowValue'); + return afterPrefix(code) } - return tagCloseBetween(code) + effects.consume(code); + return content } + /** @type {State} */ - function tagCloseBetween(code) { - if (markdownLineEnding_1(code)) { - returnState = tagCloseBetween; - return atLineEnding(code) + function after(code) { + effects.exit('codeIndented'); + return ok(code) + } +} +/** @type {Tokenizer} */ + +function tokenizeIndentedContent(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ + + function start(code) { + // If this is a lazy line, it can’t be code. + if (self.parser.lazy[self.now().line]) { + return nok(code) } - if (markdownSpace_1(code)) { + if (markdownLineEnding(code)) { + effects.enter('lineEnding'); effects.consume(code); - return tagCloseBetween + effects.exit('lineEnding'); + return start } - return end(code) + return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code) } + /** @type {State} */ - function tagOpen(code) { - if (code === 45 || asciiAlphanumeric_1(code)) { - effects.consume(code); - return tagOpen - } + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'linePrefix' && + tail[2].sliceSerialize(tail[1], true).length >= 4 + ? ok(code) + : markdownLineEnding(code) + ? start(code) + : nok(code) + } +} - if (code === 47 || code === 62 || markdownLineEndingOrSpace_1(code)) { - return tagOpenBetween(code) - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Previous} Previous + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + */ - return nok(code) - } +/** @type {Construct} */ +const codeText = { + name: 'codeText', + tokenize: tokenizeCodeText, + resolve: resolveCodeText, + previous: previous$1 +}; +/** @type {Resolver} */ - function tagOpenBetween(code) { - if (code === 47) { - effects.consume(code); - return end - } +function resolveCodeText(events) { + let tailExitIndex = events.length - 4; + let headEnterIndex = 3; + /** @type {number} */ - if (code === 58 || code === 95 || asciiAlpha_1(code)) { - effects.consume(code); - return tagOpenAttributeName - } + let index; + /** @type {number|undefined} */ - if (markdownLineEnding_1(code)) { - returnState = tagOpenBetween; - return atLineEnding(code) - } + let enter; // If we start and end with an EOL or a space. - if (markdownSpace_1(code)) { - effects.consume(code); - return tagOpenBetween + if ( + (events[headEnterIndex][1].type === 'lineEnding' || + events[headEnterIndex][1].type === 'space') && + (events[tailExitIndex][1].type === 'lineEnding' || + events[tailExitIndex][1].type === 'space') + ) { + index = headEnterIndex; // And we have data. + + while (++index < tailExitIndex) { + if (events[index][1].type === 'codeTextData') { + // Then we have padding. + events[headEnterIndex][1].type = 'codeTextPadding'; + events[tailExitIndex][1].type = 'codeTextPadding'; + headEnterIndex += 2; + tailExitIndex -= 2; + break + } } + } // Merge adjacent spaces and data. - return end(code) - } + index = headEnterIndex - 1; + tailExitIndex++; - function tagOpenAttributeName(code) { - if ( - code === 45 || - code === 46 || - code === 58 || - code === 95 || - asciiAlphanumeric_1(code) + while (++index <= tailExitIndex) { + if (enter === undefined) { + if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') { + enter = index; + } + } else if ( + index === tailExitIndex || + events[index][1].type === 'lineEnding' ) { - effects.consume(code); - return tagOpenAttributeName - } + events[enter][1].type = 'codeTextData'; - return tagOpenAttributeNameAfter(code) - } + if (index !== enter + 2) { + events[enter][1].end = events[index - 1][1].end; + events.splice(enter + 2, index - enter - 2); + tailExitIndex -= index - enter - 2; + index = enter + 2; + } - function tagOpenAttributeNameAfter(code) { - if (code === 61) { - effects.consume(code); - return tagOpenAttributeValueBefore + enter = undefined; } + } - if (markdownLineEnding_1(code)) { - returnState = tagOpenAttributeNameAfter; - return atLineEnding(code) - } + return events +} +/** @type {Previous} */ - if (markdownSpace_1(code)) { - effects.consume(code); - return tagOpenAttributeNameAfter - } +function previous$1(code) { + // If there is a previous code, there will always be a tail. + return ( + code !== 96 || + this.events[this.events.length - 1][1].type === 'characterEscape' + ) +} +/** @type {Tokenizer} */ - return tagOpenBetween(code) - } +function tokenizeCodeText(effects, ok, nok) { + let sizeOpen = 0; + /** @type {number} */ - function tagOpenAttributeValueBefore(code) { - if ( - code === null || - code === 60 || - code === 61 || - code === 62 || - code === 96 - ) { - return nok(code) - } + let size; + /** @type {Token} */ - if (code === 34 || code === 39) { - effects.consume(code); - marker = code; - return tagOpenAttributeValueQuoted - } + let token; + return start + /** @type {State} */ - if (markdownLineEnding_1(code)) { - returnState = tagOpenAttributeValueBefore; - return atLineEnding(code) - } + function start(code) { + effects.enter('codeText'); + effects.enter('codeTextSequence'); + return openingSequence(code) + } + /** @type {State} */ - if (markdownSpace_1(code)) { + function openingSequence(code) { + if (code === 96) { effects.consume(code); - return tagOpenAttributeValueBefore + sizeOpen++; + return openingSequence } - effects.consume(code); - marker = undefined; - return tagOpenAttributeValueUnquoted + effects.exit('codeTextSequence'); + return gap(code) } + /** @type {State} */ - function tagOpenAttributeValueQuoted(code) { - if (code === marker) { - effects.consume(code); - return tagOpenAttributeValueQuotedAfter - } - + function gap(code) { + // EOF. if (code === null) { return nok(code) - } + } // Closing fence? + // Could also be data. - if (markdownLineEnding_1(code)) { - returnState = tagOpenAttributeValueQuoted; - return atLineEnding(code) + if (code === 96) { + token = effects.enter('codeTextSequence'); + size = 0; + return closingSequence(code) + } // Tabs don’t work, and virtual spaces don’t make sense. + + if (code === 32) { + effects.enter('space'); + effects.consume(code); + effects.exit('space'); + return gap } - effects.consume(code); - return tagOpenAttributeValueQuoted - } + if (markdownLineEnding(code)) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return gap + } // Data. - function tagOpenAttributeValueQuotedAfter(code) { - if (code === 62 || code === 47 || markdownLineEndingOrSpace_1(code)) { - return tagOpenBetween(code) - } + effects.enter('codeTextData'); + return data(code) + } // In code. - return nok(code) - } + /** @type {State} */ - function tagOpenAttributeValueUnquoted(code) { + function data(code) { if ( code === null || - code === 34 || - code === 39 || - code === 60 || - code === 61 || - code === 96 + code === 32 || + code === 96 || + markdownLineEnding(code) ) { - return nok(code) - } - - if (code === 62 || markdownLineEndingOrSpace_1(code)) { - return tagOpenBetween(code) + effects.exit('codeTextData'); + return gap(code) } effects.consume(code); - return tagOpenAttributeValueUnquoted - } // We can’t have blank lines in content, so no need to worry about empty - // tokens. - - function atLineEnding(code) { - effects.exit('htmlTextData'); - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace( - effects, - afterPrefix, - 'linePrefix', - self.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - ) - } - - function afterPrefix(code) { - effects.enter('htmlTextData'); - return returnState(code) - } + return data + } // Closing fence. - function end(code) { - if (code === 62) { + /** @type {State} */ + + function closingSequence(code) { + // More. + if (code === 96) { effects.consume(code); - effects.exit('htmlTextData'); - effects.exit('htmlText'); - return ok - } + size++; + return closingSequence + } // Done! - return nok(code) + if (size === sizeOpen) { + effects.exit('codeTextSequence'); + effects.exit('codeText'); + return ok(code) + } // More or less accents: mark as data. + + token.type = 'codeTextData'; + return data(code) } } -var htmlText_1 = htmlText; +/** + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Chunk} Chunk + * @typedef {import('micromark-util-types').Event} Event + */ -var labelEnd = { - name: 'labelEnd', - tokenize: tokenizeLabelEnd, - resolveTo: resolveToLabelEnd, - resolveAll: resolveAllLabelEnd -}; -var resourceConstruct = { - tokenize: tokenizeResource -}; -var fullReferenceConstruct = { - tokenize: tokenizeFullReference -}; -var collapsedReferenceConstruct = { - tokenize: tokenizeCollapsedReference -}; +/** + * Tokenize subcontent. + * + * @param {Event[]} events + * @returns {boolean} + */ +function subtokenize(events) { + /** @type {Record} */ + const jumps = {}; + let index = -1; + /** @type {Event} */ -function resolveAllLabelEnd(events) { - var index = -1; - var token; + let event; + /** @type {number|undefined} */ - while (++index < events.length) { - token = events[index][1]; + let lineIndex; + /** @type {number} */ - if ( - !token._used && - (token.type === 'labelImage' || - token.type === 'labelLink' || - token.type === 'labelEnd') - ) { - // Remove the marker. - events.splice(index + 1, token.type === 'labelImage' ? 4 : 2); - token.type = 'data'; - index++; - } - } + let otherIndex; + /** @type {Event} */ - return events -} + let otherEvent; + /** @type {Event[]} */ -function resolveToLabelEnd(events, context) { - var index = events.length; - var offset = 0; - var group; - var label; - var text; - var token; - var open; - var close; - var media; // Find an opening. + let parameters; + /** @type {Event[]} */ - while (index--) { - token = events[index][1]; + let subevents; + /** @type {boolean|undefined} */ + + let more; + + while (++index < events.length) { + while (index in jumps) { + index = jumps[index]; + } + + event = events[index]; // Add a hook for the GFM tasklist extension, which needs to know if text + // is in the first content of a list item. + + if ( + index && + event[1].type === 'chunkFlow' && + events[index - 1][1].type === 'listItemPrefix' + ) { + subevents = event[1]._tokenizer.events; + otherIndex = 0; - if (open) { - // If we see another link, or inactive link label, we’ve been here before. if ( - token.type === 'link' || - (token.type === 'labelLink' && token._inactive) + otherIndex < subevents.length && + subevents[otherIndex][1].type === 'lineEndingBlank' ) { - break - } // Mark other link openings as inactive, as we can’t have links in - // links. - - if (events[index][0] === 'enter' && token.type === 'labelLink') { - token._inactive = true; + otherIndex += 2; } - } else if (close) { + if ( - events[index][0] === 'enter' && - (token.type === 'labelImage' || token.type === 'labelLink') && - !token._balanced + otherIndex < subevents.length && + subevents[otherIndex][1].type === 'content' ) { - open = index; + while (++otherIndex < subevents.length) { + if (subevents[otherIndex][1].type === 'content') { + break + } - if (token.type !== 'labelLink') { - offset = 2; + if (subevents[otherIndex][1].type === 'chunkText') { + subevents[otherIndex][1]._isInFirstContentOfListItem = true; + otherIndex++; + } + } + } + } // Enter. + + if (event[0] === 'enter') { + if (event[1].contentType) { + Object.assign(jumps, subcontent(events, index)); + index = jumps[index]; + more = true; + } + } // Exit. + else if (event[1]._container) { + otherIndex = index; + lineIndex = undefined; + + while (otherIndex--) { + otherEvent = events[otherIndex]; + + if ( + otherEvent[1].type === 'lineEnding' || + otherEvent[1].type === 'lineEndingBlank' + ) { + if (otherEvent[0] === 'enter') { + if (lineIndex) { + events[lineIndex][1].type = 'lineEndingBlank'; + } + + otherEvent[1].type = 'lineEnding'; + lineIndex = otherIndex; + } + } else { break } } - } else if (token.type === 'labelEnd') { - close = index; + + if (lineIndex) { + // Fix position. + event[1].end = Object.assign({}, events[lineIndex][1].start); // Switch container exit w/ line endings. + + parameters = events.slice(lineIndex, index); + parameters.unshift(event); + splice(events, lineIndex, index - lineIndex + 1, parameters); + } } } - group = { - type: events[open][1].type === 'labelLink' ? 'link' : 'image', - start: shallow_1(events[open][1].start), - end: shallow_1(events[events.length - 1][1].end) - }; - label = { - type: 'label', - start: shallow_1(events[open][1].start), - end: shallow_1(events[close][1].end) - }; - text = { - type: 'labelText', - start: shallow_1(events[open + offset + 2][1].end), - end: shallow_1(events[close - 2][1].start) - }; - media = [ - ['enter', group, context], - ['enter', label, context] - ]; // Opening marker. + return !more +} +/** + * Tokenize embedded tokens. + * + * @param {Event[]} events + * @param {number} eventIndex + * @returns {Record} + */ - media = chunkedPush_1(media, events.slice(open + 1, open + offset + 3)); // Text open. +function subcontent(events, eventIndex) { + const token = events[eventIndex][1]; + const context = events[eventIndex][2]; + let startPosition = eventIndex - 1; + /** @type {number[]} */ - media = chunkedPush_1(media, [['enter', text, context]]); // Between. + const startPositions = []; + const tokenizer = + token._tokenizer || context.parser[token.contentType](token.start); + const childEvents = tokenizer.events; + /** @type {[number, number][]} */ - media = chunkedPush_1( - media, - resolveAll_1( - context.parser.constructs.insideSpan.null, - events.slice(open + offset + 4, close - 3), - context - ) - ); // Text close, marker close, label close. + const jumps = []; + /** @type {Record} */ - media = chunkedPush_1(media, [ - ['exit', text, context], - events[close - 2], - events[close - 1], - ['exit', label, context] - ]); // Reference, resource, or so. + const gaps = {}; + /** @type {Chunk[]} */ - media = chunkedPush_1(media, events.slice(close + 1)); // Media close. + let stream; + /** @type {Token|undefined} */ - media = chunkedPush_1(media, [['exit', group, context]]); - chunkedSplice_1(events, open, events.length, media); - return events -} + let previous; + let index = -1; + /** @type {Token|undefined} */ -function tokenizeLabelEnd(effects, ok, nok) { - var self = this; - var index = self.events.length; - var labelStart; - var defined; // Find an opening. + let current = token; + let adjust = 0; + let start = 0; + const breaks = [start]; // Loop forward through the linked tokens to pass them in order to the + // subtokenizer. - while (index--) { - if ( - (self.events[index][1].type === 'labelImage' || - self.events[index][1].type === 'labelLink') && - !self.events[index][1]._balanced - ) { - labelStart = self.events[index][1]; - break + while (current) { + // Find the position of the event for this token. + while (events[++startPosition][1] !== current) { + // Empty. } - } - return start + startPositions.push(startPosition); - function start(code) { - if (!labelStart) { - return nok(code) - } // It’s a balanced bracket, but contains a link. + if (!current._tokenizer) { + stream = context.sliceStream(current); - if (labelStart._inactive) return balanced(code) - defined = - self.parser.defined.indexOf( - normalizeIdentifier_1( - self.sliceSerialize({ - start: labelStart.end, - end: self.now() - }) - ) - ) > -1; - effects.enter('labelEnd'); - effects.enter('labelMarker'); - effects.consume(code); - effects.exit('labelMarker'); - effects.exit('labelEnd'); - return afterLabelEnd - } + if (!current.next) { + stream.push(null); + } - function afterLabelEnd(code) { - // Resource: `[asd](fgh)`. - if (code === 40) { - return effects.attempt( - resourceConstruct, - ok, - defined ? ok : balanced - )(code) - } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference? + if (previous) { + tokenizer.defineSkip(current.start); + } - if (code === 91) { - return effects.attempt( - fullReferenceConstruct, - ok, - defined - ? effects.attempt(collapsedReferenceConstruct, ok, balanced) - : balanced - )(code) - } // Shortcut reference: `[asd]`? + if (current._isInFirstContentOfListItem) { + tokenizer._gfmTasklistFirstContentOfListItem = true; + } - return defined ? ok(code) : balanced(code) - } + tokenizer.write(stream); - function balanced(code) { - labelStart._balanced = true; - return nok(code) - } -} + if (current._isInFirstContentOfListItem) { + tokenizer._gfmTasklistFirstContentOfListItem = undefined; + } + } // Unravel the next token. -function tokenizeResource(effects, ok, nok) { - return start + previous = current; + current = current.next; + } // Now, loop back through all events (and linked tokens), to figure out which + // parts belong where. - function start(code) { - effects.enter('resource'); - effects.enter('resourceMarker'); - effects.consume(code); - effects.exit('resourceMarker'); - return factoryWhitespace(effects, open) - } + current = token; - function open(code) { - if (code === 41) { - return end(code) + while (++index < childEvents.length) { + if ( + // Find a void token that includes a break. + childEvents[index][0] === 'exit' && + childEvents[index - 1][0] === 'enter' && + childEvents[index][1].type === childEvents[index - 1][1].type && + childEvents[index][1].start.line !== childEvents[index][1].end.line + ) { + start = index + 1; + breaks.push(start); // Help GC. + + current._tokenizer = undefined; + current.previous = undefined; + current = current.next; } + } // Help GC. - return factoryDestination( - effects, - destinationAfter, - nok, - 'resourceDestination', - 'resourceDestinationLiteral', - 'resourceDestinationLiteralMarker', - 'resourceDestinationRaw', - 'resourceDestinationString', - 3 - )(code) - } + tokenizer.events = []; // If there’s one more token (which is the cases for lines that end in an + // EOF), that’s perfect: the last point we found starts it. + // If there isn’t then make sure any remaining content is added to it. - function destinationAfter(code) { - return markdownLineEndingOrSpace_1(code) - ? factoryWhitespace(effects, between)(code) - : end(code) - } + if (current) { + // Help GC. + current._tokenizer = undefined; + current.previous = undefined; + } else { + breaks.pop(); + } // Now splice the events from the subtokenizer into the current events, + // moving back to front so that splice indices aren’t affected. - function between(code) { - if (code === 34 || code === 39 || code === 40) { - return factoryTitle( - effects, - factoryWhitespace(effects, end), - nok, - 'resourceTitle', - 'resourceTitleMarker', - 'resourceTitleString' - )(code) - } + index = breaks.length; - return end(code) + while (index--) { + const slice = childEvents.slice(breaks[index], breaks[index + 1]); + const start = startPositions.pop(); + jumps.unshift([start, start + slice.length - 1]); + splice(events, start, 2, slice); } - function end(code) { - if (code === 41) { - effects.enter('resourceMarker'); - effects.consume(code); - effects.exit('resourceMarker'); - effects.exit('resource'); - return ok - } + index = -1; - return nok(code) + while (++index < jumps.length) { + gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]; + adjust += jumps[index][1] - jumps[index][0] - 1; } + + return gaps } -function tokenizeFullReference(effects, ok, nok) { - var self = this; - return start +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + */ - function start(code) { - return factoryLabel.call( - self, - effects, - afterLabel, - nok, - 'reference', - 'referenceMarker', - 'referenceString' - )(code) - } +/** + * No name because it must not be turned off. + * @type {Construct} + */ +const content = { + tokenize: tokenizeContent, + resolve: resolveContent +}; +/** @type {Construct} */ - function afterLabel(code) { - return self.parser.defined.indexOf( - normalizeIdentifier_1( - self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) - ) - ) < 0 - ? nok(code) - : ok(code) - } +const continuationConstruct = { + tokenize: tokenizeContinuation, + partial: true +}; +/** + * Content is transparent: it’s parsed right now. That way, definitions are also + * parsed right now: before text in paragraphs (specifically, media) are parsed. + * + * @type {Resolver} + */ + +function resolveContent(events) { + subtokenize(events); + return events } +/** @type {Tokenizer} */ -function tokenizeCollapsedReference(effects, ok, nok) { +function tokenizeContent(effects, ok) { + /** @type {Token} */ + let previous; return start + /** @type {State} */ function start(code) { - effects.enter('reference'); - effects.enter('referenceMarker'); - effects.consume(code); - effects.exit('referenceMarker'); - return open + effects.enter('content'); + previous = effects.enter('chunkContent', { + contentType: 'content' + }); + return data(code) } + /** @type {State} */ - function open(code) { - if (code === 93) { - effects.enter('referenceMarker'); - effects.consume(code); - effects.exit('referenceMarker'); - effects.exit('reference'); - return ok + function data(code) { + if (code === null) { + return contentEnd(code) } - return nok(code) + if (markdownLineEnding(code)) { + return effects.check( + continuationConstruct, + contentContinue, + contentEnd + )(code) + } // Data. + + effects.consume(code); + return data } -} + /** @type {State} */ -var labelEnd_1 = labelEnd; + function contentEnd(code) { + effects.exit('chunkContent'); + effects.exit('content'); + return ok(code) + } + /** @type {State} */ -var labelStartImage = { - name: 'labelStartImage', - tokenize: tokenizeLabelStartImage, - resolveAll: labelEnd_1.resolveAll -}; + function contentContinue(code) { + effects.consume(code); + effects.exit('chunkContent'); + previous.next = effects.enter('chunkContent', { + contentType: 'content', + previous + }); + previous = previous.next; + return data + } +} +/** @type {Tokenizer} */ -function tokenizeLabelStartImage(effects, ok, nok) { - var self = this; - return start +function tokenizeContinuation(effects, ok, nok) { + const self = this; + return startLookahead + /** @type {State} */ - function start(code) { - effects.enter('labelImage'); - effects.enter('labelImageMarker'); + function startLookahead(code) { + effects.exit('chunkContent'); + effects.enter('lineEnding'); effects.consume(code); - effects.exit('labelImageMarker'); - return open + effects.exit('lineEnding'); + return factorySpace(effects, prefixed, 'linePrefix') } + /** @type {State} */ - function open(code) { - if (code === 91) { - effects.enter('labelMarker'); - effects.consume(code); - effects.exit('labelMarker'); - effects.exit('labelImage'); - return after + function prefixed(code) { + if (code === null || markdownLineEnding(code)) { + return nok(code) } - return nok(code) - } + const tail = self.events[self.events.length - 1]; - function after(code) { - /* c8 ignore next */ - return code === 94 && - /* c8 ignore next */ - '_hiddenFootnoteSupport' in self.parser.constructs - ? /* c8 ignore next */ - nok(code) - : ok(code) + if ( + !self.parser.constructs.disable.null.includes('codeIndented') && + tail && + tail[1].type === 'linePrefix' && + tail[2].sliceSerialize(tail[1], true).length >= 4 + ) { + return ok(code) + } + + return effects.interrupt(self.parser.constructs.flow, nok, ok)(code) } } -var labelStartImage_1 = labelStartImage; - -var labelStartLink = { - name: 'labelStartLink', - tokenize: tokenizeLabelStartLink, - resolveAll: labelEnd_1.resolveAll -}; +/** + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + */ -function tokenizeLabelStartLink(effects, ok, nok) { - var self = this; +/** + * @param {Effects} effects + * @param {State} ok + * @param {State} nok + * @param {string} type + * @param {string} literalType + * @param {string} literalMarkerType + * @param {string} rawType + * @param {string} stringType + * @param {number} [max=Infinity] + * @returns {State} + */ +// eslint-disable-next-line max-params +function factoryDestination( + effects, + ok, + nok, + type, + literalType, + literalMarkerType, + rawType, + stringType, + max +) { + const limit = max || Number.POSITIVE_INFINITY; + let balance = 0; return start + /** @type {State} */ function start(code) { - effects.enter('labelLink'); - effects.enter('labelMarker'); - effects.consume(code); - effects.exit('labelMarker'); - effects.exit('labelLink'); - return after - } - - function after(code) { - /* c8 ignore next */ - return code === 94 && - /* c8 ignore next */ - '_hiddenFootnoteSupport' in self.parser.constructs - ? /* c8 ignore next */ - nok(code) - : ok(code) - } -} + if (code === 60) { + effects.enter(type); + effects.enter(literalType); + effects.enter(literalMarkerType); + effects.consume(code); + effects.exit(literalMarkerType); + return destinationEnclosedBefore + } -var labelStartLink_1 = labelStartLink; + if (code === null || code === 41 || asciiControl(code)) { + return nok(code) + } -var lineEnding = { - name: 'lineEnding', - tokenize: tokenizeLineEnding -}; + effects.enter(type); + effects.enter(rawType); + effects.enter(stringType); + effects.enter('chunkString', { + contentType: 'string' + }); + return destinationRaw(code) + } + /** @type {State} */ -function tokenizeLineEnding(effects, ok) { - return start + function destinationEnclosedBefore(code) { + if (code === 62) { + effects.enter(literalMarkerType); + effects.consume(code); + effects.exit(literalMarkerType); + effects.exit(literalType); + effects.exit(type); + return ok + } - function start(code) { - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, ok, 'linePrefix') + effects.enter(stringType); + effects.enter('chunkString', { + contentType: 'string' + }); + return destinationEnclosed(code) } -} + /** @type {State} */ -var lineEnding_1 = lineEnding; + function destinationEnclosed(code) { + if (code === 62) { + effects.exit('chunkString'); + effects.exit(stringType); + return destinationEnclosedBefore(code) + } -var thematicBreak = { - name: 'thematicBreak', - tokenize: tokenizeThematicBreak -}; + if (code === null || code === 60 || markdownLineEnding(code)) { + return nok(code) + } -function tokenizeThematicBreak(effects, ok, nok) { - var size = 0; - var marker; - return start + effects.consume(code); + return code === 92 ? destinationEnclosedEscape : destinationEnclosed + } + /** @type {State} */ - function start(code) { - effects.enter('thematicBreak'); - marker = code; - return atBreak(code) + function destinationEnclosedEscape(code) { + if (code === 60 || code === 62 || code === 92) { + effects.consume(code); + return destinationEnclosed + } + + return destinationEnclosed(code) } + /** @type {State} */ - function atBreak(code) { - if (code === marker) { - effects.enter('thematicBreakSequence'); - return sequence(code) + function destinationRaw(code) { + if (code === 40) { + if (++balance > limit) return nok(code) + effects.consume(code); + return destinationRaw } - if (markdownSpace_1(code)) { - return factorySpace(effects, atBreak, 'whitespace')(code) + if (code === 41) { + if (!balance--) { + effects.exit('chunkString'); + effects.exit(stringType); + effects.exit(rawType); + effects.exit(type); + return ok(code) + } + + effects.consume(code); + return destinationRaw } - if (size < 3 || (code !== null && !markdownLineEnding_1(code))) { - return nok(code) + if (code === null || markdownLineEndingOrSpace(code)) { + if (balance) return nok(code) + effects.exit('chunkString'); + effects.exit(stringType); + effects.exit(rawType); + effects.exit(type); + return ok(code) } - effects.exit('thematicBreak'); - return ok(code) + if (asciiControl(code)) return nok(code) + effects.consume(code); + return code === 92 ? destinationRawEscape : destinationRaw } + /** @type {State} */ - function sequence(code) { - if (code === marker) { + function destinationRawEscape(code) { + if (code === 40 || code === 41 || code === 92) { effects.consume(code); - size++; - return sequence + return destinationRaw } - effects.exit('thematicBreakSequence'); - return atBreak(code) + return destinationRaw(code) } } -var thematicBreak_1 = thematicBreak; +/** + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').State} State + */ -var list = { - name: 'list', - tokenize: tokenizeListStart, - continuation: { - tokenize: tokenizeListContinuation - }, - exit: tokenizeListEnd -}; -var listItemPrefixWhitespaceConstruct = { - tokenize: tokenizeListItemPrefixWhitespace, - partial: true -}; -var indentConstruct = { - tokenize: tokenizeIndent, - partial: true -}; +/** + * @this {TokenizeContext} + * @param {Effects} effects + * @param {State} ok + * @param {State} nok + * @param {string} type + * @param {string} markerType + * @param {string} stringType + * @returns {State} + */ +// eslint-disable-next-line max-params +function factoryLabel(effects, ok, nok, type, markerType, stringType) { + const self = this; + let size = 0; + /** @type {boolean} */ -function tokenizeListStart(effects, ok, nok) { - var self = this; - var initialSize = prefixSize_1(self.events, 'linePrefix'); - var size = 0; + let data; return start + /** @type {State} */ function start(code) { - var kind = - self.containerState.type || - (code === 42 || code === 43 || code === 45 - ? 'listUnordered' - : 'listOrdered'); + effects.enter(type); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.enter(stringType); + return atBreak + } + /** @type {State} */ + function atBreak(code) { if ( - kind === 'listUnordered' - ? !self.containerState.marker || code === self.containerState.marker - : asciiDigit_1(code) - ) { - if (!self.containerState.type) { - self.containerState.type = kind; - effects.enter(kind, { - _container: true - }); - } - - if (kind === 'listUnordered') { - effects.enter('listItemPrefix'); - return code === 42 || code === 45 - ? effects.check(thematicBreak_1, nok, atMarker)(code) - : atMarker(code) - } + code === null || + code === 91 || + (code === 93 && !data) || + /* Hidden footnotes hook */ - if (!self.interrupt || code === 49) { - effects.enter('listItemPrefix'); - effects.enter('listItemValue'); - return inside(code) - } + /* c8 ignore next 3 */ + (code === 94 && + !size && + '_hiddenFootnoteSupport' in self.parser.constructs) || + size > 999 + ) { + return nok(code) } - return nok(code) - } + if (code === 93) { + effects.exit(stringType); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.exit(type); + return ok + } - function inside(code) { - if (asciiDigit_1(code) && ++size < 10) { + if (markdownLineEnding(code)) { + effects.enter('lineEnding'); effects.consume(code); - return inside + effects.exit('lineEnding'); + return atBreak } + effects.enter('chunkString', { + contentType: 'string' + }); + return label(code) + } + /** @type {State} */ + + function label(code) { if ( - (!self.interrupt || size < 2) && - (self.containerState.marker - ? code === self.containerState.marker - : code === 41 || code === 46) + code === null || + code === 91 || + code === 93 || + markdownLineEnding(code) || + size++ > 999 ) { - effects.exit('listItemValue'); - return atMarker(code) + effects.exit('chunkString'); + return atBreak(code) } - return nok(code) - } - - function atMarker(code) { - effects.enter('listItemMarker'); effects.consume(code); - effects.exit('listItemMarker'); - self.containerState.marker = self.containerState.marker || code; - return effects.check( - partialBlankLine_1, // Can’t be empty when interrupting. - self.interrupt ? nok : onBlank, - effects.attempt( - listItemPrefixWhitespaceConstruct, - endOfPrefix, - otherPrefix - ) - ) - } - - function onBlank(code) { - self.containerState.initialBlankLine = true; - initialSize++; - return endOfPrefix(code) + data = data || !markdownSpace(code); + return code === 92 ? labelEscape : label } + /** @type {State} */ - function otherPrefix(code) { - if (markdownSpace_1(code)) { - effects.enter('listItemPrefixWhitespace'); + function labelEscape(code) { + if (code === 91 || code === 92 || code === 93) { effects.consume(code); - effects.exit('listItemPrefixWhitespace'); - return endOfPrefix + size++; + return label } - return nok(code) - } - - function endOfPrefix(code) { - self.containerState.size = - initialSize + sizeChunks_1(self.sliceStream(effects.exit('listItemPrefix'))); - return ok(code) + return label(code) } } -function tokenizeListContinuation(effects, ok, nok) { - var self = this; - self.containerState._closeFlow = undefined; - return effects.check(partialBlankLine_1, onBlank, notBlank) +/** + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ - function onBlank(code) { - self.containerState.furtherBlankLines = - self.containerState.furtherBlankLines || - self.containerState.initialBlankLine; - return ok(code) +/** + * @param {Effects} effects + * @param {State} ok + * @param {State} nok + * @param {string} type + * @param {string} markerType + * @param {string} stringType + * @returns {State} + */ +// eslint-disable-next-line max-params +function factoryTitle(effects, ok, nok, type, markerType, stringType) { + /** @type {NonNullable} */ + let marker; + return start + /** @type {State} */ + + function start(code) { + effects.enter(type); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + marker = code === 40 ? 41 : code; + return atFirstTitleBreak } + /** @type {State} */ - function notBlank(code) { - if (self.containerState.furtherBlankLines || !markdownSpace_1(code)) { - self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined; - return notInCurrentItem(code) + function atFirstTitleBreak(code) { + if (code === marker) { + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.exit(type); + return ok } - self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined; - return effects.attempt(indentConstruct, ok, notInCurrentItem)(code) + effects.enter(stringType); + return atTitleBreak(code) } + /** @type {State} */ - function notInCurrentItem(code) { - // While we do continue, we signal that the flow should be closed. - self.containerState._closeFlow = true; // As we’re closing flow, we’re no longer interrupting. + function atTitleBreak(code) { + if (code === marker) { + effects.exit(stringType); + return atFirstTitleBreak(marker) + } - self.interrupt = undefined; - return factorySpace( - effects, - effects.attempt(list, ok, nok), - 'linePrefix', - self.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 - )(code) - } -} + if (code === null) { + return nok(code) + } // Note: blank lines can’t exist in content. -function tokenizeIndent(effects, ok, nok) { - var self = this; - return factorySpace( - effects, - afterPrefix, - 'listItemIndent', - self.containerState.size + 1 - ) + if (markdownLineEnding(code)) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace(effects, atTitleBreak, 'linePrefix') + } - function afterPrefix(code) { - return prefixSize_1(self.events, 'listItemIndent') === - self.containerState.size - ? ok(code) - : nok(code) + effects.enter('chunkString', { + contentType: 'string' + }); + return title(code) } -} - -function tokenizeListEnd(effects) { - effects.exit(this.containerState.type); -} + /** @type {State} */ -function tokenizeListItemPrefixWhitespace(effects, ok, nok) { - var self = this; - return factorySpace( - effects, - afterPrefix, - 'listItemPrefixWhitespace', - self.parser.constructs.disable.null.indexOf('codeIndented') > -1 - ? undefined - : 4 + 1 - ) + function title(code) { + if (code === marker || code === null || markdownLineEnding(code)) { + effects.exit('chunkString'); + return atTitleBreak(code) + } - function afterPrefix(code) { - return markdownSpace_1(code) || - !prefixSize_1(self.events, 'listItemPrefixWhitespace') - ? nok(code) - : ok(code) + effects.consume(code); + return code === 92 ? titleEscape : title } -} + /** @type {State} */ -var list_1 = list; - -var setextUnderline = { - name: 'setextUnderline', - tokenize: tokenizeSetextUnderline, - resolveTo: resolveToSetextUnderline -}; - -function resolveToSetextUnderline(events, context) { - var index = events.length; - var content; - var text; - var definition; - var heading; // Find the opening of the content. - // It’ll always exist: we don’t tokenize if it isn’t there. - - while (index--) { - if (events[index][0] === 'enter') { - if (events[index][1].type === 'content') { - content = index; - break - } - - if (events[index][1].type === 'paragraph') { - text = index; - } - } // Exit - else { - if (events[index][1].type === 'content') { - // Remove the content end (if needed we’ll add it later) - events.splice(index, 1); - } - - if (!definition && events[index][1].type === 'definition') { - definition = index; - } + function titleEscape(code) { + if (code === marker || code === 92) { + effects.consume(code); + return title } - } - - heading = { - type: 'setextHeading', - start: shallow_1(events[text][1].start), - end: shallow_1(events[events.length - 1][1].end) - }; // Change the paragraph to setext heading text. - - events[text][1].type = 'setextHeadingText'; // If we have definitions in the content, we’ll keep on having content, - // but we need move it. - if (definition) { - events.splice(text, 0, ['enter', heading, context]); - events.splice(definition + 1, 0, ['exit', events[content][1], context]); - events[content][1].end = shallow_1(events[definition][1].end); - } else { - events[content][1] = heading; - } // Add the heading exit at the end. - - events.push(['exit', heading, context]); - return events + return title(code) + } } -function tokenizeSetextUnderline(effects, ok, nok) { - var self = this; - var index = self.events.length; - var marker; - var paragraph; // Find an opening. - - while (index--) { - // Skip enter/exit of line ending, line prefix, and content. - // We can now either have a definition or a paragraph. - if ( - self.events[index][1].type !== 'lineEnding' && - self.events[index][1].type !== 'linePrefix' && - self.events[index][1].type !== 'content' - ) { - paragraph = self.events[index][1].type === 'paragraph'; - break - } - } +/** + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + */ +/** + * @param {Effects} effects + * @param {State} ok + */ +function factoryWhitespace(effects, ok) { + /** @type {boolean} */ + let seen; return start + /** @type {State} */ function start(code) { - if (!self.lazy && (self.interrupt || paragraph)) { - effects.enter('setextHeadingLine'); - effects.enter('setextHeadingLineSequence'); - marker = code; - return closingSequence(code) - } - - return nok(code) - } - - function closingSequence(code) { - if (code === marker) { + if (markdownLineEnding(code)) { + effects.enter('lineEnding'); effects.consume(code); - return closingSequence + effects.exit('lineEnding'); + seen = true; + return start } - effects.exit('setextHeadingLineSequence'); - return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code) - } - - function closingSequenceEnd(code) { - if (code === null || markdownLineEnding_1(code)) { - effects.exit('setextHeadingLine'); - return ok(code) + if (markdownSpace(code)) { + return factorySpace( + effects, + start, + seen ? 'linePrefix' : 'lineSuffix' + )(code) } - return nok(code) + return ok(code) } } -var setextUnderline_1 = setextUnderline; - -var document$2 = { - 42: list_1, - // Asterisk - 43: list_1, - // Plus sign - 45: list_1, - // Dash - 48: list_1, - // 0 - 49: list_1, - // 1 - 50: list_1, - // 2 - 51: list_1, - // 3 - 52: list_1, - // 4 - 53: list_1, - // 5 - 54: list_1, - // 6 - 55: list_1, - // 7 - 56: list_1, - // 8 - 57: list_1, - // 9 - 62: blockQuote_1 // Greater than -}; -var contentInitial = { - 91: definition_1 // Left square bracket -}; -var flowInitial = { - '-2': codeIndented_1, - // Horizontal tab - '-1': codeIndented_1, - // Virtual space - 32: codeIndented_1 // Space -}; -var flow$1 = { - 35: headingAtx_1, - // Number sign - 42: thematicBreak_1, - // Asterisk - 45: [setextUnderline_1, thematicBreak_1], - // Dash - 60: htmlFlow_1, - // Less than - 61: setextUnderline_1, - // Equals to - 95: thematicBreak_1, - // Underscore - 96: codeFenced_1, - // Grave accent - 126: codeFenced_1 // Tilde -}; -var string$1 = { - 38: characterReference_1, - // Ampersand - 92: characterEscape_1 // Backslash -}; -var text$1 = { - '-5': lineEnding_1, - // Carriage return - '-4': lineEnding_1, - // Line feed - '-3': lineEnding_1, - // Carriage return + line feed - 33: labelStartImage_1, - // Exclamation mark - 38: characterReference_1, - // Ampersand - 42: attention_1, - // Asterisk - 60: [autolink_1, htmlText_1], - // Less than - 91: labelStartLink_1, - // Left square bracket - 92: [hardBreakEscape_1, characterEscape_1], - // Backslash - 93: labelEnd_1, - // Right square bracket - 95: attention_1, - // Underscore - 96: codeText_1 // Grave accent -}; -var insideSpan = { - null: [attention_1, text_1.resolver] -}; -var disable = { - null: [] -}; - -var contentInitial_1 = contentInitial; -var disable_1 = disable; -var document_1 = document$2; -var flow_1 = flow$1; -var flowInitial_1 = flowInitial; -var insideSpan_1 = insideSpan; -var string_1$1 = string$1; -var text_1$1 = text$1; - -var constructs$1 = /*#__PURE__*/Object.defineProperty({ - contentInitial: contentInitial_1, - disable: disable_1, - document: document_1, - flow: flow_1, - flowInitial: flowInitial_1, - insideSpan: insideSpan_1, - string: string_1$1, - text: text_1$1 -}, '__esModule', {value: true}); - -function parse$7(options) { - var settings = options || {}; - var parser = { - defined: [], - constructs: combineExtensions_1( - [constructs$1].concat(miniflat_1(settings.extensions)) - ), - content: create(content), - document: create(document$1), - flow: create(flow), - string: create(text_1.string), - text: create(text_1.text) - }; - return parser - - function create(initializer) { - return creator - - function creator(from) { - return createTokenizer_1(parser, initializer, from) - } - } +/** + * Normalize an identifier (such as used in definitions). + * + * @param {string} value + * @returns {string} + */ +function normalizeIdentifier(value) { + return ( + value // Collapse Markdown whitespace. + .replace(/[\t\n\r ]+/g, ' ') // Trim. + .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase + // counterpart is uppercased will result in a different uppercase + // character. + // Hence, to get that form, we perform both lower- and uppercase. + // Upper case makes sure keys will not interact with default prototypal + // methods: no method is uppercase. + .toLowerCase() + .toUpperCase() + ) } -var parse_1$3 = parse$7; +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ -var search$1 = /[\0\t\n\r]/g; +/** @type {Construct} */ +const definition$1 = { + name: 'definition', + tokenize: tokenizeDefinition +}; +/** @type {Construct} */ -function preprocess() { - var start = true; - var column = 1; - var buffer = ''; - var atCarriageReturn; - return preprocessor +const titleConstruct = { + tokenize: tokenizeTitle, + partial: true +}; +/** @type {Tokenizer} */ - function preprocessor(value, encoding, end) { - var chunks = []; - var match; - var next; - var startPosition; - var endPosition; - var code; - value = buffer + value.toString(encoding); - startPosition = 0; - buffer = ''; +function tokenizeDefinition(effects, ok, nok) { + const self = this; + /** @type {string} */ - if (start) { - if (value.charCodeAt(0) === 65279) { - startPosition++; - } + let identifier; + return start + /** @type {State} */ - start = undefined; - } + function start(code) { + effects.enter('definition'); + return factoryLabel.call( + self, + effects, + labelAfter, + nok, + 'definitionLabel', + 'definitionLabelMarker', + 'definitionLabelString' + )(code) + } + /** @type {State} */ - while (startPosition < value.length) { - search$1.lastIndex = startPosition; - match = search$1.exec(value); - endPosition = match ? match.index : value.length; - code = value.charCodeAt(endPosition); + function labelAfter(code) { + identifier = normalizeIdentifier( + self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) + ); - if (!match) { - buffer = value.slice(startPosition); - break - } + if (code === 58) { + effects.enter('definitionMarker'); + effects.consume(code); + effects.exit('definitionMarker'); // Note: blank lines can’t exist in content. - if (code === 10 && startPosition === endPosition && atCarriageReturn) { - chunks.push(-3); - atCarriageReturn = undefined; - } else { - if (atCarriageReturn) { - chunks.push(-5); - atCarriageReturn = undefined; - } + return factoryWhitespace( + effects, + factoryDestination( + effects, + effects.attempt( + titleConstruct, + factorySpace(effects, after, 'whitespace'), + factorySpace(effects, after, 'whitespace') + ), + nok, + 'definitionDestination', + 'definitionDestinationLiteral', + 'definitionDestinationLiteralMarker', + 'definitionDestinationRaw', + 'definitionDestinationString' + ) + ) + } - if (startPosition < endPosition) { - chunks.push(value.slice(startPosition, endPosition)); - column += endPosition - startPosition; - } + return nok(code) + } + /** @type {State} */ - if (code === 0) { - chunks.push(65533); - column++; - } else if (code === 9) { - next = Math.ceil(column / 4) * 4; - chunks.push(-2); + function after(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('definition'); - while (column++ < next) chunks.push(-1); - } else if (code === 10) { - chunks.push(-4); - column = 1; - } // Must be carriage return. - else { - atCarriageReturn = true; - column = 1; - } + if (!self.parser.defined.includes(identifier)) { + self.parser.defined.push(identifier); } - startPosition = endPosition + 1; - } - - if (end) { - if (atCarriageReturn) chunks.push(-5); - if (buffer) chunks.push(buffer); - chunks.push(null); + return ok(code) } - return chunks + return nok(code) } } +/** @type {Tokenizer} */ -var preprocess_1 = preprocess; +function tokenizeTitle(effects, ok, nok) { + return start + /** @type {State} */ -function postprocess(events) { - while (!subtokenize_1(events)) { - // Empty + function start(code) { + return markdownLineEndingOrSpace(code) + ? factoryWhitespace(effects, before)(code) + : nok(code) } + /** @type {State} */ - return events + function before(code) { + if (code === 34 || code === 39 || code === 40) { + return factoryTitle( + effects, + factorySpace(effects, after, 'whitespace'), + nok, + 'definitionTitle', + 'definitionTitleMarker', + 'definitionTitleString' + )(code) + } + + return nok(code) + } + /** @type {State} */ + + function after(code) { + return code === null || markdownLineEnding(code) ? ok(code) : nok(code) + } } -var postprocess_1 = postprocess; +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ -var dist$2 = fromMarkdown; +/** @type {Construct} */ +const hardBreakEscape = { + name: 'hardBreakEscape', + tokenize: tokenizeHardBreakEscape +}; +/** @type {Tokenizer} */ -// These three are compiled away in the `dist/` +function tokenizeHardBreakEscape(effects, ok, nok) { + return start + /** @type {State} */ + function start(code) { + effects.enter('hardBreakEscape'); + effects.enter('escapeMarker'); + effects.consume(code); + return open + } + /** @type {State} */ + function open(code) { + if (markdownLineEnding(code)) { + effects.exit('escapeMarker'); + effects.exit('hardBreakEscape'); + return ok(code) + } + return nok(code) + } +} +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + */ +/** @type {Construct} */ +const headingAtx = { + name: 'headingAtx', + tokenize: tokenizeHeadingAtx, + resolve: resolveHeadingAtx +}; +/** @type {Resolver} */ +function resolveHeadingAtx(events, context) { + let contentEnd = events.length - 2; + let contentStart = 3; + /** @type {Token} */ + let content; + /** @type {Token} */ + let text; // Prefix whitespace, part of the opening. + if (events[contentStart][1].type === 'whitespace') { + contentStart += 2; + } // Suffix whitespace, part of the closing. + if ( + contentEnd - 2 > contentStart && + events[contentEnd][1].type === 'whitespace' + ) { + contentEnd -= 2; + } + if ( + events[contentEnd][1].type === 'atxHeadingSequence' && + (contentStart === contentEnd - 1 || + (contentEnd - 4 > contentStart && + events[contentEnd - 2][1].type === 'whitespace')) + ) { + contentEnd -= contentStart + 1 === contentEnd ? 2 : 4; + } -function fromMarkdown(value, encoding, options) { - if (typeof encoding !== 'string') { - options = encoding; - encoding = undefined; + if (contentEnd > contentStart) { + content = { + type: 'atxHeadingText', + start: events[contentStart][1].start, + end: events[contentEnd][1].end + }; + text = { + type: 'chunkText', + start: events[contentStart][1].start, + end: events[contentEnd][1].end, + // @ts-expect-error Constants are fine to assign. + contentType: 'text' + }; + splice(events, contentStart, contentEnd - contentStart + 1, [ + ['enter', content, context], + ['enter', text, context], + ['exit', text, context], + ['exit', content, context] + ]); } - return compiler(options)( - postprocess_1( - parse_1$3(options).document().write(preprocess_1()(value, encoding, true)) - ) - ) + return events } +/** @type {Tokenizer} */ -// Note this compiler only understand complete buffering, not streaming. -function compiler(options) { - var settings = options || {}; - var config = configure$2( - { - canContainEols: [ - 'emphasis', - 'fragment', - 'heading', - 'paragraph', - 'strong' - ], - - enter: { - autolink: opener(link), - autolinkProtocol: onenterdata, - autolinkEmail: onenterdata, - atxHeading: opener(heading), - blockQuote: opener(blockQuote), - characterEscape: onenterdata, - characterReference: onenterdata, - codeFenced: opener(codeFlow), - codeFencedFenceInfo: buffer, - codeFencedFenceMeta: buffer, - codeIndented: opener(codeFlow, buffer), - codeText: opener(codeText, buffer), - codeTextData: onenterdata, - data: onenterdata, - codeFlowValue: onenterdata, - definition: opener(definition), - definitionDestinationString: buffer, - definitionLabelString: buffer, - definitionTitleString: buffer, - emphasis: opener(emphasis), - hardBreakEscape: opener(hardBreak), - hardBreakTrailing: opener(hardBreak), - htmlFlow: opener(html, buffer), - htmlFlowData: onenterdata, - htmlText: opener(html, buffer), - htmlTextData: onenterdata, - image: opener(image), - label: buffer, - link: opener(link), - listItem: opener(listItem), - listItemValue: onenterlistitemvalue, - listOrdered: opener(list, onenterlistordered), - listUnordered: opener(list), - paragraph: opener(paragraph), - reference: onenterreference, - referenceString: buffer, - resourceDestinationString: buffer, - resourceTitleString: buffer, - setextHeading: opener(heading), - strong: opener(strong), - thematicBreak: opener(thematicBreak) - }, +function tokenizeHeadingAtx(effects, ok, nok) { + const self = this; + let size = 0; + return start + /** @type {State} */ - exit: { - atxHeading: closer(), - atxHeadingSequence: onexitatxheadingsequence, - autolink: closer(), - autolinkEmail: onexitautolinkemail, - autolinkProtocol: onexitautolinkprotocol, - blockQuote: closer(), - characterEscapeValue: onexitdata, - characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker, - characterReferenceMarkerNumeric: onexitcharacterreferencemarker, - characterReferenceValue: onexitcharacterreferencevalue, - codeFenced: closer(onexitcodefenced), - codeFencedFence: onexitcodefencedfence, - codeFencedFenceInfo: onexitcodefencedfenceinfo, - codeFencedFenceMeta: onexitcodefencedfencemeta, - codeFlowValue: onexitdata, - codeIndented: closer(onexitcodeindented), - codeText: closer(onexitcodetext), - codeTextData: onexitdata, - data: onexitdata, - definition: closer(), - definitionDestinationString: onexitdefinitiondestinationstring, - definitionLabelString: onexitdefinitionlabelstring, - definitionTitleString: onexitdefinitiontitlestring, - emphasis: closer(), - hardBreakEscape: closer(onexithardbreak), - hardBreakTrailing: closer(onexithardbreak), - htmlFlow: closer(onexithtmlflow), - htmlFlowData: onexitdata, - htmlText: closer(onexithtmltext), - htmlTextData: onexitdata, - image: closer(onexitimage), - label: onexitlabel, - labelText: onexitlabeltext, - lineEnding: onexitlineending, - link: closer(onexitlink), - listItem: closer(), - listOrdered: closer(), - listUnordered: closer(), - paragraph: closer(), - referenceString: onexitreferencestring, - resourceDestinationString: onexitresourcedestinationstring, - resourceTitleString: onexitresourcetitlestring, - resource: onexitresource, - setextHeading: closer(onexitsetextheading), - setextHeadingLineSequence: onexitsetextheadinglinesequence, - setextHeadingText: onexitsetextheadingtext, - strong: closer(), - thematicBreak: closer() - } - }, + function start(code) { + effects.enter('atxHeading'); + effects.enter('atxHeadingSequence'); + return fenceOpenInside(code) + } + /** @type {State} */ - settings.mdastExtensions || [] - ); + function fenceOpenInside(code) { + if (code === 35 && size++ < 6) { + effects.consume(code); + return fenceOpenInside + } - var data = {}; + if (code === null || markdownLineEndingOrSpace(code)) { + effects.exit('atxHeadingSequence'); + return self.interrupt ? ok(code) : headingBreak(code) + } - return compile + return nok(code) + } + /** @type {State} */ - function compile(events) { - var stack = [{type: 'root', children: []}]; - var tokenStack = []; - var listStack = []; - var index = -1; - var handler; - var listStart; - - var context = { - stack: stack, - tokenStack: tokenStack, - config: config, - enter: enter, - exit: exit, - buffer: buffer, - resume: resume, - setData: setData, - getData: getData - }; + function headingBreak(code) { + if (code === 35) { + effects.enter('atxHeadingSequence'); + return sequence(code) + } - while (++index < events.length) { - // We preprocess lists to add `listItem` tokens, and to infer whether - // items the list itself are spread out. - if ( - events[index][1].type === 'listOrdered' || - events[index][1].type === 'listUnordered' - ) { - if (events[index][0] === 'enter') { - listStack.push(index); - } else { - listStart = listStack.pop(index); - index = prepareList(events, listStart, index); - } - } + if (code === null || markdownLineEnding(code)) { + effects.exit('atxHeading'); + return ok(code) } - index = -1; + if (markdownSpace(code)) { + return factorySpace(effects, headingBreak, 'whitespace')(code) + } - while (++index < events.length) { - handler = config[events[index][0]]; + effects.enter('atxHeadingText'); + return data(code) + } + /** @type {State} */ - if (hasOwnProperty.call(handler, events[index][1].type)) { - handler[events[index][1].type].call( - assign_1({sliceSerialize: events[index][2].sliceSerialize}, context), - events[index][1] - ); - } + function sequence(code) { + if (code === 35) { + effects.consume(code); + return sequence } - if (tokenStack.length) { - throw new Error( - 'Cannot close document, a token (`' + - tokenStack[tokenStack.length - 1].type + - '`, ' + - unistUtilStringifyPosition({ - start: tokenStack[tokenStack.length - 1].start, - end: tokenStack[tokenStack.length - 1].end - }) + - ') is still open' - ) + effects.exit('atxHeadingSequence'); + return headingBreak(code) + } + /** @type {State} */ + + function data(code) { + if (code === null || code === 35 || markdownLineEndingOrSpace(code)) { + effects.exit('atxHeadingText'); + return headingBreak(code) } - // Figure out `root` position. - stack[0].position = { - start: point( - events.length ? events[0][1].start : {line: 1, column: 1, offset: 0} - ), + effects.consume(code); + return data + } +} - end: point( - events.length - ? events[events.length - 2][1].end - : {line: 1, column: 1, offset: 0} - ) - }; +/** + * List of lowercase HTML tag names which when parsing HTML (flow), result + * in more relaxed rules (condition 6): because they are known blocks, the + * HTML-like syntax doesn’t have to be strictly parsed. + * For tag names not in this list, a more strict algorithm (condition 7) is used + * to detect whether the HTML-like syntax is seen as HTML (flow) or not. + * + * This is copied from: + * . + */ +const htmlBlockNames = [ + 'address', + 'article', + 'aside', + 'base', + 'basefont', + 'blockquote', + 'body', + 'caption', + 'center', + 'col', + 'colgroup', + 'dd', + 'details', + 'dialog', + 'dir', + 'div', + 'dl', + 'dt', + 'fieldset', + 'figcaption', + 'figure', + 'footer', + 'form', + 'frame', + 'frameset', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'head', + 'header', + 'hr', + 'html', + 'iframe', + 'legend', + 'li', + 'link', + 'main', + 'menu', + 'menuitem', + 'nav', + 'noframes', + 'ol', + 'optgroup', + 'option', + 'p', + 'param', + 'section', + 'source', + 'summary', + 'table', + 'tbody', + 'td', + 'tfoot', + 'th', + 'thead', + 'title', + 'tr', + 'track', + 'ul' +]; - return stack[0] - } +/** + * List of lowercase HTML tag names which when parsing HTML (flow), result in + * HTML that can include lines w/o exiting, until a closing tag also in this + * list is found (condition 1). + * + * This module is copied from: + * . + * + * Note that `textarea` is not available in `CommonMark@0.29` but has been + * merged to the primary branch and is slated to be released in the next release + * of CommonMark. + */ +const htmlRawNames = ['pre', 'script', 'style', 'textarea']; - function prepareList(events, start, length) { - var index = start - 1; - var containerBalance = -1; - var listSpread = false; - var listItem; - var tailIndex; - var lineIndex; - var tailEvent; - var event; - var firstBlankLineIndex; - var atMarker; +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ +/** @type {Construct} */ - while (++index <= length) { - event = events[index]; +const htmlFlow = { + name: 'htmlFlow', + tokenize: tokenizeHtmlFlow, + resolveTo: resolveToHtmlFlow, + concrete: true +}; +/** @type {Construct} */ - if ( - event[1].type === 'listUnordered' || - event[1].type === 'listOrdered' || - event[1].type === 'blockQuote' - ) { - if (event[0] === 'enter') { - containerBalance++; - } else { - containerBalance--; - } +const nextBlankConstruct = { + tokenize: tokenizeNextBlank, + partial: true +}; +/** @type {Resolver} */ - atMarker = undefined; - } else if (event[1].type === 'lineEndingBlank') { - if (event[0] === 'enter') { - if ( - listItem && - !atMarker && - !containerBalance && - !firstBlankLineIndex - ) { - firstBlankLineIndex = index; - } +function resolveToHtmlFlow(events) { + let index = events.length; - atMarker = undefined; - } - } else if ( - event[1].type === 'linePrefix' || - event[1].type === 'listItemValue' || - event[1].type === 'listItemMarker' || - event[1].type === 'listItemPrefix' || - event[1].type === 'listItemPrefixWhitespace' - ) ; else { - atMarker = undefined; - } + while (index--) { + if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') { + break + } + } - if ( - (!containerBalance && - event[0] === 'enter' && - event[1].type === 'listItemPrefix') || - (containerBalance === -1 && - event[0] === 'exit' && - (event[1].type === 'listUnordered' || - event[1].type === 'listOrdered')) - ) { - if (listItem) { - tailIndex = index; - lineIndex = undefined; + if (index > 1 && events[index - 2][1].type === 'linePrefix') { + // Add the prefix start to the HTML token. + events[index][1].start = events[index - 2][1].start; // Add the prefix start to the HTML line token. - while (tailIndex--) { - tailEvent = events[tailIndex]; + events[index + 1][1].start = events[index - 2][1].start; // Remove the line prefix. - if ( - tailEvent[1].type === 'lineEnding' || - tailEvent[1].type === 'lineEndingBlank' - ) { - if (tailEvent[0] === 'exit') continue + events.splice(index - 2, 2); + } - if (lineIndex) { - events[lineIndex][1].type = 'lineEndingBlank'; - listSpread = true; - } + return events +} +/** @type {Tokenizer} */ - tailEvent[1].type = 'lineEnding'; - lineIndex = tailIndex; - } else if ( - tailEvent[1].type === 'linePrefix' || - tailEvent[1].type === 'blockQuotePrefix' || - tailEvent[1].type === 'blockQuotePrefixWhitespace' || - tailEvent[1].type === 'blockQuoteMarker' || - tailEvent[1].type === 'listItemIndent' - ) ; else { - break - } - } +function tokenizeHtmlFlow(effects, ok, nok) { + const self = this; + /** @type {number} */ - if ( - firstBlankLineIndex && - (!lineIndex || firstBlankLineIndex < lineIndex) - ) { - listItem._spread = true; - } + let kind; + /** @type {boolean} */ - // Fix position. - listItem.end = point( - lineIndex ? events[lineIndex][1].start : event[1].end - ); + let startTag; + /** @type {string} */ - events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]); - index++; - length++; - } + let buffer; + /** @type {number} */ - // Create a new list item. - if (event[1].type === 'listItemPrefix') { - listItem = { - type: 'listItem', - _spread: false, - start: point(event[1].start) - }; + let index; + /** @type {Code} */ - events.splice(index, 0, ['enter', listItem, event[2]]); - index++; - length++; - firstBlankLineIndex = undefined; - atMarker = true; - } - } - } + let marker; + return start + /** @type {State} */ - events[start][1]._spread = listSpread; - return length + function start(code) { + effects.enter('htmlFlow'); + effects.enter('htmlFlowData'); + effects.consume(code); + return open } + /** @type {State} */ - function setData(key, value) { - data[key] = value; - } + function open(code) { + if (code === 33) { + effects.consume(code); + return declarationStart + } - function getData(key) { - return data[key] - } + if (code === 47) { + effects.consume(code); + return tagCloseStart + } - function point(d) { - return {line: d.line, column: d.column, offset: d.offset} + if (code === 63) { + effects.consume(code); + kind = 3; // While we’re in an instruction instead of a declaration, we’re on a `?` + // right now, so we do need to search for `>`, similar to declarations. + + return self.interrupt ? ok : continuationDeclarationInside + } + + if (asciiAlpha(code)) { + effects.consume(code); + buffer = String.fromCharCode(code); + startTag = true; + return tagName + } + + return nok(code) } + /** @type {State} */ - function opener(create, and) { - return open + function declarationStart(code) { + if (code === 45) { + effects.consume(code); + kind = 2; + return commentOpenInside + } + + if (code === 91) { + effects.consume(code); + kind = 5; + buffer = 'CDATA['; + index = 0; + return cdataOpenInside + } - function open(token) { - enter.call(this, create(token), token); - if (and) and.call(this, token); + if (asciiAlpha(code)) { + effects.consume(code); + kind = 4; + return self.interrupt ? ok : continuationDeclarationInside } - } - function buffer() { - this.stack.push({type: 'fragment', children: []}); + return nok(code) } + /** @type {State} */ - function enter(node, token) { - this.stack[this.stack.length - 1].children.push(node); - this.stack.push(node); - this.tokenStack.push(token); - node.position = {start: point(token.start)}; - return node - } + function commentOpenInside(code) { + if (code === 45) { + effects.consume(code); + return self.interrupt ? ok : continuationDeclarationInside + } - function closer(and) { - return close + return nok(code) + } + /** @type {State} */ - function close(token) { - if (and) and.call(this, token); - exit.call(this, token); + function cdataOpenInside(code) { + if (code === buffer.charCodeAt(index++)) { + effects.consume(code); + return index === buffer.length + ? self.interrupt + ? ok + : continuation + : cdataOpenInside } - } - function exit(token) { - var node = this.stack.pop(); - var open = this.tokenStack.pop(); + return nok(code) + } + /** @type {State} */ - if (!open) { - throw new Error( - 'Cannot close `' + - token.type + - '` (' + - unistUtilStringifyPosition({start: token.start, end: token.end}) + - '): it’s not open' - ) - } else if (open.type !== token.type) { - throw new Error( - 'Cannot close `' + - token.type + - '` (' + - unistUtilStringifyPosition({start: token.start, end: token.end}) + - '): a different token (`' + - open.type + - '`, ' + - unistUtilStringifyPosition({start: open.start, end: open.end}) + - ') is open' - ) + function tagCloseStart(code) { + if (asciiAlpha(code)) { + effects.consume(code); + buffer = String.fromCharCode(code); + return tagName } - node.position.end = point(token.end); - return node + return nok(code) } + /** @type {State} */ - function resume() { - return mdastUtilToString(this.stack.pop()) - } + function tagName(code) { + if ( + code === null || + code === 47 || + code === 62 || + markdownLineEndingOrSpace(code) + ) { + if ( + code !== 47 && + startTag && + htmlRawNames.includes(buffer.toLowerCase()) + ) { + kind = 1; + return self.interrupt ? ok(code) : continuation(code) + } - // - // Handlers. - // + if (htmlBlockNames.includes(buffer.toLowerCase())) { + kind = 6; - function onenterlistordered() { - setData('expectingFirstListItemValue', true); - } + if (code === 47) { + effects.consume(code); + return basicSelfClosing + } - function onenterlistitemvalue(token) { - if (getData('expectingFirstListItemValue')) { - this.stack[this.stack.length - 2].start = parseInt( - this.sliceSerialize(token), - 10 - ); + return self.interrupt ? ok(code) : continuation(code) + } - setData('expectingFirstListItemValue'); + kind = 7; // Do not support complete HTML when interrupting + + return self.interrupt && !self.parser.lazy[self.now().line] + ? nok(code) + : startTag + ? completeAttributeNameBefore(code) + : completeClosingTagAfter(code) } - } - function onexitcodefencedfenceinfo() { - var data = this.resume(); - this.stack[this.stack.length - 1].lang = data; - } + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + buffer += String.fromCharCode(code); + return tagName + } - function onexitcodefencedfencemeta() { - var data = this.resume(); - this.stack[this.stack.length - 1].meta = data; + return nok(code) } + /** @type {State} */ - function onexitcodefencedfence() { - // Exit if this is the closing fence. - if (getData('flowCodeInside')) return - this.buffer(); - setData('flowCodeInside', true); + function basicSelfClosing(code) { + if (code === 62) { + effects.consume(code); + return self.interrupt ? ok : continuation + } + + return nok(code) } + /** @type {State} */ - function onexitcodefenced() { - var data = this.resume(); - this.stack[this.stack.length - 1].value = data.replace( - /^(\r?\n|\r)|(\r?\n|\r)$/g, - '' - ); + function completeClosingTagAfter(code) { + if (markdownSpace(code)) { + effects.consume(code); + return completeClosingTagAfter + } - setData('flowCodeInside'); + return completeEnd(code) } + /** @type {State} */ - function onexitcodeindented() { - var data = this.resume(); - this.stack[this.stack.length - 1].value = data; - } + function completeAttributeNameBefore(code) { + if (code === 47) { + effects.consume(code); + return completeEnd + } - function onexitdefinitionlabelstring(token) { - // Discard label, use the source content instead. - var label = this.resume(); - this.stack[this.stack.length - 1].label = label; - this.stack[this.stack.length - 1].identifier = normalizeIdentifier_1( - this.sliceSerialize(token) - ).toLowerCase(); - } + if (code === 58 || code === 95 || asciiAlpha(code)) { + effects.consume(code); + return completeAttributeName + } - function onexitdefinitiontitlestring() { - var data = this.resume(); - this.stack[this.stack.length - 1].title = data; - } + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeNameBefore + } - function onexitdefinitiondestinationstring() { - var data = this.resume(); - this.stack[this.stack.length - 1].url = data; + return completeEnd(code) } + /** @type {State} */ - function onexitatxheadingsequence(token) { - if (!this.stack[this.stack.length - 1].depth) { - this.stack[this.stack.length - 1].depth = this.sliceSerialize( - token - ).length; + function completeAttributeName(code) { + if ( + code === 45 || + code === 46 || + code === 58 || + code === 95 || + asciiAlphanumeric(code) + ) { + effects.consume(code); + return completeAttributeName } - } - function onexitsetextheadingtext() { - setData('setextHeadingSlurpLineEnding', true); + return completeAttributeNameAfter(code) } + /** @type {State} */ - function onexitsetextheadinglinesequence(token) { - this.stack[this.stack.length - 1].depth = - this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2; - } + function completeAttributeNameAfter(code) { + if (code === 61) { + effects.consume(code); + return completeAttributeValueBefore + } - function onexitsetextheading() { - setData('setextHeadingSlurpLineEnding'); + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeNameAfter + } + + return completeAttributeNameBefore(code) } + /** @type {State} */ - function onenterdata(token) { - var siblings = this.stack[this.stack.length - 1].children; - var tail = siblings[siblings.length - 1]; + function completeAttributeValueBefore(code) { + if ( + code === null || + code === 60 || + code === 61 || + code === 62 || + code === 96 + ) { + return nok(code) + } - if (!tail || tail.type !== 'text') { - // Add a new text node. - tail = text(); - tail.position = {start: point(token.start)}; - this.stack[this.stack.length - 1].children.push(tail); + if (code === 34 || code === 39) { + effects.consume(code); + marker = code; + return completeAttributeValueQuoted } - this.stack.push(tail); - } + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeValueBefore + } - function onexitdata(token) { - var tail = this.stack.pop(); - tail.value += this.sliceSerialize(token); - tail.position.end = point(token.end); + marker = null; + return completeAttributeValueUnquoted(code) } + /** @type {State} */ - function onexitlineending(token) { - var context = this.stack[this.stack.length - 1]; - - // If we’re at a hard break, include the line ending in there. - if (getData('atHardBreak')) { - context.children[context.children.length - 1].position.end = point( - token.end - ); + function completeAttributeValueQuoted(code) { + if (code === null || markdownLineEnding(code)) { + return nok(code) + } - setData('atHardBreak'); - return + if (code === marker) { + effects.consume(code); + return completeAttributeValueQuotedAfter } + effects.consume(code); + return completeAttributeValueQuoted + } + /** @type {State} */ + + function completeAttributeValueUnquoted(code) { if ( - !getData('setextHeadingSlurpLineEnding') && - config.canContainEols.indexOf(context.type) > -1 + code === null || + code === 34 || + code === 39 || + code === 60 || + code === 61 || + code === 62 || + code === 96 || + markdownLineEndingOrSpace(code) ) { - onenterdata.call(this, token); - onexitdata.call(this, token); + return completeAttributeNameAfter(code) } - } - function onexithardbreak() { - setData('atHardBreak', true); + effects.consume(code); + return completeAttributeValueUnquoted } + /** @type {State} */ - function onexithtmlflow() { - var data = this.resume(); - this.stack[this.stack.length - 1].value = data; - } + function completeAttributeValueQuotedAfter(code) { + if (code === 47 || code === 62 || markdownSpace(code)) { + return completeAttributeNameBefore(code) + } - function onexithtmltext() { - var data = this.resume(); - this.stack[this.stack.length - 1].value = data; + return nok(code) } + /** @type {State} */ - function onexitcodetext() { - var data = this.resume(); - this.stack[this.stack.length - 1].value = data; - } + function completeEnd(code) { + if (code === 62) { + effects.consume(code); + return completeAfter + } - function onexitlink() { - var context = this.stack[this.stack.length - 1]; + return nok(code) + } + /** @type {State} */ - // To do: clean. - if (getData('inReference')) { - context.type += 'Reference'; - context.referenceType = getData('referenceType') || 'shortcut'; - delete context.url; - delete context.title; - } else { - delete context.identifier; - delete context.label; - delete context.referenceType; + function completeAfter(code) { + if (markdownSpace(code)) { + effects.consume(code); + return completeAfter } - setData('referenceType'); + return code === null || markdownLineEnding(code) + ? continuation(code) + : nok(code) } + /** @type {State} */ - function onexitimage() { - var context = this.stack[this.stack.length - 1]; - - // To do: clean. - if (getData('inReference')) { - context.type += 'Reference'; - context.referenceType = getData('referenceType') || 'shortcut'; - delete context.url; - delete context.title; - } else { - delete context.identifier; - delete context.label; - delete context.referenceType; + function continuation(code) { + if (code === 45 && kind === 2) { + effects.consume(code); + return continuationCommentInside } - setData('referenceType'); - } + if (code === 60 && kind === 1) { + effects.consume(code); + return continuationRawTagOpen + } - function onexitlabeltext(token) { - this.stack[this.stack.length - 2].identifier = normalizeIdentifier_1( - this.sliceSerialize(token) - ).toLowerCase(); - } + if (code === 62 && kind === 4) { + effects.consume(code); + return continuationClose + } - function onexitlabel() { - var fragment = this.stack[this.stack.length - 1]; - var value = this.resume(); + if (code === 63 && kind === 3) { + effects.consume(code); + return continuationDeclarationInside + } - this.stack[this.stack.length - 1].label = value; + if (code === 93 && kind === 5) { + effects.consume(code); + return continuationCharacterDataInside + } - // Assume a reference. - setData('inReference', true); + if (markdownLineEnding(code) && (kind === 6 || kind === 7)) { + return effects.check( + nextBlankConstruct, + continuationClose, + continuationAtLineEnding + )(code) + } - if (this.stack[this.stack.length - 1].type === 'link') { - this.stack[this.stack.length - 1].children = fragment.children; - } else { - this.stack[this.stack.length - 1].alt = value; + if (code === null || markdownLineEnding(code)) { + return continuationAtLineEnding(code) } - } - function onexitresourcedestinationstring() { - var data = this.resume(); - this.stack[this.stack.length - 1].url = data; + effects.consume(code); + return continuation } + /** @type {State} */ - function onexitresourcetitlestring() { - var data = this.resume(); - this.stack[this.stack.length - 1].title = data; + function continuationAtLineEnding(code) { + effects.exit('htmlFlowData'); + return htmlContinueStart(code) } + /** @type {State} */ - function onexitresource() { - setData('inReference'); - } + function htmlContinueStart(code) { + if (code === null) { + return done(code) + } - function onenterreference() { - setData('referenceType', 'collapsed'); - } + if (markdownLineEnding(code)) { + return effects.attempt( + { + tokenize: htmlLineEnd, + partial: true + }, + htmlContinueStart, + done + )(code) + } - function onexitreferencestring(token) { - var label = this.resume(); - this.stack[this.stack.length - 1].label = label; - this.stack[this.stack.length - 1].identifier = normalizeIdentifier_1( - this.sliceSerialize(token) - ).toLowerCase(); - setData('referenceType', 'full'); + effects.enter('htmlFlowData'); + return continuation(code) } + /** @type {Tokenizer} */ - function onexitcharacterreferencemarker(token) { - setData('characterReferenceType', token.type); - } + function htmlLineEnd(effects, ok, nok) { + return start + /** @type {State} */ - function onexitcharacterreferencevalue(token) { - var data = this.sliceSerialize(token); - var type = getData('characterReferenceType'); - var value; - var tail; + function start(code) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return lineStart + } + /** @type {State} */ - if (type) { - value = safeFromInt_1( - data, - type === 'characterReferenceMarkerNumeric' ? 10 : 16 - ); + function lineStart(code) { + return self.parser.lazy[self.now().line] ? nok(code) : ok(code) + } + } + /** @type {State} */ - setData('characterReferenceType'); - } else { - value = decodeEntity_1(data); + function continuationCommentInside(code) { + if (code === 45) { + effects.consume(code); + return continuationDeclarationInside } - tail = this.stack.pop(); - tail.value += value; - tail.position.end = point(token.end); + return continuation(code) } + /** @type {State} */ - function onexitautolinkprotocol(token) { - onexitdata.call(this, token); - this.stack[this.stack.length - 1].url = this.sliceSerialize(token); - } + function continuationRawTagOpen(code) { + if (code === 47) { + effects.consume(code); + buffer = ''; + return continuationRawEndTag + } - function onexitautolinkemail(token) { - onexitdata.call(this, token); - this.stack[this.stack.length - 1].url = - 'mailto:' + this.sliceSerialize(token); + return continuation(code) } + /** @type {State} */ - // - // Creaters. - // + function continuationRawEndTag(code) { + if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) { + effects.consume(code); + return continuationClose + } - function blockQuote() { - return {type: 'blockquote', children: []} - } + if (asciiAlpha(code) && buffer.length < 8) { + effects.consume(code); + buffer += String.fromCharCode(code); + return continuationRawEndTag + } - function codeFlow() { - return {type: 'code', lang: null, meta: null, value: ''} + return continuation(code) } + /** @type {State} */ - function codeText() { - return {type: 'inlineCode', value: ''} + function continuationCharacterDataInside(code) { + if (code === 93) { + effects.consume(code); + return continuationDeclarationInside + } + + return continuation(code) } + /** @type {State} */ - function definition() { - return { - type: 'definition', - identifier: '', - label: null, - title: null, - url: '' + function continuationDeclarationInside(code) { + if (code === 62) { + effects.consume(code); + return continuationClose } - } - function emphasis() { - return {type: 'emphasis', children: []} + return continuation(code) } + /** @type {State} */ - function heading() { - return {type: 'heading', depth: undefined, children: []} - } + function continuationClose(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('htmlFlowData'); + return done(code) + } - function hardBreak() { - return {type: 'break'} + effects.consume(code); + return continuationClose } + /** @type {State} */ - function html() { - return {type: 'html', value: ''} + function done(code) { + effects.exit('htmlFlow'); + return ok(code) } +} +/** @type {Tokenizer} */ - function image() { - return {type: 'image', title: null, url: '', alt: null} - } +function tokenizeNextBlank(effects, ok, nok) { + return start + /** @type {State} */ - function link() { - return {type: 'link', title: null, url: '', children: []} + function start(code) { + effects.exit('htmlFlowData'); + effects.enter('lineEndingBlank'); + effects.consume(code); + effects.exit('lineEndingBlank'); + return effects.attempt(blankLine, ok, nok) } +} - function list(token) { - return { - type: 'list', - ordered: token.type === 'listOrdered', - start: null, - spread: token._spread, - children: [] - } - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ - function listItem(token) { - return { - type: 'listItem', - spread: token._spread, - checked: null, - children: [] - } - } +/** @type {Construct} */ +const htmlText = { + name: 'htmlText', + tokenize: tokenizeHtmlText +}; +/** @type {Tokenizer} */ - function paragraph() { - return {type: 'paragraph', children: []} - } +function tokenizeHtmlText(effects, ok, nok) { + const self = this; + /** @type {NonNullable|undefined} */ - function strong() { - return {type: 'strong', children: []} - } + let marker; + /** @type {string} */ - function text() { - return {type: 'text', value: ''} - } + let buffer; + /** @type {number} */ - function thematicBreak() { - return {type: 'thematicBreak'} - } -} + let index; + /** @type {State} */ -function configure$2(config, extensions) { - var index = -1; + let returnState; + return start + /** @type {State} */ - while (++index < extensions.length) { - extension$2(config, extensions[index]); + function start(code) { + effects.enter('htmlText'); + effects.enter('htmlTextData'); + effects.consume(code); + return open } + /** @type {State} */ - return config -} + function open(code) { + if (code === 33) { + effects.consume(code); + return declarationOpen + } -function extension$2(config, extension) { - var key; - var left; + if (code === 47) { + effects.consume(code); + return tagCloseStart + } - for (key in extension) { - left = hasOwnProperty.call(config, key) ? config[key] : (config[key] = {}); + if (code === 63) { + effects.consume(code); + return instruction + } - if (key === 'canContainEols') { - config[key] = [].concat(left, extension[key]); - } else { - Object.assign(left, extension[key]); + if (asciiAlpha(code)) { + effects.consume(code); + return tagOpen } - } -} -var mdastUtilFromMarkdown = dist$2; + return nok(code) + } + /** @type {State} */ -var remarkParse = parse$8; + function declarationOpen(code) { + if (code === 45) { + effects.consume(code); + return commentOpen + } + if (code === 91) { + effects.consume(code); + buffer = 'CDATA['; + index = 0; + return cdataOpen + } + if (asciiAlpha(code)) { + effects.consume(code); + return declaration + } -function parse$8(options) { - var self = this; + return nok(code) + } + /** @type {State} */ - this.Parser = parse; + function commentOpen(code) { + if (code === 45) { + effects.consume(code); + return commentStart + } - function parse(doc) { - return mdastUtilFromMarkdown( - doc, - Object.assign({}, self.data('settings'), options, { - // Note: these options are not in the readme. - // The goal is for them to be set by plugins on `data` instead of being - // passed by users. - extensions: self.data('micromarkExtensions') || [], - mdastExtensions: self.data('fromMarkdownExtensions') || [] - }) - ) + return nok(code) } -} + /** @type {State} */ -var zwitch = factory$1; - -var noop$1 = Function.prototype; -var own$5 = {}.hasOwnProperty; + function commentStart(code) { + if (code === null || code === 62) { + return nok(code) + } -// Handle values based on a property. -function factory$1(key, options) { - var settings = options || {}; + if (code === 45) { + effects.consume(code); + return commentStartDash + } - function one(value) { - var fn = one.invalid; - var handlers = one.handlers; + return comment(code) + } + /** @type {State} */ - if (value && own$5.call(value, key)) { - fn = own$5.call(handlers, value[key]) ? handlers[value[key]] : one.unknown; + function commentStartDash(code) { + if (code === null || code === 62) { + return nok(code) } - return (fn || noop$1).apply(this, arguments) + return comment(code) } + /** @type {State} */ - one.handlers = settings.handlers || {}; - one.invalid = settings.invalid; - one.unknown = settings.unknown; + function comment(code) { + if (code === null) { + return nok(code) + } - return one -} + if (code === 45) { + effects.consume(code); + return commentClose + } -var configure_1$2 = configure$3; + if (markdownLineEnding(code)) { + returnState = comment; + return atLineEnding(code) + } -function configure$3(base, extension) { - var index = -1; - var key; + effects.consume(code); + return comment + } + /** @type {State} */ - // First do subextensions. - if (extension.extensions) { - while (++index < extension.extensions.length) { - configure$3(base, extension.extensions[index]); + function commentClose(code) { + if (code === 45) { + effects.consume(code); + return end } + + return comment(code) } + /** @type {State} */ - for (key in extension) { - if (key === 'extensions') ; else if (key === 'unsafe' || key === 'join') { - base[key] = base[key].concat(extension[key] || []); - } else if (key === 'handlers') { - base[key] = Object.assign(base[key], extension[key] || {}); - } else { - base.options[key] = extension[key]; + function cdataOpen(code) { + if (code === buffer.charCodeAt(index++)) { + effects.consume(code); + return index === buffer.length ? cdata : cdataOpen } + + return nok(code) } + /** @type {State} */ - return base -} + function cdata(code) { + if (code === null) { + return nok(code) + } -var containerFlow = flow$2; + if (code === 93) { + effects.consume(code); + return cdataClose + } + if (markdownLineEnding(code)) { + returnState = cdata; + return atLineEnding(code) + } + effects.consume(code); + return cdata + } + /** @type {State} */ -function flow$2(parent, context) { - var children = parent.children || []; - var results = []; - var index = -1; - var child; + function cdataClose(code) { + if (code === 93) { + effects.consume(code); + return cdataEnd + } - while (++index < children.length) { - child = children[index]; + return cdata(code) + } + /** @type {State} */ - results.push( - context.handle(child, parent, context, {before: '\n', after: '\n'}) - ); + function cdataEnd(code) { + if (code === 62) { + return end(code) + } - if (index + 1 < children.length) { - results.push(between(child, children[index + 1])); + if (code === 93) { + effects.consume(code); + return cdataEnd } + + return cdata(code) } + /** @type {State} */ - return results.join('') + function declaration(code) { + if (code === null || code === 62) { + return end(code) + } - function between(left, right) { - var index = -1; - var result; + if (markdownLineEnding(code)) { + returnState = declaration; + return atLineEnding(code) + } - while (++index < context.join.length) { - result = context.join[index](left, right, parent, context); + effects.consume(code); + return declaration + } + /** @type {State} */ - if (result === true || result === 1) { - break - } + function instruction(code) { + if (code === null) { + return nok(code) + } - if (typeof result === 'number') { - return repeatString('\n', 1 + Number(result)) - } + if (code === 63) { + effects.consume(code); + return instructionClose + } - if (result === false) { - return '\n\n\n\n' - } + if (markdownLineEnding(code)) { + returnState = instruction; + return atLineEnding(code) } - return '\n\n' + effects.consume(code); + return instruction } -} + /** @type {State} */ + + function instructionClose(code) { + return code === 62 ? end(code) : instruction(code) + } + /** @type {State} */ -var indentLines_1 = indentLines; + function tagCloseStart(code) { + if (asciiAlpha(code)) { + effects.consume(code); + return tagClose + } -var eol = /\r?\n|\r/g; + return nok(code) + } + /** @type {State} */ -function indentLines(value, map) { - var result = []; - var start = 0; - var line = 0; - var match; + function tagClose(code) { + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + return tagClose + } - while ((match = eol.exec(value))) { - one(value.slice(start, match.index)); - result.push(match[0]); - start = match.index + match[0].length; - line++; + return tagCloseBetween(code) } + /** @type {State} */ - one(value.slice(start)); + function tagCloseBetween(code) { + if (markdownLineEnding(code)) { + returnState = tagCloseBetween; + return atLineEnding(code) + } - return result.join('') + if (markdownSpace(code)) { + effects.consume(code); + return tagCloseBetween + } - function one(value) { - result.push(map(value, line, !value)); + return end(code) } -} - -var blockquote_1 = blockquote; + /** @type {State} */ + function tagOpen(code) { + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + return tagOpen + } + if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code) + } + return nok(code) + } + /** @type {State} */ -function blockquote(node, _, context) { - var exit = context.enter('blockquote'); - var value = indentLines_1(containerFlow(node, context), map$3); - exit(); - return value -} + function tagOpenBetween(code) { + if (code === 47) { + effects.consume(code); + return end + } -function map$3(line, index, blank) { - return '>' + (blank ? '' : ' ') + line -} + if (code === 58 || code === 95 || asciiAlpha(code)) { + effects.consume(code); + return tagOpenAttributeName + } -var _break = hardBreak; + if (markdownLineEnding(code)) { + returnState = tagOpenBetween; + return atLineEnding(code) + } -function hardBreak() { - return '\\\n' -} + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenBetween + } -var longestStreak_1 = longestStreak; + return end(code) + } + /** @type {State} */ -// Get the count of the longest repeating streak of `character` in `value`. -function longestStreak(value, character) { - var count = 0; - var maximum = 0; - var expected; - var index; + function tagOpenAttributeName(code) { + if ( + code === 45 || + code === 46 || + code === 58 || + code === 95 || + asciiAlphanumeric(code) + ) { + effects.consume(code); + return tagOpenAttributeName + } - if (typeof character !== 'string' || character.length !== 1) { - throw new Error('Expected character') + return tagOpenAttributeNameAfter(code) } + /** @type {State} */ - value = String(value); - index = value.indexOf(character); - expected = index; + function tagOpenAttributeNameAfter(code) { + if (code === 61) { + effects.consume(code); + return tagOpenAttributeValueBefore + } - while (index !== -1) { - count++; + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeNameAfter; + return atLineEnding(code) + } - if (index === expected) { - if (count > maximum) { - maximum = count; - } - } else { - count = 1; + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenAttributeNameAfter } - expected = index + 1; - index = value.indexOf(character, expected); + return tagOpenBetween(code) } + /** @type {State} */ - return maximum -} - -var formatCodeAsIndented_1 = formatCodeAsIndented; + function tagOpenAttributeValueBefore(code) { + if ( + code === null || + code === 60 || + code === 61 || + code === 62 || + code === 96 + ) { + return nok(code) + } -function formatCodeAsIndented(node, context) { - return ( - !context.options.fences && - node.value && - // If there’s no info… - !node.lang && - // And there’s a non-whitespace character… - /[^ \r\n]/.test(node.value) && - // And the value doesn’t start or end in a blank… - !/^[\t ]*[\r\n]|[\r\n][\t ]*$/.test(node.value) - ) -} + if (code === 34 || code === 39) { + effects.consume(code); + marker = code; + return tagOpenAttributeValueQuoted + } -var checkFence_1 = checkFence; + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeValueBefore; + return atLineEnding(code) + } -function checkFence(context) { - var marker = context.options.fence || '`'; + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenAttributeValueBefore + } - if (marker !== '`' && marker !== '~') { - throw new Error( - 'Cannot serialize code with `' + - marker + - '` for `options.fence`, expected `` ` `` or `~`' - ) + effects.consume(code); + marker = undefined; + return tagOpenAttributeValueUnquoted } + /** @type {State} */ - return marker -} + function tagOpenAttributeValueQuoted(code) { + if (code === marker) { + effects.consume(code); + return tagOpenAttributeValueQuotedAfter + } -var safe_1 = safe; + if (code === null) { + return nok(code) + } -function safe(context, input, config) { - var value = (config.before || '') + (input || '') + (config.after || ''); - var positions = []; - var result = []; - var infos = {}; - var index = -1; - var before; - var after; - var position; - var pattern; - var expression; - var match; - var start; - var end; + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeValueQuoted; + return atLineEnding(code) + } - while (++index < context.unsafe.length) { - pattern = context.unsafe[index]; + effects.consume(code); + return tagOpenAttributeValueQuoted + } + /** @type {State} */ + + function tagOpenAttributeValueQuotedAfter(code) { + if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code) + } + + return nok(code) + } + /** @type {State} */ + function tagOpenAttributeValueUnquoted(code) { if ( - !inScope(context.stack, pattern.inConstruct, true) || - inScope(context.stack, pattern.notInConstruct) + code === null || + code === 34 || + code === 39 || + code === 60 || + code === 61 || + code === 96 ) { - continue + return nok(code) } - expression = - pattern._compiled || (pattern._compiled = toExpression(pattern)); + if (code === 62 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code) + } - while ((match = expression.exec(value))) { - before = 'before' in pattern || pattern.atBreak; - after = 'after' in pattern; - position = match.index + (before ? match[1].length : 0); + effects.consume(code); + return tagOpenAttributeValueUnquoted + } // We can’t have blank lines in content, so no need to worry about empty + // tokens. - if (positions.indexOf(position) === -1) { - positions.push(position); - infos[position] = {before: before, after: after}; - } else { - if (infos[position].before && !before) { - infos[position].before = false; - } + /** @type {State} */ - if (infos[position].after && !after) { - infos[position].after = false; - } - } + function atLineEnding(code) { + effects.exit('htmlTextData'); + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace( + effects, + afterPrefix, + 'linePrefix', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + ) + } + /** @type {State} */ + + function afterPrefix(code) { + effects.enter('htmlTextData'); + return returnState(code) + } + /** @type {State} */ + + function end(code) { + if (code === 62) { + effects.consume(code); + effects.exit('htmlTextData'); + effects.exit('htmlText'); + return ok } + + return nok(code) } +} - positions.sort(numerical); +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ - start = config.before ? config.before.length : 0; - end = value.length - (config.after ? config.after.length : 0); - index = -1; +/** @type {Construct} */ +const labelEnd = { + name: 'labelEnd', + tokenize: tokenizeLabelEnd, + resolveTo: resolveToLabelEnd, + resolveAll: resolveAllLabelEnd +}; +/** @type {Construct} */ - while (++index < positions.length) { - position = positions[index]; +const resourceConstruct = { + tokenize: tokenizeResource +}; +/** @type {Construct} */ - if ( - // Character before or after matched: - position < start || - position >= end - ) { - continue - } +const fullReferenceConstruct = { + tokenize: tokenizeFullReference +}; +/** @type {Construct} */ - // If this character is supposed to be escaped because it has a condition on - // the next character, and the next character is definitly being escaped, - // then skip this escape. - if ( - position + 1 < end && - positions[index + 1] === position + 1 && - infos[position].after && - !infos[position + 1].before && - !infos[position + 1].after - ) { - continue - } +const collapsedReferenceConstruct = { + tokenize: tokenizeCollapsedReference +}; +/** @type {Resolver} */ - if (start !== position) { - result.push(value.slice(start, position)); - } +function resolveAllLabelEnd(events) { + let index = -1; + /** @type {Token} */ - start = position; + let token; + + while (++index < events.length) { + token = events[index][1]; if ( - /[!-/:-@[-`{-~]/.test(value.charAt(position)) && - (!config.encode || config.encode.indexOf(value.charAt(position)) === -1) + token.type === 'labelImage' || + token.type === 'labelLink' || + token.type === 'labelEnd' ) { - // Character escape. - result.push('\\'); - } else { - // Character reference. - result.push( - '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';' - ); - start++; + // Remove the marker. + events.splice(index + 1, token.type === 'labelImage' ? 4 : 2); + token.type = 'data'; + index++; } } - result.push(value.slice(start, end)); - - return result.join('') + return events } +/** @type {Resolver} */ -function inScope(stack, list, none) { - var index; +function resolveToLabelEnd(events, context) { + let index = events.length; + let offset = 0; + /** @type {Token} */ - if (!list) { - return none - } + let token; + /** @type {number|undefined} */ - if (typeof list === 'string') { - list = [list]; - } + let open; + /** @type {number|undefined} */ - index = -1; + let close; + /** @type {Event[]} */ - while (++index < list.length) { - if (stack.indexOf(list[index]) !== -1) { - return true + let media; // Find an opening. + + while (index--) { + token = events[index][1]; + + if (open) { + // If we see another link, or inactive link label, we’ve been here before. + if ( + token.type === 'link' || + (token.type === 'labelLink' && token._inactive) + ) { + break + } // Mark other link openings as inactive, as we can’t have links in + // links. + + if (events[index][0] === 'enter' && token.type === 'labelLink') { + token._inactive = true; + } + } else if (close) { + if ( + events[index][0] === 'enter' && + (token.type === 'labelImage' || token.type === 'labelLink') && + !token._balanced + ) { + open = index; + + if (token.type !== 'labelLink') { + offset = 2; + break + } + } + } else if (token.type === 'labelEnd') { + close = index; } } - return false -} - -function toExpression(pattern) { - var before = pattern.before ? '(?:' + pattern.before + ')' : ''; - var after = pattern.after ? '(?:' + pattern.after + ')' : ''; - - if (pattern.atBreak) { - before = '[\\r\\n][\\t ]*' + before; - } - - return new RegExp( - (before ? '(' + before + ')' : '') + - (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + - pattern.character + - (after || ''), - 'g' - ) -} + const group = { + type: events[open][1].type === 'labelLink' ? 'link' : 'image', + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[events.length - 1][1].end) + }; + const label = { + type: 'label', + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[close][1].end) + }; + const text = { + type: 'labelText', + start: Object.assign({}, events[open + offset + 2][1].end), + end: Object.assign({}, events[close - 2][1].start) + }; + media = [ + ['enter', group, context], + ['enter', label, context] + ]; // Opening marker. -function numerical(a, b) { - return a - b -} + media = push(media, events.slice(open + 1, open + offset + 3)); // Text open. -var code_1 = code; + media = push(media, [['enter', text, context]]); // Between. + media = push( + media, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + offset + 4, close - 3), + context + ) + ); // Text close, marker close, label close. + media = push(media, [ + ['exit', text, context], + events[close - 2], + events[close - 1], + ['exit', label, context] + ]); // Reference, resource, or so. + media = push(media, events.slice(close + 1)); // Media close. + media = push(media, [['exit', group, context]]); + splice(events, open, events.length, media); + return events +} +/** @type {Tokenizer} */ +function tokenizeLabelEnd(effects, ok, nok) { + const self = this; + let index = self.events.length; + /** @type {Token} */ + let labelStart; + /** @type {boolean} */ + let defined; // Find an opening. -function code(node, _, context) { - var marker = checkFence_1(context); - var raw = node.value || ''; - var suffix = marker === '`' ? 'GraveAccent' : 'Tilde'; - var value; - var sequence; - var exit; - var subexit; + while (index--) { + if ( + (self.events[index][1].type === 'labelImage' || + self.events[index][1].type === 'labelLink') && + !self.events[index][1]._balanced + ) { + labelStart = self.events[index][1]; + break + } + } - if (formatCodeAsIndented_1(node, context)) { - exit = context.enter('codeIndented'); - value = indentLines_1(raw, map$4); - } else { - sequence = repeatString(marker, Math.max(longestStreak_1(raw, marker) + 1, 3)); - exit = context.enter('codeFenced'); - value = sequence; + return start + /** @type {State} */ - if (node.lang) { - subexit = context.enter('codeFencedLang' + suffix); - value += safe_1(context, node.lang, { - before: '`', - after: ' ', - encode: ['`'] - }); - subexit(); - } + function start(code) { + if (!labelStart) { + return nok(code) + } // It’s a balanced bracket, but contains a link. - if (node.lang && node.meta) { - subexit = context.enter('codeFencedMeta' + suffix); - value += - ' ' + - safe_1(context, node.meta, { - before: ' ', - after: '\n', - encode: ['`'] - }); - subexit(); - } + if (labelStart._inactive) return balanced(code) + defined = self.parser.defined.includes( + normalizeIdentifier( + self.sliceSerialize({ + start: labelStart.end, + end: self.now() + }) + ) + ); + effects.enter('labelEnd'); + effects.enter('labelMarker'); + effects.consume(code); + effects.exit('labelMarker'); + effects.exit('labelEnd'); + return afterLabelEnd + } + /** @type {State} */ - value += '\n'; + function afterLabelEnd(code) { + // Resource: `[asd](fgh)`. + if (code === 40) { + return effects.attempt( + resourceConstruct, + ok, + defined ? ok : balanced + )(code) + } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference? - if (raw) { - value += raw + '\n'; - } + if (code === 91) { + return effects.attempt( + fullReferenceConstruct, + ok, + defined + ? effects.attempt(collapsedReferenceConstruct, ok, balanced) + : balanced + )(code) + } // Shortcut reference: `[asd]`? - value += sequence; + return defined ? ok(code) : balanced(code) } + /** @type {State} */ - exit(); - return value + function balanced(code) { + labelStart._balanced = true; + return nok(code) + } } +/** @type {Tokenizer} */ -function map$4(line, _, blank) { - return (blank ? '' : ' ') + line -} +function tokenizeResource(effects, ok, nok) { + return start + /** @type {State} */ + + function start(code) { + effects.enter('resource'); + effects.enter('resourceMarker'); + effects.consume(code); + effects.exit('resourceMarker'); + return factoryWhitespace(effects, open) + } + /** @type {State} */ -var association_1 = association; + function open(code) { + if (code === 41) { + return end(code) + } + return factoryDestination( + effects, + destinationAfter, + nok, + 'resourceDestination', + 'resourceDestinationLiteral', + 'resourceDestinationLiteralMarker', + 'resourceDestinationRaw', + 'resourceDestinationString', + 3 + )(code) + } + /** @type {State} */ + function destinationAfter(code) { + return markdownLineEndingOrSpace(code) + ? factoryWhitespace(effects, between)(code) + : end(code) + } + /** @type {State} */ -var characterEscape$1 = /\\([!-/:-@[-`{-~])/g; -var characterReference$1 = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; + function between(code) { + if (code === 34 || code === 39 || code === 40) { + return factoryTitle( + effects, + factoryWhitespace(effects, end), + nok, + 'resourceTitle', + 'resourceTitleMarker', + 'resourceTitleString' + )(code) + } -// The `label` of an association is the string value: character escapes and -// references work, and casing is intact. -// The `identifier` is used to match one association to another: controversially, -// character escapes and references don’t work in this matching: `©` does -// not match `©`, and `\+` does not match `+`. -// But casing is ignored (and whitespace) is trimmed and collapsed: ` A\nb` -// matches `a b`. -// So, we do prefer the label when figuring out how we’re going to serialize: -// it has whitespace, casing, and we can ignore most useless character escapes -// and all character references. -function association(node) { - if (node.label || !node.identifier) { - return node.label || '' + return end(code) } + /** @type {State} */ - return node.identifier - .replace(characterEscape$1, '$1') - .replace(characterReference$1, decodeIfPossible) -} + function end(code) { + if (code === 41) { + effects.enter('resourceMarker'); + effects.consume(code); + effects.exit('resourceMarker'); + effects.exit('resource'); + return ok + } -function decodeIfPossible($0, $1) { - return decodeEntity_1($1) || $0 + return nok(code) + } } +/** @type {Tokenizer} */ -var checkQuote_1 = checkQuote; +function tokenizeFullReference(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ -function checkQuote(context) { - var marker = context.options.quote || '"'; + function start(code) { + return factoryLabel.call( + self, + effects, + afterLabel, + nok, + 'reference', + 'referenceMarker', + 'referenceString' + )(code) + } + /** @type {State} */ - if (marker !== '"' && marker !== "'") { - throw new Error( - 'Cannot serialize title with `' + - marker + - '` for `options.quote`, expected `"`, or `\'`' + function afterLabel(code) { + return self.parser.defined.includes( + normalizeIdentifier( + self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) + ) ) + ? ok(code) + : nok(code) } - - return marker } +/** @type {Tokenizer} */ -var definition_1$1 = definition$1; +function tokenizeCollapsedReference(effects, ok, nok) { + return start + /** @type {State} */ + function start(code) { + effects.enter('reference'); + effects.enter('referenceMarker'); + effects.consume(code); + effects.exit('referenceMarker'); + return open + } + /** @type {State} */ + function open(code) { + if (code === 93) { + effects.enter('referenceMarker'); + effects.consume(code); + effects.exit('referenceMarker'); + effects.exit('reference'); + return ok + } + return nok(code) + } +} +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ +/** @type {Construct} */ -function definition$1(node, _, context) { - var marker = checkQuote_1(context); - var suffix = marker === '"' ? 'Quote' : 'Apostrophe'; - var exit = context.enter('definition'); - var subexit = context.enter('label'); - var value = - '[' + safe_1(context, association_1(node), {before: '[', after: ']'}) + ']: '; +const labelStartImage = { + name: 'labelStartImage', + tokenize: tokenizeLabelStartImage, + resolveAll: labelEnd.resolveAll +}; +/** @type {Tokenizer} */ - subexit(); +function tokenizeLabelStartImage(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ - if ( - // If there’s no url, or… - !node.url || - // If there’s whitespace, enclosed is prettier. - /[ \t\r\n]/.test(node.url) - ) { - subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; - } else { - // No whitespace, raw is prettier. - subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, {before: ' ', after: ' '}); + function start(code) { + effects.enter('labelImage'); + effects.enter('labelImageMarker'); + effects.consume(code); + effects.exit('labelImageMarker'); + return open } + /** @type {State} */ - subexit(); + function open(code) { + if (code === 91) { + effects.enter('labelMarker'); + effects.consume(code); + effects.exit('labelMarker'); + effects.exit('labelImage'); + return after + } - if (node.title) { - subexit = context.enter('title' + suffix); - value += - ' ' + - marker + - safe_1(context, node.title, {before: marker, after: marker}) + - marker; - subexit(); + return nok(code) } + /** @type {State} */ - exit(); - - return value -} - -var checkEmphasis_1 = checkEmphasis; - -function checkEmphasis(context) { - var marker = context.options.emphasis || '*'; + function after(code) { + /* Hidden footnotes hook */ - if (marker !== '*' && marker !== '_') { - throw new Error( - 'Cannot serialize emphasis with `' + - marker + - '` for `options.emphasis`, expected `*`, or `_`' - ) + /* c8 ignore next 3 */ + return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs + ? nok(code) + : ok(code) } - - return marker } -var containerPhrasing = phrasing; - -function phrasing(parent, context, safeOptions) { - var children = parent.children || []; - var results = []; - var index = -1; - var before = safeOptions.before; - var after; - var handle; - var child; +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ +/** @type {Construct} */ - while (++index < children.length) { - child = children[index]; +const labelStartLink = { + name: 'labelStartLink', + tokenize: tokenizeLabelStartLink, + resolveAll: labelEnd.resolveAll +}; +/** @type {Tokenizer} */ - if (index + 1 < children.length) { - handle = context.handle.handlers[children[index + 1].type]; - if (handle && handle.peek) handle = handle.peek; - after = handle - ? handle(children[index + 1], parent, context, { - before: '', - after: '' - }).charAt(0) - : ''; - } else { - after = safeOptions.after; - } +function tokenizeLabelStartLink(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ - results.push( - context.handle(child, parent, context, { - before: before, - after: after - }) - ); - before = results[results.length - 1].slice(-1); + function start(code) { + effects.enter('labelLink'); + effects.enter('labelMarker'); + effects.consume(code); + effects.exit('labelMarker'); + effects.exit('labelLink'); + return after } + /** @type {State} */ - return results.join('') -} - -var emphasis_1 = emphasis; -emphasis.peek = emphasisPeek; + function after(code) { + /* Hidden footnotes hook. */ + /* c8 ignore next 3 */ + return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs + ? nok(code) + : ok(code) + } +} +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + */ +/** @type {Construct} */ +const lineEnding = { + name: 'lineEnding', + tokenize: tokenizeLineEnding +}; +/** @type {Tokenizer} */ -// To do: there are cases where emphasis cannot “form” depending on the -// previous or next character of sequences. -// There’s no way around that though, except for injecting zero-width stuff. -// Do we need to safeguard against that? -function emphasis(node, _, context) { - var marker = checkEmphasis_1(context); - var exit = context.enter('emphasis'); - var value = containerPhrasing(node, context, {before: marker, after: marker}); - exit(); - return marker + value + marker -} +function tokenizeLineEnding(effects, ok) { + return start + /** @type {State} */ -function emphasisPeek(node, _, context) { - return context.options.emphasis || '*' + function start(code) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace(effects, ok, 'linePrefix') + } } -var formatHeadingAsSetext_1 = formatHeadingAsSetext; - +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ +/** @type {Construct} */ +const thematicBreak$1 = { + name: 'thematicBreak', + tokenize: tokenizeThematicBreak +}; +/** @type {Tokenizer} */ -function formatHeadingAsSetext(node, context) { - return ( - context.options.setext && (!node.depth || node.depth < 3) && mdastUtilToString(node) - ) -} +function tokenizeThematicBreak(effects, ok, nok) { + let size = 0; + /** @type {NonNullable} */ -var heading_1 = heading; + let marker; + return start + /** @type {State} */ + function start(code) { + effects.enter('thematicBreak'); + marker = code; + return atBreak(code) + } + /** @type {State} */ + function atBreak(code) { + if (code === marker) { + effects.enter('thematicBreakSequence'); + return sequence(code) + } + if (markdownSpace(code)) { + return factorySpace(effects, atBreak, 'whitespace')(code) + } + if (size < 3 || (code !== null && !markdownLineEnding(code))) { + return nok(code) + } -function heading(node, _, context) { - var rank = Math.max(Math.min(6, node.depth || 1), 1); - var exit; - var subexit; - var value; - var sequence; + effects.exit('thematicBreak'); + return ok(code) + } + /** @type {State} */ - if (formatHeadingAsSetext_1(node, context)) { - exit = context.enter('headingSetext'); - subexit = context.enter('phrasing'); - value = containerPhrasing(node, context, {before: '\n', after: '\n'}); - subexit(); - exit(); + function sequence(code) { + if (code === marker) { + effects.consume(code); + size++; + return sequence + } - return ( - value + - '\n' + - repeatString( - rank === 1 ? '=' : '-', - // The whole size… - value.length - - // Minus the position of the character after the last EOL (or - // 0 if there is none)… - (Math.max(value.lastIndexOf('\r'), value.lastIndexOf('\n')) + 1) - ) - ) + effects.exit('thematicBreakSequence'); + return atBreak(code) } +} - sequence = repeatString('#', rank); - exit = context.enter('headingAtx'); - subexit = context.enter('phrasing'); - value = containerPhrasing(node, context, {before: '# ', after: '\n'}); - value = value ? sequence + ' ' + value : sequence; - if (context.options.closeAtx) { - value += ' ' + sequence; - } +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').Exiter} Exiter + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ +/** @type {Construct} */ - subexit(); - exit(); +const list$1 = { + name: 'list', + tokenize: tokenizeListStart, + continuation: { + tokenize: tokenizeListContinuation + }, + exit: tokenizeListEnd +}; +/** @type {Construct} */ - return value -} +const listItemPrefixWhitespaceConstruct = { + tokenize: tokenizeListItemPrefixWhitespace, + partial: true +}; +/** @type {Construct} */ + +const indentConstruct = { + tokenize: tokenizeIndent, + partial: true +}; +/** + * @type {Tokenizer} + * @this {TokenizeContextWithState} + */ -var html_1 = html; +function tokenizeListStart(effects, ok, nok) { + const self = this; + const tail = self.events[self.events.length - 1]; + let initialSize = + tail && tail[1].type === 'linePrefix' + ? tail[2].sliceSerialize(tail[1], true).length + : 0; + let size = 0; + return start + /** @type {State} */ -function html(node) { - return node.value || '' -} + function start(code) { + const kind = + self.containerState.type || + (code === 42 || code === 43 || code === 45 + ? 'listUnordered' + : 'listOrdered'); -var image_1 = image$1; -image$1.peek = imagePeek; + if ( + kind === 'listUnordered' + ? !self.containerState.marker || code === self.containerState.marker + : asciiDigit(code) + ) { + if (!self.containerState.type) { + self.containerState.type = kind; + effects.enter(kind, { + _container: true + }); + } + if (kind === 'listUnordered') { + effects.enter('listItemPrefix'); + return code === 42 || code === 45 + ? effects.check(thematicBreak$1, nok, atMarker)(code) + : atMarker(code) + } + if (!self.interrupt || code === 49) { + effects.enter('listItemPrefix'); + effects.enter('listItemValue'); + return inside(code) + } + } + return nok(code) + } + /** @type {State} */ -function image$1(node, _, context) { - var quote = checkQuote_1(context); - var suffix = quote === '"' ? 'Quote' : 'Apostrophe'; - var exit = context.enter('image'); - var subexit = context.enter('label'); - var value = '![' + safe_1(context, node.alt, {before: '[', after: ']'}) + ']('; + function inside(code) { + if (asciiDigit(code) && ++size < 10) { + effects.consume(code); + return inside + } - subexit(); + if ( + (!self.interrupt || size < 2) && + (self.containerState.marker + ? code === self.containerState.marker + : code === 41 || code === 46) + ) { + effects.exit('listItemValue'); + return atMarker(code) + } - if ( - // If there’s no url but there is a title… - (!node.url && node.title) || - // Or if there’s markdown whitespace or an eol, enclose. - /[ \t\r\n]/.test(node.url) - ) { - subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; - } else { - // No whitespace, raw is prettier. - subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, { - before: '(', - after: node.title ? ' ' : ')' - }); + return nok(code) } + /** + * @type {State} + **/ - subexit(); + function atMarker(code) { + effects.enter('listItemMarker'); + effects.consume(code); + effects.exit('listItemMarker'); + self.containerState.marker = self.containerState.marker || code; + return effects.check( + blankLine, // Can’t be empty when interrupting. + self.interrupt ? nok : onBlank, + effects.attempt( + listItemPrefixWhitespaceConstruct, + endOfPrefix, + otherPrefix + ) + ) + } + /** @type {State} */ - if (node.title) { - subexit = context.enter('title' + suffix); - value += - ' ' + - quote + - safe_1(context, node.title, {before: quote, after: quote}) + - quote; - subexit(); + function onBlank(code) { + self.containerState.initialBlankLine = true; + initialSize++; + return endOfPrefix(code) } + /** @type {State} */ - value += ')'; - exit(); + function otherPrefix(code) { + if (markdownSpace(code)) { + effects.enter('listItemPrefixWhitespace'); + effects.consume(code); + effects.exit('listItemPrefixWhitespace'); + return endOfPrefix + } - return value -} + return nok(code) + } + /** @type {State} */ -function imagePeek() { - return '!' + function endOfPrefix(code) { + self.containerState.size = + initialSize + + self.sliceSerialize(effects.exit('listItemPrefix'), true).length; + return ok(code) + } } +/** + * @type {Tokenizer} + * @this {TokenizeContextWithState} + */ -var imageReference_1 = imageReference; -imageReference.peek = imageReferencePeek; - - +function tokenizeListContinuation(effects, ok, nok) { + const self = this; + self.containerState._closeFlow = undefined; + return effects.check(blankLine, onBlank, notBlank) + /** @type {State} */ + function onBlank(code) { + self.containerState.furtherBlankLines = + self.containerState.furtherBlankLines || + self.containerState.initialBlankLine; // We have a blank line. + // Still, try to consume at most the items size. -function imageReference(node, _, context) { - var type = node.referenceType; - var exit = context.enter('imageReference'); - var subexit = context.enter('label'); - var alt = safe_1(context, node.alt, {before: '[', after: ']'}); - var value = '![' + alt + ']'; - var reference; - var stack; + return factorySpace( + effects, + ok, + 'listItemIndent', + self.containerState.size + 1 + )(code) + } + /** @type {State} */ - subexit(); - // Hide the fact that we’re in phrasing, because escapes don’t work. - stack = context.stack; - context.stack = []; - subexit = context.enter('reference'); - reference = safe_1(context, association_1(node), {before: '[', after: ']'}); - subexit(); - context.stack = stack; - exit(); + function notBlank(code) { + if (self.containerState.furtherBlankLines || !markdownSpace(code)) { + self.containerState.furtherBlankLines = undefined; + self.containerState.initialBlankLine = undefined; + return notInCurrentItem(code) + } - if (type === 'full' || !alt || alt !== reference) { - value += '[' + reference + ']'; - } else if (type !== 'shortcut') { - value += '[]'; + self.containerState.furtherBlankLines = undefined; + self.containerState.initialBlankLine = undefined; + return effects.attempt(indentConstruct, ok, notInCurrentItem)(code) } + /** @type {State} */ - return value -} + function notInCurrentItem(code) { + // While we do continue, we signal that the flow should be closed. + self.containerState._closeFlow = true; // As we’re closing flow, we’re no longer interrupting. -function imageReferencePeek() { - return '!' + self.interrupt = undefined; + return factorySpace( + effects, + effects.attempt(list$1, ok, nok), + 'linePrefix', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + )(code) + } } +/** + * @type {Tokenizer} + * @this {TokenizeContextWithState} + */ -var inlineCode_1 = inlineCode; -inlineCode.peek = inlineCodePeek; - -function inlineCode(node) { - var value = node.value || ''; - var sequence = '`'; - var pad = ''; - - // If there is a single grave accent on its own in the code, use a fence of - // two. - // If there are two in a row, use one. - while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { - sequence += '`'; - } +function tokenizeIndent(effects, ok, nok) { + const self = this; + return factorySpace( + effects, + afterPrefix, + 'listItemIndent', + self.containerState.size + 1 + ) + /** @type {State} */ - // If this is not just spaces or eols (tabs don’t count), and either the - // first or last character are a space, eol, or tick, then pad with spaces. - if ( - /[^ \r\n]/.test(value) && - (/[ \r\n`]/.test(value.charAt(0)) || - /[ \r\n`]/.test(value.charAt(value.length - 1))) - ) { - pad = ' '; + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'listItemIndent' && + tail[2].sliceSerialize(tail[1], true).length === self.containerState.size + ? ok(code) + : nok(code) } - - return sequence + pad + value + pad + sequence } +/** + * @type {Exiter} + * @this {TokenizeContextWithState} + */ -function inlineCodePeek() { - return '`' +function tokenizeListEnd(effects) { + effects.exit(this.containerState.type); } +/** + * @type {Tokenizer} + * @this {TokenizeContextWithState} + */ -var formatLinkAsAutolink_1 = formatLinkAsAutolink; - - - -function formatLinkAsAutolink(node, context) { - var raw = mdastUtilToString(node); - - return ( - !context.options.resourceLink && - // If there’s a url… - node.url && - // And there’s a no title… - !node.title && - // And the content of `node` is a single text node… - node.children && - node.children.length === 1 && - node.children[0].type === 'text' && - // And if the url is the same as the content… - (raw === node.url || 'mailto:' + raw === node.url) && - // And that starts w/ a protocol… - /^[a-z][a-z+.-]+:/i.test(node.url) && - // And that doesn’t contain ASCII control codes (character escapes and - // references don’t work) or angle brackets… - !/[\0- <>\u007F]/.test(node.url) +function tokenizeListItemPrefixWhitespace(effects, ok, nok) { + const self = this; + return factorySpace( + effects, + afterPrefix, + 'listItemPrefixWhitespace', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + 1 ) -} + /** @type {State} */ -var link_1 = link$2; -link$2.peek = linkPeek; + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return !markdownSpace(code) && + tail && + tail[1].type === 'listItemPrefixWhitespace' + ? ok(code) + : nok(code) + } +} +/** + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ +/** @type {Construct} */ +const setextUnderline = { + name: 'setextUnderline', + tokenize: tokenizeSetextUnderline, + resolveTo: resolveToSetextUnderline +}; +/** @type {Resolver} */ +function resolveToSetextUnderline(events, context) { + let index = events.length; + /** @type {number|undefined} */ + let content; + /** @type {number|undefined} */ + let text; + /** @type {number|undefined} */ -function link$2(node, _, context) { - var quote = checkQuote_1(context); - var suffix = quote === '"' ? 'Quote' : 'Apostrophe'; - var exit; - var subexit; - var value; - var stack; + let definition; // Find the opening of the content. + // It’ll always exist: we don’t tokenize if it isn’t there. - if (formatLinkAsAutolink_1(node, context)) { - // Hide the fact that we’re in phrasing, because escapes don’t work. - stack = context.stack; - context.stack = []; - exit = context.enter('autolink'); - value = '<' + containerPhrasing(node, context, {before: '<', after: '>'}) + '>'; - exit(); - context.stack = stack; - return value - } + while (index--) { + if (events[index][0] === 'enter') { + if (events[index][1].type === 'content') { + content = index; + break + } - exit = context.enter('link'); - subexit = context.enter('label'); - value = '[' + containerPhrasing(node, context, {before: '[', after: ']'}) + ']('; - subexit(); + if (events[index][1].type === 'paragraph') { + text = index; + } + } // Exit + else { + if (events[index][1].type === 'content') { + // Remove the content end (if needed we’ll add it later) + events.splice(index, 1); + } - if ( - // If there’s no url but there is a title… - (!node.url && node.title) || - // Or if there’s markdown whitespace or an eol, enclose. - /[ \t\r\n]/.test(node.url) - ) { - subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; - } else { - // No whitespace, raw is prettier. - subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, { - before: '(', - after: node.title ? ' ' : ')' - }); + if (!definition && events[index][1].type === 'definition') { + definition = index; + } + } } - subexit(); + const heading = { + type: 'setextHeading', + start: Object.assign({}, events[text][1].start), + end: Object.assign({}, events[events.length - 1][1].end) + }; // Change the paragraph to setext heading text. - if (node.title) { - subexit = context.enter('title' + suffix); - value += - ' ' + - quote + - safe_1(context, node.title, {before: quote, after: quote}) + - quote; - subexit(); - } + events[text][1].type = 'setextHeadingText'; // If we have definitions in the content, we’ll keep on having content, + // but we need move it. - value += ')'; + if (definition) { + events.splice(text, 0, ['enter', heading, context]); + events.splice(definition + 1, 0, ['exit', events[content][1], context]); + events[content][1].end = Object.assign({}, events[definition][1].end); + } else { + events[content][1] = heading; + } // Add the heading exit at the end. - exit(); - return value + events.push(['exit', heading, context]); + return events } +/** @type {Tokenizer} */ -function linkPeek(node, _, context) { - return formatLinkAsAutolink_1(node, context) ? '<' : '[' -} +function tokenizeSetextUnderline(effects, ok, nok) { + const self = this; + let index = self.events.length; + /** @type {NonNullable} */ -var linkReference_1 = linkReference; -linkReference.peek = linkReferencePeek; + let marker; + /** @type {boolean} */ + let paragraph; // Find an opening. + while (index--) { + // Skip enter/exit of line ending, line prefix, and content. + // We can now either have a definition or a paragraph. + if ( + self.events[index][1].type !== 'lineEnding' && + self.events[index][1].type !== 'linePrefix' && + self.events[index][1].type !== 'content' + ) { + paragraph = self.events[index][1].type === 'paragraph'; + break + } + } + return start + /** @type {State} */ + function start(code) { + if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) { + effects.enter('setextHeadingLine'); + effects.enter('setextHeadingLineSequence'); + marker = code; + return closingSequence(code) + } -function linkReference(node, _, context) { - var type = node.referenceType; - var exit = context.enter('linkReference'); - var subexit = context.enter('label'); - var text = containerPhrasing(node, context, {before: '[', after: ']'}); - var value = '[' + text + ']'; - var reference; - var stack; + return nok(code) + } + /** @type {State} */ - subexit(); - // Hide the fact that we’re in phrasing, because escapes don’t work. - stack = context.stack; - context.stack = []; - subexit = context.enter('reference'); - reference = safe_1(context, association_1(node), {before: '[', after: ']'}); - subexit(); - context.stack = stack; - exit(); + function closingSequence(code) { + if (code === marker) { + effects.consume(code); + return closingSequence + } - if (type === 'full' || !text || text !== reference) { - value += '[' + reference + ']'; - } else if (type !== 'shortcut') { - value += '[]'; + effects.exit('setextHeadingLineSequence'); + return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code) } + /** @type {State} */ - return value -} + function closingSequenceEnd(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit('setextHeadingLine'); + return ok(code) + } -function linkReferencePeek() { - return '[' + return nok(code) + } } -var list_1$1 = list$1; +/** + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').Initializer} Initializer + * @typedef {import('micromark-util-types').State} State + */ +/** @type {InitialConstruct} */ +const flow$1 = { + tokenize: initializeFlow +}; +/** @type {Initializer} */ +function initializeFlow(effects) { + const self = this; + const initial = effects.attempt( + // Try to parse a blank line. + blankLine, + atBlankEnding, // Try to parse initial flow (essentially, only code). + effects.attempt( + this.parser.constructs.flowInitial, + afterConstruct, + factorySpace( + effects, + effects.attempt( + this.parser.constructs.flow, + afterConstruct, + effects.attempt(content, afterConstruct) + ), + 'linePrefix' + ) + ) + ); + return initial + /** @type {State} */ -function list$1(node, _, context) { - var exit = context.enter('list'); - var value = containerFlow(node, context); - exit(); - return value -} + function atBlankEnding(code) { + if (code === null) { + effects.consume(code); + return + } -var checkBullet_1 = checkBullet; + effects.enter('lineEndingBlank'); + effects.consume(code); + effects.exit('lineEndingBlank'); + self.currentConstruct = undefined; + return initial + } + /** @type {State} */ -function checkBullet(context) { - var marker = context.options.bullet || '*'; + function afterConstruct(code) { + if (code === null) { + effects.consume(code); + return + } - if (marker !== '*' && marker !== '+' && marker !== '-') { - throw new Error( - 'Cannot serialize items with `' + - marker + - '` for `options.bullet`, expected `*`, `+`, or `-`' - ) + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + self.currentConstruct = undefined; + return initial } - - return marker } -var checkListItemIndent_1 = checkListItemIndent; - -function checkListItemIndent(context) { - var style = context.options.listItemIndent || 'tab'; - - if (style === 1 || style === '1') { - return 'one' - } +/** + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Initializer} Initializer + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Code} Code + */ +const resolver = { + resolveAll: createResolver() +}; +const string$1 = initializeFactory('string'); +const text$3 = initializeFactory('text'); +/** + * @param {'string'|'text'} field + * @returns {InitialConstruct} + */ - if (style !== 'tab' && style !== 'one' && style !== 'mixed') { - throw new Error( - 'Cannot serialize items with `' + - style + - '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' +function initializeFactory(field) { + return { + tokenize: initializeText, + resolveAll: createResolver( + field === 'text' ? resolveAllLineSuffixes : undefined ) } + /** @type {Initializer} */ - return style -} - -var listItem_1 = listItem; - - - + function initializeText(effects) { + const self = this; + const constructs = this.parser.constructs[field]; + const text = effects.attempt(constructs, start, notText); + return start + /** @type {State} */ + function start(code) { + return atBreak(code) ? text(code) : notText(code) + } + /** @type {State} */ + function notText(code) { + if (code === null) { + effects.consume(code); + return + } + effects.enter('data'); + effects.consume(code); + return data + } + /** @type {State} */ -function listItem(node, parent, context) { - var bullet = checkBullet_1(context); - var listItemIndent = checkListItemIndent_1(context); - var size; - var value; - var exit; + function data(code) { + if (atBreak(code)) { + effects.exit('data'); + return text(code) + } // Data. - if (parent && parent.ordered) { - bullet = - (parent.start > -1 ? parent.start : 1) + - (context.options.incrementListMarker === false - ? 0 - : parent.children.indexOf(node)) + - '.'; - } + effects.consume(code); + return data + } + /** + * @param {Code} code + * @returns {boolean} + */ - size = bullet.length + 1; + function atBreak(code) { + if (code === null) { + return true + } - if ( - listItemIndent === 'tab' || - (listItemIndent === 'mixed' && ((parent && parent.spread) || node.spread)) - ) { - size = Math.ceil(size / 4) * 4; - } + const list = constructs[code]; + let index = -1; - exit = context.enter('listItem'); - value = indentLines_1(containerFlow(node, context), map); - exit(); + if (list) { + while (++index < list.length) { + const item = list[index]; - return value + if (!item.previous || item.previous.call(self, self.previous)) { + return true + } + } + } - function map(line, index, blank) { - if (index) { - return (blank ? '' : repeatString(' ', size)) + line + return false } - - return (blank ? bullet : bullet + repeatString(' ', size - bullet.length)) + line } } +/** + * @param {Resolver} [extraResolver] + * @returns {Resolver} + */ -var paragraph_1 = paragraph; - - - -function paragraph(node, _, context) { - var exit = context.enter('paragraph'); - var subexit = context.enter('phrasing'); - var value = containerPhrasing(node, context, {before: '\n', after: '\n'}); - subexit(); - exit(); - return value -} - -var root_1 = root$1; - +function createResolver(extraResolver) { + return resolveAllText + /** @type {Resolver} */ + function resolveAllText(events, context) { + let index = -1; + /** @type {number|undefined} */ -function root$1(node, _, context) { - return containerFlow(node, context) -} + let enter; // A rather boring computation (to merge adjacent `data` events) which + // improves mm performance by 29%. -var checkStrong_1 = checkStrong; + while (++index <= events.length) { + if (enter === undefined) { + if (events[index] && events[index][1].type === 'data') { + enter = index; + index++; + } + } else if (!events[index] || events[index][1].type !== 'data') { + // Don’t do anything if there is one data token. + if (index !== enter + 2) { + events[enter][1].end = events[index - 1][1].end; + events.splice(enter + 2, index - enter - 2); + index = enter + 2; + } -function checkStrong(context) { - var marker = context.options.strong || '*'; + enter = undefined; + } + } - if (marker !== '*' && marker !== '_') { - throw new Error( - 'Cannot serialize strong with `' + - marker + - '` for `options.strong`, expected `*`, or `_`' - ) + return extraResolver ? extraResolver(events, context) : events } - - return marker -} - -var strong_1 = strong; -strong.peek = strongPeek; - - - - -// To do: there are cases where emphasis cannot “form” depending on the -// previous or next character of sequences. -// There’s no way around that though, except for injecting zero-width stuff. -// Do we need to safeguard against that? -function strong(node, _, context) { - var marker = checkStrong_1(context); - var exit = context.enter('strong'); - var value = containerPhrasing(node, context, {before: marker, after: marker}); - exit(); - return marker + marker + value + marker + marker -} - -function strongPeek(node, _, context) { - return context.options.strong || '*' } +/** + * A rather ugly set of instructions which again looks at chunks in the input + * stream. + * The reason to do this here is that it is *much* faster to parse in reverse. + * And that we can’t hook into `null` to split the line suffix before an EOF. + * To do: figure out if we can make this into a clean utility, or even in core. + * As it will be useful for GFMs literal autolink extension (and maybe even + * tables?) + * + * @type {Resolver} + */ -var text_1$2 = text$2; - +function resolveAllLineSuffixes(events, context) { + let eventIndex = -1; + while (++eventIndex <= events.length) { + if ( + (eventIndex === events.length || + events[eventIndex][1].type === 'lineEnding') && + events[eventIndex - 1][1].type === 'data' + ) { + const data = events[eventIndex - 1][1]; + const chunks = context.sliceStream(data); + let index = chunks.length; + let bufferIndex = -1; + let size = 0; + /** @type {boolean|undefined} */ -function text$2(node, parent, context, safeOptions) { - return safe_1(context, node.value, safeOptions) -} + let tabs; -var checkRuleRepeat = checkRule; + while (index--) { + const chunk = chunks[index]; -function checkRule(context) { - var repetition = context.options.ruleRepetition || 3; + if (typeof chunk === 'string') { + bufferIndex = chunk.length; - if (repetition < 3) { - throw new Error( - 'Cannot serialize rules with repetition `' + - repetition + - '` for `options.ruleRepetition`, expected `3` or more' - ) - } + while (chunk.charCodeAt(bufferIndex - 1) === 32) { + size++; + bufferIndex--; + } - return repetition -} + if (bufferIndex) break + bufferIndex = -1; + } // Number + else if (chunk === -2) { + tabs = true; + size++; + } else if (chunk === -1) ; else { + // Replacement character, exit. + index++; + break + } + } -var checkRule_1 = checkRule$1; + if (size) { + const token = { + type: + eventIndex === events.length || tabs || size < 2 + ? 'lineSuffix' + : 'hardBreakTrailing', + start: { + line: data.end.line, + column: data.end.column - size, + offset: data.end.offset - size, + _index: data.start._index + index, + _bufferIndex: index + ? bufferIndex + : data.start._bufferIndex + bufferIndex + }, + end: Object.assign({}, data.end) + }; + data.end = Object.assign({}, token.start); -function checkRule$1(context) { - var marker = context.options.rule || '*'; + if (data.start.offset === data.end.offset) { + Object.assign(data, token); + } else { + events.splice( + eventIndex, + 0, + ['enter', token, context], + ['exit', token, context] + ); + eventIndex += 2; + } + } - if (marker !== '*' && marker !== '-' && marker !== '_') { - throw new Error( - 'Cannot serialize rules with `' + - marker + - '` for `options.rule`, expected `*`, `-`, or `_`' - ) + eventIndex++; + } } - return marker + return events } -var thematicBreak_1$1 = thematicBreak$1; +/** + * @typedef {import('micromark-util-types').Code} Code + * @typedef {import('micromark-util-types').Chunk} Chunk + * @typedef {import('micromark-util-types').Point} Point + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').ParseContext} ParseContext + */ +/** + * Create a tokenizer. + * Tokenizers deal with one type of data (e.g., containers, flow, text). + * The parser is the object dealing with it all. + * `initialize` works like other constructs, except that only its `tokenize` + * function is used, in which case it doesn’t receive an `ok` or `nok`. + * `from` can be given to set the point before the first character, although + * when further lines are indented, they must be set with `defineSkip`. + * + * @param {ParseContext} parser + * @param {InitialConstruct} initialize + * @param {Omit} [from] + * @returns {TokenizeContext} + */ +function createTokenizer(parser, initialize, from) { + /** @type {Point} */ + let point = Object.assign( + from + ? Object.assign({}, from) + : { + line: 1, + column: 1, + offset: 0 + }, + { + _index: 0, + _bufferIndex: -1 + } + ); + /** @type {Record} */ + const columnStart = {}; + /** @type {Construct[]} */ + const resolveAllConstructs = []; + /** @type {Chunk[]} */ + let chunks = []; + /** @type {Token[]} */ -function thematicBreak$1(node, parent, context) { - var value = repeatString( - checkRule_1(context) + (context.options.ruleSpaces ? ' ' : ''), - checkRuleRepeat(context) - ); + let stack = []; + /** + * Tools used for tokenizing. + * + * @type {Effects} + */ - return context.options.ruleSpaces ? value.slice(0, -1) : value -} + const effects = { + consume, + enter, + exit, + attempt: constructFactory(onsuccessfulconstruct), + check: constructFactory(onsuccessfulcheck), + interrupt: constructFactory(onsuccessfulcheck, { + interrupt: true + }) + }; + /** + * State and tools for resolving and serializing. + * + * @type {TokenizeContext} + */ -var blockquote$1 = blockquote_1; -var _break$1 = _break; -var code$1 = code_1; -var definition$2 = definition_1$1; -var emphasis$1 = emphasis_1; -var hardBreak$1 = _break; -var heading$1 = heading_1; -var html$1 = html_1; -var image$2 = image_1; -var imageReference$1 = imageReference_1; -var inlineCode$1 = inlineCode_1; -var link$3 = link_1; -var linkReference$1 = linkReference_1; -var list$2 = list_1$1; -var listItem$1 = listItem_1; -var paragraph$1 = paragraph_1; -var root$2 = root_1; -var strong$1 = strong_1; -var text$3 = text_1$2; -var thematicBreak$2 = thematicBreak_1$1; - -var handle = { - blockquote: blockquote$1, - break: _break$1, - code: code$1, - definition: definition$2, - emphasis: emphasis$1, - hardBreak: hardBreak$1, - heading: heading$1, - html: html$1, - image: image$2, - imageReference: imageReference$1, - inlineCode: inlineCode$1, - link: link$3, - linkReference: linkReference$1, - list: list$2, - listItem: listItem$1, - paragraph: paragraph$1, - root: root$2, - strong: strong$1, - text: text$3, - thematicBreak: thematicBreak$2 -}; - -var join$2 = [joinDefaults]; + const context = { + previous: null, + code: null, + containerState: {}, + events: [], + parser, + sliceStream, + sliceSerialize, + now, + defineSkip, + write + }; + /** + * The state function. + * + * @type {State|void} + */ + let state = initialize.tokenize.call(context, effects); + if (initialize.resolveAll) { + resolveAllConstructs.push(initialize); + } + return context + /** @type {TokenizeContext['write']} */ -function joinDefaults(left, right, parent, context) { - if ( - // Two lists with the same marker. - (right.type === 'list' && - right.type === left.type && - Boolean(left.ordered) === Boolean(right.ordered)) || - // Indented code after list or another indented code. - (right.type === 'code' && - formatCodeAsIndented_1(right, context) && - (left.type === 'list' || - (left.type === right.type && formatCodeAsIndented_1(left, context)))) - ) { - return false - } + function write(slice) { + chunks = push(chunks, slice); + main(); // Exit if we’re not done, resolve might change stuff. - // Join children of a list or an item. - // In which case, `parent` has a `spread` field. - if (typeof parent.spread === 'boolean') { - if ( - left.type === 'paragraph' && - // Two paragraphs. - (left.type === right.type || - right.type === 'definition' || - // Paragraph followed by a setext heading. - (right.type === 'heading' && formatHeadingAsSetext_1(right, context))) - ) { - return + if (chunks[chunks.length - 1] !== null) { + return [] } - return parent.spread ? 1 : 0 - } -} + addResult(initialize, 0); // Otherwise, resolve, and exit. -var unsafe = [ - { - character: '\t', - inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] - }, - { - character: '\r', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedLangTilde', - 'codeFencedMetaGraveAccent', - 'codeFencedMetaTilde', - 'destinationLiteral', - 'headingAtx' - ] - }, - { - character: '\n', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedLangTilde', - 'codeFencedMetaGraveAccent', - 'codeFencedMetaTilde', - 'destinationLiteral', - 'headingAtx' - ] - }, - { - character: ' ', - inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] - }, - // An exclamation mark can start an image, if it is followed by a link or - // a link reference. - {character: '!', after: '\\[', inConstruct: 'phrasing'}, - // A quote can break out of a title. - {character: '"', inConstruct: 'titleQuote'}, - // A number sign could start an ATX heading if it starts a line. - {atBreak: true, character: '#'}, - // Dollar sign and percentage are not used in markdown. - // An ampersand could start a character reference. - {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, - // An apostrophe can break out of a title. - {character: "'", inConstruct: 'titleApostrophe'}, - // A left paren could break out of a destination raw. - {character: '(', inConstruct: 'destinationRaw'}, - {before: '\\]', character: '(', inConstruct: 'phrasing'}, - // A right paren could start a list item or break out of a destination - // raw. - {atBreak: true, before: '\\d+', character: ')'}, - {character: ')', inConstruct: 'destinationRaw'}, - // An asterisk can start thematic breaks, list items, emphasis, strong. - {atBreak: true, character: '*'}, - {character: '*', inConstruct: 'phrasing'}, - // A plus sign could start a list item. - {atBreak: true, character: '+'}, - // A dash can start thematic breaks, list items, and setext heading - // underlines. - {atBreak: true, character: '-'}, - // A dot could start a list item. - {atBreak: true, before: '\\d+', character: '.', after: '(?:[ \t\r\n]|$)'}, - // Slash, colon, and semicolon are not used in markdown for constructs. - // A less than can start html (flow or text) or an autolink. - // HTML could start with an exclamation mark (declaration, cdata, comment), - // slash (closing tag), question mark (instruction), or a letter (tag). - // An autolink also starts with a letter. - // Finally, it could break out of a destination literal. - {atBreak: true, character: '<', after: '[!/?A-Za-z]'}, - {character: '<', after: '[!/?A-Za-z]', inConstruct: 'phrasing'}, - {character: '<', inConstruct: 'destinationLiteral'}, - // An equals to can start setext heading underlines. - {atBreak: true, character: '='}, - // A greater than can start block quotes and it can break out of a - // destination literal. - {atBreak: true, character: '>'}, - {character: '>', inConstruct: 'destinationLiteral'}, - // Question mark and at sign are not used in markdown for constructs. - // A left bracket can start definitions, references, labels, - {atBreak: true, character: '['}, - { - character: '[', - inConstruct: ['phrasing', 'label', 'reference'] - }, - // A backslash can start an escape (when followed by punctuation) or a - // hard break (when followed by an eol). - {character: '\\', after: '[!-/:-@[-`{-~]'}, - {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, - // A right bracket can exit labels. - { - character: ']', - inConstruct: ['label', 'reference'] - }, - // Caret is not used in markdown for constructs. - // An underscore can start emphasis, strong, or a thematic break. - {atBreak: true, character: '_'}, - {before: '[^A-Za-z]', character: '_', inConstruct: 'phrasing'}, - {character: '_', after: '[^A-Za-z]', inConstruct: 'phrasing'}, - // A grave accent can start code (fenced or text), or it can break out of - // a grave accent code fence. - {atBreak: true, character: '`'}, - { - character: '`', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedMetaGraveAccent', - 'phrasing' - ] - }, - // Left brace, vertical bar, right brace are not used in markdown for - // constructs. - // A tilde can start code (fenced). - {atBreak: true, character: '~'} -]; + context.events = resolveAll(resolveAllConstructs, context.events, context); + return context.events + } // + // Tools. + // + + /** @type {TokenizeContext['sliceSerialize']} */ -var lib$8 = toMarkdown; + function sliceSerialize(token, expandTabs) { + return serializeChunks(sliceStream(token), expandTabs) + } + /** @type {TokenizeContext['sliceStream']} */ + function sliceStream(token) { + return sliceChunks(chunks, token) + } + /** @type {TokenizeContext['now']} */ + function now() { + return Object.assign({}, point) + } + /** @type {TokenizeContext['defineSkip']} */ + function defineSkip(value) { + columnStart[value.line] = value.column; + accountForPotentialSkip(); + } // + // State management. + // + /** + * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by + * `consume`). + * Here is where we walk through the chunks, which either include strings of + * several characters, or numerical character codes. + * The reason to do this in a loop instead of a call is so the stack can + * drain. + * + * @returns {void} + */ + function main() { + /** @type {number} */ + let chunkIndex; + while (point._index < chunks.length) { + const chunk = chunks[point._index]; // If we’re in a buffer chunk, loop through it. -function toMarkdown(tree, options) { - var settings = options || {}; - var context = { - enter: enter, - stack: [], - unsafe: [], - join: [], - handlers: {}, - options: {} - }; - var result; + if (typeof chunk === 'string') { + chunkIndex = point._index; - configure_1$2(context, { - unsafe: unsafe, - join: join$2, - handlers: handle - }); - configure_1$2(context, settings); + if (point._bufferIndex < 0) { + point._bufferIndex = 0; + } - if (context.options.tightDefinitions) { - context.join = [joinDefinition].concat(context.join); + while ( + point._index === chunkIndex && + point._bufferIndex < chunk.length + ) { + go(chunk.charCodeAt(point._bufferIndex)); + } + } else { + go(chunk); + } + } } + /** + * Deal with one code. + * + * @param {Code} code + * @returns {void} + */ - context.handle = zwitch('type', { - invalid: invalid, - unknown: unknown, - handlers: context.handlers - }); + function go(code) { + state = state(code); + } + /** @type {Effects['consume']} */ - result = context.handle(tree, null, context, {before: '\n', after: '\n'}); + function consume(code) { + if (markdownLineEnding(code)) { + point.line++; + point.column = 1; + point.offset += code === -3 ? 2 : 1; + accountForPotentialSkip(); + } else if (code !== -1) { + point.column++; + point.offset++; + } // Not in a string chunk. - if ( - result && - result.charCodeAt(result.length - 1) !== 10 && - result.charCodeAt(result.length - 1) !== 13 - ) { - result += '\n'; - } + if (point._bufferIndex < 0) { + point._index++; + } else { + point._bufferIndex++; // At end of string chunk. + // @ts-expect-error Points w/ non-negative `_bufferIndex` reference + // strings. - return result + if (point._bufferIndex === chunks[point._index].length) { + point._bufferIndex = -1; + point._index++; + } + } // Expose the previous character. - function enter(name) { - context.stack.push(name); - return exit + context.previous = code; // Mark as consumed. + } + /** @type {Effects['enter']} */ - function exit() { - context.stack.pop(); - } + function enter(type, fields) { + /** @type {Token} */ + // @ts-expect-error Patch instead of assign required fields to help GC. + const token = fields || {}; + token.type = type; + token.start = now(); + context.events.push(['enter', token, context]); + stack.push(token); + return token } -} + /** @type {Effects['exit']} */ -function invalid(value) { - throw new Error('Cannot handle value `' + value + '`, expected node') -} + function exit(type) { + const token = stack.pop(); + token.end = now(); + context.events.push(['exit', token, context]); + return token + } + /** + * Use results. + * + * @type {ReturnHandle} + */ -function unknown(node) { - throw new Error('Cannot handle unknown node `' + node.type + '`') -} + function onsuccessfulconstruct(construct, info) { + addResult(construct, info.from); + } + /** + * Discard results. + * + * @type {ReturnHandle} + */ -function joinDefinition(left, right) { - // No blank line between adjacent definitions. - if (left.type === 'definition' && left.type === right.type) { - return 0 + function onsuccessfulcheck(_, info) { + info.restore(); } -} + /** + * Factory to attempt/check/interrupt. + * + * @param {ReturnHandle} onreturn + * @param {Record} [fields] + */ -var mdastUtilToMarkdown = lib$8; + function constructFactory(onreturn, fields) { + return hook + /** + * Handle either an object mapping codes to constructs, a list of + * constructs, or a single construct. + * + * @param {Construct|Construct[]|ConstructRecord} constructs + * @param {State} returnState + * @param {State} [bogusState] + * @returns {State} + */ -var remarkStringify = stringify$6; + function hook(constructs, returnState, bogusState) { + /** @type {Construct[]} */ + let listOfConstructs; + /** @type {number} */ + + let constructIndex; + /** @type {Construct} */ + + let currentConstruct; + /** @type {Info} */ + + let info; + return Array.isArray(constructs) + ? /* c8 ignore next 1 */ + handleListOfConstructs(constructs) + : 'tokenize' in constructs // @ts-expect-error Looks like a construct. + ? handleListOfConstructs([constructs]) + : handleMapOfConstructs(constructs) + /** + * Handle a list of construct. + * + * @param {ConstructRecord} map + * @returns {State} + */ + + function handleMapOfConstructs(map) { + return start + /** @type {State} */ + function start(code) { + const def = code !== null && map[code]; + const all = code !== null && map.null; + const list = [ + // To do: add more extension tests. + /* c8 ignore next 2 */ + ...(Array.isArray(def) ? def : def ? [def] : []), + ...(Array.isArray(all) ? all : all ? [all] : []) + ]; + return handleListOfConstructs(list)(code) + } + } + /** + * Handle a list of construct. + * + * @param {Construct[]} list + * @returns {State} + */ -function stringify$6(options) { - var self = this; + function handleListOfConstructs(list) { + listOfConstructs = list; + constructIndex = 0; - this.Compiler = compile; + if (list.length === 0) { + return bogusState + } - function compile(tree) { - return mdastUtilToMarkdown( - tree, - Object.assign({}, self.data('settings'), options, { - // Note: this option is not in the readme. - // The goal is for it to be set by plugins on `data` instead of being - // passed by users. - extensions: self.data('toMarkdownExtensions') || [] - }) - ) - } -} + return handleConstruct(list[constructIndex]) + } + /** + * Handle a single construct. + * + * @param {Construct} construct + * @returns {State} + */ -var remark = unified_1().use(remarkParse).use(remarkStringify).freeze(); + function handleConstruct(construct) { + return start + /** @type {State} */ -const name = "remark"; -const version$1 = "13.0.0"; -const description = "Markdown processor powered by plugins part of the unified collective"; -const license = "MIT"; -const keywords$1 = [ - "unified", - "remark", - "markdown", - "mdast", - "abstract", - "syntax", - "tree", - "ast", - "parse", - "stringify", - "serialize", - "compile", - "process" -]; -const homepage = "https://remark.js.org"; -const repository = "https://github.com/remarkjs/remark/tree/main/packages/remark"; -const bugs = "https://github.com/remarkjs/remark/issues"; -const funding = { - type: "opencollective", - url: "https://opencollective.com/unified" -}; -const author = "Titus Wormer (https://wooorm.com)"; -const contributors = [ - "Titus Wormer (https://wooorm.com)" -]; -const files = [ - "index.js", - "types/index.d.ts" -]; -const types = "types/index.d.ts"; -const dependencies = { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - unified: "^9.1.0" -}; -const scripts = { - test: "tape test.js" -}; -const xo = false; -var proc = { - name: name, - version: version$1, - description: description, - license: license, - keywords: keywords$1, - homepage: homepage, - repository: repository, - bugs: bugs, - funding: funding, - author: author, - contributors: contributors, - files: files, - types: types, - dependencies: dependencies, - scripts: scripts, - xo: xo -}; + function start(code) { + // To do: not needed to store if there is no bogus state, probably? + // Currently doesn’t work because `inspect` in document does a check + // w/o a bogus, which doesn’t make sense. But it does seem to help perf + // by not storing. + info = store(); + currentConstruct = construct; -const name$1 = "node-lint-md-cli-rollup"; -const description$1 = "remark packaged for Node.js Markdown linting"; -const version$2 = "2.0.2"; -const devDependencies = { - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - rollup: "^2.36.1", - shx: "^0.3.3" -}; -const dependencies$1 = { - "markdown-extensions": "^1.1.1", - remark: "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", - "remark-preset-lint-node": "^2.3.0", - "unified-args": "^8.1.0" -}; -const main = "dist/index.js"; -const scripts$1 = { - build: "npx rollup -c", - "build-node": "npm run build && npx shx cp dist/index.js ../lint-md.js" -}; -var cli = { - name: name$1, - description: description$1, - version: version$2, - devDependencies: devDependencies, - dependencies: dependencies$1, - main: main, - scripts: scripts$1 -}; + if (!construct.partial) { + context.currentConstruct = construct; + } -var vfileLocation = factory$2; + if ( + construct.name && + context.parser.constructs.disable.null.includes(construct.name) + ) { + return nok() + } -function factory$2(file) { - var value = String(file); - var indices = []; - var search = /\r?\n|\r/g; + return construct.tokenize.call( + // If we do have fields, create an object w/ `context` as its + // prototype. + // This allows a “live binding”, which is needed for `interrupt`. + fields ? Object.assign(Object.create(context), fields) : context, + effects, + ok, + nok + )(code) + } + } + /** @type {State} */ - while (search.exec(value)) { - indices.push(search.lastIndex); + function ok(code) { + onreturn(currentConstruct, info); + return returnState + } + /** @type {State} */ + + function nok(code) { + info.restore(); + + if (++constructIndex < listOfConstructs.length) { + return handleConstruct(listOfConstructs[constructIndex]) + } + + return bogusState + } + } } + /** + * @param {Construct} construct + * @param {number} from + * @returns {void} + */ - indices.push(value.length + 1); + function addResult(construct, from) { + if (construct.resolveAll && !resolveAllConstructs.includes(construct)) { + resolveAllConstructs.push(construct); + } - return { - toPoint: offsetToPoint, - toPosition: offsetToPoint, - toOffset: pointToOffset + if (construct.resolve) { + splice( + context.events, + from, + context.events.length - from, + construct.resolve(context.events.slice(from), context) + ); + } + + if (construct.resolveTo) { + context.events = construct.resolveTo(context.events, context); + } } + /** + * Store state. + * + * @returns {Info} + */ - // Get the line and column-based `point` for `offset` in the bound indices. - function offsetToPoint(offset) { - var index = -1; + function store() { + const startPoint = now(); + const startPrevious = context.previous; + const startCurrentConstruct = context.currentConstruct; + const startEventsIndex = context.events.length; + const startStack = Array.from(stack); + return { + restore, + from: startEventsIndex + } + /** + * Restore state. + * + * @returns {void} + */ - if (offset > -1 && offset < indices[indices.length - 1]) { - while (++index < indices.length) { - if (indices[index] > offset) { - return { - line: index + 1, - column: offset - (indices[index - 1] || 0) + 1, - offset: offset - } - } - } + function restore() { + point = startPoint; + context.previous = startPrevious; + context.currentConstruct = startCurrentConstruct; + context.events.length = startEventsIndex; + stack = startStack; + accountForPotentialSkip(); } + } + /** + * Move the current point a bit forward in the line when it’s on a column + * skip. + * + * @returns {void} + */ - return {} + function accountForPotentialSkip() { + if (point.line in columnStart && point.column < 2) { + point.column = columnStart[point.line]; + point.offset += columnStart[point.line] - 1; + } } +} +/** + * Get the chunks from a slice of chunks in the range of a token. + * + * @param {Chunk[]} chunks + * @param {Pick} token + * @returns {Chunk[]} + */ - // Get the `offset` for a line and column-based `point` in the bound - // indices. - function pointToOffset(point) { - var line = point && point.line; - var column = point && point.column; - var offset; +function sliceChunks(chunks, token) { + const startIndex = token.start._index; + const startBufferIndex = token.start._bufferIndex; + const endIndex = token.end._index; + const endBufferIndex = token.end._bufferIndex; + /** @type {Chunk[]} */ - if (!isNaN(line) && !isNaN(column) && line - 1 in indices) { - offset = (indices[line - 2] || 0) + column - 1 || 0; + let view; + + if (startIndex === endIndex) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]; + } else { + view = chunks.slice(startIndex, endIndex); + + if (startBufferIndex > -1) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view[0] = view[0].slice(startBufferIndex); } - return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 + if (endBufferIndex > 0) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view.push(chunks[endIndex].slice(0, endBufferIndex)); + } } + + return view } +/** + * Get the string value of a slice of chunks. + * + * @param {Chunk[]} chunks + * @param {boolean} [expandTabs=false] + * @returns {string} + */ + +function serializeChunks(chunks, expandTabs) { + let index = -1; + /** @type {string[]} */ -var convert_1 = convert$3; + const result = []; + /** @type {boolean|undefined} */ -function convert$3(test) { - if (test == null) { - return ok$1 - } + let atTab; - if (typeof test === 'string') { - return typeFactory(test) - } + while (++index < chunks.length) { + const chunk = chunks[index]; + /** @type {string} */ - if (typeof test === 'object') { - return 'length' in test ? anyFactory(test) : allFactory(test) - } + let value; - if (typeof test === 'function') { - return test - } + if (typeof chunk === 'string') { + value = chunk; + } else + switch (chunk) { + case -5: { + value = '\r'; + break + } - throw new Error('Expected function, string, or object as test') -} + case -4: { + value = '\n'; + break + } -// Utility assert each property in `test` is represented in `node`, and each -// values are strictly equal. -function allFactory(test) { - return all + case -3: { + value = '\r' + '\n'; + break + } - function all(node) { - var key; + case -2: { + value = expandTabs ? ' ' : '\t'; + break + } - for (key in test) { - if (node[key] !== test[key]) return false - } + case -1: { + if (!expandTabs && atTab) continue + value = ' '; + break + } - return true + default: { + // Currently only replacement character. + value = String.fromCharCode(chunk); + } + } + + atTab = chunk === -2; + result.push(value); } -} -function anyFactory(tests) { - var checks = []; - var index = -1; + return result.join('') +} - while (++index < tests.length) { - checks[index] = convert$3(tests[index]); - } +/** + * @typedef {import('micromark-util-types').Extension} Extension + */ +/** @type {Extension['document']} */ + +const document$1 = { + [42]: list$1, + [43]: list$1, + [45]: list$1, + [48]: list$1, + [49]: list$1, + [50]: list$1, + [51]: list$1, + [52]: list$1, + [53]: list$1, + [54]: list$1, + [55]: list$1, + [56]: list$1, + [57]: list$1, + [62]: blockQuote +}; +/** @type {Extension['contentInitial']} */ + +const contentInitial = { + [91]: definition$1 +}; +/** @type {Extension['flowInitial']} */ + +const flowInitial = { + [-2]: codeIndented, + [-1]: codeIndented, + [32]: codeIndented +}; +/** @type {Extension['flow']} */ + +const flow = { + [35]: headingAtx, + [42]: thematicBreak$1, + [45]: [setextUnderline, thematicBreak$1], + [60]: htmlFlow, + [61]: setextUnderline, + [95]: thematicBreak$1, + [96]: codeFenced, + [126]: codeFenced +}; +/** @type {Extension['string']} */ + +const string = { + [38]: characterReference$1, + [92]: characterEscape$1 +}; +/** @type {Extension['text']} */ + +const text$2 = { + [-5]: lineEnding, + [-4]: lineEnding, + [-3]: lineEnding, + [33]: labelStartImage, + [38]: characterReference$1, + [42]: attention, + [60]: [autolink, htmlText], + [91]: labelStartLink, + [92]: [hardBreakEscape, characterEscape$1], + [93]: labelEnd, + [95]: attention, + [96]: codeText +}; +/** @type {Extension['insideSpan']} */ + +const insideSpan = { + null: [attention, resolver] +}; +/** @type {Extension['disable']} */ + +const disable = { + null: [] +}; - return any +var defaultConstructs = /*#__PURE__*/Object.freeze({ + __proto__: null, + document: document$1, + contentInitial: contentInitial, + flowInitial: flowInitial, + flow: flow, + string: string, + text: text$2, + insideSpan: insideSpan, + disable: disable +}); - function any() { - var index = -1; +/** + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension + * @typedef {import('micromark-util-types').ParseOptions} ParseOptions + * @typedef {import('micromark-util-types').ParseContext} ParseContext + * @typedef {import('micromark-util-types').Create} Create + */ +/** + * @param {ParseOptions} [options] + * @returns {ParseContext} + */ - while (++index < checks.length) { - if (checks[index].apply(this, arguments)) { - return true - } - } +function parse(options = {}) { + /** @type {FullNormalizedExtension} */ + // @ts-expect-error `defaultConstructs` is full, so the result will be too. + const constructs = combineExtensions( + // @ts-expect-error Same as above. + [defaultConstructs].concat(options.extensions || []) + ); + /** @type {ParseContext} */ - return false - } -} + const parser = { + defined: [], + lazy: {}, + constructs, + content: create(content$1), + document: create(document$2), + flow: create(flow$1), + string: create(string$1), + text: create(text$3) + }; + return parser + /** + * @param {InitialConstruct} initial + */ -// Utility to convert a string into a function which checks a given node’s type -// for said string. -function typeFactory(test) { - return type + function create(initial) { + return creator + /** @type {Create} */ - function type(node) { - return Boolean(node && node.type === test) + function creator(from) { + return createTokenizer(parser, initial, from) + } } } -// Utility to return true. -function ok$1() { - return true -} - -var color_1 = color$1; -function color$1(d) { - return '\u001B[33m' + d + '\u001B[39m' -} +/** + * @typedef {import('micromark-util-types').Encoding} Encoding + * @typedef {import('micromark-util-types').Value} Value + * @typedef {import('micromark-util-types').Chunk} Chunk + * @typedef {import('micromark-util-types').Code} Code + */ -var unistUtilVisitParents = visitParents; +/** + * @callback Preprocessor + * @param {Value} value + * @param {Encoding} [encoding] + * @param {boolean} [end=false] + * @returns {Chunk[]} + */ +const search = /[\0\t\n\r]/g; +/** + * @returns {Preprocessor} + */ +function preprocess() { + let column = 1; + let buffer = ''; + /** @type {boolean|undefined} */ + let start = true; + /** @type {boolean|undefined} */ + let atCarriageReturn; + return preprocessor + /** @type {Preprocessor} */ -var CONTINUE = true; -var SKIP = 'skip'; -var EXIT = false; + function preprocessor(value, encoding, end) { + /** @type {Chunk[]} */ + const chunks = []; + /** @type {RegExpMatchArray|null} */ -visitParents.CONTINUE = CONTINUE; -visitParents.SKIP = SKIP; -visitParents.EXIT = EXIT; + let match; + /** @type {number} */ -function visitParents(tree, test, visitor, reverse) { - var step; - var is; + let next; + /** @type {number} */ - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } + let startPosition; + /** @type {number} */ - is = convert_1(test); - step = reverse ? -1 : 1; + let endPosition; + /** @type {Code} */ - factory(tree, null, [])(); + let code; // @ts-expect-error `Buffer` does allow an encoding. - function factory(node, index, parents) { - var value = typeof node === 'object' && node !== null ? node : {}; - var name; + value = buffer + value.toString(encoding); + startPosition = 0; + buffer = ''; - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; + if (start) { + if (value.charCodeAt(0) === 65279) { + startPosition++; + } - visit.displayName = - 'node (' + color_1(value.type + (name ? '<' + name + '>' : '')) + ')'; + start = undefined; } - return visit + while (startPosition < value.length) { + search.lastIndex = startPosition; + match = search.exec(value); + endPosition = + match && match.index !== undefined ? match.index : value.length; + code = value.charCodeAt(endPosition); - function visit() { - var grandparents = parents.concat(node); - var result = []; - var subresult; - var offset; + if (!match) { + buffer = value.slice(startPosition); + break + } - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult(visitor(node, parents)); + if (code === 10 && startPosition === endPosition && atCarriageReturn) { + chunks.push(-3); + atCarriageReturn = undefined; + } else { + if (atCarriageReturn) { + chunks.push(-5); + atCarriageReturn = undefined; + } - if (result[0] === EXIT) { - return result + if (startPosition < endPosition) { + chunks.push(value.slice(startPosition, endPosition)); + column += endPosition - startPosition; } - } - if (node.children && result[0] !== SKIP) { - offset = (reverse ? node.children.length : -1) + step; + switch (code) { + case 0: { + chunks.push(65533); + column++; + break + } + + case 9: { + next = Math.ceil(column / 4) * 4; + chunks.push(-2); + + while (column++ < next) chunks.push(-1); - while (offset > -1 && offset < node.children.length) { - subresult = factory(node.children[offset], offset, grandparents)(); + break + } - if (subresult[0] === EXIT) { - return subresult + case 10: { + chunks.push(-4); + column = 1; + break } - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; + default: { + atCarriageReturn = true; + column = 1; + } } } - return result + startPosition = endPosition + 1; } - } -} -function toResult(value) { - if (value !== null && typeof value === 'object' && 'length' in value) { - return value - } + if (end) { + if (atCarriageReturn) chunks.push(-5); + if (buffer) chunks.push(buffer); + chunks.push(null); + } - if (typeof value === 'number') { - return [CONTINUE, value] + return chunks } - - return [value] } -var unistUtilVisit = visit; - +/** + * @typedef {import('micromark-util-types').Event} Event + */ +/** + * @param {Event[]} events + * @returns {Event[]} + */ +function postprocess(events) { + while (!subtokenize(events)) { + // Empty + } -var CONTINUE$1 = unistUtilVisitParents.CONTINUE; -var SKIP$1 = unistUtilVisitParents.SKIP; -var EXIT$1 = unistUtilVisitParents.EXIT; + return events +} -visit.CONTINUE = CONTINUE$1; -visit.SKIP = SKIP$1; -visit.EXIT = EXIT$1; +/** + * Turn the number (in string form as either hexa- or plain decimal) coming from + * a numeric character reference into a character. + * + * @param {string} value + * Value to decode. + * @param {number} base + * Numeric base. + * @returns {string} + */ +function decodeNumericCharacterReference(value, base) { + const code = Number.parseInt(value, base); -function visit(tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; + if ( + // C0 except for HT, LF, FF, CR, space + code < 9 || + code === 11 || + (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls. + (code > 126 && code < 160) || // Lone high surrogates and low surrogates. + (code > 55295 && code < 57344) || // Noncharacters. + (code > 64975 && code < 65008) || + (code & 65535) === 65535 || + (code & 65535) === 65534 || // Out of range + code > 1114111 + ) { + return '\uFFFD' } - unistUtilVisitParents(tree, test, overload, reverse); - - function overload(node, parents) { - var parent = parents[parents.length - 1]; - var index = parent ? parent.children.indexOf(node) : null; - return visitor(node, index, parent) - } + return String.fromCharCode(code) } -var unifiedMessageControl = messageControl; +/** + * @typedef {import('micromark-util-types').Encoding} Encoding + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').ParseOptions} ParseOptions + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').Value} Value + * @typedef {Root|Root['children'][number]} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist').Point} Point + * @typedef {import('mdast').Break} Break + * @typedef {import('mdast').Blockquote} Blockquote + * @typedef {import('mdast').Code} Code + * @typedef {import('mdast').Definition} Definition + * @typedef {import('mdast').Emphasis} Emphasis + * @typedef {import('mdast').Heading} Heading + * @typedef {import('mdast').HTML} HTML + * @typedef {import('mdast').Image} Image + * @typedef {import('mdast').InlineCode} InlineCode + * @typedef {import('mdast').Link} Link + * @typedef {import('mdast').List} List + * @typedef {import('mdast').ListItem} ListItem + * @typedef {import('mdast').Paragraph} Paragraph + * @typedef {import('mdast').Root} Root + * @typedef {import('mdast').Strong} Strong + * @typedef {import('mdast').Text} Text + * @typedef {import('mdast').ThematicBreak} ThematicBreak + */ +const own$4 = {}.hasOwnProperty; +/** + * @param value Markdown to parse (`string` or `Buffer`). + * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`). + * @param [options] Configuration + */ -function messageControl(options) { - var settings = options || {}; - var enable = settings.enable || []; - var disable = settings.disable || []; - var sources = settings.source; - var reset = settings.reset; +const fromMarkdown = + /** + * @type {( + * ((value: Value, encoding: Encoding, options?: Options) => Root) & + * ((value: Value, options?: Options) => Root) + * )} + */ - if (!settings.name) { - throw new Error('Expected `name` in `options`, got `' + settings.name + '`') - } + /** + * @param {Value} value + * @param {Encoding} [encoding] + * @param {Options} [options] + * @returns {Root} + */ + function (value, encoding, options) { + if (typeof encoding !== 'string') { + options = encoding; + encoding = undefined; + } - if (!settings.marker) { - throw new Error( - 'Expected `marker` in `options`, got `' + settings.marker + '`' + return compiler(options)( + postprocess( + parse(options).document().write(preprocess()(value, encoding, true)) + ) ) - } - - if (!sources) { - sources = [settings.name]; - } else if (typeof sources === 'string') { - sources = [sources]; - } - - return transformer + }; +/** + * Note this compiler only understand complete buffering, not streaming. + * + * @param {Options} [options] + */ - function transformer(tree, file) { - var toOffset = vfileLocation(file).toOffset; - var initial = !reset; - var gaps = detectGaps(tree, file); - var scope = {}; - var globals = []; +function compiler(options = {}) { + /** @type {NormalizedExtension} */ + // @ts-expect-error: our base has all required fields, so the result will too. + const config = configure$1( + { + transforms: [], + canContainEols: [ + 'emphasis', + 'fragment', + 'heading', + 'paragraph', + 'strong' + ], + enter: { + autolink: opener(link), + autolinkProtocol: onenterdata, + autolinkEmail: onenterdata, + atxHeading: opener(heading), + blockQuote: opener(blockQuote), + characterEscape: onenterdata, + characterReference: onenterdata, + codeFenced: opener(codeFlow), + codeFencedFenceInfo: buffer, + codeFencedFenceMeta: buffer, + codeIndented: opener(codeFlow, buffer), + codeText: opener(codeText, buffer), + codeTextData: onenterdata, + data: onenterdata, + codeFlowValue: onenterdata, + definition: opener(definition), + definitionDestinationString: buffer, + definitionLabelString: buffer, + definitionTitleString: buffer, + emphasis: opener(emphasis), + hardBreakEscape: opener(hardBreak), + hardBreakTrailing: opener(hardBreak), + htmlFlow: opener(html, buffer), + htmlFlowData: onenterdata, + htmlText: opener(html, buffer), + htmlTextData: onenterdata, + image: opener(image), + label: buffer, + link: opener(link), + listItem: opener(listItem), + listItemValue: onenterlistitemvalue, + listOrdered: opener(list, onenterlistordered), + listUnordered: opener(list), + paragraph: opener(paragraph), + reference: onenterreference, + referenceString: buffer, + resourceDestinationString: buffer, + resourceTitleString: buffer, + setextHeading: opener(heading), + strong: opener(strong), + thematicBreak: opener(thematicBreak) + }, + exit: { + atxHeading: closer(), + atxHeadingSequence: onexitatxheadingsequence, + autolink: closer(), + autolinkEmail: onexitautolinkemail, + autolinkProtocol: onexitautolinkprotocol, + blockQuote: closer(), + characterEscapeValue: onexitdata, + characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker, + characterReferenceMarkerNumeric: onexitcharacterreferencemarker, + characterReferenceValue: onexitcharacterreferencevalue, + codeFenced: closer(onexitcodefenced), + codeFencedFence: onexitcodefencedfence, + codeFencedFenceInfo: onexitcodefencedfenceinfo, + codeFencedFenceMeta: onexitcodefencedfencemeta, + codeFlowValue: onexitdata, + codeIndented: closer(onexitcodeindented), + codeText: closer(onexitcodetext), + codeTextData: onexitdata, + data: onexitdata, + definition: closer(), + definitionDestinationString: onexitdefinitiondestinationstring, + definitionLabelString: onexitdefinitionlabelstring, + definitionTitleString: onexitdefinitiontitlestring, + emphasis: closer(), + hardBreakEscape: closer(onexithardbreak), + hardBreakTrailing: closer(onexithardbreak), + htmlFlow: closer(onexithtmlflow), + htmlFlowData: onexitdata, + htmlText: closer(onexithtmltext), + htmlTextData: onexitdata, + image: closer(onexitimage), + label: onexitlabel, + labelText: onexitlabeltext, + lineEnding: onexitlineending, + link: closer(onexitlink), + listItem: closer(), + listOrdered: closer(), + listUnordered: closer(), + paragraph: closer(), + referenceString: onexitreferencestring, + resourceDestinationString: onexitresourcedestinationstring, + resourceTitleString: onexitresourcetitlestring, + resource: onexitresource, + setextHeading: closer(onexitsetextheading), + setextHeadingLineSequence: onexitsetextheadinglinesequence, + setextHeadingText: onexitsetextheadingtext, + strong: closer(), + thematicBreak: closer() + } + }, + options.mdastExtensions || [] + ); + /** @type {CompileData} */ - unistUtilVisit(tree, settings.test, visitor); + const data = {}; + return compile + /** + * @param {Array.} events + * @returns {Root} + */ - file.messages = file.messages.filter(filter); + function compile(events) { + /** @type {Root} */ + let tree = { + type: 'root', + children: [] + }; + /** @type {CompileContext['stack']} */ + + const stack = [tree]; + /** @type {CompileContext['tokenStack']} */ + + const tokenStack = []; + /** @type {Array.} */ + + const listStack = []; + /** @type {Omit} */ + + const context = { + stack, + tokenStack, + config, + enter, + exit, + buffer, + resume, + setData, + getData + }; + let index = -1; - function visitor(node, position, parent) { - var mark = settings.marker(node); - var ruleIds; - var verb; - var pos; - var tail; - var index; - var ruleId; - - if (!mark || mark.name !== settings.name) { - return + while (++index < events.length) { + // We preprocess lists to add `listItem` tokens, and to infer whether + // items the list itself are spread out. + if ( + events[index][1].type === 'listOrdered' || + events[index][1].type === 'listUnordered' + ) { + if (events[index][0] === 'enter') { + listStack.push(index); + } else { + const tail = listStack.pop(); + index = prepareList(events, tail, index); + } } + } - ruleIds = mark.attributes.split(/\s/g); - verb = ruleIds.shift(); - pos = mark.node.position && mark.node.position.start; - tail = - parent.children[position + 1] && - parent.children[position + 1].position && - parent.children[position + 1].position.end; - index = -1; + index = -1; - if (verb !== 'enable' && verb !== 'disable' && verb !== 'ignore') { - file.fail( - 'Unknown keyword `' + - verb + - '`: expected ' + - "`'enable'`, `'disable'`, or `'ignore'`", - mark.node + while (++index < events.length) { + const handler = config[events[index][0]]; + + if (own$4.call(handler, events[index][1].type)) { + handler[events[index][1].type].call( + Object.assign( + { + sliceSerialize: events[index][2].sliceSerialize + }, + context + ), + events[index][1] ); } + } - // Apply to all rules. - if (ruleIds.length) { - while (++index < ruleIds.length) { - ruleId = ruleIds[index]; - - if (isKnown(ruleId, verb, mark.node)) { - toggle(pos, verb === 'enable', ruleId); + if (tokenStack.length > 0) { + throw new Error( + 'Cannot close document, a token (`' + + tokenStack[tokenStack.length - 1].type + + '`, ' + + stringifyPosition$1({ + start: tokenStack[tokenStack.length - 1].start, + end: tokenStack[tokenStack.length - 1].end + }) + + ') is still open' + ) + } // Figure out `root` position. - if (verb === 'ignore') { - toggle(tail, true, ruleId); + tree.position = { + start: point( + events.length > 0 + ? events[0][1].start + : { + line: 1, + column: 1, + offset: 0 } - } - } - } else if (verb === 'ignore') { - toggle(pos, false); - toggle(tail, true); - } else { - toggle(pos, verb === 'enable'); - reset = verb !== 'enable'; - } + ), + end: point( + events.length > 0 + ? events[events.length - 2][1].end + : { + line: 1, + column: 1, + offset: 0 + } + ) + }; + index = -1; + + while (++index < config.transforms.length) { + tree = config.transforms[index](tree) || tree; } - function filter(message) { - var gapIndex = gaps.length; - var pos; + return tree + } + /** + * @param {Array.} events + * @param {number} start + * @param {number} length + * @returns {number} + */ - // Keep messages from a different source. - if (!message.source || sources.indexOf(message.source) === -1) { - return true - } + function prepareList(events, start, length) { + let index = start - 1; + let containerBalance = -1; + let listSpread = false; + /** @type {Token|undefined} */ - // We only ignore messages if they‘re disabled, *not* when they’re not in - // the document. - if (!message.line) { - message.line = 1; - } + let listItem; + /** @type {number|undefined} */ - if (!message.column) { - message.column = 1; - } + let lineIndex; + /** @type {number|undefined} */ - // Check whether the warning is inside a gap. - pos = toOffset(message); + let firstBlankLineIndex; + /** @type {boolean|undefined} */ - while (gapIndex--) { - if (gaps[gapIndex].start <= pos && gaps[gapIndex].end > pos) { - return false - } - } + let atMarker; - // Check whether allowed by specific and global states. - return ( - check(message, scope[message.ruleId], message.ruleId) && - check(message, globals) - ) - } + while (++index <= length) { + const event = events[index]; - // Helper to check (and possibly warn) if a `ruleId` is unknown. - function isKnown(ruleId, verb, pos) { - var result = settings.known ? settings.known.indexOf(ruleId) !== -1 : true; + if ( + event[1].type === 'listUnordered' || + event[1].type === 'listOrdered' || + event[1].type === 'blockQuote' + ) { + if (event[0] === 'enter') { + containerBalance++; + } else { + containerBalance--; + } - if (!result) { - file.message( - 'Unknown rule: cannot ' + verb + " `'" + ruleId + "'`", - pos - ); - } + atMarker = undefined; + } else if (event[1].type === 'lineEndingBlank') { + if (event[0] === 'enter') { + if ( + listItem && + !atMarker && + !containerBalance && + !firstBlankLineIndex + ) { + firstBlankLineIndex = index; + } - return result - } + atMarker = undefined; + } + } else if ( + event[1].type === 'linePrefix' || + event[1].type === 'listItemValue' || + event[1].type === 'listItemMarker' || + event[1].type === 'listItemPrefix' || + event[1].type === 'listItemPrefixWhitespace' + ) ; else { + atMarker = undefined; + } - // Get the latest state of a rule. - // When without `ruleId`, gets global state. - function getState(ruleId) { - var ranges = ruleId ? scope[ruleId] : globals; + if ( + (!containerBalance && + event[0] === 'enter' && + event[1].type === 'listItemPrefix') || + (containerBalance === -1 && + event[0] === 'exit' && + (event[1].type === 'listUnordered' || + event[1].type === 'listOrdered')) + ) { + if (listItem) { + let tailIndex = index; + lineIndex = undefined; - if (ranges && ranges.length) { - return ranges[ranges.length - 1].state - } + while (tailIndex--) { + const tailEvent = events[tailIndex]; - if (!ruleId) { - return !reset - } + if ( + tailEvent[1].type === 'lineEnding' || + tailEvent[1].type === 'lineEndingBlank' + ) { + if (tailEvent[0] === 'exit') continue - return reset ? enable.indexOf(ruleId) > -1 : disable.indexOf(ruleId) < 0 - } + if (lineIndex) { + events[lineIndex][1].type = 'lineEndingBlank'; + listSpread = true; + } - // Handle a rule. - function toggle(pos, state, ruleId) { - var markers = ruleId ? scope[ruleId] : globals; - var previousState; + tailEvent[1].type = 'lineEnding'; + lineIndex = tailIndex; + } else if ( + tailEvent[1].type === 'linePrefix' || + tailEvent[1].type === 'blockQuotePrefix' || + tailEvent[1].type === 'blockQuotePrefixWhitespace' || + tailEvent[1].type === 'blockQuoteMarker' || + tailEvent[1].type === 'listItemIndent' + ) ; else { + break + } + } - if (!markers) { - markers = []; - scope[ruleId] = markers; - } + if ( + firstBlankLineIndex && + (!lineIndex || firstBlankLineIndex < lineIndex) + ) { + // @ts-expect-error Patched. + listItem._spread = true; + } // Fix position. - previousState = getState(ruleId); + listItem.end = Object.assign( + {}, + lineIndex ? events[lineIndex][1].start : event[1].end + ); + events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]); + index++; + length++; + } // Create a new list item. - if (state !== previousState) { - markers.push({state: state, position: pos}); - } + if (event[1].type === 'listItemPrefix') { + listItem = { + type: 'listItem', + // @ts-expect-error Patched + _spread: false, + start: Object.assign({}, event[1].start) + }; // @ts-expect-error: `listItem` is most definitely defined, TS... - // Toggle all known rules. - if (!ruleId) { - for (ruleId in scope) { - toggle(pos, state, ruleId); + events.splice(index, 0, ['enter', listItem, event[2]]); + index++; + length++; + firstBlankLineIndex = undefined; + atMarker = true; } } - } + } // @ts-expect-error Patched. - // Check all `ranges` for `message`. - function check(message, ranges, ruleId) { - // Check the state at the message’s position. - var index = ranges && ranges.length; + events[start][1]._spread = listSpread; + return length + } + /** + * @type {CompileContext['setData']} + * @param [value] + */ - while (index--) { - if ( - ranges[index].position && - ranges[index].position.line && - ranges[index].position.column && - (ranges[index].position.line < message.line || - (ranges[index].position.line === message.line && - ranges[index].position.column <= message.column)) - ) { - return ranges[index].state === true - } - } + function setData(key, value) { + data[key] = value; + } + /** + * @type {CompileContext['getData']} + * @template {string} K + * @param {K} key + * @returns {CompileData[K]} + */ - // The first marker ocurred after the first message, so we check the - // initial state. - if (!ruleId) { - return initial || reset - } + function getData(key) { + return data[key] + } + /** + * @param {Point} d + * @returns {Point} + */ - return reset ? enable.indexOf(ruleId) > -1 : disable.indexOf(ruleId) < 0 + function point(d) { + return { + line: d.line, + column: d.column, + offset: d.offset } } -} - -// Detect gaps in `tree`. -function detectGaps(tree, file) { - var lastNode = tree.children[tree.children.length - 1]; - var offset = 0; - var gaps = []; - var gap; + /** + * @param {(token: Token) => Node} create + * @param {Handle} [and] + * @returns {Handle} + */ - // Find all gaps. - unistUtilVisit(tree, one); + function opener(create, and) { + return open + /** + * @this {CompileContext} + * @param {Token} token + * @returns {void} + */ - // Get the end of the document. - // This detects if the last node was the last node. - // If not, there’s an extra gap between the last node and the end of the - // document. - if ( - lastNode && - lastNode.position && - lastNode.position.end && - offset === lastNode.position.end.offset && - trim(file.toString().slice(offset)) !== '' - ) { - update(); + function open(token) { + enter.call(this, create(token), token); + if (and) and.call(this, token); + } + } + /** @type {CompileContext['buffer']} */ - update( - tree && tree.position && tree.position.end && tree.position.end.offset - 1 - ); + function buffer() { + // @ts-expect-error: Custom node type to collect text. + this.stack.push({ + type: 'fragment', + children: [] + }); } + /** + * @type {CompileContext['enter']} + * @template {Node} N + * @this {CompileContext} + * @param {N} node + * @param {Token} token + * @returns {N} + */ - return gaps + function enter(node, token) { + /** @type {Parent} */ + // @ts-expect-error: Assume parent. + const parent = this.stack[this.stack.length - 1]; + parent.children.push(node); + this.stack.push(node); + this.tokenStack.push(token); // @ts-expect-error: `end` will be patched later. - function one(node) { - update(node.position && node.position.start && node.position.start.offset); + node.position = { + start: point(token.start) + }; + return node + } + /** + * @param {Handle} [and] + * @returns {Handle} + */ - if (!node.children) { - update(node.position && node.position.end && node.position.end.offset); + function closer(and) { + return close + /** + * @this {CompileContext} + * @param {Token} token + * @returns {void} + */ + + function close(token) { + if (and) and.call(this, token); + exit.call(this, token); } } + /** @type {CompileContext['exit']} */ - // Detect a new position. - function update(latest) { - if (latest === null || latest === undefined) { - gap = true; - } else if (offset < latest) { - if (gap) { - gaps.push({start: offset, end: latest}); - gap = null; - } + function exit(token) { + const node = this.stack.pop(); + const open = this.tokenStack.pop(); - offset = latest; + if (!open) { + throw new Error( + 'Cannot close `' + + token.type + + '` (' + + stringifyPosition$1({ + start: token.start, + end: token.end + }) + + '): it’s not open' + ) + } else if (open.type !== token.type) { + throw new Error( + 'Cannot close `' + + token.type + + '` (' + + stringifyPosition$1({ + start: token.start, + end: token.end + }) + + '): a different token (`' + + open.type + + '`, ' + + stringifyPosition$1({ + start: open.start, + end: open.end + }) + + ') is open' + ) } + + node.position.end = point(token.end); + return node } -} + /** + * @this {CompileContext} + * @returns {string} + */ -function trim(value) { - return value.replace(/^\s+|\s+$/g, '') -} + function resume() { + return toString(this.stack.pop()) + } // + // Handlers. + // -var mdastCommentMarker = marker$1; + /** @type {Handle} */ -var whiteSpaceExpression = /\s+/g; + function onenterlistordered() { + setData('expectingFirstListItemValue', true); + } + /** @type {Handle} */ -var parametersExpression = /\s+([-a-z0-9_]+)(?:=(?:"((?:\\[\s\S]|[^"])+)"|'((?:\\[\s\S]|[^'])+)'|((?:\\[\s\S]|[^"'\s])+)))?/gi; + function onenterlistitemvalue(token) { + if (getData('expectingFirstListItemValue')) { + this.stack[this.stack.length - 2].start = Number.parseInt( + this.sliceSerialize(token), + 10 + ); + setData('expectingFirstListItemValue'); + } + } + /** @type {Handle} */ -var commentExpression = /\s*([a-zA-Z0-9-]+)(\s+([\s\S]*))?\s*/; + function onexitcodefencedfenceinfo() { + const data = this.resume(); + this.stack[this.stack.length - 1].lang = data; + } + /** @type {Handle} */ -var markerExpression = new RegExp( - '(\\s*\\s*)' -); + function onexitcodefencedfencemeta() { + const data = this.resume(); + this.stack[this.stack.length - 1].meta = data; + } + /** @type {Handle} */ -// Parse a comment marker. -function marker$1(node) { - var type; - var value; - var match; - var params; + function onexitcodefencedfence() { + // Exit if this is the closing fence. + if (getData('flowCodeInside')) return + this.buffer(); + setData('flowCodeInside', true); + } + /** @type {Handle} */ - if (!node) { - return null + function onexitcodefenced() { + const data = this.resume(); + this.stack[this.stack.length - 1].value = data.replace( + /^(\r?\n|\r)|(\r?\n|\r)$/g, + '' + ); + setData('flowCodeInside'); } + /** @type {Handle} */ - type = node.type; + function onexitcodeindented() { + const data = this.resume(); + this.stack[this.stack.length - 1].value = data.replace(/(\r?\n|\r)$/g, ''); + } + /** @type {Handle} */ - if (type !== 'html' && type !== 'comment') { - return null + function onexitdefinitionlabelstring(token) { + // Discard label, use the source content instead. + const label = this.resume(); + this.stack[this.stack.length - 1].label = label; + this.stack[this.stack.length - 1].identifier = normalizeIdentifier( + this.sliceSerialize(token) + ).toLowerCase(); } + /** @type {Handle} */ - value = node.value; - match = value.match(type === 'comment' ? commentExpression : markerExpression); + function onexitdefinitiontitlestring() { + const data = this.resume(); + this.stack[this.stack.length - 1].title = data; + } + /** @type {Handle} */ - if (!match || match[0].length !== value.length) { - return null + function onexitdefinitiondestinationstring() { + const data = this.resume(); + this.stack[this.stack.length - 1].url = data; } + /** @type {Handle} */ - match = match.slice(node.type === 'comment' ? 1 : 2); + function onexitatxheadingsequence(token) { + if (!this.stack[this.stack.length - 1].depth) { + this.stack[this.stack.length - 1].depth = + this.sliceSerialize(token).length; + } + } + /** @type {Handle} */ - params = parameters(match[1] || ''); + function onexitsetextheadingtext() { + setData('setextHeadingSlurpLineEnding', true); + } + /** @type {Handle} */ - if (!params) { - return null + function onexitsetextheadinglinesequence(token) { + this.stack[this.stack.length - 1].depth = + this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2; } + /** @type {Handle} */ - return { - name: match[0], - attributes: match[2] || '', - parameters: params, - node: node + function onexitsetextheading() { + setData('setextHeadingSlurpLineEnding'); } -} + /** @type {Handle} */ -// Parse `value` into an object. -function parameters(value) { - var attributes = {}; - var rest = value.replace(parametersExpression, replacer); + function onenterdata(token) { + /** @type {Parent} */ + // @ts-expect-error: assume parent. + const parent = this.stack[this.stack.length - 1]; + /** @type {Node} */ + // @ts-expect-error: assume child. - return rest.replace(whiteSpaceExpression, '') ? null : attributes + let tail = parent.children[parent.children.length - 1]; - // eslint-disable-next-line max-params - function replacer($0, $1, $2, $3, $4) { - var result = $2 || $3 || $4 || ''; + if (!tail || tail.type !== 'text') { + // Add a new text node. + tail = text(); // @ts-expect-error: we’ll add `end` later. - if (result === 'true' || result === '') { - result = true; - } else if (result === 'false') { - result = false; - } else if (!isNaN(result)) { - result = Number(result); + tail.position = { + start: point(token.start) + }; + parent.children.push(tail); } - attributes[$1] = result; + this.stack.push(tail); + } + /** @type {Handle} */ - return '' + function onexitdata(token) { + const tail = this.stack.pop(); + tail.value += this.sliceSerialize(token); + tail.position.end = point(token.end); } -} + /** @type {Handle} */ -var remarkMessageControl = messageControl$1; + function onexitlineending(token) { + /** @type {Parent} */ + // @ts-expect-error: supposed to be a parent. + const context = this.stack[this.stack.length - 1]; -var test = [ - 'html', // Comments are `html` nodes in mdast. - 'comment' // In MDX, comments have their own node. -]; + // If we’re at a hard break, include the line ending in there. + if (getData('atHardBreak')) { + const tail = context.children[context.children.length - 1]; + tail.position.end = point(token.end); + setData('atHardBreak'); + return + } -function messageControl$1(options) { - return unifiedMessageControl(Object.assign({marker: mdastCommentMarker, test: test}, options)) -} + if ( + !getData('setextHeadingSlurpLineEnding') && + config.canContainEols.includes(context.type) + ) { + onenterdata.call(this, token); + onexitdata.call(this, token); + } + } + /** @type {Handle} */ -var remarkLint = lint; + function onexithardbreak() { + setData('atHardBreak', true); + } + /** @type {Handle} */ -// `remark-lint`. -// This adds support for ignoring stuff from messages (``). -// All rules are in their own packages and presets. -function lint() { - this.use(lintMessageControl); -} + function onexithtmlflow() { + const data = this.resume(); + this.stack[this.stack.length - 1].value = data; + } + /** @type {Handle} */ -function lintMessageControl() { - return remarkMessageControl({name: 'lint', source: 'remark-lint'}) -} + function onexithtmltext() { + const data = this.resume(); + this.stack[this.stack.length - 1].value = data; + } + /** @type {Handle} */ -/** - * An Array.prototype.slice.call(arguments) alternative - * - * @param {Object} args something with a length - * @param {Number} slice - * @param {Number} sliceEnd - * @api public - */ + function onexitcodetext() { + const data = this.resume(); + this.stack[this.stack.length - 1].value = data; + } + /** @type {Handle} */ -var sliced = function (args, slice, sliceEnd) { - var ret = []; - var len = args.length; + function onexitlink() { + const context = this.stack[this.stack.length - 1]; // To do: clean. - if (0 === len) return ret; + if (getData('inReference')) { + context.type += 'Reference'; + context.referenceType = getData('referenceType') || 'shortcut'; + delete context.url; + delete context.title; + } else { + delete context.identifier; + delete context.label; + delete context.referenceType; + } - var start = slice < 0 - ? Math.max(0, slice + len) - : slice || 0; + setData('referenceType'); + } + /** @type {Handle} */ - if (sliceEnd !== undefined) { - len = sliceEnd < 0 - ? sliceEnd + len - : sliceEnd; + function onexitimage() { + const context = this.stack[this.stack.length - 1]; // To do: clean. + + if (getData('inReference')) { + context.type += 'Reference'; + context.referenceType = getData('referenceType') || 'shortcut'; + delete context.url; + delete context.title; + } else { + delete context.identifier; + delete context.label; + delete context.referenceType; + } + + setData('referenceType'); } + /** @type {Handle} */ - while (len-- > start) { - ret[len - start] = args[len]; + function onexitlabeltext(token) { + this.stack[this.stack.length - 2].identifier = normalizeIdentifier( + this.sliceSerialize(token) + ).toLowerCase(); } + /** @type {Handle} */ - return ret; -}; + function onexitlabel() { + const fragment = this.stack[this.stack.length - 1]; + const value = this.resume(); + this.stack[this.stack.length - 1].label = value; // Assume a reference. -/** - * slice() reference. - */ + setData('inReference', true); -var slice$4 = Array.prototype.slice; + if (this.stack[this.stack.length - 1].type === 'link') { + this.stack[this.stack.length - 1].children = fragment.children; + } else { + this.stack[this.stack.length - 1].alt = value; + } + } + /** @type {Handle} */ -/** - * Expose `co`. - */ + function onexitresourcedestinationstring() { + const data = this.resume(); + this.stack[this.stack.length - 1].url = data; + } + /** @type {Handle} */ -var co_1 = co; + function onexitresourcetitlestring() { + const data = this.resume(); + this.stack[this.stack.length - 1].title = data; + } + /** @type {Handle} */ -/** - * Wrap the given generator `fn` and - * return a thunk. - * - * @param {Function} fn - * @return {Function} - * @api public - */ + function onexitresource() { + setData('inReference'); + } + /** @type {Handle} */ -function co(fn) { - var isGenFun = isGeneratorFunction(fn); + function onenterreference() { + setData('referenceType', 'collapsed'); + } + /** @type {Handle} */ - return function (done) { - var ctx = this; + function onexitreferencestring(token) { + const label = this.resume(); + this.stack[this.stack.length - 1].label = label; + this.stack[this.stack.length - 1].identifier = normalizeIdentifier( + this.sliceSerialize(token) + ).toLowerCase(); + setData('referenceType', 'full'); + } + /** @type {Handle} */ - // in toThunk() below we invoke co() - // with a generator, so optimize for - // this case - var gen = fn; + function onexitcharacterreferencemarker(token) { + setData('characterReferenceType', token.type); + } + /** @type {Handle} */ - // we only need to parse the arguments - // if gen is a generator function. - if (isGenFun) { - var args = slice$4.call(arguments), len = args.length; - var hasCallback = len && 'function' == typeof args[len - 1]; - done = hasCallback ? args.pop() : error; - gen = fn.apply(this, args); - } else { - done = done || error; - } + function onexitcharacterreferencevalue(token) { + const data = this.sliceSerialize(token); + const type = getData('characterReferenceType'); + /** @type {string} */ - next(); + let value; - // #92 - // wrap the callback in a setImmediate - // so that any of its errors aren't caught by `co` - function exit(err, res) { - setImmediate(function(){ - done.call(ctx, err, res); - }); + if (type) { + value = decodeNumericCharacterReference( + data, + type === 'characterReferenceMarkerNumeric' ? 10 : 16 + ); + setData('characterReferenceType'); + } else { + // @ts-expect-error `decodeEntity` can return false for invalid named + // character references, but everything we’ve tokenized is valid. + value = decodeEntity(data); } - function next(err, res) { - var ret; - - // multiple args - if (arguments.length > 2) res = slice$4.call(arguments, 1); + const tail = this.stack.pop(); + tail.value += value; + tail.position.end = point(token.end); + } + /** @type {Handle} */ - // error - if (err) { - try { - ret = gen.throw(err); - } catch (e) { - return exit(e); - } - } + function onexitautolinkprotocol(token) { + onexitdata.call(this, token); + this.stack[this.stack.length - 1].url = this.sliceSerialize(token); + } + /** @type {Handle} */ - // ok - if (!err) { - try { - ret = gen.next(res); - } catch (e) { - return exit(e); - } - } + function onexitautolinkemail(token) { + onexitdata.call(this, token); + this.stack[this.stack.length - 1].url = + 'mailto:' + this.sliceSerialize(token); + } // + // Creaters. + // - // done - if (ret.done) return exit(null, ret.value); + /** @returns {Blockquote} */ - // normalize - ret.value = toThunk(ret.value, ctx); + function blockQuote() { + return { + type: 'blockquote', + children: [] + } + } + /** @returns {Code} */ - // run - if ('function' == typeof ret.value) { - var called = false; - try { - ret.value.call(ctx, function(){ - if (called) return; - called = true; - next.apply(ctx, arguments); - }); - } catch (e) { - setImmediate(function(){ - if (called) return; - called = true; - next(e); - }); - } - return; - } + function codeFlow() { + // @ts-expect-error: we’ve always used `null`. + return { + type: 'code', + lang: null, + meta: null, + value: '' + } + } + /** @returns {InlineCode} */ - // invalid - next(new TypeError('You may only yield a function, promise, generator, array, or object, ' - + 'but the following was passed: "' + String(ret.value) + '"')); + function codeText() { + return { + type: 'inlineCode', + value: '' } } -} + /** @returns {Definition} */ -/** - * Convert `obj` into a normalized thunk. - * - * @param {Mixed} obj - * @param {Mixed} ctx - * @return {Function} - * @api private - */ + function definition() { + return { + type: 'definition', + identifier: '', + // @ts-expect-error: we’ve always used `null`. + label: null, + // @ts-expect-error: we’ve always used `null`. + title: null, + url: '' + } + } + /** @returns {Emphasis} */ -function toThunk(obj, ctx) { + function emphasis() { + return { + type: 'emphasis', + children: [] + } + } + /** @returns {Heading} */ - if (isGeneratorFunction(obj)) { - return co(obj.call(ctx)); + function heading() { + // @ts-expect-error `depth` will be set later. + return { + type: 'heading', + depth: undefined, + children: [] + } } + /** @returns {Break} */ - if (isGenerator(obj)) { - return co(obj); + function hardBreak() { + return { + type: 'break' + } } + /** @returns {HTML} */ - if (isPromise(obj)) { - return promiseToThunk(obj); + function html() { + return { + type: 'html', + value: '' + } } + /** @returns {Image} */ - if ('function' == typeof obj) { - return obj; + function image() { + // @ts-expect-error: we’ve always used `null`. + return { + type: 'image', + title: null, + url: '', + alt: null + } } + /** @returns {Link} */ - if (isObject$3(obj) || Array.isArray(obj)) { - return objectToThunk.call(ctx, obj); + function link() { + // @ts-expect-error: we’ve always used `null`. + return { + type: 'link', + title: null, + url: '', + children: [] + } } + /** + * @param {Token} token + * @returns {List} + */ - return obj; -} + function list(token) { + return { + type: 'list', + ordered: token.type === 'listOrdered', + // @ts-expect-error: we’ve always used `null`. + start: null, + // @ts-expect-error Patched. + spread: token._spread, + children: [] + } + } + /** + * @param {Token} token + * @returns {ListItem} + */ -/** - * Convert an object of yieldables to a thunk. - * - * @param {Object} obj - * @return {Function} - * @api private - */ + function listItem(token) { + return { + type: 'listItem', + // @ts-expect-error Patched. + spread: token._spread, + // @ts-expect-error: we’ve always used `null`. + checked: null, + children: [] + } + } + /** @returns {Paragraph} */ -function objectToThunk(obj){ - var ctx = this; - var isArray = Array.isArray(obj); + function paragraph() { + return { + type: 'paragraph', + children: [] + } + } + /** @returns {Strong} */ - return function(done){ - var keys = Object.keys(obj); - var pending = keys.length; - var results = isArray - ? new Array(pending) // predefine the array length - : new obj.constructor(); - var finished; + function strong() { + return { + type: 'strong', + children: [] + } + } + /** @returns {Text} */ - if (!pending) { - setImmediate(function(){ - done(null, results); - }); - return; + function text() { + return { + type: 'text', + value: '' } + } + /** @returns {ThematicBreak} */ - // prepopulate object keys to preserve key ordering - if (!isArray) { - for (var i = 0; i < pending; i++) { - results[keys[i]] = undefined; - } + function thematicBreak() { + return { + type: 'thematicBreak' } + } +} +/** + * @param {Extension} combined + * @param {Array.>} extensions + * @returns {Extension} + */ - for (var i = 0; i < keys.length; i++) { - run(obj[keys[i]], keys[i]); +function configure$1(combined, extensions) { + let index = -1; + + while (++index < extensions.length) { + const value = extensions[index]; + + if (Array.isArray(value)) { + configure$1(combined, value); + } else { + extension(combined, value); } + } - function run(fn, key) { - if (finished) return; - try { - fn = toThunk(fn, ctx); + return combined +} +/** + * @param {Extension} combined + * @param {Extension} extension + * @returns {void} + */ - if ('function' != typeof fn) { - results[key] = fn; - return --pending || done(null, results); - } +function extension(combined, extension) { + /** @type {string} */ + let key; - fn.call(ctx, function(err, res){ - if (finished) return; + for (key in extension) { + if (own$4.call(extension, key)) { + const list = key === 'canContainEols' || key === 'transforms'; + const maybe = own$4.call(combined, key) ? combined[key] : undefined; + /* c8 ignore next */ - if (err) { - finished = true; - return done(err); - } + const left = maybe || (combined[key] = list ? [] : {}); + const right = extension[key]; - results[key] = res; - --pending || done(null, results); - }); - } catch (err) { - finished = true; - done(err); + if (right) { + if (list) { + // @ts-expect-error: `left` is an array. + combined[key] = [...left, ...right]; + } else { + Object.assign(left, right); + } } } } } /** - * Convert `promise` to a thunk. - * - * @param {Object} promise - * @return {Function} - * @api private + * @typedef {import('mdast').Root} Root + * @typedef {import('mdast-util-from-markdown').Options} Options */ -function promiseToThunk(promise) { - return function(fn){ - promise.then(function(res) { - fn(null, res); - }, fn); - } -} +/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */ +function remarkParse(options) { + /** @type {import('unified').ParserFunction} */ + const parser = (doc) => { + // Assume options. + const settings = /** @type {Options} */ (this.data('settings')); -/** - * Check if `obj` is a promise. - * - * @param {Object} obj - * @return {Boolean} - * @api private - */ + return fromMarkdown( + doc, + Object.assign({}, settings, options, { + // Note: these options are not in the readme. + // The goal is for them to be set by plugins on `data` instead of being + // passed by users. + extensions: this.data('micromarkExtensions') || [], + mdastExtensions: this.data('fromMarkdownExtensions') || [] + }) + ) + }; -function isPromise(obj) { - return obj && 'function' == typeof obj.then; + Object.assign(this, {Parser: parser}); } +var own$3 = {}.hasOwnProperty; + /** - * Check if `obj` is a generator. + * @callback Handler + * @param {...unknown} value + * @return {unknown} * - * @param {Mixed} obj - * @return {Boolean} - * @api private + * @typedef {Record} Handlers + * + * @typedef {Object} Options + * @property {Handler} [unknown] + * @property {Handler} [invalid] + * @property {Handlers} [handlers] */ -function isGenerator(obj) { - return obj && 'function' == typeof obj.next && 'function' == typeof obj.throw; -} - /** - * Check if `obj` is a generator function. + * Handle values based on a property. * - * @param {Mixed} obj - * @return {Boolean} - * @api private + * @param {string} key + * @param {Options} [options] */ +function zwitch(key, options) { + var settings = options || {}; -function isGeneratorFunction(obj) { - return obj && obj.constructor && 'GeneratorFunction' == obj.constructor.name; -} + /** + * Handle one value. + * Based on the bound `key`, a respective handler will be called. + * If `value` is not an object, or doesn’t have a `key` property, the special + * “invalid” handler will be called. + * If `value` has an unknown `key`, the special “unknown” handler will be + * called. + * + * All arguments, and the context object, are passed through to the handler, + * and it’s result is returned. + * + * @param {...unknown} [value] + * @this {unknown} + * @returns {unknown} + * @property {Handler} invalid + * @property {Handler} unknown + * @property {Handlers} handlers + */ + function one(value) { + var fn = one.invalid; + var handlers = one.handlers; -/** - * Check for plain object. - * - * @param {Mixed} val - * @return {Boolean} - * @api private - */ + if (value && own$3.call(value, key)) { + fn = own$3.call(handlers, value[key]) ? handlers[value[key]] : one.unknown; + } -function isObject$3(val) { - return val && Object == val.constructor; + if (fn) { + return fn.apply(this, arguments) + } + } + + one.handlers = settings.handlers || {}; + one.invalid = settings.invalid; + one.unknown = settings.unknown; + + return one } /** - * Throw `err` in a new stack. - * - * This is used when co() is invoked - * without supplying a callback, which - * should only be for demonstrational - * purposes. - * - * @param {Error} err - * @api private + * @typedef {import('./types.js').Options} Options + * @typedef {import('./types.js').Context} Context */ -function error(err) { - if (!err) return; - setImmediate(function(){ - throw err; - }); -} - /** - * Module Dependencies + * @param {Context} base + * @param {Options} extension + * @returns {Context} */ +function configure(base, extension) { + let index = -1; + /** @type {string} */ + let key; + + // First do subextensions. + if (extension.extensions) { + while (++index < extension.extensions.length) { + configure(base, extension.extensions[index]); + } + } -var noop$2 = function(){}; + for (key in extension) { + if (key === 'extensions') ; else if (key === 'unsafe' || key === 'join') { + /* c8 ignore next 2 */ + // @ts-expect-error: hush. + base[key] = [...(base[key] || []), ...(extension[key] || [])]; + } else if (key === 'handlers') { + base[key] = Object.assign(base[key], extension[key] || {}); + } else { + // @ts-expect-error: hush. + base.options[key] = extension[key]; + } + } + return base +} /** - * Export `wrapped` + * @typedef {import('../types.js').Node} Node + * @typedef {import('../types.js').Parent} Parent + * @typedef {import('../types.js').Join} Join + * @typedef {import('../types.js').Context} Context */ -var wrapped_1 = wrapped; - /** - * Wrap a function to support - * sync, async, and gen functions. - * - * @param {Function} fn - * @return {Function} - * @api public + * @param {Parent} parent + * @param {Context} context + * @returns {string} */ +function containerFlow(parent, context) { + const children = parent.children || []; + /** @type {Array.} */ + const results = []; + let index = -1; -function wrapped(fn) { - function wrap() { - var args = sliced(arguments); - var last = args[args.length - 1]; - var ctx = this; + while (++index < children.length) { + const child = children[index]; - // done - var done = typeof last == 'function' ? args.pop() : noop$2; + results.push( + context.handle(child, parent, context, {before: '\n', after: '\n'}) + ); - // nothing - if (!fn) { - return done.apply(ctx, [null].concat(args)); + if (index < children.length - 1) { + results.push(between(child, children[index + 1])); } + } - // generator - if (generator(fn)) { - return co_1(fn).apply(ctx, args.concat(done)); - } + return results.join('') - // async - if (fn.length > args.length) { - // NOTE: this only handles uncaught synchronous errors - try { - return fn.apply(ctx, args.concat(done)); - } catch (e) { - return done(e); + /** + * @param {Node} left + * @param {Node} right + * @returns {string} + */ + function between(left, right) { + let index = context.join.length; + /** @type {ReturnType} */ + let result; + + while (index--) { + result = context.join[index](left, right, parent, context); + + if (result === true || result === 1) { + break + } + + if (typeof result === 'number') { + return '\n'.repeat(1 + result) + } + + if (result === false) { + return '\n\n\n\n' } } - // sync - return sync$5(fn, done).apply(ctx, args); + return '\n\n' } - - return wrap; } /** - * Wrap a synchronous function execution. - * - * @param {Function} fn - * @param {Function} done - * @return {Function} - * @api private + * @callback Map + * @param {string} value + * @param {number} line + * @param {boolean} blank + * @returns {string} */ -function sync$5(fn, done) { - return function () { - var ret; +const eol = /\r?\n|\r/g; - try { - ret = fn.apply(this, arguments); - } catch (err) { - return done(err); - } +/** + * @param {string} value + * @param {Map} map + * @returns {string} + */ +function indentLines(value, map) { + /** @type {Array.} */ + const result = []; + let start = 0; + let line = 0; + /** @type {RegExpExecArray|null} */ + let match; - if (promise(ret)) { - ret.then(function (value) { done(null, value); }, done); - } else { - ret instanceof Error ? done(ret) : done(null, ret); - } + while ((match = eol.exec(value))) { + one(value.slice(start, match.index)); + result.push(match[0]); + start = match.index + match[0].length; + line++; + } + + one(value.slice(start)); + + return result.join('') + + /** + * @param {string} value + */ + function one(value) { + result.push(map(value, line, !value)); } } /** - * Is `value` a generator? - * - * @param {Mixed} value - * @return {Boolean} - * @api private + * @typedef {import('mdast').Blockquote} Blockquote + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('../util/indent-lines.js').Map} Map */ -function generator(value) { +/** + * @type {Handle} + * @param {Blockquote} node + */ +function blockquote(node, _, context) { + const exit = context.enter('blockquote'); + const value = indentLines(containerFlow(node, context), map$1); + exit(); return value - && value.constructor - && 'GeneratorFunction' == value.constructor.name; } +/** @type {Map} */ +function map$1(line, _, blank) { + return '>' + (blank ? '' : ' ') + line +} /** - * Is `value` a promise? - * - * @param {Mixed} value - * @return {Boolean} - * @api private + * @typedef {import('../types.js').Unsafe} Unsafe */ -function promise(value) { - return value && 'function' == typeof value.then; +/** + * @param {Array.} stack + * @param {Unsafe} pattern + * @returns {boolean} + */ +function patternInScope(stack, pattern) { + return ( + listInScope(stack, pattern.inConstruct, true) && + !listInScope(stack, pattern.notInConstruct, false) + ) } -var unifiedLintRule = factory$3; - -function factory$3(id, rule) { - var parts = id.split(':'); - var source = parts[0]; - var ruleId = parts[1]; - var fn = wrapped_1(rule); - - /* istanbul ignore if - possibly useful if externalised later. */ - if (!ruleId) { - ruleId = source; - source = null; +/** + * @param {Array.} stack + * @param {Unsafe['inConstruct']} list + * @param {boolean} none + * @returns {boolean} + */ +function listInScope(stack, list, none) { + if (!list) { + return none } - attacher.displayName = id; - - return attacher - - function attacher(raw) { - var config = coerce(ruleId, raw); - var severity = config[0]; - var options = config[1]; - var fatal = severity === 2; - - return severity ? transformer : undefined - - function transformer(tree, file, next) { - var index = file.messages.length; - - fn(tree, file, options, done); - - function done(err) { - var messages = file.messages; - var message; - - // Add the error, if not already properly added. - /* istanbul ignore if - only happens for incorrect plugins */ - if (err && messages.indexOf(err) === -1) { - try { - file.fail(err); - } catch (_) {} - } - - while (index < messages.length) { - message = messages[index]; - message.ruleId = ruleId; - message.source = source; - message.fatal = fatal; + if (typeof list === 'string') { + list = [list]; + } - index++; - } + let index = -1; - next(); - } + while (++index < list.length) { + if (stack.includes(list[index])) { + return true } } -} -// Coerce a value to a severity--options tuple. -function coerce(name, value) { - var def = 1; - var result; - var level; + return false +} - /* istanbul ignore if - Handled by unified in v6.0.0 */ - if (typeof value === 'boolean') { - result = [value]; - } else if (value == null) { - result = [def]; - } else if ( - typeof value === 'object' && - (typeof value[0] === 'number' || - typeof value[0] === 'boolean' || - typeof value[0] === 'string') - ) { - result = value.concat(); - } else { - result = [1, value]; - } +/** + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('mdast').Break} Break + */ - level = result[0]; +/** + * @type {Handle} + * @param {Break} _ + */ +function hardBreak(_, _1, context, safe) { + let index = -1; - if (typeof level === 'boolean') { - level = level ? 1 : 0; - } else if (typeof level === 'string') { - if (level === 'off') { - level = 0; - } else if (level === 'on' || level === 'warn') { - level = 1; - } else if (level === 'error') { - level = 2; - } else { - level = 1; - result = [level, result]; + while (++index < context.unsafe.length) { + // If we can’t put eols in this construct (setext headings, tables), use a + // space instead. + if ( + context.unsafe[index].character === '\n' && + patternInScope(context.stack, context.unsafe[index]) + ) { + return /[ \t]/.test(safe.before) ? '' : ' ' } } - if (level < 0 || level > 2) { - throw new Error( - 'Incorrect severity `' + - level + - '` for `' + - name + - '`, ' + - 'expected 0, 1, or 2' - ) - } - - result[0] = level; - - return result + return '\\\n' } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module final-newline - * @fileoverview - * Warn when a line feed at the end of a file is missing. - * Empty files are allowed. - * - * See [StackExchange](https://unix.stackexchange.com/questions/18743) for why. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * always adds a final line feed to files. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * ## Example - * - * ##### `ok.md` - * - * ###### In - * - * Note: `␊` represents LF. - * - * ```markdown - * Alpha␊ - * ``` - * - * ###### Out - * - * No messages. - * - * ##### `not-ok.md` - * - * ###### In - * - * Note: The below file does not have a final newline. - * - * ```markdown - * Bravo - * ``` - * - * ###### Out + * Get the count of the longest repeating streak of `character` in `value`. * - * ```text - * 1:1: Missing newline character at end of file - * ``` + * @param {string} value Content. + * @param {string} character Single character to look for + * @returns {number} Count of most frequent adjacent `character`s in `value` */ +function longestStreak(value, character) { + var source = String(value); + var index = source.indexOf(character); + var expected = index; + var count = 0; + var max = 0; - - -var remarkLintFinalNewline = unifiedLintRule('remark-lint:final-newline', finalNewline); - -function finalNewline(tree, file) { - var contents = String(file); - var last = contents.length - 1; - - if (last > -1 && contents.charAt(last) !== '\n') { - file.message('Missing newline character at end of file'); - } -} - -/* global define */ - -var pluralize = createCommonjsModule(function (module, exports) { -(function (root, pluralize) { - /* istanbul ignore else */ - if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { - // Node. - module.exports = pluralize(); - } else { - // Browser global. - root.pluralize = pluralize(); + if (typeof character !== 'string' || character.length !== 1) { + throw new Error('Expected character') } -})(commonjsGlobal, function () { - // Rule storage - pluralize and singularize need to be run sequentially, - // while other rules can be optimized using an object for instant lookups. - var pluralRules = []; - var singularRules = []; - var uncountables = {}; - var irregularPlurals = {}; - var irregularSingles = {}; - /** - * Sanitize a pluralization rule to a usable regular expression. - * - * @param {(RegExp|string)} rule - * @return {RegExp} - */ - function sanitizeRule (rule) { - if (typeof rule === 'string') { - return new RegExp('^' + rule + '$', 'i'); + while (index !== -1) { + if (index === expected) { + if (++count > max) { + max = count; + } + } else { + count = 1; } - return rule; + expected = index + 1; + index = source.indexOf(character, expected); } - /** - * Pass in a word token to produce a function that can replicate the case on - * another word. - * - * @param {string} word - * @param {string} token - * @return {Function} - */ - function restoreCase (word, token) { - // Tokens are an exact match. - if (word === token) return token; - - // Lower cased words. E.g. "hello". - if (word === word.toLowerCase()) return token.toLowerCase(); + return max +} - // Upper cased words. E.g. "WHISKY". - if (word === word.toUpperCase()) return token.toUpperCase(); +/** + * @typedef {import('mdast').Code} Code + * @typedef {import('../types.js').Context} Context + */ - // Title cased words. E.g. "Title". - if (word[0] === word[0].toUpperCase()) { - return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); - } +/** + * @param {Code} node + * @param {Context} context + * @returns {boolean} + */ +function formatCodeAsIndented(node, context) { + return Boolean( + !context.options.fences && + node.value && + // If there’s no info… + !node.lang && + // And there’s a non-whitespace character… + /[^ \r\n]/.test(node.value) && + // And the value doesn’t start or end in a blank… + !/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(node.value) + ) +} - // Lower cased words. E.g. "test". - return token.toLowerCase(); - } +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ - /** - * Interpolate a regexp string. - * - * @param {string} str - * @param {Array} args - * @return {string} - */ - function interpolate (str, args) { - return str.replace(/\$(\d{1,2})/g, function (match, index) { - return args[index] || ''; - }); +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkFence(context) { + const marker = context.options.fence || '`'; + + if (marker !== '`' && marker !== '~') { + throw new Error( + 'Cannot serialize code with `' + + marker + + '` for `options.fence`, expected `` ` `` or `~`' + ) } - /** - * Replace a word using a rule. - * - * @param {string} word - * @param {Array} rule - * @return {string} - */ - function replace (word, rule) { - return word.replace(rule[0], function (match, index) { - var result = interpolate(rule[1], arguments); + return marker +} - if (match === '') { - return restoreCase(word[index - 1], result); - } +/** + * @typedef {import('../types.js').Unsafe} Unsafe + */ - return restoreCase(match, result); - }); +/** + * @param {Unsafe} pattern + * @returns {RegExp} + */ +function patternCompile(pattern) { + if (!pattern._compiled) { + const before = + (pattern.atBreak ? '[\\r\\n][\\t ]*' : '') + + (pattern.before ? '(?:' + pattern.before + ')' : ''); + + pattern._compiled = new RegExp( + (before ? '(' + before + ')' : '') + + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + + pattern.character + + (pattern.after ? '(?:' + pattern.after + ')' : ''), + 'g' + ); } - /** - * Sanitize a word by passing in the word and sanitization rules. - * - * @param {string} token - * @param {string} word - * @param {Array} rules - * @return {string} - */ - function sanitizeWord (token, word, rules) { - // Empty string or doesn't need fixing. - if (!token.length || uncountables.hasOwnProperty(token)) { - return word; - } + return pattern._compiled +} - var len = rules.length; +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').SafeOptions} SafeOptions + */ - // Iterate over the sanitization rules and use the first one to match. - while (len--) { - var rule = rules[len]; +/** + * @param {Context} context + * @param {string|null|undefined} input + * @param {SafeOptions & {encode?: Array.}} config + * @returns {string} + */ +function safe(context, input, config) { + const value = (config.before || '') + (input || '') + (config.after || ''); + /** @type {Array.} */ + const positions = []; + /** @type {Array.} */ + const result = []; + /** @type {Record} */ + const infos = {}; + let index = -1; - if (rule[0].test(word)) return replace(word, rule); + while (++index < context.unsafe.length) { + const pattern = context.unsafe[index]; + + if (!patternInScope(context.stack, pattern)) { + continue } - return word; - } + const expression = patternCompile(pattern); + /** @type {RegExpExecArray|null} */ + let match; - /** - * Replace a word with the updated word. - * - * @param {Object} replaceMap - * @param {Object} keepMap - * @param {Array} rules - * @return {Function} - */ - function replaceWord (replaceMap, keepMap, rules) { - return function (word) { - // Get the correct token and case restoration functions. - var token = word.toLowerCase(); + while ((match = expression.exec(value))) { + const before = 'before' in pattern || Boolean(pattern.atBreak); + const after = 'after' in pattern; + const position = match.index + (before ? match[1].length : 0); - // Check against the keep object map. - if (keepMap.hasOwnProperty(token)) { - return restoreCase(word, token); - } + if (positions.includes(position)) { + if (infos[position].before && !before) { + infos[position].before = false; + } - // Check against the replacement map for a direct word replacement. - if (replaceMap.hasOwnProperty(token)) { - return restoreCase(word, replaceMap[token]); + if (infos[position].after && !after) { + infos[position].after = false; + } + } else { + positions.push(position); + infos[position] = {before, after}; } - - // Run all the rules against the word. - return sanitizeWord(token, word, rules); - }; + } } - /** - * Check if a word is part of the map. - */ - function checkWord (replaceMap, keepMap, rules, bool) { - return function (word) { - var token = word.toLowerCase(); + positions.sort(numerical); - if (keepMap.hasOwnProperty(token)) return true; - if (replaceMap.hasOwnProperty(token)) return false; + let start = config.before ? config.before.length : 0; + const end = value.length - (config.after ? config.after.length : 0); + index = -1; - return sanitizeWord(token, token, rules) === token; - }; - } + while (++index < positions.length) { + const position = positions[index]; - /** - * Pluralize or singularize a word based on the passed in count. - * - * @param {string} word The word to pluralize - * @param {number} count How many of the word exist - * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks) - * @return {string} - */ - function pluralize (word, count, inclusive) { - var pluralized = count === 1 - ? pluralize.singular(word) : pluralize.plural(word); + // Character before or after matched: + if (position < start || position >= end) { + continue + } - return (inclusive ? count + ' ' : '') + pluralized; - } + // If this character is supposed to be escaped because it has a condition on + // the next character, and the next character is definitly being escaped, + // then skip this escape. + if ( + position + 1 < end && + positions[index + 1] === position + 1 && + infos[position].after && + !infos[position + 1].before && + !infos[position + 1].after + ) { + continue + } - /** - * Pluralize a word. - * - * @type {Function} - */ - pluralize.plural = replaceWord( - irregularSingles, irregularPlurals, pluralRules - ); + if (start !== position) { + // If we have to use a character reference, an ampersand would be more + // correct, but as backslashes only care about punctuation, either will + // do the trick + result.push(escapeBackslashes(value.slice(start, position), '\\')); + } - /** - * Check if a word is plural. - * - * @type {Function} - */ - pluralize.isPlural = checkWord( - irregularSingles, irregularPlurals, pluralRules - ); + start = position; - /** - * Singularize a word. - * - * @type {Function} - */ - pluralize.singular = replaceWord( - irregularPlurals, irregularSingles, singularRules - ); + if ( + /[!-/:-@[-`{-~]/.test(value.charAt(position)) && + (!config.encode || !config.encode.includes(value.charAt(position))) + ) { + // Character escape. + result.push('\\'); + } else { + // Character reference. + result.push( + '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';' + ); + start++; + } + } - /** - * Check if a word is singular. - * - * @type {Function} - */ - pluralize.isSingular = checkWord( - irregularPlurals, irregularSingles, singularRules - ); + result.push(escapeBackslashes(value.slice(start, end), config.after)); - /** - * Add a pluralization rule to the collection. - * - * @param {(string|RegExp)} rule - * @param {string} replacement - */ - pluralize.addPluralRule = function (rule, replacement) { - pluralRules.push([sanitizeRule(rule), replacement]); - }; + return result.join('') +} - /** - * Add a singularization rule to the collection. - * - * @param {(string|RegExp)} rule - * @param {string} replacement - */ - pluralize.addSingularRule = function (rule, replacement) { - singularRules.push([sanitizeRule(rule), replacement]); - }; +/** + * @param {number} a + * @param {number} b + * @returns {number} + */ +function numerical(a, b) { + return a - b +} - /** - * Add an uncountable word rule. - * - * @param {(string|RegExp)} word - */ - pluralize.addUncountableRule = function (word) { - if (typeof word === 'string') { - uncountables[word.toLowerCase()] = true; - return; +/** + * @param {string} value + * @param {string} after + * @returns {string} + */ +function escapeBackslashes(value, after) { + const expression = /\\(?=[!-/:-@[-`{-~])/g; + /** @type {Array.} */ + const positions = []; + /** @type {Array.} */ + const results = []; + const whole = value + after; + let index = -1; + let start = 0; + /** @type {RegExpExecArray|null} */ + let match; + + while ((match = expression.exec(whole))) { + positions.push(match.index); + } + + while (++index < positions.length) { + if (start !== positions[index]) { + results.push(value.slice(start, positions[index])); } - // Set singular and plural references for the word. - pluralize.addPluralRule(word, '$0'); - pluralize.addSingularRule(word, '$0'); - }; + results.push('\\'); + start = positions[index]; + } - /** - * Add an irregular word definition. - * - * @param {string} single - * @param {string} plural - */ - pluralize.addIrregularRule = function (single, plural) { - plural = plural.toLowerCase(); - single = single.toLowerCase(); + results.push(value.slice(start)); - irregularSingles[single] = plural; - irregularPlurals[plural] = single; - }; + return results.join('') +} - /** - * Irregular rules. - */ - [ - // Pronouns. - ['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'], - // Words ending in with a consonant and `o`. - ['echo', 'echoes'], - ['dingo', 'dingoes'], - ['volcano', 'volcanoes'], - ['tornado', 'tornadoes'], - ['torpedo', 'torpedoes'], - // Ends with `us`. - ['genus', 'genera'], - ['viscus', 'viscera'], - // Ends with `ma`. - ['stigma', 'stigmata'], - ['stoma', 'stomata'], - ['dogma', 'dogmata'], - ['lemma', 'lemmata'], - ['schema', 'schemata'], - ['anathema', 'anathemata'], - // Other irregular rules. - ['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]); - }); +/** + * @typedef {import('mdast').Code} Code + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('../types.js').Exit} Exit + * @typedef {import('../util/indent-lines.js').Map} Map + */ - /** - * Pluralization rules. - */ - [ - [/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]); - }); +/** + * @type {Handle} + * @param {Code} node + */ +function code$1(node, _, context) { + const marker = checkFence(context); + const raw = node.value || ''; + const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'; + /** @type {string} */ + let value; + /** @type {Exit} */ + let exit; - /** - * Singularization rules. - */ - [ - [/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]); - }); + if (formatCodeAsIndented(node, context)) { + exit = context.enter('codeIndented'); + value = indentLines(raw, map); + } else { + const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3)); + /** @type {Exit} */ + let subexit; + exit = context.enter('codeFenced'); + value = sequence; - /** - * Uncountable rules. - */ - [ - // Singular words with no plurals. - '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, - // Regexes. - /[^aeiou]ese$/i, // "chinese", "japanese" - /deer$/i, // "deer", "reindeer" - /fish$/i, // "fish", "blowfish", "angelfish" - /measles$/i, - /o[iu]s$/i, // "carnivorous" - /pox$/i, // "chickpox", "smallpox" - /sheep$/i - ].forEach(pluralize.addUncountableRule); + if (node.lang) { + subexit = context.enter('codeFencedLang' + suffix); + value += safe(context, node.lang, { + before: '`', + after: ' ', + encode: ['`'] + }); + subexit(); + } - return pluralize; -}); -}); + if (node.lang && node.meta) { + subexit = context.enter('codeFencedMeta' + suffix); + value += + ' ' + + safe(context, node.meta, { + before: ' ', + after: '\n', + encode: ['`'] + }); + subexit(); + } -var unistUtilGenerated = generated; + value += '\n'; -function generated(node) { - return ( - !node || - !node.position || - !node.position.start || - !node.position.start.line || - !node.position.start.column || - !node.position.end || - !node.position.end.line || - !node.position.end.column - ) + if (raw) { + value += raw + '\n'; + } + + value += sequence; + } + + exit(); + return value +} + +/** @type {Map} */ +function map(line, _, blank) { + return (blank ? '' : ' ') + line } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module list-item-bullet-indent - * @fileoverview - * Warn when list item bullets are indented. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all indentation before bullets. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * Paragraph. - * - * * List item - * * List item - * - * @example {"name": "not-ok.md", "label": "input"} - * - * Paragraph. - * - * ·* List item - * ·* List item - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 3:2: Incorrect indentation before bullet: remove 1 space - * 4:2: Incorrect indentation before bullet: remove 1 space + * @typedef {import('mdast').Association} Association */ +const characterEscape = /\\([!-/:-@[-`{-~])/g; +const characterReference = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; + +/** + * The `label` of an association is the string value: character escapes and + * references work, and casing is intact. + * The `identifier` is used to match one association to another: controversially, + * character escapes and references don’t work in this matching: `©` does + * not match `©`, and `\+` does not match `+`. + * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\nb` + * matches `a b`. + * So, we do prefer the label when figuring out how we’re going to serialize: + * it has whitespace, casing, and we can ignore most useless character escapes + * and all character references. + * + * @param {Association} node + * @returns {string} + */ +function association(node) { + if (node.label || !node.identifier) { + return node.label || '' + } + return node.identifier + .replace(characterEscape, '$1') + .replace(characterReference, decodeIfPossible) +} +/** + * @param {string} $0 + * @param {string} $1 + * @returns {string} + */ +function decodeIfPossible($0, $1) { + return decodeEntity($1) || $0 +} +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkQuote(context) { + const marker = context.options.quote || '"'; -var remarkLintListItemBulletIndent = unifiedLintRule( - 'remark-lint:list-item-bullet-indent', - listItemBulletIndent -); + if (marker !== '"' && marker !== "'") { + throw new Error( + 'Cannot serialize title with `' + + marker + + '` for `options.quote`, expected `"`, or `\'`' + ) + } -function listItemBulletIndent(tree, file) { - unistUtilVisit(tree, 'list', visitor); + return marker +} - function visitor(list, _, grandparent) { - list.children.forEach(visitItems); +/** + * @typedef {import('mdast').Definition} Definition + * @typedef {import('../types.js').Handle} Handle + */ - function visitItems(item) { - var indent; - var reason; +/** + * @type {Handle} + * @param {Definition} node + */ +function definition(node, _, context) { + const marker = checkQuote(context); + const suffix = marker === '"' ? 'Quote' : 'Apostrophe'; + const exit = context.enter('definition'); + let subexit = context.enter('label'); + let value = + '[' + safe(context, association(node), {before: '[', after: ']'}) + ']: '; - if ( - grandparent && - grandparent.type === 'root' && - !unistUtilGenerated(item) && - !unistUtilGenerated(grandparent) - ) { - indent = item.position.start.column - grandparent.position.start.column; + subexit(); - if (indent) { - reason = - 'Incorrect indentation before bullet: remove ' + - indent + - ' ' + - pluralize('space', indent); + if ( + // If there’s no url, or… + !node.url || + // If there’s whitespace, enclosed is prettier. + /[ \t\r\n]/.test(node.url) + ) { + subexit = context.enter('destinationLiteral'); + value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + } else { + // No whitespace, raw is prettier. + subexit = context.enter('destinationRaw'); + value += safe(context, node.url, {before: ' ', after: ' '}); + } - file.message(reason, item.position.start); - } - } - } + subexit(); + + if (node.title) { + subexit = context.enter('title' + suffix); + value += + ' ' + + marker + + safe(context, node.title, {before: marker, after: marker}) + + marker; + subexit(); } + + exit(); + + return value } -var start$1 = factory$4('start'); -var end = factory$4('end'); +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ -var unistUtilPosition = position$1; +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkEmphasis(context) { + const marker = context.options.emphasis || '*'; -position$1.start = start$1; -position$1.end = end; + if (marker !== '*' && marker !== '_') { + throw new Error( + 'Cannot serialize emphasis with `' + + marker + + '` for `options.emphasis`, expected `*`, or `_`' + ) + } -function position$1(node) { - return {start: start$1(node), end: end(node)} + return marker } -function factory$4(type) { - point.displayName = type; +/** + * @typedef {import('../types.js').Node} Node + * @typedef {import('../types.js').Parent} Parent + * @typedef {import('../types.js').SafeOptions} SafeOptions + * @typedef {import('../types.js').Context} Context + */ - return point +/** + * @param {Parent} parent + * @param {Context} context + * @param {SafeOptions} safeOptions + * @returns {string} + */ +function containerPhrasing(parent, context, safeOptions) { + const children = parent.children || []; + /** @type {Array.} */ + const results = []; + let index = -1; + let before = safeOptions.before; - function point(node) { - var point = (node && node.position && node.position[type]) || {}; + while (++index < children.length) { + const child = children[index]; + /** @type {string} */ + let after; - return { - line: point.line || null, - column: point.column || null, - offset: isNaN(point.offset) ? null : point.offset + if (index + 1 < children.length) { + // @ts-expect-error: hush, it’s actually a `zwitch`. + let handle = context.handle.handlers[children[index + 1].type]; + if (handle && handle.peek) handle = handle.peek; + after = handle + ? handle(children[index + 1], parent, context, { + before: '', + after: '' + }).charAt(0) + : ''; + } else { + after = safeOptions.after; + } + + // In some cases, html (text) can be found in phrasing right after an eol. + // When we’d serialize that, in most cases that would be seen as html + // (flow). + // As we can’t escape or so to prevent it from happening, we take a somewhat + // reasonable approach: replace that eol with a space. + // See: + if ( + results.length > 0 && + (before === '\r' || before === '\n') && + child.type === 'html' + ) { + results[results.length - 1] = results[results.length - 1].replace( + /(\r?\n|\r)$/, + ' ' + ); + before = ' '; } + + results.push(context.handle(child, parent, context, {before, after})); + + before = results[results.length - 1].slice(-1); } + + return results.join('') } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module list-item-indent - * @fileoverview - * Warn when the spacing between a list item’s bullet and its content violates - * a given style. - * - * Options: `'tab-size'`, `'mixed'`, or `'space'`, default: `'tab-size'`. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * uses `'tab-size'` (named `'tab'` there) by default to ensure Markdown is - * seen the same way across vendors. - * This can be configured with the - * [`listItemIndent`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionslistitemindent) - * option. - * This rule’s `'space'` option is named `'1'` there. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * *···List - * ····item. - * - * Paragraph. - * - * 11.·List - * ····item. - * - * Paragraph. - * - * *···List - * ····item. - * - * *···List - * ····item. - * - * @example {"name": "ok.md", "setting": "mixed"} - * - * *·List item. - * - * Paragraph. - * - * 11.·List item - * - * Paragraph. - * - * *···List - * ····item. - * - * *···List - * ····item. - * - * @example {"name": "ok.md", "setting": "space"} - * - * *·List item. - * - * Paragraph. - * - * 11.·List item - * - * Paragraph. - * - * *·List - * ··item. - * - * *·List - * ··item. - * - * @example {"name": "not-ok.md", "setting": "space", "label": "input"} - * - * *···List - * ····item. - * - * @example {"name": "not-ok.md", "setting": "space", "label": "output"} - * - * 1:5: Incorrect list-item indent: remove 2 spaces - * - * @example {"name": "not-ok.md", "setting": "tab-size", "label": "input"} - * - * *·List - * ··item. - * - * @example {"name": "not-ok.md", "setting": "tab-size", "label": "output"} - * - * 1:3: Incorrect list-item indent: add 2 spaces - * - * @example {"name": "not-ok.md", "setting": "mixed", "label": "input"} - * - * *···List item. - * - * @example {"name": "not-ok.md", "setting": "mixed", "label": "output"} - * - * 1:5: Incorrect list-item indent: remove 2 spaces - * - * @example {"name": "not-ok.md", "setting": "💩", "label": "output", "config": {"positionless": true}} - * - * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` + * @typedef {import('mdast').Emphasis} Emphasis + * @typedef {import('../types.js').Handle} Handle + */ + +emphasis.peek = emphasisPeek; + +// To do: there are cases where emphasis cannot “form” depending on the +// previous or next character of sequences. +// There’s no way around that though, except for injecting zero-width stuff. +// Do we need to safeguard against that? +/** + * @type {Handle} + * @param {Emphasis} node + */ +function emphasis(node, _, context) { + const marker = checkEmphasis(context); + const exit = context.enter('emphasis'); + const value = containerPhrasing(node, context, { + before: marker, + after: marker + }); + exit(); + return marker + value + marker +} + +/** + * @type {Handle} + * @param {Emphasis} _ + */ +function emphasisPeek(_, _1, context) { + return context.options.emphasis || '*' +} + +/** + * @typedef {import('mdast').Heading} Heading + * @typedef {import('../types.js').Context} Context + */ + +/** + * @param {Heading} node + * @param {Context} context + * @returns {boolean} + */ +function formatHeadingAsSetext(node, context) { + return Boolean( + context.options.setext && (!node.depth || node.depth < 3) && toString(node) + ) +} + +/** + * @typedef {import('mdast').Heading} Heading + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('../types.js').Exit} Exit + */ + +/** + * @type {Handle} + * @param {Heading} node */ +function heading(node, _, context) { + const rank = Math.max(Math.min(6, node.depth || 1), 1); + /** @type {Exit} */ + let exit; + /** @type {Exit} */ + let subexit; + /** @type {string} */ + let value; + + if (formatHeadingAsSetext(node, context)) { + exit = context.enter('headingSetext'); + subexit = context.enter('phrasing'); + value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + subexit(); + exit(); + + return ( + value + + '\n' + + (rank === 1 ? '=' : '-').repeat( + // The whole size… + value.length - + // Minus the position of the character after the last EOL (or + // 0 if there is none)… + (Math.max(value.lastIndexOf('\r'), value.lastIndexOf('\n')) + 1) + ) + ) + } + const sequence = '#'.repeat(rank); + exit = context.enter('headingAtx'); + subexit = context.enter('phrasing'); + value = containerPhrasing(node, context, {before: '# ', after: '\n'}); + value = value ? sequence + ' ' + value : sequence; + if (context.options.closeAtx) { + value += ' ' + sequence; + } + subexit(); + exit(); + return value +} +/** + * @typedef {import('mdast').HTML} HTML + * @typedef {import('../types.js').Handle} Handle + */ +html.peek = htmlPeek; +/** + * @type {Handle} + * @param {HTML} node + */ +function html(node) { + return node.value || '' +} -var remarkLintListItemIndent = unifiedLintRule('remark-lint:list-item-indent', listItemIndent); +/** + * @type {Handle} + */ +function htmlPeek() { + return '<' +} -var start$2 = unistUtilPosition.start; +/** + * @typedef {import('mdast').Image} Image + * @typedef {import('../types.js').Handle} Handle + */ -var styles$1 = {'tab-size': true, mixed: true, space: true}; +image.peek = imagePeek; -function listItemIndent(tree, file, option) { - var contents = String(file); - var preferred = typeof option === 'string' ? option : 'tab-size'; +/** + * @type {Handle} + * @param {Image} node + */ +function image(node, _, context) { + const quote = checkQuote(context); + const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; + const exit = context.enter('image'); + let subexit = context.enter('label'); + let value = '![' + safe(context, node.alt, {before: '[', after: ']'}) + ']('; - if (styles$1[preferred] !== true) { - file.fail( - 'Incorrect list-item indent style `' + - preferred + - "`: use either `'tab-size'`, `'space'`, or `'mixed'`" - ); + subexit(); + + if ( + // If there’s no url but there is a title… + (!node.url && node.title) || + // Or if there’s markdown whitespace or an eol, enclose. + /[ \t\r\n]/.test(node.url) + ) { + subexit = context.enter('destinationLiteral'); + value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + } else { + // No whitespace, raw is prettier. + subexit = context.enter('destinationRaw'); + value += safe(context, node.url, { + before: '(', + after: node.title ? ' ' : ')' + }); + } + + subexit(); + + if (node.title) { + subexit = context.enter('title' + suffix); + value += + ' ' + + quote + + safe(context, node.title, {before: quote, after: quote}) + + quote; + subexit(); } - unistUtilVisit(tree, 'list', visitor); + value += ')'; + exit(); - function visitor(node) { - var spread = node.spread || node.loose; + return value +} - if (!unistUtilGenerated(node)) { - node.children.forEach(visitItem); - } +/** + * @type {Handle} + */ +function imagePeek() { + return '!' +} - function visitItem(item) { - var head = item.children[0]; - var final = start$2(head); - var marker; - var bulletSize; - var style; - var diff; - var reason; - var abs; +/** + * @typedef {import('mdast').ImageReference} ImageReference + * @typedef {import('../types.js').Handle} Handle + */ + +imageReference.peek = imageReferencePeek; - marker = contents - .slice(start$2(item).offset, final.offset) - .replace(/\[[x ]?]\s*$/i, ''); +/** + * @type {Handle} + * @param {ImageReference} node + */ +function imageReference(node, _, context) { + const type = node.referenceType; + const exit = context.enter('imageReference'); + let subexit = context.enter('label'); + const alt = safe(context, node.alt, {before: '[', after: ']'}); + let value = '![' + alt + ']'; - bulletSize = marker.replace(/\s+$/, '').length; + subexit(); + // Hide the fact that we’re in phrasing, because escapes don’t work. + const stack = context.stack; + context.stack = []; + subexit = context.enter('reference'); + const reference = safe(context, association(node), {before: '[', after: ']'}); + subexit(); + context.stack = stack; + exit(); - style = - preferred === 'tab-size' || (preferred === 'mixed' && spread) - ? Math.ceil(bulletSize / 4) * 4 - : bulletSize + 1; + if (type === 'full' || !alt || alt !== reference) { + value += '[' + reference + ']'; + } else if (type !== 'shortcut') { + value += '[]'; + } - if (marker.length !== style) { - diff = style - marker.length; - abs = Math.abs(diff); + return value +} - reason = - 'Incorrect list-item indent: ' + - (diff > 0 ? 'add' : 'remove') + - ' ' + - abs + - ' ' + - pluralize('space', abs); +/** + * @type {Handle} + */ +function imageReferencePeek() { + return '!' +} - file.message(reason, final); +/** + * @typedef {import('mdast').InlineCode} InlineCode + * @typedef {import('../types.js').Handle} Handle + */ + +inlineCode.peek = inlineCodePeek; + +/** + * @type {Handle} + * @param {InlineCode} node + */ +function inlineCode(node, _, context) { + let value = node.value || ''; + let sequence = '`'; + let index = -1; + + // If there is a single grave accent on its own in the code, use a fence of + // two. + // If there are two in a row, use one. + while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { + sequence += '`'; + } + + // If this is not just spaces or eols (tabs don’t count), and either the + // first or last character are a space, eol, or tick, then pad with spaces. + if ( + /[^ \r\n]/.test(value) && + ((/^[ \r\n]/.test(value) && /[ \r\n]$/.test(value)) || /^`|`$/.test(value)) + ) { + value = ' ' + value + ' '; + } + + // We have a potential problem: certain characters after eols could result in + // blocks being seen. + // For example, if someone injected the string `'\n# b'`, then that would + // result in an ATX heading. + // We can’t escape characters in `inlineCode`, but because eols are + // transformed to spaces when going from markdown to HTML anyway, we can swap + // them out. + while (++index < context.unsafe.length) { + const pattern = context.unsafe[index]; + const expression = patternCompile(pattern); + /** @type {RegExpExecArray|null} */ + let match; + + // Only look for `atBreak`s. + // Btw: note that `atBreak` patterns will always start the regex at LF or + // CR. + if (!pattern.atBreak) continue + + while ((match = expression.exec(value))) { + let position = match.index; + + // Support CRLF (patterns only look for one of the characters). + if ( + value.charCodeAt(position) === 10 /* `\n` */ && + value.charCodeAt(position - 1) === 13 /* `\r` */ + ) { + position--; } + + value = value.slice(0, position) + ' ' + value.slice(match.index + 1); } } + + return sequence + value + sequence } -var mdastUtilToString$1 = toString$4; +/** + * @type {Handle} + */ +function inlineCodePeek() { + return '`' +} -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$4(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all$1(node.children)) || - ('length' in node && all$1(node)))) || - '' +/** + * @typedef {import('mdast').Link} Link + * @typedef {import('../types.js').Context} Context + */ + +/** + * @param {Link} node + * @param {Context} context + * @returns {boolean} + */ +function formatLinkAsAutolink(node, context) { + const raw = toString(node); + + return Boolean( + !context.options.resourceLink && + // If there’s a url… + node.url && + // And there’s a no title… + !node.title && + // And the content of `node` is a single text node… + node.children && + node.children.length === 1 && + node.children[0].type === 'text' && + // And if the url is the same as the content… + (raw === node.url || 'mailto:' + raw === node.url) && + // And that starts w/ a protocol… + /^[a-z][a-z+.-]+:/i.test(node.url) && + // And that doesn’t contain ASCII control codes (character escapes and + // references don’t work) or angle brackets… + !/[\0- <>\u007F]/.test(node.url) ) } -function all$1(values) { - var result = []; - var length = values.length; - var index = -1; +/** + * @typedef {import('mdast').Link} Link + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('../types.js').Exit} Exit + */ + +link.peek = linkPeek; + +/** + * @type {Handle} + * @param {Link} node + */ +function link(node, _, context) { + const quote = checkQuote(context); + const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; + /** @type {Exit} */ + let exit; + /** @type {Exit} */ + let subexit; + /** @type {string} */ + let value; + + if (formatLinkAsAutolink(node, context)) { + // Hide the fact that we’re in phrasing, because escapes don’t work. + const stack = context.stack; + context.stack = []; + exit = context.enter('autolink'); + value = + '<' + containerPhrasing(node, context, {before: '<', after: '>'}) + '>'; + exit(); + context.stack = stack; + return value + } + + exit = context.enter('link'); + subexit = context.enter('label'); + value = + '[' + containerPhrasing(node, context, {before: '[', after: ']'}) + ']('; + subexit(); + + if ( + // If there’s no url but there is a title… + (!node.url && node.title) || + // Or if there’s markdown whitespace or an eol, enclose. + /[ \t\r\n]/.test(node.url) + ) { + subexit = context.enter('destinationLiteral'); + value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + } else { + // No whitespace, raw is prettier. + subexit = context.enter('destinationRaw'); + value += safe(context, node.url, { + before: '(', + after: node.title ? ' ' : ')' + }); + } + + subexit(); - while (++index < length) { - result[index] = toString$4(values[index]); + if (node.title) { + subexit = context.enter('title' + suffix); + value += + ' ' + + quote + + safe(context, node.title, {before: quote, after: quote}) + + quote; + subexit(); } - return result.join('') + value += ')'; + + exit(); + return value } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-auto-link-without-protocol - * @fileoverview - * Warn for autolinks without protocol. - * Autolinks are URLs enclosed in `<` (less than) and `>` (greater than) - * characters. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * adds a protocol where needed. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * - * - * - * Most Markdown vendors don’t recognize the following as a link: - * - * - * @example {"name": "not-ok.md", "label": "input"} - * - * - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:14: All automatic links must start with a protocol + * @type {Handle} + * @param {Link} node */ +function linkPeek(node, _, context) { + return formatLinkAsAutolink(node, context) ? '<' : '[' +} +/** + * @typedef {import('mdast').LinkReference} LinkReference + * @typedef {import('../types.js').Handle} Handle + */ +linkReference.peek = linkReferencePeek; +/** + * @type {Handle} + * @param {LinkReference} node + */ +function linkReference(node, _, context) { + const type = node.referenceType; + const exit = context.enter('linkReference'); + let subexit = context.enter('label'); + const text = containerPhrasing(node, context, {before: '[', after: ']'}); + let value = '[' + text + ']'; + subexit(); + // Hide the fact that we’re in phrasing, because escapes don’t work. + const stack = context.stack; + context.stack = []; + subexit = context.enter('reference'); + const reference = safe(context, association(node), {before: '[', after: ']'}); + subexit(); + context.stack = stack; + exit(); + if (type === 'full' || !text || text !== reference) { + value += '[' + reference + ']'; + } else if (type !== 'shortcut') { + value += '[]'; + } + return value +} -var remarkLintNoAutoLinkWithoutProtocol = unifiedLintRule( - 'remark-lint:no-auto-link-without-protocol', - noAutoLinkWithoutProtocol -); - -var start$3 = unistUtilPosition.start; -var end$1 = unistUtilPosition.end; - -// Protocol expression. -// See: . -var protocol = /^[a-z][a-z+.-]+:\/?/i; +/** + * @type {Handle} + */ +function linkReferencePeek() { + return '[' +} -var reason = 'All automatic links must start with a protocol'; +/** + * @typedef {import('mdast').List} List + * @typedef {import('../types.js').Handle} Handle + */ -function noAutoLinkWithoutProtocol(tree, file) { - unistUtilVisit(tree, 'link', visitor); +/** + * @type {Handle} + * @param {List} node + */ +function list(node, _, context) { + const exit = context.enter('list'); + const value = containerFlow(node, context); + exit(); + return value +} - function visitor(node) { - var children; +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ - if (!unistUtilGenerated(node)) { - children = node.children; +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkBullet(context) { + const marker = context.options.bullet || '*'; - if ( - start$3(node).column === start$3(children[0]).column - 1 && - end$1(node).column === end$1(children[children.length - 1]).column + 1 && - !protocol.test(mdastUtilToString$1(node)) - ) { - file.message(reason, node); - } - } + if (marker !== '*' && marker !== '+' && marker !== '-') { + throw new Error( + 'Cannot serialize items with `' + + marker + + '` for `options.bullet`, expected `*`, `+`, or `-`' + ) } + + return marker } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-blockquote-without-marker - * @fileoverview - * Warn when blank lines without `>` (greater than) markers are found in a - * block quote. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * adds markers to every line in a block quote. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * > Foo… - * > …bar… - * > …baz. - * - * @example {"name": "ok-tabs.md"} - * - * >»Foo… - * >»…bar… - * >»…baz. - * - * @example {"name": "not-ok.md", "label": "input"} - * - * > Foo… - * …bar… - * > …baz. - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 2:1: Missing marker in block quote - * - * @example {"name": "not-ok-tabs.md", "label": "input"} - * - * >»Foo… - * »…bar… - * …baz. - * - * @example {"name": "not-ok-tabs.md", "label": "output"} - * - * 2:1: Missing marker in block quote - * 3:1: Missing marker in block quote + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options */ +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkListItemIndent(context) { + const style = context.options.listItemIndent || 'tab'; + // To do: remove in a major. + // @ts-expect-error: deprecated. + if (style === 1 || style === '1') { + return 'one' + } + if (style !== 'tab' && style !== 'one' && style !== 'mixed') { + throw new Error( + 'Cannot serialize items with `' + + style + + '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' + ) + } + return style +} +/** + * @typedef {import('mdast').ListItem} ListItem + * @typedef {import('mdast').List} List + * @typedef {import('../util/indent-lines.js').Map} Map + * @typedef {import('../types.js').Options} Options + * @typedef {import('../types.js').Handle} Handle + */ +/** + * @type {Handle} + * @param {ListItem} node + */ +function listItem(node, parent, context) { + const listItemIndent = checkListItemIndent(context); + /** @type {string} */ + let bullet = checkBullet(context); -var remarkLintNoBlockquoteWithoutMarker = unifiedLintRule( - 'remark-lint:no-blockquote-without-marker', - noBlockquoteWithoutMarker -); - -var reason$1 = 'Missing marker in block quote'; - -function noBlockquoteWithoutMarker(tree, file) { - var contents = String(file); - var location = vfileLocation(file); - - unistUtilVisit(tree, 'blockquote', visitor); + if (parent && parent.type === 'list' && parent.ordered) { + bullet = + (typeof parent.start === 'number' && parent.start > -1 + ? parent.start + : 1) + + (context.options.incrementListMarker === false + ? 0 + : parent.children.indexOf(node)) + + '.'; + } - function onquotedchild(node) { - var line; - var end; - var column; - var offset; + let size = bullet.length + 1; - if (node.type === 'paragraph' && !unistUtilGenerated(node)) { - line = unistUtilPosition.start(node).line; - end = unistUtilPosition.end(node).line; - column = unistUtilPosition.start(node).column; + if ( + listItemIndent === 'tab' || + (listItemIndent === 'mixed' && + ((parent && 'spread' in parent && parent.spread) || node.spread)) + ) { + size = Math.ceil(size / 4) * 4; + } - // Skip past the first line. - while (++line <= end) { - offset = location.toOffset({line: line, column: column}); + const exit = context.enter('listItem'); + const value = indentLines(containerFlow(node, context), map); + exit(); - if (/>[\t ]+$/.test(contents.slice(offset - 5, offset))) { - continue - } + return value - // Roughly here. - file.message(reason$1, {line: line, column: column - 2}); - } + /** @type {Map} */ + function map(line, index, blank) { + if (index) { + return (blank ? '' : ' '.repeat(size)) + line } - } - function visitor(node) { - node.children.forEach(onquotedchild); + return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line } } -var mdastUtilToString$2 = toString$5; +/** + * @typedef {import('mdast').Paragraph} Paragraph + * @typedef {import('../types.js').Handle} Handle + */ -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$5(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all$2(node.children)) || - ('length' in node && all$2(node)))) || - '' - ) +/** + * @type {Handle} + * @param {Paragraph} node + */ +function paragraph(node, _, context) { + const exit = context.enter('paragraph'); + const subexit = context.enter('phrasing'); + const value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + subexit(); + exit(); + return value } -function all$2(values) { - var result = []; - var length = values.length; - var index = -1; - - while (++index < length) { - result[index] = toString$5(values[index]); - } +/** + * @typedef {import('mdast').Root} Root + * @typedef {import('../types.js').Handle} Handle + */ - return result.join('') +/** + * @type {Handle} + * @param {Root} node + */ +function root(node, _, context) { + return containerFlow(node, context) } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-literal-urls - * @fileoverview - * Warn for literal URLs in text. - * URLs are treated as links in some Markdown vendors, but not in others. - * To make sure they are always linked, wrap them in `<` (less than) and `>` - * (greater than). - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * never creates literal URLs and always uses `<` (less than) and `>` - * (greater than). - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * - * - * @example {"name": "not-ok.md", "label": "input"} - * - * http://foo.bar/baz - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:19: Don’t use literal URLs without angle brackets + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options */ +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkStrong(context) { + const marker = context.options.strong || '*'; + if (marker !== '*' && marker !== '_') { + throw new Error( + 'Cannot serialize strong with `' + + marker + + '` for `options.strong`, expected `*`, or `_`' + ) + } + return marker +} +/** + * @typedef {import('mdast').Strong} Strong + * @typedef {import('../types.js').Handle} Handle + */ +strong.peek = strongPeek; +// To do: there are cases where emphasis cannot “form” depending on the +// previous or next character of sequences. +// There’s no way around that though, except for injecting zero-width stuff. +// Do we need to safeguard against that? +/** + * @type {Handle} + * @param {Strong} node + */ +function strong(node, _, context) { + const marker = checkStrong(context); + const exit = context.enter('strong'); + const value = containerPhrasing(node, context, { + before: marker, + after: marker + }); + exit(); + return marker + marker + value + marker + marker +} -var remarkLintNoLiteralUrls = unifiedLintRule('remark-lint:no-literal-urls', noLiteralURLs); - -var start$4 = unistUtilPosition.start; -var end$2 = unistUtilPosition.end; -var mailto = 'mailto:'; -var reason$2 = 'Don’t use literal URLs without angle brackets'; - -function noLiteralURLs(tree, file) { - unistUtilVisit(tree, 'link', visitor); +/** + * @type {Handle} + * @param {Strong} _ + */ +function strongPeek(_, _1, context) { + return context.options.strong || '*' +} - function visitor(node) { - var children = node.children; - var value = mdastUtilToString$2(node); +/** + * @typedef {import('mdast').Text} Text + * @typedef {import('../types.js').Handle} Handle + */ - if ( - !unistUtilGenerated(node) && - start$4(node).column === start$4(children[0]).column && - end$2(node).column === end$2(children[children.length - 1]).column && - (node.url === mailto + value || node.url === value) - ) { - file.message(reason$2, node); - } - } +/** + * @type {Handle} + * @param {Text} node + */ +function text$1(node, _, context, safeOptions) { + return safe(context, node.value, safeOptions) } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module ordered-list-marker-style - * @fileoverview - * Warn when the list item marker style of ordered lists violate a given style. - * - * Options: `'consistent'`, `'.'`, or `')'`, default: `'consistent'`. - * - * `'consistent'` detects the first used list style and warns when subsequent - * lists use different styles. - * - * Note: `)` is only supported in CommonMark. - * - * @example {"name": "ok.md"} - * - * 1. Foo - * - * - * 1. Bar - * - * Unordered lists are not affected by this rule. - * - * * Foo - * - * @example {"name": "ok.md", "setting": "."} - * - * 1. Foo - * - * 2. Bar - * - * @example {"name": "ok.md", "setting": ")", "config": {"commonmark": true}} - * - * - * - * 1) Foo - * - * 2) Bar - * - * @example {"name": "not-ok.md", "label": "input", "config": {"commonmark": true}} - * - * 1. Foo - * - * 2) Bar - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 3:1-3:8: Marker style should be `.` - * - * @example {"name": "not-ok.md", "label": "output", "setting": "💩", "config": {"positionless": true}} - * - * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options */ +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkRuleRepetition(context) { + const repetition = context.options.ruleRepetition || 3; + if (repetition < 3) { + throw new Error( + 'Cannot serialize rules with repetition `' + + repetition + + '` for `options.ruleRepetition`, expected `3` or more' + ) + } + return repetition +} +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkRule(context) { + const marker = context.options.rule || '*'; -var remarkLintOrderedListMarkerStyle = unifiedLintRule( - 'remark-lint:ordered-list-marker-style', - orderedListMarkerStyle -); + if (marker !== '*' && marker !== '-' && marker !== '_') { + throw new Error( + 'Cannot serialize rules with `' + + marker + + '` for `options.rule`, expected `*`, `-`, or `_`' + ) + } -var start$5 = unistUtilPosition.start; + return marker +} -var styles$2 = { - ')': true, - '.': true, - null: true -}; +/** + * @typedef {import('../types.js').Handle} Handle + * @typedef {import('mdast').ThematicBreak} ThematicBreak + */ -function orderedListMarkerStyle(tree, file, option) { - var contents = String(file); - var preferred = - typeof option !== 'string' || option === 'consistent' ? null : option; +/** + * @type {Handle} + * @param {ThematicBreak} _ + */ +function thematicBreak(_, _1, context) { + const value = ( + checkRule(context) + (context.options.ruleSpaces ? ' ' : '') + ).repeat(checkRuleRepetition(context)); - if (styles$2[preferred] !== true) { - file.fail( - 'Incorrect ordered list item marker style `' + - preferred + - "`: use either `'.'` or `')'`" - ); - } + return context.options.ruleSpaces ? value.slice(0, -1) : value +} - unistUtilVisit(tree, 'list', visitor); +const handle = { + blockquote, + break: hardBreak, + code: code$1, + definition, + emphasis, + hardBreak, + heading, + html, + image, + imageReference, + inlineCode, + link, + linkReference, + list, + listItem, + paragraph, + root, + strong, + text: text$1, + thematicBreak +}; - function visitor(node) { - var children = node.children; - var length = node.ordered ? children.length : 0; - var index = -1; - var marker; - var child; +/** + * @typedef {import('./types.js').Join} Join + */ - while (++index < length) { - child = children[index]; +/** @type {Array.} */ +const join = [joinDefaults]; - if (!unistUtilGenerated(child)) { - marker = contents - .slice(start$5(child).offset, start$5(child.children[0]).offset) - .replace(/\s|\d/g, '') - .replace(/\[[x ]?]\s*$/i, ''); +/** @type {Join} */ +function joinDefaults(left, right, parent, context) { + if ( + // Two lists with the same marker. + (right.type === 'list' && + right.type === left.type && + Boolean(left.ordered) === Boolean(right.ordered)) || + // Indented code after list or another indented code. + (right.type === 'code' && + formatCodeAsIndented(right, context) && + (left.type === 'list' || + (left.type === right.type && formatCodeAsIndented(left, context)))) + ) { + return false + } - if (preferred) { - if (marker !== preferred) { - file.message('Marker style should be `' + preferred + '`', child); - } - } else { - preferred = marker; - } - } + // Join children of a list or an item. + // In which case, `parent` has a `spread` field. + if ('spread' in parent && typeof parent.spread === 'boolean') { + if ( + left.type === 'paragraph' && + // Two paragraphs. + (left.type === right.type || + right.type === 'definition' || + // Paragraph followed by a setext heading. + (right.type === 'heading' && formatHeadingAsSetext(right, context))) + ) { + return } + + return parent.spread ? 1 : 0 } } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module hard-break-spaces - * @fileoverview - * Warn when too many spaces are used to create a hard break. - * - * @example {"name": "ok.md"} - * - * Lorem ipsum·· - * dolor sit amet - * - * @example {"name": "not-ok.md", "label": "input"} - * - * Lorem ipsum··· - * dolor sit amet. - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:12-2:1: Use two spaces for hard line breaks + * @typedef {import('./types.js').Unsafe} Unsafe */ +/** @type {Array.} */ +const unsafe = [ + { + character: '\t', + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] + }, + { + character: '\r', + inConstruct: [ + 'codeFencedLangGraveAccent', + 'codeFencedLangTilde', + 'codeFencedMetaGraveAccent', + 'codeFencedMetaTilde', + 'destinationLiteral', + 'headingAtx' + ] + }, + { + character: '\n', + inConstruct: [ + 'codeFencedLangGraveAccent', + 'codeFencedLangTilde', + 'codeFencedMetaGraveAccent', + 'codeFencedMetaTilde', + 'destinationLiteral', + 'headingAtx' + ] + }, + { + character: ' ', + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] + }, + // An exclamation mark can start an image, if it is followed by a link or + // a link reference. + {character: '!', after: '\\[', inConstruct: 'phrasing'}, + // A quote can break out of a title. + {character: '"', inConstruct: 'titleQuote'}, + // A number sign could start an ATX heading if it starts a line. + {atBreak: true, character: '#'}, + {character: '#', inConstruct: 'headingAtx', after: '(?:[\r\n]|$)'}, + // Dollar sign and percentage are not used in markdown. + // An ampersand could start a character reference. + {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, + // An apostrophe can break out of a title. + {character: "'", inConstruct: 'titleApostrophe'}, + // A left paren could break out of a destination raw. + {character: '(', inConstruct: 'destinationRaw'}, + {before: '\\]', character: '(', inConstruct: 'phrasing'}, + // A right paren could start a list item or break out of a destination + // raw. + {atBreak: true, before: '\\d+', character: ')'}, + {character: ')', inConstruct: 'destinationRaw'}, + // An asterisk can start thematic breaks, list items, emphasis, strong. + {atBreak: true, character: '*'}, + {character: '*', inConstruct: 'phrasing'}, + // A plus sign could start a list item. + {atBreak: true, character: '+'}, + // A dash can start thematic breaks, list items, and setext heading + // underlines. + {atBreak: true, character: '-'}, + // A dot could start a list item. + {atBreak: true, before: '\\d+', character: '.', after: '(?:[ \t\r\n]|$)'}, + // Slash, colon, and semicolon are not used in markdown for constructs. + // A less than can start html (flow or text) or an autolink. + // HTML could start with an exclamation mark (declaration, cdata, comment), + // slash (closing tag), question mark (instruction), or a letter (tag). + // An autolink also starts with a letter. + // Finally, it could break out of a destination literal. + {atBreak: true, character: '<', after: '[!/?A-Za-z]'}, + {character: '<', after: '[!/?A-Za-z]', inConstruct: 'phrasing'}, + {character: '<', inConstruct: 'destinationLiteral'}, + // An equals to can start setext heading underlines. + {atBreak: true, character: '='}, + // A greater than can start block quotes and it can break out of a + // destination literal. + {atBreak: true, character: '>'}, + {character: '>', inConstruct: 'destinationLiteral'}, + // Question mark and at sign are not used in markdown for constructs. + // A left bracket can start definitions, references, labels, + {atBreak: true, character: '['}, + {character: '[', inConstruct: ['phrasing', 'label', 'reference']}, + // A backslash can start an escape (when followed by punctuation) or a + // hard break (when followed by an eol). + // Note: typical escapes are handled in `safe`! + {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, + // A right bracket can exit labels. + { + character: ']', + inConstruct: ['label', 'reference'] + }, + // Caret is not used in markdown for constructs. + // An underscore can start emphasis, strong, or a thematic break. + {atBreak: true, character: '_'}, + {before: '[^A-Za-z]', character: '_', inConstruct: 'phrasing'}, + {character: '_', after: '[^A-Za-z]', inConstruct: 'phrasing'}, + // A grave accent can start code (fenced or text), or it can break out of + // a grave accent code fence. + {atBreak: true, character: '`'}, + { + character: '`', + inConstruct: [ + 'codeFencedLangGraveAccent', + 'codeFencedMetaGraveAccent', + 'phrasing' + ] + }, + // Left brace, vertical bar, right brace are not used in markdown for + // constructs. + // A tilde can start code (fenced). + {atBreak: true, character: '~'} +]; +/** + * @typedef {import('./types.js').Node} Node + * @typedef {import('./types.js').Options} Options + * @typedef {import('./types.js').Context} Context + * @typedef {import('./types.js').Handle} Handle + * @typedef {import('./types.js').Join} Join + * @typedef {import('./types.js').Unsafe} Unsafe + */ +/** + * @param {Node} tree + * @param {Options} [options] + * @returns {string} + */ +function toMarkdown(tree, options = {}) { + /** @type {Context} */ + // @ts-expect-error: we’ll add `handle` later. + const context = { + enter, + stack: [], + unsafe: [], + join: [], + handlers: {}, + options: {} + }; + configure(context, {unsafe, join, handlers: handle}); + configure(context, options); + if (context.options.tightDefinitions) { + configure(context, {join: [joinDefinition]}); + } -var remarkLintHardBreakSpaces = unifiedLintRule('remark-lint:hard-break-spaces', hardBreakSpaces); - -var reason$3 = 'Use two spaces for hard line breaks'; + /** @type {Handle} */ + context.handle = zwitch('type', { + invalid, + // @ts-expect-error: hush. + unknown, + // @ts-expect-error: hush. + handlers: context.handlers + }); -function hardBreakSpaces(tree, file) { - var contents = String(file); + let result = context.handle(tree, null, context, {before: '\n', after: '\n'}); - unistUtilVisit(tree, 'break', visitor); + if ( + result && + result.charCodeAt(result.length - 1) !== 10 && + result.charCodeAt(result.length - 1) !== 13 + ) { + result += '\n'; + } - function visitor(node) { - var value; + return result - if (!unistUtilGenerated(node)) { - value = contents - .slice(unistUtilPosition.start(node).offset, unistUtilPosition.end(node).offset) - .split('\n', 1)[0] - .replace(/\r$/, ''); + /** @type {Context['enter']} */ + function enter(name) { + context.stack.push(name); + return exit - if (value.length > 2) { - file.message(reason$3, node); - } + function exit() { + context.stack.pop(); } } } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-duplicate-definitions - * @fileoverview - * Warn when duplicate definitions are found. - * - * @example {"name": "ok.md"} - * - * [foo]: bar - * [baz]: qux - * - * @example {"name": "not-ok.md", "label": "input"} - * - * [foo]: bar - * [foo]: qux - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 2:1-2:11: Do not use definitions with the same identifier (1:1) + * @type {Handle} + * @param {unknown} value */ +function invalid(value) { + throw new Error('Cannot handle value `' + value + '`, expected node') +} +/** + * @type {Handle} + * @param {Node} node + */ +function unknown(node) { + throw new Error('Cannot handle unknown node `' + node.type + '`') +} +/** @type {Join} */ +function joinDefinition(left, right) { + // No blank line between adjacent definitions. + if (left.type === 'definition' && left.type === right.type) { + return 0 + } +} +/** + * @typedef {import('mdast').Root|import('mdast').Content} Node + * @typedef {import('mdast-util-to-markdown').Options} Options + */ +/** @type {import('unified').Plugin<[Options]|void[], Node, string>} */ +function remarkStringify(options) { + /** @type {import('unified').CompilerFunction} */ + const compiler = (tree) => { + // Assume options. + const settings = /** @type {Options} */ (this.data('settings')); + return toMarkdown( + tree, + Object.assign({}, settings, options, { + // Note: this option is not in the readme. + // The goal is for it to be set by plugins on `data` instead of being + // passed by users. + extensions: this.data('toMarkdownExtensions') || [] + }) + ) + }; + Object.assign(this, {Compiler: compiler}); +} -var remarkLintNoDuplicateDefinitions = unifiedLintRule( - 'remark-lint:no-duplicate-definitions', - noDuplicateDefinitions -); - -var reason$4 = 'Do not use definitions with the same identifier'; - -function noDuplicateDefinitions(tree, file) { - var map = {}; +const remark = unified().use(remarkParse).use(remarkStringify).freeze(); - unistUtilVisit(tree, ['definition', 'footnoteDefinition'], check); +const name$1 = "remark"; +const version$1 = "14.0.1"; +const description$1 = "Markdown processor powered by plugins part of the unified collective"; +const license = "MIT"; +const keywords = [ + "unified", + "remark", + "markdown", + "mdast", + "abstract", + "syntax", + "tree", + "ast", + "parse", + "stringify", + "serialize", + "compile", + "process" +]; +const homepage = "https://remark.js.org"; +const repository = "https://github.com/remarkjs/remark/tree/main/packages/remark"; +const bugs = "https://github.com/remarkjs/remark/issues"; +const funding = { + type: "opencollective", + url: "https://opencollective.com/unified" +}; +const author = "Titus Wormer (https://wooorm.com)"; +const contributors = [ + "Titus Wormer (https://wooorm.com)" +]; +const sideEffects = false; +const type = "module"; +const main$1 = "index.js"; +const types = "index.d.ts"; +const files = [ + "index.d.ts", + "index.js" +]; +const dependencies$1 = { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + unified: "^10.0.0" +}; +const scripts$1 = { + test: "node --conditions development test.js", + build: "rimraf \"*.d.ts\" && tsc && type-coverage" +}; +const xo = false; +const typeCoverage = { + atLeast: 100, + detail: true, + strict: true, + ignoreCatch: true +}; +var proc = { + name: name$1, + version: version$1, + description: description$1, + license: license, + keywords: keywords, + homepage: homepage, + repository: repository, + bugs: bugs, + funding: funding, + author: author, + contributors: contributors, + sideEffects: sideEffects, + type: type, + main: main$1, + types: types, + files: files, + dependencies: dependencies$1, + scripts: scripts$1, + xo: xo, + typeCoverage: typeCoverage +}; - function check(node) { - var identifier; - var duplicate; +const name = "node-lint-md-cli-rollup"; +const description = "remark packaged for Node.js Markdown linting"; +const version = "2.0.2"; +const devDependencies = { + "@rollup/plugin-commonjs": "^20.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.4", + rollup: "^2.52.7", + shx: "^0.3.3" +}; +const dependencies = { + "markdown-extensions": "^1.1.1", + remark: "^14.0.0", + "remark-gfm": "^2.0.0", + "remark-preset-lint-node": "^3.0.0", + "unified-args": "^9.0.0" +}; +const main = "dist/index.js"; +const scripts = { + build: "npx rollup -c", + "build-node": "npm run build && npx shx cp dist/index.mjs ../lint-md.mjs" +}; +var cli = { + name: name, + description: description, + version: version, + devDependencies: devDependencies, + dependencies: dependencies, + main: main, + scripts: scripts +}; - if (!unistUtilGenerated(node)) { - identifier = node.identifier; - duplicate = map[identifier]; +/** + * @typedef {import('unist').Point} Point + * @typedef {import('vfile').VFile} VFile + * + * @typedef {Pick} PositionalPoint + * @typedef {Required} FullPoint + * @typedef {NonNullable} Offset + */ - if (duplicate && duplicate.type) { - file.message( - reason$4 + ' (' + unistUtilStringifyPosition(unistUtilPosition.start(duplicate)) + ')', - node - ); - } +/** + * Get transform functions for the given `document`. + * + * @param {string|Uint8Array|VFile} file + */ +function location(file) { + var value = String(file); + /** @type {Array.} */ + var indices = []; + var search = /\r?\n|\r/g; - map[identifier] = node; - } + while (search.test(value)) { + indices.push(search.lastIndex); } -} -var mdastUtilHeadingStyle = style; + indices.push(value.length + 1); -function style(node, relative) { - var last = node.children[node.children.length - 1]; - var depth = node.depth; - var pos = node && node.position && node.position.end; - var final = last && last.position && last.position.end; + return {toPoint, toOffset} - if (!pos) { - return null - } + /** + * Get the line and column-based `point` for `offset` in the bound indices. + * Returns a point with `undefined` values when given invalid or out of bounds + * input. + * + * @param {Offset} offset + * @returns {FullPoint} + */ + function toPoint(offset) { + var index = -1; - // This can only occur for `'atx'` and `'atx-closed'` headings. - // This might incorrectly match `'atx'` headings with lots of trailing white - // space as an `'atx-closed'` heading. - if (!last) { - if (pos.column - 1 <= depth * 2) { - return consolidate(depth, relative) + if (offset > -1 && offset < indices[indices.length - 1]) { + while (++index < indices.length) { + if (indices[index] > offset) { + return { + line: index + 1, + column: offset - (indices[index - 1] || 0) + 1, + offset + } + } + } } - return 'atx-closed' - } - - if (final.line + 1 === pos.line) { - return 'setext' + return {line: undefined, column: undefined, offset: undefined} } - if (final.column + depth < pos.column) { - return 'atx-closed' - } + /** + * Get the `offset` for a line and column-based `point` in the bound indices. + * Returns `-1` when given invalid or out of bounds input. + * + * @param {PositionalPoint} point + * @returns {Offset} + */ + function toOffset(point) { + var line = point && point.line; + var column = point && point.column; + /** @type {number} */ + var offset; - return consolidate(depth, relative) -} + if ( + typeof line === 'number' && + typeof column === 'number' && + !Number.isNaN(line) && + !Number.isNaN(column) && + line - 1 in indices + ) { + offset = (indices[line - 2] || 0) + column - 1 || 0; + } -// Get the probable style of an atx-heading, depending on preferred style. -function consolidate(depth, relative) { - return depth < 3 - ? 'atx' - : relative === 'atx' || relative === 'setext' - ? relative - : null + return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 + } } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-heading-content-indent - * @fileoverview - * Warn when content of headings is indented. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all unneeded padding around content in headings. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"name": "ok.md"} - * - * #·Foo - * - * ## Bar·## + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent * - * ##·Baz - * - * Setext headings are not affected. - * - * Baz - * === - * - * @example {"name": "not-ok.md", "label": "input"} - * - * #··Foo - * - * ## Bar··## - * - * ##··Baz - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:4: Remove 1 space before this heading’s content - * 3:7: Remove 1 space after this heading’s content - * 5:7: Remove 1 space before this heading’s content + * @typedef {string} Type + * @typedef {Object} Props * - * @example {"name": "empty-heading.md"} - * - * #·· + * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ +const convert = + /** + * @type {( + * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & + * ((test?: Test) => AssertAnything) + * )} + */ + ( + /** + * Generate an assertion from a check. + * @param {Test} [test] + * When nullish, checks if `node` is a `Node`. + * When `string`, works like passing `function (node) {return node.type === test}`. + * When `function` checks if function passed the node is true. + * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. + * When `array`, checks any one of the subtests pass. + * @returns {AssertAnything} + */ + function (test) { + if (test === undefined || test === null) { + return ok + } + if (typeof test === 'string') { + return typeFactory(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory(test) : propsFactory(test) + } + if (typeof test === 'function') { + return castFactory(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +/** + * @param {Array.} tests + * @returns {AssertAnything} + */ +function anyFactory(tests) { + /** @type {Array.} */ + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert(tests[index]); + } + return castFactory(any) -var remarkLintNoHeadingContentIndent = unifiedLintRule( - 'remark-lint:no-heading-content-indent', - noHeadingContentIndent -); - -var start$6 = unistUtilPosition.start; -var end$3 = unistUtilPosition.end; - -function noHeadingContentIndent(tree, file) { - unistUtilVisit(tree, 'heading', visitor); - - function visitor(node) { - var depth; - var children; - var type; - var head; - var final; - var diff; - var reason; - var abs; + /** + * @this {unknown} + * @param {unknown[]} parameters + * @returns {boolean} + */ + function any(...parameters) { + let index = -1; - if (unistUtilGenerated(node)) { - return + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true } - depth = node.depth; - children = node.children; - type = mdastUtilHeadingStyle(node, 'atx'); - - if (type === 'atx' || type === 'atx-closed') { - head = start$6(children[0]).column; - - // Ignore empty headings. - if (!head) { - return - } - - diff = head - start$6(node).column - 1 - depth; + return false + } +} - if (diff) { - abs = Math.abs(diff); +/** + * Utility to assert each property in `test` is represented in `node`, and each + * values are strictly equal. + * + * @param {Props} check + * @returns {AssertAnything} + */ +function propsFactory(check) { + return castFactory(all) - reason = - 'Remove ' + - abs + - ' ' + - pluralize('space', abs) + - ' before this heading’s content'; + /** + * @param {Node} node + * @returns {boolean} + */ + function all(node) { + /** @type {string} */ + let key; - file.message(reason, start$6(children[0])); - } + for (key in check) { + // @ts-expect-error: hush, it sure works as an index. + if (node[key] !== check[key]) return false } - // Closed ATX headings always must have a space between their content and - // the final hashes, thus, there is no `add x spaces`. - if (type === 'atx-closed') { - final = end$3(children[children.length - 1]); - diff = end$3(node).column - final.column - 1 - depth; - - if (diff) { - reason = - 'Remove ' + - diff + - ' ' + - pluralize('space', diff) + - ' after this heading’s content'; - - file.message(reason, final); - } - } + return true } } -var mdastUtilToString$3 = toString$6; +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * + * @param {Type} check + * @returns {AssertAnything} + */ +function typeFactory(check) { + return castFactory(type) -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$6(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all$3(node.children)) || - ('length' in node && all$3(node)))) || - '' - ) + /** + * @param {Node} node + */ + function type(node) { + return node && node.type === check + } } -function all$3(values) { - var result = []; - var length = values.length; - var index = -1; +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * @param {TestFunctionAnything} check + * @returns {AssertAnything} + */ +function castFactory(check) { + return assertion - while (++index < length) { - result[index] = toString$6(values[index]); + /** + * @this {unknown} + * @param {Array.} parameters + * @returns {boolean} + */ + function assertion(...parameters) { + // @ts-expect-error: spreading is fine. + return Boolean(check.call(this, ...parameters)) } +} - return result.join('') +// Utility to return true. +function ok() { + return true } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-inline-padding - * @fileoverview - * Warn when phrasing content is padded with spaces between their markers and - * content. - * - * Warns for emphasis, strong, delete, image, and link. - * - * @example {"name": "ok.md"} - * - * Alpha [bravo](http://echo.fox/trot) - * - * @example {"name": "not-ok.md", "label": "input"} - * - * Alpha [ bravo ](http://echo.fox/trot) - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:7-1:38: Don’t pad `link` with inner spaces + * @param {string} d + * @returns {string} */ +function color$2(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ + +/** + * Continue traversing as normal + */ +const CONTINUE$2 = true; +/** + * Do not traverse this node’s children + */ +const SKIP$2 = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT$2 = false; +const visitParents$2 = + /** + * @type {( + * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) + * )} + */ + ( + /** + * Visit children of tree which pass a test + * + * @param {Node} tree Abstract syntax tree to walk + * @param {Test} test test Test node + * @param {Visitor} visitor Function to run for each node + * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-ignore no visitor given, so `visitor` is test. + visitor = test; + test = null; + } + + var is = convert(test); + var step = reverse ? -1 : 1; + + factory(tree, null, [])(); + + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + var value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string} */ + 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$2(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } + return visit + function visit() { + /** @type {ActionTuple} */ + var result = []; + /** @type {ActionTuple} */ + var subresult; + /** @type {number} */ + var offset; + /** @type {Array.} */ + var grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$2(visitor(node, parents)); + if (result[0] === EXIT$2) { + return result + } + } -var remarkLintNoInlinePadding = unifiedLintRule('remark-lint:no-inline-padding', noInlinePadding); + if (node.children && result[0] !== SKIP$2) { + // @ts-ignore looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-ignore looks like a parent. + grandparents = parents.concat(node); -function noInlinePadding(tree, file) { - // Note: `emphasis`, `strong`, `delete` (GFM) can’t have padding anymore - // since CM. - unistUtilVisit(tree, ['link', 'linkReference'], visitor); + // @ts-ignore looks like a parent. + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); - function visitor(node) { - var contents; + if (subresult[0] === EXIT$2) { + return subresult + } - if (!unistUtilGenerated(node)) { - contents = mdastUtilToString$3(node); + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } - if ( - contents.charAt(0) === ' ' || - contents.charAt(contents.length - 1) === ' ' - ) { - file.message('Don’t pad `' + node.type + '` with inner spaces', node); + return result + } } } - } -} + ); /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-shortcut-reference-image - * @fileoverview - * Warn when shortcut reference images are used. - * - * Shortcut references render as images when a definition is found, and as - * plain text without definition. - * Sometimes, you don’t intend to create an image from the reference, but this - * rule still warns anyway. - * In that case, you can escape the reference like so: `!\[foo]`. - * - * @example {"name": "ok.md"} - * - * ![foo][] - * - * [foo]: http://foo.bar/baz.png - * - * @example {"name": "not-ok.md", "label": "input"} - * - * ![foo] - * - * [foo]: http://foo.bar/baz.png - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:7: Use the trailing [] on reference images + * @param {VisitorResult} value + * @returns {ActionTuple} */ +function toResult$2(value) { + if (Array.isArray(value)) { + return value + } - - - - -var remarkLintNoShortcutReferenceImage = unifiedLintRule( - 'remark-lint:no-shortcut-reference-image', - noShortcutReferenceImage -); - -var reason$5 = 'Use the trailing [] on reference images'; - -function noShortcutReferenceImage(tree, file) { - unistUtilVisit(tree, 'imageReference', visitor); - - function visitor(node) { - if (!unistUtilGenerated(node) && node.referenceType === 'shortcut') { - file.message(reason$5, node); - } + if (typeof value === 'number') { + return [CONTINUE$2, value] } + + return [value] } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-shortcut-reference-link - * @fileoverview - * Warn when shortcut reference links are used. - * - * Shortcut references render as links when a definition is found, and as - * plain text without definition. - * Sometimes, you don’t intend to create a link from the reference, but this - * rule still warns anyway. - * In that case, you can escape the reference like so: `\[foo]`. - * - * @example {"name": "ok.md"} - * - * [foo][] - * - * [foo]: http://foo.bar/baz - * - * @example {"name": "not-ok.md", "label": "input"} - * - * [foo] - * - * [foo]: http://foo.bar/baz - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:6: Use the trailing `[]` on reference links + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult */ - - - - -var remarkLintNoShortcutReferenceLink = unifiedLintRule( - 'remark-lint:no-shortcut-reference-link', - noShortcutReferenceLink -); - -var reason$6 = 'Use the trailing `[]` on reference links'; - -function noShortcutReferenceLink(tree, file) { - unistUtilVisit(tree, 'linkReference', visitor); - - function visitor(node) { - if (!unistUtilGenerated(node) && node.referenceType === 'shortcut') { - file.message(reason$6, node); +const visit$1 = + /** + * @type {( + * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) + * )} + */ + ( + /** + * Visit children of tree which pass a test + * + * @param {Node} tree Abstract syntax tree to walk + * @param {Test} test test Test node + * @param {Visitor} visitor Function to run for each node + * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + + visitParents$2(tree, test, overload, reverse); + + /** + * @param {Node} node + * @param {Array.} parents + */ + function overload(node, parents) { + var parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } } - } -} - -var collapseWhiteSpace = collapse; - -// `collapse(' \t\nbar \nbaz\t') // ' bar baz '` -function collapse(value) { - return String(value).replace(/\s+/g, ' ') -} + ); /** - * @author Titus Wormer - * @copyright 2016 Titus Wormer - * @license MIT - * @module no-undefined-references - * @fileoverview - * Warn when references to undefined definitions are found. - * - * Options: `Object`, optional. - * - * The object can have an `allow` field, set to an array of strings that may - * appear between `[` and `]`, but that should not be treated as link - * identifiers. - * - * @example {"name": "ok.md"} - * - * [foo][] - * - * Just a [ bracket. - * - * Typically, you’d want to use escapes (with a backslash: \\) to escape what - * could turn into a \[reference otherwise]. - * - * Just two braces can’t link: []. - * - * [foo]: https://example.com - * - * @example {"name": "ok-allow.md", "setting": {"allow": ["...", "…"]}} - * - * > Eliding a portion of a quoted passage […] is acceptable. - * - * @example {"name": "not-ok.md", "label": "input"} - * - * [bar] - * - * [baz][] - * - * [text][qux] - * - * Spread [over - * lines][] - * - * > in [a - * > block quote][] - * - * [asd][a - * - * Can include [*emphasis*]. - * - * Multiple pairs: [a][b][c]. - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:6: Found reference to undefined definition - * 3:1-3:8: Found reference to undefined definition - * 5:1-5:12: Found reference to undefined definition - * 7:8-8:9: Found reference to undefined definition - * 10:6-11:17: Found reference to undefined definition - * 13:1-13:6: Found reference to undefined definition - * 15:13-15:25: Found reference to undefined definition - * 17:17-17:23: Found reference to undefined definition - * 17:23-17:26: Found reference to undefined definition + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist').Point} Point + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('vfile').VFile} VFile + * @typedef {import('vfile-message').VFileMessage} VFileMessage + * + * @typedef {OptionsWithoutReset|OptionsWithReset} Options + * @typedef {OptionsBaseFields & OptionsWithoutResetFields} OptionsWithoutReset + * @typedef {OptionsBaseFields & OptionsWithResetFields} OptionsWithReset + * + * @typedef OptionsWithoutResetFields + * @property {false} [reset] + * Whether to treat all messages as turned off initially. + * @property {string[]} [disable] + * List of `ruleId`s to turn off. + * + * @typedef OptionsWithResetFields + * @property {true} reset + * Whether to treat all messages as turned off initially. + * @property {string[]} [enable] + * List of `ruleId`s to initially turn on. + * + * @typedef OptionsBaseFields + * @property {string} name + * Name of markers that can control the message sources. + * + * For example, `{name: 'alpha'}` controls `alpha` markers: + * + * ```html + * + * ``` + * @property {MarkerParser} marker + * Parse a possible marker to a comment marker object (Marker). + * If the marker isn't a marker, should return `null`. + * @property {Test} [test] + * Test for possible markers + * @property {string[]} [known] + * List of allowed `ruleId`s. When given a warning is shown + * when someone tries to control an unknown rule. + * + * For example, `{name: 'alpha', known: ['bravo']}` results in a warning if + * `charlie` is configured: + * + * ```html + * + * ``` + * @property {string|string[]} [source] + * Sources that can be controlled with `name` markers. + * Defaults to `name`. + * + * @callback MarkerParser + * Parse a possible comment marker node to a Marker. + * @param {Node} node + * Node to parse + * + * @typedef Marker + * A comment marker. + * @property {string} name + * Name of marker. + * @property {string} attributes + * Value after name. + * @property {Record} parameters + * Parsed attributes. + * @property {Node} node + * Reference to given node. + * + * @typedef Mark + * @property {Point|undefined} point + * @property {boolean} state + */ + +const own$2 = {}.hasOwnProperty; + +/** + * @type {import('unified').Plugin<[Options]>} + * @returns {(tree: Node, file: VFile) => void} */ +function messageControl(options) { + if (!options || typeof options !== 'object' || !options.name) { + throw new Error( + 'Expected `name` in `options`, got `' + (options || {}).name + '`' + ) + } + if (!options.marker) { + throw new Error( + 'Expected `marker` in `options`, got `' + options.marker + '`' + ) + } + const enable = 'enable' in options && options.enable ? options.enable : []; + const disable = 'disable' in options && options.disable ? options.disable : []; + let reset = options.reset; + const sources = + typeof options.source === 'string' + ? [options.source] + : options.source || [options.name]; + return transformer + /** + * @param {Node} tree + * @param {VFile} file + */ + function transformer(tree, file) { + const toOffset = location(file).toOffset; + const initial = !reset; + const gaps = detectGaps(tree, file); + /** @type {Record} */ + const scope = {}; + /** @type {Mark[]} */ + const globals = []; + visit$1(tree, options.test, visitor); + file.messages = file.messages.filter((m) => filter(m)); + /** + * @param {Node} node + * @param {number|null} position + * @param {Parent|null} parent + */ + function visitor(node, position, parent) { + /** @type {Marker|null} */ + const mark = options.marker(node); -var remarkLintNoUndefinedReferences = unifiedLintRule( - 'remark-lint:no-undefined-references', - noUndefinedReferences -); + if (!mark || mark.name !== options.name) { + return + } -var reason$7 = 'Found reference to undefined definition'; + const ruleIds = mark.attributes.split(/\s/g); + const point = mark.node.position && mark.node.position.start; + const next = + (parent && position !== null && parent.children[position + 1]) || + undefined; + const tail = (next && next.position && next.position.end) || undefined; + let index = -1; -// The identifier is upcased to avoid naming collisions with fields inherited -// from `Object.prototype`. -// If `Object.create(null)` was used in place of `{}`, downcasing would work -// equally well. -function normalize$2(s) { - return collapseWhiteSpace(s.toUpperCase()) -} + /** @type {string} */ + // @ts-expect-error: we’ll check for unknown values next. + const verb = ruleIds.shift(); -function noUndefinedReferences(tree, file, option) { - var contents = String(file); - var location = vfileLocation(file); - var lineEnding = /(\r?\n|\r)[\t ]*(>[\t ]*)*/g; - var allow = ((option || {}).allow || []).map(normalize$2); - var map = {}; + if (verb !== 'enable' && verb !== 'disable' && verb !== 'ignore') { + file.fail( + 'Unknown keyword `' + + verb + + '`: expected ' + + "`'enable'`, `'disable'`, or `'ignore'`", + mark.node + ); + } - unistUtilVisit(tree, ['definition', 'footnoteDefinition'], mark); - unistUtilVisit(tree, ['imageReference', 'linkReference', 'footnoteReference'], find); - unistUtilVisit(tree, ['paragraph', 'heading'], findInPhrasing); + // Apply to all rules. + if (ruleIds.length > 0) { + while (++index < ruleIds.length) { + const ruleId = ruleIds[index]; - function mark(node) { - if (!unistUtilGenerated(node)) { - map[normalize$2(node.identifier)] = true; - } - } + if (isKnown(ruleId, verb, mark.node)) { + toggle(point, verb === 'enable', ruleId); - function find(node) { - if ( - !unistUtilGenerated(node) && - !(normalize$2(node.identifier) in map) && - allow.indexOf(normalize$2(node.identifier)) === -1 - ) { - file.message(reason$7, node); + if (verb === 'ignore') { + toggle(tail, true, ruleId); + } + } + } + } else if (verb === 'ignore') { + toggle(point, false); + toggle(tail, true); + } else { + toggle(point, verb === 'enable'); + reset = verb !== 'enable'; + } } - } - - function findInPhrasing(node) { - var ranges = []; - unistUtilVisit(node, onchild); + /** + * @param {VFileMessage} message + * @returns {boolean} + */ + function filter(message) { + let gapIndex = gaps.length; - ranges.forEach(handleRange); + // Keep messages from a different source. + if (!message.source || !sources.includes(message.source)) { + return true + } - return unistUtilVisit.SKIP + // We only ignore messages if they‘re disabled, *not* when they’re not in + // the document. + if (!message.line) { + message.line = 1; + } - function onchild(child) { - var start; - var end; - var source; - var lines; - var last; - var index; - var match; - var line; - var code; - var lineIndex; - var next; - var range; + if (!message.column) { + message.column = 1; + } - // Ignore the node itself. - if (child === node) return + // Check whether the warning is inside a gap. + // @ts-expect-error: we just normalized `null` to `number`s. + const offset = toOffset(message); - // Can’t have links in links, so reset ranges. - if (child.type === 'link' || child.type === 'linkReference') { - ranges = []; - return unistUtilVisit.SKIP + while (gapIndex--) { + if (gaps[gapIndex][0] <= offset && gaps[gapIndex][1] > offset) { + return false + } } - // Enter non-text. - if (child.type !== 'text') return + // Check whether allowed by specific and global states. + return ( + (!message.ruleId || + check(message, scope[message.ruleId], message.ruleId)) && + check(message, globals) + ) + } - start = unistUtilPosition.start(child).offset; - end = unistUtilPosition.end(child).offset; + /** + * Helper to check (and possibly warn) if a `ruleId` is unknown. + * + * @param {string} ruleId + * @param {string} verb + * @param {Node} node + * @returns {boolean} + */ + function isKnown(ruleId, verb, node) { + const result = options.known ? options.known.includes(ruleId) : true; - // Bail if there’s no positional info. - if (!end) return unistUtilVisit.EXIT + if (!result) { + file.message( + 'Unknown rule: cannot ' + verb + " `'" + ruleId + "'`", + node + ); + } - source = contents.slice(start, end); - lines = [[start, '']]; - last = 0; + return result + } - lineEnding.lastIndex = 0; - match = lineEnding.exec(source); + /** + * Get the latest state of a rule. + * When without `ruleId`, gets global state. + * + * @param {string|undefined} ruleId + * @returns {boolean} + */ + function getState(ruleId) { + const ranges = ruleId ? scope[ruleId] : globals; - while (match) { - index = match.index; - lines[lines.length - 1][1] = source.slice(last, index); - last = index + match[0].length; - lines.push([start + last, '']); - match = lineEnding.exec(source); + if (ranges && ranges.length > 0) { + return ranges[ranges.length - 1].state } - lines[lines.length - 1][1] = source.slice(last); - lineIndex = -1; - - while (++lineIndex < lines.length) { - line = lines[lineIndex][1]; - index = 0; - - while (index < line.length) { - code = line.charCodeAt(index); + if (!ruleId) { + return !reset + } - // Skip past escaped brackets. - if (code === 92) { - next = line.charCodeAt(index + 1); - index++; + return reset ? enable.includes(ruleId) : !disable.includes(ruleId) + } - if (next === 91 || next === 93) { - index++; - } - } - // Opening bracket. - else if (code === 91) { - ranges.push([lines[lineIndex][0] + index]); - index++; - } - // Close bracket. - else if (code === 93) { - // No opening. - if (ranges.length === 0) { - index++; - } else if (line.charCodeAt(index + 1) === 91) { - index++; + /** + * Handle a rule. + * + * @param {Point|undefined} point + * @param {boolean} state + * @param {string|undefined} [ruleId] + * @returns {void} + */ + function toggle(point, state, ruleId) { + let markers = ruleId ? scope[ruleId] : globals; - // Collapsed or full. - range = ranges.pop(); - range.push(lines[lineIndex][0] + index); + if (!markers) { + markers = []; + scope[String(ruleId)] = markers; + } - // This is the end of a reference already. - if (range.length === 4) { - handleRange(range); - range = []; - } + const previousState = getState(ruleId); - range.push(lines[lineIndex][0] + index); - ranges.push(range); - index++; - } else { - index++; + if (state !== previousState) { + markers.push({state, point}); + } - // Shortcut or typical end of a reference. - range = ranges.pop(); - range.push(lines[lineIndex][0] + index); - handleRange(range); - } - } - // Anything else. - else { - index++; + // Toggle all known rules. + if (!ruleId) { + for (ruleId in scope) { + if (own$2.call(scope, ruleId)) { + toggle(point, state, ruleId); } } } } - function handleRange(range) { - var offset; + /** + * Check all `ranges` for `message`. + * + * @param {VFileMessage} message + * @param {Mark[]|undefined} ranges + * @param {string|undefined} [ruleId] + * @returns {boolean} + */ + function check(message, ranges, ruleId) { + if (ranges && ranges.length > 0) { + // Check the state at the message’s position. + let index = ranges.length; - if (range.length === 1) return - if (range.length === 3) range.length = 2; + while (index--) { + const range = ranges[index]; - // No need to warn for just `[]`. - if (range.length === 2 && range[0] + 2 === range[1]) return + if ( + message.line && + message.column && + range.point && + range.point.line && + range.point.column && + (range.point.line < message.line || + (range.point.line === message.line && + range.point.column <= message.column)) + ) { + return range.state === true + } + } + } - offset = range.length === 4 && range[2] + 2 !== range[3] ? 2 : 0; + // The first marker ocurred after the first message, so we check the + // initial state. + if (!ruleId) { + return Boolean(initial || reset) + } - find({ - identifier: contents - .slice(range[0 + offset] + 1, range[1 + offset] - 1) - .replace(lineEnding, ' '), - position: { - start: location.toPosition(range[0]), - end: location.toPosition(range[range.length - 1]) - } - }); + return reset ? enable.includes(ruleId) : !disable.includes(ruleId) } } } /** - * @author Titus Wormer - * @copyright 2016 Titus Wormer - * @license MIT - * @module no-unused-definitions - * @fileoverview - * Warn when unused definitions are found. - * - * @example {"name": "ok.md"} - * - * [foo][] - * - * [foo]: https://example.com - * - * @example {"name": "not-ok.md", "label": "input"} - * - * [bar]: https://example.com - * - * @example {"name": "not-ok.md", "label": "output"} + * Detect gaps in `tree`. * - * 1:1-1:27: Found unused definition + * @param {Node} tree + * @param {VFile} file */ +function detectGaps(tree, file) { + /** @type {Node[]} */ + // @ts-expect-error: fine. + const children = tree.children || []; + const lastNode = children[children.length - 1]; + /** @type {[number, number][]} */ + const gaps = []; + let offset = 0; + /** @type {boolean|undefined} */ + let gap; + // Find all gaps. + visit$1(tree, one); + // Get the end of the document. + // This detects if the last node was the last node. + // If not, there’s an extra gap between the last node and the end of the + // document. + if ( + lastNode && + lastNode.position && + lastNode.position.end && + offset === lastNode.position.end.offset && + file.toString().slice(offset).trim() !== '' + ) { + update(); + update( + tree && + tree.position && + tree.position.end && + tree.position.end.offset && + tree.position.end.offset - 1 + ); + } + return gaps -var remarkLintNoUnusedDefinitions = unifiedLintRule('remark-lint:no-unused-definitions', noUnusedDefinitions); - -var reason$8 = 'Found unused definition'; - -function noUnusedDefinitions(tree, file) { - var map = {}; - var identifier; - var entry; + /** + * @param {Node} node + */ + function one(node) { + update(node.position && node.position.start && node.position.start.offset); - unistUtilVisit(tree, ['definition', 'footnoteDefinition'], find); - unistUtilVisit(tree, ['imageReference', 'linkReference', 'footnoteReference'], mark); + if (!('children' in node)) { + update(node.position && node.position.end && node.position.end.offset); + } + } - for (identifier in map) { - entry = map[identifier]; + /** + * Detect a new position. + * + * @param {number|undefined} [latest] + * @returns {void} + */ + function update(latest) { + if (latest === null || latest === undefined) { + gap = true; + } else if (offset < latest) { + if (gap) { + gaps.push([offset, latest]); + gap = undefined; + } - if (!entry.used) { - file.message(reason$8, entry.node); + offset = latest; } } +} + +/** + * @typedef {string|number|boolean} MarkerParameterValue + * @typedef {Object.} MarkerParameters + * + * @typedef HtmlNode + * @property {'html'} type + * @property {string} value + * + * @typedef CommentNode + * @property {'comment'} type + * @property {string} value + * + * @typedef Marker + * @property {string} name + * @property {string} attributes + * @property {MarkerParameters|null} parameters + * @property {HtmlNode|CommentNode} node + */ + +var commentExpression = /\s*([a-zA-Z\d-]+)(\s+([\s\S]*))?\s*/; + +var markerExpression = new RegExp( + '(\\s*\\s*)' +); - function find(node) { - if (!unistUtilGenerated(node)) { - map[node.identifier.toUpperCase()] = {node: node, used: false}; +/** + * Parse a comment marker. + * @param {unknown} node + * @returns {Marker|null} + */ +function commentMarker(node) { + /** @type {RegExpMatchArray} */ + var match; + /** @type {number} */ + var offset; + /** @type {MarkerParameters} */ + var parameters; + + if ( + node && + typeof node === 'object' && + // @ts-ignore hush + (node.type === 'html' || node.type === 'comment') + ) { + // @ts-ignore hush + match = node.value.match( + // @ts-ignore hush + node.type === 'comment' ? commentExpression : markerExpression + ); + + // @ts-ignore hush + if (match && match[0].length === node.value.length) { + // @ts-ignore hush + offset = node.type === 'comment' ? 1 : 2; + parameters = parseParameters(match[offset + 1] || ''); + + if (parameters) { + return { + name: match[offset], + attributes: match[offset + 2] || '', + parameters, + // @ts-ignore hush + node + } + } } } - function mark(node) { - var info = map[node.identifier.toUpperCase()]; + return null +} + +/** + * Parse `value` into an object. + * + * @param {string} value + * @returns {MarkerParameters|null} + */ +function parseParameters(value) { + /** @type {MarkerParameters} */ + var parameters = {}; + + return value + .replace( + /\s+([-\w]+)(?:=(?:"((?:\\[\s\S]|[^"])+)"|'((?:\\[\s\S]|[^'])+)'|((?:\\[\s\S]|[^"'\s])+)))?/gi, + replacer + ) + .replace(/\s+/g, '') + ? null + : parameters + + /** + * @param {string} _ + * @param {string} $1 + * @param {string} $2 + * @param {string} $3 + * @param {string} $4 + */ + // eslint-disable-next-line max-params + function replacer(_, $1, $2, $3, $4) { + /** @type {MarkerParameterValue} */ + var value = $2 || $3 || $4 || ''; - if (!unistUtilGenerated(node) && info) { - info.used = true; + if (value === 'true' || value === '') { + value = true; + } else if (value === 'false') { + value = false; + } else if (!Number.isNaN(Number(value))) { + value = Number(value); } + + parameters[$1] = value; + + return '' } } /** - * @fileoverview - * remark preset to configure `remark-lint` with settings that prevent - * mistakes or syntaxes that do not work correctly across vendors. + * @typedef {import('mdast').Root} Root + * @typedef {import('vfile').VFile} VFile + * @typedef {import('unified-message-control')} MessageControl + * @typedef {Omit|Omit} Options */ -var plugins$1 = [ - remarkLint, - // Unix compatibility. - remarkLintFinalNewline, - // Rendering across vendors differs greatly if using other styles. - remarkLintListItemBulletIndent, - [remarkLintListItemIndent, 'tab-size'], - // Differs or unsupported across vendors. - remarkLintNoAutoLinkWithoutProtocol, - remarkLintNoBlockquoteWithoutMarker, - remarkLintNoLiteralUrls, - [remarkLintOrderedListMarkerStyle, '.'], - // Mistakes. - remarkLintHardBreakSpaces, - remarkLintNoDuplicateDefinitions, - remarkLintNoHeadingContentIndent, - remarkLintNoInlinePadding, - remarkLintNoShortcutReferenceImage, - remarkLintNoShortcutReferenceLink, - remarkLintNoUndefinedReferences, - remarkLintNoUnusedDefinitions +const test = [ + 'html', // Comments are `html` nodes in mdast. + 'comment' // In MDX, comments have their own node. ]; -var remarkPresetLintRecommended = { - plugins: plugins$1 -}; - -var mdastUtilToString$4 = toString$7; - -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$7(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all$4(node.children)) || - ('length' in node && all$4(node)))) || - '' +/** + * Plugin to enable, disable, and ignore messages. + * + * @type {import('unified').Plugin<[Options], Root>} + * @returns {(node: Root, file: VFile) => void} + */ +function remarkMessageControl(options) { + return messageControl( + Object.assign({marker: commentMarker, test}, options) ) } -function all$4(values) { - var result = []; - var length = values.length; - var index = -1; +/** + * @typedef {import('mdast').Root} Root + */ - while (++index < length) { - result[index] = toString$7(values[index]); - } +/** + * The core plugin for `remark-lint`. + * This adds support for ignoring stuff from messages (``). + * All rules are in their own packages and presets. + * + * @type {import('unified').Plugin} + */ +function remarkLint() { + this.use(lintMessageControl); +} - return result.join('') +/** @type {import('unified').Plugin} */ +function lintMessageControl() { + return remarkMessageControl({name: 'lint', source: 'remark-lint'}) } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module blockquote-indentation - * @fileoverview - * Warn when block quotes are indented too much or too little. - * - * Options: `number` or `'consistent'`, default: `'consistent'`. - * - * `'consistent'` detects the first used indentation and will warn when - * other block quotes use a different indentation. - * - * @example {"name": "ok.md", "setting": 4} - * - * > Hello - * - * Paragraph. - * - * > World - * - * @example {"name": "ok.md", "setting": 2} - * - * > Hello - * - * Paragraph. - * - * > World - * - * @example {"name": "not-ok.md", "label": "input"} - * - * > Hello - * - * Paragraph. - * - * > World - * - * Paragraph. - * - * > World + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile * - * @example {"name": "not-ok.md", "label": "output"} + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple * - * 5:3: Remove 1 space between block quote and content - * 9:3: Add 1 space between block quote and content + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} */ +const primitives$G = new Set(['string', 'number', 'boolean']); +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$G(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + Object.defineProperty(plugin, 'name', {value: id}); + return plugin + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$H(ruleId, raw); + if (!severity) return + const fatal = severity === 2; -var remarkLintBlockquoteIndentation = unifiedLintRule( - 'remark-lint:blockquote-indentation', - blockquoteIndentation -); + return (tree, file, next) => { + let index = file.messages.length - 1; -function blockquoteIndentation(tree, file, option) { - var preferred = typeof option === 'number' && !isNaN(option) ? option : null; + wrap(rule, (error) => { + const messages = file.messages; - unistUtilVisit(tree, 'blockquote', visitor); + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } - function visitor(node) { - var abs; - var diff; - var reason; + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } - if (unistUtilGenerated(node) || node.children.length === 0) { - return + next(); + })(tree, file, options); } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$H(name, value) { + /** @type {unknown[]} */ + let result; - if (preferred) { - diff = preferred - check$3(node); + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$G.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } - if (diff !== 0) { - abs = Math.abs(diff); - reason = - (diff > 0 ? 'Add' : 'Remove') + - ' ' + - abs + - ' ' + - pluralize('space', abs) + - ' between block quote and content'; + let level = result[0]; - file.message(reason, unistUtilPosition.start(node.children[0])); - } + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; } else { - preferred = check$3(node); + level = 1; + result = [level, result]; } } -} -function check$3(node) { - var head = node.children[0]; - var indentation = unistUtilPosition.start(head).column - unistUtilPosition.start(node).column; - var padding = mdastUtilToString$4(head).match(/^ +/); - - if (padding) { - indentation += padding[0].length; + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) } - return indentation + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } /** * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module checkbox-character-style + * @module final-newline * @fileoverview - * Warn when list item checkboxes violate a given style. - * - * Options: `Object` or `'consistent'`, default: `'consistent'`. - * - * `'consistent'` detects the first used checked and unchecked checkbox - * styles and warns when subsequent checkboxes use different styles. - * - * Styles can also be passed in like so: + * Warn when a line feed at the end of a file is missing. + * Empty files are allowed. * - * ```js - * {checked: 'x', unchecked: ' '} - * ``` + * See [StackExchange](https://unix.stackexchange.com/questions/18743) for why. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats checked checkboxes using `x` (lowercase X) and unchecked checkboxes - * as `·` (a single space). + * always adds a final line feed to files. * * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md", "setting": {"checked": "x"}, "gfm": true} - * - * - [x] List item - * - [x] List item + * ## Example * - * @example {"name": "ok.md", "setting": {"checked": "X"}, "gfm": true} + * ##### `ok.md` * - * - [X] List item - * - [X] List item + * ###### In * - * @example {"name": "ok.md", "setting": {"unchecked": " "}, "gfm": true} + * Note: `␊` represents LF. * - * - [ ] List item - * - [ ] List item - * - [ ]·· - * - [ ] + * ```markdown + * Alpha␊ + * ``` * - * @example {"name": "ok.md", "setting": {"unchecked": "\t"}, "gfm": true} + * ###### Out * - * - [»] List item - * - [»] List item + * No messages. * - * @example {"name": "not-ok.md", "label": "input", "gfm": true} + * ##### `not-ok.md` * - * - [x] List item - * - [X] List item - * - [ ] List item - * - [»] List item + * ###### In * - * @example {"name": "not-ok.md", "label": "output", "gfm": true} + * Note: The below file does not have a final newline. * - * 2:5: Checked checkboxes should use `x` as a marker - * 4:5: Unchecked checkboxes should use ` ` as a marker + * ```markdown + * Bravo + * ``` * - * @example {"setting": {"unchecked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} + * ###### Out * - * 1:1: Incorrect unchecked checkbox marker `💩`: use either `'\t'`, or `' '` + * ```text + * 1:1: Missing newline character at end of file + * ``` + */ + +const remarkLintFinalNewline = lintRule$G( + 'remark-lint:final-newline', + /** @type {import('unified-lint-rule').Rule} */ + (_, file) => { + const value = String(file); + const last = value.length - 1; + + if (last > -1 && value.charAt(last) !== '\n') { + file.message('Missing newline character at end of file'); + } + } +); + +var remarkLintFinalNewline$1 = remarkLintFinalNewline; + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile * - * @example {"setting": {"checked": "💩"}, "name": "not-ok.md", "label": "output", "positionless": true, "gfm": true} + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple * - * 1:1: Incorrect checked checkbox marker `💩`: use either `'x'`, or `'X'` + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} */ +const primitives$F = new Set(['string', 'number', 'boolean']); +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$F(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + Object.defineProperty(plugin, 'name', {value: id}); + return plugin + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$G(ruleId, raw); -var remarkLintCheckboxCharacterStyle = unifiedLintRule( - 'remark-lint:checkbox-character-style', - checkboxCharacterStyle -); + if (!severity) return -var start$7 = unistUtilPosition.start; -var end$4 = unistUtilPosition.end; + const fatal = severity === 2; -var checked = {x: true, X: true}; -var unchecked = {' ': true, '\t': true}; -var types$1 = {true: 'checked', false: 'unchecked'}; + return (tree, file, next) => { + let index = file.messages.length - 1; -function checkboxCharacterStyle(tree, file, option) { - var contents = String(file); - var preferred = typeof option === 'object' ? option : {}; + wrap(rule, (error) => { + const messages = file.messages; - if (preferred.unchecked && unchecked[preferred.unchecked] !== true) { - file.fail( - 'Incorrect unchecked checkbox marker `' + - preferred.unchecked + - "`: use either `'\\t'`, or `' '`" - ); - } + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } - if (preferred.checked && checked[preferred.checked] !== true) { - file.fail( - 'Incorrect checked checkbox marker `' + - preferred.checked + - "`: use either `'x'`, or `'X'`" - ); + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); + } } +} - unistUtilVisit(tree, 'listItem', visitor); +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$G(name, value) { + /** @type {unknown[]} */ + let result; - function visitor(node) { - var type; - var point; - var value; - var style; - var reason; + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$F.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } - // Exit early for items without checkbox. - if (typeof node.checked !== 'boolean' || unistUtilGenerated(node)) { - return + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; } + } - type = types$1[node.checked]; + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } - /* istanbul ignore next - a list item cannot be checked and empty, according - * to GFM, but theoretically it makes sense to get the end if that were - * possible. */ - point = node.children.length === 0 ? end$4(node) : start$7(node.children[0]); - // Move back to before `] `. - point.offset -= 2; - point.column -= 2; + result[0] = level; - // Assume we start with a checkbox, because well, `checked` is set. - value = /\[([\t Xx])]/.exec( - contents.slice(point.offset - 2, point.offset + 1) - ); + // @ts-expect-error: it’s now a valid tuple. + return result +} + +var pluralize = {exports: {}}; + +/* global define */ + +(function (module, exports) { +(function (root, pluralize) { + /* istanbul ignore else */ + if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { + // Node. + module.exports = pluralize(); + } else { + // Browser global. + root.pluralize = pluralize(); + } +})(commonjsGlobal, function () { + // Rule storage - pluralize and singularize need to be run sequentially, + // while other rules can be optimized using an object for instant lookups. + var pluralRules = []; + var singularRules = []; + var uncountables = {}; + var irregularPlurals = {}; + var irregularSingles = {}; + + /** + * Sanitize a pluralization rule to a usable regular expression. + * + * @param {(RegExp|string)} rule + * @return {RegExp} + */ + function sanitizeRule (rule) { + if (typeof rule === 'string') { + return new RegExp('^' + rule + '$', 'i'); + } - /* istanbul ignore if - failsafe to make sure we don‘t crash if there - * actually isn’t a checkbox. */ - if (!value) return + return rule; + } + + /** + * Pass in a word token to produce a function that can replicate the case on + * another word. + * + * @param {string} word + * @param {string} token + * @return {Function} + */ + function restoreCase (word, token) { + // Tokens are an exact match. + if (word === token) return token; - style = preferred[type]; + // Lower cased words. E.g. "hello". + if (word === word.toLowerCase()) return token.toLowerCase(); - if (style) { - if (value[1] !== style) { - reason = - type.charAt(0).toUpperCase() + - type.slice(1) + - ' checkboxes should use `' + - style + - '` as a marker'; + // Upper cased words. E.g. "WHISKY". + if (word === word.toUpperCase()) return token.toUpperCase(); - file.message(reason, point); - } - } else { - preferred[type] = value[1]; + // Title cased words. E.g. "Title". + if (word[0] === word[0].toUpperCase()) { + return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); } - } -} - -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module checkbox-content-indent - * @fileoverview - * Warn when list item checkboxes are followed by too much whitespace. - * - * @example {"name": "ok.md", "gfm": true} - * - * - [ ] List item - * + [x] List Item - * * [X] List item - * - [ ] List item - * - * @example {"name": "not-ok.md", "label": "input", "gfm": true} - * - * - [ ] List item - * + [x] List item - * * [X] List item - * - [ ] List item - * - * @example {"name": "not-ok.md", "label": "output", "gfm": true} - * - * 2:7-2:8: Checkboxes should be followed by a single character - * 3:7-3:9: Checkboxes should be followed by a single character - * 4:7-4:10: Checkboxes should be followed by a single character - */ + // Lower cased words. E.g. "test". + return token.toLowerCase(); + } + /** + * Interpolate a regexp string. + * + * @param {string} str + * @param {Array} args + * @return {string} + */ + function interpolate (str, args) { + return str.replace(/\$(\d{1,2})/g, function (match, index) { + return args[index] || ''; + }); + } + /** + * Replace a word using a rule. + * + * @param {string} word + * @param {Array} rule + * @return {string} + */ + 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); + }); + } + /** + * Sanitize a word by passing in the word and sanitization rules. + * + * @param {string} token + * @param {string} word + * @param {Array} rules + * @return {string} + */ + function sanitizeWord (token, word, rules) { + // Empty string or doesn't need fixing. + if (!token.length || uncountables.hasOwnProperty(token)) { + return word; + } -var remarkLintCheckboxContentIndent = unifiedLintRule( - 'remark-lint:checkbox-content-indent', - checkboxContentIndent -); + var len = rules.length; -var start$8 = unistUtilPosition.start; -var end$5 = unistUtilPosition.end; + // Iterate over the sanitization rules and use the first one to match. + while (len--) { + var rule = rules[len]; -var reason$9 = 'Checkboxes should be followed by a single character'; + if (rule[0].test(word)) return replace(word, rule); + } -function checkboxContentIndent(tree, file) { - var contents = String(file); - var location = vfileLocation(file); + return word; + } - unistUtilVisit(tree, 'listItem', visitor); + /** + * Replace a word with the updated word. + * + * @param {Object} replaceMap + * @param {Object} keepMap + * @param {Array} rules + * @return {Function} + */ + function replaceWord (replaceMap, keepMap, rules) { + return function (word) { + // Get the correct token and case restoration functions. + var token = word.toLowerCase(); - function visitor(node) { - var initial; - var final; - var value; - var point; + // Check against the keep object map. + if (keepMap.hasOwnProperty(token)) { + return restoreCase(word, token); + } - // Exit early for items without checkbox. - if (typeof node.checked !== 'boolean' || unistUtilGenerated(node)) { - return - } + // Check against the replacement map for a direct word replacement. + if (replaceMap.hasOwnProperty(token)) { + return restoreCase(word, replaceMap[token]); + } - /* istanbul ignore next - a list item cannot be checked and empty, according - * to GFM, but theoretically it makes sense to get the end if that were - * possible. */ - point = node.children.length === 0 ? end$5(node) : start$8(node.children[0]); + // Run all the rules against the word. + return sanitizeWord(token, word, rules); + }; + } - // Assume we start with a checkbox, because well, `checked` is set. - value = /\[([\t xX])]/.exec( - contents.slice(point.offset - 4, point.offset + 1) - ); + /** + * Check if a word is part of the map. + */ + function checkWord (replaceMap, keepMap, rules, bool) { + return function (word) { + var token = word.toLowerCase(); - /* istanbul ignore if - failsafe to make sure we don‘t crash if there - * actually isn’t a checkbox. */ - if (!value) return + if (keepMap.hasOwnProperty(token)) return true; + if (replaceMap.hasOwnProperty(token)) return false; - // Move past checkbox. - initial = point.offset; - final = initial; + return sanitizeWord(token, token, rules) === token; + }; + } - while (/[\t ]/.test(contents.charAt(final))) final++; + /** + * Pluralize or singularize a word based on the passed in count. + * + * @param {string} word The word to pluralize + * @param {number} count How many of the word exist + * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks) + * @return {string} + */ + function pluralize (word, count, inclusive) { + var pluralized = count === 1 + ? pluralize.singular(word) : pluralize.plural(word); - if (final - initial > 0) { - file.message(reason$9, { - start: location.toPosition(initial), - end: location.toPosition(final) - }); - } + return (inclusive ? count + ' ' : '') + pluralized; } -} -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module code-block-style - * @fileoverview - * Warn when code blocks do not adhere to a given style. - * - * Options: `'consistent'`, `'fenced'`, or `'indented'`, default: `'consistent'`. - * - * `'consistent'` detects the first used code block style and warns when - * subsequent code blocks uses different styles. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats code blocks using a fence if they have a language flag and - * indentation if not. - * Pass - * [`fences: true`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsfences) - * to always use fences for code blocks. - * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. - * - * @example {"setting": "indented", "name": "ok.md"} - * - * alpha(); - * - * Paragraph. - * - * bravo(); - * - * @example {"setting": "indented", "name": "not-ok.md", "label": "input"} - * - * ``` - * alpha(); - * ``` - * - * Paragraph. - * - * ``` - * bravo(); - * ``` - * - * @example {"setting": "indented", "name": "not-ok.md", "label": "output"} - * - * 1:1-3:4: Code blocks should be indented - * 7:1-9:4: Code blocks should be indented - * - * @example {"setting": "fenced", "name": "ok.md"} - * - * ``` - * alpha(); - * ``` - * - * Paragraph. - * - * ``` - * bravo(); - * ``` - * - * @example {"setting": "fenced", "name": "not-ok-fenced.md", "label": "input"} - * - * alpha(); - * - * Paragraph. - * - * bravo(); - * - * @example {"setting": "fenced", "name": "not-ok-fenced.md", "label": "output"} - * - * 1:1-1:13: Code blocks should be fenced - * 5:1-5:13: Code blocks should be fenced - * - * @example {"name": "not-ok-consistent.md", "label": "input"} - * - * alpha(); - * - * Paragraph. - * - * ``` - * bravo(); - * ``` - * - * @example {"name": "not-ok-consistent.md", "label": "output"} - * - * 5:1-7:4: Code blocks should be indented - * - * @example {"setting": "💩", "name": "not-ok-incorrect.md", "label": "output", "config": {"positionless": true}} - * - * 1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'` - */ + /** + * Pluralize a word. + * + * @type {Function} + */ + pluralize.plural = replaceWord( + irregularSingles, irregularPlurals, pluralRules + ); + /** + * Check if a word is plural. + * + * @type {Function} + */ + pluralize.isPlural = checkWord( + irregularSingles, irregularPlurals, pluralRules + ); + /** + * Singularize a word. + * + * @type {Function} + */ + pluralize.singular = replaceWord( + irregularPlurals, irregularSingles, singularRules + ); + /** + * Check if a word is singular. + * + * @type {Function} + */ + pluralize.isSingular = checkWord( + irregularPlurals, irregularSingles, singularRules + ); + /** + * Add a pluralization rule to the collection. + * + * @param {(string|RegExp)} rule + * @param {string} replacement + */ + pluralize.addPluralRule = function (rule, replacement) { + pluralRules.push([sanitizeRule(rule), replacement]); + }; + /** + * Add a singularization rule to the collection. + * + * @param {(string|RegExp)} rule + * @param {string} replacement + */ + pluralize.addSingularRule = function (rule, replacement) { + singularRules.push([sanitizeRule(rule), replacement]); + }; -var remarkLintCodeBlockStyle = unifiedLintRule('remark-lint:code-block-style', codeBlockStyle); + /** + * Add an uncountable word rule. + * + * @param {(string|RegExp)} word + */ + pluralize.addUncountableRule = function (word) { + if (typeof word === 'string') { + uncountables[word.toLowerCase()] = true; + return; + } -var start$9 = unistUtilPosition.start; -var end$6 = unistUtilPosition.end; + // Set singular and plural references for the word. + pluralize.addPluralRule(word, '$0'); + pluralize.addSingularRule(word, '$0'); + }; -var styles$3 = {null: true, fenced: true, indented: true}; + /** + * Add an irregular word definition. + * + * @param {string} single + * @param {string} plural + */ + pluralize.addIrregularRule = function (single, plural) { + plural = plural.toLowerCase(); + single = single.toLowerCase(); -function codeBlockStyle(tree, file, option) { - var contents = String(file); - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; + irregularSingles[single] = plural; + irregularPlurals[plural] = single; + }; - if (styles$3[preferred] !== true) { - file.fail( - 'Incorrect code block style `' + - preferred + - "`: use either `'consistent'`, `'fenced'`, or `'indented'`" - ); - } + /** + * Irregular rules. + */ + [ + // Pronouns. + ['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'], + // Words ending in with a consonant and `o`. + ['echo', 'echoes'], + ['dingo', 'dingoes'], + ['volcano', 'volcanoes'], + ['tornado', 'tornadoes'], + ['torpedo', 'torpedoes'], + // Ends with `us`. + ['genus', 'genera'], + ['viscus', 'viscera'], + // Ends with `ma`. + ['stigma', 'stigmata'], + ['stoma', 'stomata'], + ['dogma', 'dogmata'], + ['lemma', 'lemmata'], + ['schema', 'schemata'], + ['anathema', 'anathemata'], + // Other irregular rules. + ['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]); + }); - unistUtilVisit(tree, 'code', visitor); + /** + * Pluralization rules. + */ + [ + [/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]); + }); - function visitor(node) { - var initial; - var final; - var current; + /** + * Singularization rules. + */ + [ + [/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]); + }); - if (unistUtilGenerated(node)) { - return null - } + /** + * Uncountable rules. + */ + [ + // Singular words with no plurals. + '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, + // Regexes. + /[^aeiou]ese$/i, // "chinese", "japanese" + /deer$/i, // "deer", "reindeer" + /fish$/i, // "fish", "blowfish", "angelfish" + /measles$/i, + /o[iu]s$/i, // "carnivorous" + /pox$/i, // "chickpox", "smallpox" + /sheep$/i + ].forEach(pluralize.addUncountableRule); - initial = start$9(node).offset; - final = end$6(node).offset; + return pluralize; +}); +}(pluralize)); - current = - node.lang || /^\s*([~`])\1{2,}/.test(contents.slice(initial, final)) - ? 'fenced' - : 'indented'; +var plural = pluralize.exports; - if (preferred) { - if (preferred !== current) { - file.message('Code blocks should be ' + preferred, node); - } - } else { - preferred = current; - } - } +/** + * @param {string} d + * @returns {string} + */ +function color$1(d) { + return '\u001B[33m' + d + '\u001B[39m' } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module definition-spacing - * @fileoverview - * Warn when consecutive whitespace is used in a definition. - * - * @example {"name": "ok.md"} - * - * [example domain]: http://example.com "Example Domain" - * - * @example {"name": "not-ok.md", "label": "input"} - * - * [example····domain]: http://example.com "Example Domain" - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:57: Do not use consecutive whitespace in definition labels + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test */ - - - - - -var remarkLintDefinitionSpacing = unifiedLintRule('remark-lint:definition-spacing', definitionSpacing); - -var label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/; -var reason$a = 'Do not use consecutive whitespace in definition labels'; - -function definitionSpacing(tree, file) { - var contents = String(file); - - unistUtilVisit(tree, ['definition', 'footnoteDefinition'], check); - - function check(node) { - var start = unistUtilPosition.start(node).offset; - var end = unistUtilPosition.end(node).offset; - - if ( - !unistUtilGenerated(node) && - /[ \t\n]{2,}/.test(contents.slice(start, end).match(label)[1]) - ) { - file.message(reason$a, node); - } - } -} +/** + * Continue traversing as normal + */ +const CONTINUE$1 = true; +/** + * Do not traverse this node’s children + */ +const SKIP$1 = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT$1 = false; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module fenced-code-flag - * @fileoverview - * Check fenced code block flags. - * - * Options: `Array.` or `Object`, optional. - * - * Providing an array is as passing `{flags: Array}`. - * - * The object can have an array of `'flags'` which are allowed: other flags - * will not be allowed. - * An `allowEmpty` field (`boolean`, default: `false`) can be set to allow - * code blocks without language flags. - * - * @example {"name": "ok.md"} - * - * ```alpha - * bravo(); - * ``` - * - * @example {"name": "not-ok.md", "label": "input"} - * - * ``` - * alpha(); - * ``` - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 1:1-3:4: Missing code language flag - * - * @example {"name": "ok.md", "setting": {"allowEmpty": true}} - * - * ``` - * alpha(); - * ``` - * - * @example {"name": "not-ok.md", "setting": {"allowEmpty": false}, "label": "input"} - * - * ``` - * alpha(); - * ``` - * - * @example {"name": "not-ok.md", "setting": {"allowEmpty": false}, "label": "output"} - * - * 1:1-3:4: Missing code language flag - * - * @example {"name": "ok.md", "setting": ["alpha"]} - * - * ```alpha - * bravo(); - * ``` - * - * @example {"name": "not-ok.md", "setting": ["charlie"], "label": "input"} - * - * ```alpha - * bravo(); - * ``` - * - * @example {"name": "not-ok.md", "setting": ["charlie"], "label": "output"} + * Visit children of tree which pass a test * - * 1:1-3:4: Incorrect code language flag + * @param tree Abstract syntax tree to walk + * @param test Test node, optional + * @param visitor Function to run for each node + * @param reverse Visit the tree in reverse order, defaults to false */ +const visitParents$1 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-expect-error no visitor given, so `visitor` is test. + visitor = test; + test = null; + } + + const is = convert(test); + const step = reverse ? -1 : 1; + + factory(tree, null, [])(); + + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + // @ts-expect-error: hush + const value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string|undefined} */ + let 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() { + /** @type {ActionTuple} */ + let result = []; + /** @type {ActionTuple} */ + let subresult; + /** @type {number} */ + let offset; + /** @type {Array.} */ + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$1(visitor(node, parents)); + if (result[0] === EXIT$1) { + return result + } + } + // @ts-expect-error looks like a parent. + if (node.children && result[0] !== SKIP$1) { + // @ts-expect-error looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-expect-error looks like a parent. + grandparents = parents.concat(node); -var remarkLintFencedCodeFlag = unifiedLintRule('remark-lint:fenced-code-flag', fencedCodeFlag); + // @ts-expect-error looks like a parent. + while (offset > -1 && offset < node.children.length) { + // @ts-expect-error looks like a parent. + subresult = factory(node.children[offset], offset, grandparents)(); -var start$a = unistUtilPosition.start; -var end$7 = unistUtilPosition.end; + if (subresult[0] === EXIT$1) { + return subresult + } -var fence = /^ {0,3}([~`])\1{2,}/; -var reasonIncorrect = 'Incorrect code language flag'; -var reasonMissing = 'Missing code language flag'; + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } -function fencedCodeFlag(tree, file, option) { - var contents = String(file); - var allowEmpty = false; - var allowed = []; - var flags = option; + return result + } + } + } + ); - if (typeof flags === 'object' && !('length' in flags)) { - allowEmpty = Boolean(flags.allowEmpty); - flags = flags.flags; +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult$1(value) { + if (Array.isArray(value)) { + return value } - if (typeof flags === 'object' && 'length' in flags) { - allowed = String(flags).split(','); + if (typeof value === 'number') { + return [CONTINUE$1, value] } - unistUtilVisit(tree, 'code', visitor); - - function visitor(node) { - var value; + return [value] +} - if (!unistUtilGenerated(node)) { - if (node.lang) { - if (allowed.length !== 0 && allowed.indexOf(node.lang) === -1) { - file.message(reasonIncorrect, node); - } - } else { - value = contents.slice(start$a(node).offset, end$7(node).offset); +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + */ - if (!allowEmpty && fence.test(value)) { - file.message(reasonMissing, node); - } +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test, optional + * @param visitor Function to run for each node + * @param reverse Fisit the tree in reverse, defaults to false + */ +const visit = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + + visitParents$1(tree, test, overload, reverse); + + /** + * @param {Node} node + * @param {Array.} parents + */ + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) } } - } -} + ); /** * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module fenced-code-marker + * @module list-item-bullet-indent * @fileoverview - * Warn for violating fenced code markers. - * - * Options: `` '`' ``, `'~'`, or `'consistent'`, default: `'consistent'`. - * - * `'consistent'` detects the first used fenced code marker style and warns - * when subsequent fenced code blocks use different styles. + * Warn when list item bullets are indented. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats fences using ``'`'`` (grave accent) by default. - * Pass - * [`fence: '~'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsfence) - * to use `~` (tilde) instead. + * removes all indentation before bullets. * * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md"} - * - * Indented code blocks are not affected by this rule: - * - * bravo(); - * - * @example {"name": "ok.md", "setting": "`"} - * - * ```alpha - * bravo(); - * ``` - * - * ``` - * charlie(); - * ``` - * - * @example {"name": "ok.md", "setting": "~"} - * - * ~~~alpha - * bravo(); - * ~~~ - * - * ~~~ - * charlie(); - * ~~~ - * - * @example {"name": "not-ok-consistent-tick.md", "label": "input"} - * - * ```alpha - * bravo(); - * ``` - * - * ~~~ - * charlie(); - * ~~~ - * - * @example {"name": "not-ok-consistent-tick.md", "label": "output"} - * - * 5:1-7:4: Fenced code should use `` ` `` as a marker + * @example + * {"name": "ok.md"} * - * @example {"name": "not-ok-consistent-tilde.md", "label": "input"} + * Paragraph. * - * ~~~alpha - * bravo(); - * ~~~ + * * List item + * * List item * - * ``` - * charlie(); - * ``` + * @example + * {"name": "not-ok.md", "label": "input"} * - * @example {"name": "not-ok-consistent-tilde.md", "label": "output"} + * Paragraph. * - * 5:1-7:4: Fenced code should use `~` as a marker + * ·* List item + * ·* List item * - * @example {"name": "not-ok-incorrect.md", "setting": "💩", "label": "output", "config": {"positionless": true}} + * @example + * {"name": "not-ok.md", "label": "output"} * - * 1:1: Incorrect fenced code marker `💩`: use either `'consistent'`, `` '`' ``, or `'~'` + * 3:2: Incorrect indentation before bullet: remove 1 space + * 4:2: Incorrect indentation before bullet: remove 1 space */ +const remarkLintListItemBulletIndent = lintRule$F( + 'remark-lint:list-item-bullet-indent', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file) => { + visit(tree, 'list', (list, _, grandparent) => { + let index = -1; + while (++index < list.children.length) { + const item = list.children[index]; + if ( + grandparent && + grandparent.type === 'root' && + grandparent.position && + typeof grandparent.position.start.column === 'number' && + item.position && + typeof item.position.start.column === 'number' + ) { + const indent = + item.position.start.column - grandparent.position.start.column; - - -var remarkLintFencedCodeMarker = unifiedLintRule('remark-lint:fenced-code-marker', fencedCodeMarker); - -var markers = { - '`': true, - '~': true, - null: true -}; - -function fencedCodeMarker(tree, file, option) { - var contents = String(file); - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; - - if (markers[preferred] !== true) { - file.fail( - 'Incorrect fenced code marker `' + - preferred + - "`: use either `'consistent'`, `` '`' ``, or `'~'`" - ); - } - - unistUtilVisit(tree, 'code', visitor); - - function visitor(node) { - var start; - var marker; - var label; - - if (!unistUtilGenerated(node)) { - start = unistUtilPosition.start(node).offset; - marker = contents - .slice(start, start + 4) - .replace(/^\s+/, '') - .charAt(0); - - // Ignore unfenced code blocks. - if (markers[marker] === true) { - if (preferred) { - if (marker !== preferred) { - label = preferred === '~' ? preferred : '` ` `'; + if (indent) { file.message( - 'Fenced code should use `' + label + '` as a marker', - node + 'Incorrect indentation before bullet: remove ' + + indent + + ' ' + + plural('space', indent), + item.position.start ); } - } else { - preferred = marker; } } - } + }); } -} +); + +var remarkLintListItemBulletIndent$1 = remarkLintListItemBulletIndent; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module file-extension - * @fileoverview - * Warn when the file extension differ from the preferred extension. - * - * Does not warn when given documents have no file extensions (such as - * `AUTHORS` or `LICENSE`). - * - * Options: `string`, default: `'md'` — Expected file extension. - * - * @example {"name": "readme.md"} + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile * - * @example {"name": "readme"} + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple * - * @example {"name": "readme.mkd", "label": "output", "config": {"positionless": true}} - * - * 1:1: Incorrect extension: use `md` - * - * @example {"name": "readme.mkd", "setting": "mkd"} + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} */ - - -var remarkLintFileExtension = unifiedLintRule('remark-lint:file-extension', fileExtension); - -function fileExtension(tree, file, option) { - var ext = file.extname; - var preferred = typeof option === 'string' ? option : 'md'; - - if (ext && ext.slice(1) !== preferred) { - file.message('Incorrect extension: use `' + preferred + '`'); - } -} +const primitives$E = new Set(['string', 'number', 'boolean']); /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module final-definition - * @fileoverview - * Warn when definitions are placed somewhere other than at the end of - * the file. - * - * @example {"name": "ok.md"} - * - * Paragraph. - * - * [example]: http://example.com "Example Domain" - * - * @example {"name": "not-ok.md", "label": "input"} - * - * Paragraph. - * - * [example]: http://example.com "Example Domain" - * - * Another paragraph. - * - * @example {"name": "not-ok.md", "label": "output"} - * - * 3:1-3:47: Move definitions to the end of the file (after the node at line `5`) - * - * @example {"name": "ok-comments.md"} - * - * Paragraph. - * - * [example-1]: http://example.com/one/ - * - * - * - * [example-2]: http://example.com/two/ + * @param {string} id + * @param {Rule} rule */ +function lintRule$E(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + Object.defineProperty(plugin, 'name', {value: id}); + return plugin + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$F(ruleId, raw); + if (!severity) return + const fatal = severity === 2; -var remarkLintFinalDefinition = unifiedLintRule('remark-lint:final-definition', finalDefinition); - -var start$b = unistUtilPosition.start; + return (tree, file, next) => { + let index = file.messages.length - 1; -function finalDefinition(tree, file) { - var last = null; + wrap(rule, (error) => { + const messages = file.messages; - unistUtilVisit(tree, visitor, true); - - function visitor(node) { - var line = start$b(node).line; + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } - // Ignore generated and HTML comment nodes. - if (node.type === 'root' || unistUtilGenerated(node) || (node.type === 'html' && /^\s* + * + * [example-2]: http://example.com/two/ + */ - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common$3.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } +const remarkLintFinalDefinition = lintRule$j( + 'remark-lint:final-definition', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file) => { + let last = 0; - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; + visit( + tree, + (node) => { + // Ignore generated and HTML comment nodes. + if ( + node.type === 'root' || + generated(node) || + (node.type === 'html' && /^\s*".length)); + const meta = jsYaml.load("#" + node.value.slice(0, -"-->".length)); validateMeta(node, file, meta); } catch (e) { @@ -49678,36 +56252,166 @@ function validateYAMLComments(tree, file) { }); } -var remarkLintNodejsYamlComments = unifiedLintRule("remark-lint:nodejs-yaml-comments", validateYAMLComments); +const remarkLintNodejsYamlComments = lintRule$6( + "remark-lint:nodejs-yaml-comments", + validateYAMLComments +); -var escapeStringRegexp$1 = string => { +function escapeStringRegexp(string) { if (typeof string !== 'string') { throw new TypeError('Expected a string'); } // Escape characters with special meaning either inside or outside character sets. - // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. + // Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. return string .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') .replace(/-/g, '\\x2d'); -}; +} + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ + +const primitives$5 = new Set(['string', 'number', 'boolean']); + +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$5(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + + Object.defineProperty(plugin, 'name', {value: id}); + + return plugin + + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$5(ruleId, raw); + + if (!severity) return + + const fatal = severity === 2; + + return (tree, file, next) => { + let index = file.messages.length - 1; + + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } + + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); + } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$5(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$5.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } + + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; + } + } + + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } + + result[0] = level; -const start$f = unistUtilPosition.start; + // @ts-expect-error: it’s now a valid tuple. + return result +} -var remarkLintProhibitedStrings = unifiedLintRule('remark-lint:prohibited-strings', prohibitedStrings); +const remarkLintProhibitedStrings = lintRule$5('remark-lint:prohibited-strings', prohibitedStrings); function testProhibited (val, content) { let regexpFlags = 'g'; let no = val.no; if (!no) { - no = escapeStringRegexp$1(val.yes); + no = escapeStringRegexp(val.yes); regexpFlags += 'i'; } let regexpString = '(? { const results = testProhibited(val, content); if (results.length) { - results.forEach(({ result, index }) => { - const message = val.yes ? `Use "${val.yes}" instead of "${result}"` : `Do not use "${result}"`; + results.forEach(({ result, index, yes }) => { + const message = val.yes ? `Use "${yes}" instead of "${result}"` : `Do not use "${result}"`; file.message(message, { - start: location.toPoint(initial + index), - end: location.toPoint(initial + index + [...result].length) + start: myLocation.toPoint(initial + index), + end: myLocation.toPoint(initial + index + [...result].length) }); }); } @@ -49766,6 +56474,134 @@ function prohibitedStrings (ast, file, strings) { } } +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ + +const primitives$4 = new Set(['string', 'number', 'boolean']); + +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$4(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + + Object.defineProperty(plugin, 'name', {value: id}); + + return plugin + + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$4(ruleId, raw); + + if (!severity) return + + const fatal = severity === 2; + + return (tree, file, next) => { + let index = file.messages.length - 1; + + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } + + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); + } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$4(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$4.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } + + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; + } + } + + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } + + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result +} + /** * @author Titus Wormer * @copyright 2015 Titus Wormer @@ -49796,73 +56632,195 @@ function prohibitedStrings (ast, file, strings) { * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md", "setting": "* * *"} + * @example + * {"name": "ok.md", "setting": "* * *"} * * * * * * * * * * * - * @example {"name": "ok.md", "setting": "_______"} + * @example + * {"name": "ok.md", "setting": "_______"} * * _______ * * _______ * - * @example {"name": "not-ok.md", "label": "input"} + * @example + * {"name": "not-ok.md", "label": "input"} * * *** * * * * * * - * @example {"name": "not-ok.md", "label": "output"} + * @example + * {"name": "not-ok.md", "label": "output"} * * 3:1-3:6: Rules should use `***` * - * @example {"name": "not-ok.md", "label": "output", "setting": "💩", "config": {"positionless": true}} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} * * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` */ -var rule = unifiedLintRule; +const remarkLintRuleStyle = lintRule$4( + 'remark-lint:rule-style', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + const value = String(file); + + if (option !== 'consistent' && /[^-_* ]/.test(option)) { + file.fail( + "Incorrect preferred rule style: provide a correct markdown rule or `'consistent'`" + ); + } + + visit(tree, 'thematicBreak', (node) => { + const initial = pointStart(node).offset; + const final = pointEnd(node).offset; + if (typeof initial === 'number' && typeof final === 'number') { + const rule = value.slice(initial, final); + if (option === 'consistent') { + option = rule; + } else if (rule !== option) { + file.message('Rules should use `' + option + '`', node); + } + } + }); + } +); + +var remarkLintRuleStyle$1 = remarkLintRuleStyle; + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ +const primitives$3 = new Set(['string', 'number', 'boolean']); -var remarkLintRuleStyle = rule('remark-lint:rule-style', ruleStyle); +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$3(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; -var start$g = unistUtilPosition.start; -var end$9 = unistUtilPosition.end; + Object.defineProperty(plugin, 'name', {value: id}); -function ruleStyle(tree, file, option) { - var contents = String(file); - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; + return plugin - if (preferred !== null && /[^-_* ]/.test(preferred)) { - file.fail( - "Incorrect preferred rule style: provide a correct markdown rule or `'consistent'`" - ); - } + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$3(ruleId, raw); - unistUtilVisit(tree, 'thematicBreak', visitor); + if (!severity) return - function visitor(node) { - var initial = start$g(node).offset; - var final = end$9(node).offset; - var rule; + const fatal = severity === 2; - if (!unistUtilGenerated(node)) { - rule = contents.slice(initial, final); + return (tree, file, next) => { + let index = file.messages.length - 1; - if (preferred) { - if (rule !== preferred) { - file.message('Rules should use `' + preferred + '`', node); + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} } - } else { - preferred = rule; - } + + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); + } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$3(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$3.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } + + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; } } + + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } + + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } /** @@ -49889,75 +56847,200 @@ function ruleStyle(tree, file, option) { * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md"} + * @example + * {"name": "ok.md"} * * **foo** and **bar**. * - * @example {"name": "also-ok.md"} + * @example + * {"name": "also-ok.md"} * * __foo__ and __bar__. * - * @example {"name": "ok.md", "setting": "*"} + * @example + * {"name": "ok.md", "setting": "*"} * * **foo**. * - * @example {"name": "ok.md", "setting": "_"} + * @example + * {"name": "ok.md", "setting": "_"} * * __foo__. * - * @example {"name": "not-ok.md", "label": "input"} + * @example + * {"name": "not-ok.md", "label": "input"} * * **foo** and __bar__. * - * @example {"name": "not-ok.md", "label": "output"} + * @example + * {"name": "not-ok.md", "label": "output"} * * 1:13-1:20: Strong should use `*` as a marker * - * @example {"name": "not-ok.md", "label": "output", "setting": "💩", "config": {"positionless": true}} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} * * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` */ +const remarkLintStrongMarker = lintRule$3( + 'remark-lint:strong-marker', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + const value = String(file); + + if (option !== '*' && option !== '_' && option !== 'consistent') { + file.fail( + 'Incorrect strong marker `' + + option + + "`: use either `'consistent'`, `'*'`, or `'_'`" + ); + } + + visit(tree, 'strong', (node) => { + const start = pointStart(node).offset; + + if (typeof start === 'number') { + const marker = /** @type {Marker} */ (value.charAt(start)); + + if (option === 'consistent') { + option = marker; + } else if (marker !== option) { + file.message('Strong should use `' + option + '` as a marker', node); + } + } + }); + } +); + +var remarkLintStrongMarker$1 = remarkLintStrongMarker; + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ + +const primitives$2 = new Set(['string', 'number', 'boolean']); + +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$2(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + + Object.defineProperty(plugin, 'name', {value: id}); + return plugin + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$2(ruleId, raw); + if (!severity) return + const fatal = severity === 2; -var remarkLintStrongMarker = unifiedLintRule('remark-lint:strong-marker', strongMarker); + return (tree, file, next) => { + let index = file.messages.length - 1; -var markers$1 = {'*': true, _: true, null: true}; + wrap(rule, (error) => { + const messages = file.messages; -function strongMarker(tree, file, option) { - var contents = String(file); - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } - if (markers$1[preferred] !== true) { - file.fail( - 'Incorrect strong marker `' + - preferred + - "`: use either `'consistent'`, `'*'`, or `'_'`" - ); + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); + } } +} - unistUtilVisit(tree, 'strong', visitor); +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$2(name, value) { + /** @type {unknown[]} */ + let result; - function visitor(node) { - var marker = contents.charAt(unistUtilPosition.start(node).offset); + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$2.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } - if (!unistUtilGenerated(node)) { - if (preferred) { - if (marker !== preferred) { - file.message( - 'Strong should use `' + preferred + '` as a marker', - node - ); - } - } else { - preferred = marker; - } + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; } } + + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } + + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } /** @@ -49984,13 +57067,15 @@ function strongMarker(tree, file, option) { * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md", "setting": "padded", "gfm": true} + * @example + * {"name": "ok.md", "setting": "padded", "gfm": true} * * | A | B | * | ----- | ----- | * | Alpha | Bravo | * - * @example {"name": "not-ok.md", "label": "input", "setting": "padded", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "input", "setting": "padded", "gfm": true} * * | A | B | * | :----|----: | @@ -50006,7 +57091,8 @@ function strongMarker(tree, file, option) { * | :---- | -------- | :----: | -----: | * | Echo | Foxtrot | Golf | Hotel | * - * @example {"name": "not-ok.md", "label": "output", "setting": "padded", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "padded", "gfm": true} * * 3:8: Cell should be padded * 3:9: Cell should be padded @@ -50018,13 +57104,15 @@ function strongMarker(tree, file, option) { * 13:29: Cell should be padded with 1 space, not 2 * 13:30: Cell should be padded with 1 space, not 2 * - * @example {"name": "ok.md", "setting": "compact", "gfm": true} + * @example + * {"name": "ok.md", "setting": "compact", "gfm": true} * * |A |B | * |-----|-----| * |Alpha|Bravo| * - * @example {"name": "not-ok.md", "label": "input", "setting": "compact", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "input", "setting": "compact", "gfm": true} * * | A | B | * | -----| -----| @@ -50034,13 +57122,15 @@ function strongMarker(tree, file, option) { * |:------|-----:| * |Charlie|Delta | * - * @example {"name": "not-ok.md", "label": "output", "setting": "compact", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "compact", "gfm": true} * * 3:2: Cell should be compact * 3:11: Cell should be compact * 7:16: Cell should be compact * - * @example {"name": "ok-padded.md", "setting": "consistent", "gfm": true} + * @example + * {"name": "ok-padded.md", "setting": "consistent", "gfm": true} * * | A | B | * | ----- | ----- | @@ -50050,7 +57140,8 @@ function strongMarker(tree, file, option) { * | ------- | ----- | * | Charlie | Delta | * - * @example {"name": "not-ok-padded.md", "label": "input", "setting": "consistent", "gfm": true} + * @example + * {"name": "not-ok-padded.md", "label": "input", "setting": "consistent", "gfm": true} * * | A | B | * | ----- | ----- | @@ -50060,11 +57151,13 @@ function strongMarker(tree, file, option) { * | :----- | ----: | * |Charlie | Delta | * - * @example {"name": "not-ok-padded.md", "label": "output", "setting": "consistent", "gfm": true} + * @example + * {"name": "not-ok-padded.md", "label": "output", "setting": "consistent", "gfm": true} * * 7:2: Cell should be padded * - * @example {"name": "ok-compact.md", "setting": "consistent", "gfm": true} + * @example + * {"name": "ok-compact.md", "setting": "consistent", "gfm": true} * * |A |B | * |-----|-----| @@ -50074,7 +57167,8 @@ function strongMarker(tree, file, option) { * |-------|-----| * |Charlie|Delta| * - * @example {"name": "not-ok-compact.md", "label": "input", "setting": "consistent", "gfm": true} + * @example + * {"name": "not-ok-compact.md", "label": "input", "setting": "consistent", "gfm": true} * * |A |B | * |-----|-----| @@ -50084,15 +57178,18 @@ function strongMarker(tree, file, option) { * |:------|-----:| * |Charlie|Delta | * - * @example {"name": "not-ok-compact.md", "label": "output", "setting": "consistent", "gfm": true} + * @example + * {"name": "not-ok-compact.md", "label": "output", "setting": "consistent", "gfm": true} * * 7:16: Cell should be compact * - * @example {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true, "gfm": true} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true, "gfm": true} * * 1:1: Incorrect table cell padding style `💩`, expected `'padded'`, `'compact'`, or `'consistent'` * - * @example {"name": "empty.md", "label": "input", "setting": "padded", "gfm": true} + * @example + * {"name": "empty.md", "label": "input", "setting": "padded", "gfm": true} * * * @@ -50100,13 +57197,15 @@ function strongMarker(tree, file, option) { * | ------ | ----- | ---: | * | Charlie| | Echo| * - * @example {"name": "empty.md", "label": "output", "setting": "padded", "gfm": true} + * @example + * {"name": "empty.md", "label": "output", "setting": "padded", "gfm": true} * * 3:25: Cell should be padded * 5:10: Cell should be padded * 5:25: Cell should be padded * - * @example {"name": "missing-body.md", "setting": "padded", "gfm": true} + * @example + * {"name": "missing-body.md", "setting": "padded", "gfm": true} * * * @@ -50116,151 +57215,297 @@ function strongMarker(tree, file, option) { * | Echo | Foxtrot | */ +const remarkLintTableCellPadding = lintRule$2( + 'remark-lint:table-cell-padding', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + if ( + option !== 'padded' && + option !== 'compact' && + option !== 'consistent' + ) { + file.fail( + 'Incorrect table cell padding style `' + + option + + "`, expected `'padded'`, `'compact'`, or `'consistent'`" + ); + } + visit(tree, 'table', (node) => { + const rows = node.children; + // To do: fix types to always have `align` defined. + /* c8 ignore next */ + const align = node.align || []; + /** @type {number[]} */ + const sizes = Array.from({length: align.length}); + /** @type {Entry[]} */ + const entries = []; + let index = -1; + + // Check rows. + while (++index < rows.length) { + const row = rows[index]; + let column = -1; + + // Check fences (before, between, and after cells). + while (++column < row.children.length) { + const cell = row.children[column]; + + if (cell.children.length > 0) { + const cellStart = pointStart(cell).offset; + const cellEnd = pointEnd(cell).offset; + const contentStart = pointStart(cell.children[0]).offset; + const contentEnd = pointEnd( + cell.children[cell.children.length - 1] + ).offset; + if ( + typeof cellStart !== 'number' || + typeof cellEnd !== 'number' || + typeof contentStart !== 'number' || + typeof contentEnd !== 'number' + ) { + continue + } + entries.push({ + node: cell, + start: contentStart - cellStart - (column ? 0 : 1), + end: cellEnd - contentEnd - 1, + column + }); + // Detect max space per column. + sizes[column] = Math.max( + sizes[column] || 0, + contentEnd - contentStart + ); + } + } + } -var remarkLintTableCellPadding = unifiedLintRule('remark-lint:table-cell-padding', tableCellPadding); + const style = + option === 'consistent' + ? entries[0] && (!entries[0].start || !entries[0].end) + ? 0 + : 1 + : option === 'padded' + ? 1 + : 0; -var start$h = unistUtilPosition.start; -var end$a = unistUtilPosition.end; + index = -1; -var styles$4 = {null: true, padded: true, compact: true}; + while (++index < entries.length) { + checkSide('start', entries[index], style, sizes); + checkSide('end', entries[index], style, sizes); + } -function tableCellPadding(tree, file, option) { - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; + return SKIP$1 + }); - if (styles$4[preferred] !== true) { - file.fail( - 'Incorrect table cell padding style `' + - preferred + - "`, expected `'padded'`, `'compact'`, or `'consistent'`" - ); - } + /** + * @param {'start'|'end'} side + * @param {Entry} entry + * @param {0|1} style + * @param {number[]} sizes + */ + function checkSide(side, entry, style, sizes) { + const cell = entry.node; + const column = entry.column; + const spacing = entry[side]; - unistUtilVisit(tree, 'table', visitor); + if (spacing === undefined || spacing === style) { + return + } - function visitor(node) { - var rows = node.children; - var sizes = new Array(node.align.length); - var length = unistUtilGenerated(node) ? -1 : rows.length; - var index = -1; - var entries = []; - var style; - var row; - var cells; - var column; - var cellCount; - var cell; - var entry; - var contentStart; - var contentEnd; - - // Check rows. - while (++index < length) { - row = rows[index]; - cells = row.children; - cellCount = cells.length; - column = -1; - - // Check fences (before, between, and after cells). - while (++column < cellCount) { - cell = cells[column]; - - if (cell && cell.children.length !== 0) { - contentStart = start$h(cell.children[0]).offset; - contentEnd = end$a(cell.children[cell.children.length - 1]).offset; - - entries.push({ - node: cell, - start: contentStart - start$h(cell).offset - (column ? 0 : 1), - end: end$a(cell).offset - contentEnd - 1, - column: column - }); + let reason = 'Cell should be '; - // Detect max space per column. - sizes[column] = Math.max( - sizes[column] || 0, - contentEnd - contentStart - ); + if (style === 0) { + // Ignore every cell except the biggest in the column. + if (size(cell) < sizes[column]) { + return + } + + reason += 'compact'; + } else { + reason += 'padded'; + + if (spacing > style) { + // May be right or center aligned. + if (size(cell) < sizes[column]) { + return + } + + reason += ' with 1 space, not ' + spacing; } } - } - if (preferred) { - style = preferred === 'padded' ? 1 : 0; - } else { - style = entries[0] && (!entries[0].start || !entries[0].end) ? 0 : 1; - } + /** @type {Point} */ + let point; - index = -1; - length = entries.length; + if (side === 'start') { + point = pointStart(cell); + if (!column) { + point.column++; - while (++index < length) { - entry = entries[index]; - checkSide('start', entry, style, sizes); - checkSide('end', entry, style, sizes); - } + if (typeof point.offset === 'number') { + point.offset++; + } + } + } else { + point = pointEnd(cell); + point.column--; - return unistUtilVisit.SKIP + if (typeof point.offset === 'number') { + point.offset--; + } + } + + file.message(reason, point); + } } +); - function checkSide(side, entry, style, sizes) { - var cell = entry.node; - var spacing = entry[side]; - var column = entry.column; - var reason; - var point; +var remarkLintTableCellPadding$1 = remarkLintTableCellPadding; - if (spacing === undefined || spacing === style) { - return - } +/** + * @param {TableCell} node + * @returns {number} + */ +function size(node) { + const head = pointStart(node.children[0]).offset; + const tail = pointEnd(node.children[node.children.length - 1]).offset; + // Only called when we’re sure offsets exist. + /* c8 ignore next */ + return typeof head === 'number' && typeof tail === 'number' ? tail - head : 0 +} - reason = 'Cell should be '; +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ - if (style === 0) { - // Ignore every cell except the biggest in the column. - if (size$1(cell) < sizes[column]) { - return - } +const primitives$1 = new Set(['string', 'number', 'boolean']); - reason += 'compact'; - } else { - reason += 'padded'; +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$1(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; - if (spacing > style) { - // May be right or center aligned. - if (size$1(cell) < sizes[column]) { - return + Object.defineProperty(plugin, 'name', {value: id}); + + return plugin + + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$1(ruleId, raw); + + if (!severity) return + + const fatal = severity === 2; + + return (tree, file, next) => { + let index = file.messages.length - 1; + + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} } - reason += ' with 1 space, not ' + spacing; - } + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); } + } +} - if (side === 'start') { - point = start$h(cell); - if (!column) { - point.column++; - point.offset++; - } +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$1(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$1.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } + + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; } else { - point = end$a(cell); - point.column--; - point.offset--; + level = 1; + result = [level, result]; } + } - file.message(reason, point); + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) } -} -function size$1(node) { - return ( - end$a(node.children[node.children.length - 1]).offset - - start$h(node.children[0]).offset - ) + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } /** @@ -50275,26 +57520,26 @@ function size$1(node) { * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) * creates fenced rows with initial and final pipes by default. - * Pass - * [`looseTable: true`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsloosetable) - * to not use row fences. * * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md", "gfm": true} + * @example + * {"name": "ok.md", "gfm": true} * * | A | B | * | ----- | ----- | * | Alpha | Bravo | * - * @example {"name": "not-ok.md", "label": "input", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "input", "gfm": true} * * A | B * ----- | ----- * Alpha | Bravo * - * @example {"name": "not-ok.md", "label": "output", "gfm": true} + * @example + * {"name": "not-ok.md", "label": "output", "gfm": true} * * 1:1: Missing initial pipe in table fence * 1:10: Missing final pipe in table fence @@ -50302,44 +57547,169 @@ function size$1(node) { * 3:14: Missing final pipe in table fence */ +const reasonStart = 'Missing initial pipe in table fence'; +const reasonEnd = 'Missing final pipe in table fence'; +const remarkLintTablePipes = lintRule$1( + 'remark-lint:table-pipes', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file) => { + const value = String(file); + visit(tree, 'table', (node) => { + let index = -1; + while (++index < node.children.length) { + const row = node.children[index]; + const start = pointStart(row); + const end = pointEnd(row); + if ( + typeof start.offset === 'number' && + value.charCodeAt(start.offset) !== 124 + ) { + file.message(reasonStart, start); + } + + if ( + typeof end.offset === 'number' && + value.charCodeAt(end.offset - 1) !== 124 + ) { + file.message(reasonEnd, end); + } + } + }); + } +); -var remarkLintTablePipes = unifiedLintRule('remark-lint:table-pipes', tablePipes); +var remarkLintTablePipes$1 = remarkLintTablePipes; -var start$i = unistUtilPosition.start; -var end$b = unistUtilPosition.end; +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ -var reasonStart = 'Missing initial pipe in table fence'; -var reasonEnd = 'Missing final pipe in table fence'; +const primitives = new Set(['string', 'number', 'boolean']); -function tablePipes(tree, file) { - var contents = String(file); +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; - unistUtilVisit(tree, 'table', visitor); + Object.defineProperty(plugin, 'name', {value: id}); - function visitor(node) { - var rows = node.children; - var length = rows.length; - var index = -1; - var row; + return plugin + + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce(ruleId, raw); + + if (!severity) return - while (++index < length) { - row = rows[index]; + const fatal = severity === 2; - if (!unistUtilGenerated(row)) { - if (contents.charCodeAt(start$i(row).offset) !== 124) { - file.message(reasonStart, start$i(row)); + return (tree, file, next) => { + let index = file.messages.length - 1; + + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} } - if (contents.charCodeAt(end$b(row).offset - 1) !== 124) { - file.message(reasonEnd, end$b(row)); + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); } - } + + next(); + })(tree, file, options); + } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } + + let level = result[0]; + + if (typeof level === 'boolean') { + level = level ? 1 : 0; + } else if (typeof level === 'string') { + if (level === 'off') { + level = 0; + } else if (level === 'on' || level === 'warn') { + level = 1; + } else if (level === 'error') { + level = 2; + } else { + level = 1; + result = [level, result]; } } + + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } + + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } /** @@ -50367,7 +57737,8 @@ function tablePipes(tree, file) { * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) * on how to automatically fix warnings for this rule. * - * @example {"name": "ok.md"} + * @example + * {"name": "ok.md"} * * By default (`'consistent'`), if the file uses only one marker, * that’s OK. @@ -50382,114 +57753,101 @@ function tablePipes(tree, file) { * 2. Bar * 3. Baz * - * @example {"name": "ok.md", "setting": "*"} + * @example + * {"name": "ok.md", "setting": "*"} * * * Foo * - * @example {"name": "ok.md", "setting": "-"} + * @example + * {"name": "ok.md", "setting": "-"} * * - Foo * - * @example {"name": "ok.md", "setting": "+"} + * @example + * {"name": "ok.md", "setting": "+"} * * + Foo * - * @example {"name": "not-ok.md", "label": "input"} + * @example + * {"name": "not-ok.md", "label": "input"} * * * Foo * - Bar * + Baz * - * @example {"name": "not-ok.md", "label": "output"} + * @example + * {"name": "not-ok.md", "label": "output"} * * 2:1-2:6: Marker style should be `*` * 3:1-3:6: Marker style should be `*` * - * @example {"name": "not-ok.md", "label": "output", "setting": "💩", "config": {"positionless": true}} + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} * * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` */ +const markers = new Set(['-', '*', '+']); - - - - -var remarkLintUnorderedListMarkerStyle = unifiedLintRule( +const remarkLintUnorderedListMarkerStyle = lintRule( 'remark-lint:unordered-list-marker-style', - unorderedListMarkerStyle -); - -var start$j = unistUtilPosition.start; - -var styles$5 = { - '-': true, - '*': true, - '+': true, - null: true -}; - -function unorderedListMarkerStyle(tree, file, option) { - var contents = String(file); - var preferred = - typeof option === 'string' && option !== 'consistent' ? option : null; - - if (styles$5[preferred] !== true) { - file.fail( - 'Incorrect unordered list item marker style `' + - preferred + - "`: use either `'-'`, `'*'`, or `'+'`" - ); - } + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + const value = String(file); + + if (option !== 'consistent' && !markers.has(option)) { + file.fail( + 'Incorrect unordered list item marker style `' + + option + + "`: use either `'-'`, `'*'`, or `'+'`" + ); + } - unistUtilVisit(tree, 'list', visitor); + visit(tree, 'list', (node) => { + if (node.ordered) return - function visitor(node) { - var children = node.children; - var length = node.ordered ? 0 : children.length; - var index = -1; - var child; - var marker; + let index = -1; - while (++index < length) { - child = children[index]; + while (++index < node.children.length) { + const child = node.children[index]; - if (!unistUtilGenerated(child)) { - marker = contents - .slice(start$j(child).offset, start$j(child.children[0]).offset) - .replace(/\[[x ]?]\s*$/i, '') - .replace(/\s/g, ''); + if (!generated(child)) { + const marker = /** @type {Marker} */ ( + value + .slice( + pointStart(child).offset, + pointStart(child.children[0]).offset + ) + .replace(/\[[x ]?]\s*$/i, '') + .replace(/\s/g, '') + ); - if (preferred) { - if (marker !== preferred) { - file.message('Marker style should be `' + preferred + '`', child); + if (option === 'consistent') { + option = marker; + } else if (marker !== option) { + file.message('Marker style should be `' + option + '`', child); } - } else { - preferred = marker; } } - } + }); } -} +); + +var remarkLintUnorderedListMarkerStyle$1 = remarkLintUnorderedListMarkerStyle; + +// @see https://github.com/nodejs/node/blob/HEAD/doc/guides/doc-style-guide.md // Add in rules alphabetically -var plugins$2 = [ - remarkLint, +const plugins = [ // Leave preset at the top so it can be overridden - remarkPresetLintRecommended, - [remarkLintBlockquoteIndentation, 2], - [ - remarkLintCheckboxCharacterStyle, - { - checked: "x", - unchecked: " ", - }, - ], - remarkLintCheckboxContentIndent, - [remarkLintCodeBlockStyle, "fenced"], - remarkLintDefinitionSpacing, + remarkPresetLintRecommended$1, + [remarkLintBlockquoteIndentation$1, 2], + [remarkLintCheckboxCharacterStyle$1, { checked: "x", unchecked: " " }], + remarkLintCheckboxContentIndent$1, + [remarkLintCodeBlockStyle$1, "fenced"], + remarkLintDefinitionSpacing$1, [ - remarkLintFencedCodeFlag, + remarkLintFencedCodeFlag$1, { flags: [ "bash", @@ -50510,23 +57868,24 @@ var plugins$2 = [ ], }, ], - [remarkLintFencedCodeMarker, "`"], - [remarkLintFileExtension, "md"], - remarkLintFinalDefinition, - [remarkLintFirstHeadingLevel, 1], - [remarkLintHeadingStyle, "atx"], - [remarkLintListItemIndent, "space"], - remarkLintMaximumLineLength, - remarkLintNoConsecutiveBlankLines, - remarkLintNoFileNameArticles, - remarkLintNoFileNameConsecutiveDashes, - remarkLintNoFileNameOuterDashes, - remarkLintNoHeadingIndent, - remarkLintNoMultipleToplevelHeadings, - remarkLintNoShellDollars, - remarkLintNoTableIndentation, - remarkLintNoTabs, + [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, remarkLintNoTrailingSpaces, + remarkLintNodejsLinks, remarkLintNodejsYamlComments, [ remarkLintProhibitedStrings, @@ -50547,72 +57906,100 @@ var plugins$2 = [ { yes: "V8" }, ], ], - remarkLintRuleStyle, - [remarkLintStrongMarker, "*"], - [remarkLintTableCellPadding, "padded"], - remarkLintTablePipes, - [remarkLintUnorderedListMarkerStyle, "*"], + remarkLintRuleStyle$1, + [remarkLintStrongMarker$1, "*"], + [remarkLintTableCellPadding$1, "padded"], + remarkLintTablePipes$1, + [remarkLintUnorderedListMarkerStyle$1, "*"], ]; -var remarkPresetLintNode = { - plugins: plugins$2 -}; - -var www = {tokenize: tokenizeWww}; -var http = {tokenize: tokenizeHttp}; -var domain = {tokenize: tokenizeDomain}; -var path$1 = {tokenize: tokenizePath}; -var punctuation = {tokenize: tokenizePunctuation}; -var domainPunctuation = {tokenize: tokenizeDomainPunctuation}; -var paren = {tokenize: tokenizeParen}; -var namedCharacterReference = {tokenize: tokenizeNamedCharacterReference}; - -var wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previous$1}; -var httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previous$1}; -var emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previous$1}; - -var text$4 = {}; - -// Export hooked constructs. -var text_1$3 = text$4; - -// `0` -var code$2 = 48; - -// While the code is smaller than `{`. -while (code$2 < 123) { - text$4[code$2] = emailAutolink; - code$2++; - // Jump from `:` -> `A` - if (code$2 === 58) code$2 = 65; - // Jump from `[` -> `a` - else if (code$2 === 91) code$2 = 97; -} - -// `+` -text$4[43] = emailAutolink; -// `-` -text$4[45] = emailAutolink; -// `.` -text$4[46] = emailAutolink; -// `_` -text$4[95] = emailAutolink; -// `h`. -text$4[72] = [emailAutolink, httpAutolink]; -text$4[104] = [emailAutolink, httpAutolink]; -// `w`. -text$4[87] = [emailAutolink, wwwAutolink]; -text$4[119] = [emailAutolink, wwwAutolink]; +const remarkPresetLintNode = { plugins }; + +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Previous} Previous + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Code} Code + */ +const www = { + tokenize: tokenizeWww, + partial: true +}; +const domain = { + tokenize: tokenizeDomain, + partial: true +}; +const path = { + tokenize: tokenizePath, + partial: true +}; +const punctuation = { + tokenize: tokenizePunctuation, + partial: true +}; +const namedCharacterReference = { + tokenize: tokenizeNamedCharacterReference, + partial: true +}; +const wwwAutolink = { + tokenize: tokenizeWwwAutolink, + previous: previousWww +}; +const httpAutolink = { + tokenize: tokenizeHttpAutolink, + previous: previousHttp +}; +const emailAutolink = { + tokenize: tokenizeEmailAutolink, + previous: previousEmail +}; +/** @type {ConstructRecord} */ + +const text = {}; +/** @type {Extension} */ + +const gfmAutolinkLiteral = { + text +}; +let code = 48; // Add alphanumerics. + +while (code < 123) { + text[code] = emailAutolink; + code++; + if (code === 58) code = 65; + else if (code === 91) code = 97; +} + +text[43] = emailAutolink; +text[45] = emailAutolink; +text[46] = emailAutolink; +text[95] = emailAutolink; +text[72] = [emailAutolink, httpAutolink]; +text[104] = [emailAutolink, httpAutolink]; +text[87] = [emailAutolink, wwwAutolink]; +text[119] = [emailAutolink, wwwAutolink]; +/** @type {Tokenizer} */ function tokenizeEmailAutolink(effects, ok, nok) { - var self = this; - var hasDot; + const self = this; + /** @type {boolean} */ + let hasDot; + /** @type {boolean|undefined} */ + + let hasDigitInLastSegment; return start + /** @type {State} */ function start(code) { - /* istanbul ignore next - hooks. */ - if (!gfmAtext(code) || !previous$1(self.previous)) { + if ( + !gfmAtext(code) || + !previousEmail(self.previous) || + previousUnbalanced(self.events) + ) { return nok(code) } @@ -50620,6 +58007,7 @@ function tokenizeEmailAutolink(effects, ok, nok) { effects.enter('literalAutolinkEmail'); return atext(code) } + /** @type {State} */ function atext(code) { if (gfmAtext(code)) { @@ -50627,7 +58015,6 @@ function tokenizeEmailAutolink(effects, ok, nok) { return atext } - // `@` if (code === 64) { effects.consume(code); return label @@ -50635,52 +58022,55 @@ function tokenizeEmailAutolink(effects, ok, nok) { return nok(code) } + /** @type {State} */ function label(code) { - // `.` if (code === 46) { return effects.check(punctuation, done, dotContinuation)(code) } - if ( - // `-` - code === 45 || - // `_` - code === 95 - ) { + if (code === 45 || code === 95) { return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code) } - if (asciiAlphanumeric_1(code)) { + if (asciiAlphanumeric(code)) { + if (!hasDigitInLastSegment && asciiDigit(code)) { + hasDigitInLastSegment = true; + } + effects.consume(code); return label } return done(code) } + /** @type {State} */ function dotContinuation(code) { effects.consume(code); hasDot = true; + hasDigitInLastSegment = undefined; return label } + /** @type {State} */ function dashOrUnderscoreContinuation(code) { effects.consume(code); return afterDashOrUnderscore } + /** @type {State} */ function afterDashOrUnderscore(code) { - // `.` if (code === 46) { return effects.check(punctuation, nok, dotContinuation)(code) } return label(code) } + /** @type {State} */ function done(code) { - if (hasDot) { + if (hasDot && !hasDigitInLastSegment) { effects.exit('literalAutolinkEmail'); effects.exit('literalAutolink'); return ok(code) @@ -50689,26 +58079,34 @@ function tokenizeEmailAutolink(effects, ok, nok) { return nok(code) } } +/** @type {Tokenizer} */ function tokenizeWwwAutolink(effects, ok, nok) { - var self = this; - + const self = this; return start + /** @type {State} */ function start(code) { - /* istanbul ignore next - hooks. */ - if ((code !== 87 && code - 32 !== 87) || !previous$1(self.previous)) { + if ( + (code !== 87 && code !== 119) || + !previousWww(self.previous) || + previousUnbalanced(self.events) + ) { return nok(code) } effects.enter('literalAutolink'); - effects.enter('literalAutolinkWww'); + effects.enter('literalAutolinkWww'); // For `www.` we check instead of attempt, because when it matches, GH + // treats it as part of a domain (yes, it says a valid domain must come + // after `www.`, but that’s not how it’s implemented by them). + return effects.check( www, - effects.attempt(domain, effects.attempt(path$1, done), nok), + effects.attempt(domain, effects.attempt(path, done), nok), nok )(code) } + /** @type {State} */ function done(code) { effects.exit('literalAutolinkWww'); @@ -50716,85 +58114,70 @@ function tokenizeWwwAutolink(effects, ok, nok) { return ok(code) } } +/** @type {Tokenizer} */ function tokenizeHttpAutolink(effects, ok, nok) { - var self = this; - + const self = this; return start + /** @type {State} */ function start(code) { - /* istanbul ignore next - hooks. */ - if ((code !== 72 && code - 32 !== 72) || !previous$1(self.previous)) { + if ( + (code !== 72 && code !== 104) || + !previousHttp(self.previous) || + previousUnbalanced(self.events) + ) { return nok(code) } effects.enter('literalAutolink'); effects.enter('literalAutolinkHttp'); - return effects.check( - http, - effects.attempt(domain, effects.attempt(path$1, done), nok), - nok - )(code) - } - - function done(code) { - effects.exit('literalAutolinkHttp'); - effects.exit('literalAutolink'); - return ok(code) - } -} - -function tokenizeHttp(effects, ok, nok) { - return start - - function start(code) { - // Assume a `h`. effects.consume(code); return t1 } + /** @type {State} */ function t1(code) { - // `t` - if (code === 84 || code - 32 === 84) { + if (code === 84 || code === 116) { effects.consume(code); return t2 } return nok(code) } + /** @type {State} */ function t2(code) { - // `t` - if (code === 84 || code - 32 === 84) { + if (code === 84 || code === 116) { effects.consume(code); return p } return nok(code) } + /** @type {State} */ function p(code) { - // `p` - if (code === 80 || code - 32 === 80) { + if (code === 80 || code === 112) { effects.consume(code); return s } return nok(code) } + /** @type {State} */ function s(code) { - // `s` - if (code === 83 || code - 32 === 83) { + if (code === 83 || code === 115) { effects.consume(code); return colon } return colon(code) } + /** @type {State} */ function colon(code) { - // `:` if (code === 58) { effects.consume(code); return slash1 @@ -50802,9 +58185,9 @@ function tokenizeHttp(effects, ok, nok) { return nok(code) } + /** @type {State} */ function slash1(code) { - // `/` if (code === 47) { effects.consume(code); return slash2 @@ -50812,9 +58195,9 @@ function tokenizeHttp(effects, ok, nok) { return nok(code) } + /** @type {State} */ function slash2(code) { - // `/` if (code === 47) { effects.consume(code); return after @@ -50822,47 +58205,57 @@ function tokenizeHttp(effects, ok, nok) { return nok(code) } + /** @type {State} */ function after(code) { - return asciiControl_1(code) || - unicodeWhitespace_1(code) || - unicodePunctuation_1(code) + return code === null || + asciiControl(code) || + unicodeWhitespace(code) || + unicodePunctuation(code) ? nok(code) - : ok(code) + : effects.attempt(domain, effects.attempt(path, done), nok)(code) + } + /** @type {State} */ + + function done(code) { + effects.exit('literalAutolinkHttp'); + effects.exit('literalAutolink'); + return ok(code) } } +/** @type {Tokenizer} */ function tokenizeWww(effects, ok, nok) { return start + /** @type {State} */ function start(code) { - // Assume a `w`. effects.consume(code); return w2 } + /** @type {State} */ function w2(code) { - // `w` - if (code === 87 || code - 32 === 87) { + if (code === 87 || code === 119) { effects.consume(code); return w3 } return nok(code) } + /** @type {State} */ function w3(code) { - // `w` - if (code === 87 || code - 32 === 87) { + if (code === 87 || code === 119) { effects.consume(code); return dot } return nok(code) } + /** @type {State} */ function dot(code) { - // `.` if (code === 46) { effects.consume(code); return after @@ -50870,30 +58263,24 @@ function tokenizeWww(effects, ok, nok) { return nok(code) } + /** @type {State} */ function after(code) { - return code === null || markdownLineEnding_1(code) ? nok(code) : ok(code) + return code === null || markdownLineEnding(code) ? nok(code) : ok(code) } } +/** @type {Tokenizer} */ function tokenizeDomain(effects, ok, nok) { - var opened; - var hasUnderscoreInLastSegment; - var hasUnderscoreInLastLastSegment; + /** @type {boolean|undefined} */ + let hasUnderscoreInLastSegment; + /** @type {boolean|undefined} */ + let hasUnderscoreInLastLastSegment; return domain + /** @type {State} */ function domain(code) { - if ( - // `/` - code === 47 || - asciiControl_1(code) || - unicodeWhitespace_1(code) - ) { - return done(code) - } - - // `&` if (code === 38) { return effects.check( namedCharacterReference, @@ -50902,142 +58289,120 @@ function tokenizeDomain(effects, ok, nok) { )(code) } + if (code === 46 || code === 95) { + return effects.check(punctuation, done, punctuationContinuation)(code) + } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can + // occur, which sounds like ASCII only, but they also support `www.點看.com`, + // so that’s Unicode. + // Instead of some new production for Unicode alphanumerics, markdown + // already has that for Unicode punctuation and whitespace, so use those. + if ( - // `.` - code === 46 || - trailingPunctuation(code) + code === null || + asciiControl(code) || + unicodeWhitespace(code) || + (code !== 45 && unicodePunctuation(code)) ) { - return effects.check( - domainPunctuation, - done, - punctuationContinuation - )(code) + return done(code) } - open(); effects.consume(code); return domain } + /** @type {State} */ function punctuationContinuation(code) { - // `.` if (code === 46) { hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment; hasUnderscoreInLastSegment = undefined; - open(); effects.consume(code); return domain } - // `_` if (code === 95) hasUnderscoreInLastSegment = true; - - open(); effects.consume(code); return domain } - - function open() { - if (!opened) { - effects.enter('literalAutolinkDomain'); - opened = true; - } - } + /** @type {State} */ function done(code) { - if ( - opened && - !hasUnderscoreInLastLastSegment && - !hasUnderscoreInLastSegment - ) { - effects.exit('literalAutolinkDomain'); + if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) { return ok(code) } return nok(code) } } +/** @type {Tokenizer} */ function tokenizePath(effects, ok) { - var balance = 0; - - return start - - function start(code) { - // `/` - return code === 47 ? atPathStart(code) : ok(code) - } - - function atPathStart(code) { - effects.enter('literalAutolinkPath'); - return inPath(code) - } + let balance = 0; + return inPath + /** @type {State} */ function inPath(code) { - // `&` if (code === 38) { return effects.check( namedCharacterReference, - atPathEnd, + ok, continuedPunctuation )(code) } - // `(` if (code === 40) { balance++; } - // `)` if (code === 41) { - return effects.check(paren, parenAtPathEnd, continuedPunctuation)(code) + return effects.check( + punctuation, + parenAtPathEnd, + continuedPunctuation + )(code) } if (pathEnd(code)) { - return atPathEnd(code) + return ok(code) } if (trailingPunctuation(code)) { - return effects.check(punctuation, atPathEnd, continuedPunctuation)(code) + return effects.check(punctuation, ok, continuedPunctuation)(code) } effects.consume(code); return inPath } + /** @type {State} */ function continuedPunctuation(code) { effects.consume(code); return inPath } + /** @type {State} */ function parenAtPathEnd(code) { balance--; - return balance < 0 ? atPathEnd(code) : continuedPunctuation(code) - } - - function atPathEnd(code) { - effects.exit('literalAutolinkPath'); - return ok(code) + return balance < 0 ? ok(code) : continuedPunctuation(code) } } +/** @type {Tokenizer} */ function tokenizeNamedCharacterReference(effects, ok, nok) { return start + /** @type {State} */ function start(code) { - // Assume an ampersand. - effects.enter('literalAutolinkCharacterReferenceNamed'); effects.consume(code); return inside } + /** @type {State} */ function inside(code) { - if (asciiAlpha_1(code)) { + if (asciiAlpha(code)) { effects.consume(code); return inside } - // `;` if (code === 59) { effects.consume(code); return after @@ -51045,173 +58410,351 @@ function tokenizeNamedCharacterReference(effects, ok, nok) { return nok(code) } + /** @type {State} */ function after(code) { // If the named character reference is followed by the end of the path, it’s // not continued punctuation. - effects.exit('literalAutolinkCharacterReferenceNamed'); return pathEnd(code) ? ok(code) : nok(code) } } - -function tokenizeParen(effects, ok, nok) { - return start - - function start(code) { - // Assume a right paren. - effects.enter('literalAutolinkParen'); - effects.consume(code); - return after - } - - function after(code) { - // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - effects.exit('literalAutolinkParen'); - return pathEnd(code) || - // `)` - code === 41 - ? ok(code) - : nok(code) - } -} +/** @type {Tokenizer} */ function tokenizePunctuation(effects, ok, nok) { return start + /** @type {State} */ function start(code) { - effects.enter('literalAutolinkPunctuation'); - // Always a valid trailing punctuation marker. - effects.consume(code); - return after - } - - function after(code) { - // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - effects.exit('literalAutolinkPunctuation'); - return pathEnd(code) ? ok(code) : nok(code) - } -} - -function tokenizeDomainPunctuation(effects, ok, nok) { - return start - - function start(code) { - effects.enter('literalAutolinkPunctuation'); - // Always a valid trailing punctuation marker. effects.consume(code); return after } + /** @type {State} */ function after(code) { // Check the next. if (trailingPunctuation(code)) { effects.consume(code); return after - } - - // If the punctuation marker is followed by the end of the path, it’s not + } // If the punctuation marker is followed by the end of the path, it’s not // continued punctuation. - effects.exit('literalAutolinkPunctuation'); + return pathEnd(code) ? ok(code) : nok(code) } } +/** + * @param {Code} code + * @returns {boolean} + */ function trailingPunctuation(code) { return ( - // `!` code === 33 || - // `"` code === 34 || - // `'` code === 39 || - // `)` code === 41 || - // `*` code === 42 || - // `,` code === 44 || - // `.` code === 46 || - // `:` code === 58 || - // `;` code === 59 || - // `<` code === 60 || - // `?` code === 63 || - // `_`. code === 95 || - // `~` code === 126 ) } +/** + * @param {Code} code + * @returns {boolean} + */ function pathEnd(code) { - return ( - // EOF. - code === null || - // CR, LF, CRLF, HT, VS. - code < 0 || - // Space. - code === 32 || - // `<` - code === 60 - ) + return code === null || code === 60 || markdownLineEndingOrSpace(code) } +/** + * @param {Code} code + * @returns {boolean} + */ function gfmAtext(code) { return ( - // `+` code === 43 || - // `-` code === 45 || - // `.` code === 46 || - // `_` code === 95 || - asciiAlphanumeric_1(code) + asciiAlphanumeric(code) ) } +/** @type {Previous} */ -function previous$1(code) { +function previousWww(code) { return ( - // EOF. code === null || - // CR, LF, CRLF, HT, VS. - code < 0 || - // Space. - code === 32 || - // `(` code === 40 || - // `*` code === 42 || - // `_`. code === 95 || - // `~` - code === 126 + code === 126 || + markdownLineEndingOrSpace(code) ) } +/** @type {Previous} */ + +function previousHttp(code) { + return code === null || !asciiAlpha(code) +} +/** @type {Previous} */ -var syntax = { - text: text_1$3 +function previousEmail(code) { + return code !== 47 && previousHttp(code) +} +/** + * @param {Event[]} events + * @returns {boolean} + */ + +function previousUnbalanced(events) { + let index = events.length; + let result = false; + + while (index--) { + const token = events[index][1]; + + if ( + (token.type === 'labelLink' || token.type === 'labelImage') && + !token._balanced + ) { + result = true; + break + } // @ts-expect-error If we’ve seen this token, and it was marked as not + // having any unbalanced bracket before it, we can exit. + + if (token._gfmAutolinkLiteralWalkedInto) { + result = false; + break + } + } + + if (events.length > 0 && !result) { + // @ts-expect-error Mark the last token as “walked into” w/o finding + // anything. + events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; + } + + return result +} + +const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}; + +/** + * Encode only the dangerous HTML characters. + * + * This ensures that certain characters which have special meaning in HTML are + * dealt with. + * Technically, we can skip `>` and `"` in many cases, but CM includes them. + * + * @param {string} value + * @returns {string} + */ +function encode(value) { + return value.replace(/["&<>]/g, replace) + + /** + * @param {string} value + * @returns {string} + */ + function replace(value) { + // @ts-expect-error Hush, it’s fine. + return '&' + characterReferences[value] + ';' + } +} + +/** + * Make a value safe for injection as a URL. + * + * This encodes unsafe characters with percent-encoding and skips already + * encoded sequences (see `normalizeUri` below). + * Further unsafe characters are encoded as character references (see + * `micromark-util-encode`). + * + * Then, a regex of allowed protocols can be given, in which case the URL is + * sanitized. + * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, + * or `/^https?$/i` for `img[src]`. + * If the URL includes an unknown protocol (one not matched by `protocol`, such + * as a dangerous example, `javascript:`), the value is ignored. + * + * @param {string|undefined} url + * @param {RegExp} [protocol] + * @returns {string} + */ +function sanitizeUri(url, protocol) { + const value = encode(normalizeUri(url || '')); + + if (!protocol) { + return value + } + + const colon = value.indexOf(':'); + const questionMark = value.indexOf('?'); + const numberSign = value.indexOf('#'); + const slash = value.indexOf('/'); + + if ( + // If there is no protocol, it’s relative. + colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol. + (slash > -1 && colon > slash) || + (questionMark > -1 && colon > questionMark) || + (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed. + protocol.test(value.slice(0, colon)) + ) { + return value + } + + return '' +} +/** + * Normalize a URL (such as used in definitions). + * + * Encode unsafe characters with percent-encoding, skipping already encoded + * sequences. + * + * @param {string} value + * @returns {string} + */ + +function normalizeUri(value) { + /** @type {string[]} */ + const result = []; + let index = -1; + let start = 0; + let skip = 0; + + while (++index < value.length) { + const code = value.charCodeAt(index); + /** @type {string} */ + + let replace = ''; // A correct percent encoded value. + + if ( + code === 37 && + asciiAlphanumeric(value.charCodeAt(index + 1)) && + asciiAlphanumeric(value.charCodeAt(index + 2)) + ) { + skip = 2; + } // ASCII. + else if (code < 128) { + if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) { + replace = String.fromCharCode(code); + } + } // Astral. + else if (code > 55295 && code < 57344) { + const next = value.charCodeAt(index + 1); // A correct surrogate pair. + + if (code < 56320 && next > 56319 && next < 57344) { + replace = String.fromCharCode(code, next); + skip = 1; + } // Lone surrogate. + else { + replace = '\uFFFD'; + } + } // Unicode. + else { + replace = String.fromCharCode(code); + } + + if (replace) { + result.push(value.slice(start, index), encodeURIComponent(replace)); + start = index + skip + 1; + replace = ''; + } + + if (skip) { + index += skip; + skip = 0; + } + } + + return result.join('') + value.slice(start) +} + +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-util-types').Handle} Handle + * @typedef {import('micromark-util-types').CompileContext} CompileContext + * @typedef {import('micromark-util-types').Token} Token + */ +/** @type {HtmlExtension} */ + +const gfmAutolinkLiteralHtml = { + exit: { + literalAutolinkEmail, + literalAutolinkHttp, + literalAutolinkWww + } }; +/** @type {Handle} */ -var micromarkExtensionGfmAutolinkLiteral = syntax; +function literalAutolinkWww(token) { + anchorFromToken.call(this, token, 'http://'); +} +/** @type {Handle} */ -var micromarkExtensionGfmStrikethrough = create$2; +function literalAutolinkEmail(token) { + anchorFromToken.call(this, token, 'mailto:'); +} +/** @type {Handle} */ +function literalAutolinkHttp(token) { + anchorFromToken.call(this, token); +} +/** + * @this CompileContext + * @param {Token} token + * @param {string} [protocol] + * @returns {void} + */ +function anchorFromToken(token, protocol) { + const url = this.sliceSerialize(token); + this.tag(''); + this.raw(this.encode(url)); + this.tag(''); +} +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + */ +/** @type {HtmlExtension} */ +const gfmStrikethroughHtml = { + enter: { + strikethrough() { + this.tag(''); + } + }, + exit: { + strikethrough() { + this.tag(''); + } + } +}; +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Event} Event + */ -function create$2(options) { - var settings = options || {}; - var single = settings.singleTilde; - var tokenizer = { +/** + * @param {Options} [options] + * @returns {Extension} + */ +function gfmStrikethrough(options = {}) { + let single = options.singleTilde; + const tokenizer = { tokenize: tokenizeStrikethrough, resolveAll: resolveAllStrikethrough }; @@ -51220,17 +58763,35 @@ function create$2(options) { single = true; } - return {text: {126: tokenizer}, insideSpan: {null: tokenizer}} + return { + text: { + [126]: tokenizer + }, + insideSpan: { + null: [tokenizer] + } + } + /** + * Take events and resolve strikethrough. + * + * @type {Resolver} + */ - // Take events and resolve strikethrough. function resolveAllStrikethrough(events, context) { - var index = -1; - var strikethrough; - var text; - var open; - var nextEvents; + let index = -1; + /** @type {Token} */ + + let strikethrough; + /** @type {Token} */ + + let text; + /** @type {number} */ + + let open; + /** @type {Event[]} */ + + let nextEvents; // Walk through all events. - // Walk through all events. while (++index < events.length) { // Find a token that can close. if ( @@ -51238,64 +58799,55 @@ function create$2(options) { events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close ) { - open = index; + open = index; // Now walk back to find an opener. - // Now walk back to find an opener. while (open--) { // Find a token that can open the closer. if ( events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && - events[open][1]._open && - // If the sizes are the same: + events[open][1]._open && // If the sizes are the same: events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset ) { events[index][1].type = 'strikethroughSequence'; events[open][1].type = 'strikethroughSequence'; - strikethrough = { type: 'strikethrough', - start: shallow_1(events[open][1].start), - end: shallow_1(events[index][1].end) + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[index][1].end) }; - text = { type: 'strikethroughText', - start: shallow_1(events[open][1].end), - end: shallow_1(events[index][1].start) - }; + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index][1].start) + }; // Opening. - // Opening. nextEvents = [ ['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context] - ]; + ]; // Between. - // Between. - chunkedSplice_1( + splice( nextEvents, nextEvents.length, 0, - resolveAll_1( + resolveAll( context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context ) - ); + ); // Closing. - // Closing. - chunkedSplice_1(nextEvents, nextEvents.length, 0, [ + splice(nextEvents, nextEvents.length, 0, [ ['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context] ]); - - chunkedSplice_1(events, open - 1, index - open + 3, nextEvents); - + splice(events, open - 1, index - open + 3, nextEvents); index = open + nextEvents.length - 2; break } @@ -51303,14 +58855,9 @@ function create$2(options) { } } - return removeRemainingSequences(events) - } - - function removeRemainingSequences(events) { - var index = -1; - var length = events.length; + index = -1; - while (++index < length) { + while (++index < events.length) { if (events[index][1].type === 'strikethroughSequenceTemporary') { events[index][1].type = 'data'; } @@ -51318,13 +58865,14 @@ function create$2(options) { return events } + /** @type {Tokenizer} */ function tokenizeStrikethrough(effects, ok, nok) { - var previous = this.previous; - var events = this.events; - var size = 0; - + const previous = this.previous; + const events = this.events; + let size = 0; return start + /** @type {State} */ function start(code) { if ( @@ -51338,11 +58886,10 @@ function create$2(options) { effects.enter('strikethroughSequenceTemporary'); return more(code) } + /** @type {State} */ function more(code) { - var before = classifyCharacter_1(previous); - var token; - var after; + const before = classifyCharacter(previous); if (code === 126) { // If this is the third marker, exit. @@ -51353,39 +58900,226 @@ function create$2(options) { } if (size < 2 && !single) return nok(code) - token = effects.exit('strikethroughSequenceTemporary'); - after = classifyCharacter_1(code); - token._open = !after || (after === 2 && before); - token._close = !before || (before === 2 && after); + const token = effects.exit('strikethroughSequenceTemporary'); + const after = classifyCharacter(code); + token._open = !after || (after === 2 && Boolean(before)); + token._close = !before || (before === 2 && Boolean(after)); return ok(code) } } } -var flow$3 = { - null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true} +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + */ + +/** + * @typedef {import('./syntax.js').Align} Align + */ +const alignment = { + null: '', + left: ' align="left"', + right: ' align="right"', + center: ' align="center"' }; +/** @type {HtmlExtension} */ +const gfmTableHtml = { + enter: { + table(token) { + this.lineEndingIfNeeded(); + this.tag(''); // @ts-expect-error Custom. + this.setData('tableAlign', token._align); + }, + + tableBody() { + // Clear slurping line ending from the delimiter row. + this.setData('slurpOneLineEnding'); + this.tag(''); + }, -var setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}; -var nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}; + tableData() { + /** @type {string|undefined} */ + const align = // @ts-expect-error Custom. + alignment[this.getData('tableAlign')[this.getData('tableColumn')]]; + + if (align === undefined) { + // Capture results to ignore them. + this.buffer(); + } else { + this.lineEndingIfNeeded(); + this.tag(''); + } + }, + + tableHead() { + this.lineEndingIfNeeded(); + this.tag(''); + }, + + tableHeader() { + this.lineEndingIfNeeded(); + this.tag( + '' + ); + }, + + tableRow() { + this.setData('tableColumn', 0); + this.lineEndingIfNeeded(); + this.tag(''); + } + }, + exit: { + // Overwrite the default code text data handler to unescape escaped pipes when + // they are in tables. + codeTextData(token) { + let value = this.sliceSerialize(token); + + if (this.getData('tableAlign')) { + value = value.replace(/\\([\\|])/g, replace$1); + } + + this.raw(this.encode(value)); + }, + + table() { + this.setData('tableAlign'); // If there was no table body, make sure the slurping from the delimiter row + // is cleared. + + this.setData('slurpAllLineEndings'); + this.lineEndingIfNeeded(); + this.tag('
    '); + }, + + tableBody() { + this.lineEndingIfNeeded(); + this.tag(''); + }, + + tableData() { + /** @type {number} */ + // @ts-expect-error Custom. + const column = this.getData('tableColumn'); // @ts-expect-error Custom. + + if (column in this.getData('tableAlign')) { + this.tag(''); + this.setData('tableColumn', column + 1); + } else { + // Stop capturing. + this.resume(); + } + }, + + tableHead() { + this.lineEndingIfNeeded(); + this.tag(''); + this.setData('slurpOneLineEnding', true); // Slurp the line ending from the delimiter row. + }, + + tableHeader() { + this.tag(''); // @ts-expect-error Custom. + + this.setData('tableColumn', this.getData('tableColumn') + 1); + }, + + tableRow() { + /** @type {Align[]} */ + // @ts-expect-error Custom. + const align = this.getData('tableAlign'); + /** @type {number} */ + // @ts-expect-error Custom. + + let column = this.getData('tableColumn'); + + while (column < align.length) { + this.lineEndingIfNeeded(); // @ts-expect-error `null` is fine as an index. + + this.tag(''); + column++; + } + + this.setData('tableColumn', column); + this.lineEndingIfNeeded(); + this.tag(''); + } + } +}; +/** + * @param {string} $0 + * @param {string} $1 + * @returns {string} + */ + +function replace$1($0, $1) { + // Pipes work, backslashes don’t (but can’t escape pipes). + return $1 === '|' ? $1 : $0 +} + +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Token} Token + */ + +/** @type {Extension} */ +const gfmTable = { + flow: { + null: { + tokenize: tokenizeTable, + resolve: resolveTable + } + } +}; +const setextUnderlineMini = { + tokenize: tokenizeSetextUnderlineMini, + partial: true +}; +const nextPrefixedOrBlank = { + tokenize: tokenizeNextPrefixedOrBlank, + partial: true +}; +/** @type {Resolver} */ function resolveTable(events, context) { - var length = events.length; - var index = -1; - var token; - var inHead; - var inDelimiterRow; - var inRow; - var cell; - var content; - var text; - var contentStart; - var contentEnd; - var cellStart; - - while (++index < length) { + let index = -1; + /** @type {Token} */ + + let token; + /** @type {boolean|undefined} */ + + let inHead; + /** @type {boolean|undefined} */ + + let inDelimiterRow; + /** @type {boolean|undefined} */ + + let inRow; + /** @type {Token} */ + + let cell; + /** @type {Token} */ + + let content; + /** @type {Token} */ + + let text; + /** @type {number|undefined} */ + + let contentStart; + /** @type {number|undefined} */ + + let contentEnd; + /** @type {number|undefined} */ + + let cellStart; + + while (++index < events.length) { token = events[index][1]; if (inRow) { @@ -51401,6 +59135,7 @@ function resolveTable(events, context) { ) { content = { type: 'tableContent', + // @ts-expect-error `contentStart` is defined if `contentEnd` is too. start: events[contentStart][1].start, end: events[contentEnd][1].end }; @@ -51408,19 +59143,20 @@ function resolveTable(events, context) { type: 'chunkText', start: content.start, end: content.end, + // @ts-expect-error It’s fine. contentType: 'text' }; - events.splice( - contentStart, + // @ts-expect-error `contentStart` is defined if `contentEnd` is too. + contentStart, // @ts-expect-error `contentStart` is defined if `contentEnd` is too. contentEnd - contentStart + 1, ['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context] - ); + ); // @ts-expect-error `contentStart` is defined if `contentEnd` is too. + index -= contentEnd - contentStart - 3; - length = events.length; contentStart = undefined; contentEnd = undefined; } @@ -51428,9 +59164,12 @@ function resolveTable(events, context) { if ( events[index][0] === 'exit' && - (token.type === 'tableCellDivider' || token.type === 'tableRow') && cellStart && - cellStart + 1 < index + cellStart + 1 < index && + (token.type === 'tableCellDivider' || + (token.type === 'tableRow' && + (cellStart + 3 < index || + events[cellStart][1].type !== 'whitespace'))) ) { cell = { type: inDelimiterRow @@ -51448,7 +59187,6 @@ function resolveTable(events, context) { ]); events.splice(cellStart, 0, ['enter', cell, context]); index += 2; - length = events.length; cellStart = index + 1; } @@ -51475,53 +59213,55 @@ function resolveTable(events, context) { return events } +/** @type {Tokenizer} */ function tokenizeTable(effects, ok, nok) { - var align = []; - var tableHeaderCount = 0; - var seenDelimiter; - var hasDash; + const self = this; + /** @type {Align[]} */ + + const align = []; + let tableHeaderCount = 0; + /** @type {boolean|undefined} */ + + let seenDelimiter; + /** @type {boolean|undefined} */ + let hasDash; return start + /** @type {State} */ function start(code) { - /* istanbul ignore if - used to be passed in beta micromark versions. */ - if (code === null || code === -5 || code === -4 || code === -3) { - return nok(code) - } - + // @ts-expect-error Custom. effects.enter('table')._align = align; effects.enter('tableHead'); - effects.enter('tableRow'); + effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. - // If we start with a pipe, we open a cell marker. if (code === 124) { return cellDividerHead(code) } tableHeaderCount++; - effects.enter('temporaryTableCellContent'); - // Can’t be space or eols at the start of a construct, so we’re in a cell. + effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. + return inCellContentHead(code) } + /** @type {State} */ function cellDividerHead(code) { - // Always a pipe. effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); seenDelimiter = true; return cellBreakHead } + /** @type {State} */ function cellBreakHead(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { + if (code === null || markdownLineEnding(code)) { return atRowEndHead(code) } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceHead @@ -51532,19 +59272,17 @@ function tokenizeTable(effects, ok, nok) { tableHeaderCount++; } - // `|` if (code === 124) { return cellDividerHead(code) - } + } // Anything else is cell content. - // Anything else is cell content. effects.enter('temporaryTableCellContent'); return inCellContentHead(code) } + /** @type {State} */ function inWhitespaceHead(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.consume(code); return inWhitespaceHead } @@ -51552,29 +59290,29 @@ function tokenizeTable(effects, ok, nok) { effects.exit('whitespace'); return cellBreakHead(code) } + /** @type {State} */ function inCellContentHead(code) { // EOF, whitespace, pipe - if (code === null || code < 0 || code === 32 || code === 124) { + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { effects.exit('temporaryTableCellContent'); return cellBreakHead(code) } effects.consume(code); - // `\` return code === 92 ? inCellContentEscapeHead : inCellContentHead } + /** @type {State} */ function inCellContentEscapeHead(code) { - // `\` or `|` if (code === 92 || code === 124) { effects.consume(code); return inCellContentHead - } + } // Anything else. - // Anything else. return inCellContentHead(code) } + /** @type {State} */ function atRowEndHead(code) { if (code === null) { @@ -51583,45 +59321,49 @@ function tokenizeTable(effects, ok, nok) { effects.exit('tableRow'); effects.exit('tableHead'); + return effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + atDelimiterLineStart, + nok + )(code) + } + /** @type {State} */ - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - - // If a setext heading, exit. + function atDelimiterLineStart(code) { + // To do: is the lazy setext thing still needed? return effects.check( setextUnderlineMini, - nok, - // Support an indent before the delimiter row. + nok, // Support an indent before the delimiter row. factorySpace(effects, rowStartDelimiter, 'linePrefix', 4) - ) + )(code) } + /** @type {State} */ function rowStartDelimiter(code) { // If there’s another space, or we’re at the EOL/EOF, exit. - if (code === null || code < 0 || code === 32) { + if (code === null || markdownLineEndingOrSpace(code)) { return nok(code) } effects.enter('tableDelimiterRow'); return atDelimiterRowBreak(code) } + /** @type {State} */ function atDelimiterRowBreak(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { + if (code === null || markdownLineEnding(code)) { return rowEndDelimiter(code) } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceDelimiter } - // `-` if (code === 45) { effects.enter('tableDelimiterFiller'); effects.consume(code); @@ -51630,16 +59372,14 @@ function tokenizeTable(effects, ok, nok) { return inFillerDelimiter } - // `:` if (code === 58) { effects.enter('tableDelimiterAlignment'); effects.consume(code); effects.exit('tableDelimiterAlignment'); align.push('left'); return afterLeftAlignment - } + } // If we start with a pipe, we open a cell marker. - // If we start with a pipe, we open a cell marker. if (code === 124) { effects.enter('tableCellDivider'); effects.consume(code); @@ -51649,10 +59389,10 @@ function tokenizeTable(effects, ok, nok) { return nok(code) } + /** @type {State} */ function inWhitespaceDelimiter(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.consume(code); return inWhitespaceDelimiter } @@ -51660,9 +59400,9 @@ function tokenizeTable(effects, ok, nok) { effects.exit('whitespace'); return atDelimiterRowBreak(code) } + /** @type {State} */ function inFillerDelimiter(code) { - // `-` if (code === 45) { effects.consume(code); return inFillerDelimiter @@ -51670,48 +59410,42 @@ function tokenizeTable(effects, ok, nok) { effects.exit('tableDelimiterFiller'); - // `:` if (code === 58) { effects.enter('tableDelimiterAlignment'); effects.consume(code); effects.exit('tableDelimiterAlignment'); - align[align.length - 1] = align[align.length - 1] === 'left' ? 'center' : 'right'; - return afterRightAlignment } return atDelimiterRowBreak(code) } + /** @type {State} */ function afterLeftAlignment(code) { - // `-` if (code === 45) { effects.enter('tableDelimiterFiller'); effects.consume(code); hasDash = true; return inFillerDelimiter - } + } // Anything else is not ok. - // Anything else is not ok. return nok(code) } + /** @type {State} */ function afterRightAlignment(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { + if (code === null || markdownLineEnding(code)) { return rowEndDelimiter(code) } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceDelimiter - } + } // `|` - // `|` if (code === 124) { effects.enter('tableCellDivider'); effects.consume(code); @@ -51721,12 +59455,12 @@ function tokenizeTable(effects, ok, nok) { return nok(code) } + /** @type {State} */ function rowEndDelimiter(code) { - effects.exit('tableDelimiterRow'); - - // Exit if there was no dash at all, or if the header cell count is not the + effects.exit('tableDelimiterRow'); // Exit if there was no dash at all, or if the header cell count is not the // delimiter cell count. + if (!hasDash || tableHeaderCount !== align.length) { return nok(code) } @@ -51735,76 +59469,76 @@ function tokenizeTable(effects, ok, nok) { return tableClose(code) } - return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code) + return effects.check( + nextPrefixedOrBlank, + tableClose, + effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + factorySpace(effects, bodyStart, 'linePrefix', 4), + tableClose + ) + )(code) } + /** @type {State} */ function tableClose(code) { effects.exit('table'); return ok(code) } - - function tableContinue(code) { - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - // We checked that it’s not a prefixed or blank line, so we’re certain a - // body is coming, though it may be indented. - return factorySpace(effects, bodyStart, 'linePrefix', 4) - } + /** @type {State} */ function bodyStart(code) { effects.enter('tableBody'); return rowStartBody(code) } + /** @type {State} */ function rowStartBody(code) { - effects.enter('tableRow'); + effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. - // If we start with a pipe, we open a cell marker. if (code === 124) { return cellDividerBody(code) } - effects.enter('temporaryTableCellContent'); - // Can’t be space or eols at the start of a construct, so we’re in a cell. + effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. + return inCellContentBody(code) } + /** @type {State} */ function cellDividerBody(code) { - // Always a pipe. effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); return cellBreakBody } + /** @type {State} */ function cellBreakBody(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { + if (code === null || markdownLineEnding(code)) { return atRowEndBody(code) } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceBody - } + } // `|` - // `|` if (code === 124) { return cellDividerBody(code) - } + } // Anything else is cell content. - // Anything else is cell content. effects.enter('temporaryTableCellContent'); return inCellContentBody(code) } + /** @type {State} */ function inWhitespaceBody(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { + if (markdownSpace(code)) { effects.consume(code); return inWhitespaceBody } @@ -51812,29 +59546,29 @@ function tokenizeTable(effects, ok, nok) { effects.exit('whitespace'); return cellBreakBody(code) } + /** @type {State} */ function inCellContentBody(code) { // EOF, whitespace, pipe - if (code === null || code < 0 || code === 32 || code === 124) { + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { effects.exit('temporaryTableCellContent'); return cellBreakBody(code) } effects.consume(code); - // `\` return code === 92 ? inCellContentEscapeBody : inCellContentBody } + /** @type {State} */ function inCellContentEscapeBody(code) { - // `\` or `|` if (code === 92 || code === 124) { effects.consume(code); return inCellContentBody - } + } // Anything else. - // Anything else. return inCellContentBody(code) } + /** @type {State} */ function atRowEndBody(code) { effects.exit('tableRow'); @@ -51846,33 +59580,51 @@ function tokenizeTable(effects, ok, nok) { return effects.check( nextPrefixedOrBlank, tableBodyClose, - tableBodyContinue + effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + factorySpace(effects, rowStartBody, 'linePrefix', 4), + tableBodyClose + ) )(code) } + /** @type {State} */ function tableBodyClose(code) { effects.exit('tableBody'); return tableClose(code) } + /** @type {Tokenizer} */ - function tableBodyContinue(code) { - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - // Support an optional prefix, then start a body row. - return factorySpace(effects, rowStartBody, 'linePrefix', 4) - } -} + function tokenizeRowEnd(effects, ok, nok) { + return start + /** @type {State} */ -// Based on micromark, but that won’t work as we’re in a table, and that expects + function start(code) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return lineStart + } + /** @type {State} */ + + function lineStart(code) { + return self.parser.lazy[self.now().line] ? nok(code) : ok(code) + } + } +} // Based on micromark, but that won’t work as we’re in a table, and that expects // content. // + +/** @type {Tokenizer} */ + function tokenizeSetextUnderlineMini(effects, ok, nok) { return start + /** @type {State} */ function start(code) { - // `-` if (code !== 45) { return nok(code) } @@ -51880,6 +59632,7 @@ function tokenizeSetextUnderlineMini(effects, ok, nok) { effects.enter('setextUnderline'); return sequence(code) } + /** @type {State} */ function sequence(code) { if (code === 45) { @@ -51889,75 +59642,149 @@ function tokenizeSetextUnderlineMini(effects, ok, nok) { return whitespace(code) } + /** @type {State} */ function whitespace(code) { - if (code === -2 || code === -1 || code === 32) { - effects.consume(code); - return whitespace + if (code === null || markdownLineEnding(code)) { + return ok(code) } - if (code === null || code === -5 || code === -4 || code === -3) { - return ok(code) + if (markdownSpace(code)) { + effects.consume(code); + return whitespace } return nok(code) } } +/** @type {Tokenizer} */ function tokenizeNextPrefixedOrBlank(effects, ok, nok) { - var size = 0; - + let size = 0; return start + /** @type {State} */ function start(code) { // This is a check, so we don’t care about tokens, but we open a bogus one // so we’re valid. - effects.enter('check'); - // EOL. + effects.enter('check'); // EOL. + effects.consume(code); return whitespace } + /** @type {State} */ function whitespace(code) { - // VS or SP. if (code === -1 || code === 32) { effects.consume(code); size++; return size === 4 ? ok : whitespace - } + } // EOF or whitespace - // EOF or whitespace - if (code === null || code < 0) { + if (code === null || markdownLineEndingOrSpace(code)) { return ok(code) - } + } // Anything else. - // Anything else. return nok(code) } } -var syntax$1 = { - flow: flow$3 +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').CompileContext} CompileContext + */ + +/** + * An opening or closing tag, followed by a case-insensitive specific tag name, + * followed by HTML whitespace, a greater than, or a slash. + */ +const reFlow = + /<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi; + +/** + * As HTML (text) parses tags separately (and v. strictly), we don’t need to be + * global. + */ +const reText = new RegExp('^' + reFlow.source, 'i'); + +/** @type {HtmlExtension} */ +const gfmTagfilterHtml = { + exit: { + htmlFlowData(token) { + exitHtmlData.call(this, token, reFlow); + }, + htmlTextData(token) { + exitHtmlData.call(this, token, reText); + } + } }; -var micromarkExtensionGfmTable = syntax$1; +/** + * @this {CompileContext} + * @param {Token} token + * @param {RegExp} filter + */ +function exitHtmlData(token, filter) { + let value = this.sliceSerialize(token); -var tasklistCheck = {tokenize: tokenizeTasklistCheck}; + if (this.options.allowDangerousHtml) { + value = value.replace(filter, '<$1$2'); + } -var text$5 = {91: tasklistCheck}; + this.raw(this.encode(value)); +} -function tokenizeTasklistCheck(effects, ok, nok) { - var self = this; +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + */ + +/** @type {HtmlExtension} */ +const gfmTaskListItemHtml = { + enter: { + taskListCheck() { + this.tag(''); + }, + + taskListCheckValueChecked() { + this.tag('checked="" '); + } + } +}; + +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Previous} Previous + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Code} Code + */ +const tasklistCheck = { + tokenize: tokenizeTasklistCheck +}; +const gfmTaskListItem = { + text: { + [91]: tasklistCheck + } +}; +/** @type {Tokenizer} */ +function tokenizeTasklistCheck(effects, ok, nok) { + const self = this; return open + /** @type {State} */ function open(code) { if ( - // Exit if not `[`. - code !== 91 || // Exit if there’s stuff before. - self.previous !== null || - // Exit if not in the first content that is the first child of a list + self.previous !== null || // Exit if not in the first content that is the first child of a list // item. !self._gfmTasklistFirstContentOfListItem ) { @@ -51970,17 +59797,16 @@ function tokenizeTasklistCheck(effects, ok, nok) { effects.exit('taskListCheckMarker'); return inside } + /** @type {State} */ function inside(code) { - // Tab or space. - if (code === -2 || code === 32) { + if (markdownSpace(code)) { effects.enter('taskListCheckValueUnchecked'); effects.consume(code); effects.exit('taskListCheckValueUnchecked'); return close } - // Upper- and lower `x`. if (code === 88 || code === 120) { effects.enter('taskListCheckValueChecked'); effects.consume(code); @@ -51990,386 +59816,839 @@ function tokenizeTasklistCheck(effects, ok, nok) { return nok(code) } + /** @type {State} */ function close(code) { - // `]` if (code === 93) { effects.enter('taskListCheckMarker'); effects.consume(code); effects.exit('taskListCheckMarker'); effects.exit('taskListCheck'); - return effects.check({tokenize: spaceThenNonSpace}, ok, nok) + return effects.check( + { + tokenize: spaceThenNonSpace + }, + ok, + nok + ) } return nok(code) } } +/** @type {Tokenizer} */ function spaceThenNonSpace(effects, ok, nok) { - var self = this; - + const self = this; return factorySpace(effects, after, 'whitespace') + /** @type {State} */ function after(code) { - return prefixSize_1(self.events, 'whitespace') && + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'whitespace' && code !== null && - !markdownLineEndingOrSpace_1(code) + !markdownLineEndingOrSpace(code) ? ok(code) : nok(code) } } -var syntax$2 = { - text: text$5 -}; +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options + */ + +/** + * Support GFM or markdown on github.com. + * + * @param {Options} [options] + * @returns {Extension} + */ +function gfm(options) { + return combineExtensions([ + gfmAutolinkLiteral, + gfmStrikethrough(options), + gfmTable, + gfmTaskListItem + ]) +} + +/** @type {HtmlExtension} */ +combineHtmlExtensions([ + gfmAutolinkLiteralHtml, + gfmStrikethroughHtml, + gfmTableHtml, + gfmTagfilterHtml, + gfmTaskListItemHtml +]); + +/** + * Get the total count of `character` in `value`. + * + * @param {any} value Content, coerced to string + * @param {string} character Single character to look for + * @return {number} Number of times `character` occurred in `value`. + */ +function ccount(value, character) { + var source = String(value); + var count = 0; + var index; + + if (typeof character !== 'string') { + throw new Error('Expected character') + } + + index = source.indexOf(character); + + while (index !== -1) { + count++; + index = source.indexOf(character, index + character.length); + } + + return count +} + +/** + * @param {string} d + * @returns {string} + */ +function color(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ + +/** + * Continue traversing as normal + */ +const CONTINUE = true; +/** + * Do not traverse this node’s children + */ +const SKIP = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT = false; + +const visitParents = + /** + * @type {( + * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) + * )} + */ + ( + /** + * Visit children of tree which pass a test + * + * @param {Node} tree Abstract syntax tree to walk + * @param {Test} test test Test node + * @param {Visitor} visitor Function to run for each node + * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-ignore no visitor given, so `visitor` is test. + visitor = test; + test = null; + } + + var is = convert(test); + var step = reverse ? -1 : 1; + + factory(tree, null, [])(); + + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + var value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string} */ + 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(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } + + return visit + + function visit() { + /** @type {ActionTuple} */ + var result = []; + /** @type {ActionTuple} */ + var subresult; + /** @type {number} */ + var offset; + /** @type {Array.} */ + 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) { + // @ts-ignore looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-ignore looks like a parent. + grandparents = parents.concat(node); + + // @ts-ignore looks like a parent. + 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 + } + } + } + ); + +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult(value) { + if (Array.isArray(value)) { + return value + } + + if (typeof value === 'number') { + return [CONTINUE, value] + } + + return [value] +} + +/** + * @typedef Options Configuration. + * @property {Test} [ignore] `unist-util-is` test used to assert parents + * + * @typedef {import('mdast').Root} Root + * @typedef {import('mdast').Content} Content + * @typedef {import('mdast').PhrasingContent} PhrasingContent + * @typedef {import('mdast').Text} Text + * @typedef {Content|Root} Node + * @typedef {Extract} Parent + * + * @typedef {import('unist-util-visit-parents').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + * + * @typedef RegExpMatchObject + * @property {number} index + * @property {string} input + * + * @typedef {string|RegExp} Find + * @typedef {string|ReplaceFunction} Replace + * + * @typedef {[Find, Replace]} FindAndReplaceTuple + * @typedef {Object.} FindAndReplaceSchema + * @typedef {Array.} FindAndReplaceList + * + * @typedef {[RegExp, ReplaceFunction]} Pair + * @typedef {Array.} Pairs + */ + +const own = {}.hasOwnProperty; + +/** + * @param tree mdast tree + * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp` + * @param [replace] Value to insert. + * * When `string`, turned into a Text node. + * * When `Function`, called with the results of calling `RegExp.exec` as + * arguments, in which case it can return a single or a list of `Node`, + * a `string` (which is wrapped in a `Text` node), or `false` to not replace + * @param [options] Configuration. + */ +const findAndReplace = + /** + * @type {( + * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) & + * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node) + * )} + **/ + ( + /** + * @param {Node} tree + * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find + * @param {Replace|Options} [replace] + * @param {Options} [options] + */ + function (tree, find, replace, options) { + /** @type {Options|undefined} */ + let settings; + /** @type {FindAndReplaceSchema|FindAndReplaceList} */ + let schema; + + if (typeof find === 'string' || find instanceof RegExp) { + // @ts-expect-error don’t expect options twice. + schema = [[find, replace]]; + settings = options; + } else { + schema = find; + // @ts-expect-error don’t expect replace twice. + settings = replace; + } + + if (!settings) { + settings = {}; + } + + const ignored = convert(settings.ignore || []); + const pairs = toPairs(schema); + let pairIndex = -1; + + while (++pairIndex < pairs.length) { + visitParents(tree, 'text', visitor); + } + + return tree + + /** @type {import('unist-util-visit-parents').Visitor} */ + function visitor(node, parents) { + let index = -1; + /** @type {Parent|undefined} */ + let grandparent; + + while (++index < parents.length) { + const parent = /** @type {Parent} */ (parents[index]); + + if ( + ignored( + parent, + // @ts-expect-error mdast vs. unist parent. + grandparent ? grandparent.children.indexOf(parent) : undefined, + grandparent + ) + ) { + return + } + + grandparent = parent; + } + + if (grandparent) { + return handler(node, grandparent) + } + } + + /** + * @param {Text} node + * @param {Parent} parent + * @returns {VisitorResult} + */ + function handler(node, parent) { + const find = pairs[pairIndex][0]; + const replace = pairs[pairIndex][1]; + let start = 0; + // @ts-expect-error: TS is wrong, some of these children can be text. + let index = parent.children.indexOf(node); + /** @type {Array.} */ + let nodes = []; + /** @type {number|undefined} */ + let position; + + find.lastIndex = 0; + + let match = find.exec(node.value); + + while (match) { + position = match.index; + // @ts-expect-error this is perfectly fine, typescript. + let value = replace(...match, { + index: match.index, + input: match.input + }); -var micromarkExtensionGfmTaskListItem = syntax$2; + if (typeof value === 'string') { + value = value.length > 0 ? {type: 'text', value} : undefined; + } + + if (value !== false) { + if (start !== position) { + nodes.push({ + type: 'text', + value: node.value.slice(start, position) + }); + } + + if (Array.isArray(value)) { + nodes.push(...value); + } else if (value) { + nodes.push(value); + } + + start = position + match[0].length; + } + + if (!find.global) { + break + } + + match = find.exec(node.value); + } + + 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 + } + } + ); + +/** + * @param {FindAndReplaceSchema|FindAndReplaceList} schema + * @returns {Pairs} + */ +function toPairs(schema) { + /** @type {Pairs} */ + const result = []; + + if (typeof schema !== 'object') { + throw new TypeError('Expected array or object as schema') + } + + if (Array.isArray(schema)) { + let index = -1; + + while (++index < schema.length) { + result.push([ + toExpression(schema[index][0]), + toFunction(schema[index][1]) + ]); + } + } else { + /** @type {string} */ + let key; -var syntax$3 = create$3; + for (key in schema) { + if (own.call(schema, key)) { + result.push([toExpression(key), toFunction(schema[key])]); + } + } + } + + return result +} + +/** + * @param {Find} find + * @returns {RegExp} + */ +function toExpression(find) { + return typeof find === 'string' ? new RegExp(escapeStringRegexp(find), 'g') : find +} -function create$3(options) { - return combineExtensions_1([micromarkExtensionGfmAutolinkLiteral, micromarkExtensionGfmStrikethrough(options), micromarkExtensionGfmTable, micromarkExtensionGfmTaskListItem]) +/** + * @param {Replace} replace + * @returns {ReplaceFunction} + */ +function toFunction(replace) { + return typeof replace === 'function' ? replace : () => replace } -var micromarkExtensionGfm = syntax$3; +/** + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension + * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction + * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject + * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent + */ -var enter = { - literalAutolink: enterLiteralAutolink, - literalAutolinkEmail: enterLiteralAutolinkValue, - literalAutolinkHttp: enterLiteralAutolinkValue, - literalAutolinkWww: enterLiteralAutolinkValue +const inConstruct = 'phrasing'; +const notInConstruct = ['autolink', 'link', 'image', 'label']; + +/** @type {FromMarkdownExtension} */ +const gfmAutolinkLiteralFromMarkdown = { + transforms: [transformGfmAutolinkLiterals], + enter: { + literalAutolink: enterLiteralAutolink, + literalAutolinkEmail: enterLiteralAutolinkValue, + literalAutolinkHttp: enterLiteralAutolinkValue, + literalAutolinkWww: enterLiteralAutolinkValue + }, + exit: { + literalAutolink: exitLiteralAutolink, + literalAutolinkEmail: exitLiteralAutolinkEmail, + literalAutolinkHttp: exitLiteralAutolinkHttp, + literalAutolinkWww: exitLiteralAutolinkWww + } }; -var exit$1 = { - literalAutolink: exitLiteralAutolink, - literalAutolinkEmail: exitLiteralAutolinkEmail, - literalAutolinkHttp: exitLiteralAutolinkHttp, - literalAutolinkWww: exitLiteralAutolinkWww + +/** @type {ToMarkdownExtension} */ +const gfmAutolinkLiteralToMarkdown = { + unsafe: [ + { + character: '@', + before: '[+\\-.\\w]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + { + character: '.', + before: '[Ww]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + {character: ':', before: '[ps]', after: '\\/', inConstruct, notInConstruct} + ] }; +/** @type {FromMarkdownHandle} */ function enterLiteralAutolink(token) { + // @ts-expect-error: `null` is fine. this.enter({type: 'link', title: null, url: '', children: []}, token); } +/** @type {FromMarkdownHandle} */ function enterLiteralAutolinkValue(token) { this.config.enter.autolinkProtocol.call(this, token); } +/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkHttp(token) { this.config.exit.autolinkProtocol.call(this, token); } +/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkWww(token) { this.config.exit.data.call(this, token); this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token); } +/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkEmail(token) { this.config.exit.autolinkEmail.call(this, token); } +/** @type {FromMarkdownHandle} */ function exitLiteralAutolink(token) { this.exit(token); } -var fromMarkdown$1 = { - enter: enter, - exit: exit$1 -}; - -var canContainEols = ['delete']; -var enter$1 = {strikethrough: enterStrikethrough}; -var exit$2 = {strikethrough: exitStrikethrough}; - -function enterStrikethrough(token) { - this.enter({type: 'delete', children: []}, token); -} - -function exitStrikethrough(token) { - this.exit(token); +/** @type {FromMarkdownTransform} */ +function transformGfmAutolinkLiterals(tree) { + findAndReplace( + tree, + [ + [/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/i, findUrl], + [/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/, findEmail] + ], + {ignore: ['link', 'linkReference']} + ); } -var fromMarkdown$2 = { - canContainEols: canContainEols, - enter: enter$1, - exit: exit$2 -}; - -var enter$2 = { - table: enterTable, - tableData: enterCell, - tableHeader: enterCell, - tableRow: enterRow -}; -var exit_1 = { - codeText: exitCodeText, - table: exitTable, - tableData: exit$3, - tableHeader: exit$3, - tableRow: exit$3 -}; +/** + * @type {ReplaceFunction} + * @param {string} _ + * @param {string} protocol + * @param {string} domain + * @param {string} path + * @param {RegExpMatchObject} match + */ +// eslint-disable-next-line max-params +function findUrl(_, protocol, domain, path, match) { + let prefix = ''; -function enterTable(token) { - this.enter({type: 'table', align: token._align, children: []}, token); - this.setData('inTable', true); -} + // Not an expected previous character. + if (!previous(match)) { + return false + } -function exitTable(token) { - this.exit(token); - this.setData('inTable'); -} + // Treat `www` as part of the domain. + if (/^w/i.test(protocol)) { + domain = protocol + domain; + protocol = ''; + prefix = 'http://'; + } -function enterRow(token) { - this.enter({type: 'tableRow', children: []}, token); -} + if (!isCorrectDomain(domain)) { + return false + } -function exit$3(token) { - this.exit(token); -} + const parts = splitUrl(domain + path); -function enterCell(token) { - this.enter({type: 'tableCell', children: []}, token); -} + if (!parts[0]) return false -// Overwrite the default code text data handler to unescape escaped pipes when -// they are in tables. -function exitCodeText(token) { - var value = this.resume(); + /** @type {PhrasingContent} */ + // @ts-expect-error: `null` is fine. + const result = { + type: 'link', + title: null, + url: prefix + protocol + parts[0], + children: [{type: 'text', value: protocol + parts[0]}] + }; - if (this.getData('inTable')) { - value = value.replace(/\\([\\|])/g, replace); + if (parts[1]) { + return [result, {type: 'text', value: parts[1]}] } - this.stack[this.stack.length - 1].value = value; - this.exit(token); -} - -function replace($0, $1) { - // Pipes work, backslashes don’t (but can’t escape pipes). - return $1 === '|' ? $1 : $0 + return result } -var fromMarkdown$3 = { - enter: enter$2, - exit: exit_1 -}; - -var exit$4 = { - taskListCheckValueChecked: exitCheck, - taskListCheckValueUnchecked: exitCheck, - paragraph: exitParagraphWithTaskListItem -}; +/** + * @type {ReplaceFunction} + * @param {string} _ + * @param {string} atext + * @param {string} label + * @param {RegExpMatchObject} match + */ +function findEmail(_, atext, label, match) { + // Not an expected previous character. + if (!previous(match, true) || /[_-]$/.test(label)) { + return false + } -function exitCheck(token) { - // We’re always in a paragraph, in a list item. - this.stack[this.stack.length - 2].checked = - token.type === 'taskListCheckValueChecked'; + return { + type: 'link', + // @ts-expect-error: `null` is fine. + title: null, + url: 'mailto:' + atext + '@' + label, + children: [{type: 'text', value: atext + '@' + label}] + } } -function exitParagraphWithTaskListItem(token) { - var parent = this.stack[this.stack.length - 2]; - var node = this.stack[this.stack.length - 1]; - var siblings = parent.children; - var head = node.children[0]; - var index = -1; - var firstParaghraph; +/** + * @param {string} domain + * @returns {boolean} + */ +function isCorrectDomain(domain) { + const parts = domain.split('.'); if ( - parent && - parent.type === 'listItem' && - typeof parent.checked === 'boolean' && - head && - head.type === 'text' + parts.length < 2 || + (parts[parts.length - 1] && + (/_/.test(parts[parts.length - 1]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 1]))) || + (parts[parts.length - 2] && + (/_/.test(parts[parts.length - 2]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 2]))) ) { - while (++index < siblings.length) { - if (siblings[index].type === 'paragraph') { - firstParaghraph = siblings[index]; - break - } - } - - if (firstParaghraph === node) { - // Must start with a space or a tab. - head.value = head.value.slice(1); - - if (head.value.length === 0) { - node.children.shift(); - } else { - head.position.start.column++; - head.position.start.offset++; - node.position.start = Object.assign({}, head.position.start); - } - } + return false } - this.exit(token); + return true } -var fromMarkdown$4 = { - exit: exit$4 -}; - -var own$6 = {}.hasOwnProperty; - -var fromMarkdown$5 = configure$4([ - fromMarkdown$1, - fromMarkdown$2, - fromMarkdown$3, - fromMarkdown$4 -]); +/** + * @param {string} url + * @returns {[string, string|undefined]} + */ +function splitUrl(url) { + const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); + /** @type {number} */ + let closingParenIndex; + /** @type {number} */ + let openingParens; + /** @type {number} */ + let closingParens; + /** @type {string|undefined} */ + let trail; -function configure$4(extensions) { - var config = {canContainEols: []}; - var length = extensions.length; - var index = -1; + if (trailExec) { + url = url.slice(0, trailExec.index); + trail = trailExec[0]; + closingParenIndex = trail.indexOf(')'); + openingParens = ccount(url, '('); + closingParens = ccount(url, ')'); - while (++index < length) { - extension$3(config, extensions[index]); + while (closingParenIndex !== -1 && openingParens > closingParens) { + url += trail.slice(0, closingParenIndex + 1); + trail = trail.slice(closingParenIndex + 1); + closingParenIndex = trail.indexOf(')'); + closingParens++; + } } - return config + return [url, trail] } -function extension$3(config, extension) { - var key; - var left; - var right; - - for (key in extension) { - left = own$6.call(config, key) ? config[key] : (config[key] = {}); - right = extension[key]; +/** + * @param {RegExpMatchObject} match + * @param {boolean} [email=false] + * @returns {boolean} + */ +function previous(match, email) { + const code = match.input.charCodeAt(match.index - 1); - if (key === 'canContainEols') { - config[key] = [].concat(left, right); - } else { - Object.assign(left, right); - } - } + return ( + (match.index === 0 || + unicodeWhitespace(code) || + unicodePunctuation(code)) && + (!email || code !== 47) + ) } -var inConstruct = 'phrasing'; -var notInConstruct = ['autolink', 'link', 'image', 'label']; - -var unsafe$1 = [ - { - character: '@', - before: '[+\\-.\\w]', - after: '[\\-.\\w]', - inConstruct: inConstruct, - notInConstruct: notInConstruct - }, - { - character: '.', - before: '[Ww]', - after: '[\\-.\\w]', - inConstruct: inConstruct, - notInConstruct: notInConstruct - }, - { - character: ':', - before: '[ps]', - after: '\\/', - inConstruct: inConstruct, - notInConstruct: notInConstruct - } -]; +/** + * @typedef {import('mdast').Delete} Delete + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + */ -var toMarkdown$1 = { - unsafe: unsafe$1 +/** @type {FromMarkdownExtension} */ +const gfmStrikethroughFromMarkdown = { + canContainEols: ['delete'], + enter: {strikethrough: enterStrikethrough}, + exit: {strikethrough: exitStrikethrough} }; -var unsafe$2 = [{character: '~', inConstruct: 'phrasing'}]; -var handlers = {delete: handleDelete}; +/** @type {ToMarkdownExtension} */ +const gfmStrikethroughToMarkdown = { + unsafe: [{character: '~', inConstruct: 'phrasing'}], + handlers: {delete: handleDelete} +}; handleDelete.peek = peekDelete; +/** @type {FromMarkdownHandle} */ +function enterStrikethrough(token) { + this.enter({type: 'delete', children: []}, token); +} + +/** @type {FromMarkdownHandle} */ +function exitStrikethrough(token) { + this.exit(token); +} + +/** + * @type {ToMarkdownHandle} + * @param {Delete} node + */ function handleDelete(node, _, context) { - var exit = context.enter('emphasis'); - var value = containerPhrasing(node, context, {before: '~', after: '~'}); + const exit = context.enter('emphasis'); + const value = containerPhrasing(node, context, {before: '~', after: '~'}); exit(); return '~~' + value + '~~' } +/** @type {ToMarkdownHandle} */ function peekDelete() { return '~' } -var toMarkdown$2 = { - unsafe: unsafe$2, - handlers: handlers -}; - -var markdownTable_1 = markdownTable; - -var trailingWhitespace = / +$/; - -// Characters. -var space = ' '; -var lineFeed = '\n'; -var dash$1 = '-'; -var colon$1 = ':'; -var verticalBar = '|'; - -var x = 0; -var C = 67; -var L$1 = 76; -var R = 82; -var c$1 = 99; -var l$1 = 108; -var r = 114; +/** + * @typedef MarkdownTableOptions + * @property {string|null|Array.} [align] + * @property {boolean} [padding=true] + * @property {boolean} [delimiterStart=true] + * @property {boolean} [delimiterStart=true] + * @property {boolean} [delimiterEnd=true] + * @property {boolean} [alignDelimiters=true] + * @property {(value: string) => number} [stringLength] + */ -// Create a table from a matrix of strings. +/** + * Create a table from a matrix of strings. + * + * @param {Array.>} table + * @param {MarkdownTableOptions} [options] + * @returns {string} + */ function markdownTable(table, options) { - var settings = options || {}; - var padding = settings.padding !== false; - var start = settings.delimiterStart !== false; - var end = settings.delimiterEnd !== false; - var align = (settings.align || []).concat(); - var alignDelimiters = settings.alignDelimiters !== false; - var alignments = []; - var stringLength = settings.stringLength || defaultStringLength; - var rowIndex = -1; - var rowLength = table.length; - var cellMatrix = []; - var sizeMatrix = []; - var row = []; - var sizes = []; - var longestCellByColumn = []; - var mostCellsPerRow = 0; - var cells; - var columnIndex; - var columnLength; - var largest; - var size; - var cell; - var lines; - var line; - var before; - var after; - var code; + const settings = options || {}; + const align = (settings.align || []).concat(); + const stringLength = settings.stringLength || defaultStringLength; + /** @type {number[]} Character codes as symbols for alignment per column. */ + const alignments = []; + let rowIndex = -1; + /** @type {string[][]} Cells per row. */ + const cellMatrix = []; + /** @type {number[][]} Sizes of each cell per row. */ + const sizeMatrix = []; + /** @type {number[]} */ + const longestCellByColumn = []; + let mostCellsPerRow = 0; + /** @type {number} */ + let columnIndex; + /** @type {string[]} Cells of current row */ + let row; + /** @type {number[]} Sizes of current row */ + let sizes; + /** @type {number} Sizes of current cell */ + let size; + /** @type {string} Current cell */ + let cell; + /** @type {string[]} Chunks of current line. */ + let line; + /** @type {string} */ + let before; + /** @type {string} */ + let after; + /** @type {number} */ + let code; // This is a superfluous loop if we don’t align delimiters, but otherwise we’d // do superfluous work when aligning, so optimize for aligning. - while (++rowIndex < rowLength) { - cells = table[rowIndex]; + while (++rowIndex < table.length) { columnIndex = -1; - columnLength = cells.length; row = []; sizes = []; - if (columnLength > mostCellsPerRow) { - mostCellsPerRow = columnLength; + if (table[rowIndex].length > mostCellsPerRow) { + mostCellsPerRow = table[rowIndex].length; } - while (++columnIndex < columnLength) { - cell = serialize(cells[columnIndex]); + while (++columnIndex < table[rowIndex].length) { + cell = serialize(table[rowIndex][columnIndex]); - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = stringLength(cell); sizes[columnIndex] = size; - largest = longestCellByColumn[columnIndex]; - - if (largest === undefined || size > largest) { + if ( + longestCellByColumn[columnIndex] === undefined || + size > longestCellByColumn[columnIndex] + ) { longestCellByColumn[columnIndex] = size; } } @@ -52383,51 +60662,50 @@ function markdownTable(table, options) { // Figure out which alignments to use. columnIndex = -1; - columnLength = mostCellsPerRow; if (typeof align === 'object' && 'length' in align) { - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = toAlignment(align[columnIndex]); } } else { code = toAlignment(align); - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = code; } } // Inject the alignment row. columnIndex = -1; - columnLength = mostCellsPerRow; row = []; sizes = []; - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { code = alignments[columnIndex]; before = ''; after = ''; - if (code === l$1) { - before = colon$1; - } else if (code === r) { - after = colon$1; - } else if (code === c$1) { - before = colon$1; - after = colon$1; + if (code === 99 /* `c` */) { + before = ':'; + after = ':'; + } else if (code === 108 /* `l` */) { + before = ':'; + } else if (code === 114 /* `r` */) { + after = ':'; } // There *must* be at least one hyphen-minus in each alignment cell. - size = alignDelimiters - ? Math.max( - 1, - longestCellByColumn[columnIndex] - before.length - after.length - ) - : 1; + size = + settings.alignDelimiters === false + ? 1 + : Math.max( + 1, + longestCellByColumn[columnIndex] - before.length - after.length + ); - cell = before + repeatString(dash$1, size) + after; + cell = before + '-'.repeat(size) + after; - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = before.length + size + after.length; if (size > longestCellByColumn[columnIndex]) { @@ -52445,113 +60723,218 @@ function markdownTable(table, options) { sizeMatrix.splice(1, 0, sizes); rowIndex = -1; - rowLength = cellMatrix.length; - lines = []; + /** @type {string[]} */ + const lines = []; - while (++rowIndex < rowLength) { + while (++rowIndex < cellMatrix.length) { row = cellMatrix[rowIndex]; sizes = sizeMatrix[rowIndex]; columnIndex = -1; - columnLength = mostCellsPerRow; line = []; - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { cell = row[columnIndex] || ''; before = ''; after = ''; - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); code = alignments[columnIndex]; - if (code === r) { - before = repeatString(space, size); - } else if (code === c$1) { - if (size % 2 === 0) { - before = repeatString(space, size / 2); - after = before; + if (code === 114 /* `r` */) { + before = ' '.repeat(size); + } else if (code === 99 /* `c` */) { + if (size % 2) { + before = ' '.repeat(size / 2 + 0.5); + after = ' '.repeat(size / 2 - 0.5); } else { - before = repeatString(space, size / 2 + 0.5); - after = repeatString(space, size / 2 - 0.5); + before = ' '.repeat(size / 2); + after = before; } } else { - after = repeatString(space, size); + after = ' '.repeat(size); } } - if (start === true && columnIndex === 0) { - line.push(verticalBar); + if (settings.delimiterStart !== false && !columnIndex) { + line.push('|'); } if ( - padding === true && + settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is // empty: there will be a closing space. - !(alignDelimiters === false && cell === '') && - (start === true || columnIndex !== 0) + !(settings.alignDelimiters === false && cell === '') && + (settings.delimiterStart !== false || columnIndex) ) { - line.push(space); + line.push(' '); } - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { line.push(before); } line.push(cell); - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { line.push(after); } - if (padding === true) { - line.push(space); + if (settings.padding !== false) { + line.push(' '); } - if (end === true || columnIndex !== columnLength - 1) { - line.push(verticalBar); + if ( + settings.delimiterEnd !== false || + columnIndex !== mostCellsPerRow - 1 + ) { + line.push('|'); } } - line = line.join(''); - - if (end === false) { - line = line.replace(trailingWhitespace, ''); - } - - lines.push(line); + lines.push( + settings.delimiterEnd === false + ? line.join('').replace(/ +$/, '') + : line.join('') + ); } - return lines.join(lineFeed) + return lines.join('\n') } +/** + * @param {string|null|undefined} [value] + * @returns {string} + */ function serialize(value) { return value === null || value === undefined ? '' : String(value) } +/** + * @param {string} value + * @returns {number} + */ function defaultStringLength(value) { return value.length } +/** + * @param {string|null|undefined} value + * @returns {number} + */ function toAlignment(value) { - var code = typeof value === 'string' ? value.charCodeAt(0) : x; + const code = typeof value === 'string' ? value.charCodeAt(0) : 0; - return code === L$1 || code === l$1 - ? l$1 - : code === R || code === r - ? r - : code === C || code === c$1 - ? c$1 - : x + return code === 67 /* `C` */ || code === 99 /* `c` */ + ? 99 /* `c` */ + : code === 76 /* `L` */ || code === 108 /* `l` */ + ? 108 /* `l` */ + : code === 82 /* `R` */ || code === 114 /* `r` */ + ? 114 /* `r` */ + : 0 } -var toMarkdown_1 = toMarkdown$3; +/** + * @typedef {import('mdast').AlignType} AlignType + * @typedef {import('mdast').Table} Table + * @typedef {import('mdast').TableRow} TableRow + * @typedef {import('mdast').TableCell} TableCell + * @typedef {import('mdast').InlineCode} InlineCode + * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext + * + * @typedef Options + * @property {boolean} [tableCellPadding=true] + * @property {boolean} [tablePipeAlign=true] + * @property {MarkdownTableOptions['stringLength']} [stringLength] + */ -function toMarkdown$3(options) { - var settings = options || {}; - var padding = settings.tableCellPadding; - var alignDelimiters = settings.tablePipeAlign; - var stringLength = settings.stringLength; - var around = padding ? ' ' : '|'; +/** @type {FromMarkdownExtension} */ +const gfmTableFromMarkdown = { + enter: { + table: enterTable, + tableData: enterCell, + tableHeader: enterCell, + tableRow: enterRow + }, + exit: { + codeText: exitCodeText, + table: exitTable, + tableData: exit, + tableHeader: exit, + tableRow: exit + } +}; + +/** @type {FromMarkdownHandle} */ +function enterTable(token) { + /** @type {AlignType[]} */ + // @ts-expect-error: `align` is custom. + const align = token._align; + this.enter({type: 'table', align, children: []}, token); + this.setData('inTable', true); +} + +/** @type {FromMarkdownHandle} */ +function exitTable(token) { + this.exit(token); + this.setData('inTable'); +} + +/** @type {FromMarkdownHandle} */ +function enterRow(token) { + this.enter({type: 'tableRow', children: []}, token); +} + +/** @type {FromMarkdownHandle} */ +function exit(token) { + this.exit(token); +} + +/** @type {FromMarkdownHandle} */ +function enterCell(token) { + this.enter({type: 'tableCell', children: []}, token); +} + +// Overwrite the default code text data handler to unescape escaped pipes when +// they are in tables. +/** @type {FromMarkdownHandle} */ +function exitCodeText(token) { + let value = this.resume(); + + if (this.getData('inTable')) { + value = value.replace(/\\([\\|])/g, replace); + } + + const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1]); + node.value = value; + this.exit(token); +} + +/** + * @param {string} $0 + * @param {string} $1 + * @returns {string} + */ +function replace($0, $1) { + // Pipes work, backslashes don’t (but can’t escape pipes). + return $1 === '|' ? $1 : $0 +} + +/** + * @param {Options} [options] + * @returns {ToMarkdownExtension} + */ +function gfmTableToMarkdown(options) { + const settings = options || {}; + const padding = settings.tableCellPadding; + const alignDelimiters = settings.tablePipeAlign; + const stringLength = settings.stringLength; + const around = padding ? ' ' : '|'; return { unsafe: [ @@ -52580,44 +60963,71 @@ function toMarkdown$3(options) { } } + /** + * @type {ToMarkdownHandle} + * @param {Table} node + */ function handleTable(node, _, context) { + // @ts-expect-error: fixed in `markdown-table@3.0.1`. return serializeData(handleTableAsData(node, context), node.align) } - // This function isn’t really used normally, because we handle rows at the - // table level. - // But, if someone passes in a table row, this ensures we make somewhat sense. + /** + * This function isn’t really used normally, because we handle rows at the + * table level. + * But, if someone passes in a table row, this ensures we make somewhat sense. + * + * @type {ToMarkdownHandle} + * @param {TableRow} node + */ function handleTableRow(node, _, context) { - var row = handleTableRowAsData(node, context); + const row = handleTableRowAsData(node, context); // `markdown-table` will always add an align row - var value = serializeData([row]); + const value = serializeData([row]); return value.slice(0, value.indexOf('\n')) } + /** + * @type {ToMarkdownHandle} + * @param {TableCell} node + */ function handleTableCell(node, _, context) { - var exit = context.enter('tableCell'); - var value = containerPhrasing(node, context, {before: around, after: around}); + const exit = context.enter('tableCell'); + const subexit = context.enter('phrasing'); + const value = containerPhrasing(node, context, { + before: around, + after: around + }); + subexit(); exit(); return value } + /** + * @param {Array.>} matrix + * @param {Array.} [align] + */ function serializeData(matrix, align) { - return markdownTable_1(matrix, { - align: align, - alignDelimiters: alignDelimiters, - padding: padding, - stringLength: stringLength + return markdownTable(matrix, { + align, + alignDelimiters, + padding, + stringLength }) } + /** + * @param {Table} node + * @param {ToMarkdownContext} context + */ function handleTableAsData(node, context) { - var children = node.children; - var index = -1; - var length = children.length; - var result = []; - var subexit = context.enter('table'); + const children = node.children; + let index = -1; + /** @type {Array.>} */ + const result = []; + const subexit = context.enter('table'); - while (++index < length) { + while (++index < children.length) { result[index] = handleTableRowAsData(children[index], context); } @@ -52626,14 +61036,18 @@ function toMarkdown$3(options) { return result } + /** + * @param {TableRow} node + * @param {ToMarkdownContext} context + */ function handleTableRowAsData(node, context) { - var children = node.children; - var index = -1; - var length = children.length; - var result = []; - var subexit = context.enter('tableRow'); + const children = node.children; + let index = -1; + /** @type {Array.} */ + const result = []; + const subexit = context.enter('tableRow'); - while (++index < length) { + while (++index < children.length) { result[index] = handleTableCell(children[index], node, context); } @@ -52642,10 +61056,14 @@ function toMarkdown$3(options) { return result } + /** + * @type {ToMarkdownHandle} + * @param {InlineCode} node + */ function inlineCodeWithTable(node, parent, context) { - var value = inlineCode_1(node); + let value = inlineCode(node, parent, context); - if (context.stack.indexOf('tableCell') !== -1) { + if (context.stack.includes('tableCell')) { value = value.replace(/\|/g, '\\$&'); } @@ -52653,15 +61071,94 @@ function toMarkdown$3(options) { } } -var unsafe$3 = [{atBreak: true, character: '-', after: '[:|-]'}]; +/** + * @typedef {import('mdast').ListItem} ListItem + * @typedef {import('mdast').Paragraph} Paragraph + * @typedef {import('mdast').BlockContent} BlockContent + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + */ + +/** @type {FromMarkdownExtension} */ +const gfmTaskListItemFromMarkdown = { + exit: { + taskListCheckValueChecked: exitCheck, + taskListCheckValueUnchecked: exitCheck, + paragraph: exitParagraphWithTaskListItem + } +}; -var handlers$1 = { - listItem: listItemWithTaskListItem +/** @type {ToMarkdownExtension} */ +const gfmTaskListItemToMarkdown = { + unsafe: [{atBreak: true, character: '-', after: '[:|-]'}], + handlers: {listItem: listItemWithTaskListItem} }; +/** @type {FromMarkdownHandle} */ +function exitCheck(token) { + // We’re always in a paragraph, in a list item. + this.stack[this.stack.length - 2].checked = + token.type === 'taskListCheckValueChecked'; +} + +/** @type {FromMarkdownHandle} */ +function exitParagraphWithTaskListItem(token) { + const parent = this.stack[this.stack.length - 2]; + /** @type {Paragraph} */ + // @ts-expect-error: must be true. + const node = this.stack[this.stack.length - 1]; + /** @type {BlockContent[]} */ + // @ts-expect-error: check whether `parent` is a `listItem` later. + const siblings = parent.children; + const head = node.children[0]; + let index = -1; + /** @type {Paragraph|undefined} */ + let firstParaghraph; + + if ( + parent && + parent.type === 'listItem' && + typeof parent.checked === 'boolean' && + head && + head.type === 'text' + ) { + while (++index < siblings.length) { + const sibling = siblings[index]; + if (sibling.type === 'paragraph') { + firstParaghraph = sibling; + break + } + } + + if (firstParaghraph === node) { + // Must start with a space or a tab. + head.value = head.value.slice(1); + + if (head.value.length === 0) { + node.children.shift(); + } else { + // @ts-expect-error: must be true. + head.position.start.column++; + // @ts-expect-error: must be true. + head.position.start.offset++; + // @ts-expect-error: must be true. + node.position.start = Object.assign({}, head.position.start); + } + } + } + + this.exit(token); +} + +/** + * @type {ToMarkdownHandle} + * @param {ListItem} node + */ function listItemWithTaskListItem(node, parent, context) { - var value = listItem_1(node, parent, context); - var head = node.children[0]; + const head = node.children[0]; + let value = listItem(node, parent, context); if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') { value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); @@ -52669,79 +61166,82 @@ function listItemWithTaskListItem(node, parent, context) { return value + /** + * @param {string} $0 + * @returns {string} + */ function check($0) { return $0 + '[' + (node.checked ? 'x' : ' ') + '] ' } } -var toMarkdown$4 = { - unsafe: unsafe$3, - handlers: handlers$1 -}; - -var toMarkdown_1$1 = toMarkdown$5; +/** + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * + * @typedef {import('mdast-util-gfm-table').Options} Options + */ -function toMarkdown$5(options) { - var config = configure_1$2( - {handlers: {}, join: [], unsafe: [], options: {}}, - { - extensions: [toMarkdown$1, toMarkdown$2, toMarkdown_1(options), toMarkdown$4] - } - ); +/** + * @type {Array.} + */ +const gfmFromMarkdown = [ + gfmAutolinkLiteralFromMarkdown, + gfmStrikethroughFromMarkdown, + gfmTableFromMarkdown, + gfmTaskListItemFromMarkdown +]; - return Object.assign(config.options, { - handlers: config.handlers, - join: config.join, - unsafe: config.unsafe - }) +/** + * @param {Options} [options] + * @returns {ToMarkdownExtension} + */ +function gfmToMarkdown(options) { + return { + extensions: [ + gfmAutolinkLiteralToMarkdown, + gfmStrikethroughToMarkdown, + gfmTableToMarkdown(options), + gfmTaskListItemToMarkdown + ] + } } -var warningIssued; +/** + * @typedef {import('mdast').Root} Root + * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options + */ -var remarkGfm = gfm; +/** + * Plugin to support GitHub Flavored Markdown (GFM). + * + * @type {import('unified').Plugin<[Options?]|void[], Root>} + */ +function remarkGfm(options = {}) { + const data = this.data(); -function gfm(options) { - var data = this.data(); + add('micromarkExtensions', gfm(options)); + add('fromMarkdownExtensions', gfmFromMarkdown); + add('toMarkdownExtensions', gfmToMarkdown(options)); - /* istanbul ignore next - old remark. */ - if ( - !warningIssued && - ((this.Parser && - this.Parser.prototype && - this.Parser.prototype.blockTokenizers) || - (this.Compiler && - this.Compiler.prototype && - this.Compiler.prototype.visitors)) - ) { - warningIssued = true; - console.warn( - '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin' + /** + * @param {string} field + * @param {unknown} value + */ + function add(field, value) { + const list = /** @type {unknown[]} */ ( + // Other extensions + /* c8 ignore next 2 */ + data[field] ? data[field] : (data[field] = []) ); - } - add('micromarkExtensions', micromarkExtensionGfm(options)); - add('fromMarkdownExtensions', fromMarkdown$5); - add('toMarkdownExtensions', toMarkdown_1$1(options)); - - function add(field, value) { - /* istanbul ignore if - other extensions. */ - if (data[field]) data[field].push(value); - else data[field] = [value]; + list.push(value); } } // To aid in future maintenance, this layout closely matches remark-cli/cli.js. -// https://github.com/remarkjs/remark/blob/master/packages/remark-cli/cli.js - - - - - - - - -unifiedArgs({ +args({ processor: remark().use(remarkGfm).use(remarkPresetLintNode), name: proc.name, description: cli.description, @@ -52757,9 +61257,3 @@ unifiedArgs({ extensions: markdownExtensions, detectConfig: false, }); - -var cliEntry = { - -}; - -module.exports = cliEntry; diff --git a/tools/lint-pr-commit-message.sh b/tools/lint-pr-commit-message.sh deleted file mode 100644 index 443e64469d3b24..00000000000000 --- a/tools/lint-pr-commit-message.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -# Shell script to lint the message of the first commit in a pull request. -# -# Depends on curl, git, node, npm and npx being in $PATH. -# -# The pull request is either: -# 1) supplied as an argument to this shell script -# 2) derived from the HEAD commit via the GitHub API - -GH_API_URL="https://api.github.com" -PR_ID=$1; -if [ -z "${PR_ID}" ]; then - # Attempt to work out the PR number based on current HEAD - if HEAD_COMMIT="$( git rev-parse HEAD )"; then - if SEARCH_RESULTS="$( curl -s "${GH_API_URL}/search/issues?q=sha:${HEAD_COMMIT}+type:pr+repo:nodejs/node" )"; then - if FOUND_PR="$( node -p 'JSON.parse(process.argv[1]).items[0].number' "${SEARCH_RESULTS}" 2> /dev/null )"; then - PR_ID=${FOUND_PR} - fi - fi - fi -fi -if [ -z "${PR_ID}" ]; then - echo "Unable to determine the pull request number to check. Please specify, " - echo " e.g. $0 " - exit 1 -fi - -PATCH=$( curl -sL "https://github.com/nodejs/node/pull/${PR_ID}.patch" | grep '^From ' ) -if FIRST_COMMIT="$( echo "$PATCH" | awk '/^From [0-9a-f]{40} / { if (count++ == 0) print $2 }' )"; then - MESSAGE=$( git show --quiet --format='format:%B' "$FIRST_COMMIT" ) - echo " -*** Linting the first commit message for pull request ${PR_ID} -*** according to the guidelines at https://goo.gl/p2fr5Q. -*** Commit message for $(echo "$FIRST_COMMIT" | cut -c 1-10) is: -${MESSAGE} -" - npx -q core-validate-commit --no-validate-metadata "${FIRST_COMMIT}" -fi diff --git a/tools/lint-sh.js b/tools/lint-sh.js index 7b0beaadfe2fb9..42889c16b6af0e 100755 --- a/tools/lint-sh.js +++ b/tools/lint-sh.js @@ -138,8 +138,7 @@ async function checkFiles(...files) { 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}` + `::error file=${file},line=${line},col=${column}::${file}:${line}:${column}: ${message}` ); } } diff --git a/tools/node-lint-md-cli-rollup/package-lock.json b/tools/node-lint-md-cli-rollup/package-lock.json index 70cf0ee00459dd..3cfe12696fad45 100644 --- a/tools/node-lint-md-cli-rollup/package-lock.json +++ b/tools/node-lint-md-cli-rollup/package-lock.json @@ -8,41 +8,49 @@ "version": "2.0.2", "dependencies": { "markdown-extensions": "^1.1.1", - "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", - "remark-preset-lint-node": "^2.3.0", - "unified-args": "^8.1.0" + "remark": "^14.0.0", + "remark-gfm": "^2.0.0", + "remark-preset-lint-node": "^3.0.0", + "unified-args": "^9.0.0" }, "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - "rollup": "^2.36.1", + "@rollup/plugin-node-resolve": "^13.0.4", + "rollup": "^2.52.7", "shx": "^0.3.3" } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { @@ -110,9 +118,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz", - "integrity": "sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", + "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -127,7 +135,7 @@ "node": ">= 8.0.0" }, "peerDependencies": { - "rollup": "^2.30.0" + "rollup": "^2.38.3" } }, "node_modules/@rollup/plugin-json": { @@ -143,9 +151,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz", - "integrity": "sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", + "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -159,7 +167,7 @@ "node": ">= 10.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^2.42.0" } }, "node_modules/@rollup/pluginutils": { @@ -185,12 +193,46 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "node_modules/@types/hast": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.2.tgz", + "integrity": "sha512-Op5W7jYgZI7AWKY5wQ0/QNMzQM7dGQPyW1rXKNiymVCy5iTfdPuGu4HhYNOM2sIv8gUfIuIdcYlXmAepwaowow==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/is-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha512-brJKf2boFhUxTDxlpI7cstwiUtA2ovm38UzFTi9aZI6//ARncaV+Q5ALjCaJqXaMtdZk/oPTJnSutugsZR6h8A==" + }, + "node_modules/@types/js-yaml": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.2.tgz", + "integrity": "sha512-KbeHS/Y4R+k+5sWXEYzAZKuB1yQlZtEghuhRxrVRLaqhtoG5+26JwQsa4HyS3AWX8v1Uwukma5HheduUDskasA==" + }, "node_modules/@types/mdast": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", @@ -199,11 +241,25 @@ "@types/unist": "*" } }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "node_modules/@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", - "dev": true + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" + }, + "node_modules/@types/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==" + }, + "node_modules/@types/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-vdna8kjLGljgtPnYN6MBD2UwX62QE0EFLj9QlLXvg6dEu66NksXB900BNguBCMZZY2D9SSqncUskM23vT3uvWQ==" }, "node_modules/@types/resolve": { "version": "1.17.1", @@ -214,17 +270,30 @@ "@types/node": "*" } }, + "node_modules/@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==" + }, + "node_modules/@types/text-table": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz", + "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==" + }, "node_modules/@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.0.tgz", + "integrity": "sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -242,9 +311,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -254,17 +323,14 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -276,9 +342,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "engines": { "node": ">=8" } @@ -304,9 +370,9 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/builtin-modules": { "version": "3.2.0", @@ -320,84 +386,103 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/builtins": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.0.0.tgz", + "integrity": "sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==", + "dependencies": { + "semver": "^7.0.0" + } + }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ccount": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", + "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.0.0.tgz", + "integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", + "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chokidar/node_modules/fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "fsevents": "~2.3.2" } }, "node_modules/co": { @@ -405,15 +490,6 @@ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=" }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -430,6 +506,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/comma-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", + "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -456,9 +541,9 @@ } }, "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { "ms": "2.1.2" }, @@ -481,9 +566,9 @@ } }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/error-ex": { "version": "1.3.2", @@ -494,28 +579,16 @@ } }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -528,9 +601,9 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz", + "integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==", "dependencies": { "format": "^0.2.0" }, @@ -544,28 +617,6 @@ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -602,11 +653,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "hasInstallScript": true, "optional": true, "os": [ @@ -672,6 +721,105 @@ "node": ">=8" } }, + "node_modules/hast-util-from-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz", + "integrity": "sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", + "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz", + "integrity": "sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.1.tgz", + "integrity": "sha512-S1mTqXvWVGIxrWw0xOHHvmevwCBFTRGNvXWsjE32IyEAlMhbMkK+ZuP6CAqkQ6Vb7swrehaHpfXHEI6voGDh0w==", + "dependencies": { + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", + "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.0.2.tgz", + "integrity": "sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.0.tgz", + "integrity": "sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -680,6 +828,18 @@ "node": ">= 4" } }, + "node_modules/import-meta-resolve": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz", + "integrity": "sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==", + "dependencies": { + "builtins": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -709,21 +869,21 @@ } }, "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", + "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, "funding": { "type": "github", @@ -781,9 +941,9 @@ } }, "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -803,11 +963,14 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { @@ -822,9 +985,9 @@ } }, "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -845,11 +1008,14 @@ } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-reference": { @@ -867,12 +1033,11 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -884,9 +1049,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dependencies": { "minimist": "^1.2.5" }, @@ -913,12 +1078,12 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "node_modules/load-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-3.0.0.tgz", - "integrity": "sha512-od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-4.0.1.tgz", + "integrity": "sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw==", "dependencies": { - "libnpmconfig": "^1.0.0", - "resolve-from": "^5.0.0" + "import-meta-resolve": "^1.0.0", + "libnpmconfig": "^1.0.0" }, "funding": { "type": "github", @@ -938,9 +1103,9 @@ } }, "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -975,36 +1140,56 @@ } }, "node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dependencies": { - "repeat-string": "^1.0.0" - }, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-comment-marker": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", - "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==", + "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==", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/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/mdast-util-from-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz", - "integrity": "sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz", + "integrity": "sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==", "dependencies": { "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/unist": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0", + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", @@ -1012,15 +1197,14 @@ } }, "node_modules/mdast-util-gfm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.1.tgz", - "integrity": "sha512-oE1W1zSXU2L2LHg91V22HC3Z1fbsOZTBYUQq+kpM29f9297TbRm0C1l3bQ88RREl0WaUQaB49G7trvwy5utUKQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", + "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", "dependencies": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" + "mdast-util-gfm-autolink-literal": "^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" }, "funding": { "type": "opencollective", @@ -1028,20 +1212,26 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.2.tgz", - "integrity": "sha512-WFeIrcNNsfBety0gyWuiBIPing9UkVcl/m2iZOyW1uHEH2evjFocet2h77M24ub0WyZ4ucnQn/jWhO5Ozl6j4g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-NaGypnNJop+hybP/PLnMVV5aN14VFda31DU+j8qsQdPR8m8AENuCX959hXaCiwVeUem33O6zY+JTt0sH1Kj7ng==", + "dependencies": { + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", "dependencies": { - "mdast-util-to-markdown": "^0.6.0" + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1049,12 +1239,12 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", "dependencies": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1062,11 +1252,12 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", "dependencies": { - "mdast-util-to-markdown": "~0.6.0" + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1074,25 +1265,28 @@ } }, "node_modules/mdast-util-heading-style": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz", - "integrity": "sha512-8ZuuegRqS0KESgjAGW8zTx4tJ3VNIiIaGFNEzFpRSAQBavVc7AvOo9I4g3crcZBfYisHs4seYh0rAVimO6HyOw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", + "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-markdown": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz", - "integrity": "sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.1.1.tgz", + "integrity": "sha512-4puev/CxuxVdlsx5lVmuzgdqfjkkJJLS1Zm/MnejQ8I7BLeeBlbkwp6WOGJypEcN8g56LbVbhNmn84MvvcAvSQ==", "dependencies": { + "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "parse-entities": "^3.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1100,18 +1294,18 @@ } }, "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz", - "integrity": "sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.3.tgz", + "integrity": "sha512-fWuHx+JKV4zA8WfCFor2DWP9XmsZkIiyWRGofr7P7IGfpRIlb7/C5wwusGsNyr1D8HI5arghZDG1Ikc0FBwS5Q==", "funding": [ { "type": "GitHub Sponsors", @@ -1123,1070 +1317,2259 @@ } ], "dependencies": { + "@types/debug": "^4.0.0", "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.2.tgz", - "integrity": "sha512-ToQEpLkRgg7Tp8D3GM/SjZFPV0cCwWNxZmoEVIOQivOswRtPg7gg2WlCrtHhUWFNX+DgDjbq0iLOPGp4Y15oug==", - "dependencies": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.0", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.0.tgz", + "integrity": "sha512-y9g7zymcKRBHM/aNBekstvs/Grpf+y4OEBULUTYvGZcusnp+JeOxmilJY4GMpo2/xY7iHQL9fjz5pD9pSAud9A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", + "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.4.tgz", - "integrity": "sha512-471VKd4k3SiX7vx9fC+IYeGQL0RnxwBBXeEc5WConb7naJDG5m16guA+VoFzyXchrvmU08t0dUWWPZ0mkJSXVw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-5PhVJVK8zRsrc+A715NBPMY5iOQwtkMfL/8XURAPeU5fPC0S5dm4qjpoA6fGy4B9MHm+6WNs3xZDxF1ZGTtGDw==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", + "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz", + "integrity": "sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz", + "integrity": "sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "micromark": "~2.11.0" + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz", + "integrity": "sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", + "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.0.tgz", + "integrity": "sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", + "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", + "dependencies": { + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/property-information": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz", + "integrity": "sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rehype": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.0.tgz", + "integrity": "sha512-gZcttmf9R5IYHb8AlI1rlmWqXS1yX0rSB/S5ZGJs8atfYZy2DobvH3Ic/gSzB+HL/+oOHPtBguw1TprfhxXBgQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "rehype-parse": "^8.0.0", + "rehype-stringify": "^9.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.2.tgz", + "integrity": "sha512-Y5AvUbTareuAcCQITTbC9SGagm1IvOOSfG5CTTaOUW0pEeoNHkOq4YmMaEywUmSwwOgel3gOF3O7Mwl1acoBzg==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^6.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz", + "integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz", + "integrity": "sha512-7zLG3u8EUjOGuaAS9gUNJPD2j+SqDqAFHv2g6WMpE5CU9rZ6e3IKDM12KHZ3x+YNje+NMAuN55yx8S5msGSx7Q==", + "dependencies": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", + "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^1.0.0", + "micromark-extension-gfm": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-blockquote-indentation": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.0.0.tgz", + "integrity": "sha512-qWWyAJWHwnVFsfKEyl51os1rr4ex9KX398g8326esJ2/RFsCYJbJaXmVk/S+uf7B7HfOWFuJo+tu/7jlZZ54+Q==", + "dependencies": { + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-blockquote-indentation/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-checkbox-character-style": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.0.0.tgz", + "integrity": "sha512-NHpVZOcTJeLOI1gGOvVDz8i3sXVY3s9K+OADupEA89Syfs4YAbnrij8OMJ6ozbHTn4av/HyVfsF4IK8X2pBUeQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-checkbox-character-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-checkbox-content-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.0.0.tgz", + "integrity": "sha512-WeB8aSC1oesu0t/wcqNEbn3bg0kRw+NK7Y5xrhQsREw6NcH1TnvjH95PvizFT5LxXAGhz4AtCFz0B28YugSznQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-checkbox-content-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-code-block-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.0.0.tgz", + "integrity": "sha512-xZMfFeaMOb5OIM4SrNz3QTRV3u5g3/+e6Oq40A3Apwd+a9Kx49lZbGxl8vfqaczP89PTNanm2e4OqqRsCen4Mg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-code-block-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-definition-spacing": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.0.0.tgz", + "integrity": "sha512-3LxU7lwCpfPstldcGly2ULb8knH4IOqZHoABT2KyKFw3rRFUCAEUBSl0k5eetnXXNc/X4NlHmnyjIyzhyl4PhA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-definition-spacing/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-fenced-code-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.0.tgz", + "integrity": "sha512-wvyaTvQ5F78yuw4BDQsneTCvkxHGAjq0OuDQU4pawAZMYO3qFJlau7qoLppgquY1D+jBakejMT/yKnoQgRf1dQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-fenced-code-flag/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-fenced-code-marker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.0.0.tgz", + "integrity": "sha512-x3wr1+22Atr72Z7+dUS8cqwuz8m8d4UgCAfBTNO+E6pRLVeCnVMvEtuJbDI5UqBlqvkLGlNofV4lJZQvrZUxqQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-fenced-code-marker/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-file-extension": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.0.0.tgz", + "integrity": "sha512-fZ0nDGyuZSgkrakLKl+cjqXwOT7iAz0wfSbrkCabYW3DdN6X1QYeSlMtHPizGXuri+AZhVkrUnujSn+9P4hJ2w==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-file-extension/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-final-definition": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.0.0.tgz", + "integrity": "sha512-RHR8aku0jCH4AoHVepw9b0tCmiBevMtLPG1l5FKhbkLtBWk9GRRryuD3GExxsInEUN2P/a6FhvcBBtRSJbIfIA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-final-definition/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.0.0.tgz", + "integrity": "sha512-3u1IbgVfUN5Qgid8iqc1qlZhzscs4YPu8mwyahvLWVKMkBtoRWjDIVL6+CXcPPoUB2k3p+zuZ5oaE4yfO5Pb4w==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-final-newline/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-first-heading-level": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.0.0.tgz", + "integrity": "sha512-SMvBHO4HJd1ZkFDfx7OikJAoq5FQe+nFPm3n4DeAKIgM1FywaC7tD7ShwTRUL2DJMzdPjlta7UQRtTryAQGj+w==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-first-heading-level/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-hard-break-spaces": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.0.tgz", + "integrity": "sha512-TNTI32Va6hE33pTYC6iqn4NvyZHqCULsOKKLnAzBocFFFIYuaNUdfKyVc9wknAAutbQLqApr8tgs1mLHtHm9Fw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-hard-break-spaces/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-heading-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.0.0.tgz", + "integrity": "sha512-pPiXG24yXER7xXZr+J11iuMd1DXa71m6Cx7jqUO5z1Ptc7WkolcW6lNRFG76BCOJp8Jp6vH5eNITuQxYa0AnJw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.3.tgz", - "integrity": "sha512-MKMoP9x2dsr1aeX46ibBwVf4Q6nJsi5aaUFTOMOID5VOLSxwl4CrqUV4OGFQd6AqhtzBJAxaV+N2trlTBtZDNQ==", + "node_modules/remark-lint-heading-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "micromark": "~2.11.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-table": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.2.tgz", - "integrity": "sha512-AAzmj85XO1ydHYX0Lz52HGhcH2sZLm2AVvkwzELXWgZF6vGdq5yZ3CTByFRsqNUPyQBSIYFKLDAtc6KlnO42aw==", + "node_modules/remark-lint-list-item-bullet-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.0.0.tgz", + "integrity": "sha512-b/U3wAJPE00xGQGYBvjPPsdXsBPJxUvITYgAZee7aA2sGEiflMGmg90anS2sJZEAoD4XtNzp96bPaY6QLN89dQ==", "dependencies": { - "micromark": "~2.11.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "node_modules/remark-lint-list-item-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.0.0.tgz", + "integrity": "sha512-z7doG/aJCy8ivmfbE/cSm9HOpIeUaV5zZHMqSsZ6XZ+wXIj4wtMFVhI7fsAVs5pAB1gzSvZQuwJOfSs2//Fw2g==", "dependencies": { - "micromark": "~2.11.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/remark-lint-list-item-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "brace-expansion": "^1.1.7" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, - "engines": { - "node": "*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/normalize-path": { + "node_modules/remark-lint-maximum-line-length": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.0.0.tgz", + "integrity": "sha512-0x5TsUDlc4IDPUObNjVtcQxzI1JokUwbVpr22akWypnZaX9QMIL+Cp1OXrKRknZVU3rIndt4QCNnjMEYKezn1g==", "dependencies": { - "wrappy": "1" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/remark-lint-maximum-line-length/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/p-locate": { + "node_modules/remark-lint-no-auto-link-without-protocol": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.0.0.tgz", + "integrity": "sha512-qeJhWZcO0wnavTdpLU6M1q5RBfo4nZnYmzASoSCmIj/ZxIinluXLmLcMHC2Ol46egWdvwDNpr3V0dJP79fiJMQ==", "dependencies": { - "p-limit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse-entities": { + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unified-lint-rule": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "node_modules/remark-lint-no-blockquote-without-marker": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.0.0.tgz", + "integrity": "sha512-6m1KZE8X2OhNV9wpEPVUfFxdzgVD523unRkstlRedKC3ONLlqP/CIliAOITRmIGuUxXVjyD7mDC892bFJnJTfw==", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/remark-lint-no-blockquote-without-marker/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "engines": { - "node": ">=8.6" + "node_modules/remark-lint-no-consecutive-blank-lines": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", + "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "engines": { - "node": ">=4" + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/remark-lint-no-duplicate-definitions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.0.0.tgz", + "integrity": "sha512-6VOGPegh2ZQ0d9yronmhNXhg2wLYA5litT7bC1ljg2LQwMTIjYOgJbJsQJSKWD+FiHuqVhdWvXHzyTbFCch8Aw==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">= 6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "picomatch": "^2.2.1" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, + "node_modules/remark-lint-no-file-name-articles": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.0.0.tgz", + "integrity": "sha512-PgyJXEsZDT2r1bvtwaChwTjYKPxo47/OxpJmiozwLcnPsBNbsDtrH+W5gIjNkvkENNcIQD48WZ9jIwyJiskBng==", "dependencies": { - "resolve": "^1.1.6" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, - "engines": { - "node": ">= 0.10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "node_modules/remark-lint-no-file-name-articles/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "node_modules/remark-lint-no-file-name-consecutive-dashes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.0.0.tgz", + "integrity": "sha512-o7yz//+vel7IFDoZ/M0BmOS4sVE3sTAFOkeYlH44meGbNnEudr+TKKa0lwopMqZHKhXgUPSayCq+D5dgRO6JLA==", "dependencies": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", - "integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", + "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "remark-message-control": "^6.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-blockquote-indentation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz", - "integrity": "sha512-uJ9az/Ms9AapnkWpLSCJfawBfnBI2Tn1yUsPNqIFv6YM98ymetItUMyP6ng9NFPqDvTQBbiarulkgoEo0wcafQ==", + "node_modules/remark-lint-no-file-name-outer-dashes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.0.0.tgz", + "integrity": "sha512-SZS9FeGLty0wOBLTKyboDUZpjIKMihH88ZvgdqCUgIiDlZ9/72JKtZv43UuMnMVRgKJWQCRyZtT3nSNw3HwM+g==", "dependencies": { - "mdast-util-to-string": "^1.0.2", - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-blockquote-indentation/node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-character-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-3.0.0.tgz", - "integrity": "sha512-691OJ5RdBRXVpvnOEiBhMB4uhHJSHVttw83O4qyAkNBiqxa1Axqhsz8FgmzYgRLQbOGd2ncVUcXG1LOJt6C0DQ==", + "node_modules/remark-lint-no-heading-content-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.0.0.tgz", + "integrity": "sha512-2SljHUYTN83EN5DEZrl7WH4ibmUxai6gONhZaQrQOJyGUO2ReZj5Zdn4xi79NHpORSzCzjn2tSXPB6yL3AhJag==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-content-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-3.0.0.tgz", - "integrity": "sha512-+T4+hoY85qZE2drD2rCe14vF7fAgD3Kv2fkFd1HRvv3M5Riy148w/4YeoBI5U5BpybGTVUeEUYLCeJ8zbJLjkw==", + "node_modules/remark-lint-no-heading-content-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-code-block-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz", - "integrity": "sha512-eRhmnColmSxJhO61GHZkvO67SpHDshVxs2j3+Zoc5Y1a4zQT2133ZAij04XKaBFfsVLjhbY/+YOWxgvtjx2nmA==", + "node_modules/remark-lint-no-heading-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.0.0.tgz", + "integrity": "sha512-t4MWiMjPH6TOdM8d5i5Eik6NVrOokoYy6z0GnuI7PNrmNmVVIV9CVBJU94aSXZ7friKx5ucvUEw6NhXIRcNtOw==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-definition-spacing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz", - "integrity": "sha512-xK9DOQO5MudITD189VyUiMHBIKltW1oc55L7Fti3i9DedXoBG7Phm+V9Mm7IdWzCVkquZVgVk63xQdqzSQRrSQ==", + "node_modules/remark-lint-no-heading-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-flag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz", - "integrity": "sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA==", + "node_modules/remark-lint-no-inline-padding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.0.tgz", + "integrity": "sha512-dugEtHudM/UVQYzTbQoWy4aeG9Micd9g6O/uzN59sIMM8Xb+Srbv/p5/2JNtJWej9PmzINldE0AHjpuB8NiNLA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-marker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz", - "integrity": "sha512-lujpjm04enn3ma6lITlttadld6eQ1OWAEcT3qZzvFHp+zPraC0yr0eXlvtDN/0UH8mrln/QmGiZp3i8IdbucZg==", + "node_modules/remark-lint-no-inline-padding/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-file-extension": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-1.0.5.tgz", - "integrity": "sha512-oVQdf5vEomwHkfQ7R/mgmsWW2H/t9kSvnrxtVoNOHr+qnOEafKKDn+AFhioN2kqtjCZBAjSSrePs6xGKmXKDTw==", + "node_modules/remark-lint-no-literal-urls": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.0.0.tgz", + "integrity": "sha512-P+9VxemAeSGWGMmFGKcQMIsPgVDaoXnQLl0Bx/TuBms0Favb7XI3ecii/HjjDeks3zlrxlVhzvEkHBk1uH1tdA==", "dependencies": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-definition": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz", - "integrity": "sha512-83K7n2icOHPfBzbR5Mr1o7cu8gOjD8FwJkFx/ly+rW+8SHfjCj4D3WOFGQ1xVdmHjfomBDXXDSNo2oiacADVXQ==", + "node_modules/remark-lint-no-literal-urls/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-newline": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-1.0.5.tgz", - "integrity": "sha512-rfLlW8+Fz2dqnaEgU4JwLA55CQF1T4mfSs/GwkkeUCGPenvEYwSkCN2KO2Gr1dy8qPoOdTFE1rSufLjmeTW5HA==", + "node_modules/remark-lint-no-multiple-toplevel-headings": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.0.0.tgz", + "integrity": "sha512-HzPTSy9nu9RHSIUfZCbxEa7KP4CoKNbfI4SW8txh7KnYwr6vC6QgqXPF77z1sIpiSgD9X2z0LwMk0DBk1v3bmA==", "dependencies": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-first-heading-level": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-2.0.1.tgz", - "integrity": "sha512-XoK/eLfnz1VSA8QkfMbdbvlCqOwgw29MAWEGC4Cv0666nTcY9uWHlZ/SV/20YNmuEVdfCA+92v92mM486qcASQ==", + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-hard-break-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz", - "integrity": "sha512-Qfn/BMQFamHhtbfLrL8Co/dbYJFLRL4PGVXZ5wumkUO5f9FkZC2RsV+MD9lisvGTkJK0ZEJrVVeaPbUIFM0OAw==", + "node_modules/remark-lint-no-shell-dollars": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.0.tgz", + "integrity": "sha512-jygHSWi+w7C/VT6+oKIMHhrnMlURWF+ohjdtkxDc/C/7FXWyHg1nJR2t+c+j5Dmirz3oSfInSGw/jUfYP048GQ==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-heading-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz", - "integrity": "sha512-IrFLNs0M5Vbn9qg51AYhGUfzgLAcDOjh2hFGMz3mx664dV6zLcNZOPSdJBBJq3JQR4gKpoXcNwN1+FFaIATj+A==", + "node_modules/remark-lint-no-shell-dollars/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "mdast-util-heading-style": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-bullet-indent": { + "node_modules/remark-lint-no-shortcut-reference-image": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-3.0.0.tgz", - "integrity": "sha512-X2rleWP8XReC4LXKF7Qi5vYiPJkA4Grx5zxsjHofFrVRz6j0PYOCuz7vsO+ZzMunFMfom6FODnscSWz4zouDVw==", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.0.0.tgz", + "integrity": "sha512-PyB5xkCd8moJf1MrmIXlBTSXZ8pkjXtdrmHzYba7La8S/6TKN2+LFrfN9daLG9pVsD0DSBAlvbajM/MBFh2DfQ==", "dependencies": { - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-indent": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz", - "integrity": "sha512-4IKbA9GA14Q9PzKSQI6KEHU/UGO36CSQEjaDIhmb9UOhyhuzz4vWhnSIsxyI73n9nl9GGRAMNUSGzr4pQUFwTA==", + "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-line-length": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz", - "integrity": "sha512-zyWHBFh1oPAy+gkaVFXiTHYP2WwriIeBtaarDqkweytw0+qmuikjVMJTWbQ3+XfYBreD7KKDM9SI79nkp0/IZQ==", + "node_modules/remark-lint-no-shortcut-reference-link": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.0.0.tgz", + "integrity": "sha512-SbPrP6ZfRA2IJ++L7xAivXl7PJdOMzBUlhVwlt5PsWJKWHX07TIB02GGAiMnSOLN0FnUCvgF2c5we6eU1K3plA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-auto-link-without-protocol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz", - "integrity": "sha512-TFcXxzucsfBb/5uMqGF1rQA+WJJqm1ZlYQXyvJEXigEZ8EAxsxZGPb/gOQARHl/y0vymAuYxMTaChavPKaBqpQ==", + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "node_modules/remark-lint-no-table-indentation": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.0.0.tgz", + "integrity": "sha512-S1u4DHBS75xAcM/u1zsYize/0uB2u+xAoHbstN3JmFWsTRj5LUSppwkSrWsPk/3y9/jHJAQ4XSihwH7C95EObQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-blockquote-without-marker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz", - "integrity": "sha512-Y59fMqdygRVFLk1gpx2Qhhaw5IKOR9T38Wf7pjR07bEFBGUNfcoNVIFMd1TCJfCPQxUyJzzSqfZz/KT7KdUuiQ==", + "node_modules/remark-lint-no-table-indentation/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-consecutive-blank-lines": { + "node_modules/remark-lint-no-tabs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz", - "integrity": "sha512-kmzLlOLrapBKEngwYFTdCZDmeOaze6adFPB7G0EdymD9V1mpAlnneINuOshRLEDKK5fAhXKiZXxdGIaMPkiXrA==", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", + "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", "dependencies": { - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-2.0.1.tgz", - "integrity": "sha512-XL22benJZB01m+aOse91nsu1IMFqeWJWme9QvoJuxIcBROO1BG1VoqLOkwNcawE/M/0CkvTo5rfx0eMlcnXOIw==", + "node_modules/remark-lint-no-tabs/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-stringify-position": "^2.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.5.tgz", - "integrity": "sha512-AQk5eTb3s3TAPPjiglZgqlQj4ycao+gPs8/XkdN1VCPUtewW0GgwoQe7YEuBKayJ6ioN8dGP37Kg/P/PlKaRQA==", + "node_modules/remark-lint-no-trailing-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-trailing-spaces/-/remark-lint-no-trailing-spaces-2.0.1.tgz", + "integrity": "sha512-cj8t+nvtO6eAY2lJC7o5du8VeOCK13XiDUHL4U6k5aw6ZLr3EYWbQ/rNc6cr60eHkh5Ldm09KiZjV3CWpxqJ0g==", "dependencies": { - "unified-lint-rule": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "unified-lint-rule": "^1.0.2" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.5.tgz", - "integrity": "sha512-Mg2IDsi790/dSdAzwnBnsMYdZm3qC2QgGwqOWcr0TPABJhhjC3p8r5fX4MNMTXI5It7B7bW9+ImmCeLOZiXkLg==", + "node_modules/remark-lint-no-undefined-references": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.0.0.tgz", + "integrity": "sha512-HI68vLoTTCXDADAp8LQ6RqCuf9QHX7bSaaqKI1V82EyvizxgnFtvN46XIi1uiDTN+Jv/KzAAGaFrofV8OJknBA==", "dependencies": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.6.tgz", - "integrity": "sha512-rT8CmcIlenegS0Yst4maYXdZfqIjBOiRUY8j/KJkORF5tKH+3O1/S07025qPGmcRihzK3w4yO0K8rgkKQw0b9w==", + "node_modules/remark-lint-no-undefined-references/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent": { + "node_modules/remark-lint-no-unused-definitions": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-3.0.0.tgz", - "integrity": "sha512-yULDoVSIqKylLDfW6mVUbrHlyEWUSFtVFiKc+/BA412xDIhm8HZLUnP+FsuBC0OzbIZ+bO9Txy52WtO3LGnK1A==", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.0.0.tgz", + "integrity": "sha512-1LqEZx0IJx59ezXA9e0qq6h5W3n9I6oiBm3Kl+HvmXTFl1OME6f8SVFwtDbt9EaGmf+3NL+T24cWIhZWjmZ0bA==", "dependencies": { - "mdast-util-heading-style": "^1.0.2", - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-3.0.0.tgz", - "integrity": "sha512-b8ImhLv2AnRDxtYUODplzsl/7IwQ+lqRmD1bwbZgSerEP9MLaULW3SjH37EyA6z+8rCDjvEyppKKU6zec0TCjg==", + "node_modules/remark-lint-no-unused-definitions/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding": { + "node_modules/remark-lint-ordered-list-marker-style": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz", - "integrity": "sha512-3s9uW3Yux9RFC0xV81MQX3bsYs+UY7nPnRuMxeIxgcVwxQ4E/mTJd9QjXUwBhU9kdPtJ5AalngdmOW2Tgar8Cg==", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.0.0.tgz", + "integrity": "sha512-HDg5Fyg3tENtmI5SpEL34TvEjIiVX4GhuOjU8aOGF7T4SMG69kLyx+IWMKhg39pBw+3h4lG6FDC8IfqYXONNLg==", "dependencies": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls": { + "node_modules/remark-lint-prohibited-strings": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-3.0.0.tgz", + "integrity": "sha512-Aw21KVeoOiDte6dNfeTfTgjKV19yWXpPjLxfJ3ShC22/r97gkGdOo4dnuwyEEAfKhr3uimtSf3rRQyGSudY5tQ==", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.1", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.1" + } + }, + "node_modules/remark-lint-prohibited-strings/node_modules/unified-lint-rule": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz", - "integrity": "sha512-IDdKtWOMuKVQIlb1CnsgBoyoTcXU3LppelDFAIZePbRPySVHklTtuK57kacgU5grc7gPM04bZV96eliGrRU7Iw==", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.1.tgz", + "integrity": "sha512-2RzZuuuWW+ifftM0zd/ZEng0Hb5lah+Zi+ZL/ybj8BrLO/TH2aQAMYvG+iC95aCg2FkWu/pcvVvHqsh2UMmzPg==", "dependencies": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "node_modules/remark-lint-rule-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.0.0.tgz", + "integrity": "sha512-KHSPHW/7YCl9gHFsqqWOqIkJYmPuxTu/5G3Ks3lG8seBDf1bg+lPPUg5TigsKa/E7juVgfTR7AhK6P+lYAp4EA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz", - "integrity": "sha512-VKSItR6c+u3OsE5pUiSmNusERNyQS9Nnji26ezoQ1uvy06k3RypIjmzQqJ/hCkSiF+hoyC3ibtrrGT8gorzCmQ==", + "node_modules/remark-lint-rule-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-stringify-position": "^2.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz", - "integrity": "sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow==", + "node_modules/remark-lint-strong-marker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.0.0.tgz", + "integrity": "sha512-nNyW3tKl0rEf2j784HzVWChAomCxzld+v2A5R5r5Zw5VogUNikZA7ZRwy51HsmhqiTWHArVGeyuvCPrpkTDZ0A==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz", - "integrity": "sha512-2jcZBdnN6ecP7u87gkOVFrvICLXIU5OsdWbo160FvS/2v3qqqwF2e/n/e7D9Jd+KTq1mR1gEVVuTqkWWuh3cig==", + "node_modules/remark-lint-strong-marker/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz", - "integrity": "sha512-pTZbslG412rrwwGQkIboA8wpBvcjmGFmvugIA+UQR+GfFysKtJ5OZMPGJ98/9CYWjw9Z5m0/EktplZ5TjFjqwA==", + "node_modules/remark-lint-table-cell-padding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.0.0.tgz", + "integrity": "sha512-jYBhfu/x0bEXt+wilHnm76q6wHnPVW2v2EuTdvAsxqkVtlvWSl9BbO4bb/L7jKqwlfiTK8E/luHKZuPiNWlucw==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz", - "integrity": "sha512-+l7GovI6T+3LhnTtz/SmSRyOb6Fxy6tmaObKHrwb/GAebI/4MhFS1LVo3vbiP/RpPYtyQoFbbuXI55hqBG4ibQ==", + "node_modules/remark-lint-table-cell-padding/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-2.0.1.tgz", - "integrity": "sha512-Fy5fMKNA8AsfhRtxyxBnHlGMpDDfns9VSSYv00RiC96qwRD82VhDRM3tYWZRBBxE+j71t6g47x9o/poGC7PThQ==", + "node_modules/remark-lint-table-pipes": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", + "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "vfile-location": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-trailing-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-trailing-spaces/-/remark-lint-no-trailing-spaces-2.0.1.tgz", - "integrity": "sha512-cj8t+nvtO6eAY2lJC7o5du8VeOCK13XiDUHL4U6k5aw6ZLr3EYWbQ/rNc6cr60eHkh5Ldm09KiZjV3CWpxqJ0g==", + "node_modules/remark-lint-table-pipes/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.2" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references": { + "node_modules/remark-lint-unordered-list-marker-style": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-3.0.0.tgz", - "integrity": "sha512-0hzaJS9GuzSQVOeeNdJr/s66LRQOzp618xuOQPYWHcJdd+SCaRTyWbjMrTM/cCI5L1sYjgurp410NkIBQ32Vqg==", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.0.0.tgz", + "integrity": "sha512-iwliMh7GzTdFAWKnVSabpdfcI6qoDE5PPX8hacDIZNbTe4xuUVFbopGCzsTlLiFQkTn6m3ePwOQn+lIbFofKDQ==", "dependencies": { - "collapse-white-space": "^1.0.4", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.1.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.1.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-2.0.1.tgz", - "integrity": "sha512-+BMc0BOjc364SvKYLkspmxDch8OaKPbnUGgQBvK0Bmlwy42baR4C9zhwAWBxm0SBy5Z4AyM4G4jKpLXPH40Oxg==", + "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz", - "integrity": "sha512-Cnpw1Dn9CHn+wBjlyf4qhPciiJroFOEGmyfX008sQ8uGoPZsoBVIJx76usnHklojSONbpjEDcJCjnOvfAcWW1A==", + "node_modules/remark-parse": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", + "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-prohibited-strings": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-2.0.0.tgz", - "integrity": "sha512-N94RTdAT4qmYNBczNZEZbnpGvtl9GiLPO/xdG569IpbbtNFh5l+Nf5Mx5B1VeJMC8/hAR7wShag03Zf29MOO6Q==", + "node_modules/remark-preset-lint-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.0.1.tgz", + "integrity": "sha512-L7yhho9q9vmpsfMHO2gRKFNj36106iFM4KpodE+3k3rGg5dcmhV+zcsftNh5NGzbKKKYsGQj9C5XxCR/0NwKDg==", "dependencies": { - "escape-string-regexp": "^4.0.0", - "unified-lint-rule": "^1.0.2", - "unist-util-position": "^3.1.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.1" + "js-yaml": "^4.0.0", + "remark-lint-blockquote-indentation": "^3.0.0", + "remark-lint-checkbox-character-style": "^4.0.0", + "remark-lint-checkbox-content-indent": "^4.0.0", + "remark-lint-code-block-style": "^3.0.0", + "remark-lint-definition-spacing": "^3.0.0", + "remark-lint-fenced-code-flag": "^3.0.0", + "remark-lint-fenced-code-marker": "^3.0.0", + "remark-lint-file-extension": "^2.0.0", + "remark-lint-final-definition": "^3.0.0", + "remark-lint-first-heading-level": "^3.0.0", + "remark-lint-heading-style": "^3.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-maximum-line-length": "^3.0.0", + "remark-lint-no-consecutive-blank-lines": "^4.0.0", + "remark-lint-no-file-name-articles": "^2.0.0", + "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", + "remark-lint-no-file-name-outer-dashes": "^2.0.0", + "remark-lint-no-heading-indent": "^4.0.0", + "remark-lint-no-multiple-toplevel-headings": "^3.0.0", + "remark-lint-no-shell-dollars": "^3.0.0", + "remark-lint-no-table-indentation": "^4.0.0", + "remark-lint-no-tabs": "^3.0.0", + "remark-lint-no-trailing-spaces": "^2.0.1", + "remark-lint-prohibited-strings": "^3.0.0", + "remark-lint-rule-style": "^3.0.0", + "remark-lint-strong-marker": "^3.0.0", + "remark-lint-table-cell-padding": "^4.0.0", + "remark-lint-table-pipes": "^4.0.0", + "remark-lint-unordered-list-marker-style": "^3.0.0", + "remark-preset-lint-recommended": "^6.0.0", + "semver": "^7.3.2", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/remark-lint-rule-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz", - "integrity": "sha512-hz4Ff9UdlYmtO6Czz99WJavCjqCer7Cav4VopXt+yVIikObw96G5bAuLYcVS7hvMUGqC9ZuM02/Y/iq9n8pkAg==", + "node_modules/remark-preset-lint-node/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz", - "integrity": "sha512-8X2IsW1jZ5FmW9PLfQjkL0OVy/J3xdXLcZrG1GTeQKQ91BrPFyEZqUM2oM6Y4S6LGtxWer+neZkPZNroZoRPBQ==", + "node_modules/remark-preset-lint-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.0.0.tgz", + "integrity": "sha512-ZVugDvBLFQ2JZ/tRIb0q/Oo4Qwp8s8AD8M/8GU7VgQYQ39GDVzo8lUTg2ugWy3YuBCX7wmnP0UDOSwIJt7vn0A==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "remark-lint": "^9.0.0", + "remark-lint-final-newline": "^2.0.0", + "remark-lint-hard-break-spaces": "^3.0.0", + "remark-lint-list-item-bullet-indent": "^4.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-no-auto-link-without-protocol": "^3.0.0", + "remark-lint-no-blockquote-without-marker": "^5.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-inline-padding": "^4.0.0", + "remark-lint-no-literal-urls": "^3.0.0", + "remark-lint-no-shortcut-reference-image": "^3.0.0", + "remark-lint-no-shortcut-reference-link": "^3.0.0", + "remark-lint-no-undefined-references": "^4.0.0", + "remark-lint-no-unused-definitions": "^3.0.0", + "remark-lint-ordered-list-marker-style": "^3.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz", - "integrity": "sha512-sEKrbyFZPZpxI39R8/r+CwUrin9YtyRwVn0SQkNQEZWZcIpylK+bvoKIldvLIXQPob+ZxklL0GPVRzotQMwuWQ==", - "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, + "node_modules/remark-preset-lint-recommended/node_modules/mdast-comment-marker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz", + "integrity": "sha512-LQ4sf7vUzxz4mQQlzzBDgjaCJO5A0lkIAT9TyeNMfqaP31ooP1Qw9hprf7/V3NCo5FA1nvo5gbnfLVRY79QlDQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz", - "integrity": "sha512-QPokSazEdl0Y8ayUV9UB0Ggn3Jos/RAQwIo0z1KDGnJlGDiF80Jc6iU9RgDNUOjlpQffSLIfSVxH5VVYF/K3uQ==", + "node_modules/remark-preset-lint-recommended/node_modules/remark-lint": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.0.0.tgz", + "integrity": "sha512-ETO4zI48PR1Nz42YiyaYBzyhOiEfppXLnck7HW2pjKqxd36SIyQgM6sxD4ToMQI9KuCgy8mLAl/iVJoDLKxVjw==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "remark-message-control": "^7.0.0", + "unified": "^10.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz", - "integrity": "sha512-8KIDJNDtgbymEvl3LkrXgdxPMTOndcux3BHhNGB2lU4UnxSpYeHsxcDgirbgU6dqCAfQfvMjPvfYk19QTF9WZA==", + "node_modules/remark-preset-lint-recommended/node_modules/remark-message-control": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.0.0.tgz", + "integrity": "sha512-KZySoC97TrMPYfIZ9vJ7wxvQwniy68K6WCY3vmSedDN5YuGfdVOpMj6sjaZQcqbWZV9n7BhrT70E3xaUTtk4hA==", "dependencies": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "rehype": "^12.0.0", + "unified": "^10.0.0", + "unified-message-control": "^4.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-message-control": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz", - "integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==", + "node_modules/remark-preset-lint-recommended/node_modules/unified-message-control": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", + "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", "dependencies": { - "mdast-comment-marker": "^1.0.0", - "unified-message-control": "^3.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "node_modules/remark-preset-lint-recommended/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", "dependencies": { - "mdast-util-from-markdown": "^0.8.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-2.3.0.tgz", - "integrity": "sha512-k2whtqbZ0/RRH2ffumvsNEkpKrbrcYLA2K8bZ5bnPeM/jahmJukas0uk9cYXUmsfDLzV6kuJHaO0EAzaYmVvMg==", - "dependencies": { - "js-yaml": "^4.0.0", - "remark-lint": "^8.0.0", - "remark-lint-blockquote-indentation": "^2.0.0", - "remark-lint-checkbox-character-style": "^3.0.0", - "remark-lint-checkbox-content-indent": "^3.0.0", - "remark-lint-code-block-style": "^2.0.0", - "remark-lint-definition-spacing": "^2.0.0", - "remark-lint-fenced-code-flag": "^2.0.0", - "remark-lint-fenced-code-marker": "^2.0.0", - "remark-lint-file-extension": "^1.0.3", - "remark-lint-final-definition": "^2.0.0", - "remark-lint-first-heading-level": "^2.0.0", - "remark-lint-heading-style": "^2.0.0", - "remark-lint-list-item-indent": "^2.0.0", - "remark-lint-maximum-line-length": "^2.0.0", - "remark-lint-no-consecutive-blank-lines": "^3.0.0", - "remark-lint-no-file-name-articles": "^1.0.4", - "remark-lint-no-file-name-consecutive-dashes": "^1.0.4", - "remark-lint-no-file-name-outer-dashes": "^1.0.5", - "remark-lint-no-heading-indent": "^3.0.0", - "remark-lint-no-multiple-toplevel-headings": "^2.0.0", - "remark-lint-no-shell-dollars": "^2.0.0", - "remark-lint-no-table-indentation": "^3.0.0", - "remark-lint-no-tabs": "^2.0.0", - "remark-lint-no-trailing-spaces": "^2.0.1", - "remark-lint-prohibited-strings": "^2.0.0", - "remark-lint-rule-style": "^2.0.0", - "remark-lint-strong-marker": "^2.0.0", - "remark-lint-table-cell-padding": "^3.0.0", - "remark-lint-table-pipes": "^3.0.0", - "remark-lint-unordered-list-marker-style": "^2.0.0", - "remark-preset-lint-recommended": "^5.0.0", - "semver": "^7.3.2" - } - }, - "node_modules/remark-preset-lint-node/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/remark-preset-lint-node/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/remark-preset-lint-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-5.0.0.tgz", - "integrity": "sha512-uu+Ab8JCwMMaKvvB0LOWTWtM3uAvJbKQM/oyWCEJqj7lUVNTKZS575Ro5rKM3Dx7kQjjR1iw0e99bpAYTc5xNA==", + "node_modules/remark-preset-lint-recommended/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": { - "remark-lint": "^8.0.0", - "remark-lint-final-newline": "^1.0.0", - "remark-lint-hard-break-spaces": "^2.0.0", - "remark-lint-list-item-bullet-indent": "^3.0.0", - "remark-lint-list-item-indent": "^2.0.0", - "remark-lint-no-auto-link-without-protocol": "^2.0.0", - "remark-lint-no-blockquote-without-marker": "^4.0.0", - "remark-lint-no-duplicate-definitions": "^2.0.0", - "remark-lint-no-heading-content-indent": "^3.0.0", - "remark-lint-no-inline-padding": "^3.0.0", - "remark-lint-no-literal-urls": "^2.0.0", - "remark-lint-no-shortcut-reference-image": "^2.0.0", - "remark-lint-no-shortcut-reference-link": "^2.0.0", - "remark-lint-no-undefined-references": "^3.0.0", - "remark-lint-no-unused-definitions": "^2.0.0", - "remark-lint-ordered-list-marker-style": "^2.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2194,11 +3577,13 @@ } }, "node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.0.tgz", + "integrity": "sha512-3LAQqJ/qiUxkWc7fUcVuB7RtIT38rvmxfmJG8z1TiE/D8zi3JGQ2tTcTJu9Tptdpb7gFwU0whRi5q1FbFOb9yA==", "dependencies": { - "mdast-util-to-markdown": "^0.6.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", @@ -2226,18 +3611,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, "node_modules/rollup": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz", - "integrity": "sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==", + "version": "2.56.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.2.tgz", + "integrity": "sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2246,7 +3623,7 @@ "node": ">=10.0.0" }, "optionalDependencies": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.2" } }, "node_modules/safe-buffer": { @@ -2326,10 +3703,14 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "node_modules/space-separated-tokens": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", + "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/string_decoder": { "version": "1.3.0", @@ -2340,27 +3721,46 @@ } }, "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.0.tgz", + "integrity": "sha512-zwXcRmLUdiWhMPrHz6EXITuyTgcEnUqDzspTkCLhQovxywWz6NP9VHgqfVg20V/1mUg0B95AKbXxNT+ALRmqCw==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "^9.2.2", + "is-fullwidth-code-point": "^4.0.0", + "strip-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.1.tgz", + "integrity": "sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.0.tgz", + "integrity": "sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/supports-color": { @@ -2391,12 +3791,12 @@ } }, "node_modules/to-vfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", - "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.1.tgz", + "integrity": "sha512-biljADNq2n+AZn/zX+/87zStnIqctKr/q5OaOD8+qSKINokUGPbWBShvxa1iLUgHz6dGGjVnQPNoFRtVBzMkVg==", "dependencies": { "is-buffer": "^2.0.0", - "vfile": "^4.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2404,9 +3804,9 @@ } }, "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2418,16 +3818,17 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", "dependencies": { - "bail": "^1.0.0", + "@types/unist": "^2.0.0", + "bail": "^2.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2435,18 +3836,19 @@ } }, "node_modules/unified-args": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-8.1.0.tgz", - "integrity": "sha512-t1HPS1cQPsVvt/6EtyWIbQGurza5684WGRigNghZRvzIdHm3LPgMdXPyGx0npORKzdiy5+urkF0rF5SXM8lBuQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-9.0.2.tgz", + "integrity": "sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ==", "dependencies": { - "camelcase": "^5.0.0", - "chalk": "^3.0.0", + "@types/text-table": "^0.2.0", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", "chokidar": "^3.0.0", - "fault": "^1.0.2", + "fault": "^2.0.0", "json5": "^2.0.0", - "minimist": "^1.2.0", + "minimist": "^1.0.0", "text-table": "^0.2.0", - "unified-engine": "^8.0.0" + "unified-engine": "^9.0.0" }, "funding": { "type": "opencollective", @@ -2454,27 +3856,33 @@ } }, "node_modules/unified-engine": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz", - "integrity": "sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==", - "dependencies": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-9.0.3.tgz", + "integrity": "sha512-SgzREcCM2IpUy3JMFUcPRZQ2Py6IwvJ2KIrg2AiI7LnGge6E6OPFWpcabHrEXG0IvO2OI3afiD9DOcQvvZfXDQ==", + "dependencies": { + "@types/concat-stream": "^1.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/js-yaml": "^4.0.0", + "@types/node": "^16.0.0", + "@types/unist": "^2.0.0", "concat-stream": "^2.0.0", "debug": "^4.0.0", - "fault": "^1.0.0", - "figures": "^3.0.0", - "glob": "^7.0.3", + "fault": "^2.0.0", + "glob": "^7.0.0", "ignore": "^5.0.0", "is-buffer": "^2.0.0", "is-empty": "^1.0.0", - "is-plain-obj": "^2.0.0", - "js-yaml": "^3.6.1", - "load-plugin": "^3.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "load-plugin": "^4.0.0", "parse-json": "^5.0.0", - "to-vfile": "^6.0.0", - "trough": "^1.0.0", - "unist-util-inspect": "^5.0.0", - "vfile-reporter": "^6.0.0", - "vfile-statistics": "^1.1.0" + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^7.0.0", + "vfile-message": "^3.0.0", + "vfile-reporter": "^7.0.0", + "vfile-statistics": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2493,34 +3901,21 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unified-message-control": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.2.tgz", - "integrity": "sha512-lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==", - "dependencies": { - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-inspect": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz", - "integrity": "sha512-fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz", + "integrity": "sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw==", "dependencies": { - "is-empty": "^1.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2528,29 +3923,29 @@ } }, "node_modules/unist-util-is": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz", - "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", + "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", "dependencies": { - "@types/unist": "^2.0.2" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2558,13 +3953,13 @@ } }, "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2572,12 +3967,12 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2590,14 +3985,14 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", + "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", @@ -2605,21 +4000,25 @@ } }, "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", + "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", @@ -2627,16 +4026,18 @@ } }, "node_modules/vfile-reporter": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.2.tgz", - "integrity": "sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.1.tgz", + "integrity": "sha512-pof+cQSJCUNmHG6zoBOJfErb6syIWHWM14CwKjsugCixxl4CZdrgzgxwLBW8lIB6czkzX0Agnnhj33YpKyLvmA==", "dependencies": { - "repeat-string": "^1.5.0", - "string-width": "^4.0.0", - "supports-color": "^6.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-sort": "^2.1.2", - "vfile-statistics": "^1.1.0" + "@types/repeat-string": "^1.0.0", + "@types/supports-color": "^8.0.0", + "repeat-string": "^1.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2644,42 +4045,63 @@ } }, "node_modules/vfile-reporter/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/vfile-reporter/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", + "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/vfile-sort": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz", - "integrity": "sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", + "dependencies": { + "vfile-message": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-statistics": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz", - "integrity": "sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "dependencies": { + "vfile-message": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/web-namespaces": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.0.tgz", + "integrity": "sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/wrapped": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz", @@ -2700,9 +4122,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2711,24 +4133,24 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -2785,9 +4207,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz", - "integrity": "sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", + "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2809,9 +4231,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz", - "integrity": "sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", + "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2841,12 +4263,46 @@ } } }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "@types/hast": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.2.tgz", + "integrity": "sha512-Op5W7jYgZI7AWKY5wQ0/QNMzQM7dGQPyW1rXKNiymVCy5iTfdPuGu4HhYNOM2sIv8gUfIuIdcYlXmAepwaowow==", + "requires": { + "@types/unist": "*" + } + }, + "@types/is-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha512-brJKf2boFhUxTDxlpI7cstwiUtA2ovm38UzFTi9aZI6//ARncaV+Q5ALjCaJqXaMtdZk/oPTJnSutugsZR6h8A==" + }, + "@types/js-yaml": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.2.tgz", + "integrity": "sha512-KbeHS/Y4R+k+5sWXEYzAZKuB1yQlZtEghuhRxrVRLaqhtoG5+26JwQsa4HyS3AWX8v1Uwukma5HheduUDskasA==" + }, "@types/mdast": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", @@ -2855,11 +4311,25 @@ "@types/unist": "*" } }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", - "dev": true + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" + }, + "@types/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==" + }, + "@types/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-vdna8kjLGljgtPnYN6MBD2UwX62QE0EFLj9QlLXvg6dEu66NksXB900BNguBCMZZY2D9SSqncUskM23vT3uvWQ==" }, "@types/resolve": { "version": "1.17.1", @@ -2870,15 +4340,25 @@ "@types/node": "*" } }, + "@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==" + }, + "@types/text-table": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz", + "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==" + }, "@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.0.tgz", + "integrity": "sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ==" }, "ansi-styles": { "version": "4.3.0", @@ -2889,26 +4369,23 @@ } }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" }, "balanced-match": { "version": "1.0.0", @@ -2916,9 +4393,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "brace-expansion": { "version": "1.1.11", @@ -2938,9 +4415,9 @@ } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "builtin-modules": { "version": "3.2.0", @@ -2948,56 +4425,66 @@ "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", "dev": true }, + "builtins": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.0.0.tgz", + "integrity": "sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==", + "requires": { + "semver": "^7.0.0" + } + }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "ccount": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", + "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==" }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==" + }, + "character-entities-html4": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.0.0.tgz", + "integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==" }, "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", + "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==" }, "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==" }, "chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "optional": true - } + "readdirp": "~3.6.0" } }, "co": { @@ -3005,11 +4492,6 @@ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=" }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3023,6 +4505,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "comma-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", + "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -3046,9 +4533,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } @@ -3060,9 +4547,9 @@ "dev": true }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "error-ex": { "version": "1.3.2", @@ -3073,14 +4560,9 @@ } }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" }, "estree-walker": { "version": "2.0.2", @@ -3094,9 +4576,9 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz", + "integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==", "requires": { "format": "^0.2.0" } @@ -3106,21 +4588,6 @@ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3148,10 +4615,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, "function-bind": { @@ -3195,11 +4661,90 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "hast-util-from-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz", + "integrity": "sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==", + "requires": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + } + }, + "hast-util-is-element": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", + "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "requires": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + } + }, + "hast-util-parse-selector": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz", + "integrity": "sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==", + "requires": { + "@types/hast": "^2.0.0" + } + }, + "hast-util-to-html": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.1.tgz", + "integrity": "sha512-S1mTqXvWVGIxrWw0xOHHvmevwCBFTRGNvXWsjE32IyEAlMhbMkK+ZuP6CAqkQ6Vb7swrehaHpfXHEI6voGDh0w==", + "requires": { + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "unist-util-is": "^5.0.0" + } + }, + "hast-util-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", + "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" + }, + "hastscript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.0.2.tgz", + "integrity": "sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + } + }, + "html-void-elements": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.0.tgz", + "integrity": "sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==" + }, "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" }, + "import-meta-resolve": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz", + "integrity": "sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==", + "requires": { + "builtins": "^4.0.0" + } + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3226,17 +4771,17 @@ "dev": true }, "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==" }, "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", + "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" } }, "is-arrayish": { @@ -3267,9 +4812,9 @@ } }, "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==" }, "is-empty": { "version": "1.2.0", @@ -3282,9 +4827,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" }, "is-glob": { "version": "4.0.1", @@ -3295,9 +4840,9 @@ } }, "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==" }, "is-module": { "version": "1.0.0", @@ -3311,9 +4856,9 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" }, "is-reference": { "version": "1.2.1", @@ -3330,12 +4875,11 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "json-parse-even-better-errors": { @@ -3344,9 +4888,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { "minimist": "^1.2.5" } @@ -3367,12 +4911,12 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "load-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-3.0.0.tgz", - "integrity": "sha512-od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-4.0.1.tgz", + "integrity": "sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw==", "requires": { - "libnpmconfig": "^1.0.0", - "resolve-from": "^5.0.0" + "import-meta-resolve": "^1.0.0", + "libnpmconfig": "^1.0.0" } }, "locate-path": { @@ -3385,9 +4929,9 @@ } }, "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==" }, "lru-cache": { "version": "6.0.0", @@ -3403,163 +4947,394 @@ "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.4" + } + }, + "markdown-extensions": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", + "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==" + }, + "markdown-table": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==" + }, + "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==", + "requires": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "mdast-util-from-markdown": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz", + "integrity": "sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "mdast-util-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", + "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", + "requires": { + "mdast-util-gfm-autolink-literal": "^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-autolink-literal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-NaGypnNJop+hybP/PLnMVV5aN14VFda31DU+j8qsQdPR8m8AENuCX959hXaCiwVeUem33O6zY+JTt0sH1Kj7ng==", + "requires": { + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } + }, + "mdast-util-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "requires": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-gfm-table": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "requires": { + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "requires": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-heading-style": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", + "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", + "requires": { + "@types/mdast": "^3.0.0" + } + }, + "mdast-util-to-markdown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.1.1.tgz", + "integrity": "sha512-4puev/CxuxVdlsx5lVmuzgdqfjkkJJLS1Zm/MnejQ8I7BLeeBlbkwp6WOGJypEcN8g56LbVbhNmn84MvvcAvSQ==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "parse-entities": "^3.0.0", + "zwitch": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" + }, + "micromark": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.3.tgz", + "integrity": "sha512-fWuHx+JKV4zA8WfCFor2DWP9XmsZkIiyWRGofr7P7IGfpRIlb7/C5wwusGsNyr1D8HI5arghZDG1Ikc0FBwS5Q==", + "requires": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "micromark-core-commonmark": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.0.tgz", + "integrity": "sha512-y9g7zymcKRBHM/aNBekstvs/Grpf+y4OEBULUTYvGZcusnp+JeOxmilJY4GMpo2/xY7iHQL9fjz5pD9pSAud9A==", + "requires": { + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "parse-entities": "^3.0.0" + } + }, + "micromark-extension-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", + "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", + "requires": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-extension-gfm-autolink-literal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "markdown-extensions": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", - "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==" - }, - "markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "micromark-extension-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-5PhVJVK8zRsrc+A715NBPMY5iOQwtkMfL/8XURAPeU5fPC0S5dm4qjpoA6fGy4B9MHm+6WNs3xZDxF1ZGTtGDw==", "requires": { - "repeat-string": "^1.0.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-comment-marker": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", - "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==" + "micromark-extension-gfm-table": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", + "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } }, - "mdast-util-from-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz", - "integrity": "sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==", + "micromark-extension-gfm-tagfilter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "micromark-util-types": "^1.0.0" } }, - "mdast-util-gfm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.1.tgz", - "integrity": "sha512-oE1W1zSXU2L2LHg91V22HC3Z1fbsOZTBYUQq+kpM29f9297TbRm0C1l3bQ88RREl0WaUQaB49G7trvwy5utUKQ==", + "micromark-extension-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", "requires": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-util-gfm-autolink-literal": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.2.tgz", - "integrity": "sha512-WFeIrcNNsfBety0gyWuiBIPing9UkVcl/m2iZOyW1uHEH2evjFocet2h77M24ub0WyZ4ucnQn/jWhO5Ozl6j4g==" + "micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } }, - "mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "micromark-factory-label": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz", + "integrity": "sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==", "requires": { - "mdast-util-to-markdown": "^0.6.0" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", "requires": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "micromark-factory-title": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz", + "integrity": "sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==", "requires": { - "mdast-util-to-markdown": "~0.6.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-util-heading-style": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz", - "integrity": "sha512-8ZuuegRqS0KESgjAGW8zTx4tJ3VNIiIaGFNEzFpRSAQBavVc7AvOo9I4g3crcZBfYisHs4seYh0rAVimO6HyOw==" + "micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } }, - "mdast-util-to-markdown": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz", - "integrity": "sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==", + "micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + "micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } }, - "micromark": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz", - "integrity": "sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==", + "micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "micromark-extension-gfm": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.2.tgz", - "integrity": "sha512-ToQEpLkRgg7Tp8D3GM/SjZFPV0cCwWNxZmoEVIOQivOswRtPg7gg2WlCrtHhUWFNX+DgDjbq0iLOPGp4Y15oug==", + "micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", "requires": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.0", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "micromark-extension-gfm-autolink-literal": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.4.tgz", - "integrity": "sha512-471VKd4k3SiX7vx9fC+IYeGQL0RnxwBBXeEc5WConb7naJDG5m16guA+VoFzyXchrvmU08t0dUWWPZ0mkJSXVw==", + "micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", "requires": { - "micromark": "~2.11.0" + "micromark-util-symbol": "^1.0.0" } }, - "micromark-extension-gfm-strikethrough": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.3.tgz", - "integrity": "sha512-MKMoP9x2dsr1aeX46ibBwVf4Q6nJsi5aaUFTOMOID5VOLSxwl4CrqUV4OGFQd6AqhtzBJAxaV+N2trlTBtZDNQ==", + "micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==" + }, + "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==" + }, + "micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", "requires": { - "micromark": "~2.11.0" + "micromark-util-symbol": "^1.0.0" } }, - "micromark-extension-gfm-table": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.2.tgz", - "integrity": "sha512-AAzmj85XO1ydHYX0Lz52HGhcH2sZLm2AVvkwzELXWgZF6vGdq5yZ3CTByFRsqNUPyQBSIYFKLDAtc6KlnO42aw==", + "micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", "requires": { - "micromark": "~2.11.0" + "micromark-util-types": "^1.0.0" } }, - "micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==" + "micromark-util-sanitize-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } }, - "micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "micromark-util-subtokenize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz", + "integrity": "sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==", "requires": { - "micromark": "~2.11.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, + "micromark-util-symbol": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", + "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==" + }, + "micromark-util-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.0.tgz", + "integrity": "sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3613,22 +5388,22 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", + "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" } }, "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -3636,6 +5411,11 @@ "lines-and-columns": "^1.1.6" } }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -3647,9 +5427,9 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "picomatch": { @@ -3662,6 +5442,11 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" }, + "property-information": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz", + "integrity": "sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==" + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -3673,9 +5458,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } @@ -3689,414 +5474,903 @@ "resolve": "^1.1.6" } }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "rehype": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.0.tgz", + "integrity": "sha512-gZcttmf9R5IYHb8AlI1rlmWqXS1yX0rSB/S5ZGJs8atfYZy2DobvH3Ic/gSzB+HL/+oOHPtBguw1TprfhxXBgQ==", "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" + "@types/hast": "^2.0.0", + "rehype-parse": "^8.0.0", + "rehype-stringify": "^9.0.0", + "unified": "^10.0.0" } }, - "remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "rehype-parse": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.2.tgz", + "integrity": "sha512-Y5AvUbTareuAcCQITTbC9SGagm1IvOOSfG5CTTaOUW0pEeoNHkOq4YmMaEywUmSwwOgel3gOF3O7Mwl1acoBzg==", "requires": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^6.0.0", + "unified": "^10.0.0" } }, - "remark-lint": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", - "integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", + "rehype-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz", + "integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==", + "requires": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" + } + }, + "remark": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz", + "integrity": "sha512-7zLG3u8EUjOGuaAS9gUNJPD2j+SqDqAFHv2g6WMpE5CU9rZ6e3IKDM12KHZ3x+YNje+NMAuN55yx8S5msGSx7Q==", + "requires": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + } + }, + "remark-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", + "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", "requires": { - "remark-message-control": "^6.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^1.0.0", + "micromark-extension-gfm": "^1.0.0", + "unified": "^10.0.0" } }, "remark-lint-blockquote-indentation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz", - "integrity": "sha512-uJ9az/Ms9AapnkWpLSCJfawBfnBI2Tn1yUsPNqIFv6YM98ymetItUMyP6ng9NFPqDvTQBbiarulkgoEo0wcafQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.0.0.tgz", + "integrity": "sha512-qWWyAJWHwnVFsfKEyl51os1rr4ex9KX398g8326esJ2/RFsCYJbJaXmVk/S+uf7B7HfOWFuJo+tu/7jlZZ54+Q==", "requires": { - "mdast-util-to-string": "^1.0.2", + "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "dependencies": { - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } } } }, "remark-lint-checkbox-character-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-3.0.0.tgz", - "integrity": "sha512-691OJ5RdBRXVpvnOEiBhMB4uhHJSHVttw83O4qyAkNBiqxa1Axqhsz8FgmzYgRLQbOGd2ncVUcXG1LOJt6C0DQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.0.0.tgz", + "integrity": "sha512-NHpVZOcTJeLOI1gGOvVDz8i3sXVY3s9K+OADupEA89Syfs4YAbnrij8OMJ6ozbHTn4av/HyVfsF4IK8X2pBUeQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-checkbox-content-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-3.0.0.tgz", - "integrity": "sha512-+T4+hoY85qZE2drD2rCe14vF7fAgD3Kv2fkFd1HRvv3M5Riy148w/4YeoBI5U5BpybGTVUeEUYLCeJ8zbJLjkw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.0.0.tgz", + "integrity": "sha512-WeB8aSC1oesu0t/wcqNEbn3bg0kRw+NK7Y5xrhQsREw6NcH1TnvjH95PvizFT5LxXAGhz4AtCFz0B28YugSznQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-code-block-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz", - "integrity": "sha512-eRhmnColmSxJhO61GHZkvO67SpHDshVxs2j3+Zoc5Y1a4zQT2133ZAij04XKaBFfsVLjhbY/+YOWxgvtjx2nmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.0.0.tgz", + "integrity": "sha512-xZMfFeaMOb5OIM4SrNz3QTRV3u5g3/+e6Oq40A3Apwd+a9Kx49lZbGxl8vfqaczP89PTNanm2e4OqqRsCen4Mg==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-definition-spacing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz", - "integrity": "sha512-xK9DOQO5MudITD189VyUiMHBIKltW1oc55L7Fti3i9DedXoBG7Phm+V9Mm7IdWzCVkquZVgVk63xQdqzSQRrSQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.0.0.tgz", + "integrity": "sha512-3LxU7lwCpfPstldcGly2ULb8knH4IOqZHoABT2KyKFw3rRFUCAEUBSl0k5eetnXXNc/X4NlHmnyjIyzhyl4PhA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-fenced-code-flag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz", - "integrity": "sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.0.tgz", + "integrity": "sha512-wvyaTvQ5F78yuw4BDQsneTCvkxHGAjq0OuDQU4pawAZMYO3qFJlau7qoLppgquY1D+jBakejMT/yKnoQgRf1dQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-fenced-code-marker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz", - "integrity": "sha512-lujpjm04enn3ma6lITlttadld6eQ1OWAEcT3qZzvFHp+zPraC0yr0eXlvtDN/0UH8mrln/QmGiZp3i8IdbucZg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.0.0.tgz", + "integrity": "sha512-x3wr1+22Atr72Z7+dUS8cqwuz8m8d4UgCAfBTNO+E6pRLVeCnVMvEtuJbDI5UqBlqvkLGlNofV4lJZQvrZUxqQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-file-extension": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-1.0.5.tgz", - "integrity": "sha512-oVQdf5vEomwHkfQ7R/mgmsWW2H/t9kSvnrxtVoNOHr+qnOEafKKDn+AFhioN2kqtjCZBAjSSrePs6xGKmXKDTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.0.0.tgz", + "integrity": "sha512-fZ0nDGyuZSgkrakLKl+cjqXwOT7iAz0wfSbrkCabYW3DdN6X1QYeSlMtHPizGXuri+AZhVkrUnujSn+9P4hJ2w==", "requires": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-final-definition": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz", - "integrity": "sha512-83K7n2icOHPfBzbR5Mr1o7cu8gOjD8FwJkFx/ly+rW+8SHfjCj4D3WOFGQ1xVdmHjfomBDXXDSNo2oiacADVXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.0.0.tgz", + "integrity": "sha512-RHR8aku0jCH4AoHVepw9b0tCmiBevMtLPG1l5FKhbkLtBWk9GRRryuD3GExxsInEUN2P/a6FhvcBBtRSJbIfIA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-final-newline": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-1.0.5.tgz", - "integrity": "sha512-rfLlW8+Fz2dqnaEgU4JwLA55CQF1T4mfSs/GwkkeUCGPenvEYwSkCN2KO2Gr1dy8qPoOdTFE1rSufLjmeTW5HA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.0.0.tgz", + "integrity": "sha512-3u1IbgVfUN5Qgid8iqc1qlZhzscs4YPu8mwyahvLWVKMkBtoRWjDIVL6+CXcPPoUB2k3p+zuZ5oaE4yfO5Pb4w==", "requires": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-first-heading-level": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-2.0.1.tgz", - "integrity": "sha512-XoK/eLfnz1VSA8QkfMbdbvlCqOwgw29MAWEGC4Cv0666nTcY9uWHlZ/SV/20YNmuEVdfCA+92v92mM486qcASQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.0.0.tgz", + "integrity": "sha512-SMvBHO4HJd1ZkFDfx7OikJAoq5FQe+nFPm3n4DeAKIgM1FywaC7tD7ShwTRUL2DJMzdPjlta7UQRtTryAQGj+w==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-hard-break-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz", - "integrity": "sha512-Qfn/BMQFamHhtbfLrL8Co/dbYJFLRL4PGVXZ5wumkUO5f9FkZC2RsV+MD9lisvGTkJK0ZEJrVVeaPbUIFM0OAw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.0.tgz", + "integrity": "sha512-TNTI32Va6hE33pTYC6iqn4NvyZHqCULsOKKLnAzBocFFFIYuaNUdfKyVc9wknAAutbQLqApr8tgs1mLHtHm9Fw==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-heading-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz", - "integrity": "sha512-IrFLNs0M5Vbn9qg51AYhGUfzgLAcDOjh2hFGMz3mx664dV6zLcNZOPSdJBBJq3JQR4gKpoXcNwN1+FFaIATj+A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.0.0.tgz", + "integrity": "sha512-pPiXG24yXER7xXZr+J11iuMd1DXa71m6Cx7jqUO5z1Ptc7WkolcW6lNRFG76BCOJp8Jp6vH5eNITuQxYa0AnJw==", "requires": { - "mdast-util-heading-style": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-list-item-bullet-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-3.0.0.tgz", - "integrity": "sha512-X2rleWP8XReC4LXKF7Qi5vYiPJkA4Grx5zxsjHofFrVRz6j0PYOCuz7vsO+ZzMunFMfom6FODnscSWz4zouDVw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.0.0.tgz", + "integrity": "sha512-b/U3wAJPE00xGQGYBvjPPsdXsBPJxUvITYgAZee7aA2sGEiflMGmg90anS2sJZEAoD4XtNzp96bPaY6QLN89dQ==", "requires": { + "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-list-item-indent": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz", - "integrity": "sha512-4IKbA9GA14Q9PzKSQI6KEHU/UGO36CSQEjaDIhmb9UOhyhuzz4vWhnSIsxyI73n9nl9GGRAMNUSGzr4pQUFwTA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.0.0.tgz", + "integrity": "sha512-z7doG/aJCy8ivmfbE/cSm9HOpIeUaV5zZHMqSsZ6XZ+wXIj4wtMFVhI7fsAVs5pAB1gzSvZQuwJOfSs2//Fw2g==", "requires": { + "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-maximum-line-length": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz", - "integrity": "sha512-zyWHBFh1oPAy+gkaVFXiTHYP2WwriIeBtaarDqkweytw0+qmuikjVMJTWbQ3+XfYBreD7KKDM9SI79nkp0/IZQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.0.0.tgz", + "integrity": "sha512-0x5TsUDlc4IDPUObNjVtcQxzI1JokUwbVpr22akWypnZaX9QMIL+Cp1OXrKRknZVU3rIndt4QCNnjMEYKezn1g==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-auto-link-without-protocol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz", - "integrity": "sha512-TFcXxzucsfBb/5uMqGF1rQA+WJJqm1ZlYQXyvJEXigEZ8EAxsxZGPb/gOQARHl/y0vymAuYxMTaChavPKaBqpQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.0.0.tgz", + "integrity": "sha512-qeJhWZcO0wnavTdpLU6M1q5RBfo4nZnYmzASoSCmIj/ZxIinluXLmLcMHC2Ol46egWdvwDNpr3V0dJP79fiJMQ==", "requires": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } } } }, "remark-lint-no-blockquote-without-marker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz", - "integrity": "sha512-Y59fMqdygRVFLk1gpx2Qhhaw5IKOR9T38Wf7pjR07bEFBGUNfcoNVIFMd1TCJfCPQxUyJzzSqfZz/KT7KdUuiQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.0.0.tgz", + "integrity": "sha512-6m1KZE8X2OhNV9wpEPVUfFxdzgVD523unRkstlRedKC3ONLlqP/CIliAOITRmIGuUxXVjyD7mDC892bFJnJTfw==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-consecutive-blank-lines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz", - "integrity": "sha512-kmzLlOLrapBKEngwYFTdCZDmeOaze6adFPB7G0EdymD9V1mpAlnneINuOshRLEDKK5fAhXKiZXxdGIaMPkiXrA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", + "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-duplicate-definitions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-2.0.1.tgz", - "integrity": "sha512-XL22benJZB01m+aOse91nsu1IMFqeWJWme9QvoJuxIcBROO1BG1VoqLOkwNcawE/M/0CkvTo5rfx0eMlcnXOIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.0.0.tgz", + "integrity": "sha512-6VOGPegh2ZQ0d9yronmhNXhg2wLYA5litT7bC1ljg2LQwMTIjYOgJbJsQJSKWD+FiHuqVhdWvXHzyTbFCch8Aw==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-stringify-position": "^2.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-file-name-articles": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.5.tgz", - "integrity": "sha512-AQk5eTb3s3TAPPjiglZgqlQj4ycao+gPs8/XkdN1VCPUtewW0GgwoQe7YEuBKayJ6ioN8dGP37Kg/P/PlKaRQA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.0.0.tgz", + "integrity": "sha512-PgyJXEsZDT2r1bvtwaChwTjYKPxo47/OxpJmiozwLcnPsBNbsDtrH+W5gIjNkvkENNcIQD48WZ9jIwyJiskBng==", "requires": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-file-name-consecutive-dashes": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.5.tgz", - "integrity": "sha512-Mg2IDsi790/dSdAzwnBnsMYdZm3qC2QgGwqOWcr0TPABJhhjC3p8r5fX4MNMTXI5It7B7bW9+ImmCeLOZiXkLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.0.0.tgz", + "integrity": "sha512-o7yz//+vel7IFDoZ/M0BmOS4sVE3sTAFOkeYlH44meGbNnEudr+TKKa0lwopMqZHKhXgUPSayCq+D5dgRO6JLA==", "requires": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-file-name-outer-dashes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.6.tgz", - "integrity": "sha512-rT8CmcIlenegS0Yst4maYXdZfqIjBOiRUY8j/KJkORF5tKH+3O1/S07025qPGmcRihzK3w4yO0K8rgkKQw0b9w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.0.0.tgz", + "integrity": "sha512-SZS9FeGLty0wOBLTKyboDUZpjIKMihH88ZvgdqCUgIiDlZ9/72JKtZv43UuMnMVRgKJWQCRyZtT3nSNw3HwM+g==", "requires": { - "unified-lint-rule": "^1.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-heading-content-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-3.0.0.tgz", - "integrity": "sha512-yULDoVSIqKylLDfW6mVUbrHlyEWUSFtVFiKc+/BA412xDIhm8HZLUnP+FsuBC0OzbIZ+bO9Txy52WtO3LGnK1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.0.0.tgz", + "integrity": "sha512-2SljHUYTN83EN5DEZrl7WH4ibmUxai6gONhZaQrQOJyGUO2ReZj5Zdn4xi79NHpORSzCzjn2tSXPB6yL3AhJag==", "requires": { - "mdast-util-heading-style": "^1.0.2", + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-heading-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-3.0.0.tgz", - "integrity": "sha512-b8ImhLv2AnRDxtYUODplzsl/7IwQ+lqRmD1bwbZgSerEP9MLaULW3SjH37EyA6z+8rCDjvEyppKKU6zec0TCjg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.0.0.tgz", + "integrity": "sha512-t4MWiMjPH6TOdM8d5i5Eik6NVrOokoYy6z0GnuI7PNrmNmVVIV9CVBJU94aSXZ7friKx5ucvUEw6NhXIRcNtOw==", "requires": { + "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-inline-padding": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz", - "integrity": "sha512-3s9uW3Yux9RFC0xV81MQX3bsYs+UY7nPnRuMxeIxgcVwxQ4E/mTJd9QjXUwBhU9kdPtJ5AalngdmOW2Tgar8Cg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.0.tgz", + "integrity": "sha512-dugEtHudM/UVQYzTbQoWy4aeG9Micd9g6O/uzN59sIMM8Xb+Srbv/p5/2JNtJWej9PmzINldE0AHjpuB8NiNLA==", "requires": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "dependencies": { - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } } } }, "remark-lint-no-literal-urls": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz", - "integrity": "sha512-IDdKtWOMuKVQIlb1CnsgBoyoTcXU3LppelDFAIZePbRPySVHklTtuK57kacgU5grc7gPM04bZV96eliGrRU7Iw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.0.0.tgz", + "integrity": "sha512-P+9VxemAeSGWGMmFGKcQMIsPgVDaoXnQLl0Bx/TuBms0Favb7XI3ecii/HjjDeks3zlrxlVhzvEkHBk1uH1tdA==", "requires": { - "mdast-util-to-string": "^1.0.2", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } } } }, "remark-lint-no-multiple-toplevel-headings": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz", - "integrity": "sha512-VKSItR6c+u3OsE5pUiSmNusERNyQS9Nnji26ezoQ1uvy06k3RypIjmzQqJ/hCkSiF+hoyC3ibtrrGT8gorzCmQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.0.0.tgz", + "integrity": "sha512-HzPTSy9nu9RHSIUfZCbxEa7KP4CoKNbfI4SW8txh7KnYwr6vC6QgqXPF77z1sIpiSgD9X2z0LwMk0DBk1v3bmA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-stringify-position": "^2.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-shell-dollars": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz", - "integrity": "sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.0.tgz", + "integrity": "sha512-jygHSWi+w7C/VT6+oKIMHhrnMlURWF+ohjdtkxDc/C/7FXWyHg1nJR2t+c+j5Dmirz3oSfInSGw/jUfYP048GQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-shortcut-reference-image": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz", - "integrity": "sha512-2jcZBdnN6ecP7u87gkOVFrvICLXIU5OsdWbo160FvS/2v3qqqwF2e/n/e7D9Jd+KTq1mR1gEVVuTqkWWuh3cig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.0.0.tgz", + "integrity": "sha512-PyB5xkCd8moJf1MrmIXlBTSXZ8pkjXtdrmHzYba7La8S/6TKN2+LFrfN9daLG9pVsD0DSBAlvbajM/MBFh2DfQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-shortcut-reference-link": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz", - "integrity": "sha512-pTZbslG412rrwwGQkIboA8wpBvcjmGFmvugIA+UQR+GfFysKtJ5OZMPGJ98/9CYWjw9Z5m0/EktplZ5TjFjqwA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.0.0.tgz", + "integrity": "sha512-SbPrP6ZfRA2IJ++L7xAivXl7PJdOMzBUlhVwlt5PsWJKWHX07TIB02GGAiMnSOLN0FnUCvgF2c5we6eU1K3plA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-table-indentation": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz", - "integrity": "sha512-+l7GovI6T+3LhnTtz/SmSRyOb6Fxy6tmaObKHrwb/GAebI/4MhFS1LVo3vbiP/RpPYtyQoFbbuXI55hqBG4ibQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.0.0.tgz", + "integrity": "sha512-S1u4DHBS75xAcM/u1zsYize/0uB2u+xAoHbstN3JmFWsTRj5LUSppwkSrWsPk/3y9/jHJAQ4XSihwH7C95EObQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-tabs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-2.0.1.tgz", - "integrity": "sha512-Fy5fMKNA8AsfhRtxyxBnHlGMpDDfns9VSSYv00RiC96qwRD82VhDRM3tYWZRBBxE+j71t6g47x9o/poGC7PThQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", + "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", "requires": { - "unified-lint-rule": "^1.0.0", - "vfile-location": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-trailing-spaces": { @@ -4108,207 +6382,395 @@ } }, "remark-lint-no-undefined-references": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-3.0.0.tgz", - "integrity": "sha512-0hzaJS9GuzSQVOeeNdJr/s66LRQOzp618xuOQPYWHcJdd+SCaRTyWbjMrTM/cCI5L1sYjgurp410NkIBQ32Vqg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.0.0.tgz", + "integrity": "sha512-HI68vLoTTCXDADAp8LQ6RqCuf9QHX7bSaaqKI1V82EyvizxgnFtvN46XIi1uiDTN+Jv/KzAAGaFrofV8OJknBA==", "requires": { - "collapse-white-space": "^1.0.4", - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.1.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.1.0" + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-no-unused-definitions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-2.0.1.tgz", - "integrity": "sha512-+BMc0BOjc364SvKYLkspmxDch8OaKPbnUGgQBvK0Bmlwy42baR4C9zhwAWBxm0SBy5Z4AyM4G4jKpLXPH40Oxg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.0.0.tgz", + "integrity": "sha512-1LqEZx0IJx59ezXA9e0qq6h5W3n9I6oiBm3Kl+HvmXTFl1OME6f8SVFwtDbt9EaGmf+3NL+T24cWIhZWjmZ0bA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-ordered-list-marker-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz", - "integrity": "sha512-Cnpw1Dn9CHn+wBjlyf4qhPciiJroFOEGmyfX008sQ8uGoPZsoBVIJx76usnHklojSONbpjEDcJCjnOvfAcWW1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.0.0.tgz", + "integrity": "sha512-HDg5Fyg3tENtmI5SpEL34TvEjIiVX4GhuOjU8aOGF7T4SMG69kLyx+IWMKhg39pBw+3h4lG6FDC8IfqYXONNLg==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-prohibited-strings": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-2.0.0.tgz", - "integrity": "sha512-N94RTdAT4qmYNBczNZEZbnpGvtl9GiLPO/xdG569IpbbtNFh5l+Nf5Mx5B1VeJMC8/hAR7wShag03Zf29MOO6Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-3.0.0.tgz", + "integrity": "sha512-Aw21KVeoOiDte6dNfeTfTgjKV19yWXpPjLxfJ3ShC22/r97gkGdOo4dnuwyEEAfKhr3uimtSf3rRQyGSudY5tQ==", "requires": { - "escape-string-regexp": "^4.0.0", - "unified-lint-rule": "^1.0.2", - "unist-util-position": "^3.1.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.1" + "escape-string-regexp": "^5.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.1", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.1" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.1.tgz", + "integrity": "sha512-2RzZuuuWW+ifftM0zd/ZEng0Hb5lah+Zi+ZL/ybj8BrLO/TH2aQAMYvG+iC95aCg2FkWu/pcvVvHqsh2UMmzPg==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-rule-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz", - "integrity": "sha512-hz4Ff9UdlYmtO6Czz99WJavCjqCer7Cav4VopXt+yVIikObw96G5bAuLYcVS7hvMUGqC9ZuM02/Y/iq9n8pkAg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.0.0.tgz", + "integrity": "sha512-KHSPHW/7YCl9gHFsqqWOqIkJYmPuxTu/5G3Ks3lG8seBDf1bg+lPPUg5TigsKa/E7juVgfTR7AhK6P+lYAp4EA==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-strong-marker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz", - "integrity": "sha512-8X2IsW1jZ5FmW9PLfQjkL0OVy/J3xdXLcZrG1GTeQKQ91BrPFyEZqUM2oM6Y4S6LGtxWer+neZkPZNroZoRPBQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.0.0.tgz", + "integrity": "sha512-nNyW3tKl0rEf2j784HzVWChAomCxzld+v2A5R5r5Zw5VogUNikZA7ZRwy51HsmhqiTWHArVGeyuvCPrpkTDZ0A==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-table-cell-padding": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz", - "integrity": "sha512-sEKrbyFZPZpxI39R8/r+CwUrin9YtyRwVn0SQkNQEZWZcIpylK+bvoKIldvLIXQPob+ZxklL0GPVRzotQMwuWQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.0.0.tgz", + "integrity": "sha512-jYBhfu/x0bEXt+wilHnm76q6wHnPVW2v2EuTdvAsxqkVtlvWSl9BbO4bb/L7jKqwlfiTK8E/luHKZuPiNWlucw==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-table-pipes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz", - "integrity": "sha512-QPokSazEdl0Y8ayUV9UB0Ggn3Jos/RAQwIo0z1KDGnJlGDiF80Jc6iU9RgDNUOjlpQffSLIfSVxH5VVYF/K3uQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", + "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-lint-unordered-list-marker-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz", - "integrity": "sha512-8KIDJNDtgbymEvl3LkrXgdxPMTOndcux3BHhNGB2lU4UnxSpYeHsxcDgirbgU6dqCAfQfvMjPvfYk19QTF9WZA==", - "requires": { - "unified-lint-rule": "^1.0.0", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "remark-message-control": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz", - "integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.0.0.tgz", + "integrity": "sha512-iwliMh7GzTdFAWKnVSabpdfcI6qoDE5PPX8hacDIZNbTe4xuUVFbopGCzsTlLiFQkTn6m3ePwOQn+lIbFofKDQ==", "requires": { - "mdast-comment-marker": "^1.0.0", - "unified-message-control": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "requires": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + } + } } }, "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", + "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", "requires": { - "mdast-util-from-markdown": "^0.8.0" + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" } }, "remark-preset-lint-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-2.3.0.tgz", - "integrity": "sha512-k2whtqbZ0/RRH2ffumvsNEkpKrbrcYLA2K8bZ5bnPeM/jahmJukas0uk9cYXUmsfDLzV6kuJHaO0EAzaYmVvMg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.0.1.tgz", + "integrity": "sha512-L7yhho9q9vmpsfMHO2gRKFNj36106iFM4KpodE+3k3rGg5dcmhV+zcsftNh5NGzbKKKYsGQj9C5XxCR/0NwKDg==", "requires": { "js-yaml": "^4.0.0", - "remark-lint": "^8.0.0", - "remark-lint-blockquote-indentation": "^2.0.0", - "remark-lint-checkbox-character-style": "^3.0.0", - "remark-lint-checkbox-content-indent": "^3.0.0", - "remark-lint-code-block-style": "^2.0.0", - "remark-lint-definition-spacing": "^2.0.0", - "remark-lint-fenced-code-flag": "^2.0.0", - "remark-lint-fenced-code-marker": "^2.0.0", - "remark-lint-file-extension": "^1.0.3", - "remark-lint-final-definition": "^2.0.0", - "remark-lint-first-heading-level": "^2.0.0", - "remark-lint-heading-style": "^2.0.0", - "remark-lint-list-item-indent": "^2.0.0", - "remark-lint-maximum-line-length": "^2.0.0", - "remark-lint-no-consecutive-blank-lines": "^3.0.0", - "remark-lint-no-file-name-articles": "^1.0.4", - "remark-lint-no-file-name-consecutive-dashes": "^1.0.4", - "remark-lint-no-file-name-outer-dashes": "^1.0.5", - "remark-lint-no-heading-indent": "^3.0.0", - "remark-lint-no-multiple-toplevel-headings": "^2.0.0", - "remark-lint-no-shell-dollars": "^2.0.0", - "remark-lint-no-table-indentation": "^3.0.0", - "remark-lint-no-tabs": "^2.0.0", + "remark-lint-blockquote-indentation": "^3.0.0", + "remark-lint-checkbox-character-style": "^4.0.0", + "remark-lint-checkbox-content-indent": "^4.0.0", + "remark-lint-code-block-style": "^3.0.0", + "remark-lint-definition-spacing": "^3.0.0", + "remark-lint-fenced-code-flag": "^3.0.0", + "remark-lint-fenced-code-marker": "^3.0.0", + "remark-lint-file-extension": "^2.0.0", + "remark-lint-final-definition": "^3.0.0", + "remark-lint-first-heading-level": "^3.0.0", + "remark-lint-heading-style": "^3.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-maximum-line-length": "^3.0.0", + "remark-lint-no-consecutive-blank-lines": "^4.0.0", + "remark-lint-no-file-name-articles": "^2.0.0", + "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", + "remark-lint-no-file-name-outer-dashes": "^2.0.0", + "remark-lint-no-heading-indent": "^4.0.0", + "remark-lint-no-multiple-toplevel-headings": "^3.0.0", + "remark-lint-no-shell-dollars": "^3.0.0", + "remark-lint-no-table-indentation": "^4.0.0", + "remark-lint-no-tabs": "^3.0.0", "remark-lint-no-trailing-spaces": "^2.0.1", - "remark-lint-prohibited-strings": "^2.0.0", - "remark-lint-rule-style": "^2.0.0", - "remark-lint-strong-marker": "^2.0.0", - "remark-lint-table-cell-padding": "^3.0.0", - "remark-lint-table-pipes": "^3.0.0", - "remark-lint-unordered-list-marker-style": "^2.0.0", - "remark-preset-lint-recommended": "^5.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "remark-lint-prohibited-strings": "^3.0.0", + "remark-lint-rule-style": "^3.0.0", + "remark-lint-strong-marker": "^3.0.0", + "remark-lint-table-cell-padding": "^4.0.0", + "remark-lint-table-pipes": "^4.0.0", + "remark-lint-unordered-list-marker-style": "^3.0.0", + "remark-preset-lint-recommended": "^6.0.0", + "semver": "^7.3.2", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "requires": { - "argparse": "^2.0.1" + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" } } } }, "remark-preset-lint-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-5.0.0.tgz", - "integrity": "sha512-uu+Ab8JCwMMaKvvB0LOWTWtM3uAvJbKQM/oyWCEJqj7lUVNTKZS575Ro5rKM3Dx7kQjjR1iw0e99bpAYTc5xNA==", - "requires": { - "remark-lint": "^8.0.0", - "remark-lint-final-newline": "^1.0.0", - "remark-lint-hard-break-spaces": "^2.0.0", - "remark-lint-list-item-bullet-indent": "^3.0.0", - "remark-lint-list-item-indent": "^2.0.0", - "remark-lint-no-auto-link-without-protocol": "^2.0.0", - "remark-lint-no-blockquote-without-marker": "^4.0.0", - "remark-lint-no-duplicate-definitions": "^2.0.0", - "remark-lint-no-heading-content-indent": "^3.0.0", - "remark-lint-no-inline-padding": "^3.0.0", - "remark-lint-no-literal-urls": "^2.0.0", - "remark-lint-no-shortcut-reference-image": "^2.0.0", - "remark-lint-no-shortcut-reference-link": "^2.0.0", - "remark-lint-no-undefined-references": "^3.0.0", - "remark-lint-no-unused-definitions": "^2.0.0", - "remark-lint-ordered-list-marker-style": "^2.0.0" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.0.0.tgz", + "integrity": "sha512-ZVugDvBLFQ2JZ/tRIb0q/Oo4Qwp8s8AD8M/8GU7VgQYQ39GDVzo8lUTg2ugWy3YuBCX7wmnP0UDOSwIJt7vn0A==", + "requires": { + "@types/mdast": "^3.0.0", + "remark-lint": "^9.0.0", + "remark-lint-final-newline": "^2.0.0", + "remark-lint-hard-break-spaces": "^3.0.0", + "remark-lint-list-item-bullet-indent": "^4.0.0", + "remark-lint-list-item-indent": "^3.0.0", + "remark-lint-no-auto-link-without-protocol": "^3.0.0", + "remark-lint-no-blockquote-without-marker": "^5.0.0", + "remark-lint-no-duplicate-definitions": "^3.0.0", + "remark-lint-no-heading-content-indent": "^4.0.0", + "remark-lint-no-inline-padding": "^4.0.0", + "remark-lint-no-literal-urls": "^3.0.0", + "remark-lint-no-shortcut-reference-image": "^3.0.0", + "remark-lint-no-shortcut-reference-link": "^3.0.0", + "remark-lint-no-undefined-references": "^4.0.0", + "remark-lint-no-unused-definitions": "^3.0.0", + "remark-lint-ordered-list-marker-style": "^3.0.0", + "unified": "^10.0.0" + }, + "dependencies": { + "mdast-comment-marker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz", + "integrity": "sha512-LQ4sf7vUzxz4mQQlzzBDgjaCJO5A0lkIAT9TyeNMfqaP31ooP1Qw9hprf7/V3NCo5FA1nvo5gbnfLVRY79QlDQ==" + }, + "remark-lint": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.0.0.tgz", + "integrity": "sha512-ETO4zI48PR1Nz42YiyaYBzyhOiEfppXLnck7HW2pjKqxd36SIyQgM6sxD4ToMQI9KuCgy8mLAl/iVJoDLKxVjw==", + "requires": { + "@types/mdast": "^3.0.0", + "remark-message-control": "^7.0.0", + "unified": "^10.1.0" + } + }, + "remark-message-control": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.0.0.tgz", + "integrity": "sha512-KZySoC97TrMPYfIZ9vJ7wxvQwniy68K6WCY3vmSedDN5YuGfdVOpMj6sjaZQcqbWZV9n7BhrT70E3xaUTtk4hA==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-comment-marker": "^2.0.0", + "rehype": "^12.0.0", + "unified": "^10.0.0", + "unified-message-control": "^4.0.0", + "vfile": "^5.0.0" + } + }, + "unified-message-control": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", + "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "requires": { + "@types/unist": "^2.0.0", + "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" + } + } } }, "remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.0.tgz", + "integrity": "sha512-3LAQqJ/qiUxkWc7fUcVuB7RtIT38rvmxfmJG8z1TiE/D8zi3JGQ2tTcTJu9Tptdpb7gFwU0whRi5q1FbFOb9yA==", "requires": { - "mdast-util-to-markdown": "^0.6.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" } }, "repeat-string": { @@ -4326,18 +6788,13 @@ "path-parse": "^1.0.6" } }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, "rollup": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz", - "integrity": "sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==", + "version": "2.56.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.2.tgz", + "integrity": "sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ==", "dev": true, "requires": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.2" } }, "safe-buffer": { @@ -4385,10 +6842,10 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "space-separated-tokens": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", + "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" }, "string_decoder": { "version": "1.3.0", @@ -4399,21 +6856,30 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.0.tgz", + "integrity": "sha512-zwXcRmLUdiWhMPrHz6EXITuyTgcEnUqDzspTkCLhQovxywWz6NP9VHgqfVg20V/1mUg0B95AKbXxNT+ALRmqCw==", + "requires": { + "emoji-regex": "^9.2.2", + "is-fullwidth-code-point": "^4.0.0", + "strip-ansi": "^7.0.0" + } + }, + "stringify-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.1.tgz", + "integrity": "sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^2.0.0" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.0.tgz", + "integrity": "sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^6.0.0" } }, "supports-color": { @@ -4438,18 +6904,18 @@ } }, "to-vfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", - "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.1.tgz", + "integrity": "sha512-biljADNq2n+AZn/zX+/87zStnIqctKr/q5OaOD8+qSKINokUGPbWBShvxa1iLUgHz6dGGjVnQPNoFRtVBzMkVg==", "requires": { "is-buffer": "^2.0.0", - "vfile": "^4.0.0" + "vfile": "^5.0.0" } }, "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" }, "typedarray": { "version": "0.0.6", @@ -4457,55 +6923,63 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", "requires": { - "bail": "^1.0.0", + "@types/unist": "^2.0.0", + "bail": "^2.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" } }, "unified-args": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-8.1.0.tgz", - "integrity": "sha512-t1HPS1cQPsVvt/6EtyWIbQGurza5684WGRigNghZRvzIdHm3LPgMdXPyGx0npORKzdiy5+urkF0rF5SXM8lBuQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-9.0.2.tgz", + "integrity": "sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ==", "requires": { - "camelcase": "^5.0.0", - "chalk": "^3.0.0", + "@types/text-table": "^0.2.0", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", "chokidar": "^3.0.0", - "fault": "^1.0.2", + "fault": "^2.0.0", "json5": "^2.0.0", - "minimist": "^1.2.0", + "minimist": "^1.0.0", "text-table": "^0.2.0", - "unified-engine": "^8.0.0" + "unified-engine": "^9.0.0" } }, "unified-engine": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz", - "integrity": "sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==", - "requires": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-9.0.3.tgz", + "integrity": "sha512-SgzREcCM2IpUy3JMFUcPRZQ2Py6IwvJ2KIrg2AiI7LnGge6E6OPFWpcabHrEXG0IvO2OI3afiD9DOcQvvZfXDQ==", + "requires": { + "@types/concat-stream": "^1.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/js-yaml": "^4.0.0", + "@types/node": "^16.0.0", + "@types/unist": "^2.0.0", "concat-stream": "^2.0.0", "debug": "^4.0.0", - "fault": "^1.0.0", - "figures": "^3.0.0", - "glob": "^7.0.3", + "fault": "^2.0.0", + "glob": "^7.0.0", "ignore": "^5.0.0", "is-buffer": "^2.0.0", "is-empty": "^1.0.0", - "is-plain-obj": "^2.0.0", - "js-yaml": "^3.6.1", - "load-plugin": "^3.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "load-plugin": "^4.0.0", "parse-json": "^5.0.0", - "to-vfile": "^6.0.0", - "trough": "^1.0.0", - "unist-util-inspect": "^5.0.0", - "vfile-reporter": "^6.0.0", - "vfile-statistics": "^1.1.0" + "to-vfile": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^7.0.0", + "vfile-message": "^3.0.0", + "vfile-reporter": "^7.0.0", + "vfile-statistics": "^2.0.0" } }, "unified-lint-rule": { @@ -4516,63 +6990,54 @@ "wrapped": "^1.0.1" } }, - "unified-message-control": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.2.tgz", - "integrity": "sha512-lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==", - "requires": { - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" - } - }, "unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" }, "unist-util-inspect": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz", - "integrity": "sha512-fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz", + "integrity": "sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw==", "requires": { - "is-empty": "^1.0.0" + "@types/unist": "^2.0.0" } }, "unist-util-is": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz", - "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", + "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", "requires": { - "@types/unist": "^2.0.2" + "@types/unist": "^2.0.0" } }, "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" } }, "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "unist-util-is": "^5.0.0" } }, "util-deprecate": { @@ -4581,67 +7046,84 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", + "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" } }, "vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "requires": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + } }, "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", + "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", "requires": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "unist-util-stringify-position": "^3.0.0" } }, "vfile-reporter": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.2.tgz", - "integrity": "sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.1.tgz", + "integrity": "sha512-pof+cQSJCUNmHG6zoBOJfErb6syIWHWM14CwKjsugCixxl4CZdrgzgxwLBW8lIB6czkzX0Agnnhj33YpKyLvmA==", "requires": { - "repeat-string": "^1.5.0", - "string-width": "^4.0.0", - "supports-color": "^6.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-sort": "^2.1.2", - "vfile-statistics": "^1.1.0" + "@types/repeat-string": "^1.0.0", + "@types/supports-color": "^8.0.0", + "repeat-string": "^1.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" }, "dependencies": { "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==" }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", + "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^5.0.0" } } } }, "vfile-sort": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz", - "integrity": "sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz", + "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==", + "requires": { + "vfile-message": "^3.0.0" + } }, "vfile-statistics": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz", - "integrity": "sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz", + "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==", + "requires": { + "vfile-message": "^3.0.0" + } + }, + "web-namespaces": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.0.tgz", + "integrity": "sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==" }, "wrapped": { "version": "1.0.1", @@ -4663,9 +7145,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" } } } diff --git a/tools/node-lint-md-cli-rollup/package.json b/tools/node-lint-md-cli-rollup/package.json index 5d8913fb497463..56ad44b391eee2 100644 --- a/tools/node-lint-md-cli-rollup/package.json +++ b/tools/node-lint-md-cli-rollup/package.json @@ -3,23 +3,22 @@ "description": "remark packaged for Node.js Markdown linting", "version": "2.0.2", "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - "rollup": "^2.36.1", + "@rollup/plugin-node-resolve": "^13.0.4", + "rollup": "^2.52.7", "shx": "^0.3.3" }, "dependencies": { "markdown-extensions": "^1.1.1", - "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", - "remark-preset-lint-node": "^2.3.0", - "unified-args": "^8.1.0" + "remark": "^14.0.0", + "remark-gfm": "^2.0.0", + "remark-preset-lint-node": "^3.0.0", + "unified-args": "^9.0.0" }, "main": "dist/index.js", "scripts": { "build": "npx rollup -c", - "build-node": "npm run build && npx shx cp dist/index.js ../lint-md.js" + "build-node": "npm run build && npx shx cp dist/index.mjs ../lint-md.mjs" } } diff --git a/tools/node-lint-md-cli-rollup/rollup.config.js b/tools/node-lint-md-cli-rollup/rollup.config.js index 654f033cf65b8d..0a2b2098e69dd6 100644 --- a/tools/node-lint-md-cli-rollup/rollup.config.js +++ b/tools/node-lint-md-cli-rollup/rollup.config.js @@ -5,24 +5,20 @@ const commonjs = require('@rollup/plugin-commonjs'); const json = require('@rollup/plugin-json'); module.exports = { - input: 'src/cli-entry.js', + input: 'src/cli-entry.mjs', output: { - file: 'dist/index.js', - format: 'cjs', + file: 'dist/index.mjs', + format: 'es', sourcemap: false, - exports: 'default', + exports: 'none', }, external: [ - 'stream', - 'path', - 'module', - 'util', - 'tty', - 'os', - 'fs', - 'fsevents', - 'events', - 'assert', + 'node:events', + 'node:fs', + 'node:path', + 'node:process', + 'node:stream', + 'node:url', ], plugins: [ { @@ -40,13 +36,15 @@ module.exports = { 'fsevents = require(\'fsevents\');', 'fsevents = undefined;' ); } + // Remove circular dependency in glob that messes up rollup + return code.replace("var Glob = require('./glob.js').Glob", ''); } }, json({ preferConst: true }), - nodeResolve(), // tells Rollup how to find date-fns in node_modules - commonjs(), // Converts date-fns to ES modules + nodeResolve({ exportConditions: ['node'] }), + commonjs(), { name: 'banner', renderChunk(code) { diff --git a/tools/node-lint-md-cli-rollup/src/cli-entry.js b/tools/node-lint-md-cli-rollup/src/cli-entry.mjs similarity index 50% rename from tools/node-lint-md-cli-rollup/src/cli-entry.js rename to tools/node-lint-md-cli-rollup/src/cli-entry.mjs index e417cc88d45a8d..71e2563926b26c 100644 --- a/tools/node-lint-md-cli-rollup/src/cli-entry.js +++ b/tools/node-lint-md-cli-rollup/src/cli-entry.mjs @@ -1,18 +1,16 @@ -'use strict'; - // To aid in future maintenance, this layout closely matches remark-cli/cli.js. -// https://github.com/remarkjs/remark/blob/master/packages/remark-cli/cli.js +// https://github.com/remarkjs/remark/blob/HEAD/packages/remark-cli/cli.js -const start = require('unified-args'); -const extensions = require('markdown-extensions'); -const processor = require('remark'); -const proc = require('remark/package.json'); -const cli = require('../package.json'); -const lintNode = require('remark-preset-lint-node'); -const gfm = require('remark-gfm'); +import { args } from 'unified-args'; +import extensions from 'markdown-extensions'; +import { remark } from 'remark'; +import proc from 'remark/package.json'; +import cli from '../package.json'; +import lintNode from 'remark-preset-lint-node'; +import gfm from 'remark-gfm'; -start({ - processor: processor().use(gfm).use(lintNode), +args({ + processor: remark().use(gfm).use(lintNode), name: proc.name, description: cli.description, version: [ diff --git a/tools/node_modules/@babel/core/lib/config/partial.js b/tools/node_modules/@babel/core/lib/config/partial.js index cbe5e8dbadd3fd..e8c52e103b64cc 100644 --- a/tools/node_modules/@babel/core/lib/config/partial.js +++ b/tools/node_modules/@babel/core/lib/config/partial.js @@ -42,6 +42,8 @@ var _files = require("./files"); var _resolveTargets = require("./resolve-targets"); +const _excluded = ["showIgnoredFiles"]; + function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function resolveRootMode(rootDir, rootMode) { @@ -140,7 +142,7 @@ const loadPartialConfig = _gensync()(function* (opts) { ({ showIgnoredFiles } = _opts); - opts = _objectWithoutPropertiesLoose(_opts, ["showIgnoredFiles"]); + opts = _objectWithoutPropertiesLoose(_opts, _excluded); _opts; } diff --git a/tools/node_modules/@babel/core/lib/config/validation/options.js b/tools/node_modules/@babel/core/lib/config/validation/options.js index 7fadb16e17774b..998bad38c5bffe 100644 --- a/tools/node_modules/@babel/core/lib/config/validation/options.js +++ b/tools/node_modules/@babel/core/lib/config/validation/options.js @@ -74,7 +74,7 @@ const COMMON_VALIDATORS = { moduleId: _optionAssertions.assertString }); } -const assumptionsNames = new Set(["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]); +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"]); exports.assumptionsNames = assumptionsNames; function getSource(loc) { @@ -205,6 +205,6 @@ function checkNoUnwrappedItemOptionPairs(items, index, type, e) { const thisItem = items[index]; if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { - e.message += `\n- Maybe you meant to use\n` + `"${type}": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; + e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; } } \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/index.js b/tools/node_modules/@babel/core/lib/index.js index 44a70a4f4a3a4c..b89bab4a1c713c 100644 --- a/tools/node_modules/@babel/core/lib/index.js +++ b/tools/node_modules/@babel/core/lib/index.js @@ -245,7 +245,7 @@ var _transformAst = require("./transform-ast"); var _parse = require("./parse"); -const version = "7.14.6"; +const version = "7.15.0"; exports.version = version; const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/corejs2-built-ins.json b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/corejs2-built-ins.json index 9739da06e2add5..72c5f3ad7cf60f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/corejs2-built-ins.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/corejs2-built-ins.json @@ -8,6 +8,7 @@ "node": "4", "ios": "9", "samsung": "5", + "rhino": "1.7.13", "electron": "0.31" }, "es6.array.every": { @@ -22,6 +23,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.fill": { @@ -33,6 +35,7 @@ "node": "4", "ios": "8", "samsung": "5", + "rhino": "1.7.13", "electron": "0.31" }, "es6.array.filter": { @@ -55,6 +58,7 @@ "node": "4", "ios": "8", "samsung": "5", + "rhino": "1.7.13", "electron": "0.31" }, "es6.array.find-index": { @@ -66,6 +70,7 @@ "node": "4", "ios": "8", "samsung": "5", + "rhino": "1.7.13", "electron": "0.31" }, "es7.array.flat-map": { @@ -91,6 +96,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.from": { @@ -127,6 +133,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.is-array": { @@ -141,6 +148,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.iterator": { @@ -152,6 +160,7 @@ "node": "10", "ios": "9", "samsung": "9", + "rhino": "1.7.13", "electron": "3.0" }, "es6.array.last-index-of": { @@ -166,6 +175,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.map": { @@ -188,6 +198,7 @@ "node": "4", "ios": "9", "samsung": "5", + "rhino": "1.7.13", "electron": "0.31" }, "es6.array.reduce": { @@ -202,6 +213,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.reduce-right": { @@ -216,6 +228,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.slice": { @@ -241,6 +254,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.array.sort": { @@ -253,6 +267,7 @@ "ie": "9", "ios": "12", "samsung": "8", + "rhino": "1.7.13", "electron": "3.0" }, "es6.array.species": { @@ -278,6 +293,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.date.to-iso-string": { @@ -292,6 +308,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.date.to-json": { @@ -305,6 +322,7 @@ "android": "4", "ios": "10", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.date.to-primitive": { @@ -330,6 +348,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.function.bind": { @@ -344,6 +363,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.function.has-instance": { @@ -368,6 +388,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.map": { @@ -390,6 +411,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.asinh": { @@ -401,6 +423,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.atanh": { @@ -412,6 +435,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.cbrt": { @@ -423,6 +447,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.clz32": { @@ -434,6 +459,7 @@ "node": "0.12", "ios": "9", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.cosh": { @@ -445,6 +471,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.expm1": { @@ -456,6 +483,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.fround": { @@ -467,6 +495,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.hypot": { @@ -478,6 +507,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.imul": { @@ -490,6 +520,7 @@ "android": "4.4", "ios": "7", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.log1p": { @@ -501,6 +532,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.log10": { @@ -512,6 +544,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.log2": { @@ -523,6 +556,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.sign": { @@ -534,6 +568,7 @@ "node": "0.12", "ios": "9", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.sinh": { @@ -545,6 +580,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.tanh": { @@ -556,6 +592,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.math.trunc": { @@ -567,6 +604,7 @@ "node": "0.12", "ios": "8", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.constructor": { @@ -578,6 +616,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.number.epsilon": { @@ -601,6 +640,7 @@ "android": "4.1", "ios": "9", "samsung": "1.5", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.is-integer": { @@ -612,6 +652,7 @@ "node": "0.12", "ios": "9", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.is-nan": { @@ -624,6 +665,7 @@ "android": "4.1", "ios": "9", "samsung": "1.5", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.is-safe-integer": { @@ -635,6 +677,7 @@ "node": "0.12", "ios": "9", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.max-safe-integer": { @@ -646,6 +689,7 @@ "node": "0.12", "ios": "9", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.min-safe-integer": { @@ -657,6 +701,7 @@ "node": "0.12", "ios": "9", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es6.number.parse-float": { @@ -704,6 +749,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es7.object.define-getter": { @@ -740,6 +786,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.object.define-properties": { @@ -754,6 +801,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es7.object.entries": { @@ -776,6 +824,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.get-own-property-descriptor": { @@ -787,6 +836,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es7.object.get-own-property-descriptors": { @@ -809,6 +859,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.object.get-prototype-of": { @@ -820,6 +871,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es7.object.lookup-getter": { @@ -853,6 +905,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.to-string": { @@ -876,6 +929,7 @@ "android": "4.1", "ios": "9", "samsung": "1.5", + "rhino": "1.7.13", "electron": "0.20" }, "es6.object.is-frozen": { @@ -887,6 +941,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.is-sealed": { @@ -898,6 +953,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.is-extensible": { @@ -909,6 +965,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.keys": { @@ -920,6 +977,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.object.seal": { @@ -931,6 +989,7 @@ "node": "4", "ios": "9", "samsung": "4", + "rhino": "1.7.13", "electron": "0.30" }, "es6.object.set-prototype-of": { @@ -943,6 +1002,7 @@ "ie": "11", "ios": "9", "samsung": "2", + "rhino": "1.7.13", "electron": "0.20" }, "es7.object.values": { @@ -1152,6 +1212,7 @@ "node": "6", "ios": "10", "samsung": "5", + "rhino": "1.7.13", "electron": "1.1" }, "es6.regexp.replace": { @@ -1185,6 +1246,7 @@ "node": "6", "ios": "10", "samsung": "5", + "rhino": "1.7.13", "electron": "1.1" }, "es6.regexp.to-string": { @@ -1292,6 +1354,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.ends-with": { @@ -1303,6 +1366,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.fixed": { @@ -1353,6 +1417,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.includes": { @@ -1364,6 +1429,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.italics": { @@ -1388,6 +1454,7 @@ "node": "0.12", "ios": "9", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "es6.string.link": { @@ -1412,6 +1479,7 @@ "node": "8", "ios": "10", "samsung": "7", + "rhino": "1.7.13", "electron": "1.7" }, "es7.string.pad-end": { @@ -1423,6 +1491,7 @@ "node": "8", "ios": "10", "samsung": "7", + "rhino": "1.7.13", "electron": "1.7" }, "es6.string.raw": { @@ -1445,6 +1514,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.small": { @@ -1469,6 +1539,7 @@ "node": "4", "ios": "9", "samsung": "3.4", + "rhino": "1.7.13", "electron": "0.21" }, "es6.string.strike": { @@ -1522,6 +1593,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es7.string.trim-left": { @@ -1533,6 +1605,7 @@ "node": "10", "ios": "12", "samsung": "9", + "rhino": "1.7.13", "electron": "3.0" }, "es7.string.trim-right": { @@ -1544,6 +1617,7 @@ "node": "10", "ios": "12", "samsung": "9", + "rhino": "1.7.13", "electron": "3.0" }, "es6.typed.array-buffer": { @@ -1569,6 +1643,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "es6.typed.int8-array": { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugin-bugfixes.json b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugin-bugfixes.json index b1521be394f536..6e6d3498df56da 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugin-bugfixes.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugin-bugfixes.json @@ -98,6 +98,7 @@ "ie": "11", "ios": "11", "samsung": "5", + "rhino": "1.7.13", "electron": "0.37" }, "transform-template-literals": { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugins.json b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugins.json index 6a8b47033cfe68..13b40a3abf6794 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugins.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/data/plugins.json @@ -211,11 +211,12 @@ "chrome": "47", "opera": "34", "edge": "13", - "firefox": "45", + "firefox": "43", "safari": "10", "node": "6", "ios": "10", "samsung": "5", + "rhino": "1.7.13", "electron": "0.36" }, "transform-block-scoped-functions": { @@ -371,13 +372,14 @@ "node": "0.12", "ios": "9", "samsung": "3", + "rhino": "1.7.13", "electron": "0.20" }, "transform-new-target": { "chrome": "46", "opera": "33", "edge": "14", - "firefox": "41", + "firefox": "45", "safari": "10", "node": "5", "ios": "10", @@ -407,6 +409,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "transform-property-literals": { @@ -421,6 +424,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "transform-reserved-words": { @@ -435,6 +439,7 @@ "ios": "6", "phantom": "2", "samsung": "1", + "rhino": "1.7.13", "electron": "0.20" }, "proposal-export-namespace-from": { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json index 06660dcf68c3e4..e745f8294cb474 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.14.5", + "version": "7.15.0", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "", @@ -30,7 +30,7 @@ ], "devDependencies": { "@mdn/browser-compat-data": "^3.3.4", - "core-js-compat": "^3.14.0", + "core-js-compat": "^3.16.0", "electron-to-chromium": "^1.3.749" }, "engines": { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/buffer.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/buffer.js index b0d792e8beeb54..1445813969095f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/buffer.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/buffer.js @@ -9,8 +9,8 @@ const SPACES_RE = /^[ \t]+$/; class Buffer { constructor(map) { this._map = null; - this._buf = []; - this._last = ""; + this._buf = ""; + this._last = 0; this._queue = []; this._position = { line: 1, @@ -31,7 +31,7 @@ class Buffer { const map = this._map; const result = { - code: this._buf.join("").trimRight(), + code: this._buf.trimRight(), map: null, rawMappings: map == null ? void 0 : map.getRawMappings() }; @@ -99,9 +99,8 @@ class Buffer { } _append(str, line, column, identifierName, filename, force) { - this._buf.push(str); - - this._last = str[str.length - 1]; + this._buf += str; + this._last = str.charCodeAt(str.length - 1); let i = str.indexOf("\n"); let last = 0; @@ -142,27 +141,34 @@ class Buffer { } } - endsWith(suffix) { - if (suffix.length === 1) { - let last; + getLastChar() { + let last; - if (this._queue.length > 0) { - const str = this._queue[0][0]; - last = str[str.length - 1]; - } else { - last = this._last; - } - - return last === suffix; + if (this._queue.length > 0) { + const str = this._queue[0][0]; + last = str.charCodeAt(0); + } else { + last = this._last; } - const end = this._last + this._queue.reduce((acc, item) => item[0] + acc, ""); + return last; + } + + endsWithCharAndNewline() { + const queue = this._queue; - if (suffix.length <= end.length) { - return end.slice(-suffix.length) === suffix; - } + if (queue.length > 0) { + const last = queue[0][0]; + const lastCp = last.charCodeAt(0); + if (lastCp !== 10) return; - return false; + if (queue.length > 1) { + const secondLast = queue[1][0]; + return secondLast.charCodeAt(0); + } else { + return this._last; + } + } } hasContent() { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js index 412c34da9ae278..2ca0a29e6a8123 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js @@ -46,7 +46,7 @@ function BlockStatement(node) { }); this.removeTrailingNewline(); this.source("end", node.loc); - if (!this.endsWith("\n")) this.newline(); + if (!this.endsWith(10)) this.newline(); this.rightBrace(); } else { this.source("end", node.loc); diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/classes.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/classes.js index f9c8bcc615fd6d..a410505988e348 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/classes.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/classes.js @@ -14,8 +14,13 @@ exports.StaticBlock = StaticBlock; var t = require("@babel/types"); +const { + isExportDefaultDeclaration, + isExportNamedDeclaration +} = t; + function ClassDeclaration(node, parent) { - if (!this.format.decoratorsBeforeExport || !t.isExportDefaultDeclaration(parent) && !t.isExportNamedDeclaration(parent)) { + if (!this.format.decoratorsBeforeExport || !isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent)) { this.printJoin(node.decorators, node); } @@ -68,7 +73,7 @@ function ClassBody(node) { this.indent(); this.printSequence(node.body, node); this.dedent(); - if (!this.endsWith("\n")) this.newline(); + if (!this.endsWith(10)) this.newline(); this.rightBrace(); } } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/expressions.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/expressions.js index f43838c41a0bde..f5cb032ecdbbae 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/expressions.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/expressions.js @@ -33,6 +33,13 @@ var t = require("@babel/types"); var n = require("../node"); +const { + isCallExpression, + isLiteral, + isMemberExpression, + isNewExpression +} = t; + function UnaryExpression(node) { if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || node.operator === "throw") { this.word(node.operator); @@ -90,9 +97,9 @@ function NewExpression(node, parent) { this.space(); this.print(node.callee, node); - if (this.format.minified && node.arguments.length === 0 && !node.optional && !t.isCallExpression(parent, { + if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression(parent, { callee: node - }) && !t.isMemberExpression(parent) && !t.isNewExpression(parent)) { + }) && !isMemberExpression(parent) && !isNewExpression(parent)) { return; } @@ -129,13 +136,13 @@ function Decorator(node) { function OptionalMemberExpression(node) { this.print(node.object, node); - if (!node.computed && t.isMemberExpression(node.property)) { + if (!node.computed && isMemberExpression(node.property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); } let computed = node.computed; - if (t.isLiteral(node.property) && typeof node.property.value === "number") { + if (isLiteral(node.property) && typeof node.property.value === "number") { computed = true; } @@ -257,13 +264,13 @@ function BindExpression(node) { function MemberExpression(node) { this.print(node.object, node); - if (!node.computed && t.isMemberExpression(node.property)) { + if (!node.computed && isMemberExpression(node.property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); } let computed = node.computed; - if (t.isLiteral(node.property) && typeof node.property.value === "number") { + if (isLiteral(node.property) && typeof node.property.value === "number") { computed = true; } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js index f5fba1fe8d82a4..2ae44fbf96da0c 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js @@ -84,6 +84,11 @@ var _modules = require("./modules"); var _types2 = require("./types"); +const { + isDeclareExportDeclaration, + isStatement +} = t; + function AnyTypeAnnotation() { this.word("any"); } @@ -107,7 +112,7 @@ function NullLiteralTypeAnnotation() { } function DeclareClass(node, parent) { - if (!t.isDeclareExportDeclaration(parent)) { + if (!isDeclareExportDeclaration(parent)) { this.word("declare"); this.space(); } @@ -119,7 +124,7 @@ function DeclareClass(node, parent) { } function DeclareFunction(node, parent) { - if (!t.isDeclareExportDeclaration(parent)) { + if (!isDeclareExportDeclaration(parent)) { this.word("declare"); this.space(); } @@ -182,7 +187,7 @@ function DeclareTypeAlias(node) { } function DeclareOpaqueType(node, parent) { - if (!t.isDeclareExportDeclaration(parent)) { + if (!isDeclareExportDeclaration(parent)) { this.word("declare"); this.space(); } @@ -191,7 +196,7 @@ function DeclareOpaqueType(node, parent) { } function DeclareVariable(node, parent) { - if (!t.isDeclareExportDeclaration(parent)) { + if (!isDeclareExportDeclaration(parent)) { this.word("declare"); this.space(); } @@ -334,7 +339,7 @@ function FlowExportDeclaration(node) { if (node.declaration) { const declar = node.declaration; this.print(declar, node); - if (!t.isStatement(declar)) this.semicolon(); + if (!isStatement(declar)) this.semicolon(); } else { this.token("{"); diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/methods.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/methods.js index 1ddceebe404eda..959f142ed6b8ce 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/methods.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/methods.js @@ -14,6 +14,10 @@ exports.ArrowFunctionExpression = ArrowFunctionExpression; var t = require("@babel/types"); +const { + isIdentifier +} = t; + function _params(node) { this.print(node.typeParameters, node); this.token("("); @@ -124,7 +128,7 @@ function ArrowFunctionExpression(node) { const firstParam = node.params[0]; - if (!this.format.retainLines && !this.format.auxiliaryCommentBefore && !this.format.auxiliaryCommentAfter && node.params.length === 1 && t.isIdentifier(firstParam) && !hasTypesOrComments(node, firstParam)) { + if (!this.format.retainLines && !this.format.auxiliaryCommentBefore && !this.format.auxiliaryCommentAfter && node.params.length === 1 && isIdentifier(firstParam) && !hasTypesOrComments(node, firstParam)) { this.print(firstParam, node); } else { this._params(node); diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/modules.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/modules.js index 100fc4a5c923f3..ab4bd2ffaf5e8b 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/modules.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/modules.js @@ -17,6 +17,15 @@ exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; var t = require("@babel/types"); +const { + isClassDeclaration, + isExportDefaultSpecifier, + isExportNamespaceSpecifier, + isImportDefaultSpecifier, + isImportNamespaceSpecifier, + isStatement +} = t; + function ImportSpecifier(node) { if (node.importKind === "type" || node.importKind === "typeof") { this.word(node.importKind); @@ -79,7 +88,7 @@ function ExportAllDeclaration(node) { } function ExportNamedDeclaration(node) { - if (this.format.decoratorsBeforeExport && t.isClassDeclaration(node.declaration)) { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { this.printJoin(node.declaration.decorators, node); } @@ -89,7 +98,7 @@ function ExportNamedDeclaration(node) { } function ExportDefaultDeclaration(node) { - if (this.format.decoratorsBeforeExport && t.isClassDeclaration(node.declaration)) { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { this.printJoin(node.declaration.decorators, node); } @@ -104,7 +113,7 @@ function ExportDeclaration(node) { if (node.declaration) { const declar = node.declaration; this.print(declar, node); - if (!t.isStatement(declar)) this.semicolon(); + if (!isStatement(declar)) this.semicolon(); } else { if (node.exportKind === "type") { this.word("type"); @@ -117,7 +126,7 @@ function ExportDeclaration(node) { for (;;) { const first = specifiers[0]; - if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { + if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { hasSpecial = true; this.print(specifiers.shift(), node); @@ -169,7 +178,7 @@ function ImportDeclaration(node) { for (;;) { const first = specifiers[0]; - if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { + if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { this.print(specifiers.shift(), node); if (specifiers.length) { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/statements.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/statements.js index 7d2a19e45d5806..4bb3c39dfdd3a7 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/statements.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/statements.js @@ -20,6 +20,13 @@ exports.ThrowStatement = exports.BreakStatement = exports.ReturnStatement = expo var t = require("@babel/types"); +const { + isFor, + isForStatement, + isIfStatement, + isStatement +} = t; + function WithStatement(node) { this.word("with"); this.space(); @@ -36,7 +43,7 @@ function IfStatement(node) { this.print(node.test, node); this.token(")"); this.space(); - const needsBlock = node.alternate && t.isIfStatement(getLastStatement(node.consequent)); + const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); if (needsBlock) { this.token("{"); @@ -53,7 +60,7 @@ function IfStatement(node) { } if (node.alternate) { - if (this.endsWith("}")) this.space(); + if (this.endsWith(125)) this.space(); this.word("else"); this.space(); this.printAndIndentOnComments(node.alternate, node); @@ -61,7 +68,7 @@ function IfStatement(node) { } function getLastStatement(statement) { - if (!t.isStatement(statement.body)) return statement; + if (!isStatement(statement.body)) return statement; return getLastStatement(statement.body); } @@ -252,13 +259,19 @@ function DebuggerStatement() { function variableDeclarationIndent() { this.token(","); this.newline(); - if (this.endsWith("\n")) for (let i = 0; i < 4; i++) this.space(true); + + if (this.endsWith(10)) { + for (let i = 0; i < 4; i++) this.space(true); + } } function constDeclarationIndent() { this.token(","); this.newline(); - if (this.endsWith("\n")) for (let i = 0; i < 6; i++) this.space(true); + + if (this.endsWith(10)) { + for (let i = 0; i < 6; i++) this.space(true); + } } function VariableDeclaration(node, parent) { @@ -271,7 +284,7 @@ function VariableDeclaration(node, parent) { this.space(); let hasInits = false; - if (!t.isFor(parent)) { + if (!isFor(parent)) { for (const declar of node.declarations) { if (declar.init) { hasInits = true; @@ -289,8 +302,8 @@ function VariableDeclaration(node, parent) { separator }); - if (t.isFor(parent)) { - if (t.isForStatement(parent)) { + if (isFor(parent)) { + if (isForStatement(parent)) { if (parent.init === node) return; } else { if (parent.left === node) return; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js index 34c0913917e978..b1729b67f1f706 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js @@ -19,6 +19,7 @@ exports.NumericLiteral = NumericLiteral; exports.StringLiteral = StringLiteral; exports.BigIntLiteral = BigIntLiteral; exports.DecimalLiteral = DecimalLiteral; +exports.TopicReference = TopicReference; exports.PipelineTopicExpression = PipelineTopicExpression; exports.PipelineBareFunction = PipelineBareFunction; exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; @@ -27,6 +28,11 @@ var t = require("@babel/types"); var _jsesc = require("jsesc"); +const { + isAssignmentPattern, + isIdentifier +} = t; + function Identifier(node) { this.exactSource(node.loc, () => { this.word(node.name); @@ -76,14 +82,14 @@ function ObjectProperty(node) { this.print(node.key, node); this.token("]"); } else { - if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) { + if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) { this.print(node.value, node); return; } this.print(node.key, node); - if (node.shorthand && t.isIdentifier(node.key) && t.isIdentifier(node.value) && node.key.name === node.value.name) { + if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { return; } } @@ -241,6 +247,25 @@ function DecimalLiteral(node) { this.word(node.value + "m"); } +function TopicReference() { + const { + topicToken + } = this.format; + + switch (topicToken) { + case "#": + this.token("#"); + break; + + default: + { + const givenTopicTokenJSON = JSON.stringify(topicToken); + const message = `The "topicToken" generator option must be "#" (${givenTopicTokenJSON} received instead).`; + throw new Error(message); + } + } +} + function PipelineTopicExpression(node) { this.print(node.expression, node); } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js index 2b653a7370161b..0f4d1363d1c02b 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js @@ -47,7 +47,8 @@ function normalizeOptions(code, opts) { wrap: true, minimal: false }, opts.jsescOption), - recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType + recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType, + topicToken: opts.topicToken }; { format.jsonCompatibleStrings = opts.jsonCompatibleStrings; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js index 037691627bff01..76d91914580f7f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js @@ -14,6 +14,13 @@ var parens = require("./parentheses"); var t = require("@babel/types"); +const { + isCallExpression, + isExpressionStatement, + isMemberExpression, + isNewExpression +} = t; + function expandAliases(obj) { const newObj = {}; @@ -50,17 +57,17 @@ function find(obj, node, parent, printStack) { } function isOrHasCallExpression(node) { - if (t.isCallExpression(node)) { + if (isCallExpression(node)) { return true; } - return t.isMemberExpression(node) && isOrHasCallExpression(node.object); + return isMemberExpression(node) && isOrHasCallExpression(node.object); } function needsWhitespace(node, parent, type) { if (!node) return 0; - if (t.isExpressionStatement(node)) { + if (isExpressionStatement(node)) { node = node.expression; } @@ -95,7 +102,7 @@ function needsWhitespaceAfter(node, parent) { function needsParens(node, parent, printStack) { if (!parent) return false; - if (t.isNewExpression(parent) && parent.callee === node) { + if (isNewExpression(parent) && parent.callee === node) { if (isOrHasCallExpression(node)) return true; } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/parentheses.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/parentheses.js index ec899a4828581c..0eb320ad23dfa1 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/parentheses.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/parentheses.js @@ -30,6 +30,55 @@ exports.Identifier = Identifier; var t = require("@babel/types"); +const { + isArrayTypeAnnotation, + isArrowFunctionExpression, + isAssignmentExpression, + isAwaitExpression, + isBinary, + isBinaryExpression, + isCallExpression, + isClassDeclaration, + isClassExpression, + isConditional, + isConditionalExpression, + isExportDeclaration, + isExportDefaultDeclaration, + isExpressionStatement, + isFor, + isForInStatement, + isForOfStatement, + isForStatement, + isIfStatement, + isIndexedAccessType, + isIntersectionTypeAnnotation, + isLogicalExpression, + isMemberExpression, + isNewExpression, + isNullableTypeAnnotation, + isObjectPattern, + isOptionalCallExpression, + isOptionalMemberExpression, + isReturnStatement, + isSequenceExpression, + isSwitchStatement, + isTSArrayType, + isTSAsExpression, + isTSIntersectionType, + isTSNonNullExpression, + isTSOptionalType, + isTSRestType, + isTSTypeAssertion, + isTSUnionType, + isTaggedTemplateExpression, + isThrowStatement, + isTypeAnnotation, + isUnaryLike, + isUnionTypeAnnotation, + isVariableDeclarator, + isWhileStatement, + isYieldExpression +} = t; const PRECEDENCE = { "||": 0, "??": 0, @@ -58,16 +107,16 @@ const PRECEDENCE = { "**": 10 }; -const isClassExtendsClause = (node, parent) => (t.isClassDeclaration(parent) || t.isClassExpression(parent)) && parent.superClass === node; +const isClassExtendsClause = (node, parent) => (isClassDeclaration(parent) || isClassExpression(parent)) && parent.superClass === node; -const hasPostfixPart = (node, parent) => (t.isMemberExpression(parent) || t.isOptionalMemberExpression(parent)) && parent.object === node || (t.isCallExpression(parent) || t.isOptionalCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node || t.isTaggedTemplateExpression(parent) && parent.tag === node || t.isTSNonNullExpression(parent); +const hasPostfixPart = (node, parent) => (isMemberExpression(parent) || isOptionalMemberExpression(parent)) && parent.object === node || (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent)) && parent.callee === node || isTaggedTemplateExpression(parent) && parent.tag === node || isTSNonNullExpression(parent); function NullableTypeAnnotation(node, parent) { - return t.isArrayTypeAnnotation(parent); + return isArrayTypeAnnotation(parent); } function FunctionTypeAnnotation(node, parent, printStack) { - return t.isUnionTypeAnnotation(parent) || t.isIntersectionTypeAnnotation(parent) || t.isArrayTypeAnnotation(parent) || t.isTypeAnnotation(parent) && t.isArrowFunctionExpression(printStack[printStack.length - 3]); + return isUnionTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isArrayTypeAnnotation(parent) || isTypeAnnotation(parent) && isArrowFunctionExpression(printStack[printStack.length - 3]); } function UpdateExpression(node, parent) { @@ -88,7 +137,7 @@ function DoExpression(node, parent, printStack) { } function Binary(node, parent) { - if (node.operator === "**" && t.isBinaryExpression(parent, { + if (node.operator === "**" && isBinaryExpression(parent, { operator: "**" })) { return parent.left === node; @@ -98,28 +147,28 @@ function Binary(node, parent) { return true; } - if (hasPostfixPart(node, parent) || t.isUnaryLike(parent) || t.isAwaitExpression(parent)) { + if (hasPostfixPart(node, parent) || isUnaryLike(parent) || isAwaitExpression(parent)) { return true; } - if (t.isBinary(parent)) { + if (isBinary(parent)) { const parentOp = parent.operator; const parentPos = PRECEDENCE[parentOp]; const nodeOp = node.operator; const nodePos = PRECEDENCE[nodeOp]; - if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent) || parentPos > nodePos) { + if (parentPos === nodePos && parent.right === node && !isLogicalExpression(parent) || parentPos > nodePos) { return true; } } } function UnionTypeAnnotation(node, parent) { - return t.isArrayTypeAnnotation(parent) || t.isNullableTypeAnnotation(parent) || t.isIntersectionTypeAnnotation(parent) || t.isUnionTypeAnnotation(parent); + return isArrayTypeAnnotation(parent) || isNullableTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isUnionTypeAnnotation(parent); } function OptionalIndexedAccessType(node, parent) { - return t.isIndexedAccessType(parent, { + return isIndexedAccessType(parent, { objectType: node }); } @@ -133,19 +182,19 @@ function TSTypeAssertion() { } function TSUnionType(node, parent) { - return t.isTSArrayType(parent) || t.isTSOptionalType(parent) || t.isTSIntersectionType(parent) || t.isTSUnionType(parent) || t.isTSRestType(parent); + return isTSArrayType(parent) || isTSOptionalType(parent) || isTSIntersectionType(parent) || isTSUnionType(parent) || isTSRestType(parent); } function TSInferType(node, parent) { - return t.isTSArrayType(parent) || t.isTSOptionalType(parent); + return isTSArrayType(parent) || isTSOptionalType(parent); } function BinaryExpression(node, parent) { - return node.operator === "in" && (t.isVariableDeclarator(parent) || t.isFor(parent)); + return node.operator === "in" && (isVariableDeclarator(parent) || isFor(parent)); } function SequenceExpression(node, parent) { - if (t.isForStatement(parent) || t.isThrowStatement(parent) || t.isReturnStatement(parent) || t.isIfStatement(parent) && parent.test === node || t.isWhileStatement(parent) && parent.test === node || t.isForInStatement(parent) && parent.right === node || t.isSwitchStatement(parent) && parent.discriminant === node || t.isExpressionStatement(parent) && parent.expression === node) { + if (isForStatement(parent) || isThrowStatement(parent) || isReturnStatement(parent) || isIfStatement(parent) && parent.test === node || isWhileStatement(parent) && parent.test === node || isForInStatement(parent) && parent.right === node || isSwitchStatement(parent) && parent.discriminant === node || isExpressionStatement(parent) && parent.expression === node) { return false; } @@ -153,7 +202,7 @@ function SequenceExpression(node, parent) { } function YieldExpression(node, parent) { - return t.isBinary(parent) || t.isUnaryLike(parent) || hasPostfixPart(node, parent) || t.isAwaitExpression(parent) && t.isYieldExpression(node) || t.isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); + return isBinary(parent) || isUnaryLike(parent) || hasPostfixPart(node, parent) || isAwaitExpression(parent) && isYieldExpression(node) || isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); } function ClassExpression(node, parent, printStack) { @@ -164,7 +213,7 @@ function ClassExpression(node, parent, printStack) { } function UnaryLike(node, parent) { - return hasPostfixPart(node, parent) || t.isBinaryExpression(parent, { + return hasPostfixPart(node, parent) || isBinaryExpression(parent, { operator: "**", left: node }) || isClassExtendsClause(node, parent); @@ -178,13 +227,13 @@ function FunctionExpression(node, parent, printStack) { } function ArrowFunctionExpression(node, parent) { - return t.isExportDeclaration(parent) || ConditionalExpression(node, parent); + return isExportDeclaration(parent) || ConditionalExpression(node, parent); } function ConditionalExpression(node, parent) { - if (t.isUnaryLike(parent) || t.isBinary(parent) || t.isConditionalExpression(parent, { + if (isUnaryLike(parent) || isBinary(parent) || isConditionalExpression(parent, { test: node - }) || t.isAwaitExpression(parent) || t.isTSTypeAssertion(parent) || t.isTSAsExpression(parent)) { + }) || isAwaitExpression(parent) || isTSTypeAssertion(parent) || isTSAsExpression(parent)) { return true; } @@ -192,15 +241,15 @@ function ConditionalExpression(node, parent) { } function OptionalMemberExpression(node, parent) { - return t.isCallExpression(parent, { + return isCallExpression(parent, { callee: node - }) || t.isMemberExpression(parent, { + }) || isMemberExpression(parent, { object: node }); } function AssignmentExpression(node, parent) { - if (t.isObjectPattern(node.left)) { + if (isObjectPattern(node.left)) { return true; } else { return ConditionalExpression(node, parent); @@ -210,25 +259,25 @@ function AssignmentExpression(node, parent) { function LogicalExpression(node, parent) { switch (node.operator) { case "||": - if (!t.isLogicalExpression(parent)) return false; + if (!isLogicalExpression(parent)) return false; return parent.operator === "??" || parent.operator === "&&"; case "&&": - return t.isLogicalExpression(parent, { + return isLogicalExpression(parent, { operator: "??" }); case "??": - return t.isLogicalExpression(parent) && parent.operator !== "??"; + return isLogicalExpression(parent) && parent.operator !== "??"; } } function Identifier(node, parent, printStack) { if (node.name === "let") { - const isFollowedByBracket = t.isMemberExpression(parent, { + const isFollowedByBracket = isMemberExpression(parent, { object: node, computed: true - }) || t.isOptionalMemberExpression(parent, { + }) || isOptionalMemberExpression(parent, { object: node, computed: true, optional: false @@ -241,7 +290,7 @@ function Identifier(node, parent, printStack) { }); } - return node.name === "async" && t.isForOfStatement(parent) && node === parent.left; + return node.name === "async" && isForOfStatement(parent) && node === parent.left; } function isFirstInContext(printStack, { @@ -258,27 +307,27 @@ function isFirstInContext(printStack, { let parent = printStack[i]; while (i >= 0) { - if (expressionStatement && t.isExpressionStatement(parent, { + if (expressionStatement && isExpressionStatement(parent, { expression: node - }) || exportDefault && t.isExportDefaultDeclaration(parent, { + }) || exportDefault && isExportDefaultDeclaration(parent, { declaration: node - }) || arrowBody && t.isArrowFunctionExpression(parent, { + }) || arrowBody && isArrowFunctionExpression(parent, { body: node - }) || forHead && t.isForStatement(parent, { + }) || forHead && isForStatement(parent, { init: node - }) || forInHead && t.isForInStatement(parent, { + }) || forInHead && isForInStatement(parent, { left: node - }) || forOfHead && t.isForOfStatement(parent, { + }) || forOfHead && isForOfStatement(parent, { left: node })) { return true; } - if (hasPostfixPart(node, parent) && !t.isNewExpression(parent) || t.isSequenceExpression(parent) && parent.expressions[0] === node || t.isConditional(parent, { + if (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isConditional(parent, { test: node - }) || t.isBinary(parent, { + }) || isBinary(parent, { left: node - }) || t.isAssignmentExpression(parent, { + }) || isAssignmentExpression(parent, { left: node })) { node = parent; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/whitespace.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/whitespace.js index 682f439d04b6f2..284577f3cb496f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/whitespace.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/whitespace.js @@ -7,19 +7,35 @@ exports.list = exports.nodes = void 0; var t = require("@babel/types"); +const { + isArrayExpression, + isAssignmentExpression, + isBinary, + isBlockStatement, + isCallExpression, + isFunction, + isIdentifier, + isLiteral, + isMemberExpression, + isObjectExpression, + isOptionalCallExpression, + isOptionalMemberExpression, + isStringLiteral +} = t; + function crawl(node, state = {}) { - if (t.isMemberExpression(node) || t.isOptionalMemberExpression(node)) { + if (isMemberExpression(node) || isOptionalMemberExpression(node)) { crawl(node.object, state); if (node.computed) crawl(node.property, state); - } else if (t.isBinary(node) || t.isAssignmentExpression(node)) { + } else if (isBinary(node) || isAssignmentExpression(node)) { crawl(node.left, state); crawl(node.right, state); - } else if (t.isCallExpression(node) || t.isOptionalCallExpression(node)) { + } else if (isCallExpression(node) || isOptionalCallExpression(node)) { state.hasCall = true; crawl(node.callee, state); - } else if (t.isFunction(node)) { + } else if (isFunction(node)) { state.hasFunction = true; - } else if (t.isIdentifier(node)) { + } else if (isIdentifier(node)) { state.hasHelper = state.hasHelper || isHelper(node.callee); } @@ -27,21 +43,21 @@ function crawl(node, state = {}) { } function isHelper(node) { - if (t.isMemberExpression(node)) { + if (isMemberExpression(node)) { return isHelper(node.object) || isHelper(node.property); - } else if (t.isIdentifier(node)) { + } else if (isIdentifier(node)) { return node.name === "require" || node.name[0] === "_"; - } else if (t.isCallExpression(node)) { + } else if (isCallExpression(node)) { return isHelper(node.callee); - } else if (t.isBinary(node) || t.isAssignmentExpression(node)) { - return t.isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); + } else if (isBinary(node) || isAssignmentExpression(node)) { + return isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); } else { return false; } } function isType(node) { - return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) || t.isIdentifier(node) || t.isMemberExpression(node); + return isLiteral(node) || isObjectExpression(node) || isArrayExpression(node) || isIdentifier(node) || isMemberExpression(node); } const nodes = { @@ -64,7 +80,7 @@ const nodes = { }, LogicalExpression(node) { - if (t.isFunction(node.left) || t.isFunction(node.right)) { + if (isFunction(node.left) || isFunction(node.right)) { return { after: true }; @@ -72,7 +88,7 @@ const nodes = { }, Literal(node) { - if (t.isStringLiteral(node) && node.value === "use strict") { + if (isStringLiteral(node) && node.value === "use strict") { return { after: true }; @@ -80,7 +96,7 @@ const nodes = { }, CallExpression(node) { - if (t.isFunction(node.callee) || isHelper(node)) { + if (isFunction(node.callee) || isHelper(node)) { return { before: true, after: true @@ -89,7 +105,7 @@ const nodes = { }, OptionalCallExpression(node) { - if (t.isFunction(node.callee)) { + if (isFunction(node.callee)) { return { before: true, after: true @@ -117,7 +133,7 @@ const nodes = { }, IfStatement(node) { - if (t.isBlockStatement(node.consequent)) { + if (isBlockStatement(node.consequent)) { return { before: true, after: true diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js index 7bbab4efebb522..30f01200b3eac3 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js @@ -17,6 +17,16 @@ const SCIENTIFIC_NOTATION = /e/i; const ZERO_DECIMAL_INTEGER = /\.0+$/; const NON_DECIMAL_LITERAL = /^0[box]/; const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/; +const { + isProgram, + isFile, + isEmptyStatement +} = t; +const { + needsParens, + needsWhitespaceAfter, + needsWhitespaceBefore +} = n; class Printer { constructor(format, map) { @@ -69,13 +79,19 @@ class Printer { space(force = false) { if (this.format.compact) return; - if (this._buf.hasContent() && !this.endsWith(" ") && !this.endsWith("\n") || force) { + if (force) { this._space(); + } else if (this._buf.hasContent()) { + const lastCp = this.getLastChar(); + + if (lastCp !== 32 && lastCp !== 10) { + this._space(); + } } } word(str) { - if (this._endsWithWord || this.endsWith("/") && str.indexOf("/") === 0) { + if (this._endsWithWord || this.endsWith(47) && str.charCodeAt(0) === 47) { this._space(); } @@ -88,11 +104,14 @@ class Printer { number(str) { this.word(str); - this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str[str.length - 1] !== "."; + this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; } token(str) { - if (str === "--" && this.endsWith("!") || str[0] === "+" && this.endsWith("+") || str[0] === "-" && this.endsWith("-") || str[0] === "." && this._endsWithInteger) { + const lastChar = this.getLastChar(); + const strFirst = str.charCodeAt(0); + + if (str === "--" && lastChar === 33 || strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || strFirst === 46 && this._endsWithInteger) { this._space(); } @@ -101,7 +120,7 @@ class Printer { this._append(str); } - newline(i) { + newline(i = 1) { if (this.format.retainLines || this.format.compact) return; if (this.format.concise) { @@ -109,10 +128,13 @@ class Printer { return; } - if (this.endsWith("\n\n")) return; - if (typeof i !== "number") i = 1; - i = Math.min(2, i); - if (this.endsWith("{\n") || this.endsWith(":\n")) i--; + const charBeforeNewline = this.endsWithCharAndNewline(); + if (charBeforeNewline === 10) return; + + if (charBeforeNewline === 123 || charBeforeNewline === 58) { + i--; + } + if (i <= 0) return; for (let j = 0; j < i; j++) { @@ -120,8 +142,16 @@ class Printer { } } - endsWith(str) { - return this._buf.endsWith(str); + endsWith(char) { + return this.getLastChar() === char; + } + + getLastChar() { + return this._buf.getLastChar(); + } + + endsWithCharAndNewline() { + return this._buf.endsWithCharAndNewline(); } removeTrailingNewline() { @@ -165,7 +195,7 @@ class Printer { } _maybeIndent(str) { - if (this._indent && this.endsWith("\n") && str[0] !== "\n") { + if (this._indent && this.endsWith(10) && str.charCodeAt(0) !== 10) { this._buf.queue(this._getIndent()); } } @@ -265,24 +295,24 @@ class Printer { this._maybeAddAuxComment(this._insideAux && !oldInAux); - let needsParens = n.needsParens(node, parent, this._printStack); + let shouldPrintParens = needsParens(node, parent, this._printStack); if (this.format.retainFunctionParens && node.type === "FunctionExpression" && node.extra && node.extra.parenthesized) { - needsParens = true; + shouldPrintParens = true; } - if (needsParens) this.token("("); + if (shouldPrintParens) this.token("("); this._printLeadingComments(node); - const loc = t.isProgram(node) || t.isFile(node) ? null : node.loc; + const loc = isProgram(node) || isFile(node) ? null : node.loc; this.withSource("start", loc, () => { printMethod.call(this, node, parent); }); this._printTrailingComments(node); - if (needsParens) this.token(")"); + if (shouldPrintParens) this.token(")"); this._printStack.pop(); @@ -366,7 +396,7 @@ class Printer { printBlock(parent) { const node = parent.body; - if (!t.isEmptyStatement(node)) { + if (!isEmptyStatement(node)) { this.space(); } @@ -418,11 +448,11 @@ class Printer { if (this._buf.hasContent()) { if (!leading) lines++; if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; - const needs = leading ? n.needsWhitespaceBefore : n.needsWhitespaceAfter; + const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter; if (needs(node, parent)) lines++; } - this.newline(lines); + this.newline(Math.min(2, lines)); } _getComments(leading, node) { @@ -439,7 +469,12 @@ class Printer { const isBlockComment = comment.type === "CommentBlock"; const printNewLines = isBlockComment && !skipNewLines && !this._noLineTerminator; if (printNewLines && this._buf.hasContent()) this.newline(1); - if (!this.endsWith("[") && !this.endsWith("{")) this.space(); + const lastCharCode = this.getLastChar(); + + if (lastCharCode !== 91 && lastCharCode !== 123) { + this.space(); + } + let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`; if (isBlockComment && this.format.indent.adjustMultilineComment) { @@ -456,7 +491,7 @@ class Printer { val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); } - if (this.endsWith("/")) this._space(); + if (this.endsWith(47)) this._space(); this.withSource("start", comment.loc, () => { this._append(val); }); @@ -467,7 +502,7 @@ class Printer { if (!(comments != null && comments.length)) return; if (inlinePureAnnotation && comments.length === 1 && PURE_ANNOTATION_RE.test(comments[0].value)) { - this._printComment(comments[0], this._buf.hasContent() && !this.endsWith("\n")); + this._printComment(comments[0], this._buf.hasContent() && !this.endsWith(10)); } else { for (const comment of comments) { this._printComment(comment); diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json b/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json index c7f02425f5fc2b..8e22c0bc977f8f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/generator", - "version": "7.14.5", + "version": "7.15.0", "description": "Turns an AST into code.", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", @@ -19,15 +19,16 @@ "lib" ], "dependencies": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.15.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "devDependencies": { "@babel/helper-fixtures": "7.14.5", - "@babel/parser": "7.14.5", + "@babel/parser": "7.15.0", "@types/jsesc": "^2.5.0", - "@types/source-map": "^0.5.0" + "@types/source-map": "^0.5.0", + "charcodes": "^0.2.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/options.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/options.js index fcabd96094366a..cbf4de04affc1d 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/options.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/options.js @@ -15,6 +15,7 @@ const TargetNames = { ios: "ios", android: "android", electron: "electron", - samsung: "samsung" + samsung: "samsung", + rhino: "rhino" }; exports.TargetNames = TargetNames; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json index 4f5b2c6bdb377a..f18b23d2d94450 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-compilation-targets", - "version": "7.14.5", + "version": "7.15.0", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "Helper functions on Babel compilation targets", @@ -21,7 +21,7 @@ "babel-plugin" ], "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" @@ -30,7 +30,7 @@ "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "7.14.5", + "@babel/core": "7.15.0", "@babel/helper-plugin-test-runner": "7.14.5", "@types/semver": "^5.5.0" }, diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js index 99507086d19725..cfa939130fa25e 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js @@ -106,7 +106,7 @@ function toNonOptional(path, base) { node } = path; - if (path.isOptionalMemberExpression()) { + if (t__namespace.isOptionalMemberExpression(node)) { return t__namespace.memberExpression(base, node.property, node.computed); } @@ -119,10 +119,10 @@ function toNonOptional(path, base) { } = callee.node; const context = path.scope.maybeGenerateMemoised(object) || object; callee.get("object").replaceWith(t__namespace.assignmentExpression("=", context, object)); - return t__namespace.callExpression(t__namespace.memberExpression(base, t__namespace.identifier("call")), [context, ...node.arguments]); + return t__namespace.callExpression(t__namespace.memberExpression(base, t__namespace.identifier("call")), [context, ...path.node.arguments]); } - return t__namespace.callExpression(base, node.arguments); + return t__namespace.callExpression(base, path.node.arguments); } return path.node; @@ -165,14 +165,13 @@ const handle = { if (isInDetachedTree(member)) return; const endPath = member.find(({ node, - parent, - parentPath + parent }) => { - if (parentPath.isOptionalMemberExpression()) { + if (t__namespace.isOptionalMemberExpression(parent)) { return parent.optional || parent.object !== node; } - if (parentPath.isOptionalCallExpression()) { + if (t__namespace.isOptionalCallExpression(parent)) { return node !== member.node && parent.optional || parent.callee !== node; } @@ -226,12 +225,15 @@ const handle = { const parentIsOptionalCall = parentPath.isOptionalCallExpression({ callee: node }); + + const isOptionalCall = parent => parentIsOptionalCall; + const parentIsCall = parentPath.isCallExpression({ callee: node }); startingOptional.replaceWith(toNonOptional(startingOptional, baseRef)); - if (parentIsOptionalCall) { + if (isOptionalCall()) { if (parent.optional) { parentPath.replaceWith(this.optionalCall(member, parent.arguments)); } else { @@ -246,11 +248,9 @@ const handle = { let regular = member.node; for (let current = member; current !== endPath;) { - const { - parentPath - } = current; + const parentPath = current.parentPath; - if (parentPath === endPath && parentIsOptionalCall && parent.optional) { + if (parentPath === endPath && isOptionalCall() && parent.optional) { regular = parentPath.node; break; } @@ -315,7 +315,7 @@ const handle = { return; } - if (parentPath.isUpdateExpression({ + if (t__namespace.isUpdateExpression(parent, { argument: node })) { if (this.simpleSet) { @@ -358,7 +358,7 @@ const handle = { const { operator, right: value - } = parent; + } = parentPath.node; if (operator === "=") { parentPath.replaceWith(this.set(member, value)); @@ -380,7 +380,7 @@ const handle = { if (parentPath.isCallExpression({ callee: node })) { - parentPath.replaceWith(this.call(member, parent.arguments)); + parentPath.replaceWith(this.call(member, parentPath.node.arguments)); return; } @@ -392,7 +392,7 @@ const handle = { return; } - parentPath.replaceWith(this.optionalCall(member, parent.arguments)); + parentPath.replaceWith(this.optionalCall(member, parentPath.node.arguments)); return; } @@ -411,7 +411,11 @@ const handle = { return; } - member.replaceWith(this.get(member)); + if (parentPath.isTaggedTemplateExpression()) { + member.replaceWith(this.boundGet(member)); + } else { + member.replaceWith(this.get(member)); + } } }; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json index da12274e34a3ba..33a0eeb32b897f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-member-expression-to-functions", - "version": "7.14.5", + "version": "7.15.0", "description": "Helper function to replace certain member expressions with function calls", "repository": { "type": "git", @@ -15,10 +15,10 @@ "main": "./lib/index.js", "author": "The Babel Team (https://babel.dev/team)", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.0" }, "devDependencies": { - "@babel/traverse": "7.14.5" + "@babel/traverse": "7.15.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js index 44c7dfbe8b0358..b5425d0b5fc2be 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js @@ -65,7 +65,8 @@ function rewriteModuleStatementsAndPrepareHeader(path, { lazy, esNamespaceOnly, constantReexports = loose, - enumerableModuleMeta = loose + enumerableModuleMeta = loose, + noIncompleteNsImportDetection }) { (0, _normalizeAndLoadMetadata.validateImportInteropOption)(importInterop); @@ -108,7 +109,7 @@ function rewriteModuleStatementsAndPrepareHeader(path, { headers.push(nameList.statement); } - headers.push(...buildExportInitializationStatements(path, meta, constantReexports)); + headers.push(...buildExportInitializationStatements(path, meta, constantReexports, noIncompleteNsImportDetection)); return { meta, headers @@ -308,7 +309,7 @@ function buildExportNameListDeclaration(programPath, metadata) { }; } -function buildExportInitializationStatements(programPath, metadata, constantReexports = false) { +function buildExportInitializationStatements(programPath, metadata, constantReexports = false, noIncompleteNsImportDetection = false) { const initStatements = []; const exportNames = []; @@ -330,9 +331,12 @@ function buildExportInitializationStatements(programPath, metadata, constantReex } } - initStatements.push(...chunk(exportNames, 100).map(members => { - return buildInitStatement(metadata, members, programPath.scope.buildUndefinedNode()); - })); + if (!noIncompleteNsImportDetection) { + initStatements.push(...chunk(exportNames, 100).map(members => { + return buildInitStatement(metadata, members, programPath.scope.buildUndefinedNode()); + })); + } + return initStatements; } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js index 917c07d70d8e76..f1ab8c6db3ccbb 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js @@ -267,32 +267,48 @@ const rewriteReferencesVisitor = { } = node; const { exported, + imported, scope: programScope } = this; if (!t.isVariableDeclaration(left)) { - let didTransform = false; - const bodyPath = path.get("body"); - const loopBodyScope = bodyPath.scope; + let didTransformExport = false, + importConstViolationName; + const loopBodyScope = path.get("body").scope; for (const name of Object.keys(t.getOuterBindingIdentifiers(left))) { - if (exported.get(name) && programScope.getBinding(name) === scope.getBinding(name)) { - didTransform = true; + if (programScope.getBinding(name) === scope.getBinding(name)) { + if (exported.has(name)) { + didTransformExport = true; - if (loopBodyScope.hasOwnBinding(name)) { - loopBodyScope.rename(name); + if (loopBodyScope.hasOwnBinding(name)) { + loopBodyScope.rename(name); + } + } + + if (imported.has(name) && !importConstViolationName) { + importConstViolationName = name; } } } - if (!didTransform) { + if (!didTransformExport && !importConstViolationName) { return; } + path.ensureBlock(); + const bodyPath = path.get("body"); const newLoopId = scope.generateUidIdentifierBasedOnNode(left); - bodyPath.unshiftContainer("body", t.expressionStatement(t.assignmentExpression("=", left, newLoopId))); path.get("left").replaceWith(t.variableDeclaration("let", [t.variableDeclarator(t.cloneNode(newLoopId))])); scope.registerDeclaration(path.get("left")); + + if (didTransformExport) { + bodyPath.unshiftContainer("body", t.expressionStatement(t.assignmentExpression("=", left, newLoopId))); + } + + if (importConstViolationName) { + bodyPath.unshiftContainer("body", t.expressionStatement(buildImportThrow(importConstViolationName))); + } } } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json index fc4d72578fbe63..7e85685c0f19dd 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-module-transforms", - "version": "7.14.5", + "version": "7.15.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", @@ -16,13 +16,13 @@ "main": "./lib/index.js", "dependencies": { "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js index b4d6e3b5effe54..04202859efa6a6 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js @@ -269,7 +269,8 @@ class ReplaceSupers { isStatic: this.isStatic, isPrivateMethod: this.isPrivateMethod, getObjectRef: this.getObjectRef.bind(this), - getSuperRef: this.getSuperRef.bind(this) + getSuperRef: this.getSuperRef.bind(this), + boundGet: handler.get }, handler)); } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json index 14a9f51cc907b0..f2b738a540deff 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-replace-supers", - "version": "7.14.5", + "version": "7.15.0", "description": "Helper function to replace supers", "repository": { "type": "git", @@ -14,10 +14,10 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.15.0", "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/lib/index.js index 221160376d6c3d..f59a939d09ec00 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/lib/index.js @@ -67,8 +67,14 @@ const simpleAssignmentVisitor = { return; } - path.node.right = t.binaryExpression(path.node.operator.slice(0, -1), t.cloneNode(path.node.left), path.node.right); - path.node.operator = "="; + const operator = path.node.operator.slice(0, -1); + + if (t.LOGICAL_OPERATORS.includes(operator)) { + path.replaceWith(t.logicalExpression(operator, path.node.left, t.assignmentExpression("=", t.cloneNode(path.node.left), path.node.right))); + } else { + path.node.right = t.binaryExpression(operator, t.cloneNode(path.node.left), path.node.right); + path.node.operator = "="; + } } } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json index 7829aa0693cfc9..8274f26d6cea1a 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-simple-access", - "version": "7.14.5", + "version": "7.14.8", "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.14.5" + "@babel/types": "^7.14.8" }, "devDependencies": { - "@babel/traverse": "7.14.5" + "@babel/traverse": "7.14.8" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json index 80b8c9aeafd6a9..c98f0e40a6175a 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-validator-identifier", - "version": "7.14.5", + "version": "7.14.9", "description": "Validate identifier/keywords name", "repository": { "type": "git", @@ -14,9 +14,7 @@ "main": "./lib/index.js", "exports": "./lib/index.js", "devDependencies": { - "@babel/helper-validator-identifier-baseline": "npm:@babel/helper-validator-identifier@7.10.4", "@unicode/unicode-13.0.0": "^1.0.6", - "benchmark": "^2.1.4", "charcodes": "^0.2.0" }, "engines": { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers.js b/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers.js index 7168c66338fea8..b86a8bf96e1653 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers.js @@ -593,7 +593,10 @@ helpers.possibleConstructorReturn = helper("7.0.0-beta.0")` export default function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); } + return assertThisInitialized(self); } `; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json index 500074f0ec1056..ab4b805c073ab0 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helpers", - "version": "7.14.6", + "version": "7.15.3", "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,8 +16,8 @@ "main": "./lib/index.js", "dependencies": { "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" }, "devDependencies": { "@babel/helper-plugin-test-runner": "7.14.5" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js b/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js index 0552619d9b8a95..cdc02f20641112 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js @@ -17,18 +17,21 @@ import template from "@babel/template"; for (const file of (await fs.promises.readdir(HELPERS_FOLDER)).sort()) { if (IGNORED_FILES.has(file)) continue; + if (file.startsWith(".")) continue; // ignore e.g. vim swap files const [helperName] = file.split("."); const isValidId = isValidBindingIdentifier(helperName); const varName = isValidId ? helperName : `_${helperName}`; - const fileContents = await fs.promises.readFile( - join(fileURLToPath(HELPERS_FOLDER), file), - "utf8" - ); - const { minVersion } = fileContents.match( + const filePath = join(fileURLToPath(HELPERS_FOLDER), file); + const fileContents = await fs.promises.readFile(filePath, "utf8"); + const minVersionMatch = fileContents.match( /^\s*\/\*\s*@minVersion\s+(?\S+)\s*\*\/\s*$/m - ).groups; + ); + if (!minVersionMatch) { + throw new Error(`@minVersion number missing in ${filePath}`); + } + const { minVersion } = minVersionMatch.groups; // TODO: We can minify the helpers in production const source = fileContents diff --git a/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js index fa9b6fa7aded22..c4b35a48433cba 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js @@ -157,6 +157,10 @@ const types$1 = { beforeExpr, isAssign }), + moduloAssign: new TokenType("_=", { + beforeExpr, + isAssign + }), incDec: new TokenType("++/--", { prefix, postfix, @@ -189,7 +193,6 @@ const types$1 = { startsExpr }), modulo: new TokenType("%", { - beforeExpr, binop: 10, startsExpr }), @@ -312,6 +315,8 @@ function isNewLine(code) { } } const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/y; +const skipWhiteSpaceToLineBreak = new RegExp("(?=(" + skipWhiteSpaceInLine.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y"); function isWhitespace(code) { switch (code) { case 0x0009: @@ -392,195 +397,167 @@ class BaseParser { } -function last(stack) { - return stack[stack.length - 1]; +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } } -class CommentsParser extends BaseParser { - addComment(comment) { - if (this.filename) comment.loc.filename = this.filename; - this.state.trailingComments.push(comment); - this.state.leadingComments.push(comment); +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else if (comments !== undefined) { + node.innerComments.unshift(...comments); } +} - adjustCommentsAfterTrailingComma(node, elements, takeAllComments) { - if (this.state.leadingComments.length === 0) { - return; - } +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; - let lastElement = null; - let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } - while (lastElement === null && i > 0) { - lastElement = elements[--i]; - } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} - if (lastElement === null) { - return; - } +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + this.state.comments.push(comment); + } - for (let j = 0; j < this.state.leadingComments.length; j++) { - if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) { - this.state.leadingComments.splice(j, 1); - j--; - } - } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; - const newTrailingComments = []; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } - for (let i = 0; i < this.state.leadingComments.length; i++) { - const leadingComment = this.state.leadingComments[i]; + const { + start: nodeStart + } = node; - if (leadingComment.end < node.end) { - newTrailingComments.push(leadingComment); + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; - if (!takeAllComments) { - this.state.leadingComments.splice(i, 1); - i--; - } + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); } else { - if (node.trailingComments === undefined) { - node.trailingComments = []; + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; } - node.trailingComments.push(leadingComment); + break; } } - - if (takeAllComments) this.state.leadingComments = []; - - if (newTrailingComments.length > 0) { - lastElement.trailingComments = newTrailingComments; - } else if (lastElement.trailingComments !== undefined) { - lastElement.trailingComments = []; - } } - processComment(node) { - if (node.type === "Program" && node.body.length > 0) return; - const stack = this.state.commentStack; - let firstChild, lastChild, trailingComments, i, j; - - if (this.state.trailingComments.length > 0) { - if (this.state.trailingComments[0].start >= node.end) { - trailingComments = this.state.trailingComments; - this.state.trailingComments = []; - } else { - this.state.trailingComments.length = 0; - } - } else if (stack.length > 0) { - const lastInStack = last(stack); + finalizeComment(commentWS) { + const { + comments + } = commentWS; - if (lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) { - trailingComments = lastInStack.trailingComments; - delete lastInStack.trailingComments; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); } - } - - if (stack.length > 0 && last(stack).start >= node.start) { - firstChild = stack.pop(); - } - while (stack.length > 0 && last(stack).start >= node.start) { - lastChild = stack.pop(); - } - - if (!lastChild && firstChild) lastChild = firstChild; - - if (firstChild) { - switch (node.type) { - case "ObjectExpression": - this.adjustCommentsAfterTrailingComma(node, node.properties); - break; + if (commentWS.trailingNode !== null) { + commentWS.trailingNode.leadingComments = comments; + } + } else { + const { + containingNode: node, + start: commentStart + } = commentWS; + + if (this.input.charCodeAt(commentStart - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + adjustInnerComments(node, node.properties, commentWS); + break; - case "ObjectPattern": - this.adjustCommentsAfterTrailingComma(node, node.properties, true); - break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; - case "CallExpression": - this.adjustCommentsAfterTrailingComma(node, node.arguments); - break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; - case "ArrayExpression": - this.adjustCommentsAfterTrailingComma(node, node.elements); - break; + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + adjustInnerComments(node, node.elements, commentWS); + break; - case "ArrayPattern": - this.adjustCommentsAfterTrailingComma(node, node.elements, true); - break; - } - } else if (this.state.commentPreviousNode && (this.state.commentPreviousNode.type === "ImportSpecifier" && node.type !== "ImportSpecifier" || this.state.commentPreviousNode.type === "ExportSpecifier" && node.type !== "ExportSpecifier")) { - this.adjustCommentsAfterTrailingComma(node, [this.state.commentPreviousNode]); - } + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; - if (lastChild) { - if (lastChild.leadingComments) { - if (lastChild !== node && lastChild.leadingComments.length > 0 && last(lastChild.leadingComments).end <= node.start) { - node.leadingComments = lastChild.leadingComments; - delete lastChild.leadingComments; - } else { - for (i = lastChild.leadingComments.length - 2; i >= 0; --i) { - if (lastChild.leadingComments[i].end <= node.start) { - node.leadingComments = lastChild.leadingComments.splice(0, i + 1); - break; - } - } - } - } - } else if (this.state.leadingComments.length > 0) { - if (last(this.state.leadingComments).end <= node.start) { - if (this.state.commentPreviousNode) { - for (j = 0; j < this.state.leadingComments.length; j++) { - if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) { - this.state.leadingComments.splice(j, 1); - j--; + default: + { + setInnerComments(node, comments); } - } - } - - if (this.state.leadingComments.length > 0) { - node.leadingComments = this.state.leadingComments; - this.state.leadingComments = []; } } else { - for (i = 0; i < this.state.leadingComments.length; i++) { - if (this.state.leadingComments[i].end > node.start) { - break; - } - } - - const leadingComments = this.state.leadingComments.slice(0, i); - - if (leadingComments.length) { - node.leadingComments = leadingComments; - } + setInnerComments(node, comments); + } + } + } - trailingComments = this.state.leadingComments.slice(i); + finalizeRemainingComments() { + const { + commentStack + } = this.state; - if (trailingComments.length === 0) { - trailingComments = null; - } - } + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); } - this.state.commentPreviousNode = node; + this.state.commentStack = []; + } - if (trailingComments) { - if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) { - node.innerComments = trailingComments; - } else { - const firstTrailingCommentIndex = trailingComments.findIndex(comment => comment.end >= node.end); + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; - if (firstTrailingCommentIndex > 0) { - node.innerComments = trailingComments.slice(0, firstTrailingCommentIndex); - node.trailingComments = trailingComments.slice(firstTrailingCommentIndex); - } else { - node.trailingComments = trailingComments; - } - } + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; } - - stack.push(node); } } @@ -680,12 +657,17 @@ const ErrorMessages = makeErrorTemplates({ ParamDupe: "Argument name clash.", PatternHasAccessor: "Object pattern can't contain getter or setter.", PatternHasMethod: "Object pattern can't contain methods.", + PipeBodyIsTighter: "Unexpected %0 after pipeline body; any %0 expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: 'Invalid topic token %0. In order to use %0 as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "%0" }.', + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", - PrimaryTopicRequiresSmartPipeline: "Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', PrivateInExpectedIn: "Private names are only allowed in property accesses (`obj.#%0`) or in `in` expressions (`#%0 in obj`).", PrivateNameRedeclaration: "Duplicate private name #%0.", RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", @@ -921,8 +903,8 @@ var estree = (superClass => class extends superClass { } stmtToDirective(stmt) { - const directive = super.stmtToDirective(stmt); const value = stmt.expression.value; + const directive = super.stmtToDirective(stmt); this.addExtra(directive.value, "expressionValue", value); return directive; } @@ -1052,6 +1034,14 @@ var estree = (superClass => class extends superClass { return node; } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { if (node != null && this.isObjectProperty(node)) { this.toAssignable(node.value, isLHS); @@ -1173,24 +1163,17 @@ class TokContext { } const types = { brace: new TokContext("{"), - templateQuasi: new TokContext("${"), template: new TokContext("`", true) }; types$1.braceR.updateContext = context => { - if (context.length > 1) { - context.pop(); - } + context.pop(); }; -types$1.braceL.updateContext = types$1.braceHashL.updateContext = context => { +types$1.braceL.updateContext = types$1.braceHashL.updateContext = types$1.dollarBraceL.updateContext = context => { context.push(types.brace); }; -types$1.dollarBraceL.updateContext = context => { - context.push(types.templateQuasi); -}; - types$1.backQuote.updateContext = context => { if (context[context.length - 1] === types.template) { context.pop(); @@ -1364,7 +1347,19 @@ class ScopeHandler { } get inStaticBlock() { - return (this.currentThisScopeFlags() & SCOPE_STATIC_BLOCK) > 0; + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + + if (flags & SCOPE_STATIC_BLOCK) { + return true; + } + + if (flags & (SCOPE_VAR | SCOPE_CLASS)) { + return false; + } + } } get inNonArrowFunction() { @@ -1532,8627 +1527,8774 @@ class FlowScopeHandler extends ScopeHandler { } -const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); -const FlowErrors = makeErrorTemplates({ - AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", - AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", - AssignReservedType: "Cannot overwrite reserved type %0.", - DeclareClassElement: "The `declare` modifier can only appear on class fields.", - DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", - DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", - EnumBooleanMemberNotInitialized: "Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.", - EnumDuplicateMemberName: "Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.", - EnumInconsistentMemberValues: "Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", - EnumInvalidExplicitType: "Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidExplicitTypeUnknownSupplied: "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidMemberInitializerPrimaryType: "Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.", - EnumInvalidMemberInitializerSymbolType: "Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.", - EnumInvalidMemberInitializerUnknownType: "The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.", - EnumInvalidMemberName: "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.", - EnumNumberMemberNotInitialized: "Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.", - EnumStringMemberInconsistentlyInitailized: "String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.", - GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", - ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", - InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", - InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", - InexactVariance: "Explicit inexact syntax cannot have variance.", - InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", - MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", - NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", - NestedFlowComment: "Cannot have a flow comment inside another flow comment.", - OptionalBindingPattern: "A binding pattern parameter cannot be optional in an implementation signature.", - SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", - SpreadVariance: "Spread properties cannot have variance.", - ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", - ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", - ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", - ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", - ThisParamNoDefault: "The `this` parameter may not have a default value.", - TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", - TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", - UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", - UnexpectedReservedType: "Unexpected reserved type %0.", - UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", - UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", - UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", - UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', - UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", - UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", - UnsupportedDeclareExportKind: "`declare export %0` is not supported. Use `%1` instead.", - UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", - UnterminatedFlowComment: "Unterminated flow-comment." -}, ErrorCodes.SyntaxError); +class State { + constructor() { + this.strict = void 0; + this.curLine = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.maybeInArrowParameters = false; + this.inType = false; + this.noAnonFunctionType = false; + this.inPropertyName = false; + this.hasFlowComment = false; + this.isAmbientContext = false; + this.inAbstractClass = false; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.soloAwait = false; + this.inFSharpPipelineDirectBody = false; + this.labels = []; + this.decoratorStack = [[]]; + this.comments = []; + this.commentStack = []; + this.pos = 0; + this.lineStart = 0; + this.type = types$1.eof; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.lastTokStart = 0; + this.lastTokEnd = 0; + this.context = [types.brace]; + this.exprAllowed = true; + this.containsEsc = false; + this.strictErrors = new Map(); + this.tokensLength = 0; + } -function isEsModuleType(bodyElement) { - return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); -} + init(options) { + this.strict = options.strictMode === false ? false : options.strictMode === true ? true : options.sourceType === "module"; + this.curLine = options.startLine; + this.startLoc = this.endLoc = this.curPosition(); + } -function hasTypeImportKind(node) { - return node.importKind === "type" || node.importKind === "typeof"; -} + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart); + } -function isMaybeDefaultImport(state) { - return (state.type === types$1.name || !!state.type.keyword) && state.value !== "from"; -} + clone(skipArrays) { + const state = new State(); + const keys = Object.keys(this); -const exportSuggestions = { - const: "declare export var", - let: "declare export var", - type: "export type", - interface: "export interface" -}; + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + let val = this[key]; -function partition(list, test) { - const list1 = []; - const list2 = []; + if (!skipArrays && Array.isArray(val)) { + val = val.slice(); + } - for (let i = 0; i < list.length; i++) { - (test(list[i], i, list) ? list1 : list2).push(list[i]); + state[key] = val; + } + + return state; } - return [list1, list2]; } -const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; -var flow = (superClass => class extends superClass { - constructor(...args) { - super(...args); - this.flowPragma = undefined; +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100]); +const forbiddenNumericSeparatorSiblings = { + decBinOct: [46, 66, 69, 79, 95, 98, 101, 111], + hex: [46, 88, 95, 120] +}; +const allowedNumericSeparatorSiblings = {}; +allowedNumericSeparatorSiblings.bin = [48, 49]; +allowedNumericSeparatorSiblings.oct = [...allowedNumericSeparatorSiblings.bin, 50, 51, 52, 53, 54, 55]; +allowedNumericSeparatorSiblings.dec = [...allowedNumericSeparatorSiblings.oct, 56, 57]; +allowedNumericSeparatorSiblings.hex = [...allowedNumericSeparatorSiblings.dec, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102]; +class Token { + constructor(state) { + this.type = state.type; + this.value = state.value; + this.start = state.start; + this.end = state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); } - getScopeHandler() { - return FlowScopeHandler; +} +class Tokenizer extends ParserError { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.isLookahead = false; } - shouldParseTypes() { - return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; } - shouldParseEnums() { - return !!this.getPluginOption("flow", "enums"); - } + next() { + this.checkKeywordEscapes(); - finishToken(type, val) { - if (type !== types$1.string && type !== types$1.semi && type !== types$1.interpreterDirective) { - if (this.flowPragma === undefined) { - this.flowPragma = null; - } + if (this.options.tokens) { + this.pushToken(new Token(this.state)); } - return super.finishToken(type, val); + this.state.lastTokEnd = this.state.end; + this.state.lastTokStart = this.state.start; + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); } - addComment(comment) { - if (this.flowPragma === undefined) { - const matches = FLOW_PRAGMA_REGEX.exec(comment.value); - - if (!matches) ; else if (matches[1] === "flow") { - this.flowPragma = "flow"; - } else if (matches[1] === "noflow") { - this.flowPragma = "noflow"; - } else { - throw new Error("Unexpected flow pragma"); - } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; } - - return super.addComment(comment); } - flowParseTypeInitialiser(tok) { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(tok || types$1.colon); - const type = this.flowParseType(); - this.state.inType = oldInType; - return type; + match(type) { + return this.state.type === type; } - flowParsePredicate() { - const node = this.startNode(); - const moduloPos = this.state.start; - this.next(); - this.expectContextual("checks"); - - if (this.state.lastTokStart > moduloPos + 1) { - this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks); - } - - if (this.eat(types$1.parenL)) { - node.value = this.parseExpression(); - this.expect(types$1.parenR); - return this.finishNode(node, "DeclaredPredicate"); - } else { - return this.finishNode(node, "InferredPredicate"); - } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + lastTokEnd: state.end, + context: [this.curContext()], + inType: state.inType + }; } - flowParseTypeAndPredicateInitialiser() { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(types$1.colon); - let type = null; - let predicate = null; - - if (this.match(types$1.modulo)) { - this.state.inType = oldInType; - predicate = this.flowParsePredicate(); - } else { - type = this.flowParseType(); - this.state.inType = oldInType; + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } - if (this.match(types$1.modulo)) { - predicate = this.flowParsePredicate(); - } - } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } - return [type, predicate]; + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; } - flowParseDeclareClass(node) { - this.next(); - this.flowParseInterfaceish(node, true); - return this.finishNode(node, "DeclareClass"); + lookaheadCharCode() { + return this.input.charCodeAt(this.nextTokenStart()); } - flowParseDeclareFunction(node) { - this.next(); - const id = node.id = this.parseIdentifier(); - const typeNode = this.startNode(); - const typeContainer = this.startNode(); + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); - if (this.isRelational("<")) { - typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - typeNode.typeParameters = null; + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } } - this.expect(types$1.parenL); - const tmp = this.flowParseFunctionTypeParams(); - typeNode.params = tmp.params; - typeNode.rest = tmp.rest; - typeNode.this = tmp._this; - this.expect(types$1.parenR); - [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); - id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); - this.resetEndLocation(id); - this.semicolon(); - this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.start); - return this.finishNode(node, "DeclareFunction"); + return cp; } - flowParseDeclare(node, insideModule) { - if (this.match(types$1._class)) { - return this.flowParseDeclareClass(node); - } else if (this.match(types$1._function)) { - return this.flowParseDeclareFunction(node); - } else if (this.match(types$1._var)) { - return this.flowParseDeclareVariable(node); - } else if (this.eatContextual("module")) { - if (this.match(types$1.dot)) { - return this.flowParseDeclareModuleExports(node); - } else { - if (insideModule) { - this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule); - } + setStrict(strict) { + this.state.strict = strict; - return this.flowParseDeclareModule(node); - } - } else if (this.isContextual("type")) { - return this.flowParseDeclareTypeAlias(node); - } else if (this.isContextual("opaque")) { - return this.flowParseDeclareOpaqueType(node); - } else if (this.isContextual("interface")) { - return this.flowParseDeclareInterface(node); - } else if (this.match(types$1._export)) { - return this.flowParseDeclareExportDeclaration(node, insideModule); - } else { - throw this.unexpected(); + if (strict) { + this.state.strictErrors.forEach((message, pos) => this.raise(pos, message)); + this.state.strictErrors.clear(); } } - flowParseDeclareVariable(node) { - this.next(); - node.id = this.flowParseTypeAnnotatableIdentifier(true); - this.scope.declareName(node.id.name, BIND_VAR, node.id.start); - this.semicolon(); - return this.finishNode(node, "DeclareVariable"); + curContext() { + return this.state.context[this.state.context.length - 1]; } - flowParseDeclareModule(node) { - this.scope.enter(SCOPE_OTHER); + nextToken() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); - if (this.match(types$1.string)) { - node.id = this.parseExprAtom(); + if (this.state.pos >= this.length) { + this.finishToken(types$1.eof); + return; + } + + if (curContext === types.template) { + this.readTmplToken(); } else { - node.id = this.parseIdentifier(); + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); } + } - const bodyNode = node.body = this.startNode(); - const body = bodyNode.body = []; - this.expect(types$1.braceL); + skipBlockComment() { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf("*/", start + 2); + if (end === -1) throw this.raise(start, ErrorMessages.UnterminatedComment); + this.state.pos = end + 2; + lineBreakG.lastIndex = start + 2; - while (!this.match(types$1.braceR)) { - let bodyNode = this.startNode(); + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } - if (this.match(types$1._import)) { - this.next(); + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start, + end: end + 2, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; + } - if (!this.isContextual("type") && !this.match(types$1._typeof)) { - this.raise(this.state.lastTokStart, FlowErrors.InvalidNonTypeImportInDeclareModule); - } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); - this.parseImport(bodyNode); - } else { - this.expectContextual("declare", FlowErrors.UnsupportedStatementInDeclareModule); - bodyNode = this.flowParseDeclare(bodyNode, true); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); } - - body.push(bodyNode); } - this.scope.exit(); - this.expect(types$1.braceR); - this.finishNode(bodyNode, "BlockStatement"); - let kind = null; - let hasModuleExport = false; - body.forEach(bodyElement => { - if (isEsModuleType(bodyElement)) { - if (kind === "CommonJS") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "ES"; - } else if (bodyElement.type === "DeclareModuleExports") { - if (hasModuleExport) { - this.raise(bodyElement.start, FlowErrors.DuplicateDeclareModuleExports); - } - - if (kind === "ES") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "CommonJS"; - hasModuleExport = true; - } - }); - node.kind = kind || "CommonJS"; - return this.finishNode(node, "DeclareModule"); + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start, + end, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; } - flowParseDeclareExportDeclaration(node, insideModule) { - this.expect(types$1._export); + skipSpace() { + const spaceStart = this.state.pos; + const comments = []; - if (this.eat(types$1._default)) { - if (this.match(types$1._function) || this.match(types$1._class)) { - node.declaration = this.flowParseDeclare(this.startNode()); - } else { - node.declaration = this.flowParseType(); - this.semicolon(); - } + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); - node.default = true; - return this.finishNode(node, "DeclareExportDeclaration"); - } else { - if (this.match(types$1._const) || this.isLet() || (this.isContextual("type") || this.isContextual("interface")) && !insideModule) { - const label = this.state.value; - const suggestion = exportSuggestions[label]; - throw this.raise(this.state.start, FlowErrors.UnsupportedDeclareExportKind, label, suggestion); - } + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; - if (this.match(types$1._var) || this.match(types$1._function) || this.match(types$1._class) || this.isContextual("opaque")) { - node.declaration = this.flowParseDeclare(this.startNode()); - node.default = false; - return this.finishNode(node, "DeclareExportDeclaration"); - } else if (this.match(types$1.star) || this.match(types$1.braceL) || this.isContextual("interface") || this.isContextual("type") || this.isContextual("opaque")) { - node = this.parseExport(node); - - if (node.type === "ExportNamedDeclaration") { - node.type = "ExportDeclaration"; - node.default = false; - delete node.exportKind; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; } - node.type = "Declare" + node.type; - return node; - } - } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; - throw this.unexpected(); - } + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment(); - flowParseDeclareModuleExports(node) { - this.next(); - this.expectContextual("exports"); - node.typeAnnotation = this.flowParseTypeAnnotation(); - this.semicolon(); - return this.finishNode(node, "DeclareModuleExports"); - } + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } - flowParseDeclareTypeAlias(node) { - this.next(); - this.flowParseTypeAlias(node); - node.type = "DeclareTypeAlias"; - return node; - } + break; + } - flowParseDeclareOpaqueType(node) { - this.next(); - this.flowParseOpaqueType(node, true); - node.type = "DeclareOpaqueType"; - return node; - } + case 47: + { + const comment = this.skipLineComment(2); - flowParseDeclareInterface(node) { - this.next(); - this.flowParseInterfaceish(node); - return this.finishNode(node, "DeclareInterface"); - } + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } - flowParseInterfaceish(node, isClass = false) { - node.id = this.flowParseRestrictedIdentifier(!isClass, true); - this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.start); + break; + } - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } + default: + break loop; + } - node.extends = []; - node.implements = []; - node.mixins = []; + break; - if (this.eat(types$1._extends)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (!isClass && this.eat(types$1.comma)); - } + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule) { + const pos = this.state.pos; - if (this.isContextual("mixins")) { - this.next(); + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); - do { - node.mixins.push(this.flowParseInterfaceExtends()); - } while (this.eat(types$1.comma)); - } + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule) { + const pos = this.state.pos; - if (this.isContextual("implements")) { - this.next(); + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); - do { - node.implements.push(this.flowParseInterfaceExtends()); - } while (this.eat(types$1.comma)); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + + } } - node.body = this.flowParseObjectType({ - allowStatic: isClass, - allowExact: false, - allowSpread: false, - allowProto: isClass, - allowInexact: false - }); + if (comments.length > 0) { + const end = this.state.pos; + const CommentWhitespace = { + start: spaceStart, + end, + comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(CommentWhitespace); + } } - flowParseInterfaceExtends() { - const node = this.startNode(); - node.id = this.flowParseQualifiedTypeIdentifier(); + finishToken(type, val) { + this.state.end = this.state.pos; + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; + if (!this.isLookahead) { + this.state.endLoc = this.state.curPosition(); + this.updateContext(prevType); } - - return this.finishNode(node, "InterfaceExtends"); } - flowParseInterface(node) { - this.flowParseInterfaceish(node); - return this.finishNode(node, "InterfaceDeclaration"); - } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } - checkNotUnderscore(word) { - if (word === "_") { - this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore); + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + + if (next >= 48 && next <= 57) { + throw this.raise(this.state.pos, ErrorMessages.UnexpectedDigitAfterHash); } - } - checkReservedType(word, startLoc, declaration) { - if (!reservedTypes.has(word)) return; - this.raise(startLoc, declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, word); - } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); - flowParseRestrictedIdentifier(liberal, declaration) { - this.checkReservedType(this.state.value, this.state.start, declaration); - return this.parseIdentifier(liberal); - } + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") { + throw this.raise(this.state.pos, next === 123 ? ErrorMessages.RecordExpressionHashIncorrectStartSyntaxType : ErrorMessages.TupleExpressionHashIncorrectStartSyntaxType); + } - flowParseTypeAlias(node) { - node.id = this.flowParseRestrictedIdentifier(false, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); + this.state.pos += 2; - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); + if (next === 123) { + this.finishToken(types$1.braceHashL); + } else { + this.finishToken(types$1.bracketHashL); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(types$1.privateName, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(types$1.privateName, this.readWord1()); } else { - node.typeParameters = null; + this.finishOp(types$1.hash, 1); } + } - node.right = this.flowParseTypeInitialiser(types$1.eq); - this.semicolon(); - return this.finishNode(node, "TypeAlias"); - } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); - flowParseOpaqueType(node, declare) { - this.expectContextual("type"); - node.id = this.flowParseRestrictedIdentifier(true, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(types$1.ellipsis); } else { - node.typeParameters = null; + ++this.state.pos; + this.finishToken(types$1.dot); } + } - node.supertype = null; + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); - if (this.match(types$1.colon)) { - node.supertype = this.flowParseTypeInitialiser(types$1.colon); + if (next === 61) { + this.finishOp(types$1.slashAssign, 2); + } else { + this.finishOp(types$1.slash, 1); } + } - node.impltype = null; + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; - if (!declare) { - node.impltype = this.flowParseTypeInitialiser(types$1.eq); + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); } - this.semicolon(); - return this.finishNode(node, "OpaqueType"); + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(types$1.interpreterDirective, value); + return true; } - flowParseTypeParameter(requireDefault = false) { - const nodeStart = this.state.start; - const node = this.startNode(); - const variance = this.flowParseVariance(); - const ident = this.flowParseTypeAnnotatableIdentifier(); - node.name = ident.name; - node.variance = variance; - node.bound = ident.typeAnnotation; + readToken_mult_modulo(code) { + let type = code === 42 ? types$1.star : types$1.modulo; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); - if (this.match(types$1.eq)) { - this.eat(types$1.eq); - node.default = this.flowParseType(); - } else { - if (requireDefault) { - this.raise(nodeStart, FlowErrors.MissingTypeParamDefault); - } + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = types$1.exponent; } - return this.finishNode(node, "TypeParameter"); - } - - flowParseTypeParameterDeclaration() { - const oldInType = this.state.inType; - const node = this.startNode(); - node.params = []; - this.state.inType = true; - - if (this.isRelational("<") || this.match(types$1.jsxTagStart)) { - this.next(); - } else { - this.unexpected(); + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? types$1.moduloAssign : types$1.assign; } - let defaultRequired = false; + this.finishOp(type, width); + } - do { - const typeParameter = this.flowParseTypeParameter(defaultRequired); - node.params.push(typeParameter); + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); - if (typeParameter.default) { - defaultRequired = true; + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(types$1.assign, 3); + } else { + this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2); } - if (!this.isRelational(">")) { - this.expect(types$1.comma); + return; + } + + if (code === 124) { + if (next === 62) { + this.finishOp(types$1.pipeline, 2); + return; } - } while (!this.isRelational(">")); - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterDeclaration"); - } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectEndSyntaxType); + } - flowParseTypeParameterInstantiation() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = false; + this.state.pos += 2; + this.finishToken(types$1.braceBarR); + return; + } - while (!this.isRelational(">")) { - node.params.push(this.flowParseType()); + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectEndSyntaxType); + } - if (!this.isRelational(">")) { - this.expect(types$1.comma); + this.state.pos += 2; + this.finishToken(types$1.bracketBarR); + return; } } - this.state.noAnonFunctionType = oldNoAnonFunctionType; - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - - flowParseTypeParameterInstantiationCallOrNew() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - - while (!this.isRelational(">")) { - node.params.push(this.flowParseTypeOrImplicitInstantiation()); - - if (!this.isRelational(">")) { - this.expect(types$1.comma); - } + if (next === 61) { + this.finishOp(types$1.assign, 2); + return; } - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); + this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1); } - flowParseInterfaceType() { - const node = this.startNode(); - this.expectContextual("interface"); - node.extends = []; + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); - if (this.eat(types$1._extends)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (this.eat(types$1.comma)); + if (next === 61) { + this.finishOp(types$1.assign, 2); + } else { + this.finishOp(types$1.bitwiseXOR, 1); } - - node.body = this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: false, - allowProto: false, - allowInexact: false - }); - return this.finishNode(node, "InterfaceTypeAnnotation"); } - flowParseObjectPropertyKey() { - return this.match(types$1.num) || this.match(types$1.string) ? this.parseExprAtom() : this.parseIdentifier(true); - } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); - flowParseObjectTypeIndexer(node, isStatic, variance) { - node.static = isStatic; + if (next === code) { + this.finishOp(types$1.incDec, 2); + return; + } - if (this.lookahead().type === types$1.colon) { - node.id = this.flowParseObjectPropertyKey(); - node.key = this.flowParseTypeInitialiser(); + if (next === 61) { + this.finishOp(types$1.assign, 2); } else { - node.id = null; - node.key = this.flowParseType(); + this.finishOp(types$1.plusMin, 1); } - - this.expect(types$1.bracketR); - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - return this.finishNode(node, "ObjectTypeIndexer"); } - flowParseObjectTypeInternalSlot(node, isStatic) { - node.static = isStatic; - node.id = this.flowParseObjectPropertyKey(); - this.expect(types$1.bracketR); - this.expect(types$1.bracketR); + readToken_lt_gt(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + let size = 1; - if (this.isRelational("<") || this.match(types$1.parenL)) { - node.method = true; - node.optional = false; - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); - } else { - node.method = false; + if (next === code) { + size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2; - if (this.eat(types$1.question)) { - node.optional = true; + if (this.input.charCodeAt(this.state.pos + size) === 61) { + this.finishOp(types$1.assign, size + 1); + return; } - node.value = this.flowParseTypeInitialiser(); + this.finishOp(types$1.bitShift, size); + return; } - return this.finishNode(node, "ObjectTypeInternalSlot"); - } - - flowParseObjectTypeMethodish(node) { - node.params = []; - node.rest = null; - node.typeParameters = null; - node.this = null; - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); + if (next === 61) { + size = 2; } - this.expect(types$1.parenL); + this.finishOp(types$1.relational, size); + } - if (this.match(types$1._this)) { - node.this = this.flowParseFunctionTypeParam(true); - node.this.name = null; - - if (!this.match(types$1.parenR)) { - this.expect(types$1.comma); - } - } - - while (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { - node.params.push(this.flowParseFunctionTypeParam(false)); + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); - if (!this.match(types$1.parenR)) { - this.expect(types$1.comma); - } + if (next === 61) { + this.finishOp(types$1.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; } - if (this.eat(types$1.ellipsis)) { - node.rest = this.flowParseFunctionTypeParam(false); + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(types$1.arrow); + return; } - this.expect(types$1.parenR); - node.returnType = this.flowParseTypeInitialiser(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - flowParseObjectTypeCallProperty(node, isStatic) { - const valueNode = this.startNode(); - node.static = isStatic; - node.value = this.flowParseObjectTypeMethodish(valueNode); - return this.finishNode(node, "ObjectTypeCallProperty"); + this.finishOp(code === 61 ? types$1.eq : types$1.bang, 1); } - flowParseObjectType({ - allowStatic, - allowExact, - allowSpread, - allowProto, - allowInexact - }) { - const oldInType = this.state.inType; - this.state.inType = true; - const nodeStart = this.startNode(); - nodeStart.callProperties = []; - nodeStart.properties = []; - nodeStart.indexers = []; - nodeStart.internalSlots = []; - let endDelim; - let exact; - let inexact = false; + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); - if (allowExact && this.match(types$1.braceBarL)) { - this.expect(types$1.braceBarL); - endDelim = types$1.braceBarR; - exact = true; + if (next === 63) { + if (next2 === 61) { + this.finishOp(types$1.assign, 3); + } else { + this.finishOp(types$1.nullishCoalescing, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(types$1.questionDot); } else { - this.expect(types$1.braceL); - endDelim = types$1.braceR; - exact = false; + ++this.state.pos; + this.finishToken(types$1.question); } + } - nodeStart.exact = exact; - - while (!this.match(endDelim)) { - let isStatic = false; - let protoStart = null; - let inexactStart = null; - const node = this.startNode(); - - if (allowProto && this.isContextual("proto")) { - const lookahead = this.lookahead(); - - if (lookahead.type !== types$1.colon && lookahead.type !== types$1.question) { - this.next(); - protoStart = this.state.start; - allowStatic = false; - } - } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; - if (allowStatic && this.isContextual("static")) { - const lookahead = this.lookahead(); + case 40: + ++this.state.pos; + this.finishToken(types$1.parenL); + return; - if (lookahead.type !== types$1.colon && lookahead.type !== types$1.question) { - this.next(); - isStatic = true; - } - } + case 41: + ++this.state.pos; + this.finishToken(types$1.parenR); + return; - const variance = this.flowParseVariance(); + case 59: + ++this.state.pos; + this.finishToken(types$1.semi); + return; - if (this.eat(types$1.bracketL)) { - if (protoStart != null) { - this.unexpected(protoStart); - } + case 44: + ++this.state.pos; + this.finishToken(types$1.comma); + return; - if (this.eat(types$1.bracketL)) { - if (variance) { - this.unexpected(variance.start); + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectStartSyntaxType); } - nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + this.state.pos += 2; + this.finishToken(types$1.bracketBarL); } else { - nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); - } - } else if (this.match(types$1.parenL) || this.isRelational("<")) { - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.unexpected(variance.start); + ++this.state.pos; + this.finishToken(types$1.bracketL); } - nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); - } else { - let kind = "init"; + return; - if (this.isContextual("get") || this.isContextual("set")) { - const lookahead = this.lookahead(); + case 93: + ++this.state.pos; + this.finishToken(types$1.bracketR); + return; - if (lookahead.type === types$1.name || lookahead.type === types$1.string || lookahead.type === types$1.num) { - kind = this.state.value; - this.next(); + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectStartSyntaxType); } + + this.state.pos += 2; + this.finishToken(types$1.braceBarL); + } else { + ++this.state.pos; + this.finishToken(types$1.braceL); } - const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + return; - if (propOrInexact === null) { - inexact = true; - inexactStart = this.state.lastTokStart; + case 125: + ++this.state.pos; + this.finishToken(types$1.braceR); + return; + + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(types$1.doubleColon, 2); } else { - nodeStart.properties.push(propOrInexact); + ++this.state.pos; + this.finishToken(types$1.colon); } - } - this.flowObjectTypeSemicolon(); + return; - if (inexactStart && !this.match(types$1.braceR) && !this.match(types$1.braceBarR)) { - this.raise(inexactStart, FlowErrors.UnexpectedExplicitInexactInObject); - } - } + case 63: + this.readToken_question(); + return; - this.expect(endDelim); + case 96: + ++this.state.pos; + this.finishToken(types$1.backQuote); + return; - if (allowSpread) { - nodeStart.inexact = inexact; - } + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); - const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); - this.state.inType = oldInType; - return out; - } + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } - flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact) { - if (this.eat(types$1.ellipsis)) { - const isInexactToken = this.match(types$1.comma) || this.match(types$1.semi) || this.match(types$1.braceR) || this.match(types$1.braceBarR); + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } - if (isInexactToken) { - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideNonObject); - } else if (!allowInexact) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact); + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } } - if (variance) { - this.raise(variance.start, FlowErrors.InexactVariance); - } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; - return null; - } + case 34: + case 39: + this.readString(code); + return; - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType); - } + case 47: + this.readToken_slash(); + return; - if (protoStart != null) { - this.unexpected(protoStart); - } + case 37: + case 42: + this.readToken_mult_modulo(code); + return; - if (variance) { - this.raise(variance.start, FlowErrors.SpreadVariance); - } + case 124: + case 38: + this.readToken_pipe_amp(code); + return; - node.argument = this.flowParseType(); - return this.finishNode(node, "ObjectTypeSpreadProperty"); - } else { - node.key = this.flowParseObjectPropertyKey(); - node.static = isStatic; - node.proto = protoStart != null; - node.kind = kind; - let optional = false; + case 94: + this.readToken_caret(); + return; - if (this.isRelational("<") || this.match(types$1.parenL)) { - node.method = true; + case 43: + case 45: + this.readToken_plus_min(code); + return; - if (protoStart != null) { - this.unexpected(protoStart); - } + case 60: + case 62: + this.readToken_lt_gt(code); + return; - if (variance) { - this.unexpected(variance.start); - } + case 61: + case 33: + this.readToken_eq_excl(code); + return; - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); + case 126: + this.finishOp(types$1.tilde, 1); + return; - if (kind === "get" || kind === "set") { - this.flowCheckGetterSetterParams(node); - } + case 64: + ++this.state.pos; + this.finishToken(types$1.at); + return; - if (!allowSpread && node.key.name === "constructor" && node.value.this) { - this.raise(node.value.this.start, FlowErrors.ThisParamBannedInConstructor); - } - } else { - if (kind !== "init") this.unexpected(); - node.method = false; + case 35: + this.readToken_numberSign(); + return; - if (this.eat(types$1.question)) { - optional = true; - } + case 92: + this.readWord(); + return; - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - } + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } - node.optional = optional; - return this.finishNode(node, "ObjectTypeProperty"); } + + throw this.raise(this.state.pos, ErrorMessages.InvalidOrUnexpectedToken, String.fromCodePoint(code)); } - flowCheckGetterSetterParams(property) { - const paramCount = property.kind === "get" ? 0 : 1; - const start = property.start; - const length = property.value.params.length + (property.value.rest ? 1 : 0); + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } - if (property.value.this) { - this.raise(property.value.this.start, property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam); - } + readRegexp() { + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; - if (length !== paramCount) { - if (property.kind === "get") { - this.raise(start, ErrorMessages.BadGetterArity); - } else { - this.raise(start, ErrorMessages.BadSetterArity); + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(start, ErrorMessages.UnterminatedRegExp); } - } - if (property.kind === "set" && property.value.rest) { - this.raise(start, ErrorMessages.BadSetterRestParameter); - } - } + const ch = this.input.charCodeAt(pos); - flowObjectTypeSemicolon() { - if (!this.eat(types$1.semi) && !this.eat(types$1.comma) && !this.match(types$1.braceR) && !this.match(types$1.braceBarR)) { - this.unexpected(); - } - } + if (isNewLine(ch)) { + throw this.raise(start, ErrorMessages.UnterminatedRegExp); + } - flowParseQualifiedTypeIdentifier(startPos, startLoc, id) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - let node = id || this.flowParseRestrictedIdentifier(true); + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } - while (this.eat(types$1.dot)) { - const node2 = this.startNodeAt(startPos, startLoc); - node2.qualification = node; - node2.id = this.flowParseRestrictedIdentifier(true); - node = this.finishNode(node2, "QualifiedTypeIdentifier"); + escaped = ch === 92; + } } - return node; - } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; - flowParseGenericType(startPos, startLoc, id) { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = null; - node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); + if (VALID_REGEX_FLAGS.has(cp)) { + if (mods.includes(char)) { + this.raise(pos + 1, ErrorMessages.DuplicateRegExpFlags); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(pos + 1, ErrorMessages.MalformedRegExpFlags); + } else { + break; + } + + ++pos; + mods += char; } - return this.finishNode(node, "GenericTypeAnnotation"); + this.state.pos = pos; + this.finishToken(types$1.regexp, { + pattern: content, + flags: mods + }); } - flowParseTypeofType() { - const node = this.startNode(); - this.expect(types$1._typeof); - node.argument = this.flowParsePrimaryType(); - return this.finishNode(node, "TypeofTypeAnnotation"); - } + readInt(radix, len, forceLen, allowNumSeparator = true) { + const start = this.state.pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const allowedSiblings = radix === 16 ? allowedNumericSeparatorSiblings.hex : radix === 10 ? allowedNumericSeparatorSiblings.dec : radix === 8 ? allowedNumericSeparatorSiblings.oct : allowedNumericSeparatorSiblings.bin; + let invalid = false; + let total = 0; - flowParseTupleType() { - const node = this.startNode(); - node.types = []; - this.expect(types$1.bracketL); + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = this.input.charCodeAt(this.state.pos); + let val; - while (this.state.pos < this.length && !this.match(types$1.bracketR)) { - node.types.push(this.flowParseType()); - if (this.match(types$1.bracketR)) break; - this.expect(types$1.comma); - } + if (code === 95) { + const prev = this.input.charCodeAt(this.state.pos - 1); + const next = this.input.charCodeAt(this.state.pos + 1); - this.expect(types$1.bracketR); - return this.finishNode(node, "TupleTypeAnnotation"); - } + if (allowedSiblings.indexOf(next) === -1) { + this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); + } else if (forbiddenSiblings.indexOf(prev) > -1 || forbiddenSiblings.indexOf(next) > -1 || Number.isNaN(next)) { + this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); + } - flowParseFunctionTypeParam(first) { - let name = null; - let optional = false; - let typeAnnotation = null; - const node = this.startNode(); - const lh = this.lookahead(); - const isThis = this.state.type === types$1._this; + if (!allowNumSeparator) { + this.raise(this.state.pos, ErrorMessages.NumericSeparatorInEscapeSequence); + } - if (lh.type === types$1.colon || lh.type === types$1.question) { - if (isThis && !first) { - this.raise(node.start, FlowErrors.ThisParamMustBeFirst); + ++this.state.pos; + continue; } - name = this.parseIdentifier(isThis); - - if (this.eat(types$1.question)) { - optional = true; + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } - if (isThis) { - this.raise(node.start, FlowErrors.ThisParamMayNotBeOptional); + if (val >= radix) { + if (this.options.errorRecovery && val <= 9) { + val = 0; + this.raise(this.state.start + i + 2, ErrorMessages.InvalidDigit, radix); + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; } } - typeAnnotation = this.flowParseTypeInitialiser(); - } else { - typeAnnotation = this.flowParseType(); + ++this.state.pos; + total = total * radix + val; } - node.name = name; - node.optional = optional; - node.typeAnnotation = typeAnnotation; - return this.finishNode(node, "FunctionTypeParam"); - } + if (this.state.pos === start || len != null && this.state.pos - start !== len || invalid) { + return null; + } - reinterpretTypeAsFunctionTypeParam(type) { - const node = this.startNodeAt(type.start, type.loc.start); - node.name = null; - node.optional = false; - node.typeAnnotation = type; - return this.finishNode(node, "FunctionTypeParam"); + return total; } - flowParseFunctionTypeParams(params = []) { - let rest = null; - let _this = null; - - if (this.match(types$1._this)) { - _this = this.flowParseFunctionTypeParam(true); - _this.name = null; + readRadixNumber(radix) { + const start = this.state.pos; + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); - if (!this.match(types$1.parenR)) { - this.expect(types$1.comma); - } + if (val == null) { + this.raise(this.state.start + 2, ErrorMessages.InvalidDigit, radix); } - while (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { - params.push(this.flowParseFunctionTypeParam(false)); + const next = this.input.charCodeAt(this.state.pos); - if (!this.match(types$1.parenR)) { - this.expect(types$1.comma); - } + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(start, ErrorMessages.InvalidDecimal); } - if (this.eat(types$1.ellipsis)) { - rest = this.flowParseFunctionTypeParam(false); + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); } - return { - params, - rest, - _this - }; - } + if (isBigInt) { + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(types$1.bigint, str); + return; + } - flowIdentToTypeAnnotation(startPos, startLoc, node, id) { - switch (id.name) { - case "any": - return this.finishNode(node, "AnyTypeAnnotation"); + this.finishToken(types$1.num, val); + } - case "bool": - case "boolean": - return this.finishNode(node, "BooleanTypeAnnotation"); + readNumber(startsWithDot) { + const start = this.state.pos; + let isFloat = false; + let isBigInt = false; + let isDecimal = false; + let hasExponent = false; + let isOctal = false; - case "mixed": - return this.finishNode(node, "MixedTypeAnnotation"); + if (!startsWithDot && this.readInt(10) === null) { + this.raise(start, ErrorMessages.InvalidNumber); + } - case "empty": - return this.finishNode(node, "EmptyTypeAnnotation"); + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; - case "number": - return this.finishNode(node, "NumberTypeAnnotation"); + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(start, ErrorMessages.StrictOctalLiteral); - case "string": - return this.finishNode(node, "StringTypeAnnotation"); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); - case "symbol": - return this.finishNode(node, "SymbolTypeAnnotation"); + if (underscorePos > 0) { + this.raise(underscorePos + start, ErrorMessages.ZeroDigitNumericSeparator); + } + } - default: - this.checkNotUnderscore(id.name); - return this.flowParseGenericType(startPos, startLoc, id); + isOctal = hasLeadingZero && !/[89]/.test(integer); } - } - - flowParsePrimaryType() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.startNode(); - let tmp; - let type; - let isGroupedType = false; - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - switch (this.state.type) { - case types$1.name: - if (this.isContextual("interface")) { - return this.flowParseInterfaceType(); - } + let next = this.input.charCodeAt(this.state.pos); - return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } - case types$1.braceL: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: true, - allowProto: false, - allowInexact: true - }); + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); - case types$1.braceBarL: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: true, - allowSpread: true, - allowProto: false, - allowInexact: false - }); + if (next === 43 || next === 45) { + ++this.state.pos; + } - case types$1.bracketL: - this.state.noAnonFunctionType = false; - type = this.flowParseTupleType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - return type; + if (this.readInt(10) === null) { + this.raise(start, ErrorMessages.InvalidOrMissingExponent); + } - case types$1.relational: - if (this.state.value === "<") { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - this.expect(types$1.parenL); - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(types$1.parenR); - this.expect(types$1.arrow); - node.returnType = this.flowParseType(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } - break; + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(start, ErrorMessages.InvalidBigIntLiteral); + } - case types$1.parenL: - this.next(); + ++this.state.pos; + isBigInt = true; + } - if (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { - if (this.match(types$1.name) || this.match(types$1._this)) { - const token = this.lookahead().type; - isGroupedType = token !== types$1.question && token !== types$1.colon; - } else { - isGroupedType = true; - } - } + if (next === 109) { + this.expectPlugin("decimal", this.state.pos); - if (isGroupedType) { - this.state.noAnonFunctionType = false; - type = this.flowParseType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (hasExponent || hasLeadingZero) { + this.raise(start, ErrorMessages.InvalidDecimal); + } - if (this.state.noAnonFunctionType || !(this.match(types$1.comma) || this.match(types$1.parenR) && this.lookahead().type === types$1.arrow)) { - this.expect(types$1.parenR); - return type; - } else { - this.eat(types$1.comma); - } - } + ++this.state.pos; + isDecimal = true; + } - if (type) { - tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); - } else { - tmp = this.flowParseFunctionTypeParams(); - } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); + } - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(types$1.parenR); - this.expect(types$1.arrow); - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); - case types$1.string: - return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + if (isBigInt) { + this.finishToken(types$1.bigint, str); + return; + } - case types$1._true: - case types$1._false: - node.value = this.match(types$1._true); - this.next(); - return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + if (isDecimal) { + this.finishToken(types$1.decimal, str); + return; + } - case types$1.plusMin: - if (this.state.value === "-") { - this.next(); + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(types$1.num, val); + } - if (this.match(types$1.num)) { - return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); - } + readCodePoint(throwOnInvalid) { + const ch = this.input.charCodeAt(this.state.pos); + let code; - if (this.match(types$1.bigint)) { - return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); - } + if (ch === 123) { + const codePos = ++this.state.pos; + code = this.readHexChar(this.input.indexOf("}", this.state.pos) - this.state.pos, true, throwOnInvalid); + ++this.state.pos; - throw this.raise(this.state.start, FlowErrors.UnexpectedSubtractionOperand); - } - - throw this.unexpected(); - - case types$1.num: - return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - - case types$1.bigint: - return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); - - case types$1._void: - this.next(); - return this.finishNode(node, "VoidTypeAnnotation"); - - case types$1._null: - this.next(); - return this.finishNode(node, "NullLiteralTypeAnnotation"); - - case types$1._this: - this.next(); - return this.finishNode(node, "ThisTypeAnnotation"); - - case types$1.star: - this.next(); - return this.finishNode(node, "ExistsTypeAnnotation"); - - default: - if (this.state.type.keyword === "typeof") { - return this.flowParseTypeofType(); - } else if (this.state.type.keyword) { - const label = this.state.type.label; - this.next(); - return super.createIdentifier(node, label); + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + this.raise(codePos, ErrorMessages.InvalidCodePoint); + } else { + return null; } - + } + } else { + code = this.readHexChar(4, false, throwOnInvalid); } - throw this.unexpected(); + return code; } - flowParsePostfixType() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let type = this.flowParsePrimaryType(); - let seenOptionalIndexedAccess = false; + readString(quote) { + let out = "", + chunkStart = ++this.state.pos; - while ((this.match(types$1.bracketL) || this.match(types$1.questionDot)) && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startPos, startLoc); - const optional = this.eat(types$1.questionDot); - seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; - this.expect(types$1.bracketL); + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(this.state.start, ErrorMessages.UnterminatedString); + } - if (!optional && this.match(types$1.bracketR)) { - node.elementType = type; - this.next(); - type = this.finishNode(node, "ArrayTypeAnnotation"); - } else { - node.objectType = type; - node.indexType = this.flowParseType(); - this.expect(types$1.bracketR); + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; - if (seenOptionalIndexedAccess) { - node.optional = optional; - type = this.finishNode(node, "OptionalIndexedAccessType"); - } else { - type = this.finishNode(node, "IndexedAccessType"); - } + if (ch === 92) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.readEscapedChar(false); + chunkStart = this.state.pos; + } else if (ch === 8232 || ch === 8233) { + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + } else if (isNewLine(ch)) { + throw this.raise(this.state.start, ErrorMessages.UnterminatedString); + } else { + ++this.state.pos; } } - return type; + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(types$1.string, out); } - flowParsePrefixType() { - const node = this.startNode(); + readTmplToken() { + let out = "", + chunkStart = this.state.pos, + containsInvalid = false; - if (this.eat(types$1.question)) { - node.typeAnnotation = this.flowParsePrefixType(); - return this.finishNode(node, "NullableTypeAnnotation"); - } else { - return this.flowParsePostfixType(); - } - } + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(this.state.start, ErrorMessages.UnterminatedTemplate); + } - flowParseAnonFunctionWithoutParens() { - const param = this.flowParsePrefixType(); + const ch = this.input.charCodeAt(this.state.pos); - if (!this.state.noAnonFunctionType && this.eat(types$1.arrow)) { - const node = this.startNodeAt(param.start, param.loc.start); - node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; - node.rest = null; - node.this = null; - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - } + if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) { + if (this.state.pos === this.state.start && this.match(types$1.template)) { + if (ch === 36) { + this.state.pos += 2; + this.finishToken(types$1.dollarBraceL); + return; + } else { + ++this.state.pos; + this.finishToken(types$1.backQuote); + return; + } + } - return param; - } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(types$1.template, containsInvalid ? null : out); + return; + } - flowParseIntersectionType() { - const node = this.startNode(); - this.eat(types$1.bitwiseAND); - const type = this.flowParseAnonFunctionWithoutParens(); - node.types = [type]; + if (ch === 92) { + out += this.input.slice(chunkStart, this.state.pos); + const escaped = this.readEscapedChar(true); - while (this.eat(types$1.bitwiseAND)) { - node.types.push(this.flowParseAnonFunctionWithoutParens()); - } + if (escaped === null) { + containsInvalid = true; + } else { + out += escaped; + } - return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); - } + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + ++this.state.pos; - flowParseUnionType() { - const node = this.startNode(); - this.eat(types$1.bitwiseOR); - const type = this.flowParseIntersectionType(); - node.types = [type]; + switch (ch) { + case 13: + if (this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + } - while (this.eat(types$1.bitwiseOR)) { - node.types.push(this.flowParseIntersectionType()); - } + case 10: + out += "\n"; + break; - return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); - } + default: + out += String.fromCharCode(ch); + break; + } - flowParseType() { - const oldInType = this.state.inType; - this.state.inType = true; - const type = this.flowParseUnionType(); - this.state.inType = oldInType; - return type; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } } - flowParseTypeOrImplicitInstantiation() { - if (this.state.type === types$1.name && this.state.value === "_") { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.parseIdentifier(); - return this.flowParseGenericType(startPos, startLoc, node); + recordStrictModeErrors(pos, message) { + if (this.state.strict && !this.state.strictErrors.has(pos)) { + this.raise(pos, message); } else { - return this.flowParseType(); + this.state.strictErrors.set(pos, message); } } - flowParseTypeAnnotation() { - const node = this.startNode(); - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "TypeAnnotation"); - } + readEscapedChar(inTemplate) { + const throwOnInvalid = !inTemplate; + const ch = this.input.charCodeAt(++this.state.pos); + ++this.state.pos; - flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { - const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + switch (ch) { + case 110: + return "\n"; - if (this.match(types$1.colon)) { - ident.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(ident); - } + case 114: + return "\r"; - return ident; - } + case 120: + { + const code = this.readHexChar(2, false, throwOnInvalid); + return code === null ? null : String.fromCharCode(code); + } - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } + case 117: + { + const code = this.readCodePoint(throwOnInvalid); + return code === null ? null : String.fromCodePoint(code); + } - flowParseVariance() { - let variance = null; + case 116: + return "\t"; - if (this.match(types$1.plusMin)) { - variance = this.startNode(); + case 98: + return "\b"; - if (this.state.value === "+") { - variance.kind = "plus"; - } else { - variance.kind = "minus"; - } + case 118: + return "\u000b"; - this.next(); - this.finishNode(variance, "Variance"); - } + case 102: + return "\f"; - return variance; - } + case 13: + if (this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + } - parseFunctionBody(node, allowExpressionBody, isMethod = false) { - if (allowExpressionBody) { - return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); - } + case 10: + this.state.lineStart = this.state.pos; + ++this.state.curLine; - return super.parseFunctionBody(node, false, isMethod); - } + case 8232: + case 8233: + return ""; - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(types$1.colon)) { - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; - } + case 56: + case 57: + if (inTemplate) { + return null; + } else { + this.recordStrictModeErrors(this.state.pos - 1, ErrorMessages.StrictNumericEscape); + } - super.parseFunctionBodyAndFinish(node, type, isMethod); + default: + if (ch >= 48 && ch <= 55) { + const codePos = this.state.pos - 1; + const match = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + + this.state.pos += octalStr.length - 1; + const next = this.input.charCodeAt(this.state.pos); + + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return null; + } else { + this.recordStrictModeErrors(codePos, ErrorMessages.StrictNumericEscape); + } + } + + return String.fromCharCode(octal); + } + + return String.fromCharCode(ch); + } } - parseStatement(context, topLevel) { - if (this.state.strict && this.match(types$1.name) && this.state.value === "interface") { - const lookahead = this.lookahead(); + readHexChar(len, forceLen, throwOnInvalid) { + const codePos = this.state.pos; + const n = this.readInt(16, len, forceLen, false); - if (lookahead.type === types$1.name || isKeyword(lookahead.value)) { - const node = this.startNode(); - this.next(); - return this.flowParseInterface(node); + if (n === null) { + if (throwOnInvalid) { + this.raise(codePos, ErrorMessages.InvalidEscapeSequence); + } else { + this.state.pos = codePos - 1; } - } else if (this.shouldParseEnums() && this.isContextual("enum")) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); } - const stmt = super.parseStatement(context, topLevel); + return n; + } - if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { - this.flowPragma = null; + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; } - return stmt; - } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); - parseExpressionStatement(node, expr) { - if (expr.type === "Identifier") { - if (expr.name === "declare") { - if (this.match(types$1._class) || this.match(types$1.name) || this.match(types$1._function) || this.match(types$1._var) || this.match(types$1._export)) { - return this.flowParseDeclare(node); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.pos; + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(this.state.pos, ErrorMessages.MissingUnicodeEscape); + chunkStart = this.state.pos - 1; + continue; } - } else if (this.match(types$1.name)) { - if (expr.name === "interface") { - return this.flowParseInterface(node); - } else if (expr.name === "type") { - return this.flowParseTypeAlias(node); - } else if (expr.name === "opaque") { - return this.flowParseOpaqueType(node, false); + + ++this.state.pos; + const esc = this.readCodePoint(true); + + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(escStart, ErrorMessages.EscapedCharNotAnIdentifier); + } + + word += String.fromCodePoint(esc); } + + chunkStart = this.state.pos; + } else { + break; } } - return super.parseExpressionStatement(node, expr); + return word + this.input.slice(chunkStart, this.state.pos); } - shouldParseExportDeclaration() { - return this.isContextual("type") || this.isContextual("interface") || this.isContextual("opaque") || this.shouldParseEnums() && this.isContextual("enum") || super.shouldParseExportDeclaration(); + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word) || types$1.name; + this.finishToken(type, word); } - isExportDefaultSpecifier() { - if (this.match(types$1.name) && (this.state.value === "type" || this.state.value === "interface" || this.state.value === "opaque" || this.shouldParseEnums() && this.state.value === "enum")) { - return false; - } + checkKeywordEscapes() { + const kw = this.state.type.keyword; - return super.isExportDefaultSpecifier(); + if (kw && this.state.containsEsc) { + this.raise(this.state.start, ErrorMessages.InvalidEscapedReservedWord, kw); + } } - parseExportDefaultExpression() { - if (this.shouldParseEnums() && this.isContextual("enum")) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } + updateContext(prevType) { + var _this$state$type$upda, _this$state$type; - return super.parseExportDefaultExpression(); + (_this$state$type$upda = (_this$state$type = this.state.type).updateContext) == null ? void 0 : _this$state$type$upda.call(_this$state$type, this.state.context); } - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { - if (!this.match(types$1.question)) return expr; - - if (refNeedsArrowPos) { - const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); +} - if (!result.node) { - refNeedsArrowPos.start = result.error.pos || this.state.start; - return expr; - } +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } - if (result.error) this.state = result.failState; - return result.node; - } +} +class ClassScopeHandler { + constructor(raise) { + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.raise = raise; + } - this.expect(types$1.question); - const state = this.state.clone(); - const originalNoArrowAt = this.state.noArrowAt; - const node = this.startNodeAt(startPos, startLoc); - let { - consequent, - failed - } = this.tryParseConditionalConsequent(); - let [valid, invalid] = this.getArrowLikeExpressions(consequent); + current() { + return this.stack[this.stack.length - 1]; + } - if (failed || invalid.length > 0) { - const noArrowAt = [...originalNoArrowAt]; + enter() { + this.stack.push(new ClassScope()); + } - if (invalid.length > 0) { - this.state = state; - this.state.noArrowAt = noArrowAt; + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); - for (let i = 0; i < invalid.length; i++) { - noArrowAt.push(invalid[i].start); + for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, pos); } - - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - [valid, invalid] = this.getArrowLikeExpressions(consequent); + } else { + this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); } + } + } - if (failed && valid.length > 1) { - this.raise(state.start, FlowErrors.AmbiguousConditionalArrow); - } + declarePrivateName(name, elementType, pos) { + const classScope = this.current(); + let redefined = classScope.privateNames.has(name); - if (failed && valid.length === 1) { - this.state = state; - this.state.noArrowAt = noArrowAt.concat(valid[0].start); - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); + if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) { + const accessor = redefined && classScope.loneAccessors.get(name); + + if (accessor) { + const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC; + const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC; + const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR; + const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) classScope.loneAccessors.delete(name); + } else if (!redefined) { + classScope.loneAccessors.set(name, elementType); } } - this.getArrowLikeExpressions(consequent, true); - this.state.noArrowAt = originalNoArrowAt; - this.expect(types$1.colon); - node.test = expr; - node.consequent = consequent; - node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined, undefined)); - return this.finishNode(node, "ConditionalExpression"); - } - - tryParseConditionalConsequent() { - this.state.noArrowParamsConversionAt.push(this.state.start); - const consequent = this.parseMaybeAssignAllowIn(); - const failed = !this.match(types$1.colon); - this.state.noArrowParamsConversionAt.pop(); - return { - consequent, - failed - }; - } - - getArrowLikeExpressions(node, disallowInvalid) { - const stack = [node]; - const arrows = []; - - while (stack.length !== 0) { - const node = stack.pop(); - - if (node.type === "ArrowFunctionExpression") { - if (node.typeParameters || !node.returnType) { - this.finishArrowValidation(node); - } else { - arrows.push(node); - } - - stack.push(node.body); - } else if (node.type === "ConditionalExpression") { - stack.push(node.consequent); - stack.push(node.alternate); - } - } - - if (disallowInvalid) { - arrows.forEach(node => this.finishArrowValidation(node)); - return [arrows, []]; + if (redefined) { + this.raise(pos, ErrorMessages.PrivateNameRedeclaration, name); } - return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + classScope.privateNames.add(name); + classScope.undefinedPrivateNames.delete(name); } - finishArrowValidation(node) { - var _node$extra; - - this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingComma, false); - this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - super.checkParams(node, false, true); - this.scope.exit(); - } + usePrivateName(name, pos) { + let classScope; - forwardNoArrowParamsConversionAt(node, parse) { - let result; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - this.state.noArrowParamsConversionAt.push(this.state.start); - result = parse(); - this.state.noArrowParamsConversionAt.pop(); + if (classScope) { + classScope.undefinedPrivateNames.set(name, pos); } else { - result = parse(); + this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); } - - return result; } - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); - - if (this.eat(types$1.question)) { - node.optional = true; - this.resetEndLocation(node); - } +} - if (this.match(types$1.colon)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TypeCastExpression"); - } +const kExpression = 0, + kMaybeArrowParameterDeclaration = 1, + kMaybeAsyncArrowParameterDeclaration = 2, + kParameterDeclaration = 3; - return node; +class ExpressionScope { + constructor(type = kExpression) { + this.type = void 0; + this.type = type; } - assertModuleNodeAllowed(node) { - if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { - return; - } - - super.assertModuleNodeAllowed(node); + canBeArrowParameterDeclaration() { + return this.type === kMaybeAsyncArrowParameterDeclaration || this.type === kMaybeArrowParameterDeclaration; } - parseExport(node) { - const decl = super.parseExport(node); - - if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") { - decl.exportKind = decl.exportKind || "value"; - } - - return decl; + isCertainlyParameterDeclaration() { + return this.type === kParameterDeclaration; } - parseExportDeclaration(node) { - if (this.isContextual("type")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); +} - if (this.match(types$1.braceL)) { - node.specifiers = this.parseExportSpecifiers(); - this.parseExportFrom(node); - return null; - } else { - return this.flowParseTypeAlias(declarationNode); - } - } else if (this.isContextual("opaque")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseOpaqueType(declarationNode, false); - } else if (this.isContextual("interface")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseInterface(declarationNode); - } else if (this.shouldParseEnums() && this.isContextual("enum")) { - node.exportKind = "value"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(declarationNode); - } else { - return super.parseExportDeclaration(node); - } +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.errors = new Map(); } - eatExportStar(node) { - if (super.eatExportStar(...arguments)) return true; - - if (this.isContextual("type") && this.lookahead().type === types$1.star) { - node.exportKind = "type"; - this.next(); - this.next(); - return true; - } + recordDeclarationError(pos, template) { + this.errors.set(pos, template); + } - return false; + clearDeclarationError(pos) { + this.errors.delete(pos); } - maybeParseExportNamespaceSpecifier(node) { - const pos = this.state.start; - const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + iterateErrors(iterator) { + this.errors.forEach(iterator); + } - if (hasNamespace && node.exportKind === "type") { - this.unexpected(pos); - } +} - return hasNamespace; +class ExpressionScopeHandler { + constructor(raise) { + this.stack = [new ExpressionScope()]; + this.raise = raise; } - parseClassId(node, isStatement, optionalId) { - super.parseClassId(node, isStatement, optionalId); + enter(scope) { + this.stack.push(scope); + } - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } + exit() { + this.stack.pop(); } - parseClassMember(classBody, member, state) { - const pos = this.state.start; + recordParameterInitializerError(pos, template) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; - if (this.isContextual("declare")) { - if (this.parseClassMemberFromModifier(classBody, member)) { + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(pos, template); + } else { return; } - member.declare = true; + scope = stack[--i]; } - super.parseClassMember(classBody, member, state); + this.raise(pos, template); + } - if (member.declare) { - if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { - this.raise(pos, FlowErrors.DeclareClassElement); - } else if (member.value) { - this.raise(member.value.start, FlowErrors.DeclareClassFieldInitializer); - } + recordParenthesizedIdentifierError(pos, template) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + + if (scope.isCertainlyParameterDeclaration()) { + this.raise(pos, template); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(pos, template); + } else { + return; } } - isIterator(word) { - return word === "iterator" || word === "asyncIterator"; - } + recordAsyncArrowParametersError(pos, template) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; - readIterator() { - const word = super.readWord1(); - const fullWord = "@@" + word; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === kMaybeAsyncArrowParameterDeclaration) { + scope.recordDeclarationError(pos, template); + } - if (!this.isIterator(word) || !this.state.inType) { - this.raise(this.state.pos, ErrorMessages.InvalidIdentifier, fullWord); + scope = stack[--i]; } - - this.finishToken(types$1.name, fullWord); } - getTokenFromCode(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors((template, pos) => { + this.raise(pos, template); + let i = stack.length - 2; + let scope = stack[i]; - if (code === 123 && next === 124) { - return this.finishOp(types$1.braceBarL, 2); - } else if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(types$1.relational, 1); - } else if (this.state.inType && code === 63) { - if (next === 46) { - return this.finishOp(types$1.questionDot, 2); + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(pos); + scope = stack[--i]; } - - return this.finishOp(types$1.question, 1); - } else if (isIteratorStart(code, next)) { - this.state.pos += 2; - return this.readIterator(); - } else { - return super.getTokenFromCode(code); - } + }); } - isAssignable(node, isBinding) { - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - return true; - - case "ObjectExpression": - { - const last = node.properties.length - 1; - return node.properties.every((prop, i) => { - return prop.type !== "ObjectMethod" && (i === last || prop.type === "SpreadElement") && this.isAssignable(prop); - }); - } - - case "ObjectProperty": - return this.isAssignable(node.value); +} +function newParameterDeclarationScope() { + return new ExpressionScope(kParameterDeclaration); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(kMaybeArrowParameterDeclaration); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(kMaybeAsyncArrowParameterDeclaration); +} +function newExpressionScope() { + return new ExpressionScope(); +} - case "SpreadElement": - return this.isAssignable(node.argument); +const PARAM = 0b0000, + PARAM_YIELD = 0b0001, + PARAM_AWAIT = 0b0010, + PARAM_RETURN = 0b0100, + PARAM_IN = 0b1000; +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } - case "ArrayExpression": - return node.elements.every(element => this.isAssignable(element)); + enter(flags) { + this.stacks.push(flags); + } - case "AssignmentExpression": - return node.operator === "="; + exit() { + this.stacks.pop(); + } - case "ParenthesizedExpression": - case "TypeCastExpression": - return this.isAssignable(node.expression); + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } - case "MemberExpression": - case "OptionalMemberExpression": - return !isBinding; + get hasAwait() { + return (this.currentFlags() & PARAM_AWAIT) > 0; + } - default: - return false; - } + get hasYield() { + return (this.currentFlags() & PARAM_YIELD) > 0; } - toAssignable(node, isLHS = false) { - if (node.type === "TypeCastExpression") { - return super.toAssignable(this.typeCastToParameter(node), isLHS); - } else { - return super.toAssignable(node, isLHS); - } + get hasReturn() { + return (this.currentFlags() & PARAM_RETURN) > 0; } - toAssignableList(exprList, trailingCommaPos, isLHS) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; + get hasIn() { + return (this.currentFlags() & PARAM_IN) > 0; + } - if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { - exprList[i] = this.typeCastToParameter(expr); - } - } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); +} - return super.toAssignableList(exprList, trailingCommaPos, isLHS); +class UtilParser extends Tokenizer { + addExtra(node, key, val) { + if (!node) return; + const extra = node.extra = node.extra || {}; + extra[key] = val; } - toReferencedList(exprList, isParenthesizedExpr) { - for (let i = 0; i < exprList.length; i++) { - var _expr$extra; - - const expr = exprList[i]; + isRelational(op) { + return this.match(types$1.relational) && this.state.value === op; + } - if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { - this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern); - } + expectRelational(op) { + if (this.isRelational(op)) { + this.next(); + } else { + this.unexpected(null, types$1.relational); } + } - return exprList; + isContextual(name) { + return this.match(types$1.name) && this.state.value === name && !this.state.containsEsc; } - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + isUnparsedContextual(nameStart, name) { + const nameEnd = nameStart + name.length; - if (canBePattern && !this.state.maybeInArrowParameters) { - this.toReferencedList(node.elements); + if (this.input.slice(nameStart, nameEnd) === name) { + const nextCh = this.input.charCodeAt(nameEnd); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); } - return node; + return false; } - checkLVal(expr, ...args) { - if (expr.type !== "TypeCastExpression") { - return super.checkLVal(expr, ...args); - } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); } - parseClassProperty(node) { - if (this.match(types$1.colon)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassProperty(node); + eatContextual(name) { + return this.isContextual(name) && this.eat(types$1.name); } - parseClassPrivateProperty(node) { - if (this.match(types$1.colon)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassPrivateProperty(node); + expectContextual(name, template) { + if (!this.eatContextual(name)) this.unexpected(null, template); } - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); + canInsertSemicolon() { + return this.match(types$1.eof) || this.match(types$1.braceR) || this.hasPrecedingLineBreak(); } - isClassProperty() { - return this.match(types$1.colon) || super.isClassProperty(); + hasPrecedingLineBreak() { + return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); } - isNonstaticConstructor(method) { - return !this.match(types$1.colon) && super.isNonstaticConstructor(method); + hasFollowingLineBreak() { + skipWhiteSpaceToLineBreak.lastIndex = this.state.end; + return skipWhiteSpaceToLineBreak.test(this.input); } - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - if (method.variance) { - this.unexpected(method.variance.start); - } - - delete method.variance; - - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + isLineTerminator() { + return this.eat(types$1.semi) || this.canInsertSemicolon(); + } - if (method.params && isConstructor) { - const params = method.params; + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(types$1.semi)) return; + this.raise(this.state.lastTokEnd, ErrorMessages.MissingSemicolon); + } - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } - } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { - const params = method.value.params; + expect(type, pos) { + this.eat(type) || this.unexpected(pos, type); + } - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } + assertNoSpace(message = "Unexpected space.") { + if (this.state.start > this.state.lastTokEnd) { + this.raise(this.state.lastTokEnd, { + code: ErrorCodes.SyntaxError, + reasonCode: "UnexpectedSpace", + template: message + }); } } - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - if (method.variance) { - this.unexpected(method.variance.start); + unexpected(pos, messageOrType = { + code: ErrorCodes.SyntaxError, + reasonCode: "UnexpectedToken", + template: "Unexpected token" + }) { + if (messageOrType instanceof TokenType) { + messageOrType = { + code: ErrorCodes.SyntaxError, + reasonCode: "UnexpectedToken", + template: `Unexpected token, expected "${messageOrType.label}"` + }; } - delete method.variance; + throw this.raise(pos != null ? pos : this.state.start, messageOrType); + } - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); + expectPlugin(name, pos) { + if (!this.hasPlugin(name)) { + throw this.raiseWithData(pos != null ? pos : this.state.start, { + missingPlugin: [name] + }, `This experimental syntax requires enabling the parser plugin: '${name}'`); } - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + return true; } - parseClassSuper(node) { - super.parseClassSuper(node); - - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.flowParseTypeParameterInstantiation(); + expectOnePlugin(names, pos) { + if (!names.some(n => this.hasPlugin(n))) { + throw this.raiseWithData(pos != null ? pos : this.state.start, { + missingPlugin: names + }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`); } + } - if (this.isContextual("implements")) { - this.next(); - const implemented = node.implements = []; - - do { - const node = this.startNode(); - node.id = this.flowParseRestrictedIdentifier(true); + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); - implemented.push(this.finishNode(node, "ClassImplements")); - } while (this.eat(types$1.comma)); - } - } + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } - checkGetterSetterParams(method) { - super.checkGetterSetterParams(method); - const params = this.getObjectOrClassMethodParams(method); + return { + node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; - if (params.length > 0) { - const param = params[0]; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } - if (this.isThisParam(param) && method.kind === "get") { - this.raise(param.start, FlowErrors.GetterMayNotHaveThisParam); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.SetterMayNotHaveThisParam); + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; } + + throw error; } } - parsePropertyName(node, isPrivateNameAllowed) { - const variance = this.flowParseVariance(); - const key = super.parsePropertyName(node, isPrivateNameAllowed); - node.variance = variance; - return key; - } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssign, + doubleProto, + optionalParameters + } = refExpressionErrors; - parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - if (prop.variance) { - this.unexpected(prop.variance.start); + if (!andThrow) { + return shorthandAssign >= 0 || doubleProto >= 0 || optionalParameters >= 0; } - delete prop.variance; - let typeParameters; - - if (this.isRelational("<") && !isAccessor) { - typeParameters = this.flowParseTypeParameterDeclaration(); - if (!this.match(types$1.parenL)) this.unexpected(); + if (shorthandAssign >= 0) { + this.unexpected(shorthandAssign); } - super.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (doubleProto >= 0) { + this.raise(doubleProto, ErrorMessages.DuplicateProto); + } - if (typeParameters) { - (prop.value || prop).typeParameters = typeParameters; + if (optionalParameters >= 0) { + this.unexpected(optionalParameters); } } - parseAssignableListItemTypes(param) { - if (this.eat(types$1.question)) { - if (param.type !== "Identifier") { - this.raise(param.start, FlowErrors.OptionalBindingPattern); - } - - if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamMayNotBeOptional); - } + isLiteralPropertyName() { + return this.match(types$1.name) || !!this.state.type.keyword || this.match(types$1.string) || this.match(types$1.num) || this.match(types$1.bigint) || this.match(types$1.decimal); + } - param.optional = true; - } + isPrivateName(node) { + return node.type === "PrivateName"; + } - if (this.match(types$1.colon)) { - param.typeAnnotation = this.flowParseTypeAnnotation(); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamAnnotationRequired); - } + getPrivateNameSV(node) { + return node.id.name; + } - if (this.match(types$1.eq) && this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamNoDefault); - } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } - this.resetEndLocation(param); - return param; + isOptionalChain(node) { + return node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression"; } - parseMaybeDefault(startPos, startLoc, left) { - const node = super.parseMaybeDefault(startPos, startLoc, left); + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer); - } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } - return node; + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this.raise.bind(this), this.inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this.raise.bind(this)); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this.raise.bind(this)); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; } - shouldParseDefaultImport(node) { - if (!hasTypeImportKind(node)) { - return super.shouldParseDefaultImport(node); + enterInitialScopes() { + let paramFlags = PARAM; + + if (this.inModule) { + paramFlags |= PARAM_AWAIT; } - return isMaybeDefaultImport(this.state); + this.scope.enter(SCOPE_PROGRAM); + this.prodParam.enter(paramFlags); } - parseImportSpecifierLocal(node, specifier, type, contextDescription) { - specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); - this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, type)); +} +class ExpressionErrors { + constructor() { + this.shorthandAssign = -1; + this.doubleProto = -1; + this.optionalParameters = -1; } - maybeParseDefaultImportSpecifier(node) { - node.importKind = "value"; - let kind = null; +} - if (this.match(types$1._typeof)) { - kind = "typeof"; - } else if (this.isContextual("type")) { - kind = "type"; - } +class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if (parser != null && parser.options.ranges) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } - if (kind) { - const lh = this.lookahead(); +} - if (kind === "type" && lh.type === types$1.star) { - this.unexpected(lh.start); - } +const NodePrototype = Node.prototype; +{ + NodePrototype.__clone = function () { + const newNode = new Node(); + const keys = Object.keys(this); - if (isMaybeDefaultImport(lh) || lh.type === types$1.braceL || lh.type === types$1.star) { - this.next(); - node.importKind = kind; + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; } } - return super.maybeParseDefaultImportSpecifier(node); - } - - parseImportSpecifier(node) { - const specifier = this.startNode(); - const firstIdentIsString = this.match(types$1.string); - const firstIdent = this.parseModuleExportName(); - let specifierTypeKind = null; + return newNode; + }; +} - if (firstIdent.type === "Identifier") { - if (firstIdent.name === "type") { - specifierTypeKind = "type"; - } else if (firstIdent.name === "typeof") { - specifierTypeKind = "typeof"; - } - } +function clonePlaceholder(node) { + return cloneIdentifier(node); +} - let isBinding = false; +function cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + extra, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.name = name; + + if (type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + + return cloned; +} +function cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + + if (type === "Placeholder") { + return clonePlaceholder(node); + } + + const cloned = Object.create(NodePrototype); + cloned.type = "StringLiteral"; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.value = node.value; + return cloned; +} +class NodeUtils extends UtilParser { + startNode() { + return new Node(this, this.state.start, this.state.startLoc); + } - if (this.isContextual("as") && !this.isLookaheadContextual("as")) { - const as_ident = this.parseIdentifier(true); + startNodeAt(pos, loc) { + return new Node(this, pos, loc); + } - if (specifierTypeKind !== null && !this.match(types$1.name) && !this.state.type.keyword) { - specifier.imported = as_ident; - specifier.importKind = specifierTypeKind; - specifier.local = as_ident.__clone(); - } else { - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = this.parseIdentifier(); - } - } else if (specifierTypeKind !== null && (this.match(types$1.name) || this.state.type.keyword)) { - specifier.imported = this.parseIdentifier(true); - specifier.importKind = specifierTypeKind; - - if (this.eatContextual("as")) { - specifier.local = this.parseIdentifier(); - } else { - isBinding = true; - specifier.local = specifier.imported.__clone(); - } - } else { - if (firstIdentIsString) { - throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, firstIdent.value); - } + startNodeAtNode(type) { + return this.startNodeAt(type.start, type.loc.start); + } - isBinding = true; - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = specifier.imported.__clone(); - } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc); + } - const nodeIsTypeImport = hasTypeImportKind(node); - const specifierIsTypeImport = hasTypeImportKind(specifier); + finishNodeAt(node, type, pos, loc) { - if (nodeIsTypeImport && specifierIsTypeImport) { - this.raise(specifier.start, FlowErrors.ImportTypeShorthandOnlyInPureImport); - } + node.type = type; + node.end = pos; + node.loc.end = loc; + if (this.options.ranges) node.range[1] = pos; + if (this.options.attachComment) this.processComment(node); + return node; + } - if (nodeIsTypeImport || specifierIsTypeImport) { - this.checkReservedType(specifier.local.name, specifier.local.start, true); - } + resetStartLocation(node, start, startLoc) { + node.start = start; + node.loc.start = startLoc; + if (this.options.ranges) node.range[0] = start; + } - if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) { - this.checkReservedWord(specifier.local.name, specifier.start, true, true); - } + resetEndLocation(node, end = this.state.lastTokEnd, endLoc = this.state.lastTokEndLoc) { + node.end = end; + node.loc.end = endLoc; + if (this.options.ranges) node.range[1] = end; + } - this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.start, locationNode.loc.start); } - parseBindingAtom() { - switch (this.state.type) { - case types$1._this: - return this.parseIdentifier(true); +} - default: - return super.parseBindingAtom(); - } - } +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = makeErrorTemplates({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: "Cannot overwrite reserved type %0.", + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: "Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.", + EnumDuplicateMemberName: "Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.", + EnumInconsistentMemberValues: "Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", + EnumInvalidExplicitType: "Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", + EnumInvalidExplicitTypeUnknownSupplied: "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", + EnumInvalidMemberInitializerPrimaryType: "Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.", + EnumInvalidMemberInitializerSymbolType: "Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.", + EnumInvalidMemberInitializerUnknownType: "The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.", + EnumInvalidMemberName: "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.", + EnumNumberMemberNotInitialized: "Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.", + EnumStringMemberInconsistentlyInitailized: "String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.", + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + OptionalBindingPattern: "A binding pattern parameter cannot be optional in an implementation signature.", + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: "Unexpected reserved type %0.", + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", + UnsupportedDeclareExportKind: "`declare export %0` is not supported. Use `%1` instead.", + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}, ErrorCodes.SyntaxError); - parseFunctionParams(node, allowModifiers) { - const kind = node.kind; +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} - if (kind !== "get" && kind !== "set" && this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} - super.parseFunctionParams(node, allowModifiers); - } +function isMaybeDefaultImport(state) { + return (state.type === types$1.name || !!state.type.keyword) && state.value !== "from"; +} - parseVarId(decl, kind) { - super.parseVarId(decl, kind); +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; - if (this.match(types$1.colon)) { - decl.id.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(decl.id); - } +function partition(list, test) { + const list1 = []; + const list2 = []; + + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); } - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(types$1.colon)) { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - node.returnType = this.flowParseTypeAnnotation(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - } + return [list1, list2]; +} - return super.parseAsyncArrowFromCallExpression(node, call); +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = (superClass => class extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; } - shouldParseAsyncArrow() { - return this.match(types$1.colon) || super.shouldParseAsyncArrow(); + getScopeHandler() { + return FlowScopeHandler; } - parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - var _jsx; - - let state = null; - let jsx; + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } - if (this.hasPlugin("jsx") && (this.match(types$1.jsxTagStart) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; + shouldParseEnums() { + return !!this.getPluginOption("flow", "enums"); + } - if (context[context.length - 1] === types.j_oTag) { - context.length -= 2; - } else if (context[context.length - 1] === types.j_expr) { - context.length -= 1; + finishToken(type, val) { + if (type !== types$1.string && type !== types$1.semi && type !== types$1.interpreterDirective) { + if (this.flowPragma === undefined) { + this.flowPragma = null; } } - if ((_jsx = jsx) != null && _jsx.error || this.isRelational("<")) { - var _jsx2, _jsx3; - - state = state || this.state.clone(); - let typeParameters; - const arrow = this.tryParse(abort => { - var _arrowExpression$extr; - - typeParameters = this.flowParseTypeParameterDeclaration(); - const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { - const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos); - this.resetStartLocationFromNode(result, typeParameters); - return result; - }); - - if (arrowExpression.type !== "ArrowFunctionExpression" && (_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) { - abort(); - } - - const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); - expr.typeParameters = typeParameters; - this.resetStartLocationFromNode(expr, typeParameters); - return arrowExpression; - }, state); - let arrowExpression = null; - - if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { - if (!arrow.error && !arrow.aborted) { - if (arrow.node.async) { - this.raise(typeParameters.start, FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction); - } - - return arrow.node; - } - - arrowExpression = arrow.node; - } + return super.finishToken(type, val); + } - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); - if (arrowExpression) { - this.state = arrow.failState; - return arrowExpression; + if (!matches) ; else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); } - - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - throw this.raise(typeParameters.start, FlowErrors.UnexpectedTokenAfterTypeParameter); } - return super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos); + return super.addComment(comment); } - parseArrow(node) { - if (this.match(types$1.colon)) { - const result = this.tryParse(() => { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - if (this.canInsertSemicolon()) this.unexpected(); - if (!this.match(types$1.arrow)) this.unexpected(); - return typeNode; - }); - if (result.thrown) return null; - if (result.error) this.state = result.failState; - node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; - } - - return super.parseArrow(node); + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || types$1.colon); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; } - shouldParseArrow() { - return this.match(types$1.colon) || super.shouldParseArrow(); - } + flowParsePredicate() { + const node = this.startNode(); + const moduloPos = this.state.start; + this.next(); + this.expectContextual("checks"); - setArrowFunctionParameters(node, params) { - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - node.params = params; + if (this.state.lastTokStart > moduloPos + 1) { + this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks); + } + + if (this.eat(types$1.parenL)) { + node.value = this.parseExpression(); + this.expect(types$1.parenR); + return this.finishNode(node, "DeclaredPredicate"); } else { - super.setArrowFunctionParameters(node, params); + return this.finishNode(node, "InferredPredicate"); } } - checkParams(node, allowDuplicates, isArrowFunction) { - if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - return; - } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(types$1.colon); + let type = null; + let predicate = null; - for (let i = 0; i < node.params.length; i++) { - if (this.isThisParam(node.params[i]) && i > 0) { - this.raise(node.params[i].start, FlowErrors.ThisParamMustBeFirst); + if (this.match(types$1.modulo)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + + if (this.match(types$1.modulo)) { + predicate = this.flowParsePredicate(); } } - return super.checkParams(...arguments); + return [type, predicate]; } - parseParenAndDistinguishExpression(canBeArrow) { - return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); } - parseSubscripts(base, startPos, startLoc, noCalls) { - if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startPos) !== -1) { - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); - base = this.finishNode(node, "CallExpression"); - } else if (base.type === "Identifier" && base.name === "async" && this.isRelational("<")) { - const state = this.state.clone(); - const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startPos, startLoc) || abort(), state); - if (!arrow.error && !arrow.aborted) return arrow.node; - const result = this.tryParse(() => super.parseSubscripts(base, startPos, startLoc, noCalls), state); - if (result.node && !result.error) return result.node; - - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - - if (result.node) { - this.state = result.failState; - return result.node; - } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); - throw arrow.error || result.error; + if (this.isRelational("<")) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; } - return super.parseSubscripts(base, startPos, startLoc, noCalls); + this.expect(types$1.parenL); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(types$1.parenR); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.start); + return this.finishNode(node, "DeclareFunction"); } - parseSubscript(base, startPos, startLoc, noCalls, subscriptState) { - if (this.match(types$1.questionDot) && this.isLookaheadToken_lt()) { - subscriptState.optionalChainMember = true; - - if (noCalls) { - subscriptState.stop = true; - return base; - } - - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.typeArguments = this.flowParseTypeParameterInstantiation(); - this.expect(types$1.parenL); - node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); - node.optional = true; - return this.finishCallExpression(node, true); - } else if (!noCalls && this.shouldParseTypes() && this.isRelational("<")) { - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const result = this.tryParse(() => { - node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); - this.expect(types$1.parenL); - node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); - if (subscriptState.optionalChainMember) node.optional = false; - return this.finishCallExpression(node, subscriptState.optionalChainMember); - }); + flowParseDeclare(node, insideModule) { + if (this.match(types$1._class)) { + return this.flowParseDeclareClass(node); + } else if (this.match(types$1._function)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(types$1._var)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual("module")) { + if (this.match(types$1.dot)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule); + } - if (result.node) { - if (result.error) this.state = result.failState; - return result.node; + return this.flowParseDeclareModule(node); } + } else if (this.isContextual("type")) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual("opaque")) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual("interface")) { + return this.flowParseDeclareInterface(node); + } else if (this.match(types$1._export)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } else { + throw this.unexpected(); } + } - return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState); + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, BIND_VAR, node.id.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); } - parseNewArguments(node) { - let targs = null; + flowParseDeclareModule(node) { + this.scope.enter(SCOPE_OTHER); - if (this.shouldParseTypes() && this.isRelational("<")) { - targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + if (this.match(types$1.string)) { + node.id = this.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); } - node.typeArguments = targs; - super.parseNewArguments(node); - } - - parseAsyncArrowWithTypeParameters(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - this.parseFunctionParams(node); - if (!this.parseArrow(node)) return; - return this.parseArrowExpression(node, undefined, true); - } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(types$1.braceL); - readToken_mult_modulo(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + while (!this.match(types$1.braceR)) { + let bodyNode = this.startNode(); - if (code === 42 && next === 47 && this.state.hasFlowComment) { - this.state.hasFlowComment = false; - this.state.pos += 2; - this.nextToken(); - return; - } + if (this.match(types$1._import)) { + this.next(); - super.readToken_mult_modulo(code); - } + if (!this.isContextual("type") && !this.match(types$1._typeof)) { + this.raise(this.state.lastTokStart, FlowErrors.InvalidNonTypeImportInDeclareModule); + } - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + this.parseImport(bodyNode); + } else { + this.expectContextual("declare", FlowErrors.UnsupportedStatementInDeclareModule); + bodyNode = this.flowParseDeclare(bodyNode, true); + } - if (code === 124 && next === 125) { - this.finishOp(types$1.braceBarR, 2); - return; + body.push(bodyNode); } - super.readToken_pipe_amp(code); - } - - parseTopLevel(file, program) { - const fileNode = super.parseTopLevel(file, program); + this.scope.exit(); + this.expect(types$1.braceR); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); + } - if (this.state.hasFlowComment) { - this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment); - } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(bodyElement.start, FlowErrors.DuplicateDeclareModuleExports); + } - return fileNode; - } + if (kind === "ES") { + this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); + } - skipBlockComment() { - if (this.hasPlugin("flowComments") && this.skipFlowComment()) { - if (this.state.hasFlowComment) { - this.unexpected(null, FlowErrors.NestedFlowComment); + kind = "CommonJS"; + hasModuleExport = true; } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } - this.hasFlowCommentCompletion(); - this.state.pos += this.skipFlowComment(); - this.state.hasFlowComment = true; - return; - } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(types$1._export); - if (this.state.hasFlowComment) { - const end = this.input.indexOf("*-/", this.state.pos += 2); + if (this.eat(types$1._default)) { + if (this.match(types$1._function) || this.match(types$1._class)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } - if (end === -1) { - throw this.raise(this.state.pos - 2, ErrorMessages.UnterminatedComment); + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(types$1._const) || this.isLet() || (this.isContextual("type") || this.isContextual("interface")) && !insideModule) { + const label = this.state.value; + const suggestion = exportSuggestions[label]; + throw this.raise(this.state.start, FlowErrors.UnsupportedDeclareExportKind, label, suggestion); } - this.state.pos = end + 3; - return; + if (this.match(types$1._var) || this.match(types$1._function) || this.match(types$1._class) || this.isContextual("opaque")) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(types$1.star) || this.match(types$1.braceL) || this.isContextual("interface") || this.isContextual("type") || this.isContextual("opaque")) { + node = this.parseExport(node); + + if (node.type === "ExportNamedDeclaration") { + node.type = "ExportDeclaration"; + node.default = false; + delete node.exportKind; + } + + node.type = "Declare" + node.type; + return node; + } } - super.skipBlockComment(); + throw this.unexpected(); } - skipFlowComment() { - const { - pos - } = this.state; - let shiftToFirstNonWhiteSpace = 2; + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual("exports"); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } - while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { - shiftToFirstNonWhiteSpace++; + flowParseDeclareTypeAlias(node) { + this.next(); + this.flowParseTypeAlias(node); + node.type = "DeclareTypeAlias"; + return node; + } + + flowParseDeclareOpaqueType(node) { + this.next(); + this.flowParseOpaqueType(node, true); + node.type = "DeclareOpaqueType"; + return node; + } + + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node); + return this.finishNode(node, "DeclareInterface"); + } + + flowParseInterfaceish(node, isClass = false) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.start); + + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; } - const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); - const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + node.extends = []; + node.implements = []; + node.mixins = []; - if (ch2 === 58 && ch3 === 58) { - return shiftToFirstNonWhiteSpace + 2; + if (this.eat(types$1._extends)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(types$1.comma)); } - if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { - return shiftToFirstNonWhiteSpace + 12; + if (this.isContextual("mixins")) { + this.next(); + + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(types$1.comma)); } - if (ch2 === 58 && ch3 !== 58) { - return shiftToFirstNonWhiteSpace; + if (this.isContextual("implements")) { + this.next(); + + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(types$1.comma)); } - return false; + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); } - hasFlowCommentCompletion() { - const end = this.input.indexOf("*/", this.state.pos); + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); - if (end === -1) { - throw this.raise(this.state.pos, ErrorMessages.UnterminatedComment); + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; } - } - flowEnumErrorBooleanMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumBooleanMemberNotInitialized, memberName, enumName); + return this.finishNode(node, "InterfaceExtends"); } - flowEnumErrorInvalidMemberName(pos, { - enumName, - memberName - }) { - const suggestion = memberName[0].toUpperCase() + memberName.slice(1); - this.raise(pos, FlowErrors.EnumInvalidMemberName, memberName, suggestion, enumName); + flowParseInterface(node) { + this.flowParseInterfaceish(node); + return this.finishNode(node, "InterfaceDeclaration"); } - flowEnumErrorDuplicateMemberName(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName); + checkNotUnderscore(word) { + if (word === "_") { + this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore); + } } - flowEnumErrorInconsistentMemberValues(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName); + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(startLoc, declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, word); } - flowEnumErrorInvalidExplicitType(pos, { - enumName, - suppliedType - }) { - return this.raise(pos, suppliedType === null ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied : FlowErrors.EnumInvalidExplicitType, enumName, suppliedType); + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.start, declaration); + return this.parseIdentifier(liberal); } - flowEnumErrorInvalidMemberInitializer(pos, { - enumName, - explicitType, - memberName - }) { - let message = null; - - switch (explicitType) { - case "boolean": - case "number": - case "string": - message = FlowErrors.EnumInvalidMemberInitializerPrimaryType; - break; - - case "symbol": - message = FlowErrors.EnumInvalidMemberInitializerSymbolType; - break; + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - default: - message = FlowErrors.EnumInvalidMemberInitializerUnknownType; + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; } - return this.raise(pos, message, enumName, memberName, explicitType); + node.right = this.flowParseTypeInitialiser(types$1.eq); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); } - flowEnumErrorNumberMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumNumberMemberNotInitialized, enumName, memberName); - } + flowParseOpaqueType(node, declare) { + this.expectContextual("type"); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - flowEnumErrorStringMemberInconsistentlyInitailized(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumStringMemberInconsistentlyInitailized, enumName); - } + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } - flowEnumMemberInit() { - const startPos = this.state.start; + node.supertype = null; - const endOfInit = () => this.match(types$1.comma) || this.match(types$1.braceR); + if (this.match(types$1.colon)) { + node.supertype = this.flowParseTypeInitialiser(types$1.colon); + } - switch (this.state.type) { - case types$1.num: - { - const literal = this.parseNumericLiteral(this.state.value); + node.impltype = null; - if (endOfInit()) { - return { - type: "number", - pos: literal.start, - value: literal - }; - } + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(types$1.eq); + } - return { - type: "invalid", - pos: startPos - }; - } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } - case types$1.string: - { - const literal = this.parseStringLiteral(this.state.value); - - if (endOfInit()) { - return { - type: "string", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - case types$1._true: - case types$1._false: - { - const literal = this.parseBooleanLiteral(this.match(types$1._true)); - - if (endOfInit()) { - return { - type: "boolean", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } + flowParseTypeParameter(requireDefault = false) { + const nodeStart = this.state.start; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; - default: - return { - type: "invalid", - pos: startPos - }; + if (this.match(types$1.eq)) { + this.eat(types$1.eq); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(nodeStart, FlowErrors.MissingTypeParamDefault); + } } - } - flowEnumMemberRaw() { - const pos = this.state.start; - const id = this.parseIdentifier(true); - const init = this.eat(types$1.eq) ? this.flowEnumMemberInit() : { - type: "none", - pos - }; - return { - id, - init - }; + return this.finishNode(node, "TypeParameter"); } - flowEnumCheckExplicitTypeMismatch(pos, context, expectedType) { - const { - explicitType - } = context; - - if (explicitType === null) { - return; - } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; - if (explicitType !== expectedType) { - this.flowEnumErrorInvalidMemberInitializer(pos, context); + if (this.isRelational("<") || this.match(types$1.jsxTagStart)) { + this.next(); + } else { + this.unexpected(); } - } - - flowEnumMembers({ - enumName, - explicitType - }) { - const seenNames = new Set(); - const members = { - booleanMembers: [], - numberMembers: [], - stringMembers: [], - defaultedMembers: [] - }; - let hasUnknownMembers = false; - - while (!this.match(types$1.braceR)) { - if (this.eat(types$1.ellipsis)) { - hasUnknownMembers = true; - break; - } - const memberNode = this.startNode(); - const { - id, - init - } = this.flowEnumMemberRaw(); - const memberName = id.name; + let defaultRequired = false; - if (memberName === "") { - continue; - } + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); - if (/^[a-z]/.test(memberName)) { - this.flowEnumErrorInvalidMemberName(id.start, { - enumName, - memberName - }); + if (typeParameter.default) { + defaultRequired = true; } - if (seenNames.has(memberName)) { - this.flowEnumErrorDuplicateMemberName(id.start, { - enumName, - memberName - }); + if (!this.isRelational(">")) { + this.expect(types$1.comma); } + } while (!this.isRelational(">")); - seenNames.add(memberName); - const context = { - enumName, - explicitType, - memberName - }; - memberNode.id = id; - - switch (init.type) { - case "boolean": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "boolean"); - memberNode.init = init.value; - members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); - break; - } + this.expectRelational(">"); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } - case "number": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "number"); - memberNode.init = init.value; - members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); - break; - } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expectRelational("<"); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; - case "string": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "string"); - memberNode.init = init.value; - members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); - break; - } + while (!this.isRelational(">")) { + node.params.push(this.flowParseType()); - case "invalid": - { - throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context); - } + if (!this.isRelational(">")) { + this.expect(types$1.comma); + } + } - case "none": - { - switch (explicitType) { - case "boolean": - this.flowEnumErrorBooleanMemberNotInitialized(init.pos, context); - break; + this.state.noAnonFunctionType = oldNoAnonFunctionType; + this.expectRelational(">"); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } - case "number": - this.flowEnumErrorNumberMemberNotInitialized(init.pos, context); - break; + flowParseTypeParameterInstantiationCallOrNew() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expectRelational("<"); - default: - members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); - } - } - } + while (!this.isRelational(">")) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); - if (!this.match(types$1.braceR)) { + if (!this.isRelational(">")) { this.expect(types$1.comma); } } - return { - members, - hasUnknownMembers - }; + this.expectRelational(">"); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); } - flowEnumStringMembers(initializedMembers, defaultedMembers, { - enumName - }) { - if (initializedMembers.length === 0) { - return defaultedMembers; - } else if (defaultedMembers.length === 0) { - return initializedMembers; - } else if (defaultedMembers.length > initializedMembers.length) { - for (const member of initializedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } - - return defaultedMembers; - } else { - for (const member of defaultedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual("interface"); + node.extends = []; - return initializedMembers; + if (this.eat(types$1._extends)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(types$1.comma)); } - } - flowEnumParseExplicitType({ - enumName - }) { - if (this.eatContextual("of")) { - if (!this.match(types$1.name)) { - throw this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: null - }); - } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } - const { - value - } = this.state; - this.next(); + flowParseObjectPropertyKey() { + return this.match(types$1.num) || this.match(types$1.string) ? this.parseExprAtom() : this.parseIdentifier(true); + } - if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { - this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: value - }); - } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; - return value; + if (this.lookahead().type === types$1.colon) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); } - return null; + this.expect(types$1.bracketR); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); } - flowEnumBody(node, { - enumName, - nameLoc - }) { - const explicitType = this.flowEnumParseExplicitType({ - enumName - }); - this.expect(types$1.braceL); - const { - members, - hasUnknownMembers - } = this.flowEnumMembers({ - enumName, - explicitType - }); - node.hasUnknownMembers = hasUnknownMembers; + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(types$1.bracketR); + this.expect(types$1.bracketR); - switch (explicitType) { - case "boolean": - node.explicitType = true; - node.members = members.booleanMembers; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumBooleanBody"); + if (this.isRelational("<") || this.match(types$1.parenL)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); + } else { + node.method = false; - case "number": - node.explicitType = true; - node.members = members.numberMembers; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumNumberBody"); + if (this.eat(types$1.question)) { + node.optional = true; + } - case "string": - node.explicitType = true; - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(types$1.braceR); - return this.finishNode(node, "EnumStringBody"); + node.value = this.flowParseTypeInitialiser(); + } - case "symbol": - node.members = members.defaultedMembers; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumSymbolBody"); + return this.finishNode(node, "ObjectTypeInternalSlot"); + } - default: - { - const empty = () => { - node.members = []; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumStringBody"); - }; + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; - node.explicitType = false; - const boolsLen = members.booleanMembers.length; - const numsLen = members.numberMembers.length; - const strsLen = members.stringMembers.length; - const defaultedLen = members.defaultedMembers.length; + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } - if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { - return empty(); - } else if (!boolsLen && !numsLen) { - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(types$1.braceR); - return this.finishNode(node, "EnumStringBody"); - } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorBooleanMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } + this.expect(types$1.parenL); - node.members = members.booleanMembers; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumBooleanBody"); - } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorNumberMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } + if (this.match(types$1._this)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; - node.members = members.numberMembers; - this.expect(types$1.braceR); - return this.finishNode(node, "EnumNumberBody"); - } else { - this.flowEnumErrorInconsistentMemberValues(nameLoc, { - enumName - }); - return empty(); - } - } + if (!this.match(types$1.parenR)) { + this.expect(types$1.comma); + } } - } - flowParseEnumDeclaration(node) { - const id = this.parseIdentifier(); - node.id = id; - node.body = this.flowEnumBody(this.startNode(), { - enumName: id.name, - nameLoc: id.start - }); - return this.finishNode(node, "EnumDeclaration"); - } + while (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { + node.params.push(this.flowParseFunctionTypeParam(false)); - isLookaheadToken_lt() { - const next = this.nextTokenStart(); + if (!this.match(types$1.parenR)) { + this.expect(types$1.comma); + } + } - if (this.input.charCodeAt(next) === 60) { - const afterNext = this.input.charCodeAt(next + 1); - return afterNext !== 60 && afterNext !== 61; + if (this.eat(types$1.ellipsis)) { + node.rest = this.flowParseFunctionTypeParam(false); } - return false; + this.expect(types$1.parenR); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); } - maybeUnwrapTypeCastExpression(node) { - return node.type === "TypeCastExpression" ? node.expression : node; + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); } -}); + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; -const entities = { - quot: "\u0022", - amp: "&", - apos: "\u0027", - lt: "<", - gt: ">", - nbsp: "\u00A0", - iexcl: "\u00A1", - cent: "\u00A2", - pound: "\u00A3", - curren: "\u00A4", - yen: "\u00A5", - brvbar: "\u00A6", - sect: "\u00A7", - uml: "\u00A8", - copy: "\u00A9", - ordf: "\u00AA", - laquo: "\u00AB", - not: "\u00AC", - shy: "\u00AD", - reg: "\u00AE", - macr: "\u00AF", - deg: "\u00B0", - plusmn: "\u00B1", - sup2: "\u00B2", - sup3: "\u00B3", - acute: "\u00B4", - micro: "\u00B5", - para: "\u00B6", - middot: "\u00B7", - cedil: "\u00B8", - sup1: "\u00B9", - ordm: "\u00BA", - raquo: "\u00BB", - frac14: "\u00BC", - frac12: "\u00BD", - frac34: "\u00BE", - iquest: "\u00BF", - Agrave: "\u00C0", - Aacute: "\u00C1", - Acirc: "\u00C2", - Atilde: "\u00C3", - Auml: "\u00C4", - Aring: "\u00C5", - AElig: "\u00C6", - Ccedil: "\u00C7", - Egrave: "\u00C8", - Eacute: "\u00C9", - Ecirc: "\u00CA", - Euml: "\u00CB", - Igrave: "\u00CC", - Iacute: "\u00CD", - Icirc: "\u00CE", - Iuml: "\u00CF", - ETH: "\u00D0", - Ntilde: "\u00D1", - Ograve: "\u00D2", - Oacute: "\u00D3", - Ocirc: "\u00D4", - Otilde: "\u00D5", - Ouml: "\u00D6", - times: "\u00D7", - Oslash: "\u00D8", - Ugrave: "\u00D9", - Uacute: "\u00DA", - Ucirc: "\u00DB", - Uuml: "\u00DC", - Yacute: "\u00DD", - THORN: "\u00DE", - szlig: "\u00DF", - agrave: "\u00E0", - aacute: "\u00E1", - acirc: "\u00E2", - atilde: "\u00E3", - auml: "\u00E4", - aring: "\u00E5", - aelig: "\u00E6", - ccedil: "\u00E7", - egrave: "\u00E8", - eacute: "\u00E9", - ecirc: "\u00EA", - euml: "\u00EB", - igrave: "\u00EC", - iacute: "\u00ED", - icirc: "\u00EE", - iuml: "\u00EF", - eth: "\u00F0", - ntilde: "\u00F1", - ograve: "\u00F2", - oacute: "\u00F3", - ocirc: "\u00F4", - otilde: "\u00F5", - ouml: "\u00F6", - divide: "\u00F7", - oslash: "\u00F8", - ugrave: "\u00F9", - uacute: "\u00FA", - ucirc: "\u00FB", - uuml: "\u00FC", - yacute: "\u00FD", - thorn: "\u00FE", - yuml: "\u00FF", - OElig: "\u0152", - oelig: "\u0153", - Scaron: "\u0160", - scaron: "\u0161", - Yuml: "\u0178", - fnof: "\u0192", - circ: "\u02C6", - tilde: "\u02DC", - Alpha: "\u0391", - Beta: "\u0392", - Gamma: "\u0393", - Delta: "\u0394", - Epsilon: "\u0395", - Zeta: "\u0396", - Eta: "\u0397", - Theta: "\u0398", - Iota: "\u0399", - Kappa: "\u039A", - Lambda: "\u039B", - Mu: "\u039C", - Nu: "\u039D", - Xi: "\u039E", - Omicron: "\u039F", - Pi: "\u03A0", - Rho: "\u03A1", - Sigma: "\u03A3", - Tau: "\u03A4", - Upsilon: "\u03A5", - Phi: "\u03A6", - Chi: "\u03A7", - Psi: "\u03A8", - Omega: "\u03A9", - alpha: "\u03B1", - beta: "\u03B2", - gamma: "\u03B3", - delta: "\u03B4", - epsilon: "\u03B5", - zeta: "\u03B6", - eta: "\u03B7", - theta: "\u03B8", - iota: "\u03B9", - kappa: "\u03BA", - lambda: "\u03BB", - mu: "\u03BC", - nu: "\u03BD", - xi: "\u03BE", - omicron: "\u03BF", - pi: "\u03C0", - rho: "\u03C1", - sigmaf: "\u03C2", - sigma: "\u03C3", - tau: "\u03C4", - upsilon: "\u03C5", - phi: "\u03C6", - chi: "\u03C7", - psi: "\u03C8", - omega: "\u03C9", - thetasym: "\u03D1", - upsih: "\u03D2", - piv: "\u03D6", - ensp: "\u2002", - emsp: "\u2003", - thinsp: "\u2009", - zwnj: "\u200C", - zwj: "\u200D", - lrm: "\u200E", - rlm: "\u200F", - ndash: "\u2013", - mdash: "\u2014", - lsquo: "\u2018", - rsquo: "\u2019", - sbquo: "\u201A", - ldquo: "\u201C", - rdquo: "\u201D", - bdquo: "\u201E", - dagger: "\u2020", - Dagger: "\u2021", - bull: "\u2022", - hellip: "\u2026", - permil: "\u2030", - prime: "\u2032", - Prime: "\u2033", - lsaquo: "\u2039", - rsaquo: "\u203A", - oline: "\u203E", - frasl: "\u2044", - euro: "\u20AC", - image: "\u2111", - weierp: "\u2118", - real: "\u211C", - trade: "\u2122", - alefsym: "\u2135", - larr: "\u2190", - uarr: "\u2191", - rarr: "\u2192", - darr: "\u2193", - harr: "\u2194", - crarr: "\u21B5", - lArr: "\u21D0", - uArr: "\u21D1", - rArr: "\u21D2", - dArr: "\u21D3", - hArr: "\u21D4", - forall: "\u2200", - part: "\u2202", - exist: "\u2203", - empty: "\u2205", - nabla: "\u2207", - isin: "\u2208", - notin: "\u2209", - ni: "\u220B", - prod: "\u220F", - sum: "\u2211", - minus: "\u2212", - lowast: "\u2217", - radic: "\u221A", - prop: "\u221D", - infin: "\u221E", - ang: "\u2220", - and: "\u2227", - or: "\u2228", - cap: "\u2229", - cup: "\u222A", - int: "\u222B", - there4: "\u2234", - sim: "\u223C", - cong: "\u2245", - asymp: "\u2248", - ne: "\u2260", - equiv: "\u2261", - le: "\u2264", - ge: "\u2265", - sub: "\u2282", - sup: "\u2283", - nsub: "\u2284", - sube: "\u2286", - supe: "\u2287", - oplus: "\u2295", - otimes: "\u2297", - perp: "\u22A5", - sdot: "\u22C5", - lceil: "\u2308", - rceil: "\u2309", - lfloor: "\u230A", - rfloor: "\u230B", - lang: "\u2329", - rang: "\u232A", - loz: "\u25CA", - spades: "\u2660", - clubs: "\u2663", - hearts: "\u2665", - diams: "\u2666" -}; + if (allowExact && this.match(types$1.braceBarL)) { + this.expect(types$1.braceBarL); + endDelim = types$1.braceBarR; + exact = true; + } else { + this.expect(types$1.braceL); + endDelim = types$1.braceR; + exact = false; + } + + nodeStart.exact = exact; + + while (!this.match(endDelim)) { + let isStatic = false; + let protoStart = null; + let inexactStart = null; + const node = this.startNode(); + + if (allowProto && this.isContextual("proto")) { + const lookahead = this.lookahead(); + + if (lookahead.type !== types$1.colon && lookahead.type !== types$1.question) { + this.next(); + protoStart = this.state.start; + allowStatic = false; + } + } + + if (allowStatic && this.isContextual("static")) { + const lookahead = this.lookahead(); + + if (lookahead.type !== types$1.colon && lookahead.type !== types$1.question) { + this.next(); + isStatic = true; + } + } + + const variance = this.flowParseVariance(); + + if (this.eat(types$1.bracketL)) { + if (protoStart != null) { + this.unexpected(protoStart); + } + + if (this.eat(types$1.bracketL)) { + if (variance) { + this.unexpected(variance.start); + } + + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(types$1.parenL) || this.isRelational("<")) { + if (protoStart != null) { + this.unexpected(protoStart); + } + + if (variance) { + this.unexpected(variance.start); + } + + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + + if (this.isContextual("get") || this.isContextual("set")) { + const lookahead = this.lookahead(); + + if (lookahead.type === types$1.name || lookahead.type === types$1.string || lookahead.type === types$1.num) { + kind = this.state.value; + this.next(); + } + } + + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + + if (propOrInexact === null) { + inexact = true; + inexactStart = this.state.lastTokStart; + } else { + nodeStart.properties.push(propOrInexact); + } + } + + this.flowObjectTypeSemicolon(); + + if (inexactStart && !this.match(types$1.braceR) && !this.match(types$1.braceBarR)) { + this.raise(inexactStart, FlowErrors.UnexpectedExplicitInexactInObject); + } + } + + this.expect(endDelim); + + if (allowSpread) { + nodeStart.inexact = inexact; + } + + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + + flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact) { + if (this.eat(types$1.ellipsis)) { + const isInexactToken = this.match(types$1.comma) || this.match(types$1.semi) || this.match(types$1.braceR) || this.match(types$1.braceBarR); + + if (isInexactToken) { + if (!allowSpread) { + this.raise(this.state.lastTokStart, FlowErrors.InexactInsideNonObject); + } else if (!allowInexact) { + this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact); + } + + if (variance) { + this.raise(variance.start, FlowErrors.InexactVariance); + } -class State { - constructor() { - this.strict = void 0; - this.curLine = void 0; - this.startLoc = void 0; - this.endLoc = void 0; - this.errors = []; - this.potentialArrowAt = -1; - this.noArrowAt = []; - this.noArrowParamsConversionAt = []; - this.maybeInArrowParameters = false; - this.inPipeline = false; - this.inType = false; - this.noAnonFunctionType = false; - this.inPropertyName = false; - this.hasFlowComment = false; - this.isAmbientContext = false; - this.inAbstractClass = false; - this.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; - this.soloAwait = false; - this.inFSharpPipelineDirectBody = false; - this.labels = []; - this.decoratorStack = [[]]; - this.comments = []; - this.trailingComments = []; - this.leadingComments = []; - this.commentStack = []; - this.commentPreviousNode = null; - this.pos = 0; - this.lineStart = 0; - this.type = types$1.eof; - this.value = null; - this.start = 0; - this.end = 0; - this.lastTokEndLoc = null; - this.lastTokStartLoc = null; - this.lastTokStart = 0; - this.lastTokEnd = 0; - this.context = [types.brace]; - this.exprAllowed = true; - this.containsEsc = false; - this.strictErrors = new Map(); - this.tokensLength = 0; + return null; + } + + if (!allowSpread) { + this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType); + } + + if (protoStart != null) { + this.unexpected(protoStart); + } + + if (variance) { + this.raise(variance.start, FlowErrors.SpreadVariance); + } + + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStart != null; + node.kind = kind; + let optional = false; + + if (this.isRelational("<") || this.match(types$1.parenL)) { + node.method = true; + + if (protoStart != null) { + this.unexpected(protoStart); + } + + if (variance) { + this.unexpected(variance.start); + } + + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); + + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(node.value.this.start, FlowErrors.ThisParamBannedInConstructor); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + + if (this.eat(types$1.question)) { + optional = true; + } + + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } } - init(options) { - this.strict = options.strictMode === false ? false : options.sourceType === "module"; - this.curLine = options.startLine; - this.startLoc = this.endLoc = this.curPosition(); + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const start = property.start; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + + if (property.value.this) { + this.raise(property.value.this.start, property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam); + } + + if (length !== paramCount) { + if (property.kind === "get") { + this.raise(start, ErrorMessages.BadGetterArity); + } else { + this.raise(start, ErrorMessages.BadSetterArity); + } + } + + if (property.kind === "set" && property.value.rest) { + this.raise(start, ErrorMessages.BadSetterRestParameter); + } } - curPosition() { - return new Position(this.curLine, this.pos - this.lineStart); + flowObjectTypeSemicolon() { + if (!this.eat(types$1.semi) && !this.eat(types$1.comma) && !this.match(types$1.braceR) && !this.match(types$1.braceBarR)) { + this.unexpected(); + } } - clone(skipArrays) { - const state = new State(); - const keys = Object.keys(this); + flowParseQualifiedTypeIdentifier(startPos, startLoc, id) { + startPos = startPos || this.state.start; + startLoc = startLoc || this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - let val = this[key]; + while (this.eat(types$1.dot)) { + const node2 = this.startNodeAt(startPos, startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } - if (!skipArrays && Array.isArray(val)) { - val = val.slice(); - } + return node; + } - state[key] = val; + flowParseGenericType(startPos, startLoc, id) { + const node = this.startNodeAt(startPos, startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id); + + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); } - return state; + return this.finishNode(node, "GenericTypeAnnotation"); } -} + flowParseTypeofType() { + const node = this.startNode(); + this.expect(types$1._typeof); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } -const HEX_NUMBER = /^[\da-fA-F]+$/; -const DECIMAL_NUMBER = /^\d+$/; -const JsxErrors = makeErrorTemplates({ - AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", - MissingClosingTagElement: "Expected corresponding JSX closing tag for <%0>.", - MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", - UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", - UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", - UnterminatedJsxContent: "Unterminated JSX contents.", - UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" -}, ErrorCodes.SyntaxError); -types.j_oTag = new TokContext("...", true); -types$1.jsxName = new TokenType("jsxName"); -types$1.jsxText = new TokenType("jsxText", { - beforeExpr: true -}); -types$1.jsxTagStart = new TokenType("jsxTagStart", { - startsExpr: true -}); -types$1.jsxTagEnd = new TokenType("jsxTagEnd"); + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(types$1.bracketL); -types$1.jsxTagStart.updateContext = context => { - context.push(types.j_expr); - context.push(types.j_oTag); -}; + while (this.state.pos < this.length && !this.match(types$1.bracketR)) { + node.types.push(this.flowParseType()); + if (this.match(types$1.bracketR)) break; + this.expect(types$1.comma); + } -function isFragment(object) { - return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; -} + this.expect(types$1.bracketR); + return this.finishNode(node, "TupleTypeAnnotation"); + } -function getQualifiedJSXName(object) { - if (object.type === "JSXIdentifier") { - return object.name; + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === types$1._this; + + if (lh.type === types$1.colon || lh.type === types$1.question) { + if (isThis && !first) { + this.raise(node.start, FlowErrors.ThisParamMustBeFirst); + } + + name = this.parseIdentifier(isThis); + + if (this.eat(types$1.question)) { + optional = true; + + if (isThis) { + this.raise(node.start, FlowErrors.ThisParamMayNotBeOptional); + } + } + + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); } - if (object.type === "JSXNamespacedName") { - return object.namespace.name + ":" + object.name.name; + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.start, type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); } - if (object.type === "JSXMemberExpression") { - return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); - } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + + if (this.match(types$1._this)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; - throw new Error("Node had unexpected type: " + object.type); -} + if (!this.match(types$1.parenR)) { + this.expect(types$1.comma); + } + } -var jsx = (superClass => class extends superClass { - jsxReadToken() { - let out = ""; - let chunkStart = this.state.pos; + while (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { + params.push(this.flowParseFunctionTypeParam(false)); - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent); + if (!this.match(types$1.parenR)) { + this.expect(types$1.comma); } + } - const ch = this.input.charCodeAt(this.state.pos); + if (this.eat(types$1.ellipsis)) { + rest = this.flowParseFunctionTypeParam(false); + } - switch (ch) { - case 60: - case 123: - if (this.state.pos === this.state.start) { - if (ch === 60 && this.state.exprAllowed) { - ++this.state.pos; - return this.finishToken(types$1.jsxTagStart); - } + return { + params, + rest, + _this + }; + } - return super.getTokenFromCode(ch); - } + flowIdentToTypeAnnotation(startPos, startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); - out += this.input.slice(chunkStart, this.state.pos); - return this.finishToken(types$1.jsxText, out); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); - case 38: - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - break; + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); - case 62: - case 125: + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); - default: - if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(true); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); - } - } - } + case "string": + return this.finishNode(node, "StringTypeAnnotation"); - jsxReadNewLine(normalizeCRLF) { - const ch = this.input.charCodeAt(this.state.pos); - let out; - ++this.state.pos; + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); - if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startPos, startLoc, id); } - - ++this.state.curLine; - this.state.lineStart = this.state.pos; - return out; } - jsxReadString(quote) { - let out = ""; - let chunkStart = ++this.state.pos; + flowParsePrimaryType() { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } + switch (this.state.type) { + case types$1.name: + if (this.isContextual("interface")) { + return this.flowParseInterfaceType(); + } - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; + return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); - if (ch === 38) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(false); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } + case types$1.braceL: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); - out += this.input.slice(chunkStart, this.state.pos++); - return this.finishToken(types$1.string, out); - } + case types$1.braceBarL: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); - jsxReadEntity() { - let str = ""; - let count = 0; - let entity; - let ch = this.input[this.state.pos]; - const startPos = ++this.state.pos; + case types$1.bracketL: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; - while (this.state.pos < this.length && count++ < 10) { - ch = this.input[this.state.pos++]; + case types$1.relational: + if (this.state.value === "<") { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(types$1.parenL); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(types$1.parenR); + this.expect(types$1.arrow); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } - if (ch === ";") { - if (str[0] === "#") { - if (str[1] === "x") { - str = str.substr(2); + break; - if (HEX_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 16)); - } + case types$1.parenL: + this.next(); + + if (!this.match(types$1.parenR) && !this.match(types$1.ellipsis)) { + if (this.match(types$1.name) || this.match(types$1._this)) { + const token = this.lookahead().type; + isGroupedType = token !== types$1.question && token !== types$1.colon; } else { - str = str.substr(1); + isGroupedType = true; + } + } - if (DECIMAL_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 10)); - } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + + if (this.state.noAnonFunctionType || !(this.match(types$1.comma) || this.match(types$1.parenR) && this.lookahead().type === types$1.arrow)) { + this.expect(types$1.parenR); + return type; + } else { + this.eat(types$1.comma); } + } + + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); } else { - entity = entities[str]; + tmp = this.flowParseFunctionTypeParams(); } - break; - } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(types$1.parenR); + this.expect(types$1.arrow); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); - str += ch; - } + case types$1.string: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); - if (!entity) { - this.state.pos = startPos; - return "&"; - } + case types$1._true: + case types$1._false: + node.value = this.match(types$1._true); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); - return entity; - } + case types$1.plusMin: + if (this.state.value === "-") { + this.next(); - jsxReadWord() { - let ch; - const start = this.state.pos; + if (this.match(types$1.num)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + + if (this.match(types$1.bigint)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + + throw this.raise(this.state.start, FlowErrors.UnexpectedSubtractionOperand); + } - do { - ch = this.input.charCodeAt(++this.state.pos); - } while (isIdentifierChar(ch) || ch === 45); + throw this.unexpected(); - return this.finishToken(types$1.jsxName, this.input.slice(start, this.state.pos)); - } + case types$1.num: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - jsxParseIdentifier() { - const node = this.startNode(); + case types$1.bigint: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); - if (this.match(types$1.jsxName)) { - node.name = this.state.value; - } else if (this.state.type.keyword) { - node.name = this.state.type.keyword; - } else { - this.unexpected(); - } + case types$1._void: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); - this.next(); - return this.finishNode(node, "JSXIdentifier"); - } + case types$1._null: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); - jsxParseNamespacedName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const name = this.jsxParseIdentifier(); - if (!this.eat(types$1.colon)) return name; - const node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsxParseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); - } + case types$1._this: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); - jsxParseElementName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let node = this.jsxParseNamespacedName(); + case types$1.star: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); - if (node.type === "JSXNamespacedName") { - return node; - } + default: + if (this.state.type.keyword === "typeof") { + return this.flowParseTypeofType(); + } else if (this.state.type.keyword) { + const label = this.state.type.label; + this.next(); + return super.createIdentifier(node, label); + } - while (this.eat(types$1.dot)) { - const newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsxParseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); } - return node; + throw this.unexpected(); } - jsxParseAttributeValue() { - let node; + flowParsePostfixType() { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; - switch (this.state.type) { - case types$1.braceL: - node = this.startNode(); + while ((this.match(types$1.bracketL) || this.match(types$1.questionDot)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startPos, startLoc); + const optional = this.eat(types$1.questionDot); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(types$1.bracketL); + + if (!optional && this.match(types$1.bracketR)) { + node.elementType = type; this.next(); - node = this.jsxParseExpressionContainer(node); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(types$1.bracketR); - if (node.expression.type === "JSXEmptyExpression") { - this.raise(node.start, JsxErrors.AttributeIsEmpty); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); } + } + } - return node; + return type; + } - case types$1.jsxTagStart: - case types$1.string: - return this.parseExprAtom(); + flowParsePrefixType() { + const node = this.startNode(); - default: - throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue); + if (this.eat(types$1.question)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); } } - jsxParseEmptyExpression() { - const node = this.startNodeAt(this.state.lastTokEnd, this.state.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.state.start, this.state.startLoc); - } - - jsxParseSpreadChild(node) { - this.next(); - node.expression = this.parseExpression(); - this.expect(types$1.braceR); - return this.finishNode(node, "JSXSpreadChild"); - } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); - jsxParseExpressionContainer(node) { - if (this.match(types$1.braceR)) { - node.expression = this.jsxParseEmptyExpression(); - } else { - const expression = this.parseExpression(); - node.expression = expression; + if (!this.state.noAnonFunctionType && this.eat(types$1.arrow)) { + const node = this.startNodeAt(param.start, param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); } - this.expect(types$1.braceR); - return this.finishNode(node, "JSXExpressionContainer"); + return param; } - jsxParseAttribute() { + flowParseIntersectionType() { const node = this.startNode(); + this.eat(types$1.bitwiseAND); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; - if (this.eat(types$1.braceL)) { - this.expect(types$1.ellipsis); - node.argument = this.parseMaybeAssignAllowIn(); - this.expect(types$1.braceR); - return this.finishNode(node, "JSXSpreadAttribute"); + while (this.eat(types$1.bitwiseAND)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); } - node.name = this.jsxParseNamespacedName(); - node.value = this.eat(types$1.eq) ? this.jsxParseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); } - jsxParseOpeningElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); + flowParseUnionType() { + const node = this.startNode(); + this.eat(types$1.bitwiseOR); + const type = this.flowParseIntersectionType(); + node.types = [type]; - if (this.match(types$1.jsxTagEnd)) { - this.expect(types$1.jsxTagEnd); - return this.finishNode(node, "JSXOpeningFragment"); + while (this.eat(types$1.bitwiseOR)) { + node.types.push(this.flowParseIntersectionType()); } - node.name = this.jsxParseElementName(); - return this.jsxParseOpeningElementAfterName(node); + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); } - jsxParseOpeningElementAfterName(node) { - const attributes = []; + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } - while (!this.match(types$1.slash) && !this.match(types$1.jsxTagEnd)) { - attributes.push(this.jsxParseAttribute()); + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === types$1.name && this.state.value === "_") { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startPos, startLoc, node); + } else { + return this.flowParseType(); } + } - node.attributes = attributes; - node.selfClosing = this.eat(types$1.slash); - this.expect(types$1.jsxTagEnd); - return this.finishNode(node, "JSXOpeningElement"); + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); } - jsxParseClosingElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); - if (this.match(types$1.jsxTagEnd)) { - this.expect(types$1.jsxTagEnd); - return this.finishNode(node, "JSXClosingFragment"); + if (this.match(types$1.colon)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); } - node.name = this.jsxParseElementName(); - this.expect(types$1.jsxTagEnd); - return this.finishNode(node, "JSXClosingElement"); + return ident; } - jsxParseElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - const children = []; - const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc); - let closingElement = null; + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); + return node.expression; + } - if (!openingElement.selfClosing) { - contents: for (;;) { - switch (this.state.type) { - case types$1.jsxTagStart: - startPos = this.state.start; - startLoc = this.state.startLoc; - this.next(); + flowParseVariance() { + let variance = null; - if (this.eat(types$1.slash)) { - closingElement = this.jsxParseClosingElementAt(startPos, startLoc); - break contents; - } + if (this.match(types$1.plusMin)) { + variance = this.startNode(); - children.push(this.jsxParseElementAt(startPos, startLoc)); - break; + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + + this.next(); + this.finishNode(variance, "Variance"); + } + + return variance; + } - case types$1.jsxText: - children.push(this.parseExprAtom()); - break; + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + } - case types$1.braceL: - { - const node = this.startNode(); - this.next(); + return super.parseFunctionBody(node, false, isMethod); + } - if (this.match(types$1.ellipsis)) { - children.push(this.jsxParseSpreadChild(node)); - } else { - children.push(this.jsxParseExpressionContainer(node)); - } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(types$1.colon)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } - break; - } + super.parseFunctionBodyAndFinish(node, type, isMethod); + } - default: - throw this.unexpected(); - } - } + parseStatement(context, topLevel) { + if (this.state.strict && this.match(types$1.name) && this.state.value === "interface") { + const lookahead = this.lookahead(); - if (isFragment(openingElement) && !isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagFragment); - } else if (!isFragment(openingElement) && isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } else if (!isFragment(openingElement) && !isFragment(closingElement)) { - if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } + if (lookahead.type === types$1.name || isKeyword(lookahead.value)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); } + } else if (this.shouldParseEnums() && this.isContextual("enum")) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); } - if (isFragment(openingElement)) { - node.openingFragment = openingElement; - node.closingFragment = closingElement; - } else { - node.openingElement = openingElement; - node.closingElement = closingElement; + const stmt = super.parseStatement(context, topLevel); + + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; } - node.children = children; + return stmt; + } - if (this.isRelational("<")) { - throw this.raise(this.state.start, JsxErrors.UnwrappedAdjacentJSXElements); + parseExpressionStatement(node, expr) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(types$1._class) || this.match(types$1.name) || this.match(types$1._function) || this.match(types$1._var) || this.match(types$1._export)) { + return this.flowParseDeclare(node); + } + } else if (this.match(types$1.name)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } } - return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + return super.parseExpressionStatement(node, expr); } - jsxParseElement() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - this.next(); - return this.jsxParseElementAt(startPos, startLoc); + shouldParseExportDeclaration() { + return this.isContextual("type") || this.isContextual("interface") || this.isContextual("opaque") || this.shouldParseEnums() && this.isContextual("enum") || super.shouldParseExportDeclaration(); } - parseExprAtom(refExpressionErrors) { - if (this.match(types$1.jsxText)) { - return this.parseLiteral(this.state.value, "JSXText"); - } else if (this.match(types$1.jsxTagStart)) { - return this.jsxParseElement(); - } else if (this.isRelational("<") && this.input.charCodeAt(this.state.pos) !== 33) { - this.finishToken(types$1.jsxTagStart); - return this.jsxParseElement(); - } else { - return super.parseExprAtom(refExpressionErrors); + isExportDefaultSpecifier() { + if (this.match(types$1.name) && (this.state.value === "type" || this.state.value === "interface" || this.state.value === "opaque" || this.shouldParseEnums() && this.state.value === "enum")) { + return false; } + + return super.isExportDefaultSpecifier(); } - createLookaheadState(state) { - const lookaheadState = super.createLookaheadState(state); - lookaheadState.inPropertyName = state.inPropertyName; - return lookaheadState; + parseExportDefaultExpression() { + if (this.shouldParseEnums() && this.isContextual("enum")) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + + return super.parseExportDefaultExpression(); } - getTokenFromCode(code) { - if (this.state.inPropertyName) return super.getTokenFromCode(code); - const context = this.curContext(); + parseConditional(expr, startPos, startLoc, refExpressionErrors) { + if (!this.match(types$1.question)) return expr; - if (context === types.j_expr) { - return this.jsxReadToken(); - } + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); - if (context === types.j_oTag || context === types.j_cTag) { - if (isIdentifierStart(code)) { - return this.jsxReadWord(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; } + } - if (code === 62) { - ++this.state.pos; - return this.finishToken(types$1.jsxTagEnd); + this.expect(types$1.question); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startPos, startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); } - if ((code === 34 || code === 39) && context === types.j_oTag) { - return this.jsxReadString(code); + if (failed && valid.length > 1) { + this.raise(state.start, FlowErrors.AmbiguousConditionalArrow); } - } - if (code === 60 && this.state.exprAllowed && this.input.charCodeAt(this.state.pos + 1) !== 33) { - ++this.state.pos; - return this.finishToken(types$1.jsxTagStart); + if (failed && valid.length === 1) { + this.state = state; + this.state.noArrowAt = noArrowAt.concat(valid[0].start); + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } } - return super.getTokenFromCode(code); + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(types$1.colon); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); } - updateContext(prevType) { - super.updateContext(prevType); - const { - context, - type - } = this.state; + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(types$1.colon); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } - if (type === types$1.braceL) { - const curContext = context[context.length - 1]; + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; - if (curContext === types.j_oTag) { - context.push(types.brace); - } else if (curContext === types.j_expr) { - context.push(types.templateQuasi); - } + while (stack.length !== 0) { + const node = stack.pop(); - this.state.exprAllowed = true; - } else if (type === types$1.slash && prevType === types$1.jsxTagStart) { - context.length -= 2; - context.push(types.j_cTag); - this.state.exprAllowed = false; - } else if (type === types$1.jsxTagEnd) { - const out = context.pop(); + if (node.type === "ArrowFunctionExpression") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } - if (out === types.j_oTag && prevType === types$1.slash || out === types.j_cTag) { - context.pop(); - this.state.exprAllowed = context[context.length - 1] === types.j_expr; - } else { - this.state.exprAllowed = true; + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); } - } else if (type.keyword && (prevType === types$1.dot || prevType === types$1.questionDot)) { - this.state.exprAllowed = false; - } else { - this.state.exprAllowed = type.beforeExpr; } + + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); } -}); + finishArrowValidation(node) { + var _node$extra; -class TypeScriptScope extends Scope { - constructor(...args) { - super(...args); - this.types = new Set(); - this.enums = new Set(); - this.constEnums = new Set(); - this.classes = new Set(); - this.exportOnlyBindings = new Set(); + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingComma, false); + this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); + super.checkParams(node, false, true); + this.scope.exit(); } -} + forwardNoArrowParamsConversionAt(node, parse) { + let result; + + if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } -class TypeScriptScopeHandler extends ScopeHandler { - createScope(flags) { - return new TypeScriptScope(flags); + return result; } - declareName(name, bindingType, pos) { - const scope = this.currentScope(); + parseParenItem(node, startPos, startLoc) { + node = super.parseParenItem(node, startPos, startLoc); - if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) { - this.maybeExportDefined(scope, name); - scope.exportOnlyBindings.add(name); - return; + if (this.eat(types$1.question)) { + node.optional = true; + this.resetEndLocation(node); } - super.declareName(...arguments); + if (this.match(types$1.colon)) { + const typeCastNode = this.startNodeAt(startPos, startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } - if (bindingType & BIND_KIND_TYPE) { - if (!(bindingType & BIND_KIND_VALUE)) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - this.maybeExportDefined(scope, name); - } + return node; + } - scope.types.add(name); + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; } - if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.add(name); - if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.add(name); - if (bindingType & BIND_FLAGS_CLASS) scope.classes.add(name); + super.assertModuleNodeAllowed(node); } - isRedeclaredInScope(scope, name, bindingType) { - if (scope.enums.has(name)) { - if (bindingType & BIND_FLAGS_TS_ENUM) { - const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM); - const wasConst = scope.constEnums.has(name); - return isConst !== wasConst; - } + parseExport(node) { + const decl = super.parseExport(node); - return true; + if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") { + decl.exportKind = decl.exportKind || "value"; } - if (bindingType & BIND_FLAGS_CLASS && scope.classes.has(name)) { - if (scope.lexical.has(name)) { - return !!(bindingType & BIND_KIND_VALUE); + return decl; + } + + parseExportDeclaration(node) { + if (this.isContextual("type")) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + + if (this.match(types$1.braceL)) { + node.specifiers = this.parseExportSpecifiers(); + this.parseExportFrom(node); + return null; } else { - return false; + return this.flowParseTypeAlias(declarationNode); } + } else if (this.isContextual("opaque")) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual("interface")) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.shouldParseEnums() && this.isContextual("enum")) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); } + } - if (bindingType & BIND_KIND_TYPE && scope.types.has(name)) { + eatExportStar(node) { + if (super.eatExportStar(...arguments)) return true; + + if (this.isContextual("type") && this.lookahead().type === types$1.star) { + node.exportKind = "type"; + this.next(); + this.next(); return true; } - return super.isRedeclaredInScope(...arguments); + return false; } - checkLocalExport(id) { - const topLevelScope = this.scopeStack[0]; - const { - name - } = id; + maybeParseExportNamespaceSpecifier(node) { + const pos = this.state.start; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); - if (!topLevelScope.types.has(name) && !topLevelScope.exportOnlyBindings.has(name)) { - super.checkLocalExport(id); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(pos); } - } - -} -const PARAM = 0b0000, - PARAM_YIELD = 0b0001, - PARAM_AWAIT = 0b0010, - PARAM_RETURN = 0b0100, - PARAM_IN = 0b1000; -class ProductionParameterHandler { - constructor() { - this.stacks = []; + return hasNamespace; } - enter(flags) { - this.stacks.push(flags); - } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); - exit() { - this.stacks.pop(); + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } } - currentFlags() { - return this.stacks[this.stacks.length - 1]; - } + parseClassMember(classBody, member, state) { + const pos = this.state.start; - get hasAwait() { - return (this.currentFlags() & PARAM_AWAIT) > 0; - } + if (this.isContextual("declare")) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } - get hasYield() { - return (this.currentFlags() & PARAM_YIELD) > 0; - } + member.declare = true; + } - get hasReturn() { - return (this.currentFlags() & PARAM_RETURN) > 0; - } + super.parseClassMember(classBody, member, state); - get hasIn() { - return (this.currentFlags() & PARAM_IN) > 0; + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(pos, FlowErrors.DeclareClassElement); + } else if (member.value) { + this.raise(member.value.start, FlowErrors.DeclareClassFieldInitializer); + } + } } -} -function functionFlags(isAsync, isGenerator) { - return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); -} - -function nonNull(x) { - if (x == null) { - throw new Error(`Unexpected ${x} value.`); + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; } - return x; -} + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; -function assert(x) { - if (!x) { - throw new Error("Assert fail"); + if (!this.isIterator(word) || !this.state.inType) { + this.raise(this.state.pos, ErrorMessages.InvalidIdentifier, fullWord); + } + + this.finishToken(types$1.name, fullWord); } -} -const TSErrors = makeErrorTemplates({ - AbstractMethodHasImplementation: "Method '%0' cannot have an implementation because it is marked abstract.", - AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", - AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.", - ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", - ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", - ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", - DeclareAccessor: "'declare' is not allowed in %0ters.", - DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", - DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", - DuplicateAccessibilityModifier: "Accessibility modifier already seen.", - DuplicateModifier: "Duplicate modifier: '%0'.", - EmptyHeritageClauseType: "'%0' list cannot be empty.", - EmptyTypeArguments: "Type argument list cannot be empty.", - EmptyTypeParameters: "Type parameter list cannot be empty.", - ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", - ImportAliasHasImportType: "An import alias can not use 'import type'.", - IncompatibleModifiers: "'%0' modifier cannot be used with '%1' modifier.", - IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", - IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0').", - IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", - IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", - IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", - InvalidModifierOnTypeMember: "'%0' modifier cannot appear on a type member.", - InvalidModifiersOrder: "'%0' modifier must precede '%1' modifier.", - InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", - MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", - NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", - NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", - OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", - OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", - PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", - PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", - PrivateElementHasAccessibility: "Private elements cannot have an accessibility modifier ('%0').", - ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", - SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", - SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", - SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", - StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", - TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", - TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", - UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", - UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", - UnexpectedTypeAnnotation: "Did not expect a type annotation here.", - UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", - UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", - UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", - UnsupportedSignatureParameterKind: "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0." -}, ErrorCodes.SyntaxError); + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); -function keywordTypeFromName(value) { - switch (value) { - case "any": - return "TSAnyKeyword"; + if (code === 123 && next === 124) { + return this.finishOp(types$1.braceBarL, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + return this.finishOp(types$1.relational, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + return this.finishOp(types$1.questionDot, 2); + } - case "boolean": - return "TSBooleanKeyword"; + return this.finishOp(types$1.question, 1); + } else if (isIteratorStart(code, next)) { + this.state.pos += 2; + return this.readIterator(); + } else { + return super.getTokenFromCode(code); + } + } - case "bigint": - return "TSBigIntKeyword"; + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } - case "never": - return "TSNeverKeyword"; + toAssignable(node, isLHS = false) { + if (node.type === "TypeCastExpression") { + return super.toAssignable(this.typeCastToParameter(node), isLHS); + } else { + return super.toAssignable(node, isLHS); + } + } - case "number": - return "TSNumberKeyword"; + toAssignableList(exprList, trailingCommaPos, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; - case "object": - return "TSObjectKeyword"; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } - case "string": - return "TSStringKeyword"; + return super.toAssignableList(exprList, trailingCommaPos, isLHS); + } - case "symbol": - return "TSSymbolKeyword"; + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; - case "undefined": - return "TSUndefinedKeyword"; + const expr = exprList[i]; - case "unknown": - return "TSUnknownKeyword"; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern); + } + } - default: - return undefined; + return exprList; } -} - -function tsIsAccessModifier(modifier) { - return modifier === "private" || modifier === "public" || modifier === "protected"; -} -var typescript = (superClass => class extends superClass { - getScopeHandler() { - return TypeScriptScopeHandler; - } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); - tsIsIdentifier() { - return this.match(types$1.name); - } + if (canBePattern && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } - tsTokenCanFollowModifier() { - return (this.match(types$1.bracketL) || this.match(types$1.braceL) || this.match(types$1.star) || this.match(types$1.ellipsis) || this.match(types$1.privateName) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); + return node; } - tsNextTokenCanFollowModifier() { - this.next(); - return this.tsTokenCanFollowModifier(); + checkLVal(expr, ...args) { + if (expr.type !== "TypeCastExpression") { + return super.checkLVal(expr, ...args); + } } - tsParseModifier(allowedModifiers) { - if (!this.match(types$1.name)) { - return undefined; + parseClassProperty(node) { + if (this.match(types$1.colon)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); } - const modifier = this.state.value; + return super.parseClassProperty(node); + } - if (allowedModifiers.indexOf(modifier) !== -1 && this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { - return modifier; + parseClassPrivateProperty(node) { + if (this.match(types$1.colon)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); } - return undefined; + return super.parseClassPrivateProperty(node); } - tsParseModifiers(modified, allowedModifiers, disallowedModifiers, errorTemplate) { - const enforceOrder = (pos, modifier, before, after) => { - if (modifier === before && modified[after]) { - this.raise(pos, TSErrors.InvalidModifiersOrder, before, after); - } - }; + isClassMethod() { + return this.isRelational("<") || super.isClassMethod(); + } - const incompatible = (pos, modifier, mod1, mod2) => { - if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { - this.raise(pos, TSErrors.IncompatibleModifiers, mod1, mod2); - } - }; + isClassProperty() { + return this.match(types$1.colon) || super.isClassProperty(); + } - for (;;) { - const startPos = this.state.start; - const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : [])); - if (!modifier) break; + isNonstaticConstructor(method) { + return !this.match(types$1.colon) && super.isNonstaticConstructor(method); + } - if (tsIsAccessModifier(modifier)) { - if (modified.accessibility) { - this.raise(startPos, TSErrors.DuplicateAccessibilityModifier); - } else { - enforceOrder(startPos, modifier, modifier, "override"); - enforceOrder(startPos, modifier, modifier, "static"); - enforceOrder(startPos, modifier, modifier, "readonly"); - modified.accessibility = modifier; - } - } else { - if (Object.hasOwnProperty.call(modified, modifier)) { - this.raise(startPos, TSErrors.DuplicateModifier, modifier); - } else { - enforceOrder(startPos, modifier, "static", "readonly"); - enforceOrder(startPos, modifier, "static", "override"); - enforceOrder(startPos, modifier, "override", "readonly"); - enforceOrder(startPos, modifier, "abstract", "override"); - incompatible(startPos, modifier, "declare", "override"); - incompatible(startPos, modifier, "static", "abstract"); - } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.start); + } - modified[modifier] = true; - } + delete method.variance; - if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { - this.raise(startPos, errorTemplate, modifier); - } + if (this.isRelational("<")) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); } - } - tsIsListTerminator(kind) { - switch (kind) { - case "EnumMembers": - case "TypeMembers": - return this.match(types$1.braceR); + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - case "HeritageClauseElement": - return this.match(types$1.braceL); + if (method.params && isConstructor) { + const params = method.params; - case "TupleElementTypes": - return this.match(types$1.bracketR); + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; - case "TypeParametersOrArguments": - return this.isRelational(">"); + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); + } } - - throw new Error("Unreachable"); } - tsParseList(kind, parseElement) { - const result = []; + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.start); + } - while (!this.tsIsListTerminator(kind)) { - result.push(parseElement()); + delete method.variance; + + if (this.isRelational("<")) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); } - return result; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); } - tsParseDelimitedList(kind, parseElement) { - return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true)); - } + parseClassSuper(node) { + super.parseClassSuper(node); - tsParseDelimitedListWorker(kind, parseElement, expectSuccess) { - const result = []; + if (node.superClass && this.isRelational("<")) { + node.superTypeParameters = this.flowParseTypeParameterInstantiation(); + } - for (;;) { - if (this.tsIsListTerminator(kind)) { - break; - } + if (this.isContextual("implements")) { + this.next(); + const implemented = node.implements = []; - const element = parseElement(); + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); - if (element == null) { - return undefined; - } + if (this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } - result.push(element); + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(types$1.comma)); + } + } - if (this.eat(types$1.comma)) { - continue; - } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); - if (this.tsIsListTerminator(kind)) { - break; - } + if (params.length > 0) { + const param = params[0]; - if (expectSuccess) { - this.expect(types$1.comma); + if (this.isThisParam(param) && method.kind === "get") { + this.raise(param.start, FlowErrors.GetterMayNotHaveThisParam); + } else if (this.isThisParam(param)) { + this.raise(param.start, FlowErrors.SetterMayNotHaveThisParam); } - - return undefined; } + } - return result; + parsePropertyName(node, isPrivateNameAllowed) { + const variance = this.flowParseVariance(); + const key = super.parsePropertyName(node, isPrivateNameAllowed); + node.variance = variance; + return key; } - tsParseBracketedList(kind, parseElement, bracket, skipFirstToken) { - if (!skipFirstToken) { - if (bracket) { - this.expect(types$1.bracketL); - } else { - this.expectRelational("<"); - } + parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.start); } - const result = this.tsParseDelimitedList(kind, parseElement); + delete prop.variance; + let typeParameters; - if (bracket) { - this.expect(types$1.bracketR); - } else { - this.expectRelational(">"); + if (this.isRelational("<") && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(types$1.parenL)) this.unexpected(); } - return result; + super.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + + if (typeParameters) { + (prop.value || prop).typeParameters = typeParameters; + } } - tsParseImportType() { - const node = this.startNode(); - this.expect(types$1._import); - this.expect(types$1.parenL); + parseAssignableListItemTypes(param) { + if (this.eat(types$1.question)) { + if (param.type !== "Identifier") { + this.raise(param.start, FlowErrors.OptionalBindingPattern); + } - if (!this.match(types$1.string)) { - this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument); - } + if (this.isThisParam(param)) { + this.raise(param.start, FlowErrors.ThisParamMayNotBeOptional); + } - node.argument = this.parseExprAtom(); - this.expect(types$1.parenR); + param.optional = true; + } - if (this.eat(types$1.dot)) { - node.qualifier = this.tsParseEntityName(true); + if (this.match(types$1.colon)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(param.start, FlowErrors.ThisParamAnnotationRequired); } - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); + if (this.match(types$1.eq) && this.isThisParam(param)) { + this.raise(param.start, FlowErrors.ThisParamNoDefault); } - return this.finishNode(node, "TSImportType"); + this.resetEndLocation(param); + return param; } - tsParseEntityName(allowReservedWords) { - let entity = this.parseIdentifier(); + parseMaybeDefault(startPos, startLoc, left) { + const node = super.parseMaybeDefault(startPos, startLoc, left); - while (this.eat(types$1.dot)) { - const node = this.startNodeAtNode(entity); - node.left = entity; - node.right = this.parseIdentifier(allowReservedWords); - entity = this.finishNode(node, "TSQualifiedName"); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer); } - return entity; + return node; } - tsParseTypeReference() { - const node = this.startNode(); - node.typeName = this.tsParseEntityName(false); - - if (!this.hasPrecedingLineBreak() && this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); + shouldParseDefaultImport(node) { + if (!hasTypeImportKind(node)) { + return super.shouldParseDefaultImport(node); } - return this.finishNode(node, "TSTypeReference"); + return isMaybeDefaultImport(this.state); } - tsParseThisTypePredicate(lhs) { - this.next(); - const node = this.startNodeAtNode(lhs); - node.parameterName = lhs; - node.typeAnnotation = this.tsParseTypeAnnotation(false); - node.asserts = false; - return this.finishNode(node, "TSTypePredicate"); + parseImportSpecifierLocal(node, specifier, type, contextDescription) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); + node.specifiers.push(this.finishNode(specifier, type)); } - tsParseThisTypeNode() { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSThisType"); - } + maybeParseDefaultImportSpecifier(node) { + node.importKind = "value"; + let kind = null; - tsParseTypeQuery() { - const node = this.startNode(); - this.expect(types$1._typeof); + if (this.match(types$1._typeof)) { + kind = "typeof"; + } else if (this.isContextual("type")) { + kind = "type"; + } - if (this.match(types$1._import)) { - node.exprName = this.tsParseImportType(); - } else { - node.exprName = this.tsParseEntityName(true); + if (kind) { + const lh = this.lookahead(); + + if (kind === "type" && lh.type === types$1.star) { + this.unexpected(lh.start); + } + + if (isMaybeDefaultImport(lh) || lh.type === types$1.braceL || lh.type === types$1.star) { + this.next(); + node.importKind = kind; + } } - return this.finishNode(node, "TSTypeQuery"); + return super.maybeParseDefaultImportSpecifier(node); } - tsParseTypeParameter() { - const node = this.startNode(); - node.name = this.parseIdentifierName(node.start); - node.constraint = this.tsEatThenParseType(types$1._extends); - node.default = this.tsEatThenParseType(types$1.eq); - return this.finishNode(node, "TSTypeParameter"); - } + parseImportSpecifier(node) { + const specifier = this.startNode(); + const firstIdentIsString = this.match(types$1.string); + const firstIdent = this.parseModuleExportName(); + let specifierTypeKind = null; - tsTryParseTypeParameters() { - if (this.isRelational("<")) { - return this.tsParseTypeParameters(); + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } } - } - tsParseTypeParameters() { - const node = this.startNode(); + let isBinding = false; - if (this.isRelational("<") || this.match(types$1.jsxTagStart)) { - this.next(); + if (this.isContextual("as") && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + + if (specifierTypeKind !== null && !this.match(types$1.name) && !this.state.type.keyword) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } } else { - this.unexpected(); + if (specifierTypeKind !== null && (this.match(types$1.name) || this.state.type.keyword)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (firstIdentIsString) { + throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, firstIdent.value); + } + + specifier.imported = firstIdent; + specifier.importKind = null; + } + + if (this.eatContextual("as")) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = cloneIdentifier(specifier.imported); + } } - node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true); + const nodeIsTypeImport = hasTypeImportKind(node); + const specifierIsTypeImport = hasTypeImportKind(specifier); - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeParameters); + if (nodeIsTypeImport && specifierIsTypeImport) { + this.raise(specifier.start, FlowErrors.ImportTypeShorthandOnlyInPureImport); } - return this.finishNode(node, "TSTypeParameterDeclaration"); - } + if (nodeIsTypeImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.start, true); + } - tsTryNextParseConstantContext() { - if (this.lookahead().type === types$1._const) { - this.next(); - return this.tsParseTypeReference(); + if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.start, true, true); } - return null; + this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); + node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); } - tsFillSignature(returnToken, signature) { - const returnTokenRequired = returnToken === types$1.arrow; - signature.typeParameters = this.tsTryParseTypeParameters(); - this.expect(types$1.parenL); - signature.parameters = this.tsParseBindingListForSignature(); + parseBindingAtom() { + switch (this.state.type) { + case types$1._this: + return this.parseIdentifier(true); - if (returnTokenRequired) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); - } else if (this.match(returnToken)) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + default: + return super.parseBindingAtom(); } } - tsParseBindingListForSignature() { - return this.parseBindingList(types$1.parenR, 41).map(pattern => { - if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") { - this.raise(pattern.start, TSErrors.UnsupportedSignatureParameterKind, pattern.type); - } - - return pattern; - }); - } + parseFunctionParams(node, allowModifiers) { + const kind = node.kind; - tsParseTypeMemberSemicolon() { - if (!this.eat(types$1.comma) && !this.isLineTerminator()) { - this.expect(types$1.semi); + if (kind !== "get" && kind !== "set" && this.isRelational("<")) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); } - } - tsParseSignatureMember(kind, node) { - this.tsFillSignature(types$1.colon, node); - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, kind); + super.parseFunctionParams(node, allowModifiers); } - tsIsUnambiguouslyIndexSignature() { - this.next(); - return this.eat(types$1.name) && this.match(types$1.colon); - } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); - tsTryParseIndexSignature(node) { - if (!(this.match(types$1.bracketL) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { - return undefined; + if (this.match(types$1.colon)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); } + } - this.expect(types$1.bracketL); - const id = this.parseIdentifier(); - id.typeAnnotation = this.tsParseTypeAnnotation(); - this.resetEndLocation(id); - this.expect(types$1.bracketR); - node.parameters = [id]; - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, "TSIndexSignature"); + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(types$1.colon)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + + return super.parseAsyncArrowFromCallExpression(node, call); } - tsParsePropertyOrMethodSignature(node, readonly) { - if (this.eat(types$1.question)) node.optional = true; - const nodeAny = node; + shouldParseAsyncArrow() { + return this.match(types$1.colon) || super.shouldParseAsyncArrow(); + } - if (this.match(types$1.parenL) || this.isRelational("<")) { - if (readonly) { - this.raise(node.start, TSErrors.ReadonlyForMethodSignature); - } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; - const method = nodeAny; + let state = null; + let jsx; - if (method.kind && this.isRelational("<")) { - this.raise(this.state.pos, TSErrors.AccesorCannotHaveTypeParameters); - } + if (this.hasPlugin("jsx") && (this.match(types$1.jsxTagStart) || this.isRelational("<"))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const curContext = context[context.length - 1]; - this.tsFillSignature(types$1.colon, method); - this.tsParseTypeMemberSemicolon(); + if (curContext === types.j_oTag) { + context.length -= 2; + } else if (curContext === types.j_expr) { + context.length -= 1; + } + } - if (method.kind === "get") { - if (method.parameters.length > 0) { - this.raise(this.state.pos, ErrorMessages.BadGetterArity); + if ((_jsx = jsx) != null && _jsx.error || this.isRelational("<")) { + var _jsx2, _jsx3; - if (this.isThisParam(method.parameters[0])) { - this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); - } - } - } else if (method.kind === "set") { - if (method.parameters.length !== 1) { - this.raise(this.state.pos, ErrorMessages.BadSetterArity); - } else { - const firstParameter = method.parameters[0]; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; - if (this.isThisParam(firstParameter)) { - this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); - } + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; - if (firstParameter.type === "Identifier" && firstParameter.optional) { - this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveOptionalParameter); + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(typeParameters.start, FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction); } - if (firstParameter.type === "RestElement") { - this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveRestParameter); - } + return arrow.node; } - if (method.typeAnnotation) { - this.raise(method.typeAnnotation.start, TSErrors.SetAccesorCannotHaveReturnType); - } - } else { - method.kind = "method"; + arrowExpression = arrow.node; } - return this.finishNode(method, "TSMethodSignature"); - } else { - const property = nodeAny; - if (readonly) property.readonly = true; - const type = this.tsTryParseTypeAnnotation(); - if (type) property.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(property, "TSPropertySignature"); - } - } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } - tsParseTypeMember() { - const node = this.startNode(); + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } - if (this.match(types$1.parenL) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(typeParameters.start, FlowErrors.UnexpectedTokenAfterTypeParameter); } - if (this.match(types$1._new)) { - const id = this.startNode(); - this.next(); + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } - if (this.match(types$1.parenL) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); - } else { - node.key = this.createIdentifier(id, "new"); - return this.tsParsePropertyOrMethodSignature(node, false); - } + parseArrow(node) { + if (this.match(types$1.colon)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(types$1.arrow)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; } - this.tsParseModifiers(node, ["readonly"], ["declare", "abstract", "private", "protected", "public", "static", "override"], TSErrors.InvalidModifierOnTypeMember); - const idx = this.tsTryParseIndexSignature(node); + return super.parseArrow(node); + } - if (idx) { - return idx; + shouldParseArrow(params) { + return this.match(types$1.colon) || super.shouldParseArrow(params); + } + + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); } + } - this.parsePropertyName(node, false); + checkParams(node, allowDuplicates, isArrowFunction) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + return; + } - if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { - node.kind = node.key.name; - this.parsePropertyName(node, false); + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(node.params[i].start, FlowErrors.ThisParamMustBeFirst); + } } - return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + return super.checkParams(...arguments); } - tsParseTypeLiteral() { - const node = this.startNode(); - node.members = this.tsParseObjectTypeMembers(); - return this.finishNode(node, "TSTypeLiteral"); + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); } - tsParseObjectTypeMembers() { - this.expect(types$1.braceL); - const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); - this.expect(types$1.braceR); - return members; - } + parseSubscripts(base, startPos, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startPos) !== -1) { + this.next(); + const node = this.startNodeAt(startPos, startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.isRelational("<")) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startPos, startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startPos, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; - tsIsStartOfMappedType() { - this.next(); + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } - if (this.eat(types$1.plusMin)) { - return this.isContextual("readonly"); + if (result.node) { + this.state = result.failState; + return result.node; + } + + throw arrow.error || result.error; } - if (this.isContextual("readonly")) { + return super.parseSubscripts(base, startPos, startLoc, noCalls); + } + + parseSubscript(base, startPos, startLoc, noCalls, subscriptState) { + if (this.match(types$1.questionDot) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); - } + const node = this.startNodeAt(startPos, startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiation(); + this.expect(types$1.parenL); + node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && this.isRelational("<")) { + const node = this.startNodeAt(startPos, startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(types$1.parenL); + node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); + if (subscriptState.optionalChainMember) node.optional = false; + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); - if (!this.match(types$1.bracketL)) { - return false; + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } } - this.next(); + return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState); + } - if (!this.tsIsIdentifier()) { - return false; + parseNewArguments(node) { + let targs = null; + + if (this.shouldParseTypes() && this.isRelational("<")) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; } - this.next(); - return this.match(types$1._in); + node.typeArguments = targs; + super.parseNewArguments(node); } - tsParseMappedTypeParameter() { - const node = this.startNode(); - node.name = this.parseIdentifierName(node.start); - node.constraint = this.tsExpectThenParseType(types$1._in); - return this.finishNode(node, "TSTypeParameter"); + parseAsyncArrowWithTypeParameters(startPos, startLoc) { + const node = this.startNodeAt(startPos, startLoc); + this.parseFunctionParams(node); + if (!this.parseArrow(node)) return; + return this.parseArrowExpression(node, undefined, true); } - tsParseMappedType() { - const node = this.startNode(); - this.expect(types$1.braceL); + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); - if (this.match(types$1.plusMin)) { - node.readonly = this.state.value; - this.next(); - this.expectContextual("readonly"); - } else if (this.eatContextual("readonly")) { - node.readonly = true; + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; } - this.expect(types$1.bracketL); - node.typeParameter = this.tsParseMappedTypeParameter(); - node.nameType = this.eatContextual("as") ? this.tsParseType() : null; - this.expect(types$1.bracketR); + super.readToken_mult_modulo(code); + } - if (this.match(types$1.plusMin)) { - node.optional = this.state.value; - this.next(); - this.expect(types$1.question); - } else if (this.eat(types$1.question)) { - node.optional = true; + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + + if (code === 124 && next === 125) { + this.finishOp(types$1.braceBarR, 2); + return; } - node.typeAnnotation = this.tsTryParseType(); - this.semicolon(); - this.expect(types$1.braceR); - return this.finishNode(node, "TSMappedType"); + super.readToken_pipe_amp(code); } - tsParseTupleType() { - const node = this.startNode(); - node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); - let seenOptionalElement = false; - let labeledElements = null; - node.elementTypes.forEach(elementNode => { - var _labeledElements; + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); - let { - type - } = elementNode; + if (this.state.hasFlowComment) { + this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment); + } - if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { - this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired); + return fileNode; + } + + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + this.unexpected(null, FlowErrors.NestedFlowComment); } - seenOptionalElement = seenOptionalElement || type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"; + this.hasFlowCommentCompletion(); + this.state.pos += this.skipFlowComment(); + this.state.hasFlowComment = true; + return; + } - if (type === "TSRestType") { - elementNode = elementNode.typeAnnotation; - type = elementNode.type; + if (this.state.hasFlowComment) { + const end = this.input.indexOf("*-/", this.state.pos += 2); + + if (end === -1) { + throw this.raise(this.state.pos - 2, ErrorMessages.UnterminatedComment); } - const isLabeled = type === "TSNamedTupleMember"; - labeledElements = (_labeledElements = labeledElements) != null ? _labeledElements : isLabeled; + this.state.pos = end + 3; + return; + } - if (labeledElements !== isLabeled) { - this.raise(elementNode.start, TSErrors.MixedLabeledAndUnlabeledElements); - } - }); - return this.finishNode(node, "TSTupleType"); + return super.skipBlockComment(); } - tsParseTupleElementType() { + skipFlowComment() { const { - start: startPos, - startLoc + pos } = this.state; - const rest = this.eat(types$1.ellipsis); - let type = this.tsParseType(); - const optional = this.eat(types$1.question); - const labeled = this.eat(types$1.colon); + let shiftToFirstNonWhiteSpace = 2; - if (labeled) { - const labeledNode = this.startNodeAtNode(type); - labeledNode.optional = optional; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } - if (type.type === "TSTypeReference" && !type.typeParameters && type.typeName.type === "Identifier") { - labeledNode.label = type.typeName; - } else { - this.raise(type.start, TSErrors.InvalidTupleMemberLabel); - labeledNode.label = type; - } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); - labeledNode.elementType = this.tsParseType(); - type = this.finishNode(labeledNode, "TSNamedTupleMember"); - } else if (optional) { - const optionalTypeNode = this.startNodeAtNode(type); - optionalTypeNode.typeAnnotation = type; - type = this.finishNode(optionalTypeNode, "TSOptionalType"); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; } - if (rest) { - const restNode = this.startNodeAt(startPos, startLoc); - restNode.typeAnnotation = type; - type = this.finishNode(restNode, "TSRestType"); + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; } - return type; - } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } - tsParseParenthesizedType() { - const node = this.startNode(); - this.expect(types$1.parenL); - node.typeAnnotation = this.tsParseType(); - this.expect(types$1.parenR); - return this.finishNode(node, "TSParenthesizedType"); + return false; } - tsParseFunctionOrConstructorType(type, abstract) { - const node = this.startNode(); + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); - if (type === "TSConstructorType") { - node.abstract = !!abstract; - if (abstract) this.next(); - this.next(); + if (end === -1) { + throw this.raise(this.state.pos, ErrorMessages.UnterminatedComment); } - - this.tsFillSignature(types$1.arrow, node); - return this.finishNode(node, type); } - tsParseLiteralTypeNode() { - const node = this.startNode(); - - node.literal = (() => { - switch (this.state.type) { - case types$1.num: - case types$1.bigint: - case types$1.string: - case types$1._true: - case types$1._false: - return this.parseExprAtom(); - - default: - throw this.unexpected(); - } - })(); - - return this.finishNode(node, "TSLiteralType"); + flowEnumErrorBooleanMemberNotInitialized(pos, { + enumName, + memberName + }) { + this.raise(pos, FlowErrors.EnumBooleanMemberNotInitialized, memberName, enumName); } - tsParseTemplateLiteralType() { - const node = this.startNode(); - node.literal = this.parseTemplate(false); - return this.finishNode(node, "TSLiteralType"); + flowEnumErrorInvalidMemberName(pos, { + enumName, + memberName + }) { + const suggestion = memberName[0].toUpperCase() + memberName.slice(1); + this.raise(pos, FlowErrors.EnumInvalidMemberName, memberName, suggestion, enumName); } - parseTemplateSubstitution() { - if (this.state.inType) return this.tsParseType(); - return super.parseTemplateSubstitution(); + flowEnumErrorDuplicateMemberName(pos, { + enumName, + memberName + }) { + this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName); } - tsParseThisTypeOrThisTypePredicate() { - const thisKeyword = this.tsParseThisTypeNode(); - - if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { - return this.tsParseThisTypePredicate(thisKeyword); - } else { - return thisKeyword; - } + flowEnumErrorInconsistentMemberValues(pos, { + enumName + }) { + this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName); } - tsParseNonArrayType() { - switch (this.state.type) { - case types$1.name: - case types$1._void: - case types$1._null: - { - const type = this.match(types$1._void) ? "TSVoidKeyword" : this.match(types$1._null) ? "TSNullKeyword" : keywordTypeFromName(this.state.value); - - if (type !== undefined && this.lookaheadCharCode() !== 46) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, type); - } - - return this.tsParseTypeReference(); - } - - case types$1.string: - case types$1.num: - case types$1.bigint: - case types$1._true: - case types$1._false: - return this.tsParseLiteralTypeNode(); - - case types$1.plusMin: - if (this.state.value === "-") { - const node = this.startNode(); - const nextToken = this.lookahead(); + flowEnumErrorInvalidExplicitType(pos, { + enumName, + suppliedType + }) { + return this.raise(pos, suppliedType === null ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied : FlowErrors.EnumInvalidExplicitType, enumName, suppliedType); + } - if (nextToken.type !== types$1.num && nextToken.type !== types$1.bigint) { - throw this.unexpected(); - } + flowEnumErrorInvalidMemberInitializer(pos, { + enumName, + explicitType, + memberName + }) { + let message = null; - node.literal = this.parseMaybeUnary(); - return this.finishNode(node, "TSLiteralType"); - } + switch (explicitType) { + case "boolean": + case "number": + case "string": + message = FlowErrors.EnumInvalidMemberInitializerPrimaryType; + break; + case "symbol": + message = FlowErrors.EnumInvalidMemberInitializerSymbolType; break; - case types$1._this: - return this.tsParseThisTypeOrThisTypePredicate(); + default: + message = FlowErrors.EnumInvalidMemberInitializerUnknownType; + } - case types$1._typeof: - return this.tsParseTypeQuery(); + return this.raise(pos, message, enumName, memberName, explicitType); + } - case types$1._import: - return this.tsParseImportType(); + flowEnumErrorNumberMemberNotInitialized(pos, { + enumName, + memberName + }) { + this.raise(pos, FlowErrors.EnumNumberMemberNotInitialized, enumName, memberName); + } - case types$1.braceL: - return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + flowEnumErrorStringMemberInconsistentlyInitailized(pos, { + enumName + }) { + this.raise(pos, FlowErrors.EnumStringMemberInconsistentlyInitailized, enumName); + } - case types$1.bracketL: - return this.tsParseTupleType(); + flowEnumMemberInit() { + const startPos = this.state.start; - case types$1.parenL: - return this.tsParseParenthesizedType(); + const endOfInit = () => this.match(types$1.comma) || this.match(types$1.braceR); - case types$1.backQuote: - return this.tsParseTemplateLiteralType(); - } + switch (this.state.type) { + case types$1.num: + { + const literal = this.parseNumericLiteral(this.state.value); - throw this.unexpected(); - } + if (endOfInit()) { + return { + type: "number", + pos: literal.start, + value: literal + }; + } - tsParseArrayTypeOrHigher() { - let type = this.tsParseNonArrayType(); + return { + type: "invalid", + pos: startPos + }; + } - while (!this.hasPrecedingLineBreak() && this.eat(types$1.bracketL)) { - if (this.match(types$1.bracketR)) { - const node = this.startNodeAtNode(type); - node.elementType = type; - this.expect(types$1.bracketR); - type = this.finishNode(node, "TSArrayType"); - } else { - const node = this.startNodeAtNode(type); - node.objectType = type; - node.indexType = this.tsParseType(); - this.expect(types$1.bracketR); - type = this.finishNode(node, "TSIndexedAccessType"); - } - } + case types$1.string: + { + const literal = this.parseStringLiteral(this.state.value); - return type; - } + if (endOfInit()) { + return { + type: "string", + pos: literal.start, + value: literal + }; + } - tsParseTypeOperator(operator) { - const node = this.startNode(); - this.expectContextual(operator); - node.operator = operator; - node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + return { + type: "invalid", + pos: startPos + }; + } - if (operator === "readonly") { - this.tsCheckTypeAnnotationForReadOnly(node); - } + case types$1._true: + case types$1._false: + { + const literal = this.parseBooleanLiteral(this.match(types$1._true)); - return this.finishNode(node, "TSTypeOperator"); - } + if (endOfInit()) { + return { + type: "boolean", + pos: literal.start, + value: literal + }; + } - tsCheckTypeAnnotationForReadOnly(node) { - switch (node.typeAnnotation.type) { - case "TSTupleType": - case "TSArrayType": - return; + return { + type: "invalid", + pos: startPos + }; + } default: - this.raise(node.start, TSErrors.UnexpectedReadonly); + return { + type: "invalid", + pos: startPos + }; } } - tsParseInferType() { - const node = this.startNode(); - this.expectContextual("infer"); - const typeParameter = this.startNode(); - typeParameter.name = this.parseIdentifierName(typeParameter.start); - node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); - return this.finishNode(node, "TSInferType"); - } - - tsParseTypeOperatorOrHigher() { - const operator = ["keyof", "unique", "readonly"].find(kw => this.isContextual(kw)); - return operator ? this.tsParseTypeOperator(operator) : this.isContextual("infer") ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher(); + flowEnumMemberRaw() { + const pos = this.state.start; + const id = this.parseIdentifier(true); + const init = this.eat(types$1.eq) ? this.flowEnumMemberInit() : { + type: "none", + pos + }; + return { + id, + init + }; } - tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { - const node = this.startNode(); - const hasLeadingOperator = this.eat(operator); - const types = []; - - do { - types.push(parseConstituentType()); - } while (this.eat(operator)); + flowEnumCheckExplicitTypeMismatch(pos, context, expectedType) { + const { + explicitType + } = context; - if (types.length === 1 && !hasLeadingOperator) { - return types[0]; + if (explicitType === null) { + return; } - node.types = types; - return this.finishNode(node, kind); + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(pos, context); + } } - tsParseIntersectionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), types$1.bitwiseAND); - } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; - tsParseUnionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), types$1.bitwiseOR); - } + while (!this.match(types$1.braceR)) { + if (this.eat(types$1.ellipsis)) { + hasUnknownMembers = true; + break; + } - tsIsStartOfFunctionType() { - if (this.isRelational("<")) { - return true; - } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; - return this.match(types$1.parenL) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); - } + if (memberName === "") { + continue; + } - tsSkipParameterStart() { - if (this.match(types$1.name) || this.match(types$1._this)) { - this.next(); - return true; - } + if (/^[a-z]/.test(memberName)) { + this.flowEnumErrorInvalidMemberName(id.start, { + enumName, + memberName + }); + } - if (this.match(types$1.braceL)) { - let braceStackCounter = 1; - this.next(); + if (seenNames.has(memberName)) { + this.flowEnumErrorDuplicateMemberName(id.start, { + enumName, + memberName + }); + } - while (braceStackCounter > 0) { - if (this.match(types$1.braceL)) { - ++braceStackCounter; - } else if (this.match(types$1.braceR)) { - --braceStackCounter; - } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } - this.next(); - } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } - return true; - } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context); + } - if (this.match(types$1.bracketL)) { - let braceStackCounter = 1; - this.next(); + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.pos, context); + break; - while (braceStackCounter > 0) { - if (this.match(types$1.bracketL)) { - ++braceStackCounter; - } else if (this.match(types$1.bracketR)) { - --braceStackCounter; - } + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.pos, context); + break; - this.next(); + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } } - return true; + if (!this.match(types$1.braceR)) { + this.expect(types$1.comma); + } } - return false; + return { + members, + hasUnknownMembers + }; } - tsIsUnambiguouslyStartOfFunctionType() { - this.next(); - - if (this.match(types$1.parenR) || this.match(types$1.ellipsis)) { - return true; - } - - if (this.tsSkipParameterStart()) { - if (this.match(types$1.colon) || this.match(types$1.comma) || this.match(types$1.question) || this.match(types$1.eq)) { - return true; + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { + enumName + }); } - if (this.match(types$1.parenR)) { - this.next(); - - if (this.match(types$1.arrow)) { - return true; - } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { + enumName + }); } - } - return false; + return initializedMembers; + } } - tsParseTypeOrTypePredicateAnnotation(returnToken) { - return this.tsInType(() => { - const t = this.startNode(); - this.expect(returnToken); - const node = this.startNode(); - const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); - - if (asserts && this.match(types$1._this)) { - let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + flowEnumParseExplicitType({ + enumName + }) { + if (this.eatContextual("of")) { + if (!this.match(types$1.name)) { + throw this.flowEnumErrorInvalidExplicitType(this.state.start, { + enumName, + suppliedType: null + }); + } - if (thisTypePredicate.type === "TSThisType") { - node.parameterName = thisTypePredicate; - node.asserts = true; - node.typeAnnotation = null; - thisTypePredicate = this.finishNode(node, "TSTypePredicate"); - } else { - this.resetStartLocationFromNode(thisTypePredicate, node); - thisTypePredicate.asserts = true; - } + const { + value + } = this.state; + this.next(); - t.typeAnnotation = thisTypePredicate; - return this.finishNode(t, "TSTypeAnnotation"); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.flowEnumErrorInvalidExplicitType(this.state.start, { + enumName, + suppliedType: value + }); } - const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); - - if (!typePredicateVariable) { - if (!asserts) { - return this.tsParseTypeAnnotation(false, t); - } + return value; + } - node.parameterName = this.parseIdentifier(); - node.asserts = asserts; - node.typeAnnotation = null; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); - } + return null; + } - const type = this.tsParseTypeAnnotation(false); - node.parameterName = typePredicateVariable; - node.typeAnnotation = type; - node.asserts = asserts; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); + flowEnumBody(node, { + enumName, + nameLoc + }) { + const explicitType = this.flowEnumParseExplicitType({ + enumName }); - } + this.expect(types$1.braceL); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; - tsTryParseTypeOrTypePredicateAnnotation() { - return this.match(types$1.colon) ? this.tsParseTypeOrTypePredicateAnnotation(types$1.colon) : undefined; - } + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumBooleanBody"); - tsTryParseTypeAnnotation() { - return this.match(types$1.colon) ? this.tsParseTypeAnnotation() : undefined; - } + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumNumberBody"); - tsTryParseType() { - return this.tsEatThenParseType(types$1.colon); - } + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(types$1.braceR); + return this.finishNode(node, "EnumStringBody"); - tsParseTypePredicatePrefix() { - const id = this.parseIdentifier(); + case "symbol": + node.members = members.defaultedMembers; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumSymbolBody"); - if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { - this.next(); - return id; - } - } + default: + { + const empty = () => { + node.members = []; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumStringBody"); + }; - tsParseTypePredicateAsserts() { - if (!this.match(types$1.name) || this.state.value !== "asserts" || this.hasPrecedingLineBreak()) { - return false; - } + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; - const containsEsc = this.state.containsEsc; - this.next(); + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(types$1.braceR); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.start, { + enumName, + memberName: member.id.name + }); + } - if (!this.match(types$1.name) && !this.match(types$1._this)) { - return false; - } + node.members = members.booleanMembers; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.start, { + enumName, + memberName: member.id.name + }); + } - if (containsEsc) { - this.raise(this.state.lastTokStart, ErrorMessages.InvalidEscapedReservedWord, "asserts"); + node.members = members.numberMembers; + this.expect(types$1.braceR); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.flowEnumErrorInconsistentMemberValues(nameLoc, { + enumName + }); + return empty(); + } + } } - - return true; } - tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { - this.tsInType(() => { - if (eatColon) this.expect(types$1.colon); - t.typeAnnotation = this.tsParseType(); + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), { + enumName: id.name, + nameLoc: id.start }); - return this.finishNode(t, "TSTypeAnnotation"); + return this.finishNode(node, "EnumDeclaration"); } - tsParseType() { - assert(this.state.inType); - const type = this.tsParseNonConditionalType(); + isLookaheadToken_lt() { + const next = this.nextTokenStart(); - if (this.hasPrecedingLineBreak() || !this.eat(types$1._extends)) { - return type; + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; } - const node = this.startNodeAtNode(type); - node.checkType = type; - node.extendsType = this.tsParseNonConditionalType(); - this.expect(types$1.question); - node.trueType = this.tsParseType(); - this.expect(types$1.colon); - node.falseType = this.tsParseType(); - return this.finishNode(node, "TSConditionalType"); + return false; } - isAbstractConstructorSignature() { - return this.isContextual("abstract") && this.lookahead().type === types$1._new; + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; } - tsParseNonConditionalType() { - if (this.tsIsStartOfFunctionType()) { - return this.tsParseFunctionOrConstructorType("TSFunctionType"); - } +}); - if (this.match(types$1._new)) { - return this.tsParseFunctionOrConstructorType("TSConstructorType"); - } else if (this.isAbstractConstructorSignature()) { - return this.tsParseFunctionOrConstructorType("TSConstructorType", true); - } +const entities = { + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; - return this.tsParseUnionTypeOrHigher(); - } +const HEX_NUMBER = /^[\da-fA-F]+$/; +const DECIMAL_NUMBER = /^\d+$/; +const JsxErrors = makeErrorTemplates({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: "Expected corresponding JSX closing tag for <%0>.", + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" +}, ErrorCodes.SyntaxError); +types.j_oTag = new TokContext("...", true); +types$1.jsxName = new TokenType("jsxName"); +types$1.jsxText = new TokenType("jsxText", { + beforeExpr: true +}); +types$1.jsxTagStart = new TokenType("jsxTagStart", { + startsExpr: true +}); +types$1.jsxTagEnd = new TokenType("jsxTagEnd"); - tsParseTypeAssertion() { - const node = this.startNode(); +types$1.jsxTagStart.updateContext = context => { + context.push(types.j_expr, types.j_oTag); +}; - const _const = this.tsTryNextParseConstantContext(); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} - node.typeAnnotation = _const || this.tsNextThenParseType(); - this.expectRelational(">"); - node.expression = this.parseMaybeUnary(); - return this.finishNode(node, "TSTypeAssertion"); +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; } - tsParseHeritageClause(descriptor) { - const originalStart = this.state.start; - const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this)); - - if (!delimitedList.length) { - this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor); - } - - return delimitedList; + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; } - tsParseExpressionWithTypeArguments() { - const node = this.startNode(); - node.expression = this.tsParseEntityName(false); - - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSExpressionWithTypeArguments"); + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); } - tsParseInterfaceDeclaration(node) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript interface declaration", BIND_TS_INTERFACE); - node.typeParameters = this.tsTryParseTypeParameters(); - - if (this.eat(types$1._extends)) { - node.extends = this.tsParseHeritageClause("extends"); - } - - const body = this.startNode(); - body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); - node.body = this.finishNode(body, "TSInterfaceBody"); - return this.finishNode(node, "TSInterfaceDeclaration"); - } + throw new Error("Node had unexpected type: " + object.type); +} - tsParseTypeAliasDeclaration(node) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript type alias", BIND_TS_TYPE); - node.typeParameters = this.tsTryParseTypeParameters(); - node.typeAnnotation = this.tsInType(() => { - this.expect(types$1.eq); +var jsx = (superClass => class extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; - if (this.isContextual("intrinsic") && this.lookahead().type !== types$1.dot) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSIntrinsicKeyword"); + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent); } - return this.tsParseType(); - }); - this.semicolon(); - return this.finishNode(node, "TSTypeAliasDeclaration"); - } - - tsInNoContext(cb) { - const oldContext = this.state.context; - this.state.context = [oldContext[0]]; - - try { - return cb(); - } finally { - this.state.context = oldContext; - } - } - - tsInType(cb) { - const oldInType = this.state.inType; - this.state.inType = true; - - try { - return cb(); - } finally { - this.state.inType = oldInType; - } - } - - tsEatThenParseType(token) { - return !this.match(token) ? undefined : this.tsNextThenParseType(); - } - - tsExpectThenParseType(token) { - return this.tsDoThenParseType(() => this.expect(token)); - } - - tsNextThenParseType() { - return this.tsDoThenParseType(() => this.next()); - } - - tsDoThenParseType(cb) { - return this.tsInType(() => { - cb(); - return this.tsParseType(); - }); - } - - tsParseEnumMember() { - const node = this.startNode(); - node.id = this.match(types$1.string) ? this.parseExprAtom() : this.parseIdentifier(true); - - if (this.eat(types$1.eq)) { - node.initializer = this.parseMaybeAssignAllowIn(); - } + const ch = this.input.charCodeAt(this.state.pos); - return this.finishNode(node, "TSEnumMember"); - } + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.exprAllowed) { + ++this.state.pos; + return this.finishToken(types$1.jsxTagStart); + } - tsParseEnumDeclaration(node, isConst) { - if (isConst) node.const = true; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript enum declaration", isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM); - this.expect(types$1.braceL); - node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); - this.expect(types$1.braceR); - return this.finishNode(node, "TSEnumDeclaration"); - } + return super.getTokenFromCode(ch); + } - tsParseModuleBlock() { - const node = this.startNode(); - this.scope.enter(SCOPE_OTHER); - this.expect(types$1.braceL); - this.parseBlockOrModuleBlockBody(node.body = [], undefined, true, types$1.braceR); - this.scope.exit(); - return this.finishNode(node, "TSModuleBlock"); - } + out += this.input.slice(chunkStart, this.state.pos); + return this.finishToken(types$1.jsxText, out); - tsParseModuleOrNamespaceDeclaration(node, nested = false) { - node.id = this.parseIdentifier(); + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; - if (!nested) { - this.checkLVal(node.id, "module or namespace declaration", BIND_TS_NAMESPACE); - } + case 62: + case 125: - if (this.eat(types$1.dot)) { - const inner = this.startNode(); - this.tsParseModuleOrNamespaceDeclaration(inner, true); - node.body = inner; - } else { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); - } + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } - return this.finishNode(node, "TSModuleDeclaration"); + } + } } - tsParseAmbientExternalModuleDeclaration(node) { - if (this.isContextual("global")) { - node.global = true; - node.id = this.parseIdentifier(); - } else if (this.match(types$1.string)) { - node.id = this.parseExprAtom(); - } else { - this.unexpected(); - } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; - if (this.match(types$1.braceL)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; } else { - this.semicolon(); + out = String.fromCharCode(ch); } - return this.finishNode(node, "TSModuleDeclaration"); + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; } - tsParseImportEqualsDeclaration(node, isExport) { - node.isExport = isExport || false; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "import equals declaration", BIND_LEXICAL); - this.expect(types$1.eq); - const moduleReference = this.tsParseModuleReference(); + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; - if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { - this.raise(moduleReference.start, TSErrors.ImportAliasHasImportType); - } + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(this.state.start, ErrorMessages.UnterminatedString); + } - node.moduleReference = moduleReference; - this.semicolon(); - return this.finishNode(node, "TSImportEqualsDeclaration"); - } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; - tsIsExternalModuleReference() { - return this.isContextual("require") && this.lookaheadCharCode() === 40; - } + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } - tsParseModuleReference() { - return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); + out += this.input.slice(chunkStart, this.state.pos++); + return this.finishToken(types$1.string, out); } - tsParseExternalModuleReference() { - const node = this.startNode(); - this.expectContextual("require"); - this.expect(types$1.parenL); + jsxReadEntity() { + let str = ""; + let count = 0; + let entity; + let ch = this.input[this.state.pos]; + const startPos = ++this.state.pos; - if (!this.match(types$1.string)) { - throw this.unexpected(); - } + while (this.state.pos < this.length && count++ < 10) { + ch = this.input[this.state.pos++]; - node.expression = this.parseExprAtom(); - this.expect(types$1.parenR); - return this.finishNode(node, "TSExternalModuleReference"); - } + if (ch === ";") { + if (str[0] === "#") { + if (str[1] === "x") { + str = str.substr(2); - tsLookAhead(f) { - const state = this.state.clone(); - const res = f(); - this.state = state; - return res; - } + if (HEX_NUMBER.test(str)) { + entity = String.fromCodePoint(parseInt(str, 16)); + } + } else { + str = str.substr(1); - tsTryParseAndCatch(f) { - const result = this.tryParse(abort => f() || abort()); - if (result.aborted || !result.node) return undefined; - if (result.error) this.state = result.failState; - return result.node; - } + if (DECIMAL_NUMBER.test(str)) { + entity = String.fromCodePoint(parseInt(str, 10)); + } + } + } else { + entity = entities[str]; + } - tsTryParse(f) { - const state = this.state.clone(); - const result = f(); + break; + } - if (result !== undefined && result !== false) { - return result; - } else { - this.state = state; - return undefined; + str += ch; } - } - tsTryParseDeclare(nany) { - if (this.isLineTerminator()) { - return; + if (!entity) { + this.state.pos = startPos; + return "&"; } - let starttype = this.state.type; - let kind; - - if (this.isContextual("let")) { - starttype = types$1._var; - kind = "let"; - } + return entity; + } - return this.tsInAmbientContext(() => { - switch (starttype) { - case types$1._function: - nany.declare = true; - return this.parseFunctionStatement(nany, false, true); + jsxReadWord() { + let ch; + const start = this.state.pos; - case types$1._class: - nany.declare = true; - return this.parseClass(nany, true, false); + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); - case types$1._const: - if (this.match(types$1._const) && this.isLookaheadContextual("enum")) { - this.expect(types$1._const); - this.expectContextual("enum"); - return this.tsParseEnumDeclaration(nany, true); - } + return this.finishToken(types$1.jsxName, this.input.slice(start, this.state.pos)); + } - case types$1._var: - kind = kind || this.state.value; - return this.parseVarStatement(nany, kind); + jsxParseIdentifier() { + const node = this.startNode(); - case types$1.name: - { - const value = this.state.value; + if (this.match(types$1.jsxName)) { + node.name = this.state.value; + } else if (this.state.type.keyword) { + node.name = this.state.type.keyword; + } else { + this.unexpected(); + } - if (value === "global") { - return this.tsParseAmbientExternalModuleDeclaration(nany); - } else { - return this.tsParseDeclaration(nany, value, true); - } - } - } - }); + this.next(); + return this.finishNode(node, "JSXIdentifier"); } - tsTryParseExportDeclaration() { - return this.tsParseDeclaration(this.startNode(), this.state.value, true); + jsxParseNamespacedName() { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(types$1.colon)) return name; + const node = this.startNodeAt(startPos, startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); } - tsParseExpressionStatement(node, expr) { - switch (expr.name) { - case "declare": - { - const declaration = this.tsTryParseDeclare(node); + jsxParseElementName() { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); - if (declaration) { - declaration.declare = true; - return declaration; - } + if (node.type === "JSXNamespacedName") { + return node; + } - break; - } + while (this.eat(types$1.dot)) { + const newNode = this.startNodeAt(startPos, startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } - case "global": - if (this.match(types$1.braceL)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - const mod = node; - mod.global = true; - mod.id = expr; - mod.body = this.tsParseModuleBlock(); - this.scope.exit(); - this.prodParam.exit(); - return this.finishNode(mod, "TSModuleDeclaration"); + return node; + } + + jsxParseAttributeValue() { + let node; + + switch (this.state.type) { + case types$1.braceL: + node = this.startNode(); + this.next(); + node = this.jsxParseExpressionContainer(node); + + if (node.expression.type === "JSXEmptyExpression") { + this.raise(node.start, JsxErrors.AttributeIsEmpty); } - break; + return node; + + case types$1.jsxTagStart: + case types$1.string: + return this.parseExprAtom(); default: - return this.tsParseDeclaration(node, expr.name, false); + throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue); } } - tsParseDeclaration(node, value, next) { - switch (value) { - case "abstract": - if (this.tsCheckLineTerminator(next) && (this.match(types$1._class) || this.match(types$1.name))) { - return this.tsParseAbstractDeclaration(node); - } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEnd, this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.start, this.state.startLoc); + } - break; + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.expect(types$1.braceR); + return this.finishNode(node, "JSXSpreadChild"); + } - case "enum": - if (next || this.match(types$1.name)) { - if (next) this.next(); - return this.tsParseEnumDeclaration(node, false); - } + jsxParseExpressionContainer(node) { + if (this.match(types$1.braceR)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } - break; + this.expect(types$1.braceR); + return this.finishNode(node, "JSXExpressionContainer"); + } - case "interface": - if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { - return this.tsParseInterfaceDeclaration(node); - } + jsxParseAttribute() { + const node = this.startNode(); - break; + if (this.eat(types$1.braceL)) { + this.expect(types$1.ellipsis); + node.argument = this.parseMaybeAssignAllowIn(); + this.expect(types$1.braceR); + return this.finishNode(node, "JSXSpreadAttribute"); + } - case "module": - if (this.tsCheckLineTerminator(next)) { - if (this.match(types$1.string)) { - return this.tsParseAmbientExternalModuleDeclaration(node); - } else if (this.match(types$1.name)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } - } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(types$1.eq) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } - break; + jsxParseOpeningElementAt(startPos, startLoc) { + const node = this.startNodeAt(startPos, startLoc); - case "namespace": - if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } + if (this.match(types$1.jsxTagEnd)) { + this.expect(types$1.jsxTagEnd); + return this.finishNode(node, "JSXOpeningFragment"); + } - break; + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } - case "type": - if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { - return this.tsParseTypeAliasDeclaration(node); - } + jsxParseOpeningElementAfterName(node) { + const attributes = []; - break; + while (!this.match(types$1.slash) && !this.match(types$1.jsxTagEnd)) { + attributes.push(this.jsxParseAttribute()); } + + node.attributes = attributes; + node.selfClosing = this.eat(types$1.slash); + this.expect(types$1.jsxTagEnd); + return this.finishNode(node, "JSXOpeningElement"); } - tsCheckLineTerminator(next) { - if (next) { - if (this.hasFollowingLineBreak()) return false; - this.next(); - return true; + jsxParseClosingElementAt(startPos, startLoc) { + const node = this.startNodeAt(startPos, startLoc); + + if (this.match(types$1.jsxTagEnd)) { + this.expect(types$1.jsxTagEnd); + return this.finishNode(node, "JSXClosingFragment"); } - return !this.isLineTerminator(); + node.name = this.jsxParseElementName(); + this.expect(types$1.jsxTagEnd); + return this.finishNode(node, "JSXClosingElement"); } - tsTryParseGenericAsyncArrowFunction(startPos, startLoc) { - if (!this.isRelational("<")) { - return undefined; - } + jsxParseElementAt(startPos, startLoc) { + const node = this.startNodeAt(startPos, startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc); + let closingElement = null; - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = true; - const res = this.tsTryParseAndCatch(() => { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = this.tsParseTypeParameters(); - super.parseFunctionParams(node); - node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); - this.expect(types$1.arrow); - return node; - }); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case types$1.jsxTagStart: + startPos = this.state.start; + startLoc = this.state.startLoc; + this.next(); - if (!res) { - return undefined; - } + if (this.eat(types$1.slash)) { + closingElement = this.jsxParseClosingElementAt(startPos, startLoc); + break contents; + } - return this.parseArrowExpression(res, null, true); - } + children.push(this.jsxParseElementAt(startPos, startLoc)); + break; - tsParseTypeArguments() { - const node = this.startNode(); - node.params = this.tsInType(() => this.tsInNoContext(() => { - this.expectRelational("<"); - return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); - })); + case types$1.jsxText: + children.push(this.parseExprAtom()); + break; - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeArguments); - } + case types$1.braceL: + { + const node = this.startNode(); + this.next(); - this.expectRelational(">"); - return this.finishNode(node, "TSTypeParameterInstantiation"); - } + if (this.match(types$1.ellipsis)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node)); + } - tsIsDeclarationStart() { - if (this.match(types$1.name)) { - switch (this.state.value) { - case "abstract": - case "declare": - case "enum": - case "interface": - case "module": - case "namespace": - case "type": - return true; + break; + } + + default: + throw this.unexpected(); + } + } + + if (isFragment(openingElement) && !isFragment(closingElement)) { + this.raise(closingElement.start, JsxErrors.MissingClosingTagFragment); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); + } } } - return false; - } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } - isExportDefaultSpecifier() { - if (this.tsIsDeclarationStart()) return false; - return super.isExportDefaultSpecifier(); + node.children = children; + + if (this.isRelational("<")) { + throw this.raise(this.state.start, JsxErrors.UnwrappedAdjacentJSXElements); + } + + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); } - parseAssignableListItem(allowModifiers, decorators) { + jsxParseElement() { const startPos = this.state.start; const startLoc = this.state.startLoc; - let accessibility; - let readonly = false; - let override = false; + this.next(); + return this.jsxParseElementAt(startPos, startLoc); + } + + parseExprAtom(refExpressionErrors) { + if (this.match(types$1.jsxText)) { + return this.parseLiteral(this.state.value, "JSXText"); + } else if (this.match(types$1.jsxTagStart)) { + return this.jsxParseElement(); + } else if (this.isRelational("<") && this.input.charCodeAt(this.state.pos) !== 33) { + this.finishToken(types$1.jsxTagStart); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + + createLookaheadState(state) { + const lookaheadState = super.createLookaheadState(state); + lookaheadState.inPropertyName = state.inPropertyName; + return lookaheadState; + } + + getTokenFromCode(code) { + if (this.state.inPropertyName) return super.getTokenFromCode(code); + const context = this.curContext(); + + if (context === types.j_expr) { + return this.jsxReadToken(); + } + + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + return this.jsxReadWord(); + } - if (allowModifiers !== undefined) { - const modified = {}; - this.tsParseModifiers(modified, ["public", "private", "protected", "override", "readonly"]); - accessibility = modified.accessibility; - override = modified.override; - readonly = modified.readonly; + if (code === 62) { + ++this.state.pos; + return this.finishToken(types$1.jsxTagEnd); + } - if (allowModifiers === false && (accessibility || readonly || override)) { - this.raise(startPos, TSErrors.UnexpectedParameterModifier); + if ((code === 34 || code === 39) && context === types.j_oTag) { + return this.jsxReadString(code); } } - const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - const elt = this.parseMaybeDefault(left.start, left.loc.start, left); + if (code === 60 && this.state.exprAllowed && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + return this.finishToken(types$1.jsxTagStart); + } - if (accessibility || readonly || override) { - const pp = this.startNodeAt(startPos, startLoc); + return super.getTokenFromCode(code); + } - if (decorators.length) { - pp.decorators = decorators; - } + updateContext(prevType) { + super.updateContext(prevType); + const { + context, + type + } = this.state; - if (accessibility) pp.accessibility = accessibility; - if (readonly) pp.readonly = readonly; - if (override) pp.override = override; + if (type === types$1.slash && prevType === types$1.jsxTagStart) { + context.splice(-2, 2, types.j_cTag); + this.state.exprAllowed = false; + } else if (type === types$1.jsxTagEnd) { + const out = context.pop(); - if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { - this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind); + if (out === types.j_oTag && prevType === types$1.slash || out === types.j_cTag) { + context.pop(); + this.state.exprAllowed = context[context.length - 1] === types.j_expr; + } else { + this.state.exprAllowed = true; } - - pp.parameter = elt; - return this.finishNode(pp, "TSParameterProperty"); + } else if (type.keyword && (prevType === types$1.dot || prevType === types$1.questionDot)) { + this.state.exprAllowed = false; + } else { + this.state.exprAllowed = type.beforeExpr; } + } - if (decorators.length) { - left.decorators = decorators; - } +}); - return elt; +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.types = new Set(); + this.enums = new Set(); + this.constEnums = new Set(); + this.classes = new Set(); + this.exportOnlyBindings = new Set(); } - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(types$1.colon)) { - node.returnType = this.tsParseTypeOrTypePredicateAnnotation(types$1.colon); - } +} - const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" ? "TSDeclareMethod" : undefined; +class TypeScriptScopeHandler extends ScopeHandler { + createScope(flags) { + return new TypeScriptScope(flags); + } - if (bodilessType && !this.match(types$1.braceL) && this.isLineTerminator()) { - this.finishNode(node, bodilessType); + declareName(name, bindingType, pos) { + const scope = this.currentScope(); + + if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) { + this.maybeExportDefined(scope, name); + scope.exportOnlyBindings.add(name); return; } - if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { - this.raise(node.start, TSErrors.DeclareFunctionHasImplementation); + super.declareName(...arguments); - if (node.declare) { - super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); - return; + if (bindingType & BIND_KIND_TYPE) { + if (!(bindingType & BIND_KIND_VALUE)) { + this.checkRedeclarationInScope(scope, name, bindingType, pos); + this.maybeExportDefined(scope, name); } - } - super.parseFunctionBodyAndFinish(node, type, isMethod); - } - - registerFunctionStatementId(node) { - if (!node.body && node.id) { - this.checkLVal(node.id, "function name", BIND_TS_AMBIENT); - } else { - super.registerFunctionStatementId(...arguments); + scope.types.add(name); } + + if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.add(name); + if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.add(name); + if (bindingType & BIND_FLAGS_CLASS) scope.classes.add(name); } - tsCheckForInvalidTypeCasts(items) { - items.forEach(node => { - if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { - this.raise(node.typeAnnotation.start, TSErrors.UnexpectedTypeAnnotation); + isRedeclaredInScope(scope, name, bindingType) { + if (scope.enums.has(name)) { + if (bindingType & BIND_FLAGS_TS_ENUM) { + const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM); + const wasConst = scope.constEnums.has(name); + return isConst !== wasConst; } - }); - } - toReferencedList(exprList, isInParens) { - this.tsCheckForInvalidTypeCasts(exprList); - return exprList; - } + return true; + } - parseArrayLike(...args) { - const node = super.parseArrayLike(...args); + if (bindingType & BIND_FLAGS_CLASS && scope.classes.has(name)) { + if (scope.lexical.has(name)) { + return !!(bindingType & BIND_KIND_VALUE); + } else { + return false; + } + } - if (node.type === "ArrayExpression") { - this.tsCheckForInvalidTypeCasts(node.elements); + if (bindingType & BIND_KIND_TYPE && scope.types.has(name)) { + return true; } - return node; + return super.isRedeclaredInScope(...arguments); } - parseSubscript(base, startPos, startLoc, noCalls, state) { - if (!this.hasPrecedingLineBreak() && this.match(types$1.bang)) { - this.state.exprAllowed = false; - this.next(); - const nonNullExpression = this.startNodeAt(startPos, startLoc); - nonNullExpression.expression = base; - return this.finishNode(nonNullExpression, "TSNonNullExpression"); + checkLocalExport(id) { + const topLevelScope = this.scopeStack[0]; + const { + name + } = id; + + if (!topLevelScope.types.has(name) && !topLevelScope.exportOnlyBindings.has(name)) { + super.checkLocalExport(id); } + } - if (this.isRelational("<")) { - const result = this.tsTryParseAndCatch(() => { - if (!noCalls && this.atPossibleAsyncArrow(base)) { - const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startPos, startLoc); +} - if (asyncArrowFn) { - return asyncArrowFn; - } - } +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const typeArguments = this.tsParseTypeArguments(); + return x; +} - if (typeArguments) { - if (!noCalls && this.eat(types$1.parenL)) { - node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); - this.tsCheckForInvalidTypeCasts(node.arguments); - node.typeParameters = typeArguments; +function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } +} - if (state.optionalChainMember) { - node.optional = false; - } +const TSErrors = makeErrorTemplates({ + AbstractMethodHasImplementation: "Method '%0' cannot have an implementation because it is marked abstract.", + AbstractPropertyHasInitializer: "Property '%0' cannot have an initializer because it is marked abstract.", + AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: "'declare' is not allowed in %0ters.", + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: "Accessibility modifier already seen.", + DuplicateModifier: "Duplicate modifier: '%0'.", + EmptyHeritageClauseType: "'%0' list cannot be empty.", + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + IncompatibleModifiers: "'%0' modifier cannot be used with '%1' modifier.", + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0').", + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InvalidModifierOnTypeMember: "'%0' modifier cannot appear on a type member.", + InvalidModifiersOrder: "'%0' modifier must precede '%1' modifier.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: "Private elements cannot have an accessibility modifier ('%0').", + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0." +}, ErrorCodes.SyntaxError); - return this.finishCallExpression(node, state.optionalChainMember); - } else if (this.match(types$1.backQuote)) { - const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - result.typeParameters = typeArguments; - return result; - } - } +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; - this.unexpected(); - }); - if (result) return result; - } + case "boolean": + return "TSBooleanKeyword"; - return super.parseSubscript(base, startPos, startLoc, noCalls, state); - } + case "bigint": + return "TSBigIntKeyword"; - parseNewArguments(node) { - if (this.isRelational("<")) { - const typeParameters = this.tsTryParseAndCatch(() => { - const args = this.tsParseTypeArguments(); - if (!this.match(types$1.parenL)) this.unexpected(); - return args; - }); + case "never": + return "TSNeverKeyword"; - if (typeParameters) { - node.typeParameters = typeParameters; - } - } + case "number": + return "TSNumberKeyword"; - super.parseNewArguments(node); - } + case "object": + return "TSObjectKeyword"; - parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { - if (nonNull(types$1._in.binop) > minPrec && !this.hasPrecedingLineBreak() && this.isContextual("as")) { - const node = this.startNodeAt(leftStartPos, leftStartLoc); - node.expression = left; + case "string": + return "TSStringKeyword"; - const _const = this.tsTryNextParseConstantContext(); + case "symbol": + return "TSSymbolKeyword"; - if (_const) { - node.typeAnnotation = _const; - } else { - node.typeAnnotation = this.tsNextThenParseType(); - } + case "undefined": + return "TSUndefinedKeyword"; - this.finishNode(node, "TSAsExpression"); - this.reScan_lt_gt(); - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); - } + case "unknown": + return "TSUnknownKeyword"; - return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec); + default: + return undefined; } +} - checkReservedWord(word, startLoc, checkKeywords, isBinding) {} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} - checkDuplicateExports() {} +var typescript = (superClass => class extends superClass { + getScopeHandler() { + return TypeScriptScopeHandler; + } - parseImport(node) { - node.importKind = "value"; + tsIsIdentifier() { + return this.match(types$1.name); + } - if (this.match(types$1.name) || this.match(types$1.star) || this.match(types$1.braceL)) { - let ahead = this.lookahead(); + tsTokenCanFollowModifier() { + return (this.match(types$1.bracketL) || this.match(types$1.braceL) || this.match(types$1.star) || this.match(types$1.ellipsis) || this.match(types$1.privateName) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); + } - if (this.isContextual("type") && ahead.type !== types$1.comma && !(ahead.type === types$1.name && ahead.value === "from") && ahead.type !== types$1.eq) { - node.importKind = "type"; - this.next(); - ahead = this.lookahead(); - } + tsNextTokenCanFollowModifier() { + this.next(); + return this.tsTokenCanFollowModifier(); + } - if (this.match(types$1.name) && ahead.type === types$1.eq) { - return this.tsParseImportEqualsDeclaration(node); - } + tsParseModifier(allowedModifiers) { + if (!this.match(types$1.name)) { + return undefined; } - const importNode = super.parseImport(node); + const modifier = this.state.value; - if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { - this.raise(importNode.start, TSErrors.TypeImportCannotSpecifyDefaultAndNamed); + if (allowedModifiers.indexOf(modifier) !== -1 && this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; } - return importNode; + return undefined; } - parseExport(node) { - if (this.match(types$1._import)) { - this.next(); + tsParseModifiers(modified, allowedModifiers, disallowedModifiers, errorTemplate) { + const enforceOrder = (pos, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(pos, TSErrors.InvalidModifiersOrder, before, after); + } + }; - if (this.isContextual("type") && this.lookaheadCharCode() !== 61) { - node.importKind = "type"; - this.next(); - } else { - node.importKind = "value"; + const incompatible = (pos, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(pos, TSErrors.IncompatibleModifiers, mod1, mod2); } + }; - return this.tsParseImportEqualsDeclaration(node, true); - } else if (this.eat(types$1.eq)) { - const assign = node; - assign.expression = this.parseExpression(); - this.semicolon(); - return this.finishNode(assign, "TSExportAssignment"); - } else if (this.eatContextual("as")) { - const decl = node; - this.expectContextual("namespace"); - decl.id = this.parseIdentifier(); - this.semicolon(); - return this.finishNode(decl, "TSNamespaceExportDeclaration"); - } else { - if (this.isContextual("type") && this.lookahead().type === types$1.braceL) { - this.next(); - node.exportKind = "type"; + for (;;) { + const startPos = this.state.start; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : [])); + if (!modifier) break; + + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(startPos, TSErrors.DuplicateAccessibilityModifier); + } else { + enforceOrder(startPos, modifier, modifier, "override"); + enforceOrder(startPos, modifier, modifier, "static"); + enforceOrder(startPos, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } } else { - node.exportKind = "value"; + if (Object.hasOwnProperty.call(modified, modifier)) { + this.raise(startPos, TSErrors.DuplicateModifier, modifier); + } else { + enforceOrder(startPos, modifier, "static", "readonly"); + enforceOrder(startPos, modifier, "static", "override"); + enforceOrder(startPos, modifier, "override", "readonly"); + enforceOrder(startPos, modifier, "abstract", "override"); + incompatible(startPos, modifier, "declare", "override"); + incompatible(startPos, modifier, "static", "abstract"); + } + + modified[modifier] = true; } - return super.parseExport(node); + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(startPos, errorTemplate, modifier); + } } } - isAbstractClass() { - return this.isContextual("abstract") && this.lookahead().type === types$1._class; - } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(types$1.braceR); - parseExportDefaultExpression() { - if (this.isAbstractClass()) { - const cls = this.startNode(); - this.next(); - cls.abstract = true; - this.parseClass(cls, true, true); - return cls; - } + case "HeritageClauseElement": + return this.match(types$1.braceL); - if (this.state.value === "interface") { - const result = this.tsParseDeclaration(this.startNode(), this.state.value, true); - if (result) return result; + case "TupleElementTypes": + return this.match(types$1.bracketR); + + case "TypeParametersOrArguments": + return this.isRelational(">"); } - return super.parseExportDefaultExpression(); + throw new Error("Unreachable"); } - parseStatementContent(context, topLevel) { - if (this.state.type === types$1._const) { - const ahead = this.lookahead(); + tsParseList(kind, parseElement) { + const result = []; - if (ahead.type === types$1.name && ahead.value === "enum") { - const node = this.startNode(); - this.expect(types$1._const); - this.expectContextual("enum"); - return this.tsParseEnumDeclaration(node, true); - } + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); } - return super.parseStatementContent(context, topLevel); - } - - parseAccessModifier() { - return this.tsParseModifier(["public", "protected", "private"]); + return result; } - tsHasSomeModifiers(member, modifiers) { - return modifiers.some(modifier => { - if (tsIsAccessModifier(modifier)) { - return member.accessibility === modifier; - } - - return !!member[modifier]; - }); + tsParseDelimitedList(kind, parseElement) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true)); } - parseClassMember(classBody, member, state) { - const invalidModifersForStaticBlocks = ["declare", "private", "public", "protected", "override", "abstract", "readonly"]; - this.tsParseModifiers(member, invalidModifersForStaticBlocks.concat(["static"])); - - const callParseClassMemberWithIsStatic = () => { - const isStatic = !!member.static; - - if (isStatic && this.eat(types$1.braceL)) { - if (this.tsHasSomeModifiers(member, invalidModifersForStaticBlocks)) { - this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); - } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess) { + const result = []; - this.parseClassStaticBlock(classBody, member); - } else { - this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; } - }; - - if (member.declare) { - this.tsInAmbientContext(callParseClassMemberWithIsStatic); - } else { - callParseClassMemberWithIsStatic(); - } - } - - parseClassMemberWithIsStatic(classBody, member, state, isStatic) { - const idx = this.tsTryParseIndexSignature(member); - if (idx) { - classBody.body.push(idx); + const element = parseElement(); - if (member.abstract) { - this.raise(member.start, TSErrors.IndexSignatureHasAbstract); + if (element == null) { + return undefined; } - if (member.accessibility) { - this.raise(member.start, TSErrors.IndexSignatureHasAccessibility, member.accessibility); + result.push(element); + + if (this.eat(types$1.comma)) { + continue; } - if (member.declare) { - this.raise(member.start, TSErrors.IndexSignatureHasDeclare); + if (this.tsIsListTerminator(kind)) { + break; } - if (member.override) { - this.raise(member.start, TSErrors.IndexSignatureHasOverride); + if (expectSuccess) { + this.expect(types$1.comma); } - return; + return undefined; } - if (!this.state.inAbstractClass && member.abstract) { - this.raise(member.start, TSErrors.NonAbstractClassHasAbstractMethod); - } + return result; + } - if (member.override) { - if (!state.hadSuperClass) { - this.raise(member.start, TSErrors.OverrideNotInSubClass); + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken) { + if (!skipFirstToken) { + if (bracket) { + this.expect(types$1.bracketL); + } else { + this.expectRelational("<"); } } - super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); - } - - parsePostMemberNameModifiers(methodOrProp) { - const optional = this.eat(types$1.question); - if (optional) methodOrProp.optional = true; - - if (methodOrProp.readonly && this.match(types$1.parenL)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly); - } + const result = this.tsParseDelimitedList(kind, parseElement); - if (methodOrProp.declare && this.match(types$1.parenL)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare); + if (bracket) { + this.expect(types$1.bracketR); + } else { + this.expectRelational(">"); } - } - parseExpressionStatement(node, expr) { - const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr) : undefined; - return decl || super.parseExpressionStatement(node, expr); + return result; } - shouldParseExportDeclaration() { - if (this.tsIsDeclarationStart()) return true; - return super.shouldParseExportDeclaration(); - } + tsParseImportType() { + const node = this.startNode(); + this.expect(types$1._import); + this.expect(types$1.parenL); - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { - if (!refNeedsArrowPos || !this.match(types$1.question)) { - return super.parseConditional(expr, startPos, startLoc, refNeedsArrowPos); + if (!this.match(types$1.string)) { + this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument); } - const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); + node.argument = this.parseExprAtom(); + this.expect(types$1.parenR); - if (!result.node) { - refNeedsArrowPos.start = result.error.pos || this.state.start; - return expr; + if (this.eat(types$1.dot)) { + node.qualifier = this.tsParseEntityName(true); } - if (result.error) this.state = result.failState; - return result.node; - } + if (this.isRelational("<")) { + node.typeParameters = this.tsParseTypeArguments(); + } - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); + return this.finishNode(node, "TSImportType"); + } - if (this.eat(types$1.question)) { - node.optional = true; - this.resetEndLocation(node); - } + tsParseEntityName(allowReservedWords) { + let entity = this.parseIdentifier(); - if (this.match(types$1.colon)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TSTypeCastExpression"); + while (this.eat(types$1.dot)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(allowReservedWords); + entity = this.finishNode(node, "TSQualifiedName"); } - return node; + return entity; } - parseExportDeclaration(node) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const isDeclare = this.eatContextual("declare"); + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(false); - if (isDeclare && (this.isContextual("declare") || !this.shouldParseExportDeclaration())) { - throw this.raise(this.state.start, TSErrors.ExpectedAmbientAfterExportDeclare); + if (!this.hasPrecedingLineBreak() && this.isRelational("<")) { + node.typeParameters = this.tsParseTypeArguments(); } - let declaration; + return this.finishNode(node, "TSTypeReference"); + } - if (this.match(types$1.name)) { - declaration = this.tsTryParseExportDeclaration(); - } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } - if (!declaration) { - declaration = super.parseExportDeclaration(node); - } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } - if (declaration && (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare)) { - node.exportKind = "type"; - } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(types$1._typeof); - if (declaration && isDeclare) { - this.resetStartLocation(declaration, startPos, startLoc); - declaration.declare = true; + if (this.match(types$1._import)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(true); } - return declaration; + return this.finishNode(node, "TSTypeQuery"); } - parseClassId(node, isStatement, optionalId) { - if ((!isStatement || optionalId) && this.isContextual("implements")) { - return; - } - - super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; + tsParseTypeParameter() { + const node = this.startNode(); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(types$1._extends); + node.default = this.tsEatThenParseType(types$1.eq); + return this.finishNode(node, "TSTypeParameter"); } - parseClassPropertyAnnotation(node) { - if (!node.optional && this.eat(types$1.bang)) { - node.definite = true; + tsTryParseTypeParameters() { + if (this.isRelational("<")) { + return this.tsParseTypeParameters(); } - - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; } - parseClassProperty(node) { - this.parseClassPropertyAnnotation(node); + tsParseTypeParameters() { + const node = this.startNode(); - if (this.state.isAmbientContext && this.match(types$1.eq)) { - this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer); + if (this.isRelational("<") || this.match(types$1.jsxTagStart)) { + this.next(); + } else { + this.unexpected(); } - return super.parseClassProperty(node); - } + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true); - parseClassPrivateProperty(node) { - if (node.abstract) { - this.raise(node.start, TSErrors.PrivateElementHasAbstract); + if (node.params.length === 0) { + this.raise(node.start, TSErrors.EmptyTypeParameters); } - if (node.accessibility) { - this.raise(node.start, TSErrors.PrivateElementHasAccessibility, node.accessibility); + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + + tsTryNextParseConstantContext() { + if (this.lookahead().type === types$1._const) { + this.next(); + return this.tsParseTypeReference(); } - this.parseClassPropertyAnnotation(node); - return super.parseClassPrivateProperty(node); + return null; } - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - const typeParameters = this.tsTryParseTypeParameters(); + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === types$1.arrow; + signature.typeParameters = this.tsTryParseTypeParameters(); + this.expect(types$1.parenL); + signature.parameters = this.tsParseBindingListForSignature(); - if (typeParameters && isConstructor) { - this.raise(typeParameters.start, TSErrors.ConstructorHasTypeParameters); + if (returnTokenRequired) { + signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); } + } - if (method.declare && (method.kind === "get" || method.kind === "set")) { - this.raise(method.start, TSErrors.DeclareAccessor, method.kind); - } + tsParseBindingListForSignature() { + return this.parseBindingList(types$1.parenR, 41).map(pattern => { + if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") { + this.raise(pattern.start, TSErrors.UnsupportedSignatureParameterKind, pattern.type); + } - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + return pattern; + }); } - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + tsParseTypeMemberSemicolon() { + if (!this.eat(types$1.comma) && !this.isLineTerminator()) { + this.expect(types$1.semi); + } } - parseClassSuper(node) { - super.parseClassSuper(node); + tsParseSignatureMember(kind, node) { + this.tsFillSignature(types$1.colon, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.tsParseTypeArguments(); - } + tsIsUnambiguouslyIndexSignature() { + this.next(); + return this.eat(types$1.name) && this.match(types$1.colon); + } - if (this.eatContextual("implements")) { - node.implements = this.tsParseHeritageClause("implements"); + tsTryParseIndexSignature(node) { + if (!(this.match(types$1.bracketL) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return undefined; } - } - parseObjPropValue(prop, ...args) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) prop.typeParameters = typeParameters; - super.parseObjPropValue(prop, ...args); + this.expect(types$1.bracketL); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(types$1.bracketR); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); } - parseFunctionParams(node, allowModifiers) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; - super.parseFunctionParams(node, allowModifiers); - } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(types$1.question)) node.optional = true; + const nodeAny = node; - parseVarId(decl, kind) { - super.parseVarId(decl, kind); + if (this.match(types$1.parenL) || this.isRelational("<")) { + if (readonly) { + this.raise(node.start, TSErrors.ReadonlyForMethodSignature); + } - if (decl.id.type === "Identifier" && this.eat(types$1.bang)) { - decl.definite = true; - } + const method = nodeAny; - const type = this.tsTryParseTypeAnnotation(); + if (method.kind && this.isRelational("<")) { + this.raise(this.state.pos, TSErrors.AccesorCannotHaveTypeParameters); + } - if (type) { - decl.id.typeAnnotation = type; - this.resetEndLocation(decl.id); - } - } + this.tsFillSignature(types$1.colon, method); + this.tsParseTypeMemberSemicolon(); - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(types$1.colon)) { - node.returnType = this.tsParseTypeAnnotation(); - } + if (method.kind === "get") { + if (method.parameters.length > 0) { + this.raise(this.state.pos, ErrorMessages.BadGetterArity); - return super.parseAsyncArrowFromCallExpression(node, call); - } + if (this.isThisParam(method.parameters[0])) { + this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); + } + } + } else if (method.kind === "set") { + if (method.parameters.length !== 1) { + this.raise(this.state.pos, ErrorMessages.BadSetterArity); + } else { + const firstParameter = method.parameters[0]; - parseMaybeAssign(...args) { - var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2, _jsx4, _typeCast3; + if (this.isThisParam(firstParameter)) { + this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); + } - let state; - let jsx; - let typeCast; + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveOptionalParameter); + } - if (this.hasPlugin("jsx") && (this.match(types$1.jsxTagStart) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; + if (firstParameter.type === "RestElement") { + this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveRestParameter); + } + } - if (context[context.length - 1] === types.j_oTag) { - context.length -= 2; - } else if (context[context.length - 1] === types.j_expr) { - context.length -= 1; + if (method.typeAnnotation) { + this.raise(method.typeAnnotation.start, TSErrors.SetAccesorCannotHaveReturnType); + } + } else { + method.kind = "method"; } - } - if (!((_jsx = jsx) != null && _jsx.error) && !this.isRelational("<")) { - return super.parseMaybeAssign(...args); + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = nodeAny; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); } + } - let typeParameters; - state = state || this.state.clone(); - const arrow = this.tryParse(abort => { - var _expr$extra, _typeParameters; + tsParseTypeMember() { + const node = this.startNode(); - typeParameters = this.tsParseTypeParameters(); - const expr = super.parseMaybeAssign(...args); + if (this.match(types$1.parenL) || this.isRelational("<")) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } - if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { - abort(); - } + if (this.match(types$1._new)) { + const id = this.startNode(); + this.next(); - if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { - this.resetStartLocationFromNode(expr, typeParameters); + if (this.match(types$1.parenL) || this.isRelational("<")) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); } + } - expr.typeParameters = typeParameters; - return expr; - }, state); - if (!arrow.error && !arrow.aborted) return arrow.node; + this.tsParseModifiers(node, ["readonly"], ["declare", "abstract", "private", "protected", "public", "static", "override"], TSErrors.InvalidModifierOnTypeMember); + const idx = this.tsTryParseIndexSignature(node); - if (!jsx) { - assert(!this.hasPlugin("jsx")); - typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!typeCast.error) return typeCast.node; + if (idx) { + return idx; } - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } + this.parsePropertyName(node, false); - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + this.parsePropertyName(node, false); } - if ((_typeCast = typeCast) != null && _typeCast.node) { - this.state = typeCast.failState; - return typeCast.node; - } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - if ((_typeCast2 = typeCast) != null && _typeCast2.thrown) throw typeCast.error; - throw ((_jsx4 = jsx) == null ? void 0 : _jsx4.error) || arrow.error || ((_typeCast3 = typeCast) == null ? void 0 : _typeCast3.error); + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); } - parseMaybeUnary(refExpressionErrors) { - if (!this.hasPlugin("jsx") && this.isRelational("<")) { - return this.tsParseTypeAssertion(); - } else { - return super.parseMaybeUnary(refExpressionErrors); - } + tsParseObjectTypeMembers() { + this.expect(types$1.braceL); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(types$1.braceR); + return members; } - parseArrow(node) { - if (this.match(types$1.colon)) { - const result = this.tryParse(abort => { - const returnType = this.tsParseTypeOrTypePredicateAnnotation(types$1.colon); - if (this.canInsertSemicolon() || !this.match(types$1.arrow)) abort(); - return returnType; - }); - if (result.aborted) return; + tsIsStartOfMappedType() { + this.next(); - if (!result.thrown) { - if (result.error) this.state = result.failState; - node.returnType = result.node; - } + if (this.eat(types$1.plusMin)) { + return this.isContextual("readonly"); } - return super.parseArrow(node); - } - - parseAssignableListItemTypes(param) { - if (this.eat(types$1.question)) { - if (param.type !== "Identifier" && !this.state.isAmbientContext && !this.state.inType) { - this.raise(param.start, TSErrors.PatternIsOptional); - } + if (this.isContextual("readonly")) { + this.next(); + } - param.optional = true; + if (!this.match(types$1.bracketL)) { + return false; } - const type = this.tsTryParseTypeAnnotation(); - if (type) param.typeAnnotation = type; - this.resetEndLocation(param); - return param; - } + this.next(); - toAssignable(node, isLHS = false) { - switch (node.type) { - case "TSTypeCastExpression": - return super.toAssignable(this.typeCastToParameter(node), isLHS); + if (!this.tsIsIdentifier()) { + return false; + } - case "TSParameterProperty": - return super.toAssignable(node, isLHS); + this.next(); + return this.match(types$1._in); + } - case "ParenthesizedExpression": - return this.toAssignableParenthesizedExpression(node, isLHS); + tsParseMappedTypeParameter() { + const node = this.startNode(); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsExpectThenParseType(types$1._in); + return this.finishNode(node, "TSTypeParameter"); + } - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - node.expression = this.toAssignable(node.expression, isLHS); - return node; + tsParseMappedType() { + const node = this.startNode(); + this.expect(types$1.braceL); - default: - return super.toAssignable(node, isLHS); + if (this.match(types$1.plusMin)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual("readonly"); + } else if (this.eatContextual("readonly")) { + node.readonly = true; } - } - toAssignableParenthesizedExpression(node, isLHS) { - switch (node.expression.type) { - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - case "ParenthesizedExpression": - node.expression = this.toAssignable(node.expression, isLHS); - return node; + this.expect(types$1.bracketL); + node.typeParameter = this.tsParseMappedTypeParameter(); + node.nameType = this.eatContextual("as") ? this.tsParseType() : null; + this.expect(types$1.bracketR); - default: - return super.toAssignable(node, isLHS); + if (this.match(types$1.plusMin)) { + node.optional = this.state.value; + this.next(); + this.expect(types$1.question); + } else if (this.eat(types$1.question)) { + node.optional = true; } + + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(types$1.braceR); + return this.finishNode(node, "TSMappedType"); } - checkLVal(expr, contextDescription, ...args) { - var _expr$extra2; + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + let labeledElements = null; + node.elementTypes.forEach(elementNode => { + var _labeledElements; - switch (expr.type) { - case "TSTypeCastExpression": - return; + let { + type + } = elementNode; - case "TSParameterProperty": - this.checkLVal(expr.parameter, "parameter property", ...args); - return; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired); + } - case "TSAsExpression": - case "TSTypeAssertion": - if (!args[0] && contextDescription !== "parenthesized expression" && !((_expr$extra2 = expr.extra) != null && _expr$extra2.parenthesized)) { - this.raise(expr.start, ErrorMessages.InvalidLhs, contextDescription); - break; - } + seenOptionalElement = seenOptionalElement || type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"; - this.checkLVal(expr.expression, "parenthesized expression", ...args); - return; + if (type === "TSRestType") { + elementNode = elementNode.typeAnnotation; + type = elementNode.type; + } - case "TSNonNullExpression": - this.checkLVal(expr.expression, contextDescription, ...args); - return; + const isLabeled = type === "TSNamedTupleMember"; + labeledElements = (_labeledElements = labeledElements) != null ? _labeledElements : isLabeled; - default: - super.checkLVal(expr, contextDescription, ...args); - return; - } + if (labeledElements !== isLabeled) { + this.raise(elementNode.start, TSErrors.MixedLabeledAndUnlabeledElements); + } + }); + return this.finishNode(node, "TSTupleType"); } - parseBindingAtom() { - switch (this.state.type) { - case types$1._this: - return this.parseIdentifier(true); - - default: - return super.parseBindingAtom(); - } - } + tsParseTupleElementType() { + const { + start: startPos, + startLoc + } = this.state; + const rest = this.eat(types$1.ellipsis); + let type = this.tsParseType(); + const optional = this.eat(types$1.question); + const labeled = this.eat(types$1.colon); - parseMaybeDecoratorArguments(expr) { - if (this.isRelational("<")) { - const typeArguments = this.tsParseTypeArguments(); + if (labeled) { + const labeledNode = this.startNodeAtNode(type); + labeledNode.optional = optional; - if (this.match(types$1.parenL)) { - const call = super.parseMaybeDecoratorArguments(expr); - call.typeParameters = typeArguments; - return call; + if (type.type === "TSTypeReference" && !type.typeParameters && type.typeName.type === "Identifier") { + labeledNode.label = type.typeName; + } else { + this.raise(type.start, TSErrors.InvalidTupleMemberLabel); + labeledNode.label = type; } - this.unexpected(this.state.start, types$1.parenL); + labeledNode.elementType = this.tsParseType(); + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAtNode(type); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); } - return super.parseMaybeDecoratorArguments(expr); + if (rest) { + const restNode = this.startNodeAt(startPos, startLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + + return type; } - checkCommaAfterRest(close) { - if (this.state.isAmbientContext && this.match(types$1.comma) && this.lookaheadCharCode() === close) { + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(types$1.parenL); + node.typeAnnotation = this.tsParseType(); + this.expect(types$1.parenR); + return this.finishNode(node, "TSParenthesizedType"); + } + + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); this.next(); - } else { - super.checkCommaAfterRest(close); } - } - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); + this.tsFillSignature(types$1.arrow, node); + return this.finishNode(node, type); } - isClassProperty() { - return this.match(types$1.bang) || this.match(types$1.colon) || super.isClassProperty(); - } + tsParseLiteralTypeNode() { + const node = this.startNode(); - parseMaybeDefault(...args) { - const node = super.parseMaybeDefault(...args); + node.literal = (() => { + switch (this.state.type) { + case types$1.num: + case types$1.bigint: + case types$1.string: + case types$1._true: + case types$1._false: + return this.parseExprAtom(); - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, TSErrors.TypeAnnotationAfterAssign); - } + default: + throw this.unexpected(); + } + })(); - return node; + return this.finishNode(node, "TSLiteralType"); } - getTokenFromCode(code) { - if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(types$1.relational, 1); - } else { - return super.getTokenFromCode(code); - } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = this.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); } - reScan_lt_gt() { - if (this.match(types$1.relational)) { - const code = this.input.charCodeAt(this.state.start); + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } - if (code === 60 || code === 62) { - this.state.pos -= 1; - this.readToken_lt_gt(code); - } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + + if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; } } - toAssignableList(exprList) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - if (!expr) continue; + tsParseNonArrayType() { + switch (this.state.type) { + case types$1.name: + case types$1._void: + case types$1._null: + { + const type = this.match(types$1._void) ? "TSVoidKeyword" : this.match(types$1._null) ? "TSNullKeyword" : keywordTypeFromName(this.state.value); - switch (expr.type) { - case "TSTypeCastExpression": - exprList[i] = this.typeCastToParameter(expr); - break; + if (type !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, type); + } - case "TSAsExpression": - case "TSTypeAssertion": - if (!this.state.maybeInArrowParameters) { - exprList[i] = this.typeCastToParameter(expr); - } else { - this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter); + return this.tsParseTypeReference(); + } + + case types$1.string: + case types$1.num: + case types$1.bigint: + case types$1._true: + case types$1._false: + return this.tsParseLiteralTypeNode(); + + case types$1.plusMin: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + + if (nextToken.type !== types$1.num && nextToken.type !== types$1.bigint) { + throw this.unexpected(); } - break; - } - } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } - return super.toAssignableList(...arguments); - } + break; - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } + case types$1._this: + return this.tsParseThisTypeOrThisTypePredicate(); - shouldParseArrow() { - return this.match(types$1.colon) || super.shouldParseArrow(); - } + case types$1._typeof: + return this.tsParseTypeQuery(); - shouldParseAsyncArrow() { - return this.match(types$1.colon) || super.shouldParseAsyncArrow(); - } + case types$1._import: + return this.tsParseImportType(); - canHaveLeadingDecorator() { - return super.canHaveLeadingDecorator() || this.isAbstractClass(); - } + case types$1.braceL: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + + case types$1.bracketL: + return this.tsParseTupleType(); + + case types$1.parenL: + return this.tsParseParenthesizedType(); - jsxParseOpeningElementAfterName(node) { - if (this.isRelational("<")) { - const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArguments()); - if (typeArguments) node.typeParameters = typeArguments; + case types$1.backQuote: + return this.tsParseTemplateLiteralType(); } - return super.jsxParseOpeningElementAfterName(node); - } - - getGetterSetterExpectedParamCount(method) { - const baseCount = super.getGetterSetterExpectedParamCount(method); - const params = this.getObjectOrClassMethodParams(method); - const firstParam = params[0]; - const hasContextParam = firstParam && this.isThisParam(firstParam); - return hasContextParam ? baseCount + 1 : baseCount; + throw this.unexpected(); } - parseCatchClauseParam() { - const param = super.parseCatchClauseParam(); - const type = this.tsTryParseTypeAnnotation(); + tsParseArrayTypeOrHigher() { + let type = this.tsParseNonArrayType(); - if (type) { - param.typeAnnotation = type; - this.resetEndLocation(param); + while (!this.hasPrecedingLineBreak() && this.eat(types$1.bracketL)) { + if (this.match(types$1.bracketR)) { + const node = this.startNodeAtNode(type); + node.elementType = type; + this.expect(types$1.bracketR); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAtNode(type); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(types$1.bracketR); + type = this.finishNode(node, "TSIndexedAccessType"); + } } - return param; + return type; } - tsInAmbientContext(cb) { - const oldIsAmbientContext = this.state.isAmbientContext; - this.state.isAmbientContext = true; + tsParseTypeOperator(operator) { + const node = this.startNode(); + this.expectContextual(operator); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); - try { - return cb(); - } finally { - this.state.isAmbientContext = oldIsAmbientContext; + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); } + + return this.finishNode(node, "TSTypeOperator"); } - parseClass(node, ...args) { - const oldInAbstractClass = this.state.inAbstractClass; - this.state.inAbstractClass = !!node.abstract; + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; - try { - return super.parseClass(node, ...args); - } finally { - this.state.inAbstractClass = oldInAbstractClass; + default: + this.raise(node.start, TSErrors.UnexpectedReadonly); } } - tsParseAbstractDeclaration(node) { - if (this.match(types$1._class)) { - node.abstract = true; - return this.parseClass(node, true, false); - } else if (this.isContextual("interface")) { - if (!this.hasFollowingLineBreak()) { - node.abstract = true; - this.raise(node.start, TSErrors.NonClassMethodPropertyHasAbstractModifer); - this.next(); - return this.tsParseInterfaceDeclaration(node); - } - } else { - this.unexpected(null, types$1._class); - } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual("infer"); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); } - parseMethod(...args) { - const method = super.parseMethod(...args); + tsParseTypeOperatorOrHigher() { + const operator = ["keyof", "unique", "readonly"].find(kw => this.isContextual(kw)); + return operator ? this.tsParseTypeOperator(operator) : this.isContextual("infer") ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher(); + } - if (method.abstract) { - const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; - if (hasBody) { - const { - key - } = method; - this.raise(method.start, TSErrors.AbstractMethodHasImplementation, key.type === "Identifier" ? key.name : `[${this.input.slice(key.start, key.end)}]`); - } + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; } - return method; + node.types = types; + return this.finishNode(node, kind); } - shouldParseAsAmbientContext() { - return !!this.getPluginOption("typescript", "dts"); + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), types$1.bitwiseAND); } - parse() { - if (this.shouldParseAsAmbientContext()) { - this.state.isAmbientContext = true; - } - - return super.parse(); + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), types$1.bitwiseOR); } - getExpression() { - if (this.shouldParseAsAmbientContext()) { - this.state.isAmbientContext = true; + tsIsStartOfFunctionType() { + if (this.isRelational("<")) { + return true; } - return super.getExpression(); + return this.match(types$1.parenL) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); } -}); - -types$1.placeholder = new TokenType("%%", { - startsExpr: true -}); -const PlaceHolderErrors = makeErrorTemplates({ - ClassNameIsRequired: "A class name is required." -}, ErrorCodes.SyntaxError); -var placeholders = (superClass => class extends superClass { - parsePlaceholder(expectedNode) { - if (this.match(types$1.placeholder)) { - const node = this.startNode(); + tsSkipParameterStart() { + if (this.match(types$1.name) || this.match(types$1._this)) { this.next(); - this.assertNoSpace("Unexpected space in placeholder."); - node.name = super.parseIdentifier(true); - this.assertNoSpace("Unexpected space in placeholder."); - this.expect(types$1.placeholder); - return this.finishPlaceholder(node, expectedNode); + return true; } - } - finishPlaceholder(node, expectedNode) { - const isFinished = !!(node.expectedNode && node.type === "Placeholder"); - node.expectedNode = expectedNode; - return isFinished ? node : this.finishNode(node, "Placeholder"); - } + if (this.match(types$1.braceL)) { + let braceStackCounter = 1; + this.next(); - getTokenFromCode(code) { - if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { - return this.finishOp(types$1.placeholder, 2); + while (braceStackCounter > 0) { + if (this.match(types$1.braceL)) { + ++braceStackCounter; + } else if (this.match(types$1.braceR)) { + --braceStackCounter; + } + + this.next(); + } + + return true; } - return super.getTokenFromCode(...arguments); - } + if (this.match(types$1.bracketL)) { + let braceStackCounter = 1; + this.next(); - parseExprAtom() { - return this.parsePlaceholder("Expression") || super.parseExprAtom(...arguments); - } + while (braceStackCounter > 0) { + if (this.match(types$1.bracketL)) { + ++braceStackCounter; + } else if (this.match(types$1.bracketR)) { + --braceStackCounter; + } - parseIdentifier() { - return this.parsePlaceholder("Identifier") || super.parseIdentifier(...arguments); - } + this.next(); + } - checkReservedWord(word) { - if (word !== undefined) super.checkReservedWord(...arguments); - } + return true; + } - parseBindingAtom() { - return this.parsePlaceholder("Pattern") || super.parseBindingAtom(...arguments); + return false; } - checkLVal(expr) { - if (expr.type !== "Placeholder") super.checkLVal(...arguments); - } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); - toAssignable(node) { - if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { - node.expectedNode = "Pattern"; - return node; + if (this.match(types$1.parenR) || this.match(types$1.ellipsis)) { + return true; } - return super.toAssignable(...arguments); - } + if (this.tsSkipParameterStart()) { + if (this.match(types$1.colon) || this.match(types$1.comma) || this.match(types$1.question) || this.match(types$1.eq)) { + return true; + } - isLet(context) { - if (super.isLet(context)) { - return true; + if (this.match(types$1.parenR)) { + this.next(); + + if (this.match(types$1.arrow)) { + return true; + } + } } - if (!this.isContextual("let")) { - return false; - } + return false; + } + + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + + if (asserts && this.match(types$1._this)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } - if (context) return false; - const nextToken = this.lookahead(); + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); - if (nextToken.type === types$1.placeholder) { - return true; - } + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } - return false; - } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } - verifyBreakContinue(node) { - if (node.label && node.label.type === "Placeholder") return; - super.verifyBreakContinue(...arguments); + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); } - parseExpressionStatement(node, expr) { - if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) { - return super.parseExpressionStatement(...arguments); - } - - if (this.match(types$1.colon)) { - const stmt = node; - stmt.label = this.finishPlaceholder(expr, "Identifier"); - this.next(); - stmt.body = this.parseStatement("label"); - return this.finishNode(stmt, "LabeledStatement"); - } - - this.semicolon(); - node.name = expr.name; - return this.finishPlaceholder(node, "Statement"); + tsTryParseTypeOrTypePredicateAnnotation() { + return this.match(types$1.colon) ? this.tsParseTypeOrTypePredicateAnnotation(types$1.colon) : undefined; } - parseBlock() { - return this.parsePlaceholder("BlockStatement") || super.parseBlock(...arguments); + tsTryParseTypeAnnotation() { + return this.match(types$1.colon) ? this.tsParseTypeAnnotation() : undefined; } - parseFunctionId() { - return this.parsePlaceholder("Identifier") || super.parseFunctionId(...arguments); + tsTryParseType() { + return this.tsEatThenParseType(types$1.colon); } - parseClass(node, isStatement, optionalId) { - const type = isStatement ? "ClassDeclaration" : "ClassExpression"; - this.next(); - this.takeDecorators(node); - const oldStrict = this.state.strict; - const placeholder = this.parsePlaceholder("Identifier"); + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); - if (placeholder) { - if (this.match(types$1._extends) || this.match(types$1.placeholder) || this.match(types$1.braceL)) { - node.id = placeholder; - } else if (optionalId || !isStatement) { - node.id = null; - node.body = this.finishPlaceholder(placeholder, "ClassBody"); - return this.finishNode(node, type); - } else { - this.unexpected(null, PlaceHolderErrors.ClassNameIsRequired); - } - } else { - this.parseClassId(node, isStatement, optionalId); + if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { + this.next(); + return id; } - - this.parseClassSuper(node); - node.body = this.parsePlaceholder("ClassBody") || this.parseClassBody(!!node.superClass, oldStrict); - return this.finishNode(node, type); } - parseExport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseExport(...arguments); - - if (!this.isContextual("from") && !this.match(types$1.comma)) { - node.specifiers = []; - node.source = null; - node.declaration = this.finishPlaceholder(placeholder, "Declaration"); - return this.finishNode(node, "ExportNamedDeclaration"); + tsParseTypePredicateAsserts() { + if (!this.match(types$1.name) || this.state.value !== "asserts" || this.hasPrecedingLineBreak()) { + return false; } - this.expectPlugin("exportDefaultFrom"); - const specifier = this.startNode(); - specifier.exported = placeholder; - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return super.parseExport(node); - } + const containsEsc = this.state.containsEsc; + this.next(); - isExportDefaultSpecifier() { - if (this.match(types$1._default)) { - const next = this.nextTokenStart(); + if (!this.match(types$1.name) && !this.match(types$1._this)) { + return false; + } - if (this.isUnparsedContextual(next, "from")) { - if (this.input.startsWith(types$1.placeholder.label, this.nextTokenStartSince(next + 4))) { - return true; - } - } + if (containsEsc) { + this.raise(this.state.lastTokStart, ErrorMessages.InvalidEscapedReservedWord, "asserts"); } - return super.isExportDefaultSpecifier(); + return true; } - maybeParseExportDefaultSpecifier(node) { - if (node.specifiers && node.specifiers.length > 0) { - return true; - } - - return super.maybeParseExportDefaultSpecifier(...arguments); + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(types$1.colon); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); } - checkExport(node) { - const { - specifiers - } = node; + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); - if (specifiers != null && specifiers.length) { - node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + if (this.hasPrecedingLineBreak() || !this.eat(types$1._extends)) { + return type; } - super.checkExport(node); - node.specifiers = specifiers; + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsParseNonConditionalType(); + this.expect(types$1.question); + node.trueType = this.tsParseType(); + this.expect(types$1.colon); + node.falseType = this.tsParseType(); + return this.finishNode(node, "TSConditionalType"); } - parseImport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseImport(...arguments); - node.specifiers = []; + isAbstractConstructorSignature() { + return this.isContextual("abstract") && this.lookahead().type === types$1._new; + } - if (!this.isContextual("from") && !this.match(types$1.comma)) { - node.source = this.finishPlaceholder(placeholder, "StringLiteral"); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); } - const specifier = this.startNodeAtNode(placeholder); - specifier.local = placeholder; - this.finishNode(specifier, "ImportDefaultSpecifier"); - node.specifiers.push(specifier); - - if (this.eat(types$1.comma)) { - const hasStarImport = this.maybeParseStarImportSpecifier(node); - if (!hasStarImport) this.parseNamedImportSpecifiers(node); + if (this.match(types$1._new)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); } - this.expectContextual("from"); - node.source = this.parseImportSource(); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - parseImportSource() { - return this.parsePlaceholder("StringLiteral") || super.parseImportSource(...arguments); + return this.tsParseUnionTypeOrHigher(); } -}); + tsParseTypeAssertion() { + const node = this.startNode(); -var v8intrinsic = (superClass => class extends superClass { - parseV8Intrinsic() { - if (this.match(types$1.modulo)) { - const v8IntrinsicStart = this.state.start; - const node = this.startNode(); - this.eat(types$1.modulo); + const _const = this.tsTryNextParseConstantContext(); - if (this.match(types$1.name)) { - const name = this.parseIdentifierName(this.state.start); - const identifier = this.createIdentifier(node, name); - identifier.type = "V8IntrinsicIdentifier"; + node.typeAnnotation = _const || this.tsNextThenParseType(); + this.expectRelational(">"); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } - if (this.match(types$1.parenL)) { - return identifier; - } - } + tsParseHeritageClause(descriptor) { + const originalStart = this.state.start; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this)); - this.unexpected(v8IntrinsicStart); + if (!delimitedList.length) { + this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor); } - } - parseExprAtom() { - return this.parseV8Intrinsic() || super.parseExprAtom(...arguments); + return delimitedList; } -}); + tsParseExpressionWithTypeArguments() { + const node = this.startNode(); + node.expression = this.tsParseEntityName(false); -function hasPlugin(plugins, name) { - return plugins.some(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); -} -function getPluginOption(plugins, name, option) { - const plugin = plugins.find(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; + if (this.isRelational("<")) { + node.typeParameters = this.tsParseTypeArguments(); } - }); - - if (plugin && Array.isArray(plugin)) { - return plugin[1][option]; - } - return null; -} -const PIPELINE_PROPOSALS = ["minimal", "smart", "fsharp"]; -const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; -function validatePlugins(plugins) { - if (hasPlugin(plugins, "decorators")) { - if (hasPlugin(plugins, "decorators-legacy")) { - throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + return this.finishNode(node, "TSExpressionWithTypeArguments"); + } + + tsParseInterfaceDeclaration(node) { + if (this.match(types$1.name)) { + node.id = this.parseIdentifier(); + this.checkLVal(node.id, "typescript interface declaration", BIND_TS_INTERFACE); + } else { + node.id = null; + this.raise(this.state.start, TSErrors.MissingInterfaceName); } - const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); + node.typeParameters = this.tsTryParseTypeParameters(); - if (decoratorsBeforeExport == null) { - throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you are migrating from" + " Babylon/Babel 6 or want to use the old decorators proposal, you" + " should use the 'decorators-legacy' plugin instead of 'decorators'."); - } else if (typeof decoratorsBeforeExport !== "boolean") { - throw new Error("'decoratorsBeforeExport' must be a boolean."); + if (this.eat(types$1._extends)) { + node.extends = this.tsParseHeritageClause("extends"); } - } - if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { - throw new Error("Cannot combine flow and typescript plugins."); + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); } - if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { - throw new Error("Cannot combine placeholders and v8intrinsic plugins."); - } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkLVal(node.id, "typescript type alias", BIND_TS_TYPE); + node.typeParameters = this.tsTryParseTypeParameters(); + node.typeAnnotation = this.tsInType(() => { + this.expect(types$1.eq); - if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) { - throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", ")); + if (this.isContextual("intrinsic") && this.lookahead().type !== types$1.dot) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); } - if (hasPlugin(plugins, "moduleAttributes")) { - { - if (hasPlugin(plugins, "importAssertions")) { - throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); - } + tsInNoContext(cb) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; - const moduleAttributesVerionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } - if (moduleAttributesVerionPluginOption !== "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'."); - } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + + try { + return cb(); + } finally { + this.state.inType = oldInType; } } - if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { - throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + tsEatThenParseType(token) { + return !this.match(token) ? undefined : this.tsNextThenParseType(); } - if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) { - const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); - error.missingPlugins = "doExpressions"; - throw error; + tsExpectThenParseType(token) { + return this.tsDoThenParseType(() => this.expect(token)); } -} -const mixinPlugins = { - estree, - jsx, - flow, - typescript, - v8intrinsic, - placeholders -}; -const mixinPluginNames = Object.keys(mixinPlugins); -const defaultOptions = { - sourceType: "script", - sourceFilename: undefined, - startLine: 1, - allowAwaitOutsideFunction: false, - allowReturnOutsideFunction: false, - allowImportExportEverywhere: false, - allowSuperOutsideMethod: false, - allowUndeclaredExports: false, - plugins: [], - strictMode: null, - ranges: false, - tokens: false, - createParenthesizedExpressions: false, - errorRecovery: false -}; -function getOptions(opts) { - const options = {}; + tsNextThenParseType() { + return this.tsDoThenParseType(() => this.next()); + } - for (const key of Object.keys(defaultOptions)) { - options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key]; + tsDoThenParseType(cb) { + return this.tsInType(() => { + cb(); + return this.tsParseType(); + }); } - return options; -} + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(types$1.string) ? this.parseExprAtom() : this.parseIdentifier(true); -var _isDigit = function isDigit(code) { - return code >= 48 && code <= 57; -}; -const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100]); -const forbiddenNumericSeparatorSiblings = { - decBinOct: [46, 66, 69, 79, 95, 98, 101, 111], - hex: [46, 88, 95, 120] -}; -const allowedNumericSeparatorSiblings = {}; -allowedNumericSeparatorSiblings.bin = [48, 49]; -allowedNumericSeparatorSiblings.oct = [...allowedNumericSeparatorSiblings.bin, 50, 51, 52, 53, 54, 55]; -allowedNumericSeparatorSiblings.dec = [...allowedNumericSeparatorSiblings.oct, 56, 57]; -allowedNumericSeparatorSiblings.hex = [...allowedNumericSeparatorSiblings.dec, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102]; -class Token { - constructor(state) { - this.type = state.type; - this.value = state.value; - this.start = state.start; - this.end = state.end; - this.loc = new SourceLocation(state.startLoc, state.endLoc); + if (this.eat(types$1.eq)) { + node.initializer = this.parseMaybeAssignAllowIn(); + } + + return this.finishNode(node, "TSEnumMember"); } -} -class Tokenizer extends ParserError { - constructor(options, input) { - super(); - this.isLookahead = void 0; - this.tokens = []; - this.state = new State(); - this.state.init(options); - this.input = input; - this.length = input.length; - this.isLookahead = false; + tsParseEnumDeclaration(node, isConst) { + if (isConst) node.const = true; + node.id = this.parseIdentifier(); + this.checkLVal(node.id, "typescript enum declaration", isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM); + this.expect(types$1.braceL); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(types$1.braceR); + return this.finishNode(node, "TSEnumDeclaration"); } - pushToken(token) { - this.tokens.length = this.state.tokensLength; - this.tokens.push(token); - ++this.state.tokensLength; + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(SCOPE_OTHER); + this.expect(types$1.braceL); + this.parseBlockOrModuleBlockBody(node.body = [], undefined, true, types$1.braceR); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); } - next() { - this.checkKeywordEscapes(); + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); - if (this.options.tokens) { - this.pushToken(new Token(this.state)); + if (!nested) { + this.checkLVal(node.id, "module or namespace declaration", BIND_TS_NAMESPACE); } - this.state.lastTokEnd = this.state.end; - this.state.lastTokStart = this.state.start; - this.state.lastTokEndLoc = this.state.endLoc; - this.state.lastTokStartLoc = this.state.startLoc; - this.nextToken(); + if (this.eat(types$1.dot)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + + return this.finishNode(node, "TSModuleDeclaration"); } - eat(type) { - if (this.match(type)) { - this.next(); - return true; + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual("global")) { + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(types$1.string)) { + node.id = this.parseExprAtom(); } else { - return false; + this.unexpected(); } - } - match(type) { - return this.state.type === type; - } + if (this.match(types$1.braceL)) { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } - createLookaheadState(state) { - return { - pos: state.pos, - value: null, - type: state.type, - start: state.start, - end: state.end, - lastTokEnd: state.end, - context: [this.curContext()], - inType: state.inType - }; + return this.finishNode(node, "TSModuleDeclaration"); } - lookahead() { - const old = this.state; - this.state = this.createLookaheadState(old); - this.isLookahead = true; - this.nextToken(); - this.isLookahead = false; - const curr = this.state; - this.state = old; - return curr; - } + tsParseImportEqualsDeclaration(node, isExport) { + node.isExport = isExport || false; + node.id = this.parseIdentifier(); + this.checkLVal(node.id, "import equals declaration", BIND_LEXICAL); + this.expect(types$1.eq); + const moduleReference = this.tsParseModuleReference(); + + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(moduleReference.start, TSErrors.ImportAliasHasImportType); + } - nextTokenStart() { - return this.nextTokenStartSince(this.state.pos); + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); } - nextTokenStartSince(pos) { - skipWhiteSpace.lastIndex = pos; - const skip = skipWhiteSpace.exec(this.input); - return pos + skip[0].length; + tsIsExternalModuleReference() { + return this.isContextual("require") && this.lookaheadCharCode() === 40; } - lookaheadCharCode() { - return this.input.charCodeAt(this.nextTokenStart()); + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); } - codePointAtPos(pos) { - let cp = this.input.charCodeAt(pos); - - if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { - const trail = this.input.charCodeAt(pos); + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual("require"); + this.expect(types$1.parenL); - if ((trail & 0xfc00) === 0xdc00) { - cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); - } + if (!this.match(types$1.string)) { + throw this.unexpected(); } - return cp; + node.expression = this.parseExprAtom(); + this.expect(types$1.parenR); + return this.finishNode(node, "TSExternalModuleReference"); } - setStrict(strict) { - this.state.strict = strict; - - if (strict) { - this.state.strictErrors.forEach((message, pos) => this.raise(pos, message)); - this.state.strictErrors.clear(); - } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; } - curContext() { - return this.state.context[this.state.context.length - 1]; + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return undefined; + if (result.error) this.state = result.failState; + return result.node; } - nextToken() { - const curContext = this.curContext(); - if (!curContext.preserveSpace) this.skipSpace(); - this.state.start = this.state.pos; - if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); - - if (this.state.pos >= this.length) { - this.finishToken(types$1.eof); - return; - } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); - if (curContext === types.template) { - this.readTmplToken(); + if (result !== undefined && result !== false) { + return result; } else { - this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + this.state = state; + return undefined; } } - pushComment(block, text, start, end, startLoc, endLoc) { - const comment = { - type: block ? "CommentBlock" : "CommentLine", - value: text, - start: start, - end: end, - loc: new SourceLocation(startLoc, endLoc) - }; - if (this.options.tokens) this.pushToken(comment); - this.state.comments.push(comment); - this.addComment(comment); - } + tsTryParseDeclare(nany) { + if (this.isLineTerminator()) { + return; + } - skipBlockComment() { - let startLoc; - if (!this.isLookahead) startLoc = this.state.curPosition(); - const start = this.state.pos; - const end = this.input.indexOf("*/", this.state.pos + 2); - if (end === -1) throw this.raise(start, ErrorMessages.UnterminatedComment); - this.state.pos = end + 2; - lineBreakG.lastIndex = start; - let match; + let starttype = this.state.type; + let kind; - while ((match = lineBreakG.exec(this.input)) && match.index < this.state.pos) { - ++this.state.curLine; - this.state.lineStart = match.index + match[0].length; + if (this.isContextual("let")) { + starttype = types$1._var; + kind = "let"; } - if (this.isLookahead) return; - this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition()); - } - - skipLineComment(startSkip) { - const start = this.state.pos; - let startLoc; - if (!this.isLookahead) startLoc = this.state.curPosition(); - let ch = this.input.charCodeAt(this.state.pos += startSkip); + return this.tsInAmbientContext(() => { + switch (starttype) { + case types$1._function: + nany.declare = true; + return this.parseFunctionStatement(nany, false, true); - if (this.state.pos < this.length) { - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); - } - } + case types$1._class: + nany.declare = true; + return this.parseClass(nany, true, false); - if (this.isLookahead) return; - this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition()); - } + case types$1._const: + if (this.match(types$1._const) && this.isLookaheadContextual("enum")) { + this.expect(types$1._const); + this.expectContextual("enum"); + return this.tsParseEnumDeclaration(nany, true); + } - skipSpace() { - loop: while (this.state.pos < this.length) { - const ch = this.input.charCodeAt(this.state.pos); + case types$1._var: + kind = kind || this.state.value; + return this.parseVarStatement(nany, kind); - switch (ch) { - case 32: - case 160: - case 9: - ++this.state.pos; - break; + case types$1.name: + { + const value = this.state.value; - case 13: - if (this.input.charCodeAt(this.state.pos + 1) === 10) { - ++this.state.pos; + if (value === "global") { + return this.tsParseAmbientExternalModuleDeclaration(nany); + } else { + return this.tsParseDeclaration(nany, value, true); + } } + } + }); + } - case 10: - case 8232: - case 8233: - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - break; - - case 47: - switch (this.input.charCodeAt(this.state.pos + 1)) { - case 42: - this.skipBlockComment(); - break; + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.value, true); + } - case 47: - this.skipLineComment(2); - break; + tsParseExpressionStatement(node, expr) { + switch (expr.name) { + case "declare": + { + const declaration = this.tsTryParseDeclare(node); - default: - break loop; + if (declaration) { + declaration.declare = true; + return declaration; } break; + } - default: - if (isWhitespace(ch)) { - ++this.state.pos; - } else { - break loop; - } + case "global": + if (this.match(types$1.braceL)) { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + const mod = node; + mod.global = true; + mod.id = expr; + mod.body = this.tsParseModuleBlock(); + this.scope.exit(); + this.prodParam.exit(); + return this.finishNode(mod, "TSModuleDeclaration"); + } - } + break; + + default: + return this.tsParseDeclaration(node, expr.name, false); } } - finishToken(type, val) { - this.state.end = this.state.pos; - const prevType = this.state.type; - this.state.type = type; - this.state.value = val; + tsParseDeclaration(node, value, next) { + switch (value) { + case "abstract": + if (this.tsCheckLineTerminator(next) && (this.match(types$1._class) || this.match(types$1.name))) { + return this.tsParseAbstractDeclaration(node); + } - if (!this.isLookahead) { - this.state.endLoc = this.state.curPosition(); - this.updateContext(prevType); - } - } + break; - readToken_numberSign() { - if (this.state.pos === 0 && this.readToken_interpreter()) { - return; - } + case "enum": + if (next || this.match(types$1.name)) { + if (next) this.next(); + return this.tsParseEnumDeclaration(node, false); + } - const nextPos = this.state.pos + 1; - const next = this.codePointAtPos(nextPos); + break; - if (next >= 48 && next <= 57) { - throw this.raise(this.state.pos, ErrorMessages.UnexpectedDigitAfterHash); - } + case "interface": + if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { + return this.tsParseInterfaceDeclaration(node); + } - if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { - this.expectPlugin("recordAndTuple"); + break; - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") { - throw this.raise(this.state.pos, next === 123 ? ErrorMessages.RecordExpressionHashIncorrectStartSyntaxType : ErrorMessages.TupleExpressionHashIncorrectStartSyntaxType); - } + case "module": + if (this.tsCheckLineTerminator(next)) { + if (this.match(types$1.string)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (this.match(types$1.name)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + + break; + + case "namespace": + if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } - this.state.pos += 2; + break; - if (next === 123) { - this.finishToken(types$1.braceHashL); - } else { - this.finishToken(types$1.bracketHashL); - } - } else if (isIdentifierStart(next)) { - ++this.state.pos; - this.finishToken(types$1.privateName, this.readWord1(next)); - } else if (next === 92) { - ++this.state.pos; - this.finishToken(types$1.privateName, this.readWord1()); - } else { - this.finishOp(types$1.hash, 1); + case "type": + if (this.tsCheckLineTerminator(next) && this.match(types$1.name)) { + return this.tsParseTypeAliasDeclaration(node); + } + + break; } } - readToken_dot() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next >= 48 && next <= 57) { - this.readNumber(true); - return; + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; } - if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { - this.state.pos += 3; - this.finishToken(types$1.ellipsis); - } else { - ++this.state.pos; - this.finishToken(types$1.dot); - } + return !this.isLineTerminator(); } - readToken_slash() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(types$1.slashAssign, 2); - } else { - this.finishOp(types$1.slash, 1); + tsTryParseGenericAsyncArrowFunction(startPos, startLoc) { + if (!this.isRelational("<")) { + return undefined; } - } - readToken_interpreter() { - if (this.state.pos !== 0 || this.length < 2) return false; - let ch = this.input.charCodeAt(this.state.pos + 1); - if (ch !== 33) return false; - const start = this.state.pos; - this.state.pos += 1; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startPos, startLoc); + node.typeParameters = this.tsParseTypeParameters(); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(types$1.arrow); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); + if (!res) { + return undefined; } - const value = this.input.slice(start + 2, this.state.pos); - this.finishToken(types$1.interpreterDirective, value); - return true; + return this.parseArrowExpression(res, null, true); } - readToken_mult_modulo(code) { - let type = code === 42 ? types$1.star : types$1.modulo; - let width = 1; - let next = this.input.charCodeAt(this.state.pos + 1); + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInNoContext(() => { + this.expectRelational("<"); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); - if (code === 42 && next === 42) { - width++; - next = this.input.charCodeAt(this.state.pos + 2); - type = types$1.exponent; + if (node.params.length === 0) { + this.raise(node.start, TSErrors.EmptyTypeArguments); } - if (next === 61 && !this.state.inType) { - width++; - type = types$1.assign; + this.expectRelational(">"); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + + tsIsDeclarationStart() { + if (this.match(types$1.name)) { + switch (this.state.value) { + case "abstract": + case "declare": + case "enum": + case "interface": + case "module": + case "namespace": + case "type": + return true; + } } - this.finishOp(type, width); + return false; } - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } - if (next === code) { - if (this.input.charCodeAt(this.state.pos + 2) === 61) { - this.finishOp(types$1.assign, 3); - } else { - this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2); - } + parseAssignableListItem(allowModifiers, decorators) { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + let accessibility; + let readonly = false; + let override = false; - return; - } + if (allowModifiers !== undefined) { + const modified = {}; + this.tsParseModifiers(modified, ["public", "private", "protected", "override", "readonly"]); + accessibility = modified.accessibility; + override = modified.override; + readonly = modified.readonly; - if (code === 124) { - if (next === 62) { - this.finishOp(types$1.pipeline, 2); - return; + if (allowModifiers === false && (accessibility || readonly || override)) { + this.raise(startPos, TSErrors.UnexpectedParameterModifier); } + } - if (this.hasPlugin("recordAndTuple") && next === 125) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectEndSyntaxType); - } + const left = this.parseMaybeDefault(); + this.parseAssignableListItemTypes(left); + const elt = this.parseMaybeDefault(left.start, left.loc.start, left); - this.state.pos += 2; - this.finishToken(types$1.braceBarR); - return; + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startPos, startLoc); + + if (decorators.length) { + pp.decorators = decorators; } - if (this.hasPlugin("recordAndTuple") && next === 93) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectEndSyntaxType); - } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; - this.state.pos += 2; - this.finishToken(types$1.bracketBarR); - return; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind); } + + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); } - if (next === 61) { - this.finishOp(types$1.assign, 2); - return; + if (decorators.length) { + left.decorators = decorators; } - this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1); + return elt; } - readToken_caret() { - const next = this.input.charCodeAt(this.state.pos + 1); + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(types$1.colon)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(types$1.colon); + } - if (next === 61) { - this.finishOp(types$1.assign, 2); - } else { - this.finishOp(types$1.bitwiseXOR, 1); + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" ? "TSDeclareMethod" : undefined; + + if (bodilessType && !this.match(types$1.braceL) && this.isLineTerminator()) { + this.finishNode(node, bodilessType); + return; } - } - readToken_plus_min(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(node.start, TSErrors.DeclareFunctionHasImplementation); - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 62 && (this.state.lastTokEnd === 0 || this.hasPrecedingLineBreak())) { - this.skipLineComment(3); - this.skipSpace(); - this.nextToken(); + if (node.declare) { + super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); return; } - - this.finishOp(types$1.incDec, 2); - return; } - if (next === 61) { - this.finishOp(types$1.assign, 2); + super.parseFunctionBodyAndFinish(node, type, isMethod); + } + + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkLVal(node.id, "function name", BIND_TS_AMBIENT); } else { - this.finishOp(types$1.plusMin, 1); + super.registerFunctionStatementId(...arguments); } } - readToken_lt_gt(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - let size = 1; + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(node.typeAnnotation.start, TSErrors.UnexpectedTypeAnnotation); + } + }); + } - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2; + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } - if (this.input.charCodeAt(this.state.pos + size) === 61) { - this.finishOp(types$1.assign, size + 1); - return; + parseArrayLike(...args) { + const node = super.parseArrayLike(...args); + + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + + return node; + } + + parseSubscript(base, startPos, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(types$1.bang)) { + this.state.exprAllowed = false; + this.next(); + const nonNullExpression = this.startNodeAt(startPos, startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + + let isOptionalCall = false; + + if (this.match(types$1.questionDot) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; } - this.finishOp(types$1.bitShift, size); - return; + state.optionalChainMember = isOptionalCall = true; + this.next(); } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) { - this.skipLineComment(4); - this.skipSpace(); - this.nextToken(); - return; - } + if (this.isRelational("<")) { + let missingParenErrorPos; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startPos, startLoc); - if (next === 61) { - size = 2; - } + if (asyncArrowFn) { + return asyncArrowFn; + } + } - this.finishOp(types$1.relational, size); - } + const node = this.startNodeAt(startPos, startLoc); + node.callee = base; + const typeArguments = this.tsParseTypeArguments(); - readToken_eq_excl(code) { - const next = this.input.charCodeAt(this.state.pos + 1); + if (typeArguments) { + if (isOptionalCall && !this.match(types$1.parenL)) { + missingParenErrorPos = this.state.pos; + this.unexpected(); + } - if (next === 61) { - this.finishOp(types$1.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); - return; - } + if (!noCalls && this.eat(types$1.parenL)) { + node.arguments = this.parseCallExpressionArguments(types$1.parenR, false); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; - if (code === 61 && next === 62) { - this.state.pos += 2; - this.finishToken(types$1.arrow); - return; - } + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } - this.finishOp(code === 61 ? types$1.eq : types$1.bang, 1); - } + return this.finishCallExpression(node, state.optionalChainMember); + } else if (this.match(types$1.backQuote)) { + const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + } - readToken_question() { - const next = this.input.charCodeAt(this.state.pos + 1); - const next2 = this.input.charCodeAt(this.state.pos + 2); + this.unexpected(); + }); - if (next === 63) { - if (next2 === 61) { - this.finishOp(types$1.assign, 3); - } else { - this.finishOp(types$1.nullishCoalescing, 2); + if (missingParenErrorPos) { + this.unexpected(missingParenErrorPos, types$1.parenL); } - } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { - this.state.pos += 2; - this.finishToken(types$1.questionDot); - } else { - ++this.state.pos; - this.finishToken(types$1.question); + + if (result) return result; } - } - getTokenFromCode(code) { - switch (code) { - case 46: - this.readToken_dot(); - return; + return super.parseSubscript(base, startPos, startLoc, noCalls, state); + } - case 40: - ++this.state.pos; - this.finishToken(types$1.parenL); - return; + parseNewArguments(node) { + if (this.isRelational("<")) { + const typeParameters = this.tsTryParseAndCatch(() => { + const args = this.tsParseTypeArguments(); + if (!this.match(types$1.parenL)) this.unexpected(); + return args; + }); - case 41: - ++this.state.pos; - this.finishToken(types$1.parenR); - return; + if (typeParameters) { + node.typeParameters = typeParameters; + } + } - case 59: - ++this.state.pos; - this.finishToken(types$1.semi); - return; + super.parseNewArguments(node); + } - case 44: - ++this.state.pos; - this.finishToken(types$1.comma); - return; + parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { + if (nonNull(types$1._in.binop) > minPrec && !this.hasPrecedingLineBreak() && this.isContextual("as")) { + const node = this.startNodeAt(leftStartPos, leftStartLoc); + node.expression = left; - case 91: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectStartSyntaxType); - } + const _const = this.tsTryNextParseConstantContext(); - this.state.pos += 2; - this.finishToken(types$1.bracketBarL); - } else { - ++this.state.pos; - this.finishToken(types$1.bracketL); - } + if (_const) { + node.typeAnnotation = _const; + } else { + node.typeAnnotation = this.tsNextThenParseType(); + } - return; + this.finishNode(node, "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); + } - case 93: - ++this.state.pos; - this.finishToken(types$1.bracketR); - return; + return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec); + } - case 123: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectStartSyntaxType); - } + checkReservedWord(word, startLoc, checkKeywords, isBinding) {} - this.state.pos += 2; - this.finishToken(types$1.braceBarL); - } else { - ++this.state.pos; - this.finishToken(types$1.braceL); - } + checkDuplicateExports() {} - return; + parseImport(node) { + node.importKind = "value"; - case 125: - ++this.state.pos; - this.finishToken(types$1.braceR); - return; + if (this.match(types$1.name) || this.match(types$1.star) || this.match(types$1.braceL)) { + let ahead = this.lookahead(); - case 58: - if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { - this.finishOp(types$1.doubleColon, 2); - } else { - ++this.state.pos; - this.finishToken(types$1.colon); - } + if (this.isContextual("type") && ahead.type !== types$1.comma && !(ahead.type === types$1.name && ahead.value === "from") && ahead.type !== types$1.eq) { + node.importKind = "type"; + this.next(); + ahead = this.lookahead(); + } - return; + if (this.match(types$1.name) && ahead.type === types$1.eq) { + return this.tsParseImportEqualsDeclaration(node); + } + } - case 63: - this.readToken_question(); - return; + const importNode = super.parseImport(node); - case 96: - ++this.state.pos; - this.finishToken(types$1.backQuote); - return; + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(importNode.start, TSErrors.TypeImportCannotSpecifyDefaultAndNamed); + } - case 48: - { - const next = this.input.charCodeAt(this.state.pos + 1); + return importNode; + } - if (next === 120 || next === 88) { - this.readRadixNumber(16); - return; - } + parseExport(node) { + if (this.match(types$1._import)) { + this.next(); - if (next === 111 || next === 79) { - this.readRadixNumber(8); - return; - } + if (this.isContextual("type") && this.lookaheadCharCode() !== 61) { + node.importKind = "type"; + this.next(); + } else { + node.importKind = "value"; + } - if (next === 98 || next === 66) { - this.readRadixNumber(2); - return; - } - } + return this.tsParseImportEqualsDeclaration(node, true); + } else if (this.eat(types$1.eq)) { + const assign = node; + assign.expression = this.parseExpression(); + this.semicolon(); + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual("as")) { + const decl = node; + this.expectContextual("namespace"); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + if (this.isContextual("type") && this.lookahead().type === types$1.braceL) { + this.next(); + node.exportKind = "type"; + } else { + node.exportKind = "value"; + } - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - this.readNumber(false); - return; + return super.parseExport(node); + } + } - case 34: - case 39: - this.readString(code); - return; + isAbstractClass() { + return this.isContextual("abstract") && this.lookahead().type === types$1._class; + } - case 47: - this.readToken_slash(); - return; + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + this.parseClass(cls, true, true); + return cls; + } - case 37: - case 42: - this.readToken_mult_modulo(code); - return; + if (this.state.value === "interface") { + const interfaceNode = this.startNode(); + this.next(); + const result = this.tsParseInterfaceDeclaration(interfaceNode); + if (result) return result; + } - case 124: - case 38: - this.readToken_pipe_amp(code); - return; + return super.parseExportDefaultExpression(); + } - case 94: - this.readToken_caret(); - return; + parseStatementContent(context, topLevel) { + if (this.state.type === types$1._const) { + const ahead = this.lookahead(); - case 43: - case 45: - this.readToken_plus_min(code); - return; + if (ahead.type === types$1.name && ahead.value === "enum") { + const node = this.startNode(); + this.expect(types$1._const); + this.expectContextual("enum"); + return this.tsParseEnumDeclaration(node, true); + } + } - case 60: - case 62: - this.readToken_lt_gt(code); - return; + return super.parseStatementContent(context, topLevel); + } - case 61: - case 33: - this.readToken_eq_excl(code); - return; + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } - case 126: - this.finishOp(types$1.tilde, 1); - return; + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } - case 64: - ++this.state.pos; - this.finishToken(types$1.at); - return; + return !!member[modifier]; + }); + } - case 35: - this.readToken_numberSign(); - return; + parseClassMember(classBody, member, state) { + const invalidModifersForStaticBlocks = ["declare", "private", "public", "protected", "override", "abstract", "readonly"]; + this.tsParseModifiers(member, invalidModifersForStaticBlocks.concat(["static"])); - case 92: - this.readWord(); - return; + const callParseClassMemberWithIsStatic = () => { + const isStatic = !!member.static; - default: - if (isIdentifierStart(code)) { - this.readWord(code); - return; + if (isStatic && this.eat(types$1.braceL)) { + if (this.tsHasSomeModifiers(member, invalidModifersForStaticBlocks)) { + this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); } - } + this.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + }; - throw this.raise(this.state.pos, ErrorMessages.InvalidOrUnexpectedToken, String.fromCodePoint(code)); + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } } - finishOp(type, size) { - const str = this.input.slice(this.state.pos, this.state.pos + size); - this.state.pos += size; - this.finishToken(type, str); - } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); - readRegexp() { - const start = this.state.start + 1; - let escaped, inClass; - let { - pos - } = this.state; + if (idx) { + classBody.body.push(idx); - for (;; ++pos) { - if (pos >= this.length) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); + if (member.abstract) { + this.raise(member.start, TSErrors.IndexSignatureHasAbstract); } - const ch = this.input.charCodeAt(pos); - - if (isNewLine(ch)) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); + if (member.accessibility) { + this.raise(member.start, TSErrors.IndexSignatureHasAccessibility, member.accessibility); } - if (escaped) { - escaped = false; - } else { - if (ch === 91) { - inClass = true; - } else if (ch === 93 && inClass) { - inClass = false; - } else if (ch === 47 && !inClass) { - break; - } + if (member.declare) { + this.raise(member.start, TSErrors.IndexSignatureHasDeclare); + } - escaped = ch === 92; + if (member.override) { + this.raise(member.start, TSErrors.IndexSignatureHasOverride); } - } - const content = this.input.slice(start, pos); - ++pos; - let mods = ""; + return; + } - while (pos < this.length) { - const cp = this.codePointAtPos(pos); - const char = String.fromCharCode(cp); + if (!this.state.inAbstractClass && member.abstract) { + this.raise(member.start, TSErrors.NonAbstractClassHasAbstractMethod); + } - if (VALID_REGEX_FLAGS.has(cp)) { - if (mods.includes(char)) { - this.raise(pos + 1, ErrorMessages.DuplicateRegExpFlags); - } - } else if (isIdentifierChar(cp) || cp === 92) { - this.raise(pos + 1, ErrorMessages.MalformedRegExpFlags); - } else { - break; + if (member.override) { + if (!state.hadSuperClass) { + this.raise(member.start, TSErrors.OverrideNotInSubClass); } - - ++pos; - mods += char; } - this.state.pos = pos; - this.finishToken(types$1.regexp, { - pattern: content, - flags: mods - }); + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); } - readInt(radix, len, forceLen, allowNumSeparator = true) { - const start = this.state.pos; - const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; - const allowedSiblings = radix === 16 ? allowedNumericSeparatorSiblings.hex : radix === 10 ? allowedNumericSeparatorSiblings.dec : radix === 8 ? allowedNumericSeparatorSiblings.oct : allowedNumericSeparatorSiblings.bin; - let invalid = false; - let total = 0; + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(types$1.question); + if (optional) methodOrProp.optional = true; - for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { - const code = this.input.charCodeAt(this.state.pos); - let val; + if (methodOrProp.readonly && this.match(types$1.parenL)) { + this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly); + } - if (code === 95) { - const prev = this.input.charCodeAt(this.state.pos - 1); - const next = this.input.charCodeAt(this.state.pos + 1); + if (methodOrProp.declare && this.match(types$1.parenL)) { + this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare); + } + } - if (allowedSiblings.indexOf(next) === -1) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } else if (forbiddenSiblings.indexOf(prev) > -1 || forbiddenSiblings.indexOf(next) > -1 || Number.isNaN(next)) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } + parseExpressionStatement(node, expr) { + const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr) : undefined; + return decl || super.parseExpressionStatement(node, expr); + } - if (!allowNumSeparator) { - this.raise(this.state.pos, ErrorMessages.NumericSeparatorInEscapeSequence); - } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } - ++this.state.pos; - continue; - } + parseConditional(expr, startPos, startLoc, refExpressionErrors) { + if (!this.state.maybeInArrowParameters || !this.match(types$1.question)) { + return super.parseConditional(expr, startPos, startLoc, refExpressionErrors); + } - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (_isDigit(code)) { - val = code - 48; - } else { - val = Infinity; - } + const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); - if (val >= radix) { - if (this.options.errorRecovery && val <= 9) { - val = 0; - this.raise(this.state.start + i + 2, ErrorMessages.InvalidDigit, radix); - } else if (forceLen) { - val = 0; - invalid = true; - } else { - break; - } + if (!result.node) { + if (result.error) { + super.setOptionalParametersError(refExpressionErrors, result.error); } - ++this.state.pos; - total = total * radix + val; + return expr; } - if (this.state.pos === start || len != null && this.state.pos - start !== len || invalid) { - return null; + if (result.error) this.state = result.failState; + return result.node; + } + + parseParenItem(node, startPos, startLoc) { + node = super.parseParenItem(node, startPos, startLoc); + + if (this.eat(types$1.question)) { + node.optional = true; + this.resetEndLocation(node); + } + + if (this.match(types$1.colon)) { + const typeCastNode = this.startNodeAt(startPos, startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); } - return total; + return node; } - readRadixNumber(radix) { - const start = this.state.pos; - let isBigInt = false; - this.state.pos += 2; - const val = this.readInt(radix); + parseExportDeclaration(node) { + const startPos = this.state.start; + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual("declare"); - if (val == null) { - this.raise(this.state.start + 2, ErrorMessages.InvalidDigit, radix); + if (isDeclare && (this.isContextual("declare") || !this.shouldParseExportDeclaration())) { + throw this.raise(this.state.start, TSErrors.ExpectedAmbientAfterExportDeclare); } - const next = this.input.charCodeAt(this.state.pos); + let declaration; - if (next === 110) { - ++this.state.pos; - isBigInt = true; - } else if (next === 109) { - throw this.raise(start, ErrorMessages.InvalidDecimal); + if (this.match(types$1.name)) { + declaration = this.tsTryParseExportDeclaration(); } - if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); + if (!declaration) { + declaration = super.parseExportDeclaration(node); } - if (isBigInt) { - const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); - this.finishToken(types$1.bigint, str); - return; + if (declaration && (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare)) { + node.exportKind = "type"; } - this.finishToken(types$1.num, val); - } + if (declaration && isDeclare) { + this.resetStartLocation(declaration, startPos, startLoc); + declaration.declare = true; + } - readNumber(startsWithDot) { - const start = this.state.pos; - let isFloat = false; - let isBigInt = false; - let isDecimal = false; - let hasExponent = false; - let isOctal = false; + return declaration; + } - if (!startsWithDot && this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidNumber); + parseClassId(node, isStatement, optionalId) { + if ((!isStatement || optionalId) && this.isContextual("implements")) { + return; } - const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) node.typeParameters = typeParameters; + } - if (hasLeadingZero) { - const integer = this.input.slice(start, this.state.pos); - this.recordStrictModeErrors(start, ErrorMessages.StrictOctalLiteral); + parseClassPropertyAnnotation(node) { + if (!node.optional && this.eat(types$1.bang)) { + node.definite = true; + } - if (!this.state.strict) { - const underscorePos = integer.indexOf("_"); + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } - if (underscorePos > 0) { - this.raise(underscorePos + start, ErrorMessages.ZeroDigitNumericSeparator); - } - } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); - isOctal = hasLeadingZero && !/[89]/.test(integer); + if (this.state.isAmbientContext && this.match(types$1.eq)) { + this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer); } - let next = this.input.charCodeAt(this.state.pos); - - if (next === 46 && !isOctal) { - ++this.state.pos; - this.readInt(10); - isFloat = true; - next = this.input.charCodeAt(this.state.pos); + if (node.abstract && this.match(types$1.eq)) { + const { + key + } = node; + this.raise(this.state.start, TSErrors.AbstractPropertyHasInitializer, key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`); } - if ((next === 69 || next === 101) && !isOctal) { - next = this.input.charCodeAt(++this.state.pos); - - if (next === 43 || next === 45) { - ++this.state.pos; - } - - if (this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidOrMissingExponent); - } + return super.parseClassProperty(node); + } - isFloat = true; - hasExponent = true; - next = this.input.charCodeAt(this.state.pos); + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(node.start, TSErrors.PrivateElementHasAbstract); } - if (next === 110) { - if (isFloat || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidBigIntLiteral); - } - - ++this.state.pos; - isBigInt = true; + if (node.accessibility) { + this.raise(node.start, TSErrors.PrivateElementHasAccessibility, node.accessibility); } - if (next === 109) { - this.expectPlugin("decimal", this.state.pos); + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } - if (hasExponent || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidDecimal); - } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(); - ++this.state.pos; - isDecimal = true; + if (typeParameters && isConstructor) { + this.raise(typeParameters.start, TSErrors.ConstructorHasTypeParameters); } - if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); + if (method.declare && (method.kind === "get" || method.kind === "set")) { + this.raise(method.start, TSErrors.DeclareAccessor, method.kind); } - const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } - if (isBigInt) { - this.finishToken(types$1.bigint, str); - return; + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + + parseClassSuper(node) { + super.parseClassSuper(node); + + if (node.superClass && this.isRelational("<")) { + node.superTypeParameters = this.tsParseTypeArguments(); } - if (isDecimal) { - this.finishToken(types$1.decimal, str); - return; + if (this.eatContextual("implements")) { + node.implements = this.tsParseHeritageClause("implements"); } + } - const val = isOctal ? parseInt(str, 8) : parseFloat(str); - this.finishToken(types$1.num, val); + parseObjPropValue(prop, ...args) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) prop.typeParameters = typeParameters; + super.parseObjPropValue(prop, ...args); } - readCodePoint(throwOnInvalid) { - const ch = this.input.charCodeAt(this.state.pos); - let code; + parseFunctionParams(node, allowModifiers) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, allowModifiers); + } - if (ch === 123) { - const codePos = ++this.state.pos; - code = this.readHexChar(this.input.indexOf("}", this.state.pos) - this.state.pos, true, throwOnInvalid); - ++this.state.pos; + parseVarId(decl, kind) { + super.parseVarId(decl, kind); - if (code !== null && code > 0x10ffff) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidCodePoint); - } else { - return null; - } - } - } else { - code = this.readHexChar(4, false, throwOnInvalid); + if (decl.id.type === "Identifier" && this.eat(types$1.bang)) { + decl.definite = true; } - return code; - } - - readString(quote) { - let out = "", - chunkStart = ++this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } + const type = this.tsTryParseTypeAnnotation(); - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.readEscapedChar(false); - chunkStart = this.state.pos; - } else if (ch === 8232 || ch === 8233) { - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - } else if (isNewLine(ch)) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } else { - ++this.state.pos; - } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(types$1.colon)) { + node.returnType = this.tsParseTypeAnnotation(); } - out += this.input.slice(chunkStart, this.state.pos++); - this.finishToken(types$1.string, out); + return super.parseAsyncArrowFromCallExpression(node, call); } - readTmplToken() { - let out = "", - chunkStart = this.state.pos, - containsInvalid = false; + parseMaybeAssign(...args) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2, _jsx4, _typeCast3; - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedTemplate); + let state; + let jsx; + let typeCast; + + if (this.hasPlugin("jsx") && (this.match(types$1.jsxTagStart) || this.isRelational("<"))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(...args), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + + if (context[context.length - 1] === types.j_oTag) { + context.length -= 2; + } else if (context[context.length - 1] === types.j_expr) { + context.length -= 1; } + } - const ch = this.input.charCodeAt(this.state.pos); + if (!((_jsx = jsx) != null && _jsx.error) && !this.isRelational("<")) { + return super.parseMaybeAssign(...args); + } - if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) { - if (this.state.pos === this.state.start && this.match(types$1.template)) { - if (ch === 36) { - this.state.pos += 2; - this.finishToken(types$1.dollarBraceL); - return; - } else { - ++this.state.pos; - this.finishToken(types$1.backQuote); - return; - } - } + let typeParameters; + state = state || this.state.clone(); + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; - out += this.input.slice(chunkStart, this.state.pos); - this.finishToken(types$1.template, containsInvalid ? null : out); - return; - } + typeParameters = this.tsParseTypeParameters(); + const expr = super.parseMaybeAssign(...args); - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - const escaped = this.readEscapedChar(true); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } - if (escaped === null) { - containsInvalid = true; - } else { - out += escaped; - } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - ++this.state.pos; + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) return arrow.node; - switch (ch) { - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state); + if (!typeCast.error) return typeCast.node; + } - case 10: - out += "\n"; - break; + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } - default: - out += String.fromCharCode(ch); - break; - } + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } - ++this.state.curLine; - this.state.lineStart = this.state.pos; - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; } + + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + if ((_typeCast2 = typeCast) != null && _typeCast2.thrown) throw typeCast.error; + throw ((_jsx4 = jsx) == null ? void 0 : _jsx4.error) || arrow.error || ((_typeCast3 = typeCast) == null ? void 0 : _typeCast3.error); } - recordStrictModeErrors(pos, message) { - if (this.state.strict && !this.state.strictErrors.has(pos)) { - this.raise(pos, message); + parseMaybeUnary(refExpressionErrors) { + if (!this.hasPlugin("jsx") && this.isRelational("<")) { + return this.tsParseTypeAssertion(); } else { - this.state.strictErrors.set(pos, message); + return super.parseMaybeUnary(refExpressionErrors); } } - readEscapedChar(inTemplate) { - const throwOnInvalid = !inTemplate; - const ch = this.input.charCodeAt(++this.state.pos); - ++this.state.pos; + parseArrow(node) { + if (this.match(types$1.colon)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(types$1.colon); + if (this.canInsertSemicolon() || !this.match(types$1.arrow)) abort(); + return returnType; + }); + if (result.aborted) return; - switch (ch) { - case 110: - return "\n"; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } - case 114: - return "\r"; + return super.parseArrow(node); + } - case 120: - { - const code = this.readHexChar(2, false, throwOnInvalid); - return code === null ? null : String.fromCharCode(code); - } + parseAssignableListItemTypes(param) { + if (this.eat(types$1.question)) { + if (param.type !== "Identifier" && !this.state.isAmbientContext && !this.state.inType) { + this.raise(param.start, TSErrors.PatternIsOptional); + } - case 117: - { - const code = this.readCodePoint(throwOnInvalid); - return code === null ? null : String.fromCodePoint(code); - } + param.optional = true; + } - case 116: - return "\t"; + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } - case 98: - return "\b"; + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); - case 118: - return "\u000b"; + case "TSParameterProperty": + return true; - case 102: - return "\f"; + default: + return super.isAssignable(node, isBinding); + } + } - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "TSTypeCastExpression": + return super.toAssignable(this.typeCastToParameter(node), isLHS); - case 10: - this.state.lineStart = this.state.pos; - ++this.state.curLine; + case "TSParameterProperty": + return super.toAssignable(node, isLHS); - case 8232: - case 8233: - return ""; + case "ParenthesizedExpression": + return this.toAssignableParenthesizedExpression(node, isLHS); - case 56: - case 57: - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(this.state.pos - 1, ErrorMessages.StrictNumericEscape); - } + case "TSAsExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + node.expression = this.toAssignable(node.expression, isLHS); + return node; default: - if (ch >= 48 && ch <= 55) { - const codePos = this.state.pos - 1; - const match = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/); - let octalStr = match[0]; - let octal = parseInt(octalStr, 8); + return super.toAssignable(node, isLHS); + } + } - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + node.expression = this.toAssignable(node.expression, isLHS); + return node; - this.state.pos += octalStr.length - 1; - const next = this.input.charCodeAt(this.state.pos); + default: + return super.toAssignable(node, isLHS); + } + } - if (octalStr !== "0" || next === 56 || next === 57) { - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(codePos, ErrorMessages.StrictNumericEscape); - } - } + checkLVal(expr, contextDescription, ...args) { + var _expr$extra2; - return String.fromCharCode(octal); + switch (expr.type) { + case "TSTypeCastExpression": + return; + + case "TSParameterProperty": + this.checkLVal(expr.parameter, "parameter property", ...args); + return; + + case "TSAsExpression": + case "TSTypeAssertion": + if (!args[0] && contextDescription !== "parenthesized expression" && !((_expr$extra2 = expr.extra) != null && _expr$extra2.parenthesized)) { + this.raise(expr.start, ErrorMessages.InvalidLhs, contextDescription); + break; } - return String.fromCharCode(ch); + this.checkLVal(expr.expression, "parenthesized expression", ...args); + return; + + case "TSNonNullExpression": + this.checkLVal(expr.expression, contextDescription, ...args); + return; + + default: + super.checkLVal(expr, contextDescription, ...args); + return; + } + } + + parseBindingAtom() { + switch (this.state.type) { + case types$1._this: + return this.parseIdentifier(true); + + default: + return super.parseBindingAtom(); } } - readHexChar(len, forceLen, throwOnInvalid) { - const codePos = this.state.pos; - const n = this.readInt(16, len, forceLen, false); + parseMaybeDecoratorArguments(expr) { + if (this.isRelational("<")) { + const typeArguments = this.tsParseTypeArguments(); - if (n === null) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidEscapeSequence); - } else { - this.state.pos = codePos - 1; + if (this.match(types$1.parenL)) { + const call = super.parseMaybeDecoratorArguments(expr); + call.typeParameters = typeArguments; + return call; } + + this.unexpected(this.state.start, types$1.parenL); } - return n; + return super.parseMaybeDecoratorArguments(expr); } - readWord1(firstCode) { - this.state.containsEsc = false; - let word = ""; - const start = this.state.pos; - let chunkStart = this.state.pos; - - if (firstCode !== undefined) { - this.state.pos += firstCode <= 0xffff ? 1 : 2; + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(types$1.comma) && this.lookaheadCharCode() === close) { + this.next(); + } else { + super.checkCommaAfterRest(close); } + } - while (this.state.pos < this.length) { - const ch = this.codePointAtPos(this.state.pos); - - if (isIdentifierChar(ch)) { - this.state.pos += ch <= 0xffff ? 1 : 2; - } else if (ch === 92) { - this.state.containsEsc = true; - word += this.input.slice(chunkStart, this.state.pos); - const escStart = this.state.pos; - const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; - - if (this.input.charCodeAt(++this.state.pos) !== 117) { - this.raise(this.state.pos, ErrorMessages.MissingUnicodeEscape); - chunkStart = this.state.pos - 1; - continue; - } - - ++this.state.pos; - const esc = this.readCodePoint(true); + isClassMethod() { + return this.isRelational("<") || super.isClassMethod(); + } - if (esc !== null) { - if (!identifierCheck(esc)) { - this.raise(escStart, ErrorMessages.EscapedCharNotAnIdentifier); - } + isClassProperty() { + return this.match(types$1.bang) || this.match(types$1.colon) || super.isClassProperty(); + } - word += String.fromCodePoint(esc); - } + parseMaybeDefault(...args) { + const node = super.parseMaybeDefault(...args); - chunkStart = this.state.pos; - } else { - break; - } + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(node.typeAnnotation.start, TSErrors.TypeAnnotationAfterAssign); } - return word + this.input.slice(chunkStart, this.state.pos); + return node; } - readWord(firstCode) { - const word = this.readWord1(firstCode); - const type = keywords$1.get(word) || types$1.name; - this.finishToken(type, word); + getTokenFromCode(code) { + if (this.state.inType && (code === 62 || code === 60)) { + return this.finishOp(types$1.relational, 1); + } else { + return super.getTokenFromCode(code); + } } - checkKeywordEscapes() { - const kw = this.state.type.keyword; + reScan_lt_gt() { + if (this.match(types$1.relational)) { + const code = this.input.charCodeAt(this.state.start); - if (kw && this.state.containsEsc) { - this.raise(this.state.start, ErrorMessages.InvalidEscapedReservedWord, kw); + if (code === 60 || code === 62) { + this.state.pos -= 1; + this.readToken_lt_gt(code); + } } } - updateContext(prevType) { - var _this$state$type$upda, _this$state$type; - - (_this$state$type$upda = (_this$state$type = this.state.type).updateContext) == null ? void 0 : _this$state$type$upda.call(_this$state$type, this.state.context); - } + 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; -class ClassScope { - constructor() { - this.privateNames = new Set(); - this.loneAccessors = new Map(); - this.undefinedPrivateNames = new Map(); - } + case "TSAsExpression": + case "TSTypeAssertion": + if (!this.state.maybeInArrowParameters) { + exprList[i] = this.typeCastToParameter(expr); + } else { + this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter); + } -} -class ClassScopeHandler { - constructor(raise) { - this.stack = []; - this.undefinedPrivateNames = new Map(); - this.raise = raise; - } + break; + } + } - current() { - return this.stack[this.stack.length - 1]; + return super.toAssignableList(...arguments); } - enter() { - this.stack.push(new ClassScope()); + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); + return node.expression; } - exit() { - const oldClassScope = this.stack.pop(); - const current = this.current(); - - for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) { - if (current) { - if (!current.undefinedPrivateNames.has(name)) { - current.undefinedPrivateNames.set(name, pos); - } - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } + shouldParseArrow(params) { + if (this.match(types$1.colon)) { + return params.every(expr => this.isAssignable(expr, true)); } + + return super.shouldParseArrow(params); } - declarePrivateName(name, elementType, pos) { - const classScope = this.current(); - let redefined = classScope.privateNames.has(name); + shouldParseAsyncArrow() { + return this.match(types$1.colon) || super.shouldParseAsyncArrow(); + } - if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) { - const accessor = redefined && classScope.loneAccessors.get(name); + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } - if (accessor) { - const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC; - const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC; - const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR; - const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR; - redefined = oldKind === newKind || oldStatic !== newStatic; - if (!redefined) classScope.loneAccessors.delete(name); - } else if (!redefined) { - classScope.loneAccessors.set(name, elementType); - } + jsxParseOpeningElementAfterName(node) { + if (this.isRelational("<")) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArguments()); + if (typeArguments) node.typeParameters = typeArguments; } - if (redefined) { - this.raise(pos, ErrorMessages.PrivateNameRedeclaration, name); - } + return super.jsxParseOpeningElementAfterName(node); + } - classScope.privateNames.add(name); - classScope.undefinedPrivateNames.delete(name); + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; } - usePrivateName(name, pos) { - let classScope; + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); - for (classScope of this.stack) { - if (classScope.privateNames.has(name)) return; + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); } - if (classScope) { - classScope.undefinedPrivateNames.set(name, pos); - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } + return param; } -} - -const kExpression = 0, - kMaybeArrowParameterDeclaration = 1, - kMaybeAsyncArrowParameterDeclaration = 2, - kParameterDeclaration = 3; + tsInAmbientContext(cb) { + const oldIsAmbientContext = this.state.isAmbientContext; + this.state.isAmbientContext = true; -class ExpressionScope { - constructor(type = kExpression) { - this.type = void 0; - this.type = type; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + } } - canBeArrowParameterDeclaration() { - return this.type === kMaybeAsyncArrowParameterDeclaration || this.type === kMaybeArrowParameterDeclaration; + parseClass(node, ...args) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + + try { + return super.parseClass(node, ...args); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } } - isCertainlyParameterDeclaration() { - return this.type === kParameterDeclaration; + tsParseAbstractDeclaration(node) { + if (this.match(types$1._class)) { + node.abstract = true; + return this.parseClass(node, true, false); + } else if (this.isContextual("interface")) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(node.start, TSErrors.NonClassMethodPropertyHasAbstractModifer); + this.next(); + return this.tsParseInterfaceDeclaration(node); + } + } else { + this.unexpected(null, types$1._class); + } } -} + parseMethod(...args) { + const method = super.parseMethod(...args); -class ArrowHeadParsingScope extends ExpressionScope { - constructor(type) { - super(type); - this.errors = new Map(); - } + if (method.abstract) { + const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; - recordDeclarationError(pos, template) { - this.errors.set(pos, template); - } + if (hasBody) { + const { + key + } = method; + this.raise(method.start, TSErrors.AbstractMethodHasImplementation, key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`); + } + } - clearDeclarationError(pos) { - this.errors.delete(pos); + return method; } - iterateErrors(iterator) { - this.errors.forEach(iterator); + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; } -} - -class ExpressionScopeHandler { - constructor(raise) { - this.stack = [new ExpressionScope()]; - this.raise = raise; + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); } - enter(scope) { - this.stack.push(scope); - } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } - exit() { - this.stack.pop(); + return super.parse(); } - recordParameterInitializerError(pos, template) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (!scope.isCertainlyParameterDeclaration()) { - if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, template); - } else { - return; - } - - scope = stack[--i]; + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; } - this.raise(pos, template); + return super.getExpression(); } - recordParenthesizedIdentifierError(pos, template) { - const { - stack - } = this; - const scope = stack[stack.length - 1]; +}); - if (scope.isCertainlyParameterDeclaration()) { - this.raise(pos, template); - } else if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, template); - } else { - return; +types$1.placeholder = new TokenType("%%", { + startsExpr: true +}); +const PlaceHolderErrors = makeErrorTemplates({ + ClassNameIsRequired: "A class name is required." +}, ErrorCodes.SyntaxError); +var placeholders = (superClass => class extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(types$1.placeholder)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace("Unexpected space in placeholder."); + node.name = super.parseIdentifier(true); + this.assertNoSpace("Unexpected space in placeholder."); + this.expect(types$1.placeholder); + return this.finishPlaceholder(node, expectedNode); } } - recordAsyncArrowParametersError(pos, template) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (scope.canBeArrowParameterDeclaration()) { - if (scope.type === kMaybeAsyncArrowParameterDeclaration) { - scope.recordDeclarationError(pos, template); - } + finishPlaceholder(node, expectedNode) { + const isFinished = !!(node.expectedNode && node.type === "Placeholder"); + node.expectedNode = expectedNode; + return isFinished ? node : this.finishNode(node, "Placeholder"); + } - scope = stack[--i]; + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + return this.finishOp(types$1.placeholder, 2); } + + return super.getTokenFromCode(...arguments); } - validateAsPattern() { - const { - stack - } = this; - const currentScope = stack[stack.length - 1]; - if (!currentScope.canBeArrowParameterDeclaration()) return; - currentScope.iterateErrors((template, pos) => { - this.raise(pos, template); - let i = stack.length - 2; - let scope = stack[i]; + parseExprAtom() { + return this.parsePlaceholder("Expression") || super.parseExprAtom(...arguments); + } - while (scope.canBeArrowParameterDeclaration()) { - scope.clearDeclarationError(pos); - scope = stack[--i]; - } - }); + parseIdentifier() { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(...arguments); } -} -function newParameterDeclarationScope() { - return new ExpressionScope(kParameterDeclaration); -} -function newArrowHeadScope() { - return new ArrowHeadParsingScope(kMaybeArrowParameterDeclaration); -} -function newAsyncArrowScope() { - return new ArrowHeadParsingScope(kMaybeAsyncArrowParameterDeclaration); -} -function newExpressionScope() { - return new ExpressionScope(); -} + checkReservedWord(word) { + if (word !== undefined) super.checkReservedWord(...arguments); + } -class UtilParser extends Tokenizer { - addExtra(node, key, val) { - if (!node) return; - const extra = node.extra = node.extra || {}; - extra[key] = val; + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(...arguments); } - isRelational(op) { - return this.match(types$1.relational) && this.state.value === op; + checkLVal(expr) { + if (expr.type !== "Placeholder") super.checkLVal(...arguments); } - expectRelational(op) { - if (this.isRelational(op)) { - this.next(); - } else { - this.unexpected(null, types$1.relational); + toAssignable(node) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + return node; } - } - isContextual(name) { - return this.match(types$1.name) && this.state.value === name && !this.state.containsEsc; + return super.toAssignable(...arguments); } - isUnparsedContextual(nameStart, name) { - const nameEnd = nameStart + name.length; + isLet(context) { + if (super.isLet(context)) { + return true; + } - if (this.input.slice(nameStart, nameEnd) === name) { - const nextCh = this.input.charCodeAt(nameEnd); - return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + if (!this.isContextual("let")) { + return false; } - return false; - } + if (context) return false; + const nextToken = this.lookahead(); - isLookaheadContextual(name) { - const next = this.nextTokenStart(); - return this.isUnparsedContextual(next, name); - } + if (nextToken.type === types$1.placeholder) { + return true; + } - eatContextual(name) { - return this.isContextual(name) && this.eat(types$1.name); + return false; } - expectContextual(name, template) { - if (!this.eatContextual(name)) this.unexpected(null, template); + verifyBreakContinue(node) { + if (node.label && node.label.type === "Placeholder") return; + super.verifyBreakContinue(...arguments); } - canInsertSemicolon() { - return this.match(types$1.eof) || this.match(types$1.braceR) || this.hasPrecedingLineBreak(); - } + parseExpressionStatement(node, expr) { + if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) { + return super.parseExpressionStatement(...arguments); + } - hasPrecedingLineBreak() { - return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); - } + if (this.match(types$1.colon)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = this.parseStatement("label"); + return this.finishNode(stmt, "LabeledStatement"); + } - hasFollowingLineBreak() { - return lineBreak.test(this.input.slice(this.state.end, this.nextTokenStart())); + this.semicolon(); + node.name = expr.name; + return this.finishPlaceholder(node, "Statement"); } - isLineTerminator() { - return this.eat(types$1.semi) || this.canInsertSemicolon(); + parseBlock() { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(...arguments); } - semicolon(allowAsi = true) { - if (allowAsi ? this.isLineTerminator() : this.eat(types$1.semi)) return; - this.raise(this.state.lastTokEnd, ErrorMessages.MissingSemicolon); + parseFunctionId() { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(...arguments); } - expect(type, pos) { - this.eat(type) || this.unexpected(pos, type); - } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + this.takeDecorators(node); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); - assertNoSpace(message = "Unexpected space.") { - if (this.state.start > this.state.lastTokEnd) { - this.raise(this.state.lastTokEnd, { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedSpace", - template: message - }); + if (placeholder) { + if (this.match(types$1._extends) || this.match(types$1.placeholder) || this.match(types$1.braceL)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + this.unexpected(null, PlaceHolderErrors.ClassNameIsRequired); + } + } else { + this.parseClassId(node, isStatement, optionalId); } + + this.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); } - unexpected(pos, messageOrType = { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedToken", - template: "Unexpected token" - }) { - if (messageOrType instanceof TokenType) { - messageOrType = { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedToken", - template: `Unexpected token, expected "${messageOrType.label}"` - }; + parseExport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(...arguments); + + if (!this.isContextual("from") && !this.match(types$1.comma)) { + node.specifiers = []; + node.source = null; + node.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node, "ExportNamedDeclaration"); } - throw this.raise(pos != null ? pos : this.state.start, messageOrType); + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node); } - expectPlugin(name, pos) { - if (!this.hasPlugin(name)) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: [name] - }, `This experimental syntax requires enabling the parser plugin: '${name}'`); + isExportDefaultSpecifier() { + if (this.match(types$1._default)) { + const next = this.nextTokenStart(); + + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(types$1.placeholder.label, this.nextTokenStartSince(next + 4))) { + return true; + } + } } - return true; + return super.isExportDefaultSpecifier(); } - expectOnePlugin(names, pos) { - if (!names.some(n => this.hasPlugin(n))) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: names - }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`); + maybeParseExportDefaultSpecifier(node) { + if (node.specifiers && node.specifiers.length > 0) { + return true; } - } - - tryParse(fn, oldState = this.state.clone()) { - const abortSignal = { - node: null - }; - try { - const node = fn((node = null) => { - abortSignal.node = node; - throw abortSignal; - }); + return super.maybeParseExportDefaultSpecifier(...arguments); + } - if (this.state.errors.length > oldState.errors.length) { - const failState = this.state; - this.state = oldState; - this.state.tokensLength = failState.tokensLength; - return { - node, - error: failState.errors[oldState.errors.length], - thrown: false, - aborted: false, - failState - }; - } + checkExport(node) { + const { + specifiers + } = node; - return { - node, - error: null, - thrown: false, - aborted: false, - failState: null - }; - } catch (error) { - const failState = this.state; - this.state = oldState; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } - if (error instanceof SyntaxError) { - return { - node: null, - error, - thrown: true, - aborted: false, - failState - }; - } + super.checkExport(node); + node.specifiers = specifiers; + } - if (error === abortSignal) { - return { - node: abortSignal.node, - error: null, - thrown: false, - aborted: true, - failState - }; - } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(...arguments); + node.specifiers = []; - throw error; + if (!this.isContextual("from") && !this.match(types$1.comma)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); } - } - checkExpressionErrors(refExpressionErrors, andThrow) { - if (!refExpressionErrors) return false; - const { - shorthandAssign, - doubleProto - } = refExpressionErrors; - if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0; + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + this.finishNode(specifier, "ImportDefaultSpecifier"); + node.specifiers.push(specifier); - if (shorthandAssign >= 0) { - this.unexpected(shorthandAssign); + if (this.eat(types$1.comma)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); } - if (doubleProto >= 0) { - this.raise(doubleProto, ErrorMessages.DuplicateProto); - } + this.expectContextual("from"); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); } - isLiteralPropertyName() { - return this.match(types$1.name) || !!this.state.type.keyword || this.match(types$1.string) || this.match(types$1.num) || this.match(types$1.bigint) || this.match(types$1.decimal); + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(...arguments); } - isPrivateName(node) { - return node.type === "PrivateName"; - } +}); - getPrivateNameSV(node) { - return node.id.name; - } +var v8intrinsic = (superClass => class extends superClass { + parseV8Intrinsic() { + if (this.match(types$1.modulo)) { + const v8IntrinsicStart = this.state.start; + const node = this.startNode(); + this.eat(types$1.modulo); - hasPropertyAsPrivateName(node) { - return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); - } + if (this.match(types$1.name)) { + const name = this.parseIdentifierName(this.state.start); + const identifier = this.createIdentifier(node, name); + identifier.type = "V8IntrinsicIdentifier"; - isOptionalChain(node) { - return node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression"; - } + if (this.match(types$1.parenL)) { + return identifier; + } + } - isObjectProperty(node) { - return node.type === "ObjectProperty"; + this.unexpected(v8IntrinsicStart); + } } - isObjectMethod(node) { - return node.type === "ObjectMethod"; + parseExprAtom() { + return this.parseV8Intrinsic() || super.parseExprAtom(...arguments); } - initializeScopes(inModule = this.options.sourceType === "module") { - const oldLabels = this.state.labels; - this.state.labels = []; - const oldExportedIdentifiers = this.exportedIdentifiers; - this.exportedIdentifiers = new Set(); - const oldInModule = this.inModule; - this.inModule = inModule; - const oldScope = this.scope; - const ScopeHandler = this.getScopeHandler(); - this.scope = new ScopeHandler(this.raise.bind(this), this.inModule); - const oldProdParam = this.prodParam; - this.prodParam = new ProductionParameterHandler(); - const oldClassScope = this.classScope; - this.classScope = new ClassScopeHandler(this.raise.bind(this)); - const oldExpressionScope = this.expressionScope; - this.expressionScope = new ExpressionScopeHandler(this.raise.bind(this)); - return () => { - this.state.labels = oldLabels; - this.exportedIdentifiers = oldExportedIdentifiers; - this.inModule = oldInModule; - this.scope = oldScope; - this.prodParam = oldProdParam; - this.classScope = oldClassScope; - this.expressionScope = oldExpressionScope; - }; +}); + +function hasPlugin(plugins, name) { + return plugins.some(plugin => { + if (Array.isArray(plugin)) { + return plugin[0] === name; + } else { + return plugin === name; + } + }); +} +function getPluginOption(plugins, name, option) { + const plugin = plugins.find(plugin => { + if (Array.isArray(plugin)) { + return plugin[0] === name; + } else { + return plugin === name; + } + }); + + if (plugin && Array.isArray(plugin)) { + return plugin[1][option]; } - enterInitialScopes() { - let paramFlags = PARAM; + return null; +} +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["%", "#"]; +const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; +function validatePlugins(plugins) { + if (hasPlugin(plugins, "decorators")) { + if (hasPlugin(plugins, "decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } - if (this.hasPlugin("topLevelAwait") && this.inModule) { - paramFlags |= PARAM_AWAIT; + const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); + + if (decoratorsBeforeExport == null) { + throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you are migrating from" + " Babylon/Babel 6 or want to use the old decorators proposal, you" + " should use the 'decorators-legacy' plugin instead of 'decorators'."); + } else if (typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean."); } + } - this.scope.enter(SCOPE_PROGRAM); - this.prodParam.enter(paramFlags); + if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); } -} -class ExpressionErrors { - constructor() { - this.shorthandAssign = -1; - this.doubleProto = -1; + if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); } -} + if (hasPlugin(plugins, "pipelineOperator")) { + const proposal = getPluginOption(plugins, "pipelineOperator", "proposal"); -class Node { - constructor(parser, pos, loc) { - this.type = void 0; - this.start = void 0; - this.end = void 0; - this.loc = void 0; - this.range = void 0; - this.leadingComments = void 0; - this.trailingComments = void 0; - this.innerComments = void 0; - this.extra = void 0; - this.type = ""; - this.start = pos; - this.end = 0; - this.loc = new SourceLocation(loc); - if (parser != null && parser.options.ranges) this.range = [pos, 0]; - if (parser != null && parser.filename) this.loc.filename = parser.filename; - } + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } - __clone() { - const newNode = new Node(); - const keys = Object.keys(this); + const tupleSyntaxIsHash = hasPlugin(plugins, "recordAndTuple") && getPluginOption(plugins, "recordAndTuple", "syntaxType") === "hash"; - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; + if (proposal === "hack") { + if (hasPlugin(plugins, "placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } - if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { - newNode[key] = this[key]; + if (hasPlugin(plugins, "v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); } - } - return newNode; - } + const topicToken = getPluginOption(plugins, "pipelineOperator", "topicToken"); -} + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } -class NodeUtils extends UtilParser { - startNode() { - return new Node(this, this.state.start, this.state.startLoc); + if (topicToken === "#" && tupleSyntaxIsHash) { + throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + } + } else if (proposal === "smart" && tupleSyntaxIsHash) { + throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + } } - startNodeAt(pos, loc) { - return new Node(this, pos, loc); - } + if (hasPlugin(plugins, "moduleAttributes")) { + { + if (hasPlugin(plugins, "importAssertions")) { + throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); + } - startNodeAtNode(type) { - return this.startNodeAt(type.start, type.loc.start); - } + const moduleAttributesVerionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); - finishNode(node, type) { - return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc); + if (moduleAttributesVerionPluginOption !== "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'."); + } + } } - finishNodeAt(node, type, pos, loc) { - - node.type = type; - node.end = pos; - node.loc.end = loc; - if (this.options.ranges) node.range[1] = pos; - this.processComment(node); - return node; + if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { + throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); } - resetStartLocation(node, start, startLoc) { - node.start = start; - node.loc.start = startLoc; - if (this.options.ranges) node.range[0] = start; + if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; } +} +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); - resetEndLocation(node, end = this.state.lastTokEnd, endLoc = this.state.lastTokEndLoc) { - node.end = end; - node.loc.end = endLoc; - if (this.options.ranges) node.range[1] = end; - } +const defaultOptions = { + sourceType: "script", + sourceFilename: undefined, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + plugins: [], + strictMode: null, + ranges: false, + tokens: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true +}; +function getOptions(opts) { + const options = {}; - resetStartLocationFromNode(node, locationNode) { - this.resetStartLocation(node, locationNode.start, locationNode.loc.start); + for (const key of Object.keys(defaultOptions)) { + options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key]; } + return options; } const unwrapParenthesizedExpression = node => { @@ -10184,6 +10326,7 @@ class LValParser extends NodeUtils { case "ObjectPattern": case "ArrayPattern": case "AssignmentPattern": + case "RestElement": break; case "ObjectExpression": @@ -10291,6 +10434,47 @@ class LValParser extends NodeUtils { return exprList; } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + return true; + + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + + case "ObjectProperty": + return this.isAssignable(node.value); + + case "SpreadElement": + return this.isAssignable(node.argument); + + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + + case "AssignmentExpression": + return node.operator === "="; + + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { return exprList; } @@ -10537,14 +10721,7 @@ class ExpressionParser extends LValParser { } getExpression() { - let paramFlags = PARAM; - - if (this.hasPlugin("topLevelAwait") && this.inModule) { - paramFlags |= PARAM_AWAIT; - } - - this.scope.enter(SCOPE_PROGRAM); - this.prodParam.enter(paramFlags); + this.enterInitialScopes(); this.nextToken(); const expr = this.parseExpression(); @@ -10552,6 +10729,7 @@ class ExpressionParser extends LValParser { this.unexpected(); } + this.finalizeRemainingComments(); expr.comments = this.state.comments; expr.errors = this.state.errors; @@ -10590,15 +10768,21 @@ class ExpressionParser extends LValParser { return expr; } - parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos)); + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); } - parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos)); + setOptionalParametersError(refExpressionErrors, resultError) { + var _resultError$pos; + + refExpressionErrors.optionalParameters = (_resultError$pos = resultError == null ? void 0 : resultError.pos) != null ? _resultError$pos : this.state.start; } - parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { + parseMaybeAssign(refExpressionErrors, afterLeftParse) { const startPos = this.state.start; const startLoc = this.state.startLoc; @@ -10627,7 +10811,7 @@ class ExpressionParser extends LValParser { this.state.potentialArrowAt = this.state.start; } - let left = this.parseMaybeConditional(refExpressionErrors, refNeedsArrowPos); + let left = this.parseMaybeConditional(refExpressionErrors); if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); @@ -10637,6 +10821,11 @@ class ExpressionParser extends LValParser { const node = this.startNodeAt(startPos, startLoc); const operator = this.state.value; node.operator = operator; + const leftIsHackPipeExpression = left.type === "BinaryExpression" && left.operator === "|>" && this.getPluginOption("pipelineOperator", "proposal") === "hack"; + + if (leftIsHackPipeExpression) { + throw this.raise(this.state.start, ErrorMessages.PipeBodyIsTighter, operator); + } if (this.match(types$1.eq)) { node.left = this.toAssignable(left, true); @@ -10660,7 +10849,7 @@ class ExpressionParser extends LValParser { return left; } - parseMaybeConditional(refExpressionErrors, refNeedsArrowPos) { + parseMaybeConditional(refExpressionErrors) { const startPos = this.state.start; const startLoc = this.state.startLoc; const potentialArrowAt = this.state.potentialArrowAt; @@ -10670,10 +10859,10 @@ class ExpressionParser extends LValParser { return expr; } - return this.parseConditional(expr, startPos, startLoc, refNeedsArrowPos); + return this.parseConditional(expr, startPos, startLoc, refExpressionErrors); } - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { + parseConditional(expr, startPos, startLoc, refExpressionErrors) { if (this.eat(types$1.question)) { const node = this.startNodeAt(startPos, startLoc); node.test = expr; @@ -10713,7 +10902,6 @@ class ExpressionParser extends LValParser { return left; } - this.state.inPipeline = true; this.checkPipelineAtInfixOperator(left, leftStartPos); } @@ -10757,9 +10945,17 @@ class ExpressionParser extends LValParser { switch (op) { case types$1.pipeline: switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + const bodyExpr = this.parseHackPipeBody(op, prec); + this.checkHackPipeBodyEarlyErrors(startPos); + return bodyExpr; + }); + case "smart": - return this.withTopicPermittingContext(() => { - return this.parseSmartPipelineBody(this.parseExprOpBaseRightExpr(op, prec), startPos, startLoc); + return this.withTopicBindingContext(() => { + const childExpr = this.parseHackPipeBody(op, prec); + return this.parseSmartPipelineBodyInStyle(childExpr, startPos, startLoc); }); case "fsharp": @@ -10779,6 +10975,17 @@ class ExpressionParser extends LValParser { return this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec); } + parseHackPipeBody(op, prec) { + const bodyIsInGeneratorContext = this.prodParam.hasYield; + const bodyIsYieldExpression = bodyIsInGeneratorContext && this.isContextual("yield"); + + if (bodyIsYieldExpression) { + throw this.raise(this.state.start, ErrorMessages.PipeBodyIsTighter, this.state.value); + } else { + return this.parseExprOpBaseRightExpr(op, prec); + } + } + checkExponentialAfterUnary(node) { if (this.match(types$1.exponent)) { this.raise(node.argument.start, ErrorMessages.UnexpectedTokenUnaryExponentiation); @@ -10797,10 +11004,6 @@ class ExpressionParser extends LValParser { return expr; } - if (this.isContextual("module") && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak()) { - return this.parseModuleExpression(); - } - const update = this.match(types$1.incDec); const node = this.startNode(); @@ -10839,7 +11042,7 @@ class ExpressionParser extends LValParser { const startsExpr = this.hasPlugin("v8intrinsic") ? this.state.type.startsExpr : this.state.type.startsExpr && !this.match(types$1.modulo); if (startsExpr && !this.isAmbiguousAwait()) { - this.raiseOverwrite(startPos, this.hasPlugin("topLevelAwait") ? ErrorMessages.AwaitNotInAsyncContext : ErrorMessages.AwaitNotInAsyncFunction); + this.raiseOverwrite(startPos, ErrorMessages.AwaitNotInAsyncContext); return this.parseAwait(startPos, startLoc); } } @@ -11079,9 +11282,7 @@ class ExpressionParser extends LValParser { } } - elts.push(this.parseExprListItem(false, refExpressionErrors, { - start: 0 - }, allowPlaceholder)); + elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); } this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; @@ -11095,8 +11296,11 @@ class ExpressionParser extends LValParser { parseAsyncArrowFromCallExpression(node, call) { var _call$extra; + this.resetPreviousNodeTrailingComments(call); this.expect(types$1.arrow); this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingComma); + setInnerComments(node, call.innerComments); + setInnerComments(node, call.callee.trailingComments); return node; } @@ -11134,22 +11338,28 @@ class ExpressionParser extends LValParser { case types$1.name: { + if (this.isContextual("module") && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak()) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; const containsEsc = this.state.containsEsc; const id = this.parseIdentifier(); if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { if (this.match(types$1._function)) { + this.resetPreviousNodeTrailingComments(id); this.next(); return this.parseFunction(this.startNodeAtNode(id), undefined, true); } else if (this.match(types$1.name)) { if (this.lookaheadCharCode() === 61) { - return this.parseAsyncArrowUnaryFunction(id); + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); } else { return id; } } else if (this.match(types$1._do)) { - return this.parseDo(true); + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); } } @@ -11163,7 +11373,7 @@ class ExpressionParser extends LValParser { case types$1._do: { - return this.parseDo(false); + return this.parseDo(this.startNode(), false); } case types$1.slash: @@ -11255,39 +11465,43 @@ class ExpressionParser extends LValParser { case types$1.privateName: { - const start = this.state.start; - const value = this.state.value; + const { + value, + start + } = this.state; node = this.parsePrivateName(); if (this.match(types$1._in)) { - this.expectPlugin("privateIn"); - this.classScope.usePrivateName(value, node.start); - } else if (this.hasPlugin("privateIn")) { - this.raise(this.state.start, ErrorMessages.PrivateInExpectedIn, value); + this.classScope.usePrivateName(value, start); } else { - throw this.unexpected(start); + this.raise(start, ErrorMessages.PrivateInExpectedIn, value); } return node; } + case types$1.moduloAssign: + if (this.getPluginOption("pipelineOperator", "proposal") === "hack" && this.getPluginOption("pipelineOperator", "topicToken") === "%") { + this.state.value = "%"; + this.state.type = types$1.modulo; + this.state.pos--; + this.state.end--; + this.state.endLoc.column--; + } else { + throw this.unexpected(); + } + + case types$1.modulo: case types$1.hash: { - if (this.state.inPipeline) { - node = this.startNode(); - - if (this.getPluginOption("pipelineOperator", "proposal") !== "smart") { - this.raise(node.start, ErrorMessages.PrimaryTopicRequiresSmartPipeline); - } + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + node = this.startNode(); + const start = this.state.start; + const tokenType = this.state.type; this.next(); - - if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) { - this.raise(node.start, ErrorMessages.PrimaryTopicNotAllowed); - } - - this.registerTopicReference(); - return this.finishNode(node, "PipelinePrimaryTopicReference"); + return this.finishTopicReference(node, start, pipeProposal, tokenType); } } @@ -11297,8 +11511,8 @@ class ExpressionParser extends LValParser { const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { - this.expectOnePlugin(["jsx", "flow", "typescript"]); - } + this.expectOnePlugin(["jsx", "flow", "typescript"]); + } } } @@ -11307,8 +11521,48 @@ class ExpressionParser extends LValParser { } } - parseAsyncArrowUnaryFunction(id) { - const node = this.startNodeAtNode(id); + finishTopicReference(node, start, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, start, tokenType)) { + let nodeType; + + if (pipeProposal === "smart") { + nodeType = "PipelinePrimaryTopicReference"; + } else { + nodeType = "TopicReference"; + } + + if (!this.topicReferenceIsAllowedInCurrentContext()) { + if (pipeProposal === "smart") { + this.raise(start, ErrorMessages.PrimaryTopicNotAllowed); + } else { + this.raise(start, ErrorMessages.PipeTopicUnbound); + } + } + + this.registerTopicReference(); + return this.finishNode(node, nodeType); + } else { + throw this.raise(start, ErrorMessages.PipeTopicUnconfiguredToken, tokenType.label); + } + } + + testTopicReferenceConfiguration(pipeProposal, start, tokenType) { + switch (pipeProposal) { + case "hack": + { + const pluginTopicToken = this.getPluginOption("pipelineOperator", "topicToken"); + return tokenType.label === pluginTopicToken; + } + + case "smart": + return tokenType === types$1.hash; + + default: + throw this.raise(start, ErrorMessages.PipeTopicRequiresHackPipes); + } + } + + parseAsyncArrowUnaryFunction(node) { this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); const params = [this.parseIdentifier()]; this.prodParam.exit(); @@ -11322,14 +11576,13 @@ class ExpressionParser extends LValParser { return node; } - parseDo(isAsync) { + parseDo(node, isAsync) { this.expectPlugin("doExpressions"); if (isAsync) { this.expectPlugin("asyncDoExpressions"); } - const node = this.startNode(); node.async = isAsync; this.next(); const oldLabels = this.state.labels; @@ -11499,9 +11752,6 @@ class ExpressionParser extends LValParser { const innerStartLoc = this.state.startLoc; const exprList = []; const refExpressionErrors = new ExpressionErrors(); - const refNeedsArrowPos = { - start: 0 - }; let first = true; let spreadStart; let optionalCommaStart; @@ -11510,7 +11760,7 @@ class ExpressionParser extends LValParser { if (first) { first = false; } else { - this.expect(types$1.comma, refNeedsArrowPos.start || null); + this.expect(types$1.comma, refExpressionErrors.optionalParameters === -1 ? null : refExpressionErrors.optionalParameters); if (this.match(types$1.parenR)) { optionalCommaStart = this.state.start; @@ -11526,7 +11776,7 @@ class ExpressionParser extends LValParser { this.checkCommaAfterRest(41); break; } else { - exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem, refNeedsArrowPos)); + exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); } } @@ -11537,7 +11787,7 @@ class ExpressionParser extends LValParser { this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; let arrowNode = this.startNodeAt(startPos, startLoc); - if (canBeArrow && this.shouldParseArrow() && (arrowNode = this.parseArrow(arrowNode))) { + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { this.expressionScope.validateAsPattern(); this.expressionScope.exit(); this.parseArrowExpression(arrowNode, exprList, false); @@ -11553,13 +11803,14 @@ class ExpressionParser extends LValParser { if (optionalCommaStart) this.unexpected(optionalCommaStart); if (spreadStart) this.unexpected(spreadStart); this.checkExpressionErrors(refExpressionErrors, true); - if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start); this.toReferencedListDeep(exprList, true); if (exprList.length > 1) { val = this.startNodeAt(innerStartPos, innerStartLoc); val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); + this.finishNode(val, "SequenceExpression"); + val.end = innerEndPos; + val.loc.end = innerEndLoc; } else { val = exprList[0]; } @@ -11576,7 +11827,7 @@ class ExpressionParser extends LValParser { return parenExpression; } - shouldParseArrow() { + shouldParseArrow(params) { return !this.canInsertSemicolon(); } @@ -11790,12 +12041,14 @@ class ExpressionParser extends LValParser { if (keyName === "async" && !this.hasPrecedingLineBreak()) { isAsync = true; + this.resetPreviousNodeTrailingComments(key); isGenerator = this.eat(types$1.star); this.parsePropertyName(prop, false); } if (keyName === "get" || keyName === "set") { isAccessor = true; + this.resetPreviousNodeTrailingComments(key); prop.kind = keyName; if (this.match(types$1.star)) { @@ -11867,15 +12120,15 @@ class ExpressionParser extends LValParser { this.checkReservedWord(prop.key.name, prop.key.start, true, false); if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); + prop.value = this.parseMaybeDefault(startPos, startLoc, cloneIdentifier(prop.key)); } else if (this.match(types$1.eq) && refExpressionErrors) { if (refExpressionErrors.shorthandAssign === -1) { refExpressionErrors.shorthandAssign = this.state.start; } - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); + prop.value = this.parseMaybeDefault(startPos, startLoc, cloneIdentifier(prop.key)); } else { - prop.value = prop.key.__clone(); + prop.value = cloneIdentifier(prop.key); } prop.shorthand = true; @@ -12052,7 +12305,7 @@ class ExpressionParser extends LValParser { return elts; } - parseExprListItem(allowEmpty, refExpressionErrors, refNeedsArrowPos, allowPlaceholder) { + parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { let elt; if (this.match(types$1.comma)) { @@ -12064,7 +12317,7 @@ class ExpressionParser extends LValParser { } else if (this.match(types$1.ellipsis)) { const spreadNodeStartPos = this.state.start; const spreadNodeStartLoc = this.state.startLoc; - elt = this.parseParenItem(this.parseSpread(refExpressionErrors, refNeedsArrowPos), spreadNodeStartPos, spreadNodeStartLoc); + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartPos, spreadNodeStartLoc); } else if (this.match(types$1.question)) { this.expectPlugin("partialApplication"); @@ -12076,7 +12329,7 @@ class ExpressionParser extends LValParser { this.next(); elt = this.finishNode(node, "ArgumentPlaceholder"); } else { - elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem, refNeedsArrowPos); + elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); } return elt; @@ -12105,14 +12358,6 @@ class ExpressionParser extends LValParser { name = this.state.value; } else if (type.keyword) { name = type.keyword; - - if (type === types$1._class || type === types$1._function) { - const curContext = this.curContext(); - - if (curContext === types.functionStatement || curContext === types.functionExpression) { - this.state.context.pop(); - } - } } else { throw this.unexpected(); } @@ -12145,7 +12390,7 @@ class ExpressionParser extends LValParser { if (this.prodParam.hasAwait) { this.raise(startLoc, ErrorMessages.AwaitBindingIdentifier); return; - } else if (this.scope.inStaticBlock && !this.scope.inNonArrowFunction) { + } else if (this.scope.inStaticBlock) { this.raise(startLoc, ErrorMessages.AwaitBindingIdentifierInStaticBlock); return; } else { @@ -12246,34 +12491,25 @@ class ExpressionParser extends LValParser { } } - parseSmartPipelineBody(childExpression, startPos, startLoc) { - this.checkSmartPipelineBodyEarlyErrors(childExpression, startPos); - return this.parseSmartPipelineBodyInStyle(childExpression, startPos, startLoc); - } - - checkSmartPipelineBodyEarlyErrors(childExpression, startPos) { + checkHackPipeBodyEarlyErrors(startPos) { if (this.match(types$1.arrow)) { - throw this.raise(this.state.start, ErrorMessages.PipelineBodyNoArrow); - } else if (childExpression.type === "SequenceExpression") { - this.raise(startPos, ErrorMessages.PipelineBodySequenceExpression); + throw this.raise(this.state.start, ErrorMessages.PipeBodyIsTighter, types$1.arrow.label); + } else if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(startPos, ErrorMessages.PipeTopicUnused); } } - parseSmartPipelineBodyInStyle(childExpression, startPos, startLoc) { + parseSmartPipelineBodyInStyle(childExpr, startPos, startLoc) { const bodyNode = this.startNodeAt(startPos, startLoc); - const isSimpleReference = this.isSimpleReference(childExpression); - if (isSimpleReference) { - bodyNode.callee = childExpression; + if (this.isSimpleReference(childExpr)) { + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); } else { - if (!this.topicReferenceWasUsedInCurrentTopicContext()) { - this.raise(startPos, ErrorMessages.PipelineTopicUnused); - } - - bodyNode.expression = childExpression; + this.checkSmartPipeTopicBodyEarlyErrors(startPos); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); } - - return this.finishNode(bodyNode, isSimpleReference ? "PipelineBareFunction" : "PipelineTopicExpression"); } isSimpleReference(expression) { @@ -12289,7 +12525,15 @@ class ExpressionParser extends LValParser { } } - withTopicPermittingContext(callback) { + checkSmartPipeTopicBodyEarlyErrors(startPos) { + if (this.match(types$1.arrow)) { + throw this.raise(this.state.start, ErrorMessages.PipelineBodyNoArrow); + } else if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(startPos, ErrorMessages.PipelineTopicUnused); + } + } + + withTopicBindingContext(callback) { const outerContextTopicState = this.state.topicContext; this.state.topicContext = { maxNumOfResolvableTopics: 1, @@ -12303,17 +12547,23 @@ class ExpressionParser extends LValParser { } } - withTopicForbiddingContext(callback) { - const outerContextTopicState = this.state.topicContext; - this.state.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; + withSmartMixTopicForbiddingContext(callback) { + const proposal = this.getPluginOption("pipelineOperator", "proposal"); - try { + if (proposal === "smart") { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { return callback(); - } finally { - this.state.topicContext = outerContextTopicState; } } @@ -12366,11 +12616,11 @@ class ExpressionParser extends LValParser { this.state.topicContext.maxTopicIndex = 0; } - primaryTopicReferenceIsAllowedInCurrentTopicContext() { + topicReferenceIsAllowedInCurrentContext() { return this.state.topicContext.maxNumOfResolvableTopics >= 1; } - topicReferenceWasUsedInCurrentTopicContext() { + topicReferenceWasUsedInCurrentContext() { return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; } @@ -12478,15 +12728,17 @@ class StatementParser extends ExpressionParser { } stmtToDirective(stmt) { - const expr = stmt.expression; - const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start); - const directive = this.startNodeAt(stmt.start, stmt.loc.start); - const raw = this.input.slice(expr.start, expr.end); + const directive = stmt; + directive.type = "Directive"; + directive.value = directive.expression; + delete directive.expression; + const directiveLiteral = directive.value; + const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end); const val = directiveLiteral.value = raw.slice(1, -1); this.addExtra(directiveLiteral, "raw", raw); this.addExtra(directiveLiteral, "rawValue", val); - directive.value = this.finishNodeAt(directiveLiteral, "DirectiveLiteral", expr.end, expr.loc.end); - return this.finishNodeAt(directive, "Directive", stmt.end, stmt.loc.end); + directiveLiteral.type = "DirectiveLiteral"; + return directive; } parseInterpreterDirective() { @@ -12521,10 +12773,9 @@ class StatementParser extends ExpressionParser { if (isIdentifierStart(nextCh)) { keywordRelationalOperator.lastIndex = next; - const matched = keywordRelationalOperator.exec(this.input); - if (matched !== null) { - const endCh = this.codePointAtPos(next + matched[0].length); + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); if (!isIdentifierChar(endCh) && endCh !== 92) { return false; @@ -12628,8 +12879,8 @@ class StatementParser extends ExpressionParser { const nextTokenCharCode = this.lookaheadCharCode(); if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { - break; - } + break; + } } case types$1._export: @@ -12819,7 +13070,7 @@ class StatementParser extends ExpressionParser { parseDoStatement(node) { this.next(); this.state.labels.push(loopLabel); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("do")); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("do")); this.state.labels.pop(); this.expect(types$1._while); node.test = this.parseHeaderExpression(); @@ -13010,7 +13261,7 @@ class StatementParser extends ExpressionParser { this.scope.enter(SCOPE_OTHER); } - clause.body = this.withTopicForbiddingContext(() => this.parseBlock(false, false)); + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); this.scope.exit(); node.handler = this.finishNode(clause, "CatchClause"); } @@ -13035,7 +13286,7 @@ class StatementParser extends ExpressionParser { this.next(); node.test = this.parseHeaderExpression(); this.state.labels.push(loopLabel); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("while")); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("while")); this.state.labels.pop(); return this.finishNode(node, "WhileStatement"); } @@ -13047,7 +13298,7 @@ class StatementParser extends ExpressionParser { this.next(); node.object = this.parseHeaderExpression(); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("with")); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("with")); return this.finishNode(node, "WithStatement"); } @@ -13171,7 +13422,7 @@ class StatementParser extends ExpressionParser { this.semicolon(false); node.update = this.match(types$1.parenR) ? null : this.parseExpression(); this.expect(types$1.parenR); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("for")); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("for")); this.scope.exit(); this.state.labels.pop(); return this.finishNode(node, "ForStatement"); @@ -13196,7 +13447,7 @@ class StatementParser extends ExpressionParser { node.left = init; node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); this.expect(types$1.parenR); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("for")); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("for")); this.scope.exit(); this.state.labels.pop(); return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); @@ -13263,7 +13514,7 @@ class StatementParser extends ExpressionParser { } this.parseFunctionParams(node, false); - this.withTopicForbiddingContext(() => { + this.withSmartMixTopicForbiddingContext(() => { this.parseFunctionBodyAndFinish(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); }); this.prodParam.exit(); @@ -13326,7 +13577,7 @@ class StatementParser extends ExpressionParser { const classBody = this.startNode(); classBody.body = []; this.expect(types$1.braceL); - this.withTopicForbiddingContext(() => { + this.withSmartMixTopicForbiddingContext(() => { while (!this.match(types$1.braceR)) { if (this.eat(types$1.semi)) { if (decorators.length > 0) { @@ -13387,6 +13638,7 @@ class StatementParser extends ExpressionParser { return true; } + this.resetPreviousNodeTrailingComments(key); return false; } @@ -13434,10 +13686,9 @@ class StatementParser extends ExpressionParser { return; } - const containsEsc = this.state.containsEsc; + const isContextual = this.match(types$1.name) && !this.state.containsEsc; const isPrivate = this.match(types$1.privateName); const key = this.parseClassElementName(member); - const isSimple = key.type === "Identifier"; const maybeQuestionTokenStart = this.state.start; this.parsePostMemberNameModifiers(publicMember); @@ -13474,7 +13725,8 @@ class StatementParser extends ExpressionParser { } else { this.pushClassProperty(classBody, publicProp); } - } else if (isSimple && key.name === "async" && !containsEsc && !this.isLineTerminator()) { + } else if (isContextual && key.name === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); const isGenerator = this.eat(types$1.star); if (publicMember.optional) { @@ -13495,7 +13747,8 @@ class StatementParser extends ExpressionParser { this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); } - } else if (isSimple && (key.name === "get" || key.name === "set") && !containsEsc && !(this.match(types$1.star) && this.isLineTerminator())) { + } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(types$1.star) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); method.kind = key.name; const isPrivate = this.match(types$1.privateName); this.parseClassElementName(publicMethod); @@ -13934,8 +14187,18 @@ class StatementParser extends ExpressionParser { } const node = this.startNode(); - node.local = this.parseModuleExportName(); - node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local.__clone(); + const isString = this.match(types$1.string); + const local = this.parseModuleExportName(); + node.local = local; + + if (this.eatContextual("as")) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = cloneStringLiteral(local); + } else { + node.exported = cloneIdentifier(local); + } + nodes.push(this.finishNode(node, "ExportSpecifier")); } @@ -14150,7 +14413,7 @@ class StatementParser extends ExpressionParser { } this.checkReservedWord(imported.name, specifier.start, true, true); - specifier.local = imported.__clone(); + specifier.local = cloneIdentifier(imported); } this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); diff --git a/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json b/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json index 5a342e78974aba..be368baa926e14 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/parser", - "version": "7.14.6", + "version": "7.15.3", "description": "A JavaScript parser", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-parser", @@ -33,11 +33,9 @@ "node": ">=6.0.0" }, "devDependencies": { - "@babel-baseline/parser": "npm:@babel/parser@^7.14.5", "@babel/code-frame": "7.14.5", "@babel/helper-fixtures": "7.14.5", - "@babel/helper-validator-identifier": "7.14.5", - "benchmark": "^2.1.4", + "@babel/helper-validator-identifier": "7.14.9", "charcodes": "^0.2.0" }, "bin": "./bin/babel-parser.js" diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js index b175cdd36111fb..c3a0424aa98c53 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js @@ -9,8 +9,6 @@ var _path = require("./path"); var t = require("@babel/types"); -const testing = process.env.NODE_ENV === "test"; - class TraversalContext { constructor(scope, opts, state, parentPath) { this.queue = null; @@ -46,10 +44,6 @@ class TraversalContext { } maybeQueue(path, notPriority) { - if (this.trap) { - throw new Error("Infinite cycle detected"); - } - if (this.queue) { if (notPriority) { this.queue.push(path); @@ -96,11 +90,6 @@ class TraversalContext { } if (path.key === null) continue; - - if (testing && queue.length >= 10000) { - this.trap = true; - } - const { node } = path; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js index 911f3beb80cf13..d7f226a6093e3f 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js @@ -166,7 +166,15 @@ function hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = } if (argumentsPaths.length > 0) { - const argumentsBinding = getBinding(thisEnvFn, "arguments", () => t.identifier("arguments")); + const argumentsBinding = getBinding(thisEnvFn, "arguments", () => { + const args = () => t.identifier("arguments"); + + if (thisEnvFn.scope.path.isProgram()) { + return t.conditionalExpression(t.binaryExpression("===", t.unaryExpression("typeof", args()), t.stringLiteral("undefined")), thisEnvFn.scope.buildUndefinedNode(), args()); + } else { + return args(); + } + }); argumentsPaths.forEach(argumentsChild => { const argsRef = t.identifier(argumentsBinding); argsRef.loc = argumentsChild.node.loc; @@ -398,6 +406,19 @@ function getScopeInformation(fnPath) { ReferencedIdentifier(child) { if (child.node.name !== "arguments") return; + let curr = child.scope; + + do { + if (curr.hasOwnBinding("arguments")) { + curr.rename("arguments"); + return; + } + + if (curr.path.isFunction() && !curr.path.isArrowFunctionExpression()) { + break; + } + } while (curr = curr.parent); + argumentsPaths.push(child); }, diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/family.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/family.js index 863dd45df5f52e..69accb178bb086 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/family.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/family.js @@ -158,7 +158,14 @@ function getStatementListCompletion(paths, context) { } } } else if (paths.length) { - completions = completions.concat(_getCompletionRecords(paths[paths.length - 1], context)); + for (let i = paths.length - 1; i >= 0; i--) { + const pathCompletions = _getCompletionRecords(paths[i], context); + + if (pathCompletions.length > 1 || pathCompletions.length === 1 && !pathCompletions[0].path.isVariableDeclaration()) { + completions = completions.concat(pathCompletions); + break; + } + } } return completions; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js index 396c7c907c8510..b419d963d7b522 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js @@ -172,11 +172,17 @@ const collectorVisitor = { Declaration(path) { if (path.isBlockScoped()) return; + if (path.isImportDeclaration()) return; if (path.isExportDeclaration()) return; const parent = path.scope.getFunctionParent() || path.scope.getProgramParent(); parent.registerDeclaration(path); }, + ImportDeclaration(path) { + const parent = path.scope.getBlockParent(); + parent.registerDeclaration(path); + }, + ReferencedIdentifier(path, state) { state.references.push(path); }, diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json b/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json index 03995f89336e28..1d631f5729355c 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json @@ -1,6 +1,6 @@ { "name": "@babel/traverse", - "version": "7.14.5", + "version": "7.15.0", "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,12 +17,12 @@ "main": "./lib/index.js", "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", + "@babel/generator": "^7.15.0", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", "debug": "^4.1.0", "globals": "^11.1.0" }, diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/scripts/generators/validators.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/scripts/generators/validators.js index eae98a33e26cac..a3ec31a3ebb888 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/scripts/generators/validators.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/traverse/scripts/generators/validators.js @@ -9,6 +9,7 @@ export default function generateValidators() { */ import * as t from "@babel/types"; import NodePath from "../index"; +import type { VirtualTypeAliases } from "./virtual-types"; export interface NodePathValidators { `; @@ -18,10 +19,18 @@ export interface NodePathValidators { } for (const type of Object.keys(virtualTypes)) { + const { types } = virtualTypes[type]; if (type[0] === "_") continue; if (definitions.NODE_FIELDS[type] || definitions.FLIPPED_ALIAS_KEYS[type]) { output += `is${type}(opts?: object): this is NodePath;`; + } else if (types /* in VirtualTypeAliases */) { + output += `is${type}(opts?: object): this is NodePath;`; } else { + // if it don't have types, then VirtualTypeAliases[type] is t.Node + // which TS marked as always true + // eg. if (path.isBlockScope()) return; + // path resolved to `never` here + // so we have to return boolean instead of this is NodePath here output += `is${type}(opts?: object): boolean;`; } } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js index 947d343d215dad..b7309f7a2410b0 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js @@ -84,6 +84,10 @@ exports.assertBigIntLiteral = assertBigIntLiteral; exports.assertExportNamespaceSpecifier = assertExportNamespaceSpecifier; exports.assertOptionalMemberExpression = assertOptionalMemberExpression; exports.assertOptionalCallExpression = assertOptionalCallExpression; +exports.assertClassProperty = assertClassProperty; +exports.assertClassPrivateProperty = assertClassPrivateProperty; +exports.assertClassPrivateMethod = assertClassPrivateMethod; +exports.assertPrivateName = assertPrivateName; exports.assertAnyTypeAnnotation = assertAnyTypeAnnotation; exports.assertArrayTypeAnnotation = assertArrayTypeAnnotation; exports.assertBooleanTypeAnnotation = assertBooleanTypeAnnotation; @@ -169,22 +173,19 @@ exports.assertPlaceholder = assertPlaceholder; exports.assertV8IntrinsicIdentifier = assertV8IntrinsicIdentifier; exports.assertArgumentPlaceholder = assertArgumentPlaceholder; exports.assertBindExpression = assertBindExpression; -exports.assertClassProperty = assertClassProperty; -exports.assertPipelineTopicExpression = assertPipelineTopicExpression; -exports.assertPipelineBareFunction = assertPipelineBareFunction; -exports.assertPipelinePrimaryTopicReference = assertPipelinePrimaryTopicReference; -exports.assertClassPrivateProperty = assertClassPrivateProperty; -exports.assertClassPrivateMethod = assertClassPrivateMethod; exports.assertImportAttribute = assertImportAttribute; exports.assertDecorator = assertDecorator; exports.assertDoExpression = assertDoExpression; exports.assertExportDefaultSpecifier = assertExportDefaultSpecifier; -exports.assertPrivateName = assertPrivateName; exports.assertRecordExpression = assertRecordExpression; exports.assertTupleExpression = assertTupleExpression; exports.assertDecimalLiteral = assertDecimalLiteral; exports.assertStaticBlock = assertStaticBlock; exports.assertModuleExpression = assertModuleExpression; +exports.assertTopicReference = assertTopicReference; +exports.assertPipelineTopicExpression = assertPipelineTopicExpression; +exports.assertPipelineBareFunction = assertPipelineBareFunction; +exports.assertPipelinePrimaryTopicReference = assertPipelinePrimaryTopicReference; exports.assertTSParameterProperty = assertTSParameterProperty; exports.assertTSDeclareFunction = assertTSDeclareFunction; exports.assertTSDeclareMethod = assertTSDeclareMethod; @@ -281,6 +282,7 @@ exports.assertClass = assertClass; exports.assertModuleDeclaration = assertModuleDeclaration; exports.assertExportDeclaration = assertExportDeclaration; exports.assertModuleSpecifier = assertModuleSpecifier; +exports.assertPrivate = assertPrivate; exports.assertFlow = assertFlow; exports.assertFlowType = assertFlowType; exports.assertFlowBaseAnnotation = assertFlowBaseAnnotation; @@ -289,7 +291,6 @@ exports.assertFlowPredicate = assertFlowPredicate; exports.assertEnumBody = assertEnumBody; exports.assertEnumMember = assertEnumMember; exports.assertJSX = assertJSX; -exports.assertPrivate = assertPrivate; exports.assertTSTypeElement = assertTSTypeElement; exports.assertTSType = assertTSType; exports.assertTSBaseType = assertTSBaseType; @@ -630,6 +631,22 @@ function assertOptionalCallExpression(node, opts) { assert("OptionalCallExpression", node, opts); } +function assertClassProperty(node, opts) { + assert("ClassProperty", node, opts); +} + +function assertClassPrivateProperty(node, opts) { + assert("ClassPrivateProperty", node, opts); +} + +function assertClassPrivateMethod(node, opts) { + assert("ClassPrivateMethod", node, opts); +} + +function assertPrivateName(node, opts) { + assert("PrivateName", node, opts); +} + function assertAnyTypeAnnotation(node, opts) { assert("AnyTypeAnnotation", node, opts); } @@ -970,30 +987,6 @@ function assertBindExpression(node, opts) { assert("BindExpression", node, opts); } -function assertClassProperty(node, opts) { - assert("ClassProperty", node, opts); -} - -function assertPipelineTopicExpression(node, opts) { - assert("PipelineTopicExpression", node, opts); -} - -function assertPipelineBareFunction(node, opts) { - assert("PipelineBareFunction", node, opts); -} - -function assertPipelinePrimaryTopicReference(node, opts) { - assert("PipelinePrimaryTopicReference", node, opts); -} - -function assertClassPrivateProperty(node, opts) { - assert("ClassPrivateProperty", node, opts); -} - -function assertClassPrivateMethod(node, opts) { - assert("ClassPrivateMethod", node, opts); -} - function assertImportAttribute(node, opts) { assert("ImportAttribute", node, opts); } @@ -1010,10 +1003,6 @@ function assertExportDefaultSpecifier(node, opts) { assert("ExportDefaultSpecifier", node, opts); } -function assertPrivateName(node, opts) { - assert("PrivateName", node, opts); -} - function assertRecordExpression(node, opts) { assert("RecordExpression", node, opts); } @@ -1034,6 +1023,22 @@ function assertModuleExpression(node, opts) { assert("ModuleExpression", node, opts); } +function assertTopicReference(node, opts) { + assert("TopicReference", node, opts); +} + +function assertPipelineTopicExpression(node, opts) { + assert("PipelineTopicExpression", node, opts); +} + +function assertPipelineBareFunction(node, opts) { + assert("PipelineBareFunction", node, opts); +} + +function assertPipelinePrimaryTopicReference(node, opts) { + assert("PipelinePrimaryTopicReference", node, opts); +} + function assertTSParameterProperty(node, opts) { assert("TSParameterProperty", node, opts); } @@ -1418,6 +1423,10 @@ function assertModuleSpecifier(node, opts) { assert("ModuleSpecifier", node, opts); } +function assertPrivate(node, opts) { + assert("Private", node, opts); +} + function assertFlow(node, opts) { assert("Flow", node, opts); } @@ -1450,10 +1459,6 @@ function assertJSX(node, opts) { assert("JSX", node, opts); } -function assertPrivate(node, opts) { - assert("Private", node, opts); -} - function assertTSTypeElement(node, opts) { assert("TSTypeElement", node, opts); } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js index 5cb9e361c91425..cb40ee6e646bcf 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js @@ -84,6 +84,10 @@ exports.bigIntLiteral = bigIntLiteral; exports.exportNamespaceSpecifier = exportNamespaceSpecifier; exports.optionalMemberExpression = optionalMemberExpression; exports.optionalCallExpression = optionalCallExpression; +exports.classProperty = classProperty; +exports.classPrivateProperty = classPrivateProperty; +exports.classPrivateMethod = classPrivateMethod; +exports.privateName = privateName; exports.anyTypeAnnotation = anyTypeAnnotation; exports.arrayTypeAnnotation = arrayTypeAnnotation; exports.booleanTypeAnnotation = booleanTypeAnnotation; @@ -169,22 +173,19 @@ exports.placeholder = placeholder; exports.v8IntrinsicIdentifier = v8IntrinsicIdentifier; exports.argumentPlaceholder = argumentPlaceholder; exports.bindExpression = bindExpression; -exports.classProperty = classProperty; -exports.pipelineTopicExpression = pipelineTopicExpression; -exports.pipelineBareFunction = pipelineBareFunction; -exports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference; -exports.classPrivateProperty = classPrivateProperty; -exports.classPrivateMethod = classPrivateMethod; exports.importAttribute = importAttribute; exports.decorator = decorator; exports.doExpression = doExpression; exports.exportDefaultSpecifier = exportDefaultSpecifier; -exports.privateName = privateName; exports.recordExpression = recordExpression; exports.tupleExpression = tupleExpression; exports.decimalLiteral = decimalLiteral; exports.staticBlock = staticBlock; exports.moduleExpression = moduleExpression; +exports.topicReference = topicReference; +exports.pipelineTopicExpression = pipelineTopicExpression; +exports.pipelineBareFunction = pipelineBareFunction; +exports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference; exports.tSParameterProperty = exports.tsParameterProperty = tsParameterProperty; exports.tSDeclareFunction = exports.tsDeclareFunction = tsDeclareFunction; exports.tSDeclareMethod = exports.tsDeclareMethod = tsDeclareMethod; @@ -579,6 +580,22 @@ function optionalCallExpression(callee, _arguments, optional) { return (0, _builder.default)("OptionalCallExpression", ...arguments); } +function classProperty(key, value, typeAnnotation, decorators, computed, _static) { + return (0, _builder.default)("ClassProperty", ...arguments); +} + +function classPrivateProperty(key, value, decorators, _static) { + return (0, _builder.default)("ClassPrivateProperty", ...arguments); +} + +function classPrivateMethod(kind, key, params, body, _static) { + return (0, _builder.default)("ClassPrivateMethod", ...arguments); +} + +function privateName(id) { + return (0, _builder.default)("PrivateName", ...arguments); +} + function anyTypeAnnotation() { return (0, _builder.default)("AnyTypeAnnotation", ...arguments); } @@ -919,30 +936,6 @@ function bindExpression(object, callee) { return (0, _builder.default)("BindExpression", ...arguments); } -function classProperty(key, value, typeAnnotation, decorators, computed, _static) { - return (0, _builder.default)("ClassProperty", ...arguments); -} - -function pipelineTopicExpression(expression) { - return (0, _builder.default)("PipelineTopicExpression", ...arguments); -} - -function pipelineBareFunction(callee) { - return (0, _builder.default)("PipelineBareFunction", ...arguments); -} - -function pipelinePrimaryTopicReference() { - return (0, _builder.default)("PipelinePrimaryTopicReference", ...arguments); -} - -function classPrivateProperty(key, value, decorators, _static) { - return (0, _builder.default)("ClassPrivateProperty", ...arguments); -} - -function classPrivateMethod(kind, key, params, body, _static) { - return (0, _builder.default)("ClassPrivateMethod", ...arguments); -} - function importAttribute(key, value) { return (0, _builder.default)("ImportAttribute", ...arguments); } @@ -959,10 +952,6 @@ function exportDefaultSpecifier(exported) { return (0, _builder.default)("ExportDefaultSpecifier", ...arguments); } -function privateName(id) { - return (0, _builder.default)("PrivateName", ...arguments); -} - function recordExpression(properties) { return (0, _builder.default)("RecordExpression", ...arguments); } @@ -983,6 +972,22 @@ function moduleExpression(body) { return (0, _builder.default)("ModuleExpression", ...arguments); } +function topicReference() { + return (0, _builder.default)("TopicReference", ...arguments); +} + +function pipelineTopicExpression(expression) { + return (0, _builder.default)("PipelineTopicExpression", ...arguments); +} + +function pipelineBareFunction(callee) { + return (0, _builder.default)("PipelineBareFunction", ...arguments); +} + +function pipelinePrimaryTopicReference() { + return (0, _builder.default)("PipelinePrimaryTopicReference", ...arguments); +} + function tsParameterProperty(parameter) { return (0, _builder.default)("TSParameterProperty", ...arguments); } diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/uppercase.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/uppercase.js index 0dc1f67f0525ad..e2ad08d82aa1f4 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/uppercase.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/uppercase.js @@ -489,6 +489,30 @@ Object.defineProperty(exports, "OptionalCallExpression", { return _index.optionalCallExpression; } }); +Object.defineProperty(exports, "ClassProperty", { + enumerable: true, + get: function () { + return _index.classProperty; + } +}); +Object.defineProperty(exports, "ClassPrivateProperty", { + enumerable: true, + get: function () { + return _index.classPrivateProperty; + } +}); +Object.defineProperty(exports, "ClassPrivateMethod", { + enumerable: true, + get: function () { + return _index.classPrivateMethod; + } +}); +Object.defineProperty(exports, "PrivateName", { + enumerable: true, + get: function () { + return _index.privateName; + } +}); Object.defineProperty(exports, "AnyTypeAnnotation", { enumerable: true, get: function () { @@ -999,42 +1023,6 @@ Object.defineProperty(exports, "BindExpression", { return _index.bindExpression; } }); -Object.defineProperty(exports, "ClassProperty", { - enumerable: true, - get: function () { - return _index.classProperty; - } -}); -Object.defineProperty(exports, "PipelineTopicExpression", { - enumerable: true, - get: function () { - return _index.pipelineTopicExpression; - } -}); -Object.defineProperty(exports, "PipelineBareFunction", { - enumerable: true, - get: function () { - return _index.pipelineBareFunction; - } -}); -Object.defineProperty(exports, "PipelinePrimaryTopicReference", { - enumerable: true, - get: function () { - return _index.pipelinePrimaryTopicReference; - } -}); -Object.defineProperty(exports, "ClassPrivateProperty", { - enumerable: true, - get: function () { - return _index.classPrivateProperty; - } -}); -Object.defineProperty(exports, "ClassPrivateMethod", { - enumerable: true, - get: function () { - return _index.classPrivateMethod; - } -}); Object.defineProperty(exports, "ImportAttribute", { enumerable: true, get: function () { @@ -1059,12 +1047,6 @@ Object.defineProperty(exports, "ExportDefaultSpecifier", { return _index.exportDefaultSpecifier; } }); -Object.defineProperty(exports, "PrivateName", { - enumerable: true, - get: function () { - return _index.privateName; - } -}); Object.defineProperty(exports, "RecordExpression", { enumerable: true, get: function () { @@ -1095,6 +1077,30 @@ Object.defineProperty(exports, "ModuleExpression", { return _index.moduleExpression; } }); +Object.defineProperty(exports, "TopicReference", { + enumerable: true, + get: function () { + return _index.topicReference; + } +}); +Object.defineProperty(exports, "PipelineTopicExpression", { + enumerable: true, + get: function () { + return _index.pipelineTopicExpression; + } +}); +Object.defineProperty(exports, "PipelineBareFunction", { + enumerable: true, + get: function () { + return _index.pipelineBareFunction; + } +}); +Object.defineProperty(exports, "PipelinePrimaryTopicReference", { + enumerable: true, + get: function () { + return _index.pipelinePrimaryTopicReference; + } +}); Object.defineProperty(exports, "TSParameterProperty", { enumerable: true, get: function () { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js index 2c308098e8eb56..5c5900009f6d97 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.TSBASETYPE_TYPES = exports.TSTYPE_TYPES = exports.TSTYPEELEMENT_TYPES = exports.PRIVATE_TYPES = exports.JSX_TYPES = exports.ENUMMEMBER_TYPES = exports.ENUMBODY_TYPES = exports.FLOWPREDICATE_TYPES = exports.FLOWDECLARATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = exports.FLOWTYPE_TYPES = exports.FLOW_TYPES = exports.MODULESPECIFIER_TYPES = exports.EXPORTDECLARATION_TYPES = exports.MODULEDECLARATION_TYPES = exports.CLASS_TYPES = exports.PATTERN_TYPES = exports.UNARYLIKE_TYPES = exports.PROPERTY_TYPES = exports.OBJECTMEMBER_TYPES = exports.METHOD_TYPES = exports.USERWHITESPACABLE_TYPES = exports.IMMUTABLE_TYPES = exports.LITERAL_TYPES = exports.TSENTITYNAME_TYPES = exports.LVAL_TYPES = exports.PATTERNLIKE_TYPES = exports.DECLARATION_TYPES = exports.PUREISH_TYPES = exports.FUNCTIONPARENT_TYPES = exports.FUNCTION_TYPES = exports.FORXSTATEMENT_TYPES = exports.FOR_TYPES = exports.EXPRESSIONWRAPPER_TYPES = exports.WHILE_TYPES = exports.LOOP_TYPES = exports.CONDITIONAL_TYPES = exports.COMPLETIONSTATEMENT_TYPES = exports.TERMINATORLESS_TYPES = exports.STATEMENT_TYPES = exports.BLOCK_TYPES = exports.BLOCKPARENT_TYPES = exports.SCOPABLE_TYPES = exports.BINARY_TYPES = exports.EXPRESSION_TYPES = void 0; +exports.TSBASETYPE_TYPES = exports.TSTYPE_TYPES = exports.TSTYPEELEMENT_TYPES = exports.JSX_TYPES = exports.ENUMMEMBER_TYPES = exports.ENUMBODY_TYPES = exports.FLOWPREDICATE_TYPES = exports.FLOWDECLARATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = exports.FLOWTYPE_TYPES = exports.FLOW_TYPES = exports.PRIVATE_TYPES = exports.MODULESPECIFIER_TYPES = exports.EXPORTDECLARATION_TYPES = exports.MODULEDECLARATION_TYPES = exports.CLASS_TYPES = exports.PATTERN_TYPES = exports.UNARYLIKE_TYPES = exports.PROPERTY_TYPES = exports.OBJECTMEMBER_TYPES = exports.METHOD_TYPES = exports.USERWHITESPACABLE_TYPES = exports.IMMUTABLE_TYPES = exports.LITERAL_TYPES = exports.TSENTITYNAME_TYPES = exports.LVAL_TYPES = exports.PATTERNLIKE_TYPES = exports.DECLARATION_TYPES = exports.PUREISH_TYPES = exports.FUNCTIONPARENT_TYPES = exports.FUNCTION_TYPES = exports.FORXSTATEMENT_TYPES = exports.FOR_TYPES = exports.EXPRESSIONWRAPPER_TYPES = exports.WHILE_TYPES = exports.LOOP_TYPES = exports.CONDITIONAL_TYPES = exports.COMPLETIONSTATEMENT_TYPES = exports.TERMINATORLESS_TYPES = exports.STATEMENT_TYPES = exports.BLOCK_TYPES = exports.BLOCKPARENT_TYPES = exports.SCOPABLE_TYPES = exports.BINARY_TYPES = exports.EXPRESSION_TYPES = void 0; var _definitions = require("../../definitions"); @@ -73,6 +73,8 @@ const EXPORTDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ExportDeclarati exports.EXPORTDECLARATION_TYPES = EXPORTDECLARATION_TYPES; const MODULESPECIFIER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ModuleSpecifier"]; exports.MODULESPECIFIER_TYPES = MODULESPECIFIER_TYPES; +const PRIVATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Private"]; +exports.PRIVATE_TYPES = PRIVATE_TYPES; const FLOW_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Flow"]; exports.FLOW_TYPES = FLOW_TYPES; const FLOWTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowType"]; @@ -89,8 +91,6 @@ const ENUMMEMBER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["EnumMember"]; exports.ENUMMEMBER_TYPES = ENUMMEMBER_TYPES; const JSX_TYPES = _definitions.FLIPPED_ALIAS_KEYS["JSX"]; exports.JSX_TYPES = JSX_TYPES; -const PRIVATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Private"]; -exports.PRIVATE_TYPES = PRIVATE_TYPES; const TSTYPEELEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSTypeElement"]; exports.TSTYPEELEMENT_TYPES = TSTYPEELEMENT_TYPES; const TSTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSType"]; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js index a88d57fd589c36..fc649d4bd3b383 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js @@ -679,6 +679,10 @@ exports.patternLikeCommon = patternLikeCommon; fields: Object.assign({}, patternLikeCommon, { argument: { validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "Pattern", "MemberExpression") + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true } }), @@ -923,6 +927,10 @@ exports.patternLikeCommon = patternLikeCommon; decorators: { validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), optional: true + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true } }) }); @@ -1059,7 +1067,8 @@ exports.patternLikeCommon = patternLikeCommon; fields: { declaration: { validate: (0, _utils.assertNodeType)("FunctionDeclaration", "TSDeclareFunction", "ClassDeclaration", "Expression") - } + }, + exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("value")) } }); (0, _utils.default)("ExportNamedDeclaration", { @@ -1329,7 +1338,8 @@ exports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon; aliases: ["Expression"] }); (0, _utils.default)("TaggedTemplateExpression", { - visitor: ["tag", "quasi"], + visitor: ["tag", "quasi", "typeParameters"], + builder: ["tag", "quasi"], aliases: ["Expression"], fields: { tag: { @@ -1486,4 +1496,95 @@ exports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon; optional: true } } +}); +(0, _utils.default)("ClassProperty", { + visitor: ["key", "value", "typeAnnotation", "decorators"], + builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], + aliases: ["Property"], + fields: Object.assign({}, classMethodOrPropertyCommon, { + value: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + definite: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + variance: { + validate: (0, _utils.assertNodeType)("Variance"), + optional: true + } + }) +}); +(0, _utils.default)("ClassPrivateProperty", { + visitor: ["key", "value", "decorators", "typeAnnotation"], + builder: ["key", "value", "decorators", "static"], + aliases: ["Property", "Private"], + fields: { + key: { + validate: (0, _utils.assertNodeType)("PrivateName") + }, + value: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + definite: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + variance: { + validate: (0, _utils.assertNodeType)("Variance"), + optional: true + } + } +}); +(0, _utils.default)("ClassPrivateMethod", { + builder: ["kind", "key", "params", "body", "static"], + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], + aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"], + fields: Object.assign({}, classMethodOrDeclareMethodCommon, functionTypeAnnotationCommon, { + key: { + validate: (0, _utils.assertNodeType)("PrivateName") + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + } + }) +}); +(0, _utils.default)("PrivateName", { + visitor: ["id"], + aliases: ["Private"], + fields: { + id: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } }); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/experimental.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/experimental.js index 8fead2353a5585..6a8e14ea7e06ef 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/experimental.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/experimental.js @@ -2,8 +2,6 @@ var _utils = require("./utils"); -var _core = require("./core"); - (0, _utils.default)("ArgumentPlaceholder", {}); (0, _utils.default)("BindExpression", { visitor: ["object", "callee"], @@ -28,93 +26,6 @@ var _core = require("./core"); } } }); -(0, _utils.default)("ClassProperty", { - visitor: ["key", "value", "typeAnnotation", "decorators"], - builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], - aliases: ["Property"], - fields: Object.assign({}, _core.classMethodOrPropertyCommon, { - value: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - definite: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - readonly: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - declare: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - }) -}); -(0, _utils.default)("PipelineTopicExpression", { - builder: ["expression"], - visitor: ["expression"], - fields: { - expression: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("PipelineBareFunction", { - builder: ["callee"], - visitor: ["callee"], - fields: { - callee: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("PipelinePrimaryTopicReference", { - aliases: ["Expression"] -}); -(0, _utils.default)("ClassPrivateProperty", { - visitor: ["key", "value", "decorators"], - builder: ["key", "value", "decorators", "static"], - aliases: ["Property", "Private"], - fields: { - key: { - validate: (0, _utils.assertNodeType)("PrivateName") - }, - value: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - } - } -}); -(0, _utils.default)("ClassPrivateMethod", { - builder: ["kind", "key", "params", "body", "static"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"], - fields: Object.assign({}, _core.classMethodOrDeclareMethodCommon, _core.functionTypeAnnotationCommon, { - key: { - validate: (0, _utils.assertNodeType)("PrivateName") - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }) -}); (0, _utils.default)("ImportAttribute", { visitor: ["key", "value"], fields: { @@ -157,15 +68,6 @@ var _core = require("./core"); } } }); -(0, _utils.default)("PrivateName", { - visitor: ["id"], - aliases: ["Private"], - fields: { - id: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); (0, _utils.default)("RecordExpression", { visitor: ["properties"], aliases: ["Expression"], @@ -211,4 +113,30 @@ var _core = require("./core"); } }, aliases: ["Expression"] +}); +(0, _utils.default)("TopicReference", { + aliases: ["Expression"] +}); +(0, _utils.default)("PipelineTopicExpression", { + builder: ["expression"], + visitor: ["expression"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Expression"] +}); +(0, _utils.default)("PipelineBareFunction", { + builder: ["callee"], + visitor: ["callee"], + fields: { + callee: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Expression"] +}); +(0, _utils.default)("PipelinePrimaryTopicReference", { + aliases: ["Expression"] }); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js index f7bd8189d0c93a..e658a91d5484d2 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js @@ -91,7 +91,8 @@ defineInterfaceishType("DeclareInterface"); fields: { id: (0, _utils.validateType)("Identifier"), typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - supertype: (0, _utils.validateOptionalType)("FlowType") + supertype: (0, _utils.validateOptionalType)("FlowType"), + impltype: (0, _utils.validateOptionalType)("FlowType") } }); (0, _utils.default)("DeclareVariable", { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js index 974696cdb50b17..7abbf046d767c1 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js @@ -4,6 +4,8 @@ var _utils = require("./utils"); var _core = require("./core"); +var _is = require("../validators/is"); + const bool = (0, _utils.assertValueType)("boolean"); const tSFunctionTypeAnnotationCommon = { returnType: { @@ -29,6 +31,14 @@ const tSFunctionTypeAnnotationCommon = { }, parameter: { validate: (0, _utils.assertNodeType)("Identifier", "AssignmentPattern") + }, + override: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true } } }); @@ -72,7 +82,10 @@ const namedTypeElementCommon = { fields: Object.assign({}, namedTypeElementCommon, { readonly: (0, _utils.validateOptional)(bool), typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), - initializer: (0, _utils.validateOptionalType)("Expression") + initializer: (0, _utils.validateOptionalType)("Expression"), + kind: { + validate: (0, _utils.assertOneOf)("get", "set") + } }) }); (0, _utils.default)("TSMethodSignature", { @@ -257,7 +270,25 @@ const unionOrIntersection = { aliases: ["TSType", "TSBaseType"], visitor: ["literal"], fields: { - literal: (0, _utils.validateType)(["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral"]) + literal: { + validate: function () { + const unaryExpression = (0, _utils.assertNodeType)("NumericLiteral", "BigIntLiteral"); + const unaryOperator = (0, _utils.assertOneOf)("-"); + const literal = (0, _utils.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral"); + + function validator(parent, key, node) { + if ((0, _is.default)("UnaryExpression", node)) { + unaryOperator(node, "operator", node.operator); + unaryExpression(node, "argument", node.argument); + } else { + literal(parent, key, node); + } + } + + validator.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "UnaryExpression"]; + return validator; + }() + } } }); (0, _utils.default)("TSExpressionWithTypeArguments", { @@ -361,7 +392,11 @@ const unionOrIntersection = { fields: { isExport: (0, _utils.validate)(bool), id: (0, _utils.validateType)("Identifier"), - moduleReference: (0, _utils.validateType)(["TSEntityName", "TSExternalModuleReference"]) + moduleReference: (0, _utils.validateType)(["TSEntityName", "TSExternalModuleReference"]), + importKind: { + validate: (0, _utils.assertOneOf)("type", "value"), + optional: true + } } }); (0, _utils.default)("TSExternalModuleReference", { diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js.flow b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js.flow index 587c3cddffa0be..315ab9c9e8a01d 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js.flow +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js.flow @@ -285,6 +285,7 @@ declare class BabelNodeRestElement extends BabelNode { type: "RestElement"; argument: BabelNodeLVal; decorators?: Array; + optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } @@ -383,6 +384,7 @@ declare class BabelNodeArrayPattern extends BabelNode { type: "ArrayPattern"; elements: Array; decorators?: Array; + optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } @@ -436,6 +438,7 @@ declare class BabelNodeExportAllDeclaration extends BabelNode { declare class BabelNodeExportDefaultDeclaration extends BabelNode { type: "ExportDefaultDeclaration"; declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression; + exportKind?: "value"; } declare class BabelNodeExportNamedDeclaration extends BabelNode { @@ -587,6 +590,58 @@ declare class BabelNodeOptionalCallExpression extends BabelNode { typeParameters?: BabelNodeTSTypeParameterInstantiation; } +declare class BabelNodeClassProperty extends BabelNode { + type: "ClassProperty"; + key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; + value?: BabelNodeExpression; + typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + decorators?: Array; + computed?: boolean; + abstract?: boolean; + accessibility?: "public" | "private" | "protected"; + declare?: boolean; + definite?: boolean; + optional?: boolean; + override?: boolean; + readonly?: boolean; + variance?: BabelNodeVariance; +} + +declare class BabelNodeClassPrivateProperty extends BabelNode { + type: "ClassPrivateProperty"; + key: BabelNodePrivateName; + value?: BabelNodeExpression; + decorators?: Array; + definite?: boolean; + readonly?: boolean; + typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + variance?: BabelNodeVariance; +} + +declare class BabelNodeClassPrivateMethod extends BabelNode { + type: "ClassPrivateMethod"; + kind?: "get" | "set" | "method" | "constructor"; + key: BabelNodePrivateName; + params: Array; + body: BabelNodeBlockStatement; + abstract?: boolean; + access?: "public" | "private" | "protected"; + accessibility?: "public" | "private" | "protected"; + async?: boolean; + computed?: boolean; + decorators?: Array; + generator?: boolean; + optional?: boolean; + override?: boolean; + returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; +} + +declare class BabelNodePrivateName extends BabelNode { + type: "PrivateName"; + id: BabelNodeIdentifier; +} + declare class BabelNodeAnyTypeAnnotation extends BabelNode { type: "AnyTypeAnnotation"; } @@ -661,6 +716,7 @@ declare class BabelNodeDeclareOpaqueType extends BabelNode { id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; supertype?: BabelNodeFlowType; + impltype?: BabelNodeFlowType; } declare class BabelNodeDeclareVariable extends BabelNode { @@ -1075,63 +1131,6 @@ declare class BabelNodeBindExpression extends BabelNode { callee: BabelNodeExpression; } -declare class BabelNodeClassProperty extends BabelNode { - type: "ClassProperty"; - key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; - value?: BabelNodeExpression; - typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; - decorators?: Array; - computed?: boolean; - abstract?: boolean; - accessibility?: "public" | "private" | "protected"; - declare?: boolean; - definite?: boolean; - optional?: boolean; - override?: boolean; - readonly?: boolean; -} - -declare class BabelNodePipelineTopicExpression extends BabelNode { - type: "PipelineTopicExpression"; - expression: BabelNodeExpression; -} - -declare class BabelNodePipelineBareFunction extends BabelNode { - type: "PipelineBareFunction"; - callee: BabelNodeExpression; -} - -declare class BabelNodePipelinePrimaryTopicReference extends BabelNode { - type: "PipelinePrimaryTopicReference"; -} - -declare class BabelNodeClassPrivateProperty extends BabelNode { - type: "ClassPrivateProperty"; - key: BabelNodePrivateName; - value?: BabelNodeExpression; - decorators?: Array; - typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; -} - -declare class BabelNodeClassPrivateMethod extends BabelNode { - type: "ClassPrivateMethod"; - kind?: "get" | "set" | "method" | "constructor"; - key: BabelNodePrivateName; - params: Array; - body: BabelNodeBlockStatement; - abstract?: boolean; - access?: "public" | "private" | "protected"; - accessibility?: "public" | "private" | "protected"; - async?: boolean; - computed?: boolean; - decorators?: Array; - generator?: boolean; - optional?: boolean; - override?: boolean; - returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; - typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; -} - declare class BabelNodeImportAttribute extends BabelNode { type: "ImportAttribute"; key: BabelNodeIdentifier | BabelNodeStringLiteral; @@ -1154,11 +1153,6 @@ declare class BabelNodeExportDefaultSpecifier extends BabelNode { exported: BabelNodeIdentifier; } -declare class BabelNodePrivateName extends BabelNode { - type: "PrivateName"; - id: BabelNodeIdentifier; -} - declare class BabelNodeRecordExpression extends BabelNode { type: "RecordExpression"; properties: Array; @@ -1184,10 +1178,30 @@ declare class BabelNodeModuleExpression extends BabelNode { body: BabelNodeProgram; } +declare class BabelNodeTopicReference extends BabelNode { + type: "TopicReference"; +} + +declare class BabelNodePipelineTopicExpression extends BabelNode { + type: "PipelineTopicExpression"; + expression: BabelNodeExpression; +} + +declare class BabelNodePipelineBareFunction extends BabelNode { + type: "PipelineBareFunction"; + callee: BabelNodeExpression; +} + +declare class BabelNodePipelinePrimaryTopicReference extends BabelNode { + type: "PipelinePrimaryTopicReference"; +} + declare class BabelNodeTSParameterProperty extends BabelNode { type: "TSParameterProperty"; parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern; accessibility?: "public" | "private" | "protected"; + decorators?: Array; + override?: boolean; readonly?: boolean; } @@ -1246,6 +1260,7 @@ declare class BabelNodeTSPropertySignature extends BabelNode { typeAnnotation?: BabelNodeTSTypeAnnotation; initializer?: BabelNodeExpression; computed?: boolean; + kind: "get" | "set"; optional?: boolean; readonly?: boolean; } @@ -1440,7 +1455,7 @@ declare class BabelNodeTSMappedType extends BabelNode { declare class BabelNodeTSLiteralType extends BabelNode { type: "TSLiteralType"; - literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral; + literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeUnaryExpression; } declare class BabelNodeTSExpressionWithTypeArguments extends BabelNode { @@ -1520,6 +1535,7 @@ declare class BabelNodeTSImportEqualsDeclaration extends BabelNode { type: "TSImportEqualsDeclaration"; id: BabelNodeIdentifier; moduleReference: BabelNodeTSEntityName | BabelNodeTSExternalModuleReference; + importKind?: "type" | "value"; isExport: boolean; } @@ -1564,7 +1580,7 @@ declare class BabelNodeTSTypeParameter extends BabelNode { name: string; } -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 | BabelNodePipelinePrimaryTopicReference | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | 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 | 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; @@ -1597,6 +1613,7 @@ type BabelNodeClass = BabelNodeClassExpression | BabelNodeClassDeclaration; type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration; type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration; type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportNamespaceSpecifier | BabelNodeExportDefaultSpecifier; +type BabelNodePrivate = BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName; type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType; type BabelNodeFlowType = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType; type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation; @@ -1605,7 +1622,6 @@ type BabelNodeFlowPredicate = BabelNodeDeclaredPredicate | BabelNodeInferredPred type BabelNodeEnumBody = BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody; type BabelNodeEnumMember = BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember; type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment; -type BabelNodePrivate = BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName; 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; @@ -1694,6 +1710,10 @@ declare module "@babel/types" { declare export function exportNamespaceSpecifier(exported: BabelNodeIdentifier): BabelNodeExportNamespaceSpecifier; declare export function optionalMemberExpression(object: BabelNodeExpression, property: BabelNodeExpression | BabelNodeIdentifier, computed?: boolean, optional: boolean): BabelNodeOptionalMemberExpression; declare export function optionalCallExpression(callee: BabelNodeExpression, _arguments: Array, optional: boolean): BabelNodeOptionalCallExpression; + declare export function classProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, _static?: boolean): BabelNodeClassProperty; + declare export function classPrivateProperty(key: BabelNodePrivateName, value?: BabelNodeExpression, decorators?: Array, _static: any): BabelNodeClassPrivateProperty; + declare export function classPrivateMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodePrivateName, params: Array, body: BabelNodeBlockStatement, _static?: boolean): BabelNodeClassPrivateMethod; + declare export function privateName(id: BabelNodeIdentifier): BabelNodePrivateName; declare export function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; declare export function arrayTypeAnnotation(elementType: BabelNodeFlowType): BabelNodeArrayTypeAnnotation; declare export function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; @@ -1779,22 +1799,19 @@ declare module "@babel/types" { declare export function v8IntrinsicIdentifier(name: string): BabelNodeV8IntrinsicIdentifier; declare export function argumentPlaceholder(): BabelNodeArgumentPlaceholder; declare export function bindExpression(object: BabelNodeExpression, callee: BabelNodeExpression): BabelNodeBindExpression; - declare export function classProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, _static?: boolean): BabelNodeClassProperty; - declare export function pipelineTopicExpression(expression: BabelNodeExpression): BabelNodePipelineTopicExpression; - declare export function pipelineBareFunction(callee: BabelNodeExpression): BabelNodePipelineBareFunction; - declare export function pipelinePrimaryTopicReference(): BabelNodePipelinePrimaryTopicReference; - declare export function classPrivateProperty(key: BabelNodePrivateName, value?: BabelNodeExpression, decorators?: Array, _static: any): BabelNodeClassPrivateProperty; - declare export function classPrivateMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodePrivateName, params: Array, body: BabelNodeBlockStatement, _static?: boolean): BabelNodeClassPrivateMethod; declare export function importAttribute(key: BabelNodeIdentifier | BabelNodeStringLiteral, value: BabelNodeStringLiteral): BabelNodeImportAttribute; declare export function decorator(expression: BabelNodeExpression): BabelNodeDecorator; declare export function doExpression(body: BabelNodeBlockStatement, async?: boolean): BabelNodeDoExpression; declare export function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier; - declare export function privateName(id: BabelNodeIdentifier): BabelNodePrivateName; declare export function recordExpression(properties: Array): BabelNodeRecordExpression; declare export function tupleExpression(elements?: Array): BabelNodeTupleExpression; declare export function decimalLiteral(value: string): BabelNodeDecimalLiteral; declare export function staticBlock(body: Array): BabelNodeStaticBlock; declare export function moduleExpression(body: BabelNodeProgram): BabelNodeModuleExpression; + declare export function topicReference(): BabelNodeTopicReference; + declare export function pipelineTopicExpression(expression: BabelNodeExpression): BabelNodePipelineTopicExpression; + declare export function pipelineBareFunction(callee: BabelNodeExpression): BabelNodePipelineBareFunction; + declare export function pipelinePrimaryTopicReference(): BabelNodePipelinePrimaryTopicReference; declare export function tsParameterProperty(parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern): BabelNodeTSParameterProperty; declare export function tsDeclareFunction(id?: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareFunction; declare export function tsDeclareMethod(decorators?: Array, key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareMethod; @@ -1837,7 +1854,7 @@ declare module "@babel/types" { declare export function tsTypeOperator(typeAnnotation: BabelNodeTSType): BabelNodeTSTypeOperator; declare export function tsIndexedAccessType(objectType: BabelNodeTSType, indexType: BabelNodeTSType): BabelNodeTSIndexedAccessType; declare export function tsMappedType(typeParameter: BabelNodeTSTypeParameter, typeAnnotation?: BabelNodeTSType, nameType?: BabelNodeTSType): BabelNodeTSMappedType; - declare export function tsLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral): BabelNodeTSLiteralType; + declare export function tsLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeUnaryExpression): BabelNodeTSLiteralType; declare export function tsExpressionWithTypeArguments(expression: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSExpressionWithTypeArguments; declare export function tsInterfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, _extends?: Array, body: BabelNodeTSInterfaceBody): BabelNodeTSInterfaceDeclaration; declare export function tsInterfaceBody(body: Array): BabelNodeTSInterfaceBody; @@ -2020,6 +2037,14 @@ declare module "@babel/types" { declare export function assertOptionalMemberExpression(node: ?Object, opts?: ?Object): void declare export function isOptionalCallExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeOptionalCallExpression) declare export function assertOptionalCallExpression(node: ?Object, opts?: ?Object): void + declare export function isClassProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassProperty) + declare export function assertClassProperty(node: ?Object, opts?: ?Object): void + declare export function isClassPrivateProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassPrivateProperty) + declare export function assertClassPrivateProperty(node: ?Object, opts?: ?Object): void + declare export function isClassPrivateMethod(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassPrivateMethod) + declare export function assertClassPrivateMethod(node: ?Object, opts?: ?Object): void + declare export function isPrivateName(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePrivateName) + declare export function assertPrivateName(node: ?Object, opts?: ?Object): void declare export function isAnyTypeAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeAnyTypeAnnotation) declare export function assertAnyTypeAnnotation(node: ?Object, opts?: ?Object): void declare export function isArrayTypeAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeArrayTypeAnnotation) @@ -2190,18 +2215,6 @@ declare module "@babel/types" { declare export function assertArgumentPlaceholder(node: ?Object, opts?: ?Object): void declare export function isBindExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBindExpression) declare export function assertBindExpression(node: ?Object, opts?: ?Object): void - declare export function isClassProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassProperty) - declare export function assertClassProperty(node: ?Object, opts?: ?Object): void - declare export function isPipelineTopicExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelineTopicExpression) - declare export function assertPipelineTopicExpression(node: ?Object, opts?: ?Object): void - declare export function isPipelineBareFunction(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelineBareFunction) - declare export function assertPipelineBareFunction(node: ?Object, opts?: ?Object): void - declare export function isPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelinePrimaryTopicReference) - declare export function assertPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): void - declare export function isClassPrivateProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassPrivateProperty) - declare export function assertClassPrivateProperty(node: ?Object, opts?: ?Object): void - declare export function isClassPrivateMethod(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassPrivateMethod) - declare export function assertClassPrivateMethod(node: ?Object, opts?: ?Object): void declare export function isImportAttribute(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportAttribute) declare export function assertImportAttribute(node: ?Object, opts?: ?Object): void declare export function isDecorator(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDecorator) @@ -2210,8 +2223,6 @@ declare module "@babel/types" { declare export function assertDoExpression(node: ?Object, opts?: ?Object): void declare export function isExportDefaultSpecifier(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportDefaultSpecifier) declare export function assertExportDefaultSpecifier(node: ?Object, opts?: ?Object): void - declare export function isPrivateName(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePrivateName) - declare export function assertPrivateName(node: ?Object, opts?: ?Object): void declare export function isRecordExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeRecordExpression) declare export function assertRecordExpression(node: ?Object, opts?: ?Object): void declare export function isTupleExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTupleExpression) @@ -2222,6 +2233,14 @@ declare module "@babel/types" { declare export function assertStaticBlock(node: ?Object, opts?: ?Object): void declare export function isModuleExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeModuleExpression) declare export function assertModuleExpression(node: ?Object, opts?: ?Object): void + declare export function isTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTopicReference) + declare export function assertTopicReference(node: ?Object, opts?: ?Object): void + declare export function isPipelineTopicExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelineTopicExpression) + declare export function assertPipelineTopicExpression(node: ?Object, opts?: ?Object): void + declare export function isPipelineBareFunction(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelineBareFunction) + declare export function assertPipelineBareFunction(node: ?Object, opts?: ?Object): void + declare export function isPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodePipelinePrimaryTopicReference) + declare export function assertPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): void declare export function isTSParameterProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSParameterProperty) declare export function assertTSParameterProperty(node: ?Object, opts?: ?Object): void declare export function isTSDeclareFunction(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSDeclareFunction) @@ -2414,6 +2433,8 @@ declare module "@babel/types" { declare export function assertExportDeclaration(node: ?Object, opts?: ?Object): void declare export function isModuleSpecifier(node: ?Object, opts?: ?Object): boolean declare export function assertModuleSpecifier(node: ?Object, opts?: ?Object): void + declare export function isPrivate(node: ?Object, opts?: ?Object): boolean + declare export function assertPrivate(node: ?Object, opts?: ?Object): void declare export function isFlow(node: ?Object, opts?: ?Object): boolean declare export function assertFlow(node: ?Object, opts?: ?Object): void declare export function isFlowType(node: ?Object, opts?: ?Object): boolean @@ -2430,8 +2451,6 @@ declare module "@babel/types" { declare export function assertEnumMember(node: ?Object, opts?: ?Object): void declare export function isJSX(node: ?Object, opts?: ?Object): boolean declare export function assertJSX(node: ?Object, opts?: ?Object): void - declare export function isPrivate(node: ?Object, opts?: ?Object): boolean - declare export function assertPrivate(node: ?Object, opts?: ?Object): void declare export function isTSTypeElement(node: ?Object, opts?: ?Object): boolean declare export function assertTSTypeElement(node: ?Object, opts?: ?Object): void declare export function isTSType(node: ?Object, opts?: ?Object): boolean diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js index b523c3c3274a2f..0d54c9bd95cc62 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js @@ -84,6 +84,10 @@ exports.isBigIntLiteral = isBigIntLiteral; exports.isExportNamespaceSpecifier = isExportNamespaceSpecifier; exports.isOptionalMemberExpression = isOptionalMemberExpression; exports.isOptionalCallExpression = isOptionalCallExpression; +exports.isClassProperty = isClassProperty; +exports.isClassPrivateProperty = isClassPrivateProperty; +exports.isClassPrivateMethod = isClassPrivateMethod; +exports.isPrivateName = isPrivateName; exports.isAnyTypeAnnotation = isAnyTypeAnnotation; exports.isArrayTypeAnnotation = isArrayTypeAnnotation; exports.isBooleanTypeAnnotation = isBooleanTypeAnnotation; @@ -169,22 +173,19 @@ exports.isPlaceholder = isPlaceholder; exports.isV8IntrinsicIdentifier = isV8IntrinsicIdentifier; exports.isArgumentPlaceholder = isArgumentPlaceholder; exports.isBindExpression = isBindExpression; -exports.isClassProperty = isClassProperty; -exports.isPipelineTopicExpression = isPipelineTopicExpression; -exports.isPipelineBareFunction = isPipelineBareFunction; -exports.isPipelinePrimaryTopicReference = isPipelinePrimaryTopicReference; -exports.isClassPrivateProperty = isClassPrivateProperty; -exports.isClassPrivateMethod = isClassPrivateMethod; exports.isImportAttribute = isImportAttribute; exports.isDecorator = isDecorator; exports.isDoExpression = isDoExpression; exports.isExportDefaultSpecifier = isExportDefaultSpecifier; -exports.isPrivateName = isPrivateName; exports.isRecordExpression = isRecordExpression; exports.isTupleExpression = isTupleExpression; exports.isDecimalLiteral = isDecimalLiteral; exports.isStaticBlock = isStaticBlock; exports.isModuleExpression = isModuleExpression; +exports.isTopicReference = isTopicReference; +exports.isPipelineTopicExpression = isPipelineTopicExpression; +exports.isPipelineBareFunction = isPipelineBareFunction; +exports.isPipelinePrimaryTopicReference = isPipelinePrimaryTopicReference; exports.isTSParameterProperty = isTSParameterProperty; exports.isTSDeclareFunction = isTSDeclareFunction; exports.isTSDeclareMethod = isTSDeclareMethod; @@ -281,6 +282,7 @@ exports.isClass = isClass; exports.isModuleDeclaration = isModuleDeclaration; exports.isExportDeclaration = isExportDeclaration; exports.isModuleSpecifier = isModuleSpecifier; +exports.isPrivate = isPrivate; exports.isFlow = isFlow; exports.isFlowType = isFlowType; exports.isFlowBaseAnnotation = isFlowBaseAnnotation; @@ -289,7 +291,6 @@ exports.isFlowPredicate = isFlowPredicate; exports.isEnumBody = isEnumBody; exports.isEnumMember = isEnumMember; exports.isJSX = isJSX; -exports.isPrivate = isPrivate; exports.isTSTypeElement = isTSTypeElement; exports.isTSType = isTSType; exports.isTSBaseType = isTSBaseType; @@ -1515,6 +1516,66 @@ function isOptionalCallExpression(node, opts) { return false; } +function isClassProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if (nodeType === "ClassProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + +function isClassPrivateProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if (nodeType === "ClassPrivateProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + +function isClassPrivateMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if (nodeType === "ClassPrivateMethod") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + +function isPrivateName(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if (nodeType === "PrivateName") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + function isAnyTypeAnnotation(node, opts) { if (!node) return false; const nodeType = node.type; @@ -2790,56 +2851,11 @@ function isBindExpression(node, opts) { return false; } -function isClassProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelineTopicExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PipelineTopicExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelineBareFunction(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PipelineBareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelinePrimaryTopicReference(node, opts) { +function isImportAttribute(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "PipelinePrimaryTopicReference") { + if (nodeType === "ImportAttribute") { if (typeof opts === "undefined") { return true; } else { @@ -2850,11 +2866,11 @@ function isPipelinePrimaryTopicReference(node, opts) { return false; } -function isClassPrivateProperty(node, opts) { +function isDecorator(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "ClassPrivateProperty") { + if (nodeType === "Decorator") { if (typeof opts === "undefined") { return true; } else { @@ -2865,11 +2881,11 @@ function isClassPrivateProperty(node, opts) { return false; } -function isClassPrivateMethod(node, opts) { +function isDoExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "ClassPrivateMethod") { + if (nodeType === "DoExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2880,11 +2896,11 @@ function isClassPrivateMethod(node, opts) { return false; } -function isImportAttribute(node, opts) { +function isExportDefaultSpecifier(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "ImportAttribute") { + if (nodeType === "ExportDefaultSpecifier") { if (typeof opts === "undefined") { return true; } else { @@ -2895,11 +2911,11 @@ function isImportAttribute(node, opts) { return false; } -function isDecorator(node, opts) { +function isRecordExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "Decorator") { + if (nodeType === "RecordExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2910,11 +2926,11 @@ function isDecorator(node, opts) { return false; } -function isDoExpression(node, opts) { +function isTupleExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "DoExpression") { + if (nodeType === "TupleExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2925,11 +2941,11 @@ function isDoExpression(node, opts) { return false; } -function isExportDefaultSpecifier(node, opts) { +function isDecimalLiteral(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "ExportDefaultSpecifier") { + if (nodeType === "DecimalLiteral") { if (typeof opts === "undefined") { return true; } else { @@ -2940,11 +2956,11 @@ function isExportDefaultSpecifier(node, opts) { return false; } -function isPrivateName(node, opts) { +function isStaticBlock(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "PrivateName") { + if (nodeType === "StaticBlock") { if (typeof opts === "undefined") { return true; } else { @@ -2955,11 +2971,11 @@ function isPrivateName(node, opts) { return false; } -function isRecordExpression(node, opts) { +function isModuleExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "RecordExpression") { + if (nodeType === "ModuleExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2970,11 +2986,11 @@ function isRecordExpression(node, opts) { return false; } -function isTupleExpression(node, opts) { +function isTopicReference(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "TupleExpression") { + if (nodeType === "TopicReference") { if (typeof opts === "undefined") { return true; } else { @@ -2985,11 +3001,11 @@ function isTupleExpression(node, opts) { return false; } -function isDecimalLiteral(node, opts) { +function isPipelineTopicExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "DecimalLiteral") { + if (nodeType === "PipelineTopicExpression") { if (typeof opts === "undefined") { return true; } else { @@ -3000,11 +3016,11 @@ function isDecimalLiteral(node, opts) { return false; } -function isStaticBlock(node, opts) { +function isPipelineBareFunction(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "StaticBlock") { + if (nodeType === "PipelineBareFunction") { if (typeof opts === "undefined") { return true; } else { @@ -3015,11 +3031,11 @@ function isStaticBlock(node, opts) { return false; } -function isModuleExpression(node, opts) { +function isPipelinePrimaryTopicReference(node, opts) { if (!node) return false; const nodeType = node.type; - if (nodeType === "ModuleExpression") { + if (nodeType === "PipelinePrimaryTopicReference") { if (typeof opts === "undefined") { return true; } else { @@ -3979,7 +3995,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 || "PipelinePrimaryTopicReference" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === 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 || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { if (typeof opts === "undefined") { return true; } else { @@ -4470,6 +4486,21 @@ function isModuleSpecifier(node, opts) { return false; } +function isPrivate(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if ("ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + function isFlow(node, opts) { if (!node) return false; const nodeType = node.type; @@ -4590,21 +4621,6 @@ function isJSX(node, opts) { return false; } -function isPrivate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - function isTSTypeElement(node, opts) { if (!node) return false; const nodeType = node.type; diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/package.json b/tools/node_modules/@babel/core/node_modules/@babel/types/package.json index 7c45ea375b2c97..764e99f0816dd0 100644 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/package.json +++ b/tools/node_modules/@babel/core/node_modules/@babel/types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.14.5", + "version": "7.15.0", "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", @@ -24,13 +24,14 @@ } }, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "7.14.5", - "@babel/parser": "7.14.5", - "chalk": "^4.1.0" + "@babel/generator": "7.15.0", + "@babel/parser": "7.15.0", + "chalk": "^4.1.0", + "glob": "^7.1.7" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/README.md b/tools/node_modules/@babel/core/node_modules/browserslist/README.md index c12fb02021d046..4aa591c188c370 100644 --- a/tools/node_modules/@babel/core/node_modules/browserslist/README.md +++ b/tools/node_modules/@babel/core/node_modules/browserslist/README.md @@ -213,7 +213,7 @@ intersection of all the previous queries: `last 1 version or chrome > 75 and > 1%` will select (`browser last version` or `Chrome since 76`) and `more than 1% marketshare`. -There is 3 different ways to combine queries as depicted below. First you start +There are 3 different ways to combine queries as depicted below. First you start with a single query and then we combine the queries to get our final list. Obviously you can *not* start with a `not` combiner, since there is no left-hand @@ -235,7 +235,8 @@ You can specify the browser and Node.js versions by queries (case insensitive): * `defaults`: Browserslist’s default browsers (`> 0.5%, last 2 versions, Firefox ESR, not dead`). -* `> 5%`: browsers versions selected by global usage statistics. +* By usage statistics: + * `> 5%`: browsers versions selected by global usage statistics. `>=`, `<` and `<=` work too. * `> 5% in US`: uses USA usage statistics. It accepts [two-letter country code]. @@ -247,19 +248,22 @@ You can specify the browser and Node.js versions by queries (case insensitive): * `cover 99.5%`: most popular browsers that provide coverage. * `cover 99.5% in US`: same as above, with [two-letter country code]. * `cover 99.5% in my stats`: uses [custom usage data]. -* `dead`: browsers without official support or updates for 24 months. - Right now it is `IE 10`, `IE_Mob 11`, `BlackBerry 10`, `BlackBerry 7`, - `Samsung 4` and `OperaMobile 12.1`. -* `last 2 versions`: the last 2 versions for *each* browser. +* Last versions: + * `last 2 versions`: the last 2 versions for *each* browser. * `last 2 Chrome versions`: the last 2 versions of Chrome browser. * `last 2 major versions` or `last 2 iOS major versions`: all minor/patch releases of last 2 major versions. -* `node 10` and `node 10.4`: selects latest Node.js `10.x.x` +* `dead`: browsers without official support or updates for 24 months. + Right now it is `IE 10`, `IE_Mob 11`, `BlackBerry 10`, `BlackBerry 7`, + `Samsung 4` and `OperaMobile 12.1`. +* Node.js versions: + * `node 10` and `node 10.4`: selects latest Node.js `10.x.x` or `10.4.x` release. * `current node`: Node.js version used by Browserslist right now. * `maintained node versions`: all Node.js versions, which are [still maintained] by Node.js Foundation. -* `iOS 7`: the iOS browser version 7 directly. +* Browsers versions: + * `iOS 7`: the iOS browser version 7 directly. * `Firefox > 20`: versions of Firefox newer than 20. `>=`, `<` and `<=` work too. It also works with Node.js. * `ie 6-8`: selects an inclusive range of versions. diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/index.js b/tools/node_modules/@babel/core/node_modules/browserslist/index.js index 56ac717b4bd5e1..e1785be08aac13 100644 --- a/tools/node_modules/@babel/core/node_modules/browserslist/index.js +++ b/tools/node_modules/@babel/core/node_modules/browserslist/index.js @@ -1039,7 +1039,7 @@ var QUERIES = [ { regexp: /^(firefox|ff|fx)\s+esr$/i, select: function () { - return ['firefox 78'] + return ['firefox 78', 'firefox 91'] } }, { diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/node.js b/tools/node_modules/@babel/core/node_modules/browserslist/node.js index 6a3c7774cbe74e..e6bdf79d866351 100644 --- a/tools/node_modules/@babel/core/node_modules/browserslist/node.js +++ b/tools/node_modules/@babel/core/node_modules/browserslist/node.js @@ -113,6 +113,9 @@ function latestReleaseTime (agents) { } function normalizeStats (data, stats) { + if (!data) { + data = {} + } if (stats && 'dataByBrowser' in stats) { stats = stats.dataByBrowser } @@ -372,9 +375,8 @@ module.exports = { if (latest !== 0 && latest < halfYearAgo) { console.warn( 'Browserslist: caniuse-lite is outdated. Please run:\n' + - 'npx browserslist@latest --update-db\n' + - '\n' + - 'Why you should do it regularly:\n' + + ' npx browserslist@latest --update-db\n' + + ' Why you should do it regularly: ' + 'https://github.com/browserslist/browserslist#browsers-data-updating' ) } diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/package.json b/tools/node_modules/@babel/core/node_modules/browserslist/package.json index 5deec79792de70..fdec08edf47940 100644 --- a/tools/node_modules/@babel/core/node_modules/browserslist/package.json +++ b/tools/node_modules/@babel/core/node_modules/browserslist/package.json @@ -1,6 +1,6 @@ { "name": "browserslist", - "version": "4.16.6", + "version": "4.16.8", "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "keywords": [ "caniuse", @@ -15,11 +15,11 @@ "license": "MIT", "repository": "browserslist/browserslist", "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001251", + "colorette": "^1.3.0", + "electron-to-chromium": "^1.3.811", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^1.1.75" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js index 9f3aeb24c552e5..a5fe31da6d76b3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js @@ -1 +1 @@ -module.exports={A:{A:{J:0.0131217,D:0.00621152,E:0.0199047,F:0.0928884,A:0.0132698,B:0.849265,gB:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","gB","J","D","E","F","A","B","","",""],E:"IE",F:{gB:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.008408,K:0.004267,L:0.004204,G:0.004204,M:0.008408,N:0.033632,O:0.092488,R:0,S:0.004298,T:0.00944,U:0.00415,V:0.008408,W:0.008408,X:0.012612,Y:0.012612,Z:0.016816,P:0.079876,a:3.01006,H:0.2102},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","R","S","T","U","V","W","X","Y","Z","P","a","H","","",""],E:"Edge",F:{C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,R:1579046400,S:1581033600,T:1586736000,U:1590019200,V:1594857600,W:1598486400,X:1602201600,Y:1605830400,Z:1611360000,P:1614816000,a:1618358400,H:1622073600},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.058856,"1":0.004204,"2":0.004204,"3":0.004525,"4":0.004271,"5":0.008408,"6":0.004538,"7":0.004267,"8":0.004204,"9":0.071468,hB:0.012813,XB:0.004271,I:0.02102,b:0.004879,J:0.020136,D:0.005725,E:0.004525,F:0.00533,A:0.004283,B:0.008408,C:0.004471,K:0.004486,L:0.00453,G:0.008542,M:0.004417,N:0.004425,O:0.008542,c:0.004443,d:0.004283,e:0.008542,f:0.013698,g:0.008542,h:0.008786,i:0.017084,j:0.004317,k:0.004393,l:0.004418,m:0.008834,n:0.008542,o:0.008928,p:0.004471,q:0.009284,r:0.004707,s:0.009076,t:0.004425,u:0.004783,v:0.004271,w:0.004783,x:0.00487,y:0.005029,z:0.0047,AB:0.004335,BB:0.004204,CB:0.004204,DB:0.012612,EB:0.004425,FB:0.004204,YB:0.004204,GB:0.008408,ZB:0.00472,Q:0.004425,HB:0.02102,IB:0.00415,JB:0.004267,KB:0.008408,LB:0.004267,MB:0.012612,NB:0.00415,OB:0.004204,PB:0.004425,QB:0.008408,RB:0.00415,SB:0.00415,TB:0.008542,UB:0.004298,aB:0.004204,bB:0.14714,R:0.008408,S:0.008408,T:0.012612,iB:0.016816,U:0.012612,V:0.025224,W:0.02102,X:0.033632,Y:0.071468,Z:2.3122,P:0.029428,a:0,H:0,jB:0.008786,kB:0.00487},B:"moz",C:["hB","XB","jB","kB","I","b","J","D","E","F","A","B","C","K","L","G","M","N","O","c","d","e","f","g","h","i","j","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","YB","GB","ZB","Q","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","aB","bB","R","S","T","iB","U","V","W","X","Y","Z","P","a","H",""],E:"Firefox",F:{"0":1450137600,"1":1453852800,"2":1457395200,"3":1461628800,"4":1465257600,"5":1470096000,"6":1474329600,"7":1479168000,"8":1485216000,"9":1488844800,hB:1161648000,XB:1213660800,jB:1246320000,kB:1264032000,I:1300752000,b: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,c:1357603200,d:1361232000,e:1364860800,f:1368489600,g:1372118400,h:1375747200,i:1379376000,j:1386633600,k:1391472000,l:1395100800,m:1398729600,n:1402358400,o:1405987200,p:1409616000,q:1413244800,r:1417392000,s:1421107200,t:1424736000,u:1428278400,v:1431475200,w:1435881600,x:1439251200,y:1442880000,z:1446508800,AB:1492560000,BB:1497312000,CB:1502150400,DB:1506556800,EB:1510617600,FB:1516665600,YB:1520985600,GB:1525824000,ZB:1529971200,Q:1536105600,HB:1540252800,IB:1544486400,JB:1548720000,KB:1552953600,LB:1558396800,MB:1562630400,NB:1567468800,OB:1571788800,PB:1575331200,QB:1578355200,RB:1581379200,SB:1583798400,TB:1586304000,UB:1588636800,aB:1591056000,bB:1593475200,R:1595894400,S:1598313600,T:1600732800,iB:1603152000,U:1605571200,V:1607990400,W:1611619200,X:1614038400,Y:1616457600,Z:1618790400,P:1622505600,a:null,H:null}},D:{A:{"0":0.008408,"1":0.004465,"2":0.004642,"3":0.004891,"4":0.008408,"5":0.02102,"6":0.214404,"7":0.004204,"8":0.016816,"9":0.004204,I:0.004706,b: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,c:0.008542,d:0.004393,e:0.004317,f:0.012612,g:0.008786,h:0.008408,i:0.004461,j:0.004298,k:0.004326,l:0.0047,m:0.004538,n:0.008542,o:0.008596,p:0.004566,q:0.004204,r:0.008408,s:0.012612,t:0.004335,u:0.004464,v:0.025224,w:0.004464,x:0.012612,y:0.0236,z:0.004403,AB:0.058856,BB:0.008408,CB:0.012612,DB:0.04204,EB:0.008408,FB:0.008408,YB:0.008408,GB:0.016816,ZB:0.121916,Q:0.008408,HB:0.02102,IB:0.025224,JB:0.02102,KB:0.02102,LB:0.033632,MB:0.029428,NB:0.067264,OB:0.071468,PB:0.025224,QB:0.058856,RB:0.02102,SB:0.113508,TB:0.092488,UB:0.067264,aB:0.029428,bB:0.075672,R:0.18918,S:0.1051,T:0.079876,U:0.130324,V:0.100896,W:0.243832,X:0.16816,Y:0.311096,Z:0.344728,P:1.0468,a:21.4866,H:0.790352,lB:0.025224,mB:0.004204,nB:0},B:"webkit",C:["","","","I","b","J","D","E","F","A","B","C","K","L","G","M","N","O","c","d","e","f","g","h","i","j","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","YB","GB","ZB","Q","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","aB","bB","R","S","T","U","V","W","X","Y","Z","P","a","H","lB","mB","nB"],E:"Chrome",F:{"0":1432080000,"1":1437523200,"2":1441152000,"3":1444780800,"4":1449014400,"5":1453248000,"6":1456963200,"7":1460592000,"8":1464134400,"9":1469059200,I:1264377600,b: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,c:1332892800,d:1337040000,e:1340668800,f:1343692800,g:1348531200,h:1352246400,i:1357862400,j:1361404800,k:1364428800,l:1369094400,m:1374105600,n:1376956800,o:1384214400,p:1389657600,q:1392940800,r:1397001600,s:1400544000,t:1405468800,u:1409011200,v:1412640000,w:1416268800,x:1421798400,y:1425513600,z:1429401600,AB:1472601600,BB:1476230400,CB:1480550400,DB:1485302400,EB:1489017600,FB:1492560000,YB:1496707200,GB:1500940800,ZB:1504569600,Q:1508198400,HB:1512518400,IB:1516752000,JB:1520294400,KB:1523923200,LB:1527552000,MB:1532390400,NB:1536019200,OB:1539648000,PB:1543968000,QB:1548720000,RB:1552348800,SB:1555977600,TB:1559606400,UB:1564444800,aB:1568073600,bB:1571702400,R:1575936000,S:1580860800,T:1586304000,U:1589846400,V:1594684800,W:1598313600,X:1601942400,Y:1605571200,Z:1611014400,P:1614556800,a:1618272000,H:1621987200,lB:null,mB:null,nB:null}},E:{A:{I:0,b:0.008542,J:0.004656,D:0.004465,E:0.218608,F:0.004891,A:0.004425,B:0.008408,C:0.012612,K:0.088284,L:2.26175,G:0,oB:0,cB:0.008692,pB:0.109304,qB:0.00456,rB:0.004283,sB:0.02102,dB:0.02102,VB:0.058856,WB:0.088284,tB:0.395176,uB:0.748312,vB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","oB","cB","I","b","pB","J","qB","D","rB","E","F","sB","A","dB","B","VB","C","WB","K","tB","L","uB","G","vB",""],E:"Safari",F:{oB:1205798400,cB:1226534400,I:1244419200,b:1275868800,pB:1311120000,J:1343174400,qB:1382400000,D:1382400000,rB:1410998400,E:1413417600,F:1443657600,sB:1458518400,A:1474329600,dB:1490572800,B:1505779200,VB:1522281600,C:1537142400,WB:1553472000,K:1568851200,tB:1585008000,L:1600214400,uB:1619395200,G:null,vB:null}},F:{A:{"0":0.008542,"1":0.004227,"2":0.004725,"3":0.008408,"4":0.008942,"5":0.004707,"6":0.004827,"7":0.004707,"8":0.004707,"9":0.004326,F:0.0082,B:0.016581,C:0.004317,G:0.00685,M:0.00685,N:0.00685,O:0.005014,c:0.006015,d:0.004879,e:0.006597,f:0.006597,g:0.013434,h:0.006702,i:0.006015,j:0.005595,k:0.004393,l:0.008652,m:0.004879,n:0.004879,o:0.004711,p:0.005152,q:0.005014,r:0.009758,s:0.004879,t:0.008408,u:0.004283,v:0.004367,w:0.004534,x:0.008408,y:0.004227,z:0.004418,AB:0.008922,BB:0.014349,CB:0.004425,DB:0.00472,EB:0.004425,FB:0.004425,GB:0.00472,Q:0.004532,HB:0.004566,IB:0.02283,JB:0.00867,KB:0.004656,LB:0.004642,MB:0.004298,NB:0.00944,OB:0.00415,PB:0.004271,QB:0.004298,RB:0.096692,SB:0.008408,TB:0.433012,UB:0.437216,wB:0.00685,xB:0,yB:0.008392,zB:0.004706,VB:0.006229,eB:0.004879,"0B":0.008786,WB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","F","wB","xB","yB","zB","B","VB","eB","0B","C","WB","G","M","N","O","c","d","e","f","g","h","i","j","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","Q","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","","",""],E:"Opera",F:{"0":1486425600,"1":1490054400,"2":1494374400,"3":1498003200,"4":1502236800,"5":1506470400,"6":1510099200,"7":1515024000,"8":1517961600,"9":1521676800,F:1150761600,wB:1223424000,xB:1251763200,yB:1267488000,zB:1277942400,B:1292457600,VB:1302566400,eB:1309219200,"0B":1323129600,C:1323129600,WB:1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,c:1390867200,d:1393891200,e:1399334400,f:1401753600,g:1405987200,h:1409616000,i:1413331200,j:1417132800,k:1422316800,l:1425945600,m:1430179200,n:1433808000,o:1438646400,p:1442448000,q:1445904000,r:1449100800,s:1454371200,t:1457308800,u:1462320000,v:1465344000,w:1470096000,x:1474329600,y:1477267200,z:1481587200,AB:1525910400,BB:1530144000,CB:1534982400,DB:1537833600,EB:1543363200,FB:1548201600,GB:1554768000,Q:1561593600,HB:1566259200,IB:1570406400,JB:1573689600,KB:1578441600,LB:1583971200,MB:1587513600,NB:1592956800,OB:1595894400,PB:1600128000,QB:1603238400,RB:1613520000,SB:1612224000,TB:1616544000,UB:1619568000},D:{F:"o",B:"o",C:"o",wB:"o",xB:"o",yB:"o",zB:"o",VB:"o",eB:"o","0B":"o",WB:"o"}},G:{A:{E:0.00144955,cB:0,"1B":0,fB:0.00289911,"2B":0.00869732,"3B":0.0449361,"4B":0.0304406,"5B":0.0202937,"6B":0.0217433,"7B":0.147854,"8B":0.0347893,"9B":0.149304,AC:0.0855236,BC:0.0739272,CC:0.0768263,DC:0.246424,EC:0.0666794,FC:0.0333397,GC:0.172497,HC:0.572573,IC:10.1498,JC:1.93225},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cB","1B","fB","2B","3B","4B","E","5B","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","","",""],E:"Safari on iOS",F:{cB:1270252800,"1B":1283904000,fB:1299628800,"2B":1331078400,"3B":1359331200,"4B":1394409600,E:1410912000,"5B":1413763200,"6B":1442361600,"7B":1458518400,"8B":1473724800,"9B":1490572800,AC:1505779200,BC:1522281600,CC:1537142400,DC:1553472000,EC:1568851200,FC:1572220800,GC:1580169600,HC:1585008000,IC:1600214400,JC:1619395200}},H:{A:{KC:1.18546},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KC","","",""],E:"Opera Mini",F:{KC:1426464000}},I:{A:{XB:0,I:0.0263634,H:0,LC:0,MC:0,NC:0,OC:0.0301296,fB:0.0979213,PC:0,QC:0.43688},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","LC","MC","NC","XB","I","OC","fB","PC","QC","H","","",""],E:"Android Browser",F:{LC:1256515200,MC:1274313600,NC:1291593600,XB:1298332800,I:1318896000,OC:1341792000,fB:1374624000,PC:1386547200,QC:1401667200,H:1621987200}},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,Q:0.0111391,VB:0,eB:0,WB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","VB","eB","C","WB","Q","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,VB:1314835200,eB:1318291200,C:1330300800,WB:1349740800,Q:1613433600},D:{Q:"webkit"}},L:{A:{H:38.7167},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1621987200}},M:{A:{P:0.278256},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","P","","",""],E:"Firefox for Android",F:{P:1622505600}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{RC:1.36809},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RC","","",""],E:"UC Browser for Android",F:{RC:1471392000},D:{RC:"webkit"}},P:{A:{I:0.309232,SC:0.0103543,TC:0.010304,UC:0.0824619,VC:0.0103584,WC:0.0721541,dB:0.0412309,XC:0.164924,YC:0.113385,ZC:0.412309,aC:2.19555},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","SC","TC","UC","VC","WC","dB","XC","YC","ZC","aC","","",""],E:"Samsung Internet",F:{I:1461024000,SC:1481846400,TC:1509408000,UC:1528329600,VC:1546128000,WC:1554163200,dB:1567900800,XC:1582588800,YC:1593475200,ZC:1605657600,aC:1618531200}},Q:{A:{bC:0.185504},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","","",""],E:"QQ Browser",F:{bC:1589846400}},R:{A:{cC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cC","","",""],E:"Baidu Browser",F:{cC:1491004800}},S:{A:{dC:0.098549},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","dC","","",""],E:"KaiOS Browser",F:{dC:1527811200}}}; +module.exports={A:{A:{J:0.0131217,D:0.00621152,E:0.020096,F:0.113877,A:0.0133974,B:0.763649,iB:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","iB","J","D","E","F","A","B","","",""],E:"IE",F:{iB:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.008282,K:0.004267,L:0.004141,G:0.004141,M:0.008282,N:0.016564,O:0.078679,R:0,S:0.004298,T:0.00944,U:0.00415,V:0.008282,W:0.008282,X:0.008282,Y:0.008282,Z:0.008282,a:0.020705,P:0.024846,b:2.58398,H:0.712252},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","R","S","T","U","V","W","X","Y","Z","a","P","b","H","","",""],E:"Edge",F:{C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,R:1579046400,S:1581033600,T:1586736000,U:1590019200,V:1594857600,W:1598486400,X:1602201600,Y:1605830400,Z:1611360000,a:1614816000,P:1618358400,b:1622073600,H:1626912000},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.0047,"1":0.04141,"2":0.008282,"3":0.004141,"4":0.004525,"5":0.004141,"6":0.008282,"7":0.004538,"8":0.008282,"9":0.004141,jB:0.012813,aB:0.004271,I:0.020705,c:0.004879,J:0.020136,D:0.005725,E:0.004525,F:0.00533,A:0.004283,B:0.004141,C:0.004471,K:0.004486,L:0.00453,G:0.008542,M:0.004417,N:0.004425,O:0.008542,d:0.004443,e:0.004283,f:0.008542,g:0.013698,h:0.008542,i:0.008786,j:0.004141,k:0.004317,l:0.004393,m:0.004418,n:0.008834,o:0.008542,p:0.008928,q:0.004471,r:0.009284,s:0.004707,t:0.009076,u:0.004425,v:0.004783,w:0.004271,x:0.004783,y:0.00487,z:0.005029,AB:0.074538,BB:0.004335,CB:0.004141,DB:0.004141,EB:0.008282,FB:0.004425,GB:0.004141,bB:0.004141,HB:0.008282,cB:0.00472,IB:0.004425,JB:0.008282,Q:0.00415,KB:0.004267,LB:0.004141,MB:0.004267,NB:0.012423,OB:0.00415,PB:0.008282,QB:0.004425,RB:0.024846,SB:0.00415,TB:0.00415,UB:0.004141,VB:0.004298,WB:0.004141,XB:0.161499,R:0.008282,S:0.008282,T:0.008282,kB:0.016564,U:0.008282,V:0.016564,W:0.008282,X:0.012423,Y:0.016564,Z:0.057974,a:1.51146,P:0.919302,b:0.016564,H:0,dB:0,lB:0.008786,mB:0.00487},B:"moz",C:["jB","aB","lB","mB","I","c","J","D","E","F","A","B","C","K","L","G","M","N","O","d","e","f","g","h","i","j","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","bB","HB","cB","IB","JB","Q","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","R","S","T","kB","U","V","W","X","Y","Z","a","P","b","H","dB",""],E:"Firefox",F:{"0":1446508800,"1":1450137600,"2":1453852800,"3":1457395200,"4":1461628800,"5":1465257600,"6":1470096000,"7":1474329600,"8":1479168000,"9":1485216000,jB:1161648000,aB:1213660800,lB:1246320000,mB:1264032000,I:1300752000,c: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,d:1357603200,e:1361232000,f:1364860800,g:1368489600,h:1372118400,i:1375747200,j:1379376000,k:1386633600,l:1391472000,m:1395100800,n:1398729600,o:1402358400,p:1405987200,q:1409616000,r:1413244800,s:1417392000,t:1421107200,u:1424736000,v:1428278400,w:1431475200,x:1435881600,y:1439251200,z:1442880000,AB:1488844800,BB:1492560000,CB:1497312000,DB:1502150400,EB:1506556800,FB:1510617600,GB:1516665600,bB:1520985600,HB:1525824000,cB:1529971200,IB:1536105600,JB:1540252800,Q:1544486400,KB:1548720000,LB:1552953600,MB:1558396800,NB:1562630400,OB:1567468800,PB:1571788800,QB:1575331200,RB:1578355200,SB:1581379200,TB:1583798400,UB:1586304000,VB:1588636800,WB:1591056000,XB:1593475200,R:1595894400,S:1598313600,T:1600732800,kB:1603152000,U:1605571200,V:1607990400,W:1611619200,X:1614038400,Y:1616457600,Z:1618790400,a:1622505600,P:1626134400,b:1628553600,H:null,dB:null}},D:{A:{"0":0.004403,"1":0.008282,"2":0.004465,"3":0.004642,"4":0.004891,"5":0.012423,"6":0.020705,"7":0.182204,"8":0.004141,"9":0.004141,I:0.004706,c: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,d:0.008542,e:0.004393,f:0.004317,g:0.012423,h:0.008786,i:0.008282,j:0.004461,k:0.004141,l:0.004326,m:0.0047,n:0.004538,o:0.008542,p:0.008596,q:0.004566,r:0.004141,s:0.008282,t:0.008282,u:0.004335,v:0.004464,w:0.028987,x:0.004464,y:0.012423,z:0.0236,AB:0.004141,BB:0.020705,CB:0.008282,DB:0.012423,EB:0.045551,FB:0.008282,GB:0.008282,bB:0.008282,HB:0.012423,cB:0.074538,IB:0.008282,JB:0.016564,Q:0.020705,KB:0.020705,LB:0.020705,MB:0.020705,NB:0.012423,OB:0.066256,PB:0.053833,QB:0.028987,RB:0.04141,SB:0.016564,TB:0.111807,UB:0.08282,VB:0.053833,WB:0.024846,XB:0.049692,R:0.186345,S:0.08282,T:0.070397,U:0.091102,V:0.091102,W:0.236037,X:0.099384,Y:0.285729,Z:0.128371,a:0.227755,P:0.596304,b:17.9554,H:4.05818,dB:0.024846,nB:0.008282,oB:0},B:"webkit",C:["","","","","I","c","J","D","E","F","A","B","C","K","L","G","M","N","O","d","e","f","g","h","i","j","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","bB","HB","cB","IB","JB","Q","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","R","S","T","U","V","W","X","Y","Z","a","P","b","H","dB","nB","oB"],E:"Chrome",F:{"0":1429401600,"1":1432080000,"2":1437523200,"3":1441152000,"4":1444780800,"5":1449014400,"6":1453248000,"7":1456963200,"8":1460592000,"9":1464134400,I:1264377600,c: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,d:1332892800,e:1337040000,f:1340668800,g:1343692800,h:1348531200,i:1352246400,j:1357862400,k:1361404800,l:1364428800,m:1369094400,n:1374105600,o:1376956800,p:1384214400,q:1389657600,r:1392940800,s:1397001600,t:1400544000,u:1405468800,v:1409011200,w:1412640000,x:1416268800,y:1421798400,z:1425513600,AB:1469059200,BB:1472601600,CB:1476230400,DB:1480550400,EB:1485302400,FB:1489017600,GB:1492560000,bB:1496707200,HB:1500940800,cB:1504569600,IB:1508198400,JB:1512518400,Q:1516752000,KB:1520294400,LB:1523923200,MB:1527552000,NB:1532390400,OB:1536019200,PB:1539648000,QB:1543968000,RB:1548720000,SB:1552348800,TB:1555977600,UB:1559606400,VB:1564444800,WB:1568073600,XB:1571702400,R:1575936000,S:1580860800,T:1586304000,U:1589846400,V:1594684800,W:1598313600,X:1601942400,Y:1605571200,Z:1611014400,a:1614556800,P:1618272000,b:1621987200,H:1626739200,dB:null,nB:null,oB:null}},E:{A:{I:0,c:0.008542,J:0.004656,D:0.004465,E:0.004141,F:0.004891,A:0.004425,B:0.008282,C:0.012423,K:0.078679,L:0.654278,G:0.012423,pB:0,eB:0.008692,qB:0.020705,rB:0.00456,sB:0.004283,tB:0.016564,fB:0.020705,YB:0.053833,ZB:0.08282,uB:0.546612,vB:2.36037,wB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pB","eB","I","c","qB","J","rB","D","sB","E","F","tB","A","fB","B","YB","C","ZB","K","uB","L","vB","G","wB",""],E:"Safari",F:{pB:1205798400,eB:1226534400,I:1244419200,c:1275868800,qB:1311120000,J:1343174400,rB:1382400000,D:1382400000,sB:1410998400,E:1413417600,F:1443657600,tB:1458518400,A:1474329600,fB:1490572800,B:1505779200,YB:1522281600,C:1537142400,ZB:1553472000,K:1568851200,uB:1585008000,L:1600214400,vB:1619395200,G:null,wB:null}},F:{A:{"0":0.004418,"1":0.008542,"2":0.004227,"3":0.004725,"4":0.008282,"5":0.008942,"6":0.004707,"7":0.004827,"8":0.004707,"9":0.004707,F:0.0082,B:0.016581,C:0.004317,G:0.00685,M:0.00685,N:0.00685,O:0.005014,d:0.006015,e:0.004879,f:0.006597,g:0.006597,h:0.013434,i:0.006702,j:0.006015,k:0.005595,l:0.004393,m:0.008652,n:0.004879,o:0.004879,p:0.004141,q:0.005152,r:0.005014,s:0.009758,t:0.004879,u:0.008282,v:0.004283,w:0.004367,x:0.004534,y:0.008282,z:0.004227,AB:0.004326,BB:0.008922,CB:0.014349,DB:0.004425,EB:0.00472,FB:0.004425,GB:0.004425,HB:0.00472,IB:0.004532,JB:0.004566,Q:0.02283,KB:0.00867,LB:0.004656,MB:0.004642,NB:0.004298,OB:0.00944,PB:0.00415,QB:0.004271,RB:0.004298,SB:0.096692,TB:0.004201,UB:0.004141,VB:0.190486,WB:0.687406,XB:0,xB:0.00685,yB:0,zB:0.008392,"0B":0.004706,YB:0.006229,gB:0.004879,"1B":0.008786,ZB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","F","xB","yB","zB","0B","B","YB","gB","1B","C","ZB","G","M","N","O","d","e","f","g","h","i","j","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","Q","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","","",""],E:"Opera",F:{"0":1481587200,"1":1486425600,"2":1490054400,"3":1494374400,"4":1498003200,"5":1502236800,"6":1506470400,"7":1510099200,"8":1515024000,"9":1517961600,F:1150761600,xB:1223424000,yB:1251763200,zB:1267488000,"0B":1277942400,B:1292457600,YB:1302566400,gB:1309219200,"1B":1323129600,C:1323129600,ZB:1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,d:1390867200,e:1393891200,f:1399334400,g:1401753600,h:1405987200,i:1409616000,j:1413331200,k:1417132800,l:1422316800,m:1425945600,n:1430179200,o:1433808000,p:1438646400,q:1442448000,r:1445904000,s:1449100800,t:1454371200,u:1457308800,v:1462320000,w:1465344000,x:1470096000,y:1474329600,z:1477267200,AB:1521676800,BB:1525910400,CB:1530144000,DB:1534982400,EB:1537833600,FB:1543363200,GB:1548201600,HB:1554768000,IB:1561593600,JB:1566259200,Q:1570406400,KB:1573689600,LB:1578441600,MB:1583971200,NB:1587513600,OB:1592956800,PB:1595894400,QB:1600128000,RB:1603238400,SB:1613520000,TB:1612224000,UB:1616544000,VB:1619568000,WB:1623715200,XB:1627948800},D:{F:"o",B:"o",C:"o",xB:"o",yB:"o",zB:"o","0B":"o",YB:"o",gB:"o","1B":"o",ZB:"o"}},G:{A:{E:0.00149029,eB:0,"2B":0,hB:0.00298058,"3B":0.00894175,"4B":0.0491796,"5B":0.0298058,"6B":0.0163932,"7B":0.0223544,"8B":0.140087,"9B":0.0372573,AC:0.143068,BC:0.0834563,CC:0.0640825,DC:0.071534,EC:0.199699,FC:0.0581214,GC:0.0268253,HC:0.149029,IC:0.490306,JC:2.41129,KC:10.2666},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eB","2B","hB","3B","4B","5B","E","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","","",""],E:"Safari on iOS",F:{eB:1270252800,"2B":1283904000,hB:1299628800,"3B":1331078400,"4B":1359331200,"5B":1394409600,E:1410912000,"6B":1413763200,"7B":1442361600,"8B":1458518400,"9B":1473724800,AC:1490572800,BC:1505779200,CC:1522281600,DC:1537142400,EC:1553472000,FC:1568851200,GC:1572220800,HC:1580169600,IC:1585008000,JC:1600214400,KC:1619395200}},H:{A:{LC:1.0761},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","LC","","",""],E:"Opera Mini",F:{LC:1426464000}},I:{A:{aB:0,I:0.0269428,H:0,MC:0,NC:0,OC:0,PC:0.0179619,hB:0.0628666,QC:0,RC:0.302359},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","MC","NC","OC","aB","I","PC","hB","QC","RC","H","","",""],E:"Android Browser",F:{MC:1256515200,NC:1274313600,OC:1291593600,aB:1298332800,I:1318896000,PC:1341792000,hB:1374624000,QC:1386547200,RC:1401667200,H:1626998400}},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,Q:0.0111391,YB:0,gB:0,ZB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","YB","gB","C","ZB","Q","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,YB:1314835200,gB:1318291200,C:1330300800,ZB:1349740800,Q:1613433600},D:{Q:"webkit"}},L:{A:{H:40.2461},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1626998400}},M:{A:{P:0.298809},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","P","","",""],E:"Firefox for Android",F:{P:1626652800}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{SC:1.20109},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SC","","",""],E:"UC Browser for Android",F:{SC:1471392000},D:{SC:"webkit"}},P:{A:{I:0.291244,TC:0.0103543,UC:0.010304,VC:0.0832126,WC:0.0103584,XC:0.0520079,fB:0.0208032,YC:0.145622,ZC:0.0728111,aC:0.239236,bC:2.38196},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","TC","UC","VC","WC","XC","fB","YC","ZC","aC","bC","","",""],E:"Samsung Internet",F:{I:1461024000,TC:1481846400,UC:1509408000,VC:1528329600,WC:1546128000,XC:1554163200,fB:1567900800,YC:1582588800,ZC:1593475200,aC:1605657600,bC:1618531200}},Q:{A:{cC:0.181629},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cC","","",""],E:"QQ Browser",F:{cC:1589846400}},R:{A:{dC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","dC","","",""],E:"Baidu Browser",F:{dC:1491004800}},S:{A:{eC:0.111321},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eC","","",""],E:"KaiOS Browser",F:{eC:1527811200}}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js index 199bf3d415bede..be2d8b7b95d0ff 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js @@ -1 +1 @@ -module.exports={"0":"43","1":"44","2":"45","3":"46","4":"47","5":"48","6":"49","7":"50","8":"51","9":"52",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"91",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"89",Q:"62",R:"79",S:"80",T:"81",U:"83",V:"84",W:"85",X:"86",Y:"87",Z:"88",a:"90",b:"5",c:"19",d:"20",e:"21",f:"22",g:"23",h:"24",i:"25",j:"26",k:"27",l:"28",m:"29",n:"30",o:"31",p:"32",q:"33",r:"34",s:"35",t:"36",u:"37",v:"38",w:"39",x:"40",y:"41",z:"42",AB:"53",BB:"54",CB:"55",DB:"56",EB:"57",FB:"58",GB:"60",HB:"63",IB:"64",JB:"65",KB:"66",LB:"67",MB:"68",NB:"69",OB:"70",PB:"71",QB:"72",RB:"73",SB:"74",TB:"75",UB:"76",VB:"11.1",WB:"12.1",XB:"3",YB:"59",ZB:"61",aB:"77",bB:"78",cB:"3.2",dB:"10.1",eB:"11.5",fB:"4.2-4.3",gB:"5.5",hB:"2",iB:"82",jB:"3.5",kB:"3.6",lB:"92",mB:"93",nB:"94",oB:"3.1",pB:"5.1",qB:"6.1",rB:"7.1",sB:"9.1",tB:"13.1",uB:"14.1",vB:"TP",wB:"9.5-9.6",xB:"10.0-10.1",yB:"10.5",zB:"10.6","0B":"11.6","1B":"4.0-4.1","2B":"5.0-5.1","3B":"6.0-6.1","4B":"7.0-7.1","5B":"8.1-8.4","6B":"9.0-9.2","7B":"9.3","8B":"10.0-10.2","9B":"10.3",AC:"11.0-11.2",BC:"11.3-11.4",CC:"12.0-12.1",DC:"12.2-12.4",EC:"13.0-13.1",FC:"13.2",GC:"13.3",HC:"13.4-13.7",IC:"14.0-14.4",JC:"14.5-14.6",KC:"all",LC:"2.1",MC:"2.2",NC:"2.3",OC:"4.1",PC:"4.4",QC:"4.4.3-4.4.4",RC:"12.12",SC:"5.0-5.4",TC:"6.2-6.4",UC:"7.2-7.4",VC:"8.2",WC:"9.2",XC:"11.1-11.2",YC:"12.0",ZC:"13.0",aC:"14.0",bC:"10.4",cC:"7.12",dC:"2.5"}; +module.exports={"0":"42","1":"43","2":"44","3":"45","4":"46","5":"47","6":"48","7":"49","8":"50","9":"51",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"92",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"90",Q:"64",R:"79",S:"80",T:"81",U:"83",V:"84",W:"85",X:"86",Y:"87",Z:"88",a:"89",b:"91",c:"5",d:"19",e:"20",f:"21",g:"22",h:"23",i:"24",j:"25",k:"26",l:"27",m:"28",n:"29",o:"30",p:"31",q:"32",r:"33",s:"34",t:"35",u:"36",v:"37",w:"38",x:"39",y:"40",z:"41",AB:"52",BB:"53",CB:"54",DB:"55",EB:"56",FB:"57",GB:"58",HB:"60",IB:"62",JB:"63",KB:"65",LB:"66",MB:"67",NB:"68",OB:"69",PB:"70",QB:"71",RB:"72",SB:"73",TB:"74",UB:"75",VB:"76",WB:"77",XB:"78",YB:"11.1",ZB:"12.1",aB:"3",bB:"59",cB:"61",dB:"93",eB:"3.2",fB:"10.1",gB:"11.5",hB:"4.2-4.3",iB:"5.5",jB:"2",kB:"82",lB:"3.5",mB:"3.6",nB:"94",oB:"95",pB:"3.1",qB:"5.1",rB:"6.1",sB:"7.1",tB:"9.1",uB:"13.1",vB:"14.1",wB:"TP",xB:"9.5-9.6",yB:"10.0-10.1",zB:"10.5","0B":"10.6","1B":"11.6","2B":"4.0-4.1","3B":"5.0-5.1","4B":"6.0-6.1","5B":"7.0-7.1","6B":"8.1-8.4","7B":"9.0-9.2","8B":"9.3","9B":"10.0-10.2",AC:"10.3",BC:"11.0-11.2",CC:"11.3-11.4",DC:"12.0-12.1",EC:"12.2-12.4",FC:"13.0-13.1",GC:"13.2",HC:"13.3",IC:"13.4-13.7",JC:"14.0-14.4",KC:"14.5-14.7",LC:"all",MC:"2.1",NC:"2.2",OC:"2.3",PC:"4.1",QC:"4.4",RC:"4.4.3-4.4.4",SC:"12.12",TC:"5.0-5.4",UC:"6.2-6.4",VC:"7.2-7.4",WC:"8.2",XC:"9.2",YC:"11.1-11.2",ZC:"12.0",aC:"13.0",bC:"14.0",cC:"10.4",dC:"7.12",eC:"2.5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js index 52fa4194ffd920..a5e50a08dc5712 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js +++ b/tools/node_modules/@babel/core/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":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-apply-rule":require("./features/css-apply-rule"),"css-at-counter-style":require("./features/css-at-counter-style"),"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-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-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-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-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-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-widows-orphans":require("./features/css-widows-orphans"),"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"),"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"),"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-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":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-apply-rule":require("./features/css-apply-rule"),"css-at-counter-style":require("./features/css-at-counter-style"),"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-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-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-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-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-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-widows-orphans":require("./features/css-widows-orphans"),"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"),"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-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/@babel/core/node_modules/caniuse-lite/data/features/aac.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js index 9e058949920efd..463c6dcd613a5c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e jB kB","132":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F","16":"A B"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"132":"P"},N:{"1":"A","2":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"132":"dC"}},B:6,C:"AAC audio file format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f lB mB","132":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F","16":"A B"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"132":"P"},N:{"1":"A","2":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"132":"eC"}},B:6,C:"AAC audio file format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js index adf94c9cf63d1c..1eba242cfc99c2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L G"},C:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB jB kB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB","130":"C VB"},F:{"1":"AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"AbortController & AbortSignal"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},C:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB lB mB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB","130":"C YB"},F:{"1":"BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"AbortController & AbortSignal"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js index 126b0e2e86c31d..0cb63d1b37e668 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B","132":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","132":"A"},K:{"2":"A B C Q VB eB","132":"WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},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 iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B","132":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","132":"A"},K:{"2":"A B C Q YB gB","132":"ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js index 59ebc538bb55b7..26f7271c3c1160 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB JB KB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Accelerometer"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q KB LB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Accelerometer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js index 791383ff1b41cc..6960f86352162d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","130":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","257":"hB XB I b J jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"EventTarget.addEventListener()"}; +module.exports={A:{A:{"1":"F A B","130":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","257":"jB aB I c J lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"EventTarget.addEventListener()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js index 428aef21b3ee65..461f58c234b038 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"J D gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"F B C wB xB yB zB VB eB 0B WB","16":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"16":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"16":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"16":"cC"},S:{"1":"dC"}},B:1,C:"Alternate stylesheet"}; +module.exports={A:{A:{"1":"E F A B","2":"J D iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"F B C xB yB zB 0B YB gB 1B ZB","16":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"2":"Q","16":"A B C YB gB ZB"},L:{"16":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"16":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"16":"dC"},S:{"1":"eC"}},B:1,C:"Alternate stylesheet"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js index 8345e82ea7c8a7..f3638fffe8d0c0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K","132":"L G M N O","322":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e jB kB","132":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","194":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","322":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB","322":"RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"132":"dC"}},B:4,C:"Ambient Light Sensor"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K","132":"L G M N O","322":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f lB mB","132":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","194":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","322":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB","322":"SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"132":"eC"}},B:4,C:"Ambient Light Sensor"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js index db9adf3e332216..ed4adec07421b4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"1":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB rB"},F:{"1":"3 4 5 6 7 8 9 B C AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"0 1 2 F G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:7,C:"Animated PNG (APNG)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"1":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j 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":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB sB"},F:{"1":"4 5 6 7 8 9 B C AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"0 1 2 3 F G M N O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:7,C:"Animated PNG (APNG)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js index a3086bf67bbf37..799d2bbe1c2b37 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Array.prototype.findIndex"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Array.prototype.findIndex"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js index c30f14949884f4..fe6f456f460734 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Array.prototype.find"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Array.prototype.find"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js index 34370ddcca79f4..d19d4b8ff0a2fc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB jB kB"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB"},E:{"1":"C K L G WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB VB"},F:{"1":"DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB wB xB yB zB VB eB 0B WB"},G:{"1":"CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"flat & flatMap array methods"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB lB mB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB"},E:{"1":"C K L G ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB YB"},F:{"1":"EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB xB yB zB 0B YB gB 1B ZB"},G:{"1":"DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"flat & flatMap array methods"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js index 0ee06f8a61f133..7777ff1f9588f8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Array.prototype.includes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB 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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Array.prototype.includes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js index 1e18d7e79af285..7adadd29161794 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Arrow functions"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Arrow functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js index 127bcfbf013688..4185c108fd3fa3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O","132":"R S T U V W X Y Z P a H","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j 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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","132":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","132":"Q"},L:{"132":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I","132":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:6,C:"asm.js"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O","132":"R S T U V W X Y Z a P b H","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l","132":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","132":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","132":"Q"},L:{"132":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I","132":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:6,C:"asm.js"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js index 6e40fc39c6e258..6eb1b71ed38de8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q jB kB","132":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","66":"FB YB GB ZB"},E:{"1":"L G tB uB vB","2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","260":"IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","260":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","260":"Q"},L:{"1":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC","260":"WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Asynchronous Clipboard API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB lB mB","132":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","66":"GB bB HB cB"},E:{"1":"L G uB vB wB","2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","260":"JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","260":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","260":"Q"},L:{"1":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC","260":"XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Asynchronous Clipboard API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js index f34dcd2daec70e..0964c2b7a3b209 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K","194":"L"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB","514":"dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B","514":"9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Async functions"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C K","194":"L"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB","514":"fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","514":"AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Async functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js index 2a7876e10d1ae1..54207597500721 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB xB","16":"yB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Base64 encoding and decoding"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB yB","16":"zB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Base64 encoding and decoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js index fd2d7793f3ae92..73f98ba62e3954 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K","33":"L G M N O c d e f g h i j k l m n o p q"},E:{"1":"G uB vB","2":"I b oB cB pB","33":"J D E F A B C K L qB rB sB dB VB WB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e"},G:{"1":"JC","2":"cB 1B fB 2B","33":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Web Audio API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K","33":"L G M N O d e f g h i j k l m n o p q r"},E:{"1":"G vB wB","2":"I c pB eB qB","33":"J D E F A B C K L rB sB tB fB YB ZB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f"},G:{"1":"KC","2":"eB 2B hB 3B","33":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Web Audio API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js index 9a7277a9444411..f9a994d5e85964 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","132":"I b J D E F A B C K L G M N O c jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F","4":"wB xB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","2":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Audio element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","132":"I c J D E F A B C K L G M N O d lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F","4":"xB yB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","2":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Audio element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js index 104d882b591d3f..29b16a286e8a0c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O","322":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","322":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b J oB cB pB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB","322":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","322":"Q"},L:{"322":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:1,C:"Audio Tracks"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O","322":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","194":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m 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 FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB","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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"322":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:1,C:"Audio Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js index b753995333667d..e55de561e381fe 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"Autofocus attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"Autofocus attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js index 4fae51d5d4b959..29daac10dc9091 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","129":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","16":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Auxclick"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB","129":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Auxclick"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js index c4418a01d23f76..828a0ce13871f7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N","194":"O"},C:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB jB kB","66":"CB DB EB FB YB GB ZB Q HB IB","260":"JB","516":"KB"},D:{"1":"OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB","66":"LB MB NB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1090":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I SC TC UC VC WC dB XC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"AV1 video format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N","194":"O"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB lB mB","66":"DB EB FB GB bB HB cB IB JB Q","260":"KB","516":"LB"},D:{"1":"PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB","66":"MB NB OB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1090":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I TC UC VC WC XC fB YC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"AV1 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js index ed2bd4b7703ccc..9df547515d94e1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB jB kB","450":"aB bB R S T iB U V W X Y Z P a H"},D:{"1":"W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"450":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"AVIF image format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB lB mB","194":"WB XB R S T kB U V W X Y Z a P b"},D:{"1":"W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"AVIF image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js index d0ad39648b48de..9384b9a77fe811 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C pB qB rB sB dB VB WB","132":"I K oB cB tB","2050":"L G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","132":"F wB xB"},G:{"2":"cB 1B fB","772":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2050":"EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC PC QC","132":"OC fB"},J:{"260":"D A"},K:{"1":"B C Q VB eB WB","132":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"2":"I","1028":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1028":"cC"},S:{"1":"dC"}},B:4,C:"CSS background-attachment"}; +module.exports={A:{A:{"1":"F A B","132":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C qB rB sB tB fB YB ZB","132":"I K pB eB uB","2050":"L G vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","132":"F xB yB"},G:{"2":"eB 2B hB","772":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2050":"FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC QC RC","132":"PC hB"},J:{"260":"D A"},K:{"1":"B C YB gB ZB","2":"Q","132":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"2":"I","1028":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1028":"dC"},S:{"1":"eC"}},B:4,C:"CSS background-attachment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js index ba55d0c51ffc1e..2336348230928b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O","33":"C K L R S T U V W X Y Z P a H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"16":"oB cB","33":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"16":"cB 1B fB 2B","33":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"XB LC MC NC","33":"I H OC fB PC QC"},J:{"33":"D A"},K:{"16":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"33":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"1":"dC"}},B:7,C:"Background-clip: text"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O","33":"C K L R S T U V W X Y Z a P b H"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"16":"pB eB","33":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"16":"eB 2B hB 3B","33":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"aB MC NC OC","33":"I H PC hB QC RC"},J:{"33":"D A"},K:{"16":"A B C YB gB ZB","33":"Q"},L:{"33":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"33":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"1":"eC"}},B:7,C:"Background-clip: text"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js index ee1f08b226d8d4..fe8282970341d4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","36":"kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","516":"I b J D E F A B C K L"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","772":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB","36":"xB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","4":"cB 1B fB 3B","516":"2B"},H:{"132":"KC"},I:{"1":"H PC QC","36":"LC","516":"XB I OC fB","548":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 Background-image options"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","36":"mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","516":"I c J D E F A B C K L"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","772":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB","36":"yB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","4":"eB 2B hB 4B","516":"3B"},H:{"132":"LC"},I:{"1":"H QC RC","36":"MC","516":"aB I PC hB","548":"NC OC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 Background-image options"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js index 058aaa12839815..15b05a274dd0b7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"background-position-x & background-position-y"}; +module.exports={A:{A:{"1":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"background-position-x & background-position-y"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js index e4f962b6875f39..28478df0bd0ef8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E gB","132":"F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F G M N O wB xB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:4,C:"CSS background-repeat round and space"}; +module.exports={A:{A:{"1":"A B","2":"J D E iB","132":"F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F G M N O xB yB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:4,C:"CSS background-repeat round and space"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js index 040ebf1729d6b8..ea661e5f4cc16f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P jB kB","16":"a H"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Background Sync API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b lB mB","16":"H dB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Background Sync API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js index b282269c12f7c6..259841175b654c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8","2":"9 hB XB I b J D E F AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","132":"M N O c d e f g h i j k l m n o p q r s t u v w x y z","164":"A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t","66":"u"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Battery Status API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"1 2 3 4 5 6 7 8 9","2":"jB aB I c J D E F AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","132":"0 M N O d e f g h i j k l m n o p q r s t u v w x y z","164":"A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u","66":"v"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Battery Status API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js index 790fc3b9010c74..7ad32a16b84cf7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Beacon API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Beacon API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js index 210581efa53c4a..98abb7b880e420 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"2":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"Printing Events"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB"},D:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"2":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"Printing Events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js index 480af05f397578..3f24a6de48f42d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB jB kB","194":"JB KB LB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB"},E:{"1":"L G uB vB","2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB tB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"BigInt"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q lB mB","194":"KB LB MB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB"},E:{"1":"L G vB wB","2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB uB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"BigInt"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js index 27836c699982ab..f45390a7031f6b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB","36":"J D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D","36":"E F A B C K L G M N O c"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"H","2":"LC MC NC","36":"XB I OC fB PC QC"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Blob constructing"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB","36":"J D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D","36":"E F A B C K L G M N O d"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"H","2":"MC NC OC","36":"aB I PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Blob constructing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js index b920325e3f23f1..59aa6359a3a693 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","129":"A B"},B:{"1":"G M N O R S T U V W X Y Z P a H","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D","33":"E F A B C K L G M N O c d e f"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB LC MC NC","33":"I OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Blob URLs"}; +module.exports={A:{A:{"2":"J D E F iB","129":"A B"},B:{"1":"G M N O R S T U V W X Y Z a P b H","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D","33":"E F A B C K L G M N O d e f g"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB MC NC OC","33":"I PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Blob URLs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js index ddc412ad345b6e..d9afcb3d2539b2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","129":"C K"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","260":"0 1 2 3 4 5 6 G M N O c d e f g h i j k l m n o p q r s t u v w x y z","804":"I b J D E F A B C K L jB kB"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","260":"8 9 AB BB CB","388":"0 1 2 3 4 5 6 7 n o p q r s t u v w x y z","1412":"G M N O c d e f g h i j k l m","1956":"I b J D E F A B C K L"},E:{"129":"A B C K L G sB dB VB WB tB uB vB","1412":"J D E F qB rB","1956":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB","260":"v w x y z","388":"G M N O c d e f g h i j k l m n o p q r s t u","1796":"yB zB","1828":"B C VB eB 0B WB"},G:{"129":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","1412":"E 3B 4B 5B 6B","1956":"cB 1B fB 2B"},H:{"1828":"KC"},I:{"1":"H","388":"PC QC","1956":"XB I LC MC NC OC fB"},J:{"1412":"A","1924":"D"},K:{"1":"Q","2":"A","1828":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"388":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","260":"SC TC","388":"I"},Q:{"260":"bC"},R:{"260":"cC"},S:{"260":"dC"}},B:4,C:"CSS3 Border images"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","129":"C K"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","260":"0 1 2 3 4 5 6 7 G M N O d e f g h i j k l m n o p q r s t u v w x y z","804":"I c J D E F A B C K L lB mB"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","260":"9 AB BB CB DB","388":"0 1 2 3 4 5 6 7 8 o p q r s t u v w x y z","1412":"G M N O d e f g h i j k l m n","1956":"I c J D E F A B C K L"},E:{"129":"A B C K L G tB fB YB ZB uB vB wB","1412":"J D E F rB sB","1956":"I c pB eB qB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB","260":"0 w x y z","388":"G M N O d e f g h i j k l m n o p q r s t u v","1796":"zB 0B","1828":"B C YB gB 1B ZB"},G:{"129":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","1412":"E 4B 5B 6B 7B","1956":"eB 2B hB 3B"},H:{"1828":"LC"},I:{"1":"H","388":"QC RC","1956":"aB I MC NC OC PC hB"},J:{"1412":"A","1924":"D"},K:{"1":"Q","2":"A","1828":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"388":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","260":"TC UC","388":"I"},Q:{"260":"cC"},R:{"260":"dC"},S:{"260":"eC"}},B:4,C:"CSS3 Border images"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js index 761f2248b591f8..8a3adc46932a43 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","257":"0 1 2 3 4 5 6 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","289":"XB jB kB","292":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I"},E:{"1":"b D E F A B C K L G rB sB dB VB WB tB uB vB","33":"I oB cB","129":"J pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"cB"},H:{"2":"KC"},I:{"1":"XB I H MC NC OC fB PC QC","33":"LC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"257":"dC"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","257":"0 1 2 3 4 5 6 7 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","289":"aB lB mB","292":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I"},E:{"1":"c D E F A B C K L G sB tB fB YB ZB uB vB wB","33":"I pB eB","129":"J qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"eB"},H:{"2":"LC"},I:{"1":"aB I H NC OC PC hB QC RC","33":"MC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"257":"eC"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js index 31831eab314138..02c4dbbd34df64 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"BroadcastChannel"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"BroadcastChannel"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js index 0a2f05eed4c11a..cb7d9979589e3e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K L"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"6","257":"7"},E:{"1":"K L G tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","513":"B C VB WB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB","194":"t u"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C K L"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"7","257":"8"},E:{"1":"K L G uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","513":"B C YB ZB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB","194":"u v"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js index fa6dba138f11bc..0817d1f3532eff 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","260":"F","516":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"I b J D E F A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O","33":"c d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"3B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","132":"PC QC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"calc() as CSS unit value"}; +module.exports={A:{A:{"2":"J D E iB","260":"F","516":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"I c J D E F A B C K L G"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O","33":"d e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"4B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","132":"QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"calc() as CSS unit value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js index 9b82b595106927..b704563eba712a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b J oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Canvas blend modes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Canvas blend modes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js index 9905c6e7998168..e93b807a5b9852 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","8":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","8":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Text API for Canvas"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","8":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","8":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Text API for Canvas"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js index 043e9a5268cd50..0995fbd01a2f26 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","132":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","132":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"260":"KC"},I:{"1":"XB I H OC fB PC QC","132":"LC MC NC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Canvas (basic support)"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","132":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","132":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"260":"LC"},I:{"1":"aB I H PC hB QC RC","132":"MC NC OC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Canvas (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js index 1a69867c5e65e5..f92a9fe08c7160 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"ch (character) unit"}; +module.exports={A:{A:{"2":"J D E iB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"ch (character) unit"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js index 817836c1bd7b65..3d3e4b5c31cd0a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p","129":"0 1 2 3 4 5 q r s t u v w x y z"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC","16":"QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q","129":"0 1 2 3 4 5 6 r s t u v w x y z"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC","16":"RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js index e88a59ed5fd860..15db6af9bce8bb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i jB kB","194":"j k l m n o p q r s t u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB xB","16":"yB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Channel messaging"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j lB mB","194":"k l m n o p q r s t u v w x y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB yB","16":"zB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Channel messaging"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js index 9a6aac003d5d41..593ff0c29aff08 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"ChildNode.remove()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"ChildNode.remove()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js index f143529f001bd0..9fb34be01c87bd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"J D E F gB","1924":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB jB","516":"h i","772":"I b J D E F A B C K L G M N O c d e f g kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I b J D","516":"h i j k","772":"g","900":"E F A B C K L G M N O c d e f"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","8":"I b oB cB","900":"J pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","8":"F B wB xB yB zB VB","900":"C eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB","900":"2B 3B"},H:{"900":"KC"},I:{"1":"H PC QC","8":"LC MC NC","900":"XB I OC fB"},J:{"1":"A","900":"D"},K:{"1":"Q","8":"A B","900":"C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"900":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"classList (DOMTokenList)"}; +module.exports={A:{A:{"8":"J D E F iB","1924":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB lB","516":"i j","772":"I c J D E F A B C K L G M N O d e f g h mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I c J D","516":"i j k l","772":"h","900":"E F A B C K L G M N O d e f g"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","8":"I c pB eB","900":"J qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","8":"F B xB yB zB 0B YB","900":"C gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB","900":"3B 4B"},H:{"900":"LC"},I:{"1":"H QC RC","8":"MC NC OC","900":"aB I PC hB"},J:{"1":"A","900":"D"},K:{"1":"Q","8":"A B","900":"C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"900":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"classList (DOMTokenList)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js index c2171db1379c97..e42febf6a26713 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js index df38f8299102e0..189969f48df29e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2436":"J D E F A B gB"},B:{"260":"N O","2436":"C K L G M","8196":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e jB kB","772":"f g h i j k l m n o p q r s t u v w x","4100":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I b J D E F A B C","2564":"K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","8196":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","10244":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB"},E:{"1":"C K L G WB tB uB vB","16":"oB cB","2308":"A B dB VB","2820":"I b J D E F pB qB rB sB"},F:{"2":"F B wB xB yB zB VB eB 0B","16":"C","516":"WB","2564":"G M N O c d e f g h i j k l m","8196":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","10244":"0 1 n o p q r s t u v w x y z"},G:{"1":"CC DC EC FC GC HC IC JC","2":"cB 1B fB","2820":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","260":"H","2308":"PC QC"},J:{"2":"D","2308":"A"},K:{"2":"A B C VB eB","16":"WB","1028":"Q"},L:{"8196":"H"},M:{"1028":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2052":"SC TC","2308":"I","8196":"UC VC WC dB XC YC ZC aC"},Q:{"10244":"bC"},R:{"2052":"cC"},S:{"4100":"dC"}},B:5,C:"Synchronous Clipboard API"}; +module.exports={A:{A:{"2436":"J D E F A B iB"},B:{"260":"N O","2436":"C K L G M","8196":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f lB mB","772":"g h i j k l m n o p q r s t u v w x y","4100":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C","2564":"0 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","8196":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","10244":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB"},E:{"1":"C K L G ZB uB vB wB","16":"pB eB","2308":"A B fB YB","2820":"I c J D E F qB rB sB tB"},F:{"2":"F B xB yB zB 0B YB gB 1B","16":"C","516":"ZB","2564":"G M N O d e f g h i j k l m n","8196":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","10244":"0 1 2 o p q r s t u v w x y z"},G:{"1":"DC EC FC GC HC IC JC KC","2":"eB 2B hB","2820":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","260":"H","2308":"QC RC"},J:{"2":"D","2308":"A"},K:{"2":"A B C YB gB","16":"ZB","260":"Q"},L:{"8196":"H"},M:{"1028":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2052":"TC UC","2308":"I","8196":"VC WC XC fB YC ZC aC bC"},Q:{"10244":"cC"},R:{"2052":"dC"},S:{"4100":"eC"}},B:5,C:"Synchronous Clipboard API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js index d88a361e042861..a2cbeae54db58d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","257":"F A B"},B:{"1":"C K L G M N O","513":"R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB","513":"PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"L G uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","129":"B C K VB WB tB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB wB xB yB zB VB eB 0B WB","513":"FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"1":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; +module.exports={A:{A:{"2":"J D E iB","257":"F A B"},B:{"1":"C K L G M N O","513":"R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB","513":"QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"L G vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","129":"B C K YB ZB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB xB yB zB 0B YB gB 1B ZB","513":"GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"1":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js index b86ba4440ed256..8eb0d0f94f7dff 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","132":"G M N O c d e f g h i j k l m"},E:{"1":"A B C K L G dB VB WB tB uB vB","16":"I b J oB cB","132":"D E F qB rB sB","260":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","16":"F B wB xB yB zB VB eB","132":"G M"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB","132":"E 1B fB 2B 3B 4B 5B 6B 7B"},H:{"1":"KC"},I:{"1":"H PC QC","16":"LC MC","132":"XB I NC OC fB"},J:{"132":"D A"},K:{"1":"C Q WB","16":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Node.compareDocumentPosition()"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","132":"G M N O d e f g h i j k l m n"},E:{"1":"A B C K L G fB YB ZB uB vB wB","16":"I c J pB eB","132":"D E F rB sB tB","260":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","16":"F B xB yB zB 0B YB gB","132":"G M"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB","132":"E 2B hB 3B 4B 5B 6B 7B 8B"},H:{"1":"LC"},I:{"1":"H QC RC","16":"MC NC","132":"aB I OC PC hB"},J:{"132":"D A"},K:{"1":"C Q ZB","16":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Node.compareDocumentPosition()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js index c1e1dd079f2f00..0fc209a15f1ab5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D gB","132":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F wB xB yB zB"},G:{"1":"cB 1B fB 2B","513":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"4097":"KC"},I:{"1025":"XB I H LC MC NC OC fB PC QC"},J:{"258":"D A"},K:{"2":"A","258":"B C Q VB eB WB"},L:{"1025":"H"},M:{"2049":"P"},N:{"258":"A B"},O:{"258":"RC"},P:{"1025":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1025":"cC"},S:{"1":"dC"}},B:1,C:"Basic console logging functions"}; +module.exports={A:{A:{"1":"A B","2":"J D iB","132":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F xB yB zB 0B"},G:{"1":"eB 2B hB 3B","513":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"4097":"LC"},I:{"1025":"aB I H MC NC OC PC hB QC RC"},J:{"258":"D A"},K:{"2":"A","258":"B C YB gB ZB","1025":"Q"},L:{"1025":"H"},M:{"2049":"P"},N:{"258":"A B"},O:{"258":"SC"},P:{"1025":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1025":"dC"},S:{"1":"eC"}},B:1,C:"Basic console logging functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js index 234385569fe89d..5cae7e8262d938 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F wB xB yB zB","16":"B"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"Q","16":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"console.time and console.timeEnd"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F xB yB zB 0B","16":"B"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"Q","16":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"console.time and console.timeEnd"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js index eac4968d2262d1..5997611dab9fdd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","2052":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C jB kB","260":"K L G M N O c d e f g h i j k l m n o p q r s"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","260":"I b J D E F A B C K L G M N O c d","772":"e f g h i j k l m n o p q r s t u v w x","1028":"0 1 2 3 4 5 y z"},E:{"1":"A B C K L G dB VB WB tB uB vB","260":"I b oB cB","772":"J D E F pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB","132":"B xB yB zB VB eB","644":"C 0B WB","772":"G M N O c d e f g h i j k","1028":"l m n o p q r s"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","260":"cB 1B fB","772":"E 2B 3B 4B 5B 6B 7B"},H:{"644":"KC"},I:{"1":"H","16":"LC MC","260":"NC","772":"XB I OC fB PC QC"},J:{"772":"D A"},K:{"1":"Q","132":"A B VB eB","644":"C WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","1028":"I"},Q:{"1":"bC"},R:{"1028":"cC"},S:{"1":"dC"}},B:6,C:"const"}; +module.exports={A:{A:{"2":"J D E F A iB","2052":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"jB aB I c J D E F A B C lB mB","260":"K L G M N O d e f g h i j k l m n o p q r s t"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","260":"I c J D E F A B C K L G M N O d e","772":"f g h i j k l m n o p q r s t u v w x y","1028":"0 1 2 3 4 5 6 z"},E:{"1":"B C K L G YB ZB uB vB wB","260":"I c A pB eB fB","772":"J D E F qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB","132":"B yB zB 0B YB gB","644":"C 1B ZB","772":"G M N O d e f g h i j k l","1028":"m n o p q r s t"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","260":"eB 2B hB 9B AC","772":"E 3B 4B 5B 6B 7B 8B"},H:{"644":"LC"},I:{"1":"H","16":"MC NC","260":"OC","772":"aB I PC hB QC RC"},J:{"772":"D A"},K:{"1":"Q","132":"A B YB gB","644":"C ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","1028":"I"},Q:{"1":"cC"},R:{"1028":"dC"},S:{"1":"eC"}},B:6,C:"const"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js index 2f53b7a2dedd86..6b2ce8459e1666 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","900":"A B"},B:{"1":"N O R S T U V W X Y Z P a H","388":"L G M","900":"C K"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","260":"6 7","388":"0 1 2 3 4 5 m n o p q r s t u v w x y z","900":"I b J D E F A B C K L G M N O c d e f g h i j k l"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","388":"i j k l m n o p q r s t u v w","900":"G M N O c d e f g h"},E:{"1":"A B C K L G dB VB WB tB uB vB","16":"I b oB cB","388":"E F rB sB","900":"J D pB qB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B wB xB yB zB VB eB","388":"G M N O c d e f g h i j","900":"C 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB","388":"E 4B 5B 6B 7B","900":"2B 3B"},H:{"2":"KC"},I:{"1":"H","16":"XB LC MC NC","388":"PC QC","900":"I OC fB"},J:{"16":"D","388":"A"},K:{"1":"Q","16":"A B VB eB","900":"C WB"},L:{"1":"H"},M:{"1":"P"},N:{"900":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"388":"dC"}},B:1,C:"Constraint Validation API"}; +module.exports={A:{A:{"2":"J D E F iB","900":"A B"},B:{"1":"N O R S T U V W X Y Z a P b H","388":"L G M","900":"C K"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","260":"7 8","388":"0 1 2 3 4 5 6 n o p q r s t u v w x y z","900":"I c J D E F A B C K L G M N O d e f g h i j k l m"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","388":"j k l m n o p q r s t u v w x","900":"G M N O d e f g h i"},E:{"1":"A B C K L G fB YB ZB uB vB wB","16":"I c pB eB","388":"E F sB tB","900":"J D qB rB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B xB yB zB 0B YB gB","388":"G M N O d e f g h i j k","900":"C 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB","388":"E 5B 6B 7B 8B","900":"3B 4B"},H:{"2":"LC"},I:{"1":"H","16":"aB MC NC OC","388":"QC RC","900":"I PC hB"},J:{"16":"D","388":"A"},K:{"1":"Q","16":"A B YB gB","900":"C ZB"},L:{"1":"H"},M:{"1":"P"},N:{"900":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"388":"eC"}},B:1,C:"Constraint Validation API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js index 5f925e1f8e839a..39acebc8c190b7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB","4":"XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"contenteditable attribute (basic support)"}; +module.exports={A:{A:{"1":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB","4":"aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"contenteditable attribute (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js index 45e059a933bcf5..b69665c5d2e73b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","129":"I b J D E F A B C K L G M N O c d e f"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K","257":"L G M N O c d e f g h"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b oB cB","257":"J qB","260":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","257":"3B","260":"2B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D","257":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"257":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Content Security Policy 1.0"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","129":"I c J D E F A B C K L G M N O d e f g"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K","257":"L G M N O d e f g h i"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c pB eB","257":"J rB","260":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","257":"4B","260":"3B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D","257":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"257":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Content Security Policy 1.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js index c0d2532cb969a2..3a6302ae599fe2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L","32772":"G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB","132":"o p q r","260":"s","516":"0 1 t u v w x y z","8196":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s","1028":"t u v","2052":"w"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f wB xB yB zB VB eB 0B WB","1028":"g h i","2052":"j"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"4100":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"8196":"dC"}},B:2,C:"Content Security Policy Level 2"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L","32772":"G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB","132":"p q r s","260":"t","516":"0 1 2 u v w x y z","8196":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t","1028":"u v w","2052":"x"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g xB yB zB 0B YB gB 1B ZB","1028":"h i j","2052":"k"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"4100":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"8196":"eC"}},B:2,C:"Content Security Policy Level 2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js index 82998d63f37c3b..777b39fa2fb1c1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"Y Z P a H","2":"C K L G M N O","194":"R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB","194":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"SB TB UB","2":"0 1 2 3 4 5 6 7 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","194":"8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Cookie Store API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"Y Z a P b H","2":"C K L G M N O","194":"R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB","194":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","194":"9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Cookie Store API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js index 1d1b0dd4a1765d..d3865bddfc6633 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D gB","132":"A","260":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB","1025":"ZB Q HB IB JB KB LB MB NB OB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C"},E:{"2":"oB cB","513":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","644":"I b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B"},G:{"513":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","644":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"H PC QC","132":"XB I LC MC NC OC fB"},J:{"1":"A","132":"D"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","132":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Cross-Origin Resource Sharing"}; +module.exports={A:{A:{"1":"B","2":"J D iB","132":"A","260":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB","1025":"cB IB JB Q KB LB MB NB OB PB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C"},E:{"2":"pB eB","513":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","644":"I c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B"},G:{"513":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","644":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"H QC RC","132":"aB I MC NC OC PC hB"},J:{"1":"A","132":"D"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","132":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Cross-Origin Resource Sharing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js index 4c58ca0df677aa..f9780d415a0e2b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y jB kB","3076":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","132":"7 8","260":"9 AB","516":"BB CB DB EB FB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t wB xB yB zB VB eB 0B WB","132":"u v","260":"w x","516":"0 1 2 y z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"3076":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","16":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"3076":"dC"}},B:1,C:"createImageBitmap"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","3076":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","132":"8 9","260":"AB BB","516":"CB DB EB FB GB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u xB yB zB 0B YB gB 1B ZB","132":"v w","260":"x y","516":"0 1 2 3 z"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"3076":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","16":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"3076":"eC"}},B:1,C:"createImageBitmap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js index 65b4e6ea1bc7d3..d6240aa352686b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","66":"5 6 7","129":"8 9 AB BB CB DB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Credential Management API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","66":"6 7 8","129":"9 AB BB CB DB EB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Credential Management API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js index 5589e97857c0e9..a83ce0a1037e73 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E F A","164":"B"},B:{"1":"R S T U V W X Y Z P a H","513":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB","66":"p q"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},E:{"1":"B C K L G VB WB tB uB vB","8":"I b J D oB cB pB qB","289":"E F A rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","8":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB 2B 3B 4B","289":"E 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","8":"XB I LC MC NC OC fB PC QC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","164":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Web Cryptography"}; +module.exports={A:{A:{"2":"iB","8":"J D E F A","164":"B"},B:{"1":"R S T U V W X Y Z a P b H","513":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB","66":"q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},E:{"1":"B C K L G YB ZB uB vB wB","8":"I c J D pB eB qB rB","289":"E F A sB tB fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","8":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB 3B 4B 5B","289":"E 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","8":"aB I MC NC OC PC hB QC RC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","164":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Web Cryptography"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js index c5c0ac9b29eda1..9716dc75378273 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB PC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS all property"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS all property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js index 2797c665b6ca59..3e17c101669a98 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I jB kB","33":"b J D E F A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"oB cB","33":"J D E pB qB rB","292":"I b"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B","33":"C G M N O c d e f g h i j k l m"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"E 3B 4B 5B","164":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"H","33":"I OC fB PC QC","164":"XB LC MC NC"},J:{"33":"D A"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS Animation"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I lB mB","33":"c J D E F A B C K L G"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"pB eB","33":"J D E qB rB sB","292":"I c"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B","33":"C G M N O d e f g h i j k l m n"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"E 4B 5B 6B","164":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"H","33":"I PC hB QC RC","164":"aB MC NC OC"},J:{"33":"D A"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS Animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js index 13680715cb60d6..70b072e6b0fd4c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB","33":"0 1 2 3 4 5 6 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","16":"I b J oB cB pB","33":"D E qB rB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B","33":"E 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","16":"XB I LC MC NC OC fB","33":"PC QC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"33":"RC"},P:{"1":"WC dB XC YC ZC aC","16":"I","33":"SC TC UC VC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"33":"dC"}},B:5,C:"CSS :any-link selector"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB","33":"0 1 2 3 4 5 6 7 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","16":"I c J pB eB qB","33":"D E rB sB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B","33":"E 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","16":"aB I MC NC OC PC hB","33":"QC RC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"33":"SC"},P:{"1":"XC fB YC ZC aC bC","16":"I","33":"TC UC VC WC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"33":"eC"}},B:5,C:"CSS :any-link selector"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js index bd2d7484f0d3f0..4cd623abb4196a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"V W X Y Z P a H","33":"U","164":"R S T","388":"C K L G M N O"},C:{"1":"S T iB U V W X Y Z P a H","164":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","676":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r jB kB"},D:{"1":"V W X Y Z P a H lB mB nB","33":"U","164":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T"},E:{"164":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"OB PB QB","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB"},G:{"164":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","164":"XB I LC MC NC OC fB PC QC"},J:{"164":"D A"},K:{"2":"A B C VB eB WB","164":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","388":"B"},O:{"164":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"164":"dC"}},B:5,C:"CSS Appearance"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"V W X Y Z a P b H","33":"U","164":"R S T","388":"C K L G M N O"},C:{"1":"S T kB U V W X Y Z a P b H dB","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","676":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s lB mB"},D:{"1":"V W X Y Z a P b H dB nB oB","33":"U","164":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T"},E:{"164":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"PB QB RB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB"},G:{"164":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","164":"aB I MC NC OC PC hB QC RC"},J:{"164":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","388":"B"},O:{"164":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"164":"eC"}},B:5,C:"CSS Appearance"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js index 796973079a1405..9c7512c6b32e88 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","194":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j 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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B WB","194":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","194":"Q"},L:{"194":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I","194":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"194":"cC"},S:{"2":"dC"}},B:7,C:"CSS @apply rule"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","194":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B ZB","194":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"194":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I","194":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"194":"dC"},S:{"2":"eC"}},B:7,C:"CSS @apply rule"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js index 7dcce012227c6d..837c4accb45572 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a","132":"H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a","132":"H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","132":"H"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"132":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"132":"dC"}},B:4,C:"CSS Counter Styles"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P","132":"b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P","132":"b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB xB yB zB 0B YB gB 1B ZB","132":"WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","132":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","132":"Q"},L:{"132":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"132":"eC"}},B:4,C:"CSS Counter Styles"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js index 590f80f1385384..fc16f0a64ac992 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M","257":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB jB kB","578":"OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"2":"I b J D E oB cB pB qB rB","33":"F A B C K L G sB dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q wB xB yB zB VB eB 0B WB","194":"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 Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B","33":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"578":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I","194":"SC TC UC VC WC dB XC"},Q:{"194":"bC"},R:{"194":"cC"},S:{"2":"dC"}},B:7,C:"CSS Backdrop Filter"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M","257":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB lB mB","578":"PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB"},E:{"2":"I c J D E pB eB qB rB sB","33":"F A B C K L G tB fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r xB yB zB 0B YB gB 1B ZB","194":"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"},G:{"2":"E eB 2B hB 3B 4B 5B 6B","33":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"578":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I","194":"TC UC VC WC XC fB YC"},Q:{"194":"cC"},R:{"194":"dC"},S:{"2":"eC"}},B:7,C:"CSS Backdrop Filter"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js index 875e245eb96d53..c42d415da74aa1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS background-position edge offsets"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS background-position edge offsets"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js index 153c772fcd0a7b..0ffb8855a426de 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m jB kB"},D:{"1":"0 1 2 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r","260":"3"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D oB cB pB qB","132":"E F A rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e wB xB yB zB VB eB 0B WB","260":"q"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","132":"E 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS background-blend-mode"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n lB mB"},D:{"1":"0 1 2 3 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s","260":"4"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","132":"E F A sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f xB yB zB 0B YB gB 1B ZB","260":"r"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","132":"E 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS background-blend-mode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js index cad1c6d6124da7..d69becc3a55dbc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e","164":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J oB cB pB","164":"D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"2":"F wB xB yB zB","129":"B C VB eB 0B WB","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB 2B 3B","164":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"132":"KC"},I:{"2":"XB I LC MC NC OC fB","164":"H PC QC"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C VB eB WB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"1":"dC"}},B:5,C:"CSS box-decoration-break"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB"},D:{"2":"I c J D E F A B C K L G M N O d e f","164":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J pB eB qB","164":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"2":"F xB yB zB 0B","129":"B C YB gB 1B ZB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB 3B 4B","164":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"132":"LC"},I:{"2":"aB I MC NC OC PC hB","164":"H QC RC"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C YB gB ZB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"1":"eC"}},B:5,C:"CSS box-decoration-break"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js index fc5689860eb563..71880f87d8d33f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","33":"jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","33":"b","164":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"1B fB","164":"cB"},H:{"2":"KC"},I:{"1":"I H OC fB PC QC","164":"XB LC MC NC"},J:{"1":"A","33":"D"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 Box-shadow"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","33":"lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I c J D E F"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","33":"c","164":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"2B hB","164":"eB"},H:{"2":"LC"},I:{"1":"I H PC hB QC RC","164":"aB MC NC OC"},J:{"1":"A","33":"D"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 Box-shadow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js index f3257e2c885391..c4c2cd19604450 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"oB cB","33":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g h i j k l m n o p q r"},G:{"33":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"H","33":"XB I LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"SC TC UC VC WC dB XC YC ZC aC","33":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS Canvas Drawings"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"pB eB","33":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h i j k l m n o p q r s"},G:{"33":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"H","33":"aB I MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"TC UC VC WC XC fB YC ZC aC bC","33":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS Canvas Drawings"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js index b605aab39dbbff..a83e26d709e140 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"CSS caret-color"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"CSS caret-color"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js index 8db371b00c3a85..29e521bd7d62ba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:5,C:"Case-insensitive CSS attribute selectors"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:5,C:"Case-insensitive CSS attribute selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js index a230c38ddbaead..55f78a1fd5cac7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N","260":"R S T U V W X Y Z P a H","3138":"O"},C:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","132":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","644":"4 5 6 7 8 9 AB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g","260":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","292":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB"},E:{"2":"I b J oB cB pB qB","292":"D E F A B C K L G rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","260":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","292":"G M N O c d e f g h i j k l m n o p q r s t u v w x y"},G:{"2":"cB 1B fB 2B 3B","292":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","260":"H","292":"PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","260":"Q"},L:{"260":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"292":"RC"},P:{"292":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"292":"bC"},R:{"260":"cC"},S:{"644":"dC"}},B:4,C:"CSS clip-path property (for HTML)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N","260":"R S T U V W X Y Z a P b H","3138":"O"},C:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","132":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","644":"5 6 7 8 9 AB BB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h","260":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","292":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"2":"I c J pB eB qB rB","292":"D E F A B C K L G sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","260":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","292":"G M N O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"eB 2B hB 3B 4B","292":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","260":"H","292":"QC RC"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","260":"Q"},L:{"260":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"292":"SC"},P:{"292":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"292":"cC"},R:{"260":"dC"},S:{"644":"eC"}},B:4,C:"CSS clip-path property (for HTML)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js index 653552ace2d443..5a943f7b6d5682 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z P a H"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"16":"I b J D E F A B C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b oB cB pB","33":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"16":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"XB I LC MC NC OC fB PC QC","33":"H"},J:{"16":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"16":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"16":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"16":"cC"},S:{"1":"dC"}},B:5,C:"CSS color-adjust"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z a P b H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"16":"I c J D E F A B C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c pB eB qB","33":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"16":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"aB I MC NC OC PC hB QC RC","33":"H"},J:{"16":"D A"},K:{"2":"A B C YB gB ZB","33":"Q"},L:{"16":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"16":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"16":"dC"},S:{"1":"eC"}},B:5,C:"CSS color-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js index a13a441cb0d692..cbcdf2f73c3f76 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS color() function"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"G wB","2":"I c J D E F A pB eB qB rB sB tB","132":"B C K L fB YB ZB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","132":"AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS color() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js index c581c691525fa2..89ca48fdf9dd04 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB jB kB","578":"TB UB aB bB R S T iB"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"YB GB ZB Q HB IB JB KB LB MB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","194":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Conical Gradients"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB lB mB","578":"UB VB WB XB R S T kB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","194":"bB HB cB IB JB Q KB LB MB NB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","194":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Conical Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js index 9280b4fb27af86..a9facbb33a892a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H","194":"lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS Container Queries"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b","194":"H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS Container Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js index 3fca45b98d84c9..8de17a19d240b3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x jB kB","194":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB"},D:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","66":"8"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B WB","66":"v w"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:2,C:"CSS Containment"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y lB mB","194":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB"},D:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","66":"9"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B ZB","66":"w x"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:2,C:"CSS Containment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js index 2b5df19d65d7d4..6c8a4abacbae0e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"W X Y Z P a H","2":"C K L G M N O R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V"},E:{"2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB uB vB","16":"G"},F:{"1":"PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS content-visibility"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"W X Y Z a P b H","2":"C K L G M N O R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V"},E:{"2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB vB wB","16":"G"},F:{"1":"QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS content-visibility"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js index e8f562296df89f..269173bb3a9f00 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"J D gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS Counters"}; +module.exports={A:{A:{"1":"E F A B","2":"J D iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS Counters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js index 3e5f34f69e789f..105dd0f5ec5a2c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J gB","2340":"D E F A B"},B:{"2":"C K L G M N O","1025":"R S T U V W X Y Z P a H"},C:{"2":"hB XB jB","513":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","545":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x","1025":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b oB cB pB","164":"J","4644":"D E F qB rB sB"},F:{"2":"F B G M N O c d e f g h i j k wB xB yB zB VB eB","545":"C 0B WB","1025":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","4260":"2B 3B","4644":"E 4B 5B 6B 7B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","1025":"H"},J:{"2":"D","4260":"A"},K:{"2":"A B VB eB","545":"C WB","1025":"Q"},L:{"1025":"H"},M:{"545":"P"},N:{"2340":"A B"},O:{"1":"RC"},P:{"1025":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1025":"bC"},R:{"1025":"cC"},S:{"4097":"dC"}},B:7,C:"Crisp edges/pixelated images"}; +module.exports={A:{A:{"2":"J iB","2340":"D E F A B"},B:{"2":"C K L G M N O","1025":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB lB","513":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","545":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q mB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y","1025":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c pB eB qB","164":"J","4644":"D E F rB sB tB"},F:{"2":"F B G M N O d e f g h i j k l xB yB zB 0B YB gB","545":"C 1B ZB","1025":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","4260":"3B 4B","4644":"E 5B 6B 7B 8B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","1025":"H"},J:{"2":"D","4260":"A"},K:{"2":"A B YB gB","545":"C ZB","1025":"Q"},L:{"1025":"H"},M:{"545":"P"},N:{"2340":"A B"},O:{"1":"SC"},P:{"1025":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1025":"cC"},R:{"1025":"dC"},S:{"4097":"eC"}},B:7,C:"Crisp edges/pixelated images"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js index 38a1b8d266bf9c..6ee799726e92b2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"I b J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b oB cB","33":"J D E F pB qB rB sB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","33":"E 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","33":"H PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"33":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"2":"dC"}},B:4,C:"CSS Cross-Fade Function"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"I c J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c pB eB","33":"J D E F qB rB sB tB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","33":"E 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","33":"H QC RC"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","33":"Q"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"33":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"2":"eC"}},B:4,C:"CSS Cross-Fade Function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js index ccce7d70218311..cc1f3cccb999a1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB"},D:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","132":"0 1 2 3 4 5 6 7 G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","16":"I b oB cB","132":"J D E F A pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B wB xB yB zB VB eB","132":"G M N O c d e f g h i j k l m n o p q r s t u","260":"C 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B 3B","132":"E 4B 5B 6B 7B 8B"},H:{"260":"KC"},I:{"1":"H","16":"XB LC MC NC","132":"I OC fB PC QC"},J:{"16":"D","132":"A"},K:{"1":"Q","16":"A B C VB eB","260":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","132":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:7,C:":default CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB"},D:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","132":"0 1 2 3 4 5 6 7 8 G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","16":"I c pB eB","132":"J D E F A qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B xB yB zB 0B YB gB","132":"G M N O d e f g h i j k l m n o p q r s t u v","260":"C 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B 4B","132":"E 5B 6B 7B 8B 9B"},H:{"260":"LC"},I:{"1":"H","16":"aB MC NC OC","132":"I PC hB QC RC"},J:{"16":"D","132":"A"},K:{"1":"Q","16":"A B C YB gB","260":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","132":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:7,C:":default CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js index 2cfe3acc1411dc..bd880e90e19246 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O S T U V W X Y Z P a H","16":"R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"B","2":"I b J D E F A C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Explicit descendant combinator >>"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O S T U V W X Y Z a P b H","16":"R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"B","2":"I c J D E F A C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Explicit descendant combinator >>"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js index 5fdae4838d22e6..dc76f2f54ef407 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","164":"A B"},B:{"66":"R S T U V W X Y Z P a H","164":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l","66":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w wB xB yB zB VB eB 0B WB","66":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"292":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A Q","292":"B C VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"164":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"66":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Device Adaptation"}; +module.exports={A:{A:{"2":"J D E F iB","164":"A B"},B:{"66":"R S T U V W X Y Z a P b H","164":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m","66":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x xB yB zB 0B YB gB 1B ZB","66":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"292":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A Q","292":"B C YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"164":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"66":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Device Adaptation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js index 284470564cd24d..fd91aa8f0ce2da 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M jB kB","33":"0 1 2 3 4 5 N O c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a","194":"H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"33":"dC"}},B:5,C:":dir() CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M lB mB","33":"0 1 2 3 4 5 6 N O d e f g h i j k l m n o p q r s t u v w x y z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P","194":"b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"33":"eC"}},B:5,C:":dir() CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js index a16058dd035bf0..14470e1cebb784 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O","260":"R S T U V W X Y Z"},C:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t jB kB","260":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB","260":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z"},E:{"2":"I b J D E F A B oB cB pB qB rB sB dB","260":"L G tB uB vB","772":"C K VB WB"},F:{"1":"UB","2":"0 1 2 3 4 5 6 7 8 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","260":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC","260":"HC IC JC","772":"BC CC DC EC FC GC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","260":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC","260":"WC dB XC YC ZC aC"},Q:{"260":"bC"},R:{"2":"cC"},S:{"260":"dC"}},B:5,C:"CSS display: contents"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O","260":"R S T U V W X Y Z"},C:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u lB mB","260":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q","260":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z"},E:{"2":"I c J D E F A B pB eB qB rB sB tB fB","260":"L G uB vB wB","772":"C K YB ZB"},F:{"1":"VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","260":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC","260":"IC JC KC","772":"CC DC EC FC GC HC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC","260":"XC fB YC ZC aC bC"},Q:{"260":"cC"},R:{"2":"dC"},S:{"260":"eC"}},B:5,C:"CSS display: contents"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js index 0071b561450191..a9403ba27bb6e7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","164":"hB XB jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"33":"dC"}},B:5,C:"CSS element() function"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","164":"jB aB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"33":"eC"}},B:5,C:"CSS element() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js index ef12a5ab692753..e79f69151c7b2a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB jB kB"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","132":"B"},F:{"1":"DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","132":"AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS Environment Variables env()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q lB mB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","132":"B"},F:{"1":"EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","132":"BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS Environment Variables env()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js index 36dbb0d148c0e3..2fa400f778923e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","33":"A B"},B:{"2":"R S T U V W X Y Z P a H","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"33":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Exclusions Level 1"}; +module.exports={A:{A:{"2":"J D E F iB","33":"A B"},B:{"2":"R S T U V W X Y Z a P b H","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"33":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Exclusions Level 1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js index 6f280d9625dfe4..43b8bae70bcc20 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS Feature Queries"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS Feature Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js index c86d1faaa18c2c..78e5283fdbd163 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B","33":"6B 7B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS filter() function"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B","33":"7B 8B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS filter() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js index d09c04d938a8fe..4b264562801ee2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","1028":"K L G M N O","1346":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","196":"r","516":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q kB"},D:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N","33":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b oB cB pB","33":"J D E F qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g h i j k l m n o p q r s t u v w"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"E 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","33":"PC QC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","33":"I SC TC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS Filter Effects"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","1028":"K L G M N O","1346":"C"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","196":"s","516":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r mB"},D:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N","33":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c pB eB qB","33":"J D E F rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h i j k l m n o p q r s t u v w x"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"E 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","33":"QC RC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","33":"I TC UC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS Filter Effects"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js index f253d3ae2e0bd8..36cea2fd77256c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"gB","516":"E","1540":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","132":"XB","260":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"b J D E","132":"I"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"b oB","132":"I cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","16":"F wB","260":"B xB yB zB VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"1":"KC"},I:{"1":"XB I H OC fB PC QC","16":"LC MC","132":"NC"},J:{"1":"D A"},K:{"1":"C Q WB","260":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"::first-letter CSS pseudo-element selector"}; +module.exports={A:{A:{"1":"F A B","16":"iB","516":"E","1540":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","132":"aB","260":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"c J D E","132":"I"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"c pB","132":"I eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","16":"F xB","260":"B yB zB 0B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"1":"LC"},I:{"1":"aB I H PC hB QC RC","16":"MC NC","132":"OC"},J:{"1":"D A"},K:{"1":"C Q ZB","260":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"::first-letter CSS pseudo-element selector"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js index db71ce08656c08..740e9610561806 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS first-line pseudo-element"}; +module.exports={A:{A:{"1":"F A B","132":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS first-line pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js index 4c7f4cc03c90d1..110c74cdc644bf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"gB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB dB VB WB tB uB vB","1025":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","132":"2B 3B 4B"},H:{"2":"KC"},I:{"1":"XB H PC QC","260":"LC MC NC","513":"I OC fB"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS position:fixed"}; +module.exports={A:{A:{"1":"D E F A B","2":"iB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB fB YB ZB uB vB wB","1025":"tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","132":"3B 4B 5B"},H:{"2":"LC"},I:{"1":"aB H QC RC","260":"MC NC OC","513":"I PC hB"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS position:fixed"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js index 7bbfdc28c2cf05..4d0df2174b6e76 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"X Y Z P a H","2":"C K L G M N O","328":"R S T U V W"},C:{"1":"W X Y Z P a H","2":"hB XB jB kB","161":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V"},D:{"1":"X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB","328":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W"},E:{"2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB uB vB","16":"G"},F:{"1":"QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB wB xB yB zB VB eB 0B WB","328":"KB LB MB NB OB PB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"161":"dC"}},B:7,C:":focus-visible CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"X Y Z a P b H","2":"C K L G M N O","328":"R S T U V W"},C:{"1":"W X Y Z a P b H dB","2":"jB aB lB mB","161":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V"},D:{"1":"X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB","328":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W"},E:{"2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB vB wB","16":"G"},F:{"1":"RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB xB yB zB 0B YB gB 1B ZB","328":"LB MB NB OB PB QB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"161":"eC"}},B:7,C:":focus-visible CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js index 5cb3a8b2e01003..f0e0ef073a22b1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"YB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","194":"3"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:7,C:":focus-within CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","194":"bB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","194":"4"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:7,C:":focus-within CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js index f86e1b4ac5e395..4be905d7fc02de 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"3 4 5 6 7 8 9 AB BB CB DB EB"},D:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","66":"6 7 8 9 AB BB CB DB EB FB YB"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB","66":"0 1 2 3 t u v w x y z"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I","66":"SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:5,C:"CSS font-display"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","194":"4 5 6 7 8 9 AB BB CB DB EB FB"},D:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","66":"7 8 9 AB BB CB DB EB FB GB bB"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB","66":"0 1 2 3 4 u v w x y z"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I","66":"TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:5,C:"CSS font-display"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js index 9cf7fcd3a28346..494031bdb549b8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E jB kB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS font-stretch"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E lB mB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS font-stretch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js index ff17fcafc5c423..6d5b752ee3f111 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D gB","132":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS Generated content for pseudo-elements"}; +module.exports={A:{A:{"1":"F A B","2":"J D iB","132":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS Generated content for pseudo-elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js index e4a2fd328c7bf0..c87bca35907db2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","260":"M N O c d e f g h i j k l m n o p q r s","292":"I b J D E F A B C K L G kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"A B C K L G M N O c d e f g h i","548":"I b J D E F"},E:{"2":"oB cB","260":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","292":"J pB","804":"I b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB","33":"C 0B","164":"VB eB"},G:{"260":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","292":"2B 3B","804":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H PC QC","33":"I OC fB","548":"XB LC MC NC"},J:{"1":"A","548":"D"},K:{"1":"Q WB","2":"A B","33":"C","164":"VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS Gradients"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","260":"M N O d e f g h i j k l m n o p q r s t","292":"I c J D E F A B C K L G mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"A B C K L G M N O d e f g h i j","548":"I c J D E F"},E:{"2":"pB eB","260":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","292":"J qB","804":"I c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B","33":"C 1B","164":"YB gB"},G:{"260":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","292":"3B 4B","804":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H QC RC","33":"I PC hB","548":"aB MC NC OC"},J:{"1":"A","548":"D"},K:{"1":"Q ZB","2":"A B","33":"C","164":"YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js index 7886b119aaf5c8..4ab4918fce0531 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","8":"F","292":"A B"},B:{"1":"M N O R S T U V W X Y Z P a H","292":"C K L G"},C:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O jB kB","8":"c d e f g h i j k l m n o p q r s t u v w","584":"0 1 2 3 4 5 6 7 8 x y z","1025":"9 AB"},D:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h","8":"i j k l","200":"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","1025":"EB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b oB cB pB","8":"J D E F A qB rB sB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB","200":"0 l m n o p q r s t u v w x y z"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","8":"E 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC","8":"fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"292":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"SC","8":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"CSS Grid Layout (level 1)"}; +module.exports={A:{A:{"2":"J D E iB","8":"F","292":"A B"},B:{"1":"M N O R S T U V W X Y Z a P b H","292":"C K L G"},C:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O lB mB","8":"d e f g h i j k l m n o p q r s t u v w x","584":"0 1 2 3 4 5 6 7 8 9 y z","1025":"AB BB"},D:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i","8":"j k l m","200":"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","1025":"FB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c pB eB qB","8":"J D E F A rB sB tB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB","200":"0 1 m n o p q r s t u v w x y z"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","8":"E 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC","8":"hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"292":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"TC","8":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"CSS Grid Layout (level 1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js index 1379a31d9729b4..e6a5ca92f9ab8a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS hanging-punctuation"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS hanging-punctuation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js index 52bfead4380192..9442d79a1f3368 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:":has() CSS relational pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:":has() CSS relational pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js index afb15db6f93e30..052e3b6671a15b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","16":"C K L G M N O"},C:{"16":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"16":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"16":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"16":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"16":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"16":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"16":"bC"},R:{"16":"cC"},S:{"16":"dC"}},B:5,C:"CSS4 Hyphenation"}; +module.exports={A:{A:{"16":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","16":"C K L G M N O"},C:{"16":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"16":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"16":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"16":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"16":"A B C Q YB gB ZB"},L:{"16":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"16":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"16":"cC"},R:{"16":"dC"},S:{"16":"eC"}},B:5,C:"CSS4 Hyphenation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js index 9a17fd16034082..9f0529cccdc188 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","33":"A B"},B:{"33":"C K L G M N O","132":"R S T U V W X Y","260":"Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB","33":"J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB","132":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y"},E:{"2":"I b oB cB","33":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B","33":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"4":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I","132":"SC"},Q:{"2":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:5,C:"CSS Hyphenation"}; +module.exports={A:{A:{"2":"J D E F iB","33":"A B"},B:{"33":"C K L G M N O","132":"R S T U V W X Y","260":"Z a P b H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB","33":"0 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB","132":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y"},E:{"2":"I c pB eB","33":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B","33":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"4":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I","132":"TC"},Q:{"2":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:5,C:"CSS Hyphenation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js index 98a7b0200cea1b..efdc5574cbd472 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O R S","257":"T U V W X Y Z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i jB kB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S","257":"T U V W X Y Z"},E:{"1":"L G tB uB vB","2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB"},F:{"1":"MB NB OB PB QB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB wB xB yB zB VB eB 0B WB","257":"RB SB TB UB"},G:{"1":"IC JC","132":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"ZC aC","2":"I SC TC UC VC WC dB XC YC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 image-orientation"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O R S","257":"T U V W X Y Z"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j lB mB"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S","257":"T U V W X Y Z"},E:{"1":"L G uB vB wB","2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB"},F:{"1":"NB OB PB QB RB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB xB yB zB 0B YB gB 1B ZB","257":"SB TB UB VB WB XB"},G:{"1":"JC KC","132":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"aC bC","2":"I TC UC VC WC XC fB YC ZC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 image-orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js index 41feddc04cdd4a..b9a4c166dffd20 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W jB kB","66":"X Y","260":"P a H","772":"Z"},D:{"2":"I b J D E F A B C K L G M N O c d","164":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b oB cB pB","132":"A B C K dB VB WB tB","164":"J D E F qB rB sB","516":"L G uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB 2B","132":"8B 9B AC BC CC DC EC FC GC HC","164":"E 3B 4B 5B 6B 7B","516":"IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","164":"H PC QC"},J:{"2":"D","164":"A"},K:{"2":"A B C VB eB WB","164":"Q"},L:{"164":"H"},M:{"260":"P"},N:{"2":"A B"},O:{"164":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"2":"dC"}},B:5,C:"CSS image-set"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W lB mB","66":"X Y","257":"a P b H dB","772":"Z"},D:{"2":"I c J D E F A B C K L G M N O d e","164":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c pB eB qB","132":"A B C K fB YB ZB uB","164":"J D E F rB sB tB","516":"L G vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB 3B","132":"9B AC BC CC DC EC FC GC HC IC","164":"E 4B 5B 6B 7B 8B","516":"JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","164":"H QC RC"},J:{"2":"D","164":"A"},K:{"2":"A B C YB gB ZB","164":"Q"},L:{"164":"H"},M:{"257":"P"},N:{"2":"A B"},O:{"164":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"2":"eC"}},B:5,C:"CSS image-set"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js index 9194c639b9e6b3..41f3b1bef87b34 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C","260":"K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","516":"0 1 2 3 4 5 6 m n o p q r s t u v w x y z"},D:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I","16":"b J D E F A B C K L","260":"9","772":"0 1 2 3 4 5 6 7 8 G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I oB cB","16":"b","772":"J D E F A pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F wB","260":"B C w xB yB zB VB eB 0B WB","772":"G M N O c d e f g h i j k l m n o p q r s t u v"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","772":"E 2B 3B 4B 5B 6B 7B 8B"},H:{"132":"KC"},I:{"1":"H","2":"XB LC MC NC","260":"I OC fB PC QC"},J:{"2":"D","260":"A"},K:{"1":"Q","260":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","260":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"516":"dC"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C","260":"K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","516":"0 1 2 3 4 5 6 7 n o p q r s t u v w x y z"},D:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I","16":"c J D E F A B C K L","260":"AB","772":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I pB eB","16":"c","772":"J D E F A qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F xB","260":"B C x yB zB 0B YB gB 1B ZB","772":"G M N O d e f g h i j k l m n o p q r s t u v w"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","772":"E 3B 4B 5B 6B 7B 8B 9B"},H:{"132":"LC"},I:{"1":"H","2":"aB MC NC OC","260":"I PC hB QC RC"},J:{"2":"D","260":"A"},K:{"1":"Q","260":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","260":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"516":"eC"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js index 4e3ba251e31d9c..28f9df7c33ccc0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"A B","388":"F"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB","132":"0 1 2 3 4 5 6 7 J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","388":"I b"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","132":"G M N O c d e f g h i j k l m n o p q r s t u v"},E:{"1":"B C K L G dB VB WB tB uB vB","16":"I b J oB cB","132":"D E F A qB rB sB","388":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B wB xB yB zB VB eB","132":"G M N O c d e f g h i","516":"C 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B 3B","132":"E 4B 5B 6B 7B 8B"},H:{"516":"KC"},I:{"1":"H","16":"XB LC MC NC QC","132":"PC","388":"I OC fB"},J:{"16":"D","132":"A"},K:{"1":"Q","16":"A B C VB eB","516":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"132":"dC"}},B:7,C:":indeterminate CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E iB","132":"A B","388":"F"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB","132":"0 1 2 3 4 5 6 7 8 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","388":"I c"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","132":"G M N O d e f g h i j k l m n o p q r s t u v w"},E:{"1":"B C K L G fB YB ZB uB vB wB","16":"I c J pB eB","132":"D E F A rB sB tB","388":"qB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B xB yB zB 0B YB gB","132":"G M N O d e f g h i j","516":"C 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B 4B","132":"E 5B 6B 7B 8B 9B"},H:{"516":"LC"},I:{"1":"H","16":"aB MC NC OC RC","132":"QC","388":"I PC hB"},J:{"16":"D","132":"A"},K:{"1":"Q","16":"A B C YB gB","516":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"132":"eC"}},B:7,C:":indeterminate CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js index 47ced1ed6e43e7..a30372e707d528 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E oB cB pB qB rB","4":"F","164":"A B C K L G sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B","164":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Initial Letter"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E pB eB qB rB sB","4":"F","164":"A B C K L G tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B","164":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Initial Letter"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js index e0bca99c9b00ed..047ed4e3fb16e2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"I b J D E F A B C K L G M N O jB kB","164":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","16":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS initial value"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"I c J D E F A B C K L G M N O lB mB","164":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","16":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS initial value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js index 293ae4cc5bc5b2..ea38f023b92698 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"gB","132":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","16":"oB","132":"I b J cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F wB","132":"B C G M xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"2":"KC"},I:{"1":"H PC QC","16":"LC MC","132":"XB I NC OC fB"},J:{"132":"D A"},K:{"1":"Q","132":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"letter-spacing CSS property"}; +module.exports={A:{A:{"1":"F A B","16":"iB","132":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","16":"pB","132":"I c J eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F xB","132":"B C G M yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"2":"LC"},I:{"1":"H QC RC","16":"MC NC","132":"aB I OC PC hB"},J:{"132":"D A"},K:{"1":"Q","132":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"letter-spacing CSS property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js index 7f36a4c76edec2..88fb6252c166e1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M","33":"R S T U V W X Y Z P a H","129":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB jB kB","33":"MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"16":"I b J D E F A B C K","33":"0 1 2 3 4 5 6 7 8 9 L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I oB cB","33":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB","33":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"LC MC","33":"XB I H NC OC fB PC QC"},J:{"33":"D A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"33":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"2":"dC"}},B:5,C:"CSS line-clamp"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M","33":"R S T U V W X Y Z a P b H","129":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB lB mB","33":"NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"16":"I c J D E F A B C K","33":"0 1 2 3 4 5 6 7 8 9 L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I pB eB","33":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB","33":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"MC NC","33":"aB I H OC PC hB QC RC"},J:{"33":"D A"},K:{"2":"A B C YB gB ZB","33":"Q"},L:{"33":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"33":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"2":"eC"}},B:5,C:"CSS line-clamp"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js index 5227d071803cf1..5830cfa85969f3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O","2052":"Y Z","3588":"R S T U V W X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","164":"XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x jB kB"},D:{"1":"P a H lB mB nB","292":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB","2052":"Y Z","3588":"NB OB PB QB RB SB TB UB aB bB R S T U V W X"},E:{"1":"G vB","292":"I b J D E F A B C oB cB pB qB rB sB dB VB","2052":"uB","3588":"K L WB tB"},F:{"1":"UB","2":"F B C wB xB yB zB VB eB 0B WB","292":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB","2052":"SB TB","3588":"DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB"},G:{"292":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC","2052":"JC","3588":"DC EC FC GC HC IC"},H:{"2":"KC"},I:{"1":"H","292":"XB I LC MC NC OC fB PC QC"},J:{"292":"D A"},K:{"2":"A B C VB eB WB","3588":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"292":"RC"},P:{"292":"I SC TC UC VC WC","3588":"dB XC YC ZC aC"},Q:{"3588":"bC"},R:{"3588":"cC"},S:{"3588":"dC"}},B:5,C:"CSS Logical Properties"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O","2052":"Y Z","3588":"R S T U V W X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","164":"aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y lB mB"},D:{"1":"a P b H dB nB oB","292":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB","2052":"Y Z","3588":"OB PB QB RB SB TB UB VB WB XB R S T U V W X"},E:{"1":"G wB","292":"I c J D E F A B C pB eB qB rB sB tB fB YB","2052":"vB","3588":"K L ZB uB"},F:{"1":"VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","292":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","2052":"TB UB","3588":"EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB"},G:{"292":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2052":"KC","3588":"EC FC GC HC IC JC"},H:{"2":"LC"},I:{"1":"H","292":"aB I MC NC OC PC hB QC RC"},J:{"292":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"292":"SC"},P:{"292":"I TC UC VC WC XC","3588":"fB YC ZC aC bC"},Q:{"3588":"cC"},R:{"3588":"dC"},S:{"3588":"eC"}},B:5,C:"CSS Logical Properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js index 456fac6a351ff6..b9ef72bf139679 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"X Y Z P a H","2":"C K L G M N O R S T U V W"},C:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB jB kB"},D:{"1":"X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W"},E:{"2":"I b J D E F A B oB cB pB qB rB sB dB","129":"C K L G VB WB tB uB vB"},F:{"1":"QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS ::marker pseudo-element"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"X Y Z a P b H","2":"C K L G M N O R S T U V W"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB lB mB"},D:{"1":"X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W"},E:{"2":"I c J D E F A B pB eB qB rB sB tB fB","129":"C K L G YB ZB uB vB wB"},F:{"1":"RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS ::marker pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js index dd9d667f95b5bc..52ead7ab2a2ae9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M","164":"R S T U V W X Y Z P a H","3138":"N","12292":"O"},C:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","260":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"oB cB","164":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"164":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"164":"H PC QC","676":"XB I LC MC NC OC fB"},J:{"164":"D A"},K:{"2":"A B C VB eB WB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"260":"dC"}},B:4,C:"CSS Masks"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M","164":"R S T U V W X Y Z a P b H","3138":"N","12292":"O"},C:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","260":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"pB eB","164":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"164":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"164":"H QC RC","676":"aB I MC NC OC PC hB"},J:{"164":"D A"},K:{"2":"A B C YB gB ZB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"260":"eC"}},B:4,C:"CSS Masks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js index 5d3416819d6c55..c1a6d9481b92dd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"Z P a H","2":"C K L G M N O","1220":"R S T U V W X Y"},C:{"1":"bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB","548":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB"},D:{"1":"Z P a H lB mB nB","16":"I b J D E F A B C K L","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB","196":"JB KB LB","1220":"MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y"},E:{"1":"L G uB vB","2":"I oB cB","16":"b","164":"J D E pB qB rB","260":"F A B C K sB dB VB WB tB"},F:{"1":"TB UB","2":"F B C wB xB yB zB VB eB 0B WB","164":"0 1 2 3 4 5 6 7 8 G M N O c d e f g h i j k l m n o p q r s t u v w x y z","196":"9 AB BB","1220":"CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"IC JC","16":"cB 1B fB 2B 3B","164":"E 4B 5B","260":"6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"1":"H","16":"XB LC MC NC","164":"I OC fB PC QC"},J:{"16":"D","164":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1220":"bC"},R:{"164":"cC"},S:{"548":"dC"}},B:5,C:":is() CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"Z a P b H","2":"C K L G M N O","1220":"R S T U V W X Y"},C:{"1":"XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB","548":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"Z a P b H dB nB oB","16":"I c J D E F A B C K L","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q","196":"KB LB MB","1220":"NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y"},E:{"1":"L G vB wB","2":"I pB eB","16":"c","164":"J D E qB rB sB","260":"F A B C K tB fB YB ZB uB"},F:{"1":"UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z","196":"AB BB CB","1220":"DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB"},G:{"1":"JC KC","16":"eB 2B hB 3B 4B","164":"E 5B 6B","260":"7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"1":"H","16":"aB MC NC OC","164":"I PC hB QC RC"},J:{"16":"D","164":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1220":"cC"},R:{"164":"dC"},S:{"548":"eC"}},B:5,C:":is() CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js index 01cf8ad55507f5..16161f72d6b876 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB jB kB"},D:{"1":"R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB"},E:{"1":"L G tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB","132":"C K VB WB"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB wB xB yB zB VB eB 0B WB"},G:{"1":"HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC","132":"BC CC DC EC FC GC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I SC TC UC VC WC dB XC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS math functions min(), max() and clamp()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB lB mB"},D:{"1":"R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"L G uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB","132":"C K YB ZB"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB xB yB zB 0B YB gB 1B ZB"},G:{"1":"IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC","132":"CC DC EC FC GC HC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I TC UC VC WC XC fB YC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS math functions min(), max() and clamp()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js index 10564e4fa3f58b..f108372a791aa9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Media Queries: interaction media features"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Media Queries: interaction media features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js index 6e34cd77218c32..8d5946f6ebdd54 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","260":"I b J D E F A B C K L G jB kB"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","548":"I b J D E F A B C K L G M N O c d e f g h i j k l"},E:{"2":"oB cB","548":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F","548":"B C wB xB yB zB VB eB 0B"},G:{"16":"cB","548":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"132":"KC"},I:{"1":"H PC QC","16":"LC MC","548":"XB I NC OC fB"},J:{"548":"D A"},K:{"1":"Q WB","548":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Media Queries: resolution feature"}; +module.exports={A:{A:{"2":"J D E iB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","260":"I c J D E F A B C K L G lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","548":"I c J D E F A B C K L G M N O d e f g h i j k l m"},E:{"2":"pB eB","548":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F","548":"B C xB yB zB 0B YB gB 1B"},G:{"16":"eB","548":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"132":"LC"},I:{"1":"H QC RC","16":"MC NC","548":"aB I OC PC hB"},J:{"548":"D A"},K:{"1":"Q ZB","548":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Media Queries: resolution feature"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js index 631bade8a6870e..1339de3cb1dd09 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"16":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","16":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H","16":"lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Media Queries: scripting media feature"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"16":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","16":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H","16":"dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Media Queries: scripting media feature"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js index eebb3697b6c6b9..4564eefd21684b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"J D E gB","129":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","129":"I b J D E F A B C K L G M N O c d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","129":"I b J pB","388":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","129":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"H PC QC","129":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS3 Media Queries"}; +module.exports={A:{A:{"8":"J D E iB","129":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","129":"I c J D E F A B C K L G M N O d e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","129":"I c J qB","388":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","129":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"H QC RC","129":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS3 Media Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js index 51e815f30e52df..81101dfc90f4e0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l","194":"m n o p q r s t u v w x"},E:{"2":"I b J D oB cB pB qB","260":"E F A B C K L G rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB 2B 3B 4B","260":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Blending of HTML/SVG elements"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m","194":"n o p q r s t u v w x y"},E:{"2":"I c J D pB eB qB rB","260":"E F A B C K L G sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB 3B 4B 5B","260":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Blending of HTML/SVG elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js index b1fb2888342b04..4860a2fa8e1000 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB jB kB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB","194":"n o p"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"CSS Motion Path"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB lB mB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"1 2 3"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB","194":"o p q"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"CSS Motion Path"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js index 6e558b7b0f69cf..d46dd257e48092 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS namespaces"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS namespaces"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js index dfb068845ea325..e30ec3cba9063c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"Z P a H","2":"C K L G M N O S T U V W X Y","16":"R"},C:{"1":"V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U jB kB"},D:{"1":"Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"1":"TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"selector list argument of :not()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"Z a P b H","2":"C K L G M N O S T U V W X Y","16":"R"},C:{"1":"V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U lB mB"},D:{"1":"Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"1":"UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"selector list argument of :not()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js index 86c406357d72e3..a48b8f63cc5f47 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},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 iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js index 510efcb086626c..f47b0e53a8f7b6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","4":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS3 Opacity"}; +module.exports={A:{A:{"1":"F A B","4":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS3 Opacity"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js index e80edc9580a89f..14982b2f01dc21 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F wB","132":"B C xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"132":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","132":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:":optional CSS pseudo-class"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F xB","132":"B C yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"132":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","132":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:":optional CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js index 9b226240bddca1..36935f82720134 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB jB kB"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB lB mB"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js index 6d9fe90b82d9a7..a1432af5d5014b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"I b J D E F A B pB qB rB sB dB VB","16":"oB cB","130":"C K L G WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC","16":"cB","130":"CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"CSS overflow: overlay"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"I c J D E F A B qB rB sB tB fB YB","16":"pB eB","130":"C K L G ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC","16":"eB","130":"DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"CSS overflow: overlay"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js index 4ec37236f01d4f..37df8133b6beea 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"J D E F A B gB"},B:{"1":"a H","260":"R S T U V W X Y Z P","388":"C K L G M N O"},C:{"1":"T iB U V W X Y Z P a H","260":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S","388":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB jB kB"},D:{"1":"a H lB mB nB","260":"MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P","388":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB"},E:{"260":"L G tB uB vB","388":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB"},F:{"260":"CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","388":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB wB xB yB zB VB eB 0B WB"},G:{"260":"HC IC JC","388":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"388":"KC"},I:{"1":"H","388":"XB I LC MC NC OC fB PC QC"},J:{"388":"D A"},K:{"388":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"388":"A B"},O:{"388":"RC"},P:{"388":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"388":"bC"},R:{"388":"cC"},S:{"388":"dC"}},B:5,C:"CSS overflow property"}; +module.exports={A:{A:{"388":"J D E F A B iB"},B:{"1":"P b H","260":"R S T U V W X Y Z a","388":"C K L G M N O"},C:{"1":"T kB U V W X Y Z a P b H dB","260":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S","388":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB lB mB"},D:{"1":"P b H dB nB oB","260":"NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a","388":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB"},E:{"260":"L G uB vB wB","388":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB"},F:{"260":"DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","388":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB xB yB zB 0B YB gB 1B ZB"},G:{"260":"IC JC KC","388":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"388":"LC"},I:{"1":"H","388":"aB I MC NC OC PC hB QC RC"},J:{"388":"D A"},K:{"1":"Q","388":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"388":"A B"},O:{"388":"SC"},P:{"388":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"388":"cC"},R:{"388":"dC"},S:{"388":"eC"}},B:5,C:"CSS overflow property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js index baa46454018955..284d44431d8244 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N","516":"O"},C:{"1":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB jB kB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q","260":"HB IB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB vB","1090":"uB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","260":"7 8"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS overscroll-behavior"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N","516":"O"},C:{"1":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB lB mB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB","260":"JB Q"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB wB","1090":"vB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","260":"8 9"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS overscroll-behavior"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js index a9db3a83c90590..8e66e0114d4e18 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"A B","900":"J D E F gB"},B:{"388":"C K L G M N O","900":"R S T U V W X Y Z P a H"},C:{"772":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","900":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB jB kB"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"772":"A","900":"I b J D E F B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"16":"F wB","129":"B C xB yB zB VB eB 0B WB","900":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"900":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"129":"KC"},I:{"900":"XB I H LC MC NC OC fB PC QC"},J:{"900":"D A"},K:{"129":"A B C VB eB WB","900":"Q"},L:{"900":"H"},M:{"900":"P"},N:{"388":"A B"},O:{"900":"RC"},P:{"900":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"900":"bC"},R:{"900":"cC"},S:{"900":"dC"}},B:2,C:"CSS page-break properties"}; +module.exports={A:{A:{"388":"A B","900":"J D E F iB"},B:{"388":"C K L G M N O","900":"R S T U V W X Y Z a P b H"},C:{"772":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","900":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q lB mB"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"772":"A","900":"I c J D E F B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"16":"F xB","129":"B C yB zB 0B YB gB 1B ZB","900":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"900":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"129":"LC"},I:{"900":"aB I H MC NC OC PC hB QC RC"},J:{"900":"D A"},K:{"129":"A B C YB gB ZB","900":"Q"},L:{"900":"H"},M:{"900":"P"},N:{"388":"A B"},O:{"900":"SC"},P:{"900":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"900":"cC"},R:{"900":"dC"},S:{"900":"eC"}},B:2,C:"CSS page-break properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js index da43ed2c9784c8..e6e15d2775bd5a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","132":"E F A B"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O jB kB","132":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","132":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"16":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C VB eB WB","258":"Q"},L:{"1":"H"},M:{"132":"P"},N:{"258":"A B"},O:{"258":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"132":"dC"}},B:5,C:"CSS Paged Media (@page)"}; +module.exports={A:{A:{"2":"J D iB","132":"E F A B"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O lB mB","132":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"16":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"16":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"132":"P"},N:{"258":"A B"},O:{"258":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"132":"eC"}},B:5,C:"CSS Paged Media (@page)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js index ee70b72f1b9e68..c73b823cdbc02c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB"},E:{"2":"I b J D E F A B C oB cB pB qB rB sB dB VB","194":"K L G WB tB uB vB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Paint API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q"},E:{"2":"I c J D E F A B C pB eB qB rB sB tB fB YB","194":"K L G ZB uB vB wB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Paint API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js index 44224611d8a3a7..f2c87a66518a8b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","292":"A B"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","164":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"164":"dC"}},B:5,C:":placeholder-shown CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F iB","292":"A B"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","164":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m 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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB 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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"164":"eC"}},B:5,C:":placeholder-shown CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js index 423ec8d769cb19..9b17927c79d8b8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","36":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O jB kB","33":"0 1 2 3 4 5 6 7 c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","36":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I oB cB","36":"b J D E F A pB qB rB sB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","36":"0 G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B","36":"E fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","36":"XB I LC MC NC OC fB PC QC"},J:{"36":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","36":"I SC TC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"33":"dC"}},B:5,C:"::placeholder CSS pseudo-element"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","36":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O lB mB","33":"0 1 2 3 4 5 6 7 8 d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","36":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I pB eB","36":"c J D E F A qB rB sB tB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","36":"0 1 G M N O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B","36":"E hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","36":"aB I MC NC OC PC hB QC RC"},J:{"36":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","36":"I TC UC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"33":"eC"}},B:5,C:"::placeholder CSS pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js index fe76feaa34ed5e..29980ac252d2aa 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"bB R S T iB U V W X Y Z P a H","16":"hB","33":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","132":"G M N O c d e f g h i j k l m n o p q r s"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","16":"oB cB","132":"I b J D E pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B wB xB yB zB VB","132":"C G M N O c d e f eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B","132":"E fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","16":"LC MC","132":"XB I NC OC fB PC QC"},J:{"1":"A","132":"D"},K:{"1":"Q","2":"A B VB","132":"C eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"33":"dC"}},B:1,C:"CSS :read-only and :read-write selectors"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"XB R S T kB U V W X Y Z a P b H dB","16":"jB","33":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","132":"G M N O d e f g h i j k l m n o p q r s t"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","16":"pB eB","132":"I c J D E qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B xB yB zB 0B YB","132":"C G M N O d e f g gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B","132":"E hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","16":"MC NC","132":"aB I OC PC hB QC RC"},J:{"1":"A","132":"D"},K:{"1":"Q","2":"A B YB","132":"C gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"33":"eC"}},B:1,C:"CSS :read-only and :read-write selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js index f2f7576b6a2db2..0e811c5470d911 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB","16":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Rebeccapurple color"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Rebeccapurple color"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js index 46732f49cf4c1b..5a0184cdfe10e4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"oB cB","33":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"33":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"33":"XB I H LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"2":"dC"}},B:7,C:"CSS Reflections"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"pB eB","33":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"33":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"33":"aB I H MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"2":"A B C YB gB ZB","33":"Q"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"2":"eC"}},B:7,C:"CSS Reflections"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js index d013be2243e6be..3b0d8bbc9ab587 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","420":"A B"},B:{"2":"R S T U V W X Y Z P a H","420":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","36":"G M N O","66":"c d e f g h i j k l m n o p q r"},E:{"2":"I b J C K L G oB cB pB VB WB tB uB vB","33":"D E F A B qB rB sB dB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB 2B 3B BC CC DC EC FC GC HC IC JC","33":"E 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"420":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Regions"}; +module.exports={A:{A:{"2":"J D E F iB","420":"A B"},B:{"2":"R S T U V W X Y Z a P b H","420":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","36":"G M N O","66":"d e f g h i j k l m n o p q r s"},E:{"2":"I c J C K L G pB eB qB YB ZB uB vB wB","33":"D E F A B rB sB tB fB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB 3B 4B CC DC EC FC GC HC IC JC KC","33":"E 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"420":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Regions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js index e60a50264a83f5..cd4247349c5620 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","33":"I b J D E F A B C K L G kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F","33":"A B C K L G M N O c d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB","33":"J pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB","33":"C 0B","36":"VB eB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","33":"2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB LC MC NC","33":"I OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B","33":"C","36":"VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS Repeating Gradients"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","33":"I c J D E F A B C K L G mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F","33":"A B C K L G M N O d e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB","33":"J qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B","33":"C 1B","36":"YB gB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","33":"3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB MC NC OC","33":"I PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B","33":"C","36":"YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS Repeating Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js index 0836f540d4c39e..8a073b6d3e6d39 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B","132":"WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:4,C:"CSS resize property"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B","132":"ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:4,C:"CSS resize property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js index d075c5b4d91d04..84848020ce78d0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"V W X Y Z P a H","2":"C K L G M N O R S T U"},C:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB jB kB"},D:{"1":"V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},F:{"1":"RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS revert value"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"V W X Y Z a P b H","2":"C K L G M N O R S T U"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB lB mB"},D:{"1":"V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},F:{"1":"SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS revert value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js index 5587375a91e35c..7672c6fe169240 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"9 AB BB CB DB EB FB YB GB ZB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v wB xB yB zB VB eB 0B WB","194":"0 1 2 3 4 5 6 7 8 w x y z"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I","194":"SC TC UC"},Q:{"2":"bC"},R:{"194":"cC"},S:{"2":"dC"}},B:7,C:"#rrggbbaa hex color notation"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"AB BB CB DB EB FB GB bB HB cB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w xB yB zB 0B YB gB 1B ZB","194":"0 1 2 3 4 5 6 7 8 9 x y z"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I","194":"TC UC VC"},Q:{"2":"cC"},R:{"194":"dC"},S:{"2":"eC"}},B:7,C:"#rrggbbaa hex color notation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js index 422e7c3503258d..ff363594d7c692 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","129":"R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x","129":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","450":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB tB","578":"L G uB vB"},F:{"2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB","129":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","450":"0 1 2 3 4 l m n o p q r s t u v w x y z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"129":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"129":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSSOM Scroll-behavior"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","129":"R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y","129":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","450":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB uB","578":"L G vB wB"},F:{"2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB","129":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","450":"0 1 2 3 4 5 m n o p q r s t u v w x y z"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"129":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"129":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSSOM Scroll-behavior"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js index b5366e43f14b0d..e2652636670122 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P","194":"a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V","194":"Z P a H lB mB nB","322":"W X Y"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB","194":"TB UB","322":"RB SB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS @scroll-timeline"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a","194":"P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V","194":"Z a P b H dB nB oB","322":"W X Y"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB","194":"UB VB WB XB","322":"SB TB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS @scroll-timeline"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js index 6d41937b0bb4db..e34f848873bc2e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"2":"C K L G M N O","292":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q jB kB","3074":"HB","4100":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"16":"I b oB cB","292":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","292":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"16":"cB 1B fB 2B 3B","292":"4B","804":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"LC MC","292":"XB I H NC OC fB PC QC"},J:{"292":"D A"},K:{"2":"A B C VB eB WB","292":"Q"},L:{"292":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"292":"RC"},P:{"292":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"292":"bC"},R:{"292":"cC"},S:{"2":"dC"}},B:7,C:"CSS scrollbar styling"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"2":"C K L G M N O","292":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB lB mB","3074":"JB","4100":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"16":"I c pB eB","292":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","292":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"16":"eB 2B hB 3B 4B","292":"5B","804":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"MC NC","292":"aB I H OC PC hB QC RC"},J:{"292":"D A"},K:{"2":"A B C YB gB ZB","292":"Q"},L:{"292":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"292":"SC"},P:{"292":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"292":"cC"},R:{"292":"dC"},S:{"2":"eC"}},B:7,C:"CSS scrollbar styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js index 8e1fd1668fa672..65b1bc27e797c6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"gB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS 2.1 selectors"}; +module.exports={A:{A:{"1":"D E F A B","2":"iB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS 2.1 selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js index be8d8fcb2383d6..0247b36093f8d6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J","132":"D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","2":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS3 selectors"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J","132":"D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","2":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS3 selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js index 7cbf7c71fda778..1c1a2fbc1aa58b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"C Q eB WB","16":"A B VB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"33":"dC"}},B:5,C:"::selection CSS pseudo-element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"C Q gB ZB","16":"A B YB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"33":"eC"}},B:5,C:"::selection CSS pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js index 2f8df297286094..b1a3dc2e68de3f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","322":"8 9 AB BB CB DB EB FB YB GB ZB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q","194":"r s t"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D oB cB pB qB","33":"E F A rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","33":"E 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:4,C:"CSS Shapes Level 1"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","322":"9 AB BB CB DB EB FB GB bB HB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r","194":"s t u"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","33":"E F A sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","33":"E 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:4,C:"CSS Shapes Level 1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js index 03970e2e8ddd8c..b76a5a677cb125 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","6308":"A","6436":"B"},B:{"1":"R S T U V W X Y Z P a H","6436":"C K L G M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v jB kB","2052":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB","8258":"KB LB MB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E oB cB pB qB rB","3108":"F A sB dB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB","8258":"BB CB DB EB FB GB Q HB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B","3108":"6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2052":"dC"}},B:4,C:"CSS Scroll Snap"}; +module.exports={A:{A:{"2":"J D E F iB","6308":"A","6436":"B"},B:{"1":"R S T U V W X Y Z a P b H","6436":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w lB mB","2052":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB","8258":"LB MB NB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB","3108":"F A tB fB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB","8258":"CB DB EB FB GB HB IB JB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B","3108":"7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2052":"eC"}},B:4,C:"CSS Scroll Snap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js index 863e39a994b5bc..98e175849868cf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"H","2":"C K L G","1028":"R S T U V W X Y Z P a","4100":"M N O"},C:{"1":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i jB kB","194":"j k l m n o","516":"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"},D:{"1":"H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f u v w x y z","322":"9 g h i j k l m n o p q r s t AB BB CB","1028":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a"},E:{"1":"K L G tB uB vB","2":"I b J oB cB pB","33":"E F A B C rB sB dB VB WB","2084":"D qB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v wB xB yB zB VB eB 0B WB","322":"w x y","1028":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"E 5B 6B 7B 8B 9B AC BC CC DC","2084":"3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","1028":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1028":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1028":"bC"},R:{"2":"cC"},S:{"516":"dC"}},B:5,C:"CSS position:sticky"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"b H","2":"C K L G","1028":"R S T U V W X Y Z a P","4100":"M N O"},C:{"1":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j lB mB","194":"k l m n o p","516":"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":"b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g v w x y z","322":"h i j k l m n o p q r s t u AB BB CB DB","1028":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P"},E:{"1":"K L G uB vB wB","2":"I c J pB eB qB","33":"E F A B C sB tB fB YB ZB","2084":"D rB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w xB yB zB 0B YB gB 1B ZB","322":"x y z","1028":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"E 6B 7B 8B 9B AC BC CC DC EC","2084":"4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1028":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1028":"cC"},R:{"2":"dC"},S:{"516":"eC"}},B:5,C:"CSS position:sticky"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js index a2b7cb32e3b06d..a37c37ead8c3d9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Subgrid"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Subgrid"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js index e3b9ff4e56f03c..047204e7d21315 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","260":"C K L G M N O"},C:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c jB kB","66":"d e","260":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k","260":"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 YB GB"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B","132":"WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"132":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB","132":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS.supports() API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","260":"C K L G M N O"},C:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d lB mB","66":"e f","260":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j 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 bB HB"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B","132":"ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"132":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB","132":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS.supports() API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js index 3e231982fe5fdd..5bfaa291470ace 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"J D gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","132":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS Table display"}; +module.exports={A:{A:{"1":"E F A B","2":"J D iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","132":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS Table display"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js index 83ecc13c19d384..37bc92ad5f5cfc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","4":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B jB kB","33":"0 1 2 3 4 5 C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r","322":"0 1 2 3 s t u v w x y z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e wB xB yB zB VB eB 0B WB","578":"f g h i j k l m n o p q"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"1":"cC"},S:{"33":"dC"}},B:5,C:"CSS3 text-align-last"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","4":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B lB mB","33":"0 1 2 3 4 5 6 C K L G M N O d e f g h i j k l m 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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s","322":"0 1 2 3 4 t u v w x y z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f xB yB zB 0B YB gB 1B ZB","578":"g h i j k l m n o p q r"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"1":"dC"},S:{"33":"eC"}},B:5,C:"CSS3 text-align-last"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js index 6bfb2c6a84d33c..a61be4a5a47928 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"132":"C K L G M N O","388":"R S T U V W X Y Z P a H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"132":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u","388":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"132":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"132":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB","388":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"132":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"132":"KC"},I:{"132":"XB I LC MC NC OC fB PC QC","388":"H"},J:{"132":"D A"},K:{"132":"A B C VB eB WB","388":"Q"},L:{"388":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"132":"RC"},P:{"132":"I","388":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"388":"bC"},R:{"388":"cC"},S:{"132":"dC"}},B:5,C:"CSS text-indent"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"132":"C K L G M N O","388":"R S T U V W X Y Z a P b H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"132":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v","388":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"132":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"132":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB","388":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"132":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"132":"LC"},I:{"132":"aB I MC NC OC PC hB QC RC","388":"H"},J:{"132":"D A"},K:{"132":"A B C YB gB ZB","388":"Q"},L:{"388":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"132":"SC"},P:{"132":"I","388":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"388":"cC"},R:{"388":"dC"},S:{"132":"eC"}},B:5,C:"CSS text-indent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js index 69a95a79e724a3..d4d2e03babc038 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"J D gB","132":"E F A B"},B:{"132":"C K L G M N O","322":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB jB kB","1025":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","1602":"BB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j 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 CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB","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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","322":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","322":"Q"},L:{"322":"H"},M:{"1025":"P"},N:{"132":"A B"},O:{"2":"RC"},P:{"2":"I","322":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"322":"bC"},R:{"322":"cC"},S:{"2":"dC"}},B:5,C:"CSS text-justify"}; +module.exports={A:{A:{"16":"J D iB","132":"E F A B"},B:{"132":"C K L G M N O","322":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB lB mB","1025":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","1602":"CB"},D:{"2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","322":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB","322":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","322":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","322":"Q"},L:{"322":"H"},M:{"1025":"P"},N:{"132":"A B"},O:{"2":"SC"},P:{"2":"I","322":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"322":"cC"},R:{"322":"dC"},S:{"2":"eC"}},B:5,C:"CSS text-justify"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js index 4fc0e061c4ce86..3da061c9167682 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB","194":"v w x"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"L G uB vB","2":"I b J D E F oB cB pB qB rB sB","16":"A","33":"B C K dB VB WB tB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS text-orientation"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB","194":"w x y"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"L G vB wB","2":"I c J D E F pB eB qB rB sB tB","16":"A","33":"B C K fB YB ZB uB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS text-orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js index 727bfdc19fcdaa..3a6d7002206a02 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","161":"E F A B"},B:{"2":"R S T U V W X Y Z P a H","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"CSS Text 4 text-spacing"}; +module.exports={A:{A:{"2":"J D iB","161":"E F A B"},B:{"2":"R S T U V W X Y Z a P b H","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"CSS Text 4 text-spacing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js index 2d5bdfd62b03ef..bc4191c468e5b4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","129":"A B"},B:{"1":"R S T U V W X Y Z P a H","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","260":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"4":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"A","4":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 Text-shadow"}; +module.exports={A:{A:{"2":"J D E F iB","129":"A B"},B:{"1":"R S T U V W X Y Z a P b H","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","260":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"4":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"A","4":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 Text-shadow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js index 6be2e07e459d77..c79d41d2c96d28 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"B","164":"A"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB","260":"CB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB","260":"z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"132":"B","164":"A"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"CSS touch-action level 2 values"}; +module.exports={A:{A:{"2":"J D E F iB","132":"B","164":"A"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB","260":"DB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","260":"0"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"132":"B","164":"A"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"CSS touch-action level 2 values"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js index e81acd167b28ed..28fe1fec748c63 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F gB","289":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","194":"0 1 2 3 4 5 6 7 8 m n o p q r s t u v w x y z","1025":"9 AB BB CB DB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B","516":"7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","289":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"194":"dC"}},B:2,C:"CSS touch-action property"}; +module.exports={A:{A:{"1":"B","2":"J D E F iB","289":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","194":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z","1025":"AB BB CB DB EB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B","516":"8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","289":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"194":"eC"}},B:2,C:"CSS touch-action property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js index 6c68bffeca919d..522876d0d42da6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"b J D E F A B C K L G","164":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F A B C K L G M N O c d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","33":"J pB","164":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F wB xB","33":"C","164":"B yB zB VB eB 0B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"3B","164":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"H PC QC","33":"XB I LC MC NC OC fB"},J:{"1":"A","33":"D"},K:{"1":"Q WB","33":"C","164":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS3 Transitions"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"c J D E F A B C K L G","164":"I"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I c J D E F A B C K L G M N O d e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","33":"J qB","164":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F xB yB","33":"C","164":"B zB 0B YB gB 1B"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"4B","164":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"H QC RC","33":"aB I MC NC OC PC hB"},J:{"1":"A","33":"D"},K:{"1":"Q ZB","33":"C","164":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS3 Transitions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js index e5ac1c31730dad..29ebaae67e73d0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"0 1 2 3 4 5 6 N O c d e f g h i j k l m n o p q r s t u v w x y z","132":"hB XB I b J D E F jB kB","292":"A B C K L G M"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M","548":"0 1 2 3 4 N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"132":"I b J D E oB cB pB qB rB","548":"F A B C K L G sB dB VB WB tB uB vB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"132":"E cB 1B fB 2B 3B 4B 5B","548":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"1":"H","16":"XB I LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"16":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"16":"bC"},R:{"16":"cC"},S:{"33":"dC"}},B:4,C:"CSS unicode-bidi property"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"0 1 2 3 4 5 6 7 N O d e f g h i j k l m n o p q r s t u v w x y z","132":"jB aB I c J D E F lB mB","292":"A B C K L G M"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M","548":"0 1 2 3 4 5 N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"132":"I c J D E pB eB qB rB sB","548":"F A B C K L G tB fB YB ZB uB vB wB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"132":"E eB 2B hB 3B 4B 5B 6B","548":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"1":"H","16":"aB I MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"1":"Q","16":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"16":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"16":"cC"},R:{"16":"dC"},S:{"33":"eC"}},B:4,C:"CSS unicode-bidi property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js index 39c80eb1bf7b64..081b881d44c2dc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS unset value"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS unset value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js index d1b4adb7a15932..85871706ee669d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L","260":"G"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"5"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB","260":"sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r wB xB yB zB VB eB 0B WB","194":"s"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B","260":"7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"CSS Variables (Custom Properties)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L","260":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"6"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB","260":"tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s xB yB zB 0B YB gB 1B ZB","194":"t"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B","260":"8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"CSS Variables (Custom Properties)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js index 9d49febbeb31ef..ba2b34cea35071 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D gB","129":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","129":"F B wB xB yB zB VB eB 0B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:2,C:"CSS widows & orphans"}; +module.exports={A:{A:{"1":"A B","2":"J D iB","129":"E F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","129":"F B xB yB zB 0B YB gB 1B"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:2,C:"CSS widows & orphans"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js index c96b587a0a2787..cecaf6c085f65f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB","322":"t u v w x"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J","16":"D","33":"0 1 2 3 4 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I oB cB","16":"b","33":"J D E F A pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g h i j k l m n o p q r"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB","33":"E 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"LC MC NC","33":"XB I OC fB PC QC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","33":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS writing-mode property"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB","322":"u v w x y"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J","16":"D","33":"0 1 2 3 4 5 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I pB eB","16":"c","33":"J D E F A qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h i j k l m n o p q r s"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB","33":"E 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"MC NC OC","33":"aB I PC hB QC RC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","33":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS writing-mode property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js index fd2f2b681255ab..d717567f0932b7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D gB","129":"E F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"129":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"CSS zoom"}; +module.exports={A:{A:{"1":"J D iB","129":"E F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"129":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"CSS zoom"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js index 012f8c6fcd8dcc..2fe35453b497c4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"CSS3 attr() function for all properties"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"CSS3 attr() function for all properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js index 9e20f9e412df8c..ebf88440091360 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","8":"J D gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","33":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"cB 1B fB"},H:{"1":"KC"},I:{"1":"I H OC fB PC QC","33":"XB LC MC NC"},J:{"1":"A","33":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS3 Box-sizing"}; +module.exports={A:{A:{"1":"E F A B","8":"J D iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I c J D E F"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","33":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"eB 2B hB"},H:{"1":"LC"},I:{"1":"I H PC hB QC RC","33":"aB MC NC OC"},J:{"1":"A","33":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS3 Box-sizing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js index 923b5d6d4b06b0..9e095325946d74 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","4":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","2":"F","4":"wB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS3 Colors"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","4":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","2":"F","4":"xB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS3 Colors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js index 999f732daa581b..5aa6f4a0b5a081 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K L"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"hB XB I b J D E F A B C K L G M N O c d e f g h i j jB kB"},D:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB"},E:{"1":"B C K L G VB WB tB uB vB","33":"I b J D E F A oB cB pB qB rB sB dB"},F:{"1":"C CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:3,C:"CSS grab & grabbing cursors"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C K L"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"jB aB I c J D E F A B C K L G M N O d e f g h i j k lB mB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB"},E:{"1":"B C K L G YB ZB uB vB wB","33":"I c J D E F A pB eB qB rB sB tB fB"},F:{"1":"C DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:3,C:"CSS grab & grabbing cursors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js index 0866324f66f4f1..52239319104015 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"hB XB I b J D E F A B C K L G M N O c d e f g jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","33":"I b J D E oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB","33":"G M N O c d e f g"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"CSS3 Cursors: zoom-in & zoom-out"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"jB aB I c J D E F A B C K L G M N O d e f g h lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","33":"I c J D E pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB","33":"G M N O d e f g h"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"CSS3 Cursors: zoom-in & zoom-out"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js index 127938c32b0a24..00a619b1b9917d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"J D E gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","4":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","4":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","260":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"CSS3 Cursors (original values)"}; +module.exports={A:{A:{"1":"F A B","132":"J D E iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","4":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","4":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","260":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"CSS3 Cursors (original values)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js index d4b8931ca86cc6..bf1756cce9f6ea 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"H","2":"hB XB jB kB","33":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a","164":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j 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 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d","132":"e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"L G tB uB vB","2":"I b J oB cB pB","132":"D E F A B C K qB rB sB dB VB WB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB yB","132":"G M N O c d e f g h i j k l","164":"B C zB VB eB 0B WB"},G:{"1":"HC IC JC","2":"cB 1B fB 2B 3B","132":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"164":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","132":"PC QC"},J:{"132":"D A"},K:{"1":"Q","2":"A","164":"B C VB eB WB"},L:{"1":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"164":"dC"}},B:5,C:"CSS3 tab-size"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"b H dB","2":"jB aB lB mB","33":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P","164":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e","132":"f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"L G uB vB wB","2":"I c J pB eB qB","132":"D E F A B C K rB sB tB fB YB ZB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB zB","132":"G M N O d e f g h i j k l m","164":"B C 0B YB gB 1B ZB"},G:{"1":"IC JC KC","2":"eB 2B hB 3B 4B","132":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"164":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","132":"QC RC"},J:{"132":"D A"},K:{"1":"Q","2":"A","164":"B C YB gB ZB"},L:{"1":"H"},M:{"33":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"164":"eC"}},B:5,C:"CSS3 tab-size"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js index e5279c33e1bee7..a26addd5cd6c75 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS currentColor value"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS currentColor value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js index 2fedd254e71834..1461a61ae474ba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","8":"A B"},B:{"1":"R","2":"S T U V W X Y Z P a H","8":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","66":"g h i j k l m","72":"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"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","2":"I b J D E F A B C K L G M N O c d e f g h i j S T U V W X Y Z P a H lB mB nB","66":"k l m n o p"},E:{"2":"I b oB cB pB","8":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB","2":"F B C LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","66":"G M N O c"},G:{"2":"cB 1B fB 2B 3B","8":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"QC","2":"XB I H LC MC NC OC fB PC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC","2":"ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"72":"dC"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; +module.exports={A:{A:{"2":"J D E F iB","8":"A B"},B:{"1":"R","2":"S T U V W X Y Z a P b H","8":"C K L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","66":"h i j k l m n","72":"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"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","2":"I c J D E F A B C K L G M N O d e f g h i j k S T U V W X Y Z a P b H dB nB oB","66":"l m n o p q"},E:{"2":"I c pB eB qB","8":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB","2":"F B C MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","66":"G M N O d"},G:{"2":"eB 2B hB 3B 4B","8":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"RC","2":"aB I H MC NC OC PC hB QC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC","2":"aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"72":"eC"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js index e01bc3a2911d10..3df2664f8b3f42 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","8":"A B"},B:{"1":"R S T U V W X Y Z P a H","8":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m jB kB","8":"0 1 2 3 4 5 6 n o p q r s t u v w x y z","456":"7 8 9 AB BB CB DB EB FB","712":"YB GB ZB Q"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","8":"9 AB","132":"BB CB DB EB FB YB GB ZB Q HB IB JB KB"},E:{"2":"I b J D oB cB pB qB rB","8":"E F A sB","132":"B C K L G dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B","132":"9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I","132":"SC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"8":"dC"}},B:1,C:"Custom Elements (V1)"}; +module.exports={A:{A:{"2":"J D E F iB","8":"A B"},B:{"1":"R S T U V W X Y Z a P b H","8":"C K L G M N O"},C:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n lB mB","8":"0 1 2 3 4 5 6 7 o p q r s t u v w x y z","456":"8 9 AB BB CB DB EB FB GB","712":"bB HB cB IB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","8":"AB BB","132":"CB DB EB FB GB bB HB cB IB JB Q KB LB"},E:{"2":"I c J D pB eB qB rB sB","8":"E F A tB","132":"B C K L G fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","132":"AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I","132":"TC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"8":"eC"}},B:1,C:"Custom Elements (V1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js index d0c35007b9e1ef..c1ca4dceed5812 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB","132":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I","16":"b J D E K L","388":"F A B C"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I oB cB","16":"b J","388":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F wB xB yB zB","132":"B VB eB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"1B","16":"cB fB","388":"2B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"LC MC NC","388":"XB I OC fB"},J:{"1":"A","388":"D"},K:{"1":"C Q WB","2":"A","132":"B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"CustomEvent"}; +module.exports={A:{A:{"2":"J D E iB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB","132":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I","16":"c J D E K L","388":"F A B C"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I pB eB","16":"c J","388":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F xB yB zB 0B","132":"B YB gB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"2B","16":"eB hB","388":"3B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"MC NC OC","388":"aB I PC hB"},J:{"1":"A","388":"D"},K:{"1":"C Q ZB","2":"A","132":"B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"CustomEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js index 3a0d214e6534cf..cfd2e834b06cfe 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E F","260":"A B"},B:{"1":"R S T U V W X Y Z P a H","260":"C K L G","1284":"M N O"},C:{"8":"hB XB jB kB","4612":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I b J D E F A B C K L G M N O c","132":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB"},E:{"1":"K L G WB tB uB vB","8":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"1":"F B C IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB"},G:{"8":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC","2049":"DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H QC","8":"XB I LC MC NC OC fB PC"},J:{"1":"A","8":"D"},K:{"1":"A B C VB eB WB","8":"Q"},L:{"1":"H"},M:{"516":"P"},N:{"8":"A B"},O:{"8":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"Datalist element"}; +module.exports={A:{A:{"2":"iB","8":"J D E F","260":"A B"},B:{"1":"R S T U V W X Y Z a P b H","260":"C K L G","1284":"M N O"},C:{"8":"jB aB lB mB","4612":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I c J D E F A B C K L G M N O d","132":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB"},E:{"1":"K L G ZB uB vB wB","8":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"1":"F B C Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l 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:{"8":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2049":"EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H RC","8":"aB I MC NC OC PC hB QC"},J:{"1":"A","8":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"516":"P"},N:{"8":"A B"},O:{"8":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"Datalist element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js index 9d61dda166baaf..ab19118df29605 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","4":"J D E F A gB"},B:{"1":"C K L G M","129":"N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","4":"hB XB I b jB kB","129":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"2 3 4 5 6 7 8 9 AB BB","4":"I b J","129":"0 1 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"4":"I b oB cB","129":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"1":"C p q r s t u v w x y VB eB 0B WB","4":"F B wB xB yB zB","129":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"4":"cB 1B fB","129":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"4":"KC"},I:{"4":"LC MC NC","129":"XB I H OC fB PC QC"},J:{"129":"D A"},K:{"1":"C VB eB WB","4":"A B","129":"Q"},L:{"129":"H"},M:{"129":"P"},N:{"1":"B","4":"A"},O:{"129":"RC"},P:{"129":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"129":"cC"},S:{"1":"dC"}},B:1,C:"dataset & data-* attributes"}; +module.exports={A:{A:{"1":"B","4":"J D E F A iB"},B:{"1":"C K L G M","129":"N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","4":"jB aB I c lB mB","129":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB","4":"I c J","129":"0 1 2 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"4":"I c pB eB","129":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"C q r s t u v w x y z YB gB 1B ZB","4":"F B xB yB zB 0B","129":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"4":"eB 2B hB","129":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"4":"LC"},I:{"4":"MC NC OC","129":"aB I H PC hB QC RC"},J:{"129":"D A"},K:{"1":"C YB gB ZB","4":"A B","129":"Q"},L:{"129":"H"},M:{"129":"P"},N:{"1":"B","4":"A"},O:{"129":"SC"},P:{"129":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"129":"dC"},S:{"1":"eC"}},B:1,C:"dataset & data-* attributes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js index 270491c9728e81..0fa96658493b77 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","132":"E","260":"F A B"},B:{"1":"R S T U V W X Y Z P a H","260":"C K G M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Data URIs"}; +module.exports={A:{A:{"2":"J D iB","132":"E","260":"F A B"},B:{"1":"R S T U V W X Y Z a P b H","260":"C K G M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Data URIs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js index 70469f75ba18d0..91255111781a6e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"gB","132":"J D E F A B"},B:{"1":"O R S T U V W X Y Z P a H","132":"C K L G M N"},C:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","260":"9 AB BB CB","772":"0 1 2 3 4 5 6 7 8 m n o p q r s t u v w x y z"},D:{"1":"OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g","260":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB","772":"h i j k l m n o p q r s t u"},E:{"1":"C K L G WB tB uB vB","16":"I b oB cB","132":"J D E F A pB qB rB sB","260":"B dB VB"},F:{"1":"EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B C wB xB yB zB VB eB 0B","132":"WB","260":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB","772":"G M N O c d e f g h"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B","132":"E 3B 4B 5B 6B 7B 8B"},H:{"132":"KC"},I:{"1":"H","16":"XB LC MC NC","132":"I OC fB","772":"PC QC"},J:{"132":"D A"},K:{"1":"Q","16":"A B C VB eB","132":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"260":"RC"},P:{"1":"WC dB XC YC ZC aC","260":"I SC TC UC VC"},Q:{"260":"bC"},R:{"132":"cC"},S:{"132":"dC"}},B:6,C:"Date.prototype.toLocaleDateString"}; +module.exports={A:{A:{"16":"iB","132":"J D E F A B"},B:{"1":"O R S T U V W X Y Z a P b H","132":"C K L G M N"},C:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","260":"AB BB CB DB","772":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z"},D:{"1":"PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h","260":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB","772":"i j k l m n o p q r s t u v"},E:{"1":"C K L G ZB uB vB wB","16":"I c pB eB","132":"J D E F A qB rB sB tB","260":"B fB YB"},F:{"1":"FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B C xB yB zB 0B YB gB 1B","132":"ZB","260":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB","772":"G M N O d e f g h i"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B","132":"E 4B 5B 6B 7B 8B 9B"},H:{"132":"LC"},I:{"1":"H","16":"aB MC NC OC","132":"I PC hB","772":"QC RC"},J:{"132":"D A"},K:{"1":"Q","16":"A B C YB gB","132":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"260":"SC"},P:{"1":"XC fB YC ZC aC bC","260":"I TC UC VC WC"},Q:{"260":"cC"},R:{"132":"dC"},S:{"132":"eC"}},B:6,C:"Date.prototype.toLocaleDateString"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js index 173790ca50a11d..ac2cf9080d55ea 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B gB","8":"J D E"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","8":"0 1 2 3 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"4 5"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I b J D E F A B","257":"c d e f g h i j k l m n o p q r s","769":"C K L G M N O"},E:{"1":"C K L G WB tB uB vB","8":"I b oB cB pB","257":"J D E F A qB rB sB","1025":"B dB VB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"C VB eB 0B WB","8":"F B wB xB yB zB"},G:{"1":"E 3B 4B 5B 6B 7B BC CC DC EC FC GC HC IC JC","8":"cB 1B fB 2B","1025":"8B 9B AC"},H:{"8":"KC"},I:{"1":"I H OC fB PC QC","8":"XB LC MC NC"},J:{"1":"A","8":"D"},K:{"1":"Q","8":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"769":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Details & Summary elements"}; +module.exports={A:{A:{"2":"F A B iB","8":"J D E"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","8":"0 1 2 3 4 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","194":"5 6"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I c J D E F A B","257":"d e f g h i j k l m n o p q r s t","769":"C K L G M N O"},E:{"1":"C K L G ZB uB vB wB","8":"I c pB eB qB","257":"J D E F A rB sB tB","1025":"B fB YB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"C YB gB 1B ZB","8":"F B xB yB zB 0B"},G:{"1":"E 4B 5B 6B 7B 8B CC DC EC FC GC HC IC JC KC","8":"eB 2B hB 3B","1025":"9B AC BC"},H:{"8":"LC"},I:{"1":"I H PC hB QC RC","8":"aB MC NC OC"},J:{"1":"A","8":"D"},K:{"1":"Q","8":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"769":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Details & Summary elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js index 15706d59fefdfe..ed1efd18d3a751 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"C K L G M N O","4":"R S T U V W X Y Z P a H"},C:{"2":"hB XB jB","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"I b kB"},D:{"2":"I b J","4":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","4":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B","4":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"LC MC NC","4":"XB I H OC fB PC QC"},J:{"2":"D","4":"A"},K:{"1":"C WB","2":"A B VB eB","4":"Q"},L:{"4":"H"},M:{"4":"P"},N:{"1":"B","2":"A"},O:{"4":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"4":"cC"},S:{"4":"dC"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"C K L G M N O","4":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB lB","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"I c mB"},D:{"2":"I c J","4":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","4":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B","4":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"MC NC OC","4":"aB I H PC hB QC RC"},J:{"2":"D","4":"A"},K:{"1":"C ZB","2":"A B YB gB","4":"Q"},L:{"4":"H"},M:{"4":"P"},N:{"1":"B","2":"A"},O:{"4":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"4":"dC"},S:{"4":"eC"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js index 5eeaf96c3a012d..8c22dca5b1c92d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Window.devicePixelRatio"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Window.devicePixelRatio"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js index b9c74e5abf6047..1bec241a7702f6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","1218":"S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o","322":"p q r s t"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O wB xB yB zB VB eB 0B WB","578":"c d e f g"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"Dialog element"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB","194":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","1218":"S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p","322":"q r s t u"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O xB yB zB 0B YB gB 1B ZB","578":"d e f g h"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"Dialog element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js index 9bd3d886225b07..d562d1d8e69025 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"gB","129":"F A","130":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","16":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","129":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"EventTarget.dispatchEvent"}; +module.exports={A:{A:{"1":"B","16":"iB","129":"F A","130":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","16":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","129":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"EventTarget.dispatchEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js index 798e163cd36efe..3913b4d0afbc72 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"J D E F A B gB"},B:{"132":"C K L G M N O R S T U V W X Y Z P a H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I b o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","388":"J D E F A B C K L G M N O c d e f g h i j k l m n"},E:{"132":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"132":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"132":"KC"},I:{"132":"XB I H LC MC NC OC fB PC QC"},J:{"132":"D A"},K:{"132":"A B C Q VB eB WB"},L:{"132":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"132":"RC"},P:{"132":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"132":"dC"}},B:6,C:"DNSSEC and DANE"}; +module.exports={A:{A:{"132":"J D E F A B iB"},B:{"132":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I c p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","388":"J D E F A B C K L G M N O d e f g h i j k l m n o"},E:{"132":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"132":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"132":"LC"},I:{"132":"aB I H MC NC OC PC hB QC RC"},J:{"132":"D A"},K:{"132":"A B C Q YB gB ZB"},L:{"132":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"132":"SC"},P:{"132":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"132":"eC"}},B:6,C:"DNSSEC and DANE"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js index 29980a172ee0d9..7e41fee6e54cf5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","164":"F A","260":"B"},B:{"1":"N O R S T U V W X Y Z P a H","260":"C K L G M"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E jB kB","516":"F A B C K L G M N O c d e f g h i j k l m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f"},E:{"1":"J A B C pB sB dB VB","2":"I b K L G oB cB WB tB uB vB","1028":"D E F qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B"},G:{"1":"6B 7B 8B 9B AC BC CC","2":"cB 1B fB 2B 3B DC EC FC GC HC IC JC","1028":"E 4B 5B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"16":"D","1028":"A"},K:{"1":"Q WB","16":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"164":"A","260":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Do Not Track API"}; +module.exports={A:{A:{"2":"J D E iB","164":"F A","260":"B"},B:{"1":"N O R S T U V W X Y Z a P b H","260":"C K L G M"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E lB mB","516":"F A B C K L G M N O d e f g h i j k l m n o p"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g"},E:{"1":"J A B C qB tB fB YB","2":"I c K L G pB eB ZB uB vB wB","1028":"D E F rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B"},G:{"1":"7B 8B 9B AC BC CC DC","2":"eB 2B hB 3B 4B EC FC GC HC IC JC KC","1028":"E 5B 6B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"16":"D","1028":"A"},K:{"1":"Q ZB","16":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"164":"A","260":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Do Not Track API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js index 823db0423e11ee..625531d91f76f9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"document.currentScript"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m"},E:{"1":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"document.currentScript"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js index cb7bd905d9680e..8c0ac067cfbb30 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","16":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"document.evaluate & XPath"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","16":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"document.evaluate & XPath"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js index 6292f4db80bd74..27983df5e67f87 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","16":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","16":"F wB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B","16":"fB 2B 3B"},H:{"2":"KC"},I:{"1":"H OC fB PC QC","2":"XB I LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"Document.execCommand()"}; +module.exports={A:{A:{"1":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","16":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","16":"F xB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B","16":"hB 3B 4B"},H:{"2":"LC"},I:{"1":"H PC hB QC RC","2":"aB I MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"Document.execCommand()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js index 45ae7ec96abc3a..8e9db52ad700d4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V","132":"W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V","132":"W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB wB xB yB zB VB eB 0B WB","132":"PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","132":"H"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"132":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Document Policy"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V","132":"W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V","132":"W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB xB yB zB 0B YB gB 1B ZB","132":"QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","132":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","132":"Q"},L:{"132":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Document Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js index 72689926119e4e..e0eb9b93584169 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","16":"C K"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"document.scrollingElement"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","16":"C K"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"document.scrollingElement"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js index e4eed5c3868957..85e8dfbfb4962c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB","16":"b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F wB xB yB zB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"document.head"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB","16":"c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F xB yB zB 0B"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"document.head"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js index 44abc1777c2820..3900803a774fba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"9 AB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w wB xB yB zB VB eB 0B WB","194":"x"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"194":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"DOM manipulation convenience methods"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"AB BB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x xB yB zB 0B YB gB 1B ZB","194":"y"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"194":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"DOM manipulation convenience methods"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js index c646b5d4d33489..2c18b3cdcddab1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Document Object Model Range"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Document Object Model Range"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js index 48508a38dba0ae..dd48632902f425 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"DOMContentLoaded"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"DOMContentLoaded"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js index b73fab54282d04..e42ca88c621555 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L G M N O c d e f g h i"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB","16":"b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","16":"F B wB xB yB zB VB eB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B 3B"},H:{"16":"KC"},I:{"1":"I H OC fB PC QC","16":"XB LC MC NC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"DOMFocusIn & DOMFocusOut events"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L G M N O d e f g h i j"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB","16":"c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","16":"F B xB yB zB 0B YB gB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B 4B"},H:{"16":"LC"},I:{"1":"I H PC hB QC RC","16":"aB MC NC OC"},J:{"16":"D A"},K:{"1":"Q","16":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"DOMFocusIn & DOMFocusOut events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js index 253296ed298bcc..986816623c85e0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"132":"C K L G M N O","1028":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","1028":"NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2564":"0 1 2 3 4 5 q r s t u v w x y z","3076":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB"},D:{"16":"I b J D","132":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB","388":"E","1028":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"16":"I oB cB","132":"b J D E F A pB qB rB sB dB","1028":"B C K L G VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 G M N O c d e f g h i j k l m n o p q r s t u v w x y z","1028":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"16":"cB 1B fB","132":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"132":"I OC fB PC QC","292":"XB LC MC NC","1028":"H"},J:{"16":"D","132":"A"},K:{"2":"A B C VB eB WB","132":"Q"},L:{"1028":"H"},M:{"1028":"P"},N:{"132":"A B"},O:{"132":"RC"},P:{"132":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"2564":"dC"}},B:4,C:"DOMMatrix"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"132":"C K L G M N O","1028":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","1028":"OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2564":"0 1 2 3 4 5 6 r s t u v w x y z","3076":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB"},D:{"16":"I c J D","132":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB","388":"E","1028":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"16":"I pB eB","132":"c J D E F A qB rB sB tB fB","1028":"B C K L G YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 G M N O d e f g h i j k l m n o p q r s t u v w x y z","1028":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"16":"eB 2B hB","132":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"132":"I PC hB QC RC","292":"aB MC NC OC","1028":"H"},J:{"16":"D","132":"A"},K:{"2":"A B C YB gB ZB","1028":"Q"},L:{"1028":"H"},M:{"1028":"P"},N:{"132":"A B"},O:{"132":"SC"},P:{"132":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"2564":"eC"}},B:4,C:"DOMMatrix"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js index 7025d1ba48ba0a..1792bbce658360 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Download attribute"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Download attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js index 26b58acd41aada..c34fe26c0ab491 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"J D E F gB","772":"A B"},B:{"1":"O R S T U V W X Y Z P a H","260":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","8":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","8":"F B wB xB yB zB VB eB 0B"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","1025":"H"},J:{"2":"D A"},K:{"1":"WB","8":"A B C VB eB","1025":"Q"},L:{"1025":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"Drag and Drop"}; +module.exports={A:{A:{"644":"J D E F iB","772":"A B"},B:{"1":"O R S T U V W X Y Z a P b H","260":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","8":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","8":"F B xB yB zB 0B YB gB 1B"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","1025":"H"},J:{"2":"D A"},K:{"1":"ZB","8":"A B C YB gB","1025":"Q"},L:{"1025":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"Drag and Drop"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js index 8f8cfaae66862b..564a094fef83c2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K L"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Element.closest()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Element.closest()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js index a361d7fc944ebf..2c9217add30285 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","16":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","16":"F wB xB yB zB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"C Q WB","16":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"document.elementFromPoint()"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","16":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","16":"F xB yB zB 0B"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"C Q ZB","16":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"document.elementFromPoint()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js index e7509464a89850..8f314d18969119 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB"},E:{"1":"L G uB vB","2":"I b J D E F oB cB pB qB rB sB","132":"A B C K dB VB WB tB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","132":"8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB"},E:{"1":"L G vB wB","2":"I c J D E F pB eB qB rB sB tB","132":"A B C K fB YB ZB uB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","132":"9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js index 931fcd1c1137de..486cad851aa9b1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","164":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r","132":"s t u v w x y"},E:{"1":"C K L G WB tB uB vB","2":"I b J oB cB pB qB","164":"D E F A B rB sB dB VB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e wB xB yB zB VB eB 0B WB","132":"f g h i j k l"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"16":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:2,C:"Encrypted Media Extensions"}; +module.exports={A:{A:{"2":"J D E F A iB","164":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s","132":"t u v w x y z"},E:{"1":"C K L G ZB uB vB wB","2":"I c J pB eB qB rB","164":"D E F A B sB tB fB YB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f xB yB zB 0B YB gB 1B ZB","132":"g h i j k l m"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"16":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:2,C:"Encrypted Media Extensions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js index 0e4eed3cb67e8c..63e09e82ecdf7e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","2":"gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"EOT - Embedded OpenType fonts"}; +module.exports={A:{A:{"1":"J D E F A B","2":"iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"EOT - Embedded OpenType fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js index c9ddde9d3e09e7..bacdb6ce6ac443 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D gB","260":"F","1026":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","4":"hB XB jB kB","132":"I b J D E F A B C K L G M N O c d"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I b J D E F A B C K L G M N O","132":"c d e f"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","4":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","4":"F B C wB xB yB zB VB eB 0B","132":"WB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","4":"cB 1B fB 2B"},H:{"132":"KC"},I:{"1":"H PC QC","4":"XB LC MC NC","132":"OC fB","900":"I"},J:{"1":"A","4":"D"},K:{"1":"Q","4":"A B C VB eB","132":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ECMAScript 5"}; +module.exports={A:{A:{"1":"A B","2":"J D iB","260":"F","1026":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","4":"jB aB lB mB","132":"I c J D E F A B C K L G M N O d e"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I c J D E F A B C K L G M N O","132":"d e f g"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","4":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","4":"F B C xB yB zB 0B YB gB 1B","132":"ZB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","4":"eB 2B hB 3B"},H:{"132":"LC"},I:{"1":"H QC RC","4":"aB MC NC OC","132":"PC hB","900":"I"},J:{"1":"A","4":"D"},K:{"1":"Q","4":"A B C YB gB","132":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ECMAScript 5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js index 4c08dd6ecd2148..c033ae78e7607a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y","132":"0 1 2 3 4 5 z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l wB xB yB zB VB eB 0B WB","132":"m n o p q r s"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ES6 classes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j 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":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m xB yB zB 0B YB gB 1B ZB","132":"n o p q r s t"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ES6 classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js index f6ac5d7320b14b..287b7b3c8dbe68 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ES6 Generators"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ES6 Generators"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js index 1729b6400a7ca1..04fb2136286347 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB jB kB","194":"KB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"JavaScript modules: dynamic import()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB lB mB","194":"LB"},D:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"JavaScript modules: dynamic import()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js index 50a96acfb0e9b5..44afbaa3e6459f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L","4097":"M N O","4290":"G"},C:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB jB kB","322":"BB CB DB EB FB YB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","194":"GB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB","3076":"dB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","194":"4"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B","3076":"9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"JavaScript modules via script tag"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L","4097":"M N O","4290":"G"},C:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB lB mB","322":"CB DB EB FB GB bB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","194":"HB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB","3076":"fB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","194":"5"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","3076":"AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"JavaScript modules via script tag"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js index 625f82af700708..f9e3da13f1f8eb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G jB kB","132":"M N O c d e f g h","260":"i j k l m n","516":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O","1028":"c d e f g h i j k l m n o p q"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","1028":"G M N O c d"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC","1028":"OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ES6 Number"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G lB mB","132":"M N O d e f g h i","260":"j k l m n o","516":"p"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O","1028":"d e f g h i j k l m n o p q r"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","1028":"G M N O d e"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC","1028":"PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ES6 Number"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js index 73b486ed1ca846..ddca32c981dd58 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"String.prototype.includes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"String.prototype.includes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js index ed0584fb48c721..8863ebd6156e2c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","388":"B"},B:{"257":"R S T U V W X Y Z P a H","260":"C K L","769":"G M N O"},C:{"2":"hB XB I b jB kB","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB","257":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I b J D E F A B C K L G M N O c d","4":"0 1 2 3 4 5 6 7 e f g h i j k l m n o p q r s t u v w x y z","257":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D oB cB pB qB","4":"E F rB sB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","4":"G M N O c d e f g h i j k l m n o p q r s t u","257":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B","4":"E 4B 5B 6B 7B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","4":"PC QC","257":"H"},J:{"2":"D","4":"A"},K:{"2":"A B C VB eB WB","257":"Q"},L:{"257":"H"},M:{"257":"P"},N:{"2":"A","388":"B"},O:{"257":"RC"},P:{"4":"I","257":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"257":"bC"},R:{"4":"cC"},S:{"4":"dC"}},B:6,C:"ECMAScript 2015 (ES6)"}; +module.exports={A:{A:{"2":"J D E F A iB","388":"B"},B:{"257":"R S T U V W X Y Z a P b H","260":"C K L","769":"G M N O"},C:{"2":"jB aB I c lB mB","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB","257":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C K L G M N O d e","4":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z","257":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","4":"E F sB tB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","4":"G M N O d e f g h i j k l m n o p q r s t u v","257":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B","4":"E 5B 6B 7B 8B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","4":"QC RC","257":"H"},J:{"2":"D","4":"A"},K:{"2":"A B C YB gB ZB","257":"Q"},L:{"257":"H"},M:{"257":"P"},N:{"2":"A","388":"B"},O:{"257":"SC"},P:{"4":"I","257":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"257":"cC"},R:{"4":"dC"},S:{"4":"eC"}},B:6,C:"ECMAScript 2015 (ES6)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js index d9da0e2f99cc8c..c52fb0c63ad491 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","4":"F wB xB yB zB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"C Q VB eB WB","4":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Server-sent events"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","4":"F xB yB zB 0B"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"C Q YB gB ZB","4":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Server-sent events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js index 5660dfeebee61e..9937c1e15a9539 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"L G tB uB vB","2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},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 iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"L G uB vB wB","2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js index 7128833d52326a..72bc20a7bea842 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y","2":"C K L G M N O","1025":"Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB jB kB","260":"SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"SB TB UB aB bB R S T U V W X Y","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","132":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB","1025":"Z P a H lB mB nB"},E:{"2":"I b J D E F A B oB cB pB qB rB sB dB","772":"C K L G VB WB tB uB vB"},F:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB","2":"0 1 2 3 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","132":"4 5 6 7 8 9 AB BB CB DB EB FB GB","1025":"TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC","772":"BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1025":"H"},M:{"260":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC","132":"VC WC dB"},Q:{"132":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Feature Policy"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y","2":"C K L G M N O","1025":"Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB lB mB","260":"TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"TB UB VB WB XB R S T U V W X Y","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","132":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB","1025":"Z a P b H dB nB oB"},E:{"2":"I c J D E F A B pB eB qB rB sB tB fB","772":"C K L G YB ZB uB vB wB"},F:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB","2":"0 1 2 3 4 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","132":"5 6 7 8 9 AB BB CB DB EB FB GB HB","1025":"UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC","772":"CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1025":"H"},M:{"260":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC","132":"WC XC fB"},Q:{"132":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Feature Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js index c80700f2856b68..4bc7081ae5ae60 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q jB kB","1025":"w","1218":"r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w","260":"x","772":"y"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j wB xB yB zB VB eB 0B WB","260":"k","772":"l"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Fetch"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r lB mB","1025":"x","1218":"s t u v w"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x","260":"y","772":"z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k xB yB zB 0B YB gB 1B ZB","260":"l","772":"m"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Fetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js index 15e0289a26eeaf..eaec4cd6860271 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"gB","132":"E F","388":"J D A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G","16":"M N O c"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","16":"F wB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"388":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A","260":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"disabled attribute of the fieldset element"}; +module.exports={A:{A:{"16":"iB","132":"E F","388":"J D A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G","16":"M N O d"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","16":"F xB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"388":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A","260":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"disabled attribute of the fieldset element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js index 8004e70edd0002..dc50e0689ad40f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","260":"A B"},B:{"1":"R S T U V W X Y Z P a H","260":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","260":"I b J D E F A B C K L G M N O c d e f g h i j k kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b","260":"K L G M N O c d e f g h i j k l m n o p q r s t u","388":"J D E F A B C"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b oB cB","260":"J D E F qB rB sB","388":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B wB xB yB zB","260":"C G M N O c d e f g h VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","260":"E 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H QC","2":"LC MC NC","260":"PC","388":"XB I OC fB"},J:{"260":"A","388":"D"},K:{"1":"Q","2":"A B","260":"C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","260":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"File API"}; +module.exports={A:{A:{"2":"J D E F iB","260":"A B"},B:{"1":"R S T U V W X Y Z a P b H","260":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","260":"I c J D E F A B C K L G M N O d e f g h i j k l mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c","260":"K L G M N O d e f g h i j k l m n o p q r s t u v","388":"J D E F A B C"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c pB eB","260":"J D E F rB sB tB","388":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B xB yB zB 0B","260":"C G M N O d e f g h i YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","260":"E 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H RC","2":"MC NC OC","260":"QC","388":"aB I PC hB"},J:{"260":"A","388":"D"},K:{"1":"Q","2":"A B","260":"C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","260":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"File API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js index 342b5a344245ed..416fc1a3ed50ae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F B wB xB yB zB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"C Q VB eB WB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"FileReader API"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F B xB yB zB 0B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"C Q YB gB ZB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"FileReader API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js index 2f9bc30ce6e9fe..eaa5a03387c296 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F wB xB","16":"B yB zB VB eB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"C Q eB WB","2":"A","16":"B VB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"FileReaderSync"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F xB yB","16":"B zB 0B YB gB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"C Q gB ZB","2":"A","16":"B YB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"FileReaderSync"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js index a66e1e8e712564..82aa37b45ada3e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"I b J D","33":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","36":"E F A B C"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","33":"A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I","33":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Filesystem & FileWriter API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","33":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"I c J D","33":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","36":"E F A B C"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","33":"A"},K:{"2":"A B C Q YB gB ZB"},L:{"33":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I","33":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Filesystem & FileWriter API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js index 02f957e9bf2608..13187cc06bdfab 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L G"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","16":"1 2 3","388":"4 5 6 7 8 9 AB BB CB"},E:{"1":"K L G tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","516":"B C VB WB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"LC MC NC","16":"XB I OC fB PC QC"},J:{"1":"A","2":"D"},K:{"1":"WB","16":"A B C VB eB","129":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","129":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:6,C:"FLAC audio format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","16":"2 3 4","388":"5 6 7 8 9 AB BB CB DB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","516":"B C YB ZB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"MC NC OC","16":"aB I PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","16":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","129":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:6,C:"FLAC audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js index 4c070fa846b920..cd3b375907937e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"V W X Y Z P a H","2":"C K L G M N O R S T U"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q jB kB"},D:{"1":"V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U"},E:{"1":"G uB vB","2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB"},F:{"1":"RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"gap property for Flexbox"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"V W X Y Z a P b H","2":"C K L G M N O R S T U"},C:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB lB mB"},D:{"1":"V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U"},E:{"1":"G vB wB","2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB"},F:{"1":"SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"gap property for Flexbox"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js index c2664fc3a3c232..a3f0d0d55fe691 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","1028":"B","1316":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","164":"hB XB I b J D E F A B C K L G M N O c d e jB kB","516":"f g h i j k"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"e f g h i j k l","164":"I b J D E F A B C K L G M N O c d"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","33":"D E qB rB","164":"I b J oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B","33":"G M"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"E 4B 5B","164":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"H PC QC","164":"XB I LC MC NC OC fB"},J:{"1":"A","164":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","292":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS Flexible Box Layout Module"}; +module.exports={A:{A:{"2":"J D E F iB","1028":"B","1316":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","164":"jB aB I c J D E F A B C K L G M N O d e f lB mB","516":"g h i j k l"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"f g h i j k l m","164":"I c J D E F A B C K L G M N O d e"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","33":"D E rB sB","164":"I c J pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B","33":"G M"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"E 5B 6B","164":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"H QC RC","164":"aB I MC NC OC PC hB"},J:{"1":"A","164":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","292":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS Flexible Box Layout Module"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js index 36e94694041a54..e5ce036fb79f31 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"K L G tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB WB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"display: flow-root"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB"},D:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB ZB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"display: flow-root"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js index c98fb3cbf2694f..ce40ae5ca62d30 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","2":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F wB xB yB zB","16":"B VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"I H OC fB PC QC","2":"LC MC NC","16":"XB"},J:{"1":"D A"},K:{"1":"C Q WB","2":"A","16":"B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"focusin & focusout events"}; +module.exports={A:{A:{"1":"J D E F A B","2":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F xB yB zB 0B","16":"B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"I H PC hB QC RC","2":"MC NC OC","16":"aB"},J:{"1":"D A"},K:{"1":"C Q ZB","2":"A","16":"B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"focusin & focusout events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js index 7f34497774586c..87a4b738662875 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M","132":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"preventScroll support in focus"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M","132":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"preventScroll support in focus"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js index faa946ede3d0dd..716aec05e6c294 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","132":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","260":"AB BB CB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E oB cB pB qB rB","16":"F","132":"A sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B","132":"6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"132":"dC"}},B:5,C:"system-ui value for font-family"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"H dB","2":"0 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB","260":"BB CB DB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB","16":"F","132":"A tB fB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B","132":"7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"132":"eC"}},B:5,C:"system-ui value for font-family"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js index 003c51326cd73b..c5a166ebdbf2c5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"G M N O c d e f g h i j k l m n o p q","164":"I b J D E F A B C K L"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G","33":"0 1 2 3 4 e f g h i j k l m n o p q r s t u v w x y z","292":"M N O c d"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"D E F oB cB qB rB","4":"I b J pB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g h i j k l m n o p q r"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E 4B 5B 6B","4":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","33":"PC QC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","33":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS font-feature-settings"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"G M N O d e f g h i j k l m n o p q r","164":"I c J D E F A B C K L"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G","33":"0 1 2 3 4 5 f g h i j k l m n o p q r s t u v w x y z","292":"M N O d e"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"D E F pB eB rB sB","4":"I c J qB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h i j k l m n o p q r s"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E 5B 6B 7B","4":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","33":"QC RC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","33":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS font-feature-settings"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js index 3cd2226c336c0b..925274f5a44f8c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g jB kB","194":"h i j k l m n o p q"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l","33":"m n o p"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J oB cB pB qB","33":"D E F rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G wB xB yB zB VB eB 0B WB","33":"M N O c"},G:{"1":"CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","33":"E 5B 6B 7B 8B 9B AC BC"},H:{"2":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB","33":"PC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 font-kerning"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h lB mB","194":"i j k l m n o p q r"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m","33":"n o p q"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB","33":"D E F sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G xB yB zB 0B YB gB 1B ZB","33":"M N O d"},G:{"1":"DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","33":"E 6B 7B 8B 9B AC BC CC"},H:{"2":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB","33":"QC"},J:{"2":"D","33":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 font-kerning"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js index 4bdd175f0f4b79..1921ef2605f4d3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r jB kB","194":"s t u v w x"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS Font Loading"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s lB mB","194":"t u v w x y"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS Font Loading"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js index 5d0f8c6e7e449e..2510d79dba8b3b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W","194":"X"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"@font-face metrics overrides"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W","194":"X"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"@font-face metrics overrides"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js index 53f16f1aba1a5c..364e36fe5adf50 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","194":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB","194":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"258":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"194":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"CSS font-size-adjust"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","194":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB","194":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"258":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"194":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"CSS font-size-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js index f5df92faa3bed5..9fd6b74ba90185 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","676":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB","804":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"oB cB","676":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","676":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"804":"dC"}},B:7,C:"CSS font-smooth"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","676":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB","804":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"pB eB","676":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","676":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"804":"eC"}},B:7,C:"CSS font-smooth"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js index e588acb79178de..f320a02b00b344 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","4":"F A B"},B:{"1":"N O R S T U V W X Y Z P a H","4":"C K L G M"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB","194":"0 t u v w x y 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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"1":"A B C K L G dB VB WB tB uB vB","4":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","4":"G M N O c d e f"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","4":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","4":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","4":"A"},K:{"2":"A B C VB eB WB","4":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","4":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"Font unicode-range subsetting"}; +module.exports={A:{A:{"2":"J D E iB","4":"F A B"},B:{"1":"N O R S T U V W X Y Z a P b H","4":"C K L G M"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB","194":"0 1 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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"1":"A B C K L G fB YB ZB uB vB wB","4":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","4":"G M N O d e f g"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","4":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","4":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","4":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","4":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"Font unicode-range subsetting"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js index d1164ceea401c5..5346a3eaf0145b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","130":"A B"},B:{"130":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","130":"I b J D E F A B C K L G M N O c d e f g","322":"h i j k l m n o p q"},D:{"2":"I b J D E F A B C K L G","130":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"D E F oB cB qB rB","130":"I b J pB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","130":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 4B 5B 6B","130":"1B fB 2B 3B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","130":"H PC QC"},J:{"2":"D","130":"A"},K:{"2":"A B C VB eB WB","130":"Q"},L:{"130":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"130":"RC"},P:{"130":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"130":"bC"},R:{"130":"cC"},S:{"1":"dC"}},B:5,C:"CSS font-variant-alternates"}; +module.exports={A:{A:{"2":"J D E F iB","130":"A B"},B:{"130":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","130":"I c J D E F A B C K L G M N O d e f g h","322":"i j k l m n o p q r"},D:{"2":"I c J D E F A B C K L G","130":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"D E F pB eB rB sB","130":"I c J qB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","130":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 5B 6B 7B","130":"2B hB 3B 4B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","130":"H QC RC"},J:{"2":"D","130":"A"},K:{"2":"A B C YB gB ZB","130":"Q"},L:{"130":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"130":"SC"},P:{"130":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"130":"cC"},R:{"130":"dC"},S:{"1":"eC"}},B:5,C:"CSS font-variant-alternates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js index 1109f0a92efd7a..023aaae4cab99e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g jB kB","132":"h i j k l m n o p q"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"CSS font-variant-east-asian "}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h lB mB","132":"i j k l m n o p q r"},D:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"CSS font-variant-east-asian "}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js index 83fbd969747433..7f032797ceb3d6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q jB kB"},D:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v wB xB yB zB VB eB 0B WB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:2,C:"CSS font-variant-numeric"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r lB mB"},D:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w xB yB zB 0B YB gB 1B ZB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:2,C:"CSS font-variant-numeric"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js index 43fb1098176b71..237e18be91cd41 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","2":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","2":"F wB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","260":"cB 1B"},H:{"2":"KC"},I:{"1":"I H OC fB PC QC","2":"LC","4":"XB MC NC"},J:{"1":"A","4":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"@font-face Web fonts"}; +module.exports={A:{A:{"1":"F A B","132":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","2":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","2":"F xB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","260":"eB 2B"},H:{"2":"LC"},I:{"1":"I H PC hB QC RC","2":"MC","4":"aB NC OC"},J:{"1":"A","4":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"@font-face Web fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js index a67ac783da0269..52c34b1e177d29 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB","16":"b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Form attribute"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB","16":"c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Form attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js index 5f2ae3eb75e7e2..5215eff01fbb92 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB","16":"xB yB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"I H OC fB PC QC","2":"LC MC NC","16":"XB"},J:{"1":"A","2":"D"},K:{"1":"B C Q VB eB WB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Attributes for form submission"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB","16":"yB zB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"I H PC hB QC RC","2":"MC NC OC","16":"aB"},J:{"1":"A","2":"D"},K:{"1":"B C Q YB gB ZB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Attributes for form submission"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js index 27f81313aba5d8..069a87f117fdf0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I oB cB","132":"b J D E F A pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","2":"F wB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"cB","132":"E 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"516":"KC"},I:{"1":"H QC","2":"XB LC MC NC","132":"I OC fB PC"},J:{"1":"A","132":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"132":"dC"}},B:1,C:"Form validation"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I pB eB","132":"c J D E F A qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","2":"F xB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"eB","132":"E 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"516":"LC"},I:{"1":"H RC","2":"aB MC NC OC","132":"I PC hB QC"},J:{"1":"A","132":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"132":"eC"}},B:1,C:"Form validation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js index 436475c7558ba9..8a2836b692b449 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","4":"A B","8":"J D E F"},B:{"1":"M N O R S T U V W X Y Z P a H","4":"C K L G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB jB kB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB"},E:{"4":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"oB cB"},F:{"1":"9 F B C AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","4":"0 1 2 3 4 5 6 7 8 G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"cB","4":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","4":"PC QC"},J:{"2":"D","4":"A"},K:{"1":"A B C VB eB WB","4":"Q"},L:{"1":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"1":"RC"},P:{"1":"VC WC dB XC YC ZC aC","4":"I SC TC UC"},Q:{"1":"bC"},R:{"4":"cC"},S:{"4":"dC"}},B:1,C:"HTML5 form features"}; +module.exports={A:{A:{"2":"iB","4":"A B","8":"J D E F"},B:{"1":"M N O R S T U V W X Y Z a P b H","4":"C K L G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB lB mB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB"},E:{"4":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"pB eB"},F:{"1":"F B C AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","4":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"eB","4":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","4":"QC RC"},J:{"2":"D","4":"A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"1":"SC"},P:{"1":"WC XC fB YC ZC aC bC","4":"I TC UC VC"},Q:{"1":"cC"},R:{"4":"dC"},S:{"4":"eC"}},B:1,C:"HTML5 form features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js index 39cdd4af22f661..77e36060334b18 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","548":"B"},B:{"1":"R S T U V W X Y Z P a H","516":"C K L G M N O"},C:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F jB kB","676":"0 1 2 3 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","1700":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB"},D:{"1":"PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L","676":"G M N O c","804":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB"},E:{"2":"I b oB cB","676":"pB","804":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B","804":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC","2052":"CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","292":"A"},K:{"2":"A B C VB eB WB","804":"Q"},L:{"804":"H"},M:{"1":"P"},N:{"2":"A","548":"B"},O:{"804":"RC"},P:{"1":"dB XC YC ZC aC","804":"I SC TC UC VC WC"},Q:{"804":"bC"},R:{"804":"cC"},S:{"1":"dC"}},B:1,C:"Full Screen API"}; +module.exports={A:{A:{"2":"J D E F A iB","548":"B"},B:{"1":"R S T U V W X Y Z a P b H","516":"C K L G M N O"},C:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F lB mB","676":"0 1 2 3 4 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","1700":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB"},D:{"1":"QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L","676":"G M N O d","804":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB"},E:{"2":"I c pB eB","676":"qB","804":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B","804":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l 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 eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC","2052":"DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","292":"A"},K:{"2":"A B C Q YB gB ZB"},L:{"804":"H"},M:{"1":"P"},N:{"2":"A","548":"B"},O:{"804":"SC"},P:{"1":"fB YC ZC aC bC","804":"I TC UC VC WC XC"},Q:{"804":"cC"},R:{"804":"dC"},S:{"1":"eC"}},B:1,C:"Full Screen API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js index 20e0174cfea4a2..6aa6748ed2343f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d","33":"e f g h"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Gamepad API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e","33":"f g h i"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Gamepad API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js index f4093520775772..2dca59de015a7a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D E"},B:{"1":"C K L G M N O","129":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB jB kB","8":"hB XB","129":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","4":"I","129":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F B C K L G pB qB rB sB dB VB WB tB uB vB","8":"I oB cB","129":"A"},F:{"1":"B C M N O c d e f g h i j k l m n o p q r s t u v zB VB eB 0B WB","2":"F G wB","8":"xB yB","129":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B","129":"8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I LC MC NC OC fB PC QC","129":"H"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","8":"A"},L:{"129":"H"},M:{"129":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I","129":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"129":"bC"},R:{"129":"cC"},S:{"1":"dC"}},B:2,C:"Geolocation"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D E"},B:{"1":"C K L G M N O","129":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB lB mB","8":"jB aB","129":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","4":"I","129":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"I pB eB","129":"A"},F:{"1":"B C M N O d e f g h i j k l m n o p q r s t u v w 0B YB gB 1B ZB","2":"F G xB","8":"yB zB","129":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B","129":"9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I MC NC OC PC hB QC RC","129":"H"},J:{"1":"D A"},K:{"1":"B C YB gB ZB","8":"A","129":"Q"},L:{"129":"H"},M:{"129":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I","129":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"129":"cC"},R:{"129":"dC"},S:{"1":"eC"}},B:2,C:"Geolocation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js index c4f581e2901043..420be772a66023 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"J D gB","2049":"F A B","2692":"E"},B:{"1":"R S T U V W X Y Z P a H","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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","260":"I b J D E F A B","1156":"XB","1284":"jB","1796":"kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","16":"F wB","132":"xB yB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","132":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2049":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Element.getBoundingClientRect()"}; +module.exports={A:{A:{"644":"J D iB","2049":"F A B","2692":"E"},B:{"1":"R S T U V W X Y Z a P b H","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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","260":"I c J D E F A B","1156":"aB","1284":"lB","1796":"mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","16":"F xB","132":"yB zB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","132":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2049":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Element.getBoundingClientRect()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js index 7b7a3a40a05571..f2af4a01447ec0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","132":"XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","260":"I b J D E F A"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","260":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","260":"F wB xB yB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","260":"cB 1B fB"},H:{"260":"KC"},I:{"1":"I H OC fB PC QC","260":"XB LC MC NC"},J:{"1":"A","260":"D"},K:{"1":"B C Q VB eB WB","260":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"getComputedStyle"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","132":"aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","260":"I c J D E F A"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","260":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","260":"F xB yB zB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","260":"eB 2B hB"},H:{"260":"LC"},I:{"1":"I H PC hB QC RC","260":"aB MC NC OC"},J:{"1":"A","260":"D"},K:{"1":"B C Q YB gB ZB","260":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"getComputedStyle"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js index bdad9db9de34fe..fed687d6d3b787 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","8":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"getElementsByClassName"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","8":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"getElementsByClassName"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js index 60d12c1ee27440..4fa3406394957f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","33":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b J oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","33":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"crypto.getRandomValues()"}; +module.exports={A:{A:{"2":"J D E F A iB","33":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","33":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"crypto.getRandomValues()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js index ce6834723b9d94..70cc52745117a5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB JB KB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Gyroscope"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q KB LB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Gyroscope"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js index 4e7937937566c8..f1b0f2bf809e5e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K L"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},E:{"2":"I b J D oB cB pB qB rB","129":"B C K L G dB VB WB tB uB vB","194":"E F A sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB 2B 3B 4B","129":"9B AC BC CC DC EC FC GC HC IC JC","194":"E 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"navigator.hardwareConcurrency"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C K L"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},E:{"2":"I c J D pB eB qB rB sB","129":"B C K L G fB YB ZB uB vB wB","194":"E F A tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB 3B 4B 5B","129":"AC BC CC DC EC FC GC HC IC JC KC","194":"E 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"navigator.hardwareConcurrency"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js index 18a3b3880737a0..adfa03f5503676 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","8":"J D gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","8":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","8":"F wB xB yB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"XB I H MC NC OC fB PC QC","2":"LC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Hashchange event"}; +module.exports={A:{A:{"1":"E F A B","8":"J D iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","8":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","8":"F xB yB zB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"aB I H NC OC PC hB QC RC","2":"MC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Hashchange event"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js index e00b1d083a9516..98b191eabd283d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A oB cB pB qB rB sB dB","130":"B C K L G VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","130":"AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"HEIF/ISO Base Media File Format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A pB eB qB rB sB tB fB","130":"B C K L G YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","130":"BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"HEIF/ISO Base Media File Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js index f19cb1a47f65ea..aa20b56533507e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"2":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"K L G tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","516":"B C VB WB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","258":"H"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"258":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I","258":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"HEVC/H.265 video format"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"2":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","516":"B C YB ZB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","258":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","258":"Q"},L:{"258":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I","258":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"HEVC/H.265 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js index 32d786edc2d019..6f39e1935e4a91 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F B wB xB yB zB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"I H OC fB PC QC","2":"XB LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"C Q VB eB WB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"hidden attribute"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F B xB yB zB 0B"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"I H PC hB QC RC","2":"aB MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"C Q YB gB ZB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"hidden attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js index 4916bb3837cabf..5591ff8f6fdd89 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c","33":"d e f g"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"High Resolution Time API"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d","33":"e f g h"},E:{"1":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"High Resolution Time API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js index 2b3978fcf7d5f6..f15a8e0dc7f33c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I oB cB","4":"b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB eB 0B WB","2":"F B wB xB yB zB VB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B","4":"fB"},H:{"2":"KC"},I:{"1":"H MC NC fB PC QC","2":"XB I LC OC"},J:{"1":"D A"},K:{"1":"C Q VB eB WB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Session history management"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I pB eB","4":"c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB gB 1B ZB","2":"F B xB yB zB 0B YB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B","4":"hB"},H:{"2":"LC"},I:{"1":"H NC OC hB QC RC","2":"aB I MC PC"},J:{"1":"D A"},K:{"1":"C Q YB gB ZB","2":"A B"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Session history management"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js index 155ce527fbfbf2..a3dc76d1e25d08 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB 2B","129":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC","257":"MC NC"},J:{"1":"A","16":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"516":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"16":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:4,C:"HTML Media Capture"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB 3B","129":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC","257":"NC OC"},J:{"1":"A","16":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"516":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"16":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:4,C:"HTML Media Capture"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js index 3ea3194c98d1cb..a0d0246f88e08e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E","260":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","132":"XB jB kB","260":"I b J D E F A B C K L G M N O c d"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b","260":"J D E F A B C K L G M N O c d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","132":"I oB cB","260":"b J pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","132":"F B wB xB yB zB","260":"C VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","132":"cB","260":"1B fB 2B 3B"},H:{"132":"KC"},I:{"1":"H PC QC","132":"LC","260":"XB I MC NC OC fB"},J:{"260":"D A"},K:{"1":"Q","132":"A","260":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"HTML5 semantic elements"}; +module.exports={A:{A:{"2":"iB","8":"J D E","260":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","132":"aB lB mB","260":"I c J D E F A B C K L G M N O d e"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c","260":"J D E F A B C K L G M N O d e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","132":"I pB eB","260":"c J qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"F B xB yB zB 0B","260":"C YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","132":"eB","260":"2B hB 3B 4B"},H:{"132":"LC"},I:{"1":"H QC RC","132":"MC","260":"aB I NC OC PC hB"},J:{"260":"D A"},K:{"1":"Q","132":"A","260":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"HTML5 semantic elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js index d5dc1d54fd2eb1..13d9cbcc8d920c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"HTTP Live Streaming (HLS)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"HTTP Live Streaming (HLS)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js index 627f0f5bb39400..821b149fcb89d9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"C K L G M N O","513":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB","513":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 y z","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x","513":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E oB cB pB qB rB","260":"F A sB dB"},F:{"1":"l m n o p q r s t u","2":"F B C G M N O c d e f g h i j k wB xB yB zB VB eB 0B WB","513":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","513":"H"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"513":"H"},M:{"513":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I","513":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"513":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"HTTP/2 protocol"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"C K L G M N O","513":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB","513":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 z","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y","513":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB","260":"F A tB fB"},F:{"1":"m n o p q r s t u v","2":"F B C G M N O d e f g h i j k l xB yB zB 0B YB gB 1B ZB","513":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","513":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","513":"Q"},L:{"513":"H"},M:{"513":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I","513":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"513":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"HTTP/2 protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js index 3eba9392243ede..4787dabeef00ef 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"Y Z P a H","2":"C K L G M N O","322":"R S T U V","578":"W X"},C:{"1":"Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB jB kB","194":"QB RB SB TB UB aB bB R S T iB U V W X Y"},D:{"1":"Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB","322":"R S T U V","578":"W X"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB tB","1090":"L G uB vB"},F:{"1":"SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB","578":"RB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","66":"IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"HTTP/3 protocol"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"Y Z a P b H","2":"C K L G M N O","322":"R S T U V","578":"W X"},C:{"1":"Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB lB mB","194":"RB SB TB UB VB WB XB R S T kB U V W X Y"},D:{"1":"Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","322":"R S T U V","578":"W X"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB uB","1090":"L G vB wB"},F:{"1":"TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB","578":"SB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","66":"JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"HTTP/3 protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js index 3b060fb4a4add2..bdb783f8778de4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M jB kB","4":"N O c d e f g h i j k"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B"},H:{"2":"KC"},I:{"1":"XB I H MC NC OC fB PC QC","2":"LC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"sandbox attribute for iframes"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M lB mB","4":"N O d e f g h i j k l"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B"},H:{"2":"LC"},I:{"1":"aB I H NC OC PC hB QC RC","2":"MC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"sandbox attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js index 798e56c471bc7e..9f438810e1d9b0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","66":"d e f g h i j"},E:{"2":"I b J E F A B C K L G oB cB pB qB sB dB VB WB tB uB vB","130":"D rB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","130":"4B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"seamless attribute for iframes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","66":"e f g h i j k"},E:{"2":"I c J E F A B C K L G pB eB qB rB tB fB YB ZB uB vB wB","130":"D sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","130":"5B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"seamless attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js index c4e3064a09c039..08f4e01478d133 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E F A B"},B:{"1":"R S T U V W X Y Z P a H","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB","8":"XB I b J D E F A B C K L G M N O c d e f g h jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K","8":"L G M N O c"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"oB cB","8":"I b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B wB xB yB zB","8":"C VB eB 0B WB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB","8":"1B fB 2B"},H:{"2":"KC"},I:{"1":"H PC QC","8":"XB I LC MC NC OC fB"},J:{"1":"A","8":"D"},K:{"1":"Q","2":"A B","8":"C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"srcdoc attribute for iframes"}; +module.exports={A:{A:{"2":"iB","8":"J D E F A B"},B:{"1":"R S T U V W X Y Z a P b H","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB","8":"aB I c J D E F A B C K L G M N O d e f g h i lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K","8":"L G M N O d"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"pB eB","8":"I c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B xB yB zB 0B","8":"C YB gB 1B ZB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB","8":"2B hB 3B"},H:{"2":"LC"},I:{"1":"H QC RC","8":"aB I MC NC OC PC hB"},J:{"1":"A","8":"D"},K:{"1":"Q","2":"A B","8":"C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"srcdoc attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js index 14330d2a1690f3..4cf4fe7787259b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","322":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r jB kB","194":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","322":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w wB xB yB zB VB eB 0B WB","322":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"322":"bC"},R:{"1":"cC"},S:{"194":"dC"}},B:5,C:"ImageCapture API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","322":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s lB mB","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB","322":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x xB yB zB 0B YB gB 1B ZB","322":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"322":"cC"},R:{"1":"dC"},S:{"194":"eC"}},B:5,C:"ImageCapture API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js index a9d46394ba1417..2cf66a28c3ebc6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","161":"B"},B:{"2":"R S T U V W X Y Z P a H","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A","161":"B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Input Method Editor API"}; +module.exports={A:{A:{"2":"J D E F A iB","161":"B"},B:{"2":"R S T U V W X Y Z a P b H","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A","161":"B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Input Method Editor API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js index bb01ed12e50e54..c4dd4c491d0395 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"naturalWidth & naturalHeight image properties"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"naturalWidth & naturalHeight image properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js index 0988d6666d2d04..79005a4a957401 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O","194":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB","194":"SB TB UB aB bB R S T U V W X Y Z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB","194":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Import maps"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O","194":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB","194":"TB UB VB WB XB R S T U V W X Y Z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB","194":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Import maps"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js index 40b26fd65d181b..d1ff141e4564e0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","8":"A B"},B:{"1":"R","2":"S T U V W X Y Z P a H","8":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m jB kB","8":"n o DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","72":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m S T U V W X Y Z P a H lB mB nB","66":"n o p q r","72":"s"},E:{"2":"I b oB cB pB","8":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB","2":"F B C G M LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","66":"N O c d e","72":"f"},G:{"2":"cB 1B fB 2B 3B","8":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"2":"H"},M:{"8":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC","2":"ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"HTML Imports"}; +module.exports={A:{A:{"2":"J D E F iB","8":"A B"},B:{"1":"R","2":"S T U V W X Y Z a P b H","8":"C K L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n lB mB","8":"o p EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","72":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n S T U V W X Y Z a P b H dB nB oB","66":"o p q r s","72":"t"},E:{"2":"I c pB eB qB","8":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB","2":"F B C G M MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","66":"N O d e f","72":"g"},G:{"2":"eB 2B hB 3B 4B","8":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"8":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC","2":"aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"HTML Imports"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js index 59d941b95a07ee..63a15ad97ac44f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB","16":"jB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"indeterminate checkbox"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB","16":"lB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"indeterminate checkbox"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js index e60d3ecfd23fe2..c5e8ffa11161a0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"R S T U V W X Y Z P a H","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"A B C K L G","36":"I b J D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"A","8":"I b J D E F","33":"g","36":"B C K L G M N O c d e f"},E:{"1":"A B C K L G dB VB WB tB vB","8":"I b J D oB cB pB qB","260":"E F rB sB","516":"uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB","8":"B C yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC","8":"cB 1B fB 2B 3B 4B","260":"E 5B 6B 7B","516":"JC"},H:{"2":"KC"},I:{"1":"H PC QC","8":"XB I LC MC NC OC fB"},J:{"1":"A","8":"D"},K:{"1":"Q","2":"A","8":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"IndexedDB"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"A B C K L G","36":"I c J D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"A","8":"I c J D E F","33":"h","36":"B C K L G M N O d e f g"},E:{"1":"A B C K L G fB YB ZB uB wB","8":"I c J D pB eB qB rB","260":"E F sB tB","516":"vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB","8":"B C zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","8":"eB 2B hB 3B 4B 5B","260":"E 6B 7B 8B","516":"KC"},H:{"2":"LC"},I:{"1":"H QC RC","8":"aB I MC NC OC PC hB"},J:{"1":"A","8":"D"},K:{"1":"Q","2":"A","8":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"IndexedDB"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js index 0565d3edc3f6b2..e9ec711ff65764 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","132":"1 2 3","260":"4 5 6 7"},D:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","132":"5 6 7 8","260":"9 AB BB CB DB EB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r wB xB yB zB VB eB 0B WB","132":"s t u v","260":"0 1 w x y z"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","16":"8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I","260":"SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"260":"dC"}},B:4,C:"IndexedDB 2.0"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","132":"2 3 4","260":"5 6 7 8"},D:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","132":"6 7 8 9","260":"AB BB CB DB EB FB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s xB yB zB 0B YB gB 1B ZB","132":"t u v w","260":"0 1 2 x y z"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","16":"9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I","260":"TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"260":"eC"}},B:4,C:"IndexedDB 2.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js index 6dbe3950f662dd..dad73f1e2c94d0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","4":"gB","132":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","36":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS inline-block"}; +module.exports={A:{A:{"1":"E F A B","4":"iB","132":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","36":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS inline-block"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js index dfd103a62b483a..75470a20d069f5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","16":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"HTMLElement.innerText"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","16":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"HTMLElement.innerText"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js index 8335a7c1ed2ca5..3cf5abc662125d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A gB","132":"B"},B:{"132":"C K L G M N O","260":"R S T U V W X Y Z P a H"},C:{"1":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m jB kB","516":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"N O c d e f g h i j","2":"I b J D E F A B C K L G M","132":"k l m n o p q r s t u v w x","260":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J pB qB","2":"I b oB cB","2052":"D E F A B C K L G rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB","1025":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1025":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2052":"A B"},O:{"1025":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"260":"bC"},R:{"1":"cC"},S:{"516":"dC"}},B:1,C:"autocomplete attribute: on & off values"}; +module.exports={A:{A:{"1":"J D E F A iB","132":"B"},B:{"132":"C K L G M N O","260":"R S T U V W X Y Z a P b H"},C:{"1":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n lB mB","516":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"N O d e f g h i j k","2":"I c J D E F A B C K L G M","132":"l m n o p q r s t u v w x y","260":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J qB rB","2":"I c pB eB","2052":"D E F A B C K L G sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB","1025":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1025":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2052":"A B"},O:{"1025":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"260":"cC"},R:{"1":"dC"},S:{"516":"eC"}},B:1,C:"autocomplete attribute: on & off values"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js index 4180786d7fc266..ff18d5bd74bda7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F G M wB xB yB zB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC","129":"DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"Color input type"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C 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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F G M xB yB zB 0B"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","129":"EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"Color input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js index f54cda84f6471f..ff4a6b06e5e4b0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","1090":"AB BB CB DB","2052":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c","2052":"d e f g h"},E:{"2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB","4100":"G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB","260":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB LC MC NC","514":"I OC fB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2052":"dC"}},B:1,C:"Date and time input types"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB","1090":"BB CB DB EB","2052":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d","2052":"e f g h i"},E:{"2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB","4100":"G vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB","260":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB MC NC OC","514":"I PC hB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2052":"eC"}},B:1,C:"Date and time input types"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js index 136c0bc5066587..9763b16aa5fad2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","132":"LC MC NC"},J:{"1":"A","132":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Email, telephone & URL input types"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","132":"MC NC OC"},J:{"1":"A","132":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Email, telephone & URL input types"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js index 664e828dee64b6..4e919f37bfd585 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","2561":"A B","2692":"F"},B:{"1":"R S T U V W X Y Z P a H","2561":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB","1537":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z kB","1796":"XB jB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L","1025":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB","1537":"G M N O c d e f g h i j k l m n o p q r"},E:{"1":"L G tB uB vB","16":"I b J oB cB","1025":"D E F A B C qB rB sB dB VB","1537":"pB","4097":"K WB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","16":"F B C wB xB yB zB VB eB","260":"0B","1025":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z","1537":"G M N O c d e"},G:{"16":"cB 1B fB","1025":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","1537":"2B 3B 4B"},H:{"2":"KC"},I:{"16":"LC MC","1025":"H QC","1537":"XB I NC OC fB PC"},J:{"1025":"A","1537":"D"},K:{"1":"A B C VB eB WB","1025":"Q"},L:{"1":"H"},M:{"1537":"P"},N:{"2561":"A B"},O:{"1537":"RC"},P:{"1025":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1025":"bC"},R:{"1025":"cC"},S:{"1537":"dC"}},B:1,C:"input event"}; +module.exports={A:{A:{"2":"J D E iB","2561":"A B","2692":"F"},B:{"1":"R S T U V W X Y Z a P b H","2561":"C K L G M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB","1537":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z mB","1796":"aB lB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L","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 bB HB cB IB JB Q KB","1537":"G M N O d e f g h i j k l m n o p q r s"},E:{"1":"L G uB vB wB","16":"I c J pB eB","1025":"D E F A B C rB sB tB fB YB","1537":"qB","4097":"K ZB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","16":"F B C xB yB zB 0B YB gB","260":"1B","1025":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","1537":"G M N O d e f"},G:{"16":"eB 2B hB","1025":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","1537":"3B 4B 5B"},H:{"2":"LC"},I:{"16":"MC NC","1025":"H RC","1537":"aB I OC PC hB QC"},J:{"1025":"A","1537":"D"},K:{"1":"A B C YB gB ZB","1025":"Q"},L:{"1":"H"},M:{"1537":"P"},N:{"2561":"A B"},O:{"1537":"SC"},P:{"1025":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1025":"cC"},R:{"1025":"dC"},S:{"1537":"eC"}},B:1,C:"input event"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js index 3d2d022a54e194..2062d6e42cba3d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","132":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I","16":"b J D E e f g h i","132":"F A B C K L G M N O c d"},E:{"1":"C K L G VB WB tB uB vB","2":"I b oB cB pB","132":"J D E F A B qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"3B 4B","132":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","514":"cB 1B fB 2B"},H:{"2":"KC"},I:{"2":"LC MC NC","260":"XB I OC fB","514":"H PC QC"},J:{"132":"A","260":"D"},K:{"2":"A B C VB eB WB","260":"Q"},L:{"260":"H"},M:{"2":"P"},N:{"514":"A","1028":"B"},O:{"2":"RC"},P:{"260":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"260":"bC"},R:{"260":"cC"},S:{"1":"dC"}},B:1,C:"accept attribute for file input"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"R S T U V W X Y Z a P b H","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","132":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I","16":"c J D E f g h i j","132":"F A B C K L G M N O d e"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c pB eB qB","132":"J D E F A B rB sB tB fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"4B 5B","132":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","514":"eB 2B hB 3B"},H:{"2":"LC"},I:{"2":"MC NC OC","260":"aB I PC hB","514":"H QC RC"},J:{"132":"A","260":"D"},K:{"2":"A B C YB gB ZB","514":"Q"},L:{"260":"H"},M:{"2":"P"},N:{"514":"A","1028":"B"},O:{"2":"SC"},P:{"260":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"260":"cC"},R:{"260":"dC"},S:{"1":"eC"}},B:1,C:"accept attribute for file input"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js index 69c0a070eb8b85..803f52195b34db 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Directory selection from file input"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Directory selection from file input"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js index 5a3a35263fdcc9..43d40554d02012 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB xB yB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"130":"KC"},I:{"130":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"130":"A B C Q VB eB WB"},L:{"132":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"130":"RC"},P:{"130":"I","132":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"2":"dC"}},B:1,C:"Multiple file selection"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB yB zB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"130":"LC"},I:{"130":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"130":"A B C Q YB gB ZB"},L:{"132":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"130":"SC"},P:{"130":"I","132":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"2":"eC"}},B:1,C:"Multiple file selection"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js index d41fa8e58ecdc2..fbaaea6a844302 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M jB kB","4":"N O c d","194":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB","66":"DB EB FB YB GB ZB Q HB IB JB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","66":"0 1 2 3 4 5 6 7 8 9"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:1,C:"inputmode attribute"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M lB mB","4":"N O d e","194":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","66":"EB FB GB bB HB cB IB JB Q KB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","66":"1 2 3 4 5 6 7 8 9 AB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:1,C:"inputmode attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js index debb50285ccd83..e8114f4d5e00cf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"Minimum length attribute for input fields"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"Minimum length attribute for input fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js index f4508d38be5dd9..559bc86e3330bb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","129":"A B"},B:{"1":"R S T U V W X Y Z P a H","129":"C K","1025":"L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","513":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"388":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB LC MC NC","388":"I H OC fB PC QC"},J:{"2":"D","388":"A"},K:{"1":"A B C VB eB WB","388":"Q"},L:{"388":"H"},M:{"641":"P"},N:{"388":"A B"},O:{"388":"RC"},P:{"388":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"388":"bC"},R:{"388":"cC"},S:{"513":"dC"}},B:1,C:"Number input type"}; +module.exports={A:{A:{"2":"J D E F iB","129":"A B"},B:{"1":"R S T U V W X Y Z a P b H","129":"C K","1025":"L G M N O"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","513":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"388":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB MC NC OC","388":"I H PC hB QC RC"},J:{"2":"D","388":"A"},K:{"1":"A B C YB gB ZB","388":"Q"},L:{"388":"H"},M:{"641":"P"},N:{"388":"A B"},O:{"388":"SC"},P:{"388":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"388":"cC"},R:{"388":"dC"},S:{"513":"eC"}},B:1,C:"Number input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js index 300b0339cc01b7..0c7a5bb8108d94 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I oB cB","16":"b","388":"J D E F A pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB","388":"E 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB PC"},J:{"1":"A","2":"D"},K:{"1":"A B C VB eB WB","132":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Pattern attribute for input fields"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I pB eB","16":"c","388":"J D E F A qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB","388":"E 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB QC"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Pattern attribute for input fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js index 6bce161c29c178..4a95057b85235e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","132":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB eB 0B WB","2":"F wB xB yB zB","132":"B VB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB H LC MC NC fB PC QC","4":"I OC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"input placeholder attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","132":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB gB 1B ZB","2":"F xB yB zB 0B","132":"B YB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB H MC NC OC hB QC RC","4":"I PC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"input placeholder attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js index a93ccf0b994a0f..441fb463b3e630 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H fB PC QC","4":"XB I LC MC NC OC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Range input type"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H hB QC RC","4":"aB I MC NC OC PC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Range input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js index 7374c7ae7e2322..0b9fb45522f6b1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","129":"A B"},B:{"1":"R S T U V W X Y Z P a H","129":"C K L G M N O"},C:{"2":"hB XB jB kB","129":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L e f g h i","129":"G M N O c d"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F wB xB yB zB","16":"B VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"129":"KC"},I:{"1":"H PC QC","16":"LC MC","129":"XB I NC OC fB"},J:{"1":"D","129":"A"},K:{"1":"C","2":"A","16":"B VB eB","129":"Q WB"},L:{"1":"H"},M:{"129":"P"},N:{"129":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"129":"dC"}},B:1,C:"Search input type"}; +module.exports={A:{A:{"2":"J D E F iB","129":"A B"},B:{"1":"R S T U V W X Y Z a P b H","129":"C K L G M N O"},C:{"2":"jB aB lB mB","129":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L f g h i j","129":"G M N O d e"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F xB yB zB 0B","16":"B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"129":"LC"},I:{"1":"H QC RC","16":"MC NC","129":"aB I OC PC hB"},J:{"1":"D","129":"A"},K:{"1":"C Q","2":"A","16":"B YB gB","129":"ZB"},L:{"1":"H"},M:{"129":"P"},N:{"129":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"129":"eC"}},B:1,C:"Search input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js index a92093aae7d02c..e1b7d8ae3e29d0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","16":"F wB xB yB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Selection controls for input & textarea"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","16":"F xB yB zB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Selection controls for input & textarea"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js index f5301859884cc3..539758a3acc97e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js index 3d87c7338c02e5..c97ff826cbd4cb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"gB","132":"J D E F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","16":"F wB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Element.insertAdjacentHTML()"}; +module.exports={A:{A:{"1":"A B","16":"iB","132":"J D E F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","16":"F xB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Element.insertAdjacentHTML()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js index f2aebf49450157..17e4827a6db34e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:6,C:"Internationalization API"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:6,C:"Internationalization API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js index 6db0d4be47c0da..090be28d4cd12b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC VC WC dB"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"IntersectionObserver V2"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC WC XC fB"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"IntersectionObserver V2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js index 081b0d61631bb4..5391ce7da67abf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O","2":"C K L","516":"G","1025":"R S T U V W X Y Z P a H"},C:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"9 AB BB"},D:{"1":"FB YB GB ZB Q HB IB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","516":"8 9 AB BB CB DB EB","1025":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B WB","516":"0 1 v w x y z","1025":"IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","1025":"H"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"516":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I","516":"SC TC"},Q:{"1025":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"IntersectionObserver"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O","2":"C K L","516":"G","1025":"R S T U V W X Y Z a P b H"},C:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","194":"AB BB CB"},D:{"1":"GB bB HB cB IB JB Q","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","516":"9 AB BB CB DB EB FB","1025":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B ZB","516":"0 1 2 w x y z","1025":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","1025":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","1025":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"516":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I","516":"TC UC"},Q:{"1025":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"IntersectionObserver"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js index 67b04b404caa8a..f9d106960921dc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N","130":"O"},C:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB jB kB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q"},E:{"1":"K L G tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB WB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Intl.PluralRules API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N","130":"O"},C:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB lB mB"},D:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB ZB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Intl.PluralRules API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js index 0bbdf5d8749199..b391101fdd1f44 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","1537":"R S T U V W X Y Z P a H"},C:{"2":"hB","932":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB jB kB","2308":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I b J D E F A B C K L G M N O c d e","545":"0 1 2 f g h i j k l m n o p q r s t u v w x y z","1537":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J oB cB pB","516":"B C K L G VB WB tB uB vB","548":"F A sB dB","676":"D E qB rB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","513":"r","545":"G M N O c d e f g h i j k l m n o p","1537":"0 1 2 3 4 5 6 7 8 9 q s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB 2B 3B","516":"IC JC","548":"6B 7B 8B 9B AC BC CC DC EC FC GC HC","676":"E 4B 5B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","545":"PC QC","1537":"H"},J:{"2":"D","545":"A"},K:{"2":"A B C VB eB WB","1537":"Q"},L:{"1537":"H"},M:{"2308":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"545":"I","1537":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"545":"bC"},R:{"1537":"cC"},S:{"932":"dC"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","1537":"R S T U V W X Y Z a P b H"},C:{"2":"jB","932":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB lB mB","2308":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C K L G M N O d e f","545":"0 1 2 3 g h i j k l m n o p q r s t u v w x y z","1537":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J pB eB qB","516":"B C K L G YB ZB uB vB wB","548":"F A tB fB","676":"D E rB sB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","513":"s","545":"G M N O d e f g h i j k l m n o p q","1537":"0 1 2 3 4 5 6 7 8 9 r t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB 3B 4B","516":"JC KC","548":"7B 8B 9B AC BC CC DC EC FC GC HC IC","676":"E 5B 6B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","545":"QC RC","1537":"H"},J:{"2":"D","545":"A"},K:{"2":"A B C YB gB ZB","1537":"Q"},L:{"1537":"H"},M:{"2308":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"545":"I","1537":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"545":"cC"},R:{"1537":"dC"},S:{"932":"eC"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js index 028953f19b5c4b..0b84955a8feac9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I oB cB","129":"b pB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"JPEG 2000 image format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I pB eB","129":"c qB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"JPEG 2000 image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js index 4e6ee5baf8db37..8ddfa483607dc6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a","578":"H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P jB kB","322":"a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a","194":"H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"JPEG XL image format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P","578":"b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a lB mB","322":"P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P","194":"b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB xB yB zB 0B YB gB 1B ZB","194":"WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"JPEG XL image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js index 6f9ed9f01da6d9..8560676cd5b9ae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"JPEG XR image format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"JPEG XR image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js index bf2ca585536353..ecb32e611f3a35 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB jB kB"},D:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Lookbehind in JS regular expressions"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB lB mB"},D:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Lookbehind in JS regular expressions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js index 5be8598c051af7..96630a60a21dd1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D gB","129":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"JSON parsing"}; +module.exports={A:{A:{"1":"F A B","2":"J D iB","129":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"JSON parsing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js index 87869383af20f4..37753be55b94c3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G","132":"M N O"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","132":"EB FB YB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB","132":"dB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","132":"1 2 3"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B","132":"9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC","132":"UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"132":"dC"}},B:5,C:"CSS justify-content: space-evenly"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G","132":"M N O"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","132":"FB GB bB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB","132":"fB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","132":"2 3 4"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","132":"AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC","132":"VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"132":"eC"}},B:5,C:"CSS justify-content: space-evenly"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js index 4e5e986a09c8bd..109111c0d4f1d8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"LC MC NC","132":"XB I OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"High-quality kerning pairs & ligatures"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"MC NC OC","132":"aB I PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"High-quality kerning pairs & ligatures"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js index 68772632cc0b94..1e6a0a5ee320e1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","16":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B","16":"C"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"WB","2":"A B VB eB","16":"C","130":"Q"},L:{"1":"H"},M:{"130":"P"},N:{"130":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"KeyboardEvent.charCode"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","16":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B","16":"C"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q ZB","2":"A B YB gB","16":"C"},L:{"1":"H"},M:{"130":"P"},N:{"130":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"KeyboardEvent.charCode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js index 3b052ac5044193..f8701d42706976 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y","194":"0 1 2 3 4 z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB 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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l wB xB yB zB VB eB 0B WB","194":"m n o p q r"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","194":"Q"},L:{"194":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I","194":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"194":"cC"},S:{"1":"dC"}},B:5,C:"KeyboardEvent.code"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4 5"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m xB yB zB 0B YB gB 1B ZB","194":"n o p q r s"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"194":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I","194":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"194":"dC"},S:{"1":"eC"}},B:5,C:"KeyboardEvent.code"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js index a3b3c8d559943d..08e49082e636b3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B G M wB xB yB zB VB eB 0B","16":"C"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q WB","2":"A B VB eB","16":"C"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"KeyboardEvent.getModifierState()"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B G M xB yB zB 0B YB gB 1B","16":"C"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q ZB","2":"A B YB gB","16":"C"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"KeyboardEvent.getModifierState()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js index d52975d74fa448..d301e013c7c587 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","260":"F A B"},B:{"1":"R S T U V W X Y Z P a H","260":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f jB kB","132":"g h i j k l"},D:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B","16":"C"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"1":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"WB","2":"A B VB eB","16":"C Q"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:5,C:"KeyboardEvent.key"}; +module.exports={A:{A:{"2":"J D E iB","260":"F A B"},B:{"1":"R S T U V W X Y Z a P b H","260":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g lB mB","132":"h i j k l m"},D:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B","16":"C"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"1":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q ZB","2":"A B YB gB","16":"C"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:5,C:"KeyboardEvent.key"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js index bb82639f488eb5..4b57f56bc714d9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","16":"J oB cB","132":"I b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B","16":"C","132":"G M"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB","132":"2B 3B 4B"},H:{"2":"KC"},I:{"1":"H PC QC","16":"LC MC","132":"XB I NC OC fB"},J:{"132":"D A"},K:{"1":"Q WB","2":"A B VB eB","16":"C"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"KeyboardEvent.location"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","16":"J pB eB","132":"I c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B","16":"C","132":"G M"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB","132":"3B 4B 5B"},H:{"2":"LC"},I:{"1":"H QC RC","16":"MC NC","132":"aB I OC PC hB"},J:{"132":"D A"},K:{"1":"Q ZB","2":"A B YB gB","16":"C"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"KeyboardEvent.location"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js index 646ef3fe12a1a4..9e9b2dc6a216cb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB","16":"b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","16":"F wB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB","16":"LC MC","132":"PC QC"},J:{"1":"D A"},K:{"1":"A B C VB eB WB","132":"Q"},L:{"132":"H"},M:{"132":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"2":"I","132":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:7,C:"KeyboardEvent.which"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB","16":"c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","16":"F xB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB","16":"MC NC","132":"QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"132":"H"},M:{"132":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"2":"I","132":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:7,C:"KeyboardEvent.which"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js index a97669592824aa..e20447812bc65a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Resource Hints: Lazyload"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Resource Hints: Lazyload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js index a44ed3804183f4..08262d7b3528d4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","2052":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","194":"0 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O","322":"c d e f g h i j k l m n o p q r s t u v w x","516":"0 1 2 3 4 5 y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB","1028":"A dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","322":"G M N O c d e f g h i j k","516":"l m n o p q r s"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","1028":"8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","516":"I"},Q:{"1":"bC"},R:{"516":"cC"},S:{"1":"dC"}},B:6,C:"let"}; +module.exports={A:{A:{"2":"J D E F A iB","2052":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","194":"0 1 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O","322":"d e f g h i j k l m n o p q r s t u v w x y","516":"0 1 2 3 4 5 6 z"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB","1028":"A fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","322":"G M N O d e f g h i j k l","516":"m n o p q r s t"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","1028":"9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","516":"I"},Q:{"1":"cC"},R:{"516":"dC"},S:{"1":"eC"}},B:6,C:"let"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js index 803be409374107..c79281a4fe4b75 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O","129":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"129":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"257":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"129":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","513":"F B C wB xB yB zB VB eB 0B WB"},G:{"1026":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1026":"KC"},I:{"1":"XB I LC MC NC OC fB","513":"H PC QC"},J:{"1":"D","1026":"A"},K:{"1026":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1026":"A B"},O:{"257":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","513":"I"},Q:{"129":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"PNG favicons"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"DC EC FC GC HC IC JC KC","130":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"130":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D","130":"A"},K:{"1":"Q","130":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"130":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"PNG favicons"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js index 07f4274d95b4ed..e042698325f991 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R","3073":"S T U V W X Y Z P a H"},C:{"2":"hB XB jB kB","260":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x","1025":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","3073":"S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E oB cB pB qB rB","516":"F A B C K L G sB dB VB WB tB uB vB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB","2":"0 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z BB CB DB EB FB GB Q HB IB JB KB wB xB yB zB VB eB 0B WB","3073":"LB MB NB OB PB QB RB SB TB UB"},G:{"130":"E cB 1B fB 2B 3B 4B 5B","516":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"130":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","130":"A"},K:{"130":"A B C Q VB eB WB"},L:{"3073":"H"},M:{"2":"P"},N:{"130":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1025":"dC"}},B:1,C:"SVG favicons"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R","1537":"S T U V W X Y Z a P b H"},C:{"2":"jB aB lB mB","260":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y","513":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","1537":"S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB","2":"0 1 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z CB DB EB FB GB HB IB JB Q KB LB xB yB zB 0B YB gB 1B ZB","1537":"MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"DC EC FC GC HC IC JC KC","130":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"130":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","130":"A"},K:{"2":"Q","130":"A B C YB gB ZB"},L:{"1537":"H"},M:{"2":"P"},N:{"130":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC","1537":"aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"513":"eC"}},B:1,C:"SVG favicons"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js index 6fb3c498a8a006..0b346cdeaf7dfb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E gB","132":"F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"hB XB","260":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"16":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"16":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Resource Hints: dns-prefetch"}; +module.exports={A:{A:{"1":"A B","2":"J D E iB","132":"F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"jB aB","260":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"16":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"16":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"16":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Resource Hints: dns-prefetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js index cf8c6757f83bd3..9d5391f7327037 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"16":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:1,C:"Resource Hints: modulepreload"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"16":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:1,C:"Resource Hints: modulepreload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js index e74f9ec9489e0a..50753ad4ec65f9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L","260":"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 YB GB ZB Q HB IB JB KB LB MB NB OB","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","129":"w"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"16":"P"},N:{"2":"A B"},O:{"16":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Resource Hints: preconnect"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L","260":"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 bB HB cB IB JB Q KB LB MB NB OB PB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","129":"x"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"16":"P"},N:{"2":"A B"},O:{"16":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Resource Hints: preconnect"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js index 8d1ddc7e50b825..259236c9183fe5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB","194":"L G tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","194":"HC IC JC"},H:{"2":"KC"},I:{"1":"I H PC QC","2":"XB LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Resource Hints: prefetch"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB","194":"L G uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","194":"IC JC KC"},H:{"2":"LC"},I:{"1":"I H QC RC","2":"aB MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Resource Hints: prefetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js index d4bf45d9248d3e..498ce00e996889 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M","1028":"N O"},C:{"1":"W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB jB kB","132":"DB","578":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V"},D:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","322":"B"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","322":"AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Resource Hints: preload"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M","1028":"N O"},C:{"1":"W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB lB mB","132":"EB","578":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V"},D:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","322":"B"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","322":"BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Resource Hints: preload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js index 85f249a6412f40..9deedc88ac8d7e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Resource Hints: prerender"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Resource Hints: prerender"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js index 558338da24181c..17ee7f9d80ed3a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB jB kB","132":"TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB","66":"TB UB"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB","322":"L G tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB","66":"Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","322":"HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I SC TC UC VC WC dB XC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"Lazy loading via attribute for images & iframes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB lB mB","132":"UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB","66":"UB VB"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB","322":"L G uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB","66":"IB JB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","322":"IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"132":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I TC UC VC WC XC fB YC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"Lazy loading via attribute for images & iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js index 47d72a766bb611..5595c6d6ee13e1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"gB","132":"J D E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g"},E:{"1":"A B C K L G dB VB WB tB uB vB","132":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F B C wB xB yB zB VB eB 0B","132":"WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","132":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"132":"KC"},I:{"1":"H PC QC","132":"XB I LC MC NC OC fB"},J:{"132":"D A"},K:{"1":"Q","16":"A B C VB eB","132":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","132":"A"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","132":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"4":"dC"}},B:6,C:"localeCompare()"}; +module.exports={A:{A:{"1":"B","16":"iB","132":"J D E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h"},E:{"1":"A B C K L G fB YB ZB uB vB wB","132":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F B C xB yB zB 0B YB gB 1B","132":"ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","132":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"132":"LC"},I:{"1":"H QC RC","132":"aB I MC NC OC PC hB"},J:{"132":"D A"},K:{"1":"Q","16":"A B C YB gB","132":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","132":"A"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","132":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"4":"eC"}},B:6,C:"localeCompare()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js index 2030c7f642f89d..5a32cbf098e69a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB JB KB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"194":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Magnetometer"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q KB LB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"194":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Magnetometer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js index 1fbaf220fc852f..405426856f2667 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","36":"F A B"},B:{"1":"G M N O R S T U V W X Y Z P a H","36":"C K L"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB","36":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","36":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I oB cB","36":"b J D pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B wB xB yB zB VB","36":"C G M N O c d eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB","36":"1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"LC","36":"XB I MC NC OC fB PC QC"},J:{"36":"D A"},K:{"1":"Q","2":"A B","36":"C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","36":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"matches() DOM method"}; +module.exports={A:{A:{"2":"J D E iB","36":"F A B"},B:{"1":"G M N O R S T U V W X Y Z a P b H","36":"C K L"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB","36":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","36":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I pB eB","36":"c J D qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B xB yB zB 0B YB","36":"C G M N O d e gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB","36":"2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"MC","36":"aB I NC OC PC hB QC RC"},J:{"36":"D A"},K:{"1":"Q","2":"A B","36":"C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"36":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","36":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"matches() DOM method"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js index 674c8fae6e2114..2bb47cc14be825 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"matchMedia"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"matchMedia"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js index 20988db05578d9..fe48d773429fbd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B gB","8":"J D E"},B:{"2":"C K L G M N O","8":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","129":"hB XB jB kB"},D:{"1":"h","8":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","260":"I b J D E F oB cB pB qB rB sB"},F:{"2":"F","4":"B C wB xB yB zB VB eB 0B WB","8":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB"},H:{"8":"KC"},I:{"8":"XB I H LC MC NC OC fB PC QC"},J:{"1":"A","8":"D"},K:{"8":"A B C Q VB eB WB"},L:{"8":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"4":"RC"},P:{"8":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"8":"bC"},R:{"8":"cC"},S:{"1":"dC"}},B:2,C:"MathML"}; +module.exports={A:{A:{"2":"F A B iB","8":"J D E"},B:{"2":"C K L G M N O","8":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","129":"jB aB lB mB"},D:{"1":"i","8":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","260":"I c J D E F pB eB qB rB sB tB"},F:{"2":"F","4":"B C xB yB zB 0B YB gB 1B ZB","8":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB"},H:{"8":"LC"},I:{"8":"aB I H MC NC OC PC hB QC RC"},J:{"1":"A","8":"D"},K:{"8":"A B C Q YB gB ZB"},L:{"8":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"4":"SC"},P:{"8":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"8":"cC"},R:{"8":"dC"},S:{"1":"eC"}},B:2,C:"MathML"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js index dba1376f022e1f..c807d29beb8a9a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"gB","900":"J D E F"},B:{"1":"R S T U V W X Y Z P a H","1025":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","900":"hB XB jB kB","1025":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j 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 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"b oB","900":"I cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F","132":"B C wB xB yB zB VB eB 0B WB"},G:{"1":"1B fB 2B 3B 4B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB","2052":"E 5B"},H:{"132":"KC"},I:{"1":"XB I NC OC fB PC QC","16":"LC MC","4097":"H"},J:{"1":"D A"},K:{"132":"A B C VB eB WB","4100":"Q"},L:{"4097":"H"},M:{"4097":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"4097":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1025":"dC"}},B:1,C:"maxlength attribute for input and textarea elements"}; +module.exports={A:{A:{"1":"A B","16":"iB","900":"J D E F"},B:{"1":"R S T U V W X Y Z a P b H","1025":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","900":"jB aB lB mB","1025":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j 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 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"c pB","900":"I eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F","132":"B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"2B hB 3B 4B 5B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB","2052":"E 6B"},H:{"132":"LC"},I:{"1":"aB I OC PC hB QC RC","16":"MC NC","4097":"H"},J:{"1":"D A"},K:{"132":"A B C YB gB ZB","4097":"Q"},L:{"4097":"H"},M:{"4097":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"4097":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1025":"eC"}},B:1,C:"maxlength attribute for input and textarea elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js index 17b1a1a7955e47..09da81bbf62538 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O","16":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q","2":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H","16":"lB mB nB"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"B C G M N O c d e f g h xB yB zB VB eB 0B WB","2":"0 1 2 3 4 5 6 7 8 9 F i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"16":"KC"},I:{"1":"I H OC fB PC QC","16":"XB LC MC NC"},J:{"16":"D A"},K:{"1":"C Q WB","16":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Media attribute"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O","16":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H","16":"dB nB oB"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"B C G M N O d e f g h i yB zB 0B YB gB 1B ZB","2":"0 1 2 3 4 5 6 7 8 9 F j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"16":"LC"},I:{"1":"I H PC hB QC RC","16":"aB MC NC OC"},J:{"16":"D A"},K:{"1":"C Q ZB","16":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Media attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js index fed9f3e7e207bd..66e2ab2eab7784 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q jB kB","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I b J D E F A B C K L G M N","132":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b oB cB pB","132":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB 2B 3B 4B","132":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","132":"H PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"132":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"2":"RC"},P:{"2":"I SC","132":"TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"132":"dC"}},B:2,C:"Media Fragments"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r lB mB","132":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C K L G M N","132":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c pB eB qB","132":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB 3B 4B 5B","132":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","132":"H QC RC"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","132":"Q"},L:{"132":"H"},M:{"132":"P"},N:{"132":"A B"},O:{"2":"SC"},P:{"2":"I TC","132":"UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"132":"eC"}},B:2,C:"Media Fragments"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js index 279f78322ffd92..b285bec942ea9a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB","16":"L G tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Media Session API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB","16":"L G uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Media Session API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js index 3610df24d253a0..8e31d3f6cea059 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","260":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","324":"8 9 AB BB CB DB EB FB YB GB ZB"},E:{"2":"I b J D E F A oB cB pB qB rB sB dB","132":"B C K L G VB WB tB uB vB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB","324":"0 1 2 3 4 t u v w x y z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"260":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I","132":"SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"260":"dC"}},B:5,C:"Media Capture from DOM Elements API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","260":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","324":"9 AB BB CB DB EB FB GB bB HB cB"},E:{"2":"I c J D E F A pB eB qB rB sB tB fB","132":"B C K L G YB ZB uB vB wB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB","324":"0 1 2 3 4 5 u v w x y z"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"260":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I","132":"TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"260":"eC"}},B:5,C:"Media Capture from DOM Elements API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js index a112c3dbff92d8..9dda87d57602ba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"4 5"},E:{"1":"G uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB","322":"K L WB tB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q wB xB yB zB VB eB 0B WB","194":"r s"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC","578":"CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:5,C:"MediaRecorder API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"5 6"},E:{"1":"G vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB","322":"K L ZB uB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r xB yB zB 0B YB gB 1B ZB","194":"s t"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC","578":"DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:5,C:"MediaRecorder API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js index df176777a9b5c7..b014170199ff7e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB","66":"i j k l m n o p q r s t u v w x y"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M","33":"g h i j k l m n","66":"N O c d e f"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","260":"EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB PC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Media Source Extensions"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB","66":"j 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 p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M","33":"h i j k l m n o","66":"N O d e f g"},E:{"1":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","260":"FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Media Source Extensions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js index 55748889218d48..c7a783d6bf0c06 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D jB kB","132":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V","450":"W X Y Z P a H"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","66":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","66":"0 1 2 3 s t u v w x y z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"450":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Context menu item (menuitem element)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D lB mB","132":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V","450":"W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","66":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","66":"0 1 2 3 4 t u v w x y z"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"450":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Context menu item (menuitem element)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js index 8094a93e276fb4..c3ad3ff8b685d7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v","132":"RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","258":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB"},E:{"1":"G vB","2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"513":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I","16":"SC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"theme-color Meta Tag"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w","132":"SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","258":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB"},E:{"1":"G wB","2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"513":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I","16":"TC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"theme-color Meta Tag"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js index ce6f38bdbbc0f7..9d431269214f09 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F wB xB yB zB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"meter element"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F xB yB zB 0B"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"meter element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js index 81b87942f1ce7b..f5d0c813048392 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Web MIDI API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Web MIDI API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js index 417f6d9405d4cb..a3508e282ab904 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","8":"J gB","129":"D","257":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"CSS min/max-width/height"}; +module.exports={A:{A:{"1":"F A B","8":"J iB","129":"D","257":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"CSS min/max-width/height"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js index ebeca7f477d5ab..8b5352b5741abb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","132":"I b J D E F A B C K L G M N O c d e jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","2":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"MP3 audio format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","132":"I c J D E F A B C K L G M N O d e f lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","2":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"MP3 audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js index 41205e94013a6d..26da8c3575cd8c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","386":"e f"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","386":"f g"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js index 61c1b99c7c8891..7b1e29786a5719 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d jB kB","4":"e f g h i j k l m n o p q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","2":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","4":"XB I LC MC OC fB","132":"NC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"260":"P"},N:{"1":"A B"},O:{"4":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"MPEG-4/H.264 video format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e lB mB","4":"f g h i j k l m n o p q r s"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","2":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","4":"aB I MC NC PC hB","132":"OC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"260":"P"},N:{"1":"A B"},O:{"4":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"MPEG-4/H.264 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js index bbffafa48ef2f0..a9a1ce6b10c7de 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 Multiple backgrounds"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 Multiple backgrounds"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js index 065b11c095e8fb..603f5f1bcc8194 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O","516":"R S T U V W X Y Z P a H"},C:{"132":"9 AB BB CB DB EB FB YB GB ZB Q HB IB","164":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","516":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"420":"0 1 2 3 4 5 6 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","516":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"A B C K L G dB VB WB tB uB vB","132":"F sB","164":"D E rB","420":"I b J oB cB pB qB"},F:{"1":"C VB eB 0B WB","2":"F B wB xB yB zB","420":"G M N O c d e f g h i j k l m n o p q r s t","516":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","132":"6B 7B","164":"E 4B 5B","420":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"420":"XB I LC MC NC OC fB PC QC","516":"H"},J:{"420":"D A"},K:{"1":"C VB eB WB","2":"A B","516":"Q"},L:{"516":"H"},M:{"516":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","420":"I"},Q:{"132":"bC"},R:{"132":"cC"},S:{"164":"dC"}},B:4,C:"CSS3 Multiple column layout"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O","516":"R S T U V W X Y Z a P b H"},C:{"132":"AB BB CB DB EB FB GB bB HB cB IB JB Q","164":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","516":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"420":"0 1 2 3 4 5 6 7 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","516":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","132":"F tB","164":"D E sB","420":"I c J pB eB qB rB"},F:{"1":"C YB gB 1B ZB","2":"F B xB yB zB 0B","420":"G M N O d e f g h i j k l m n o p q r s t u","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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","132":"7B 8B","164":"E 5B 6B","420":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"420":"aB I MC NC OC PC hB QC RC","516":"H"},J:{"420":"D A"},K:{"1":"C YB gB ZB","2":"A B","516":"Q"},L:{"516":"H"},M:{"516":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","420":"I"},Q:{"132":"cC"},R:{"132":"dC"},S:{"164":"eC"}},B:4,C:"CSS3 Multiple column layout"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js index 09a4ecf9ec4c44..12b51981bf7800 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","260":"F A B"},B:{"132":"R S T U V W X Y Z P a H","260":"C K L G M N O"},C:{"2":"hB XB I b jB kB","260":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"16":"I b J D E F A B C K L","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"16":"oB cB","132":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"1":"C 0B WB","2":"F wB xB yB zB","16":"B VB eB","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"16":"cB 1B","132":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"16":"LC MC","132":"XB I H NC OC fB PC QC"},J:{"132":"D A"},K:{"1":"C WB","2":"A","16":"B VB eB","132":"Q"},L:{"132":"H"},M:{"260":"P"},N:{"260":"A B"},O:{"132":"RC"},P:{"132":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"260":"dC"}},B:5,C:"Mutation events"}; +module.exports={A:{A:{"2":"J D E iB","260":"F A B"},B:{"132":"R S T U V W X Y Z a P b H","260":"C K L G M N O"},C:{"2":"jB aB I c lB mB","260":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"16":"I c J D E F A B C K L","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"16":"pB eB","132":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"C 1B ZB","2":"F xB yB zB 0B","16":"B YB gB","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"16":"eB 2B","132":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"16":"MC NC","132":"aB I H OC PC hB QC RC"},J:{"132":"D A"},K:{"1":"C ZB","2":"A","16":"B YB gB","132":"Q"},L:{"132":"H"},M:{"260":"P"},N:{"260":"A B"},O:{"132":"SC"},P:{"132":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"260":"eC"}},B:5,C:"Mutation events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js index d8131b43faffaf..745ec75261f40a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E gB","8":"F A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K jB kB"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N","33":"O c d e f g h i j"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB LC MC NC","8":"I OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","8":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Mutation Observer"}; +module.exports={A:{A:{"1":"B","2":"J D E iB","8":"F A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N","33":"O d e f g h i j k"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB MC NC OC","8":"I PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","8":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Mutation Observer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js index 368d5122129fe7..39f170d20fb4f2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"gB","8":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","4":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Web Storage - name/value pairs"}; +module.exports={A:{A:{"1":"E F A B","2":"iB","8":"J D"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","4":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Web Storage - name/value pairs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js index 98d7f591aac5a9..022933ef725004 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","194":"R S T U V W","260":"X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB","194":"SB TB UB aB bB R S T U V W","260":"X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB","194":"Q HB IB JB KB LB MB NB OB PB","260":"QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"File System Access API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","194":"R S T U V W","260":"X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB","194":"TB UB VB WB XB R S T U V W","260":"X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB","194":"IB JB Q KB LB MB NB OB PB QB","260":"RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"File System Access API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js index 0c48cf648cfd13..3cb80df8005289 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b","33":"J D E F A B C"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"I H OC fB PC QC","2":"XB LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Navigation Timing API"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c","33":"J D E F A B C"},E:{"1":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"I H PC hB QC RC","2":"aB MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Navigation Timing API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js index c121c6220f2534..6d5daa779b8ac8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L 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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"16":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"16":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"16":"bC"},R:{"16":"cC"},S:{"1":"dC"}},B:2,C:"Navigator Language API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"16":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"16":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"16":"cC"},R:{"16":"dC"},S:{"1":"eC"}},B:2,C:"Navigator Language API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js index 6491ffd7e2867e..f59e3b9ebbe151 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","1028":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB","1028":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","1028":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"LC PC QC","132":"XB I MC NC OC fB"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","516":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","132":"I","516":"SC TC UC"},Q:{"1":"bC"},R:{"516":"cC"},S:{"260":"dC"}},B:7,C:"Network Information API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","1028":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB","1028":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","1028":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"MC QC RC","132":"aB I NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","132":"I","516":"TC UC VC"},Q:{"1":"cC"},R:{"516":"dC"},S:{"260":"eC"}},B:7,C:"Network Information API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js index 8a8458c4f85e43..4f80437a8bd451 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I","36":"b J D E F A B C K L G M N O c d e"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","36":"H PC QC"},J:{"1":"A","2":"D"},K:{"2":"A B C VB eB WB","36":"Q"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"36":"I","258":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"258":"cC"},S:{"1":"dC"}},B:1,C:"Web Notifications"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I","36":"c J D E F A B C K L G M N O d e f"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","36":"H QC RC"},J:{"1":"A","2":"D"},K:{"2":"A B C YB gB ZB","36":"Q"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"36":"I","258":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"258":"dC"},S:{"1":"eC"}},B:1,C:"Web Notifications"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js index dc9e56aa8b26c1..a99beb5beaa5d7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:6,C:"Object.entries"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","16":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:6,C:"Object.entries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js index f45cca32d310d9..802cd21e1a75b2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G","260":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D oB cB pB qB","132":"E F rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F G M N O wB xB yB","33":"B C zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","132":"E 5B 6B 7B"},H:{"33":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB PC"},J:{"2":"D A"},K:{"1":"Q","2":"A","33":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 object-fit/object-position"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G","260":"M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","132":"E F sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F G M N O xB yB zB","33":"B C 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","132":"E 6B 7B 8B"},H:{"33":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB QC"},J:{"2":"D A"},K:{"1":"Q","2":"A","33":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 object-fit/object-position"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js index 6f419b5e5768b1..5c939a8d8f255f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 t u v w x y z","2":"7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"g h i j k l m n o p q r s t","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I","2":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"Object.observe data binding"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 u v w x y z","2":"8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"h i j k l m n o p q r s t u","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I","2":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"Object.observe data binding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js index 9de6518c59440a..f4d3101ea91d74 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"B C K L G dB VB WB tB uB vB","8":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","8":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","8":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"8":"KC"},I:{"1":"H","8":"XB I LC MC NC OC fB PC QC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","8":"I SC"},Q:{"1":"bC"},R:{"8":"cC"},S:{"1":"dC"}},B:6,C:"Object.values method"}; +module.exports={A:{A:{"8":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"B C K L G fB YB ZB uB vB wB","8":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","8":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","8":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"8":"LC"},I:{"1":"H","8":"aB I MC NC OC PC hB QC RC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","8":"I TC"},Q:{"1":"cC"},R:{"8":"dC"},S:{"1":"eC"}},B:6,C:"Object.values method"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js index 889e445557d3b8..3df56d1b6db233 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O","2":"C R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","130":"A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O","2":"C R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","130":"A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js index d8d8b6fc907edd..39888c200e520b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"F gB","8":"J D E"},B:{"1":"C K L G M N O R S T U V","2":"W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U jB kB","2":"V W X Y Z P a H","4":"XB","8":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V","2":"W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB zB VB eB 0B WB","2":"F RB SB TB UB wB","8":"xB yB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I LC MC NC OC fB PC QC","2":"H"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"Offline web applications"}; +module.exports={A:{A:{"1":"A B","2":"F iB","8":"J D E"},B:{"1":"C K L G M N O R S T U V","2":"W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U lB mB","2":"V W X Y Z a P b H dB","4":"aB","8":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V","2":"W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB 0B YB gB 1B ZB","2":"F SB TB UB VB WB XB xB","8":"yB zB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I MC NC OC PC hB QC RC","2":"H"},J:{"1":"D A"},K:{"1":"B C YB gB ZB","2":"A Q"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"Offline web applications"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js index f8b5c591d9b64f..ee994174c9d776 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","322":"FB YB GB ZB Q HB IB JB KB LB MB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","322":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:1,C:"OffscreenCanvas"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","194":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","322":"GB bB HB cB IB JB Q KB LB MB NB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","322":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:1,C:"OffscreenCanvas"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js index 4e1e07daeba76d..e361a43868b406 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB","132":"G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"A","2":"D"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Ogg Vorbis audio format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB","132":"G vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"A","2":"D"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Ogg Vorbis audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js index 7db415e7d6a935..a511139eee888a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","8":"F A B"},B:{"1":"N O R S T U V W X Y Z P a H","8":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:6,C:"Ogg/Theora video format"}; +module.exports={A:{A:{"2":"J D E iB","8":"F A B"},B:{"1":"N O R S T U V W X Y Z a P b H","8":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:6,C:"Ogg/Theora video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js index 1051df170d4aa4..9e51439a7cd5af 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G","16":"M N O c"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B","16":"C"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Reversed attribute of ordered lists"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G","16":"M N O d"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B","16":"C"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Reversed attribute of ordered lists"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js index 2a1931c903bce8..13ddfecf0be227 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L G"},C:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"\"once\" event listener option"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},C:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"\"once\" event listener option"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js index d5d3d2cdbb2c62..54bb0645da98a9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D gB","260":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB","516":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B","4":"WB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"A","132":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Online/offline status"}; +module.exports={A:{A:{"1":"F A B","2":"J D iB","260":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB","516":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B","4":"ZB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"A","132":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Online/offline status"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js index 046dbeeb9802c6..0ec21b994074d5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p"},E:{"2":"I b J D E F A oB cB pB qB rB sB dB","132":"B C K L G VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","132":"AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Opus"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q"},E:{"2":"I c J D E F A pB eB qB rB sB tB fB","132":"B C K L G YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","132":"BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Opus"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js index 5e9cfc4625db6c..76c38ba5260eb6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB JB KB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Orientation Sensor"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q KB LB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Orientation Sensor"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js index 8c749853189fc8..7b1fc9a3574cad 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","260":"E","388":"F A B"},B:{"1":"G M N O R S T U V W X Y Z P a H","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B","129":"WB","260":"F B wB xB yB zB VB eB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"C Q WB","260":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"388":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS outline properties"}; +module.exports={A:{A:{"2":"J D iB","260":"E","388":"F A B"},B:{"1":"G M N O R S T U V W X Y Z a P b H","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B","129":"ZB","260":"F B xB yB zB 0B YB gB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"C Q ZB","260":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"388":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS outline properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js index 42a3f689191c7e..1422fd9d013a88 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C K L"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C K L"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js index 51611bc01bfc93..31b9839a92f694 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"PageTransitionEvent"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"PageTransitionEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js index d2da11f612d3c4..0b29f443d284f2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F jB kB","33":"A B C K L G 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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K","33":"L G M N O c d e f g h i j k l m n o p"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b J oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B C wB xB yB zB VB eB 0B","33":"G M N O c"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB","33":"PC QC"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","33":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Page Visibility"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F lB mB","33":"A B C K L G M N"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K","33":"L G M N O d e f g h i j k l m n o p q"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B C xB yB zB 0B YB gB 1B","33":"G M N O d"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB","33":"QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","33":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Page Visibility"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js index f886f5aff72dae..8340658b0a5b94 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L G"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"Passive event listeners"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L G"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"Passive event listeners"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js index ce165cf44c088c..43c93c755bb94a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","16":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P jB kB","16":"a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H","16":"lB mB nB"},E:{"1":"C K WB","2":"I b J D E F A B oB cB pB qB rB sB dB VB","16":"L G tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","16":"AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","16":"H"},J:{"2":"D","16":"A"},K:{"2":"A B C VB eB WB","16":"Q"},L:{"16":"H"},M:{"16":"P"},N:{"2":"A","16":"B"},O:{"16":"RC"},P:{"2":"I SC TC","16":"UC VC WC dB XC YC ZC aC"},Q:{"16":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:1,C:"Password Rules"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","16":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b lB mB","16":"H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H","16":"dB nB oB"},E:{"1":"C K ZB","2":"I c J D E F A B pB eB qB rB sB tB fB YB","16":"L G uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB xB yB zB 0B YB gB 1B ZB","16":"BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","16":"H"},J:{"2":"D","16":"A"},K:{"2":"A B C YB gB ZB","16":"Q"},L:{"16":"H"},M:{"16":"P"},N:{"2":"A","16":"B"},O:{"16":"SC"},P:{"2":"I TC UC","16":"VC WC XC fB YC ZC aC bC"},Q:{"16":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:1,C:"Password Rules"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js index 3b5d05803c4fcc..015c3a35053217 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K","132":"L G M N O"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB","132":"0 1 2 3 4 o p q r s t u v w x y z"},D:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j 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 YB GB ZB Q HB IB JB KB LB"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB","132":"E F rB"},F:{"1":"CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","16":"E","132":"5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"1":"A","2":"D"},K:{"2":"A B C VB eB WB","132":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"1":"dB XC YC ZC aC","132":"I SC TC UC VC WC"},Q:{"132":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:1,C:"Path2D"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K","132":"L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB","132":"0 1 2 3 4 5 p q r s t u v w x y z"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t","132":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","132":"E F sB"},F:{"1":"DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","16":"E","132":"6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"1":"fB YC ZC aC bC","132":"I TC UC VC WC XC"},Q:{"132":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:1,C:"Path2D"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js index 89104d26a1d06a..946dd01abfe19f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K","322":"L","8196":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB jB kB","4162":"CB DB EB FB YB GB ZB Q HB IB JB","16452":"KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"AB BB CB DB EB FB","1090":"YB GB","8196":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB","514":"A B dB","8196":"C VB"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w wB xB yB zB VB eB 0B WB","194":"0 1 2 3 4 x y z","8196":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","514":"8B 9B AC","8196":"BC CC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2049":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I","8196":"SC TC UC VC WC dB XC"},Q:{"8196":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Payment Request API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K","322":"L","8196":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB lB mB","4162":"DB EB FB GB bB HB cB IB JB Q KB","16452":"LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB","194":"BB CB DB EB FB GB","1090":"bB HB","8196":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB","514":"A B fB","8196":"C YB"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x xB yB zB 0B YB gB 1B ZB","194":"0 1 2 3 4 5 y z","8196":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","514":"9B AC BC","8196":"CC DC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"2049":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I","8196":"TC UC VC WC XC fB YC"},Q:{"8196":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Payment Request API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js index 813c01416466fb..29b13bed175395 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"G M N O R S T U V W X Y Z P a H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Built-in PDF viewer"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"G M N O R S T U V W X Y Z a P b H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"16":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Built-in PDF viewer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js index 1bcec8c82802ac..f6e900c8eb0ca9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:7,C:"Permissions API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:7,C:"Permissions API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js index 29dd208ae4d7ad..46fd27c4f5604b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","258":"R S T U V W","322":"X Y","388":"Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB jB kB","258":"SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","258":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W","322":"X Y","388":"Z P a H lB mB nB"},E:{"2":"I b J D E F A B oB cB pB qB rB sB dB","258":"C K L G VB WB tB uB vB"},F:{"2":"0 1 2 3 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","258":"4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB","322":"QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC","258":"BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","258":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","258":"Q"},L:{"388":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC","258":"VC WC dB XC YC ZC aC"},Q:{"258":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Permissions Policy"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","258":"R S T U V W","322":"X Y","388":"Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB lB mB","258":"TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","258":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W","322":"X Y","388":"Z a P b H dB nB oB"},E:{"2":"I c J D E F A B pB eB qB rB sB tB fB","258":"C K L G YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","258":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB","322":"RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC","258":"CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","258":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","258":"Q"},L:{"388":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC","258":"WC XC fB YC ZC aC bC"},Q:{"258":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Permissions Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js index 9c378de3fcc266..ec5a1274320ffe 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB jB kB","132":"QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","1090":"LB","1412":"PB","1668":"MB NB OB"},D:{"1":"OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB","2114":"NB"},E:{"1":"L G tB uB vB","2":"I b J D E F oB cB pB qB rB sB","4100":"A B C K dB VB WB"},F:{"1":"RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t wB xB yB zB VB eB 0B WB","8196":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B","4100":"6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"16388":"H"},M:{"16388":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Picture-in-Picture"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB lB mB","132":"RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","1090":"MB","1412":"QB","1668":"NB OB PB"},D:{"1":"PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB","2114":"OB"},E:{"1":"L G uB vB wB","2":"I c J D E F pB eB qB rB sB tB","4100":"A B C K fB YB ZB"},F:{"1":"SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u xB yB zB 0B YB gB 1B ZB","8196":"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 Q KB LB MB NB OB PB QB RB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B","4100":"7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"16388":"H"},M:{"16388":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Picture-in-Picture"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js index dc0a5ec8692407..ed42cd072c7164 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q jB kB","578":"r s t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t","194":"u"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB","322":"h"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Picture element"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r lB mB","578":"s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u","194":"v"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB","322":"i"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Picture element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js index f81497610fb2d9..626e9fc95d9170 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"2":"hB","194":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"194":"dC"}},B:1,C:"Ping attribute"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"2":"jB","194":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"194":"eC"}},B:1,C:"Ping attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js index 2c1e5d75d16650..e3eaf35c709d84 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"gB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"PNG alpha transparency"}; +module.exports={A:{A:{"1":"D E F A B","2":"iB","8":"J"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"PNG alpha transparency"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js index e03d43876bcf75..cdab6c740fbfca 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"CSS pointer-events (for HTML)"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"CSS pointer-events (for HTML)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js index 1c285b73dbab08..d260ccbde32557 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F gB","164":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB","8":"J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x","328":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB"},D:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e","8":"0 1 2 3 4 5 6 7 8 f g h i j k l m n o p q r s t u v w x y z","584":"9 AB BB"},E:{"1":"K L G tB uB vB","2":"I b J oB cB pB","8":"D E F A B C qB rB sB dB VB","1096":"WB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","8":"G M N O c d e f g h i j k l m n o p q r s t u v","584":"w x y"},G:{"1":"FC GC HC IC JC","8":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","6148":"EC"},H:{"2":"KC"},I:{"1":"H","8":"XB I LC MC NC OC fB PC QC"},J:{"8":"D A"},K:{"1":"Q","2":"A","8":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","36":"A"},O:{"8":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"SC","8":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"328":"dC"}},B:2,C:"Pointer events"}; +module.exports={A:{A:{"1":"B","2":"J D E F iB","164":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB","8":"J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y","328":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB"},D:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f","8":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","584":"AB BB CB"},E:{"1":"K L G uB vB wB","2":"I c J pB eB qB","8":"D E F A B C rB sB tB fB YB","1096":"ZB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","8":"G M N O d e f g h i j k l m n o p q r s t u v w","584":"x y z"},G:{"1":"GC HC IC JC KC","8":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","6148":"FC"},H:{"2":"LC"},I:{"1":"H","8":"aB I MC NC OC PC hB QC RC"},J:{"8":"D A"},K:{"1":"Q","2":"A","8":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","36":"A"},O:{"8":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"TC","8":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"328":"eC"}},B:2,C:"Pointer events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js index d00c7c836af329..6ead8deed0d4de 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K jB kB","33":"L G M N O c d e f g h i j k l m n o p q r s t u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G","33":"f g h i j k l m n o p q r s t","66":"M N O c d e"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:2,C:"Pointer Lock API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K lB mB","33":"L G M N O d e f g h i j k l m n o p q r s t u v w x y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G","33":"g h i j k l m n o p q r s t u","66":"M N O d e f"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:2,C:"Pointer Lock API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js index 3787bceab200df..daa48d02b172c9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V","322":"a H","450":"W X Y Z P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB","194":"TB UB aB bB R S T U V","322":"X Y Z P a H lB mB nB","450":"W"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB","194":"Q HB IB JB KB LB MB NB OB PB QB","322":"RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"450":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Portals"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V","322":"P b H","450":"W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB","194":"UB VB WB XB R S T U V","322":"X Y Z a P b H dB nB oB","450":"W"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB","194":"IB JB Q KB LB MB NB OB PB QB RB","322":"SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"450":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Portals"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js index 6a1df485d05a2b..6dd73aa38a4969 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB jB kB"},D:{"1":"UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"YC ZC aC","2":"I SC TC UC VC WC dB XC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"prefers-color-scheme media query"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB lB mB"},D:{"1":"VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"ZC aC bC","2":"I TC UC VC WC XC fB YC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"prefers-color-scheme media query"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js index 70dce33f8e9e0b..a8b4d36bbc4d1c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q jB kB"},D:{"1":"SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC VC WC dB"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"prefers-reduced-motion media query"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB lB mB"},D:{"1":"TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC WC XC fB"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"prefers-reduced-motion media query"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js index 0756fc58aeed06..9d1073598f767b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"G uB vB","2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB"},F:{"1":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB wB xB yB zB VB eB 0B WB"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC VC WC dB"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Private class fields"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB"},E:{"1":"G vB wB","2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB"},F:{"1":"IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB xB yB zB 0B YB gB 1B ZB"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC WC XC fB"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Private class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js index cefde0d3fb8b80..7e60310f06c21a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"V W X Y Z P a H","2":"C K L G M N O R S T U"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U"},E:{"1":"G uB vB","2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB"},F:{"1":"OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB wB xB yB zB VB eB 0B WB"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Public class fields"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"V W X Y Z a P b H","2":"C K L G M N O R S T U"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U"},E:{"1":"G vB wB","2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB"},F:{"1":"PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB xB yB zB 0B YB gB 1B ZB"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js index 057d81302bf77f..f5200437059cc1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F wB xB yB zB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B","132":"4B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"progress element"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F xB yB zB 0B"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B","132":"5B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"progress element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js index 2952244b87b91f..93ab40244d3a3e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","2":"C K L G M N"},C:{"1":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB jB kB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Promise.prototype.finally"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","2":"C K L G M N"},C:{"1":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB lB mB"},D:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Promise.prototype.finally"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js index e843307486a9df..26e6a60d5bd154 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","4":"k l","8":"hB XB I b J D E F A B C K L G M N O c d e f g h i j jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"p","8":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","8":"I b J D oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","4":"c","8":"F B C G M N O wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB 2B 3B 4B"},H:{"8":"KC"},I:{"1":"H QC","8":"XB I LC MC NC OC fB PC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Promises"}; +module.exports={A:{A:{"8":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","4":"l m","8":"jB aB I c J D E F A B C K L G M N O d e f g h i j k lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"q","8":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","8":"I c J D pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","4":"d","8":"F B C G M N O xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB 3B 4B 5B"},H:{"8":"LC"},I:{"1":"H RC","8":"aB I MC NC OC PC hB QC"},J:{"8":"D A"},K:{"1":"Q","8":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Promises"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js index 65cf17bcc9a3d6..d498cd57c7ff82 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:4,C:"Proximity API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:4,C:"Proximity API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js index 915d22980f5871..f359dc2c23956f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O v w x y z","66":"c d e f g h i j k l m n o p q r s t u"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C i j k l m n o p q r s wB xB yB zB VB eB 0B WB","66":"G M N O c d e f g h"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:6,C:"Proxy object"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O w x y z","66":"d e f g h i j k l m n o p q r s t u v"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB","66":"G M N O d e f g h i"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:6,C:"Proxy object"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js index 89859c662da2fe..54f26963fd06c2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB jB kB","4":"OB PB QB RB SB","132":"NB"},D:{"1":"QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB"},E:{"1":"G uB vB","2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB tB","260":"L"},F:{"1":"GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB wB xB yB zB VB eB 0B WB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC VC WC dB"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Public class fields"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB lB mB","4":"PB QB RB SB TB","132":"OB"},D:{"1":"RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB"},E:{"1":"G vB wB","2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB uB","260":"L"},F:{"1":"HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB xB yB zB 0B YB gB 1B ZB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC WC XC fB"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js index caa623c2041819..c05f94cd17c1a5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB","2":"F B C G M N O c KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","4":"g","16":"d e f h"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB","2":"XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"HTTP Public Key Pinning"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB","2":"F B C G M N O d LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","4":"h","16":"e f g i"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB","2":"YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"HTTP Public Key Pinning"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js index 5e5e05b091a739..e73cc184ae922c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O","2":"C K L G M","257":"R S T U V W X Y Z P a H"},C:{"2":"0 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","257":"1 3 4 5 6 7 8 AB BB CB DB EB FB YB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","1281":"2 9 GB"},D:{"2":"0 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","257":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","388":"1 2 3 4 5 6"},E:{"2":"I b J D E F oB cB pB qB rB","514":"A B C K L G sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t wB xB yB zB VB eB 0B WB","16":"u v w x y","257":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"257":"dC"}},B:5,C:"Push API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O","2":"C K L G M","257":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","257":"2 4 5 6 7 8 9 BB CB DB EB FB GB bB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","1281":"3 AB HB"},D:{"2":"0 1 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","257":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","388":"2 3 4 5 6 7"},E:{"2":"I c J D E F pB eB qB rB sB","514":"A B C K L G tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u xB yB zB 0B YB gB 1B ZB","16":"v w x y z","257":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"257":"eC"}},B:5,C:"Push API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js index 622b854c3d834b..22a3c4a8797a2d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"gB","8":"J D","132":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","8":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","8":"F wB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"querySelector/querySelectorAll"}; +module.exports={A:{A:{"1":"F A B","2":"iB","8":"J D","132":"E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","8":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","8":"F xB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"querySelector/querySelectorAll"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js index ce7559f3c59ed0..191ca21c537fbb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","16":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L G M N O c d e f g h i"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F wB","132":"B C xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B 3B"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","132":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"257":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"readonly attribute of input and textarea elements"}; +module.exports={A:{A:{"1":"J D E F A B","16":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L G M N O d e f g h i j"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F xB","132":"B C yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B 4B"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","132":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"257":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"readonly attribute of input and textarea elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js index 33478a57c575e0..55bbe67b46d432 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"R S T U","132":"C K L G M N O","513":"V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V","2":"I b J D E F A B C K L G M N O c d","260":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB","513":"W X Y Z P a H lB mB nB"},E:{"1":"C VB WB","2":"I b J D oB cB pB qB","132":"E F A B rB sB dB","1025":"K L G tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB","2":"F B C wB xB yB zB VB eB 0B WB","513":"RB SB TB UB"},G:{"1":"CC DC EC FC","2":"cB 1B fB 2B 3B 4B","132":"E 5B 6B 7B 8B 9B AC BC","1025":"GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Referrer Policy"}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"R S T U","132":"C K L G M N O","513":"V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V","2":"I c J D E F A B C K L G M N O d e","260":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB","513":"W X Y Z a P b H dB nB oB"},E:{"1":"C YB ZB","2":"I c J D pB eB qB rB","132":"E F A B sB tB fB","1025":"K L G uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB","2":"F B C xB yB zB 0B YB gB 1B ZB","513":"SB TB UB VB WB XB"},G:{"1":"DC EC FC GC","2":"eB 2B hB 3B 4B 5B","132":"E 6B 7B 8B 9B AC BC CC","1025":"HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Referrer Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js index b0e9d5a7ad604b..12381cdcda6b2e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","129":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"2":"I b J D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B wB xB yB zB VB eB","129":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D","129":"A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"Custom protocol handling"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","129":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"2":"I c J D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B xB yB zB 0B YB gB","129":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D","129":"A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"Custom protocol handling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js index c6b4454588bf81..4083fd1cd1522f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:1,C:"rel=noopener"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:1,C:"rel=noopener"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js index 290cb9682fcada..1b9adf08bbd4d3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","132":"B"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","16":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L G"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Link type \"noreferrer\""}; +module.exports={A:{A:{"2":"J D E F A iB","132":"B"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L G"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Link type \"noreferrer\""}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js index e7e2dfeda9e071..331d95d1409f7d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","2":"C K L G M","132":"N"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m jB kB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","132":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D E oB cB pB qB rB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 u v w x y z"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I","132":"SC TC UC VC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"relList (DOMTokenList)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","2":"C K L G M","132":"N"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n lB mB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","132":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E pB eB qB rB sB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 v w x y z"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"132":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I","132":"TC UC VC WC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"relList (DOMTokenList)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js index de593d070fff5a..8ac4e70727f627 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E gB","132":"F A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"E 1B fB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB","260":"2B"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"rem (root em) units"}; +module.exports={A:{A:{"1":"B","2":"J D E iB","132":"F A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"E 2B hB 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB","260":"3B"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"rem (root em) units"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js index 0b2a92fd66a3bc..38fbba656817f0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","33":"B C K L G M N O c d e f","164":"I b J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F","33":"f g","164":"O c d e","420":"A B C K L G M N"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","33":"3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"requestAnimationFrame"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","33":"B C K L G M N O d e f g","164":"I c J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F","33":"g h","164":"O d e f","420":"A B C K L G M N"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","33":"4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"requestAnimationFrame"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js index 5d809aa9b5a8df..94ad03e8ec1db6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"AB BB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB","322":"L G tB uB vB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","322":"HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"requestIdleCallback"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB","194":"BB CB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB","322":"L G uB vB wB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","322":"IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"requestIdleCallback"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js index d29e94c3af0634..e095df3161276b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB jB kB"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB","194":"BB CB DB EB FB YB GB ZB Q HB"},E:{"1":"L G tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB WB","66":"K"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB","194":"0 1 2 3 4 5 6 7 8 y z"},G:{"1":"HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"WC dB XC YC ZC aC","2":"I SC TC UC VC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Resize Observer"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB lB mB"},D:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB","194":"CB DB EB FB GB bB HB cB IB JB"},E:{"1":"L G uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB ZB","66":"K"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB","194":"0 1 2 3 4 5 6 7 8 9 z"},G:{"1":"IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"XC fB YC ZC aC bC","2":"I TC UC VC WC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Resize Observer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js index 77eac7b077a0ee..b8df313c907ef4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB","194":"o p q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Resource Timing"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB","194":"p q r s"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Resource Timing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js index d7745d453ed93b..cb164726c3aa4c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"1 2 3"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB 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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n wB xB yB zB VB eB 0B WB","194":"o p q"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Rest parameters"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"2 3 4"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o xB yB zB 0B YB gB 1B ZB","194":"p q r"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Rest parameters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js index ff245614e2f4e8..91ba1cf007a55c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L","516":"G M N O"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB","33":"0 f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f","33":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N wB xB yB zB VB eB 0B WB","33":"O c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","130":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"1":"dC"}},B:5,C:"WebRTC Peer-to-peer connections"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L","516":"G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB","33":"0 1 g h i j k l m n o p q r s t u v w x y z"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g","33":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N xB yB zB 0B YB gB 1B ZB","33":"0 O d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","130":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"1":"eC"}},B:5,C:"WebRTC Peer-to-peer connections"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js index e4c7431f127144..750f2bea76117f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"J D E F A B gB"},B:{"4":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I"},E:{"4":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"I oB cB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","8":"F B C wB xB yB zB VB eB 0B WB"},G:{"4":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB"},H:{"8":"KC"},I:{"4":"XB I H OC fB PC QC","8":"LC MC NC"},J:{"4":"A","8":"D"},K:{"4":"Q","8":"A B C VB eB WB"},L:{"4":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"4":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"4":"cC"},S:{"1":"dC"}},B:1,C:"Ruby annotation"}; +module.exports={A:{A:{"4":"J D E F A B iB"},B:{"4":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I"},E:{"4":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"I pB eB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","8":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"4":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB"},H:{"8":"LC"},I:{"4":"aB I H PC hB QC RC","8":"MC NC OC"},J:{"4":"A","8":"D"},K:{"4":"Q","8":"A B C YB gB ZB"},L:{"4":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"4":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"4":"dC"},S:{"1":"eC"}},B:1,C:"Ruby annotation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js index 8ccff4ab847100..ffe54ef1cd51d6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"J D gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o","2":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J pB","2":"D E F A B C K L G rB sB dB VB WB tB uB vB","16":"qB","129":"I oB cB"},F:{"1":"F B C G M N O wB xB yB zB VB eB 0B WB","2":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"1B fB 2B 3B 4B","2":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","129":"cB"},H:{"1":"KC"},I:{"1":"XB I LC MC NC OC fB PC","2":"H QC"},J:{"1":"D A"},K:{"1":"A B C VB eB WB","2":"Q"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"display: run-in"}; +module.exports={A:{A:{"1":"E F A B","2":"J D iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p","2":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J qB","2":"D E F A B C K L G sB tB fB YB ZB uB vB wB","16":"rB","129":"I pB eB"},F:{"1":"F B C G M N O xB yB zB 0B YB gB 1B ZB","2":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"2B hB 3B 4B 5B","2":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","129":"eB"},H:{"1":"LC"},I:{"1":"aB I MC NC OC PC hB QC","2":"H RC"},J:{"1":"D A"},K:{"1":"A B C YB gB ZB","2":"Q"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"display: run-in"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js index 61fadb8f404135..b0c0ed57663903 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","388":"B"},B:{"1":"O R S T U V W","2":"C K L G","129":"M N","513":"X Y Z P a H"},C:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB jB kB"},D:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","513":"S T U V W X Y Z P a H lB mB nB"},E:{"1":"G uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB VB","2052":"L","3076":"C K WB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v wB xB yB zB VB eB 0B WB","513":"PB QB RB SB TB UB"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC","2052":"CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","513":"Q"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"16":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:6,C:"'SameSite' cookie attribute"}; +module.exports={A:{A:{"2":"J D E F A iB","388":"B"},B:{"1":"O R S T U V W","2":"C K L G","129":"M N","513":"X Y Z a P b H"},C:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB lB mB"},D:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","513":"S T U V W X Y Z a P b H dB nB oB"},E:{"1":"G vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB YB","2052":"L","3076":"C K ZB uB"},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 Q KB LB MB NB OB PB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w xB yB zB 0B YB gB 1B ZB","513":"QB RB SB TB UB VB WB XB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC","2052":"DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"513":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"16":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:6,C:"'SameSite' cookie attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js index 660ac8ad52a2fb..8fc4326151389e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","164":"B"},B:{"1":"R S T U V W X Y Z P a H","36":"C K L G M N O"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N jB kB","36":"0 O c d e f g h i j 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 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","36":"B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"Screen Orientation"}; +module.exports={A:{A:{"2":"J D E F A iB","164":"B"},B:{"1":"R S T U V W X Y Z a P b H","36":"C K L G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N lB mB","36":"0 1 O d e f g h i j 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 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A","36":"B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"Screen Orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js index 62395e2d6a7eb9..e5f2a1b4391a59 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB","132":"b"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"async attribute for external scripts"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB","132":"c"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"async attribute for external scripts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js index e56811255c0c75..9d0444069940d7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","132":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","257":"I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"defer attribute for external scripts"}; +module.exports={A:{A:{"1":"A B","132":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","257":"I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"defer attribute for external scripts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js index 7a5a6a9d0f14a8..ff5eb466cd6375 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","132":"E F A B"},B:{"1":"R S T U V W X Y Z P a H","132":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s jB kB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB"},E:{"2":"I b oB cB","132":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB yB zB","16":"B VB eB","132":"0 1 2 3 4 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z 0B WB"},G:{"16":"cB 1B fB","132":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","16":"LC MC","132":"XB I NC OC fB PC QC"},J:{"132":"D A"},K:{"132":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"132":"RC"},P:{"132":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:5,C:"scrollIntoView"}; +module.exports={A:{A:{"2":"J D iB","132":"E F A B"},B:{"1":"R S T U V W X Y Z a P b H","132":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t lB mB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB"},E:{"2":"I c pB eB","132":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB zB 0B","16":"B YB gB","132":"0 1 2 3 4 5 C G M N O d e f g h i j k l m n o p q r s t u v w x y z 1B ZB"},G:{"16":"eB 2B hB","132":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","16":"MC NC","132":"aB I OC PC hB QC RC"},J:{"132":"D A"},K:{"1":"Q","132":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"132":"SC"},P:{"132":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:5,C:"scrollIntoView"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js index 04317a0302e110..71ab831450021f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js index 87849b51e1a955..e390b1d6cb1a03 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","2":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB","2":"F B C RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","2":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB","2":"F B C SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js index f539e9a7b00b14..d87b826733e189 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"gB","260":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","2180":"0 1 2 3 4 5 6 7 8"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","132":"F B C wB xB yB zB VB eB 0B WB"},G:{"16":"fB","132":"cB 1B","516":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","16":"XB I LC MC NC OC","1025":"fB"},J:{"1":"A","16":"D"},K:{"1":"Q","16":"A B C VB eB","132":"WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","16":"A"},O:{"1025":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2180":"dC"}},B:5,C:"Selection API"}; +module.exports={A:{A:{"1":"F A B","16":"iB","260":"J D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"0 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","2180":"1 2 3 4 5 6 7 8 9"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"16":"hB","132":"eB 2B","516":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","16":"aB I MC NC OC PC","1025":"hB"},J:{"1":"A","16":"D"},K:{"1":"Q","16":"A B C YB gB","132":"ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","16":"A"},O:{"1025":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2180":"eC"}},B:5,C:"Selection API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js index 2430e2f02c6260..50bb0fed73481e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB jB kB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","196":"GB ZB Q HB","324":"IB"},E:{"2":"I b J D E F A B C oB cB pB qB rB sB dB VB","516":"K L G WB tB uB vB"},F:{"1":"9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Server Timing"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB lB mB"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","196":"HB cB IB JB","324":"Q"},E:{"2":"I c J D E F A B C pB eB qB rB sB tB fB YB","516":"K L G ZB uB vB wB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Server Timing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js index f65b1daf73c120..bf9492f4c85134 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L","322":"G M"},C:{"1":"1 3 4 5 6 7 8 AB BB CB DB EB FB YB ZB Q HB IB JB KB LB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","194":"0 q r s t u v w x y z","513":"2 9 GB MB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w","4":"0 1 x y z"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D E F A B oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j wB xB yB zB VB eB 0B WB","4":"k l m n o"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","4":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","4":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"4":"cC"},S:{"2":"dC"}},B:4,C:"Service Workers"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L","322":"G M"},C:{"1":"2 4 5 6 7 8 9 BB CB DB EB FB GB bB cB IB JB Q KB LB MB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","194":"0 1 r s t u v w x y z","513":"3 AB HB NB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x","4":"0 1 2 y z"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D E F A B pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k xB yB zB 0B YB gB 1B ZB","4":"l m n o p"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","4":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","4":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"4":"dC"},S:{"2":"eC"}},B:4,C:"Service Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js index fabfe1ca2c9b74..190f3d854d21a9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O","2":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js index 47b0f38758e863..a608b51e13f9af 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","2":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"1":"XB I H MC NC OC fB PC QC","260":"LC"},J:{"1":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"1":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","16":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"SHA-2 SSL certificates"}; +module.exports={A:{A:{"1":"J D E F A B","2":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"1":"aB I H NC OC PC hB QC RC","260":"MC"},J:{"1":"D A"},K:{"1":"Q","16":"A B C YB gB ZB"},L:{"1":"H"},M:{"16":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","16":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"SHA-2 SSL certificates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js index 1998708d6ade2c..379234dd03f29b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R","2":"C K L G M N O S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","66":"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 YB GB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","2":"I b J D E F A B C K L G M N O c d e f g h S T U V W X Y Z P a H lB mB nB","33":"i j k l m n o p q r"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB","2":"F B C LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","33":"G M N O c d e"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB","33":"PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC","2":"ZC aC","33":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R","2":"C K L G M N O S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","66":"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 bB HB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","2":"I c J D E F A B C K L G M N O d e f g h i S T U V W X Y Z a P b H dB nB oB","33":"j k l m n o p q r s"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB","2":"F B C MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB","33":"QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC","2":"aC bC","33":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js index 9d66015d38f762..6cf1dea9353300 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB jB kB","322":"FB","578":"YB GB ZB Q"},D:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L G dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","132":"8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I","4":"SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Shadow DOM (V1)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB lB mB","322":"GB","578":"bB HB cB IB"},D:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"A B C K L G fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","132":"9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I","4":"TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Shadow DOM (V1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js index f5038765273fc6..a8c1e8180ad2d2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G","194":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB jB kB","194":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB","450":"SB TB UB aB bB","513":"R S T iB U V W X Y Z P a H"},D:{"1":"MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB","194":"GB ZB Q HB IB JB KB LB","513":"H lB mB nB"},E:{"2":"I b J D E F A oB cB pB qB rB sB","194":"B C K L G dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","194":"4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B","194":"9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"513":"H"},M:{"513":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"Shared Array Buffer"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G","194":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB lB mB","194":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB","450":"TB UB VB WB XB","513":"R S T kB U V W X Y Z a P b H dB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB","194":"HB cB IB JB Q KB LB MB","513":"b H dB nB oB"},E:{"2":"I c J D E F A pB eB qB rB sB tB","194":"B C K L G fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","194":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B","194":"AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"513":"H"},M:{"513":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Shared Array Buffer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js index 79673524ab61cd..46d468194915d9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"b J pB","2":"I D E F A B C K L G oB cB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB xB yB"},G:{"1":"2B 3B","2":"E cB 1B fB 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C VB eB WB","2":"Q","16":"A"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I","2":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"Shared Web Workers"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"c J qB","2":"I D E F A B C K L G pB eB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB yB zB"},G:{"1":"3B 4B","2":"E eB 2B hB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C YB gB ZB","2":"Q","16":"A"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I","2":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"Shared Web Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js index 4033d16f34692b..4c5e7b93ede14c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J gB","132":"D E"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},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 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB"},H:{"1":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Server Name Indication"}; +module.exports={A:{A:{"1":"F A B","2":"J iB","132":"D E"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},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 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB"},H:{"1":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Server Name Indication"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js index 7730cafad18ab7..5f35f6e5f750f5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F A gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","2":"8 9 hB XB I b J D E F A B C AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","2":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"E F A B C sB dB VB","2":"I b J D oB cB pB qB rB","129":"K L G WB tB uB vB"},F:{"1":"1 G M N O c d e f g h i j k l m n o p q r s t u v w z WB","2":"0 2 3 4 5 6 7 8 9 F B C x y AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC","2":"cB 1B fB 2B 3B 4B","257":"DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I OC fB PC QC","2":"H LC MC NC"},J:{"2":"D A"},K:{"1":"WB","2":"A B C Q VB eB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"RC"},P:{"1":"I","2":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"16":"cC"},S:{"1":"dC"}},B:7,C:"SPDY protocol"}; +module.exports={A:{A:{"1":"B","2":"J D E F A iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","2":"9 jB aB I c J D E F A B C AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","2":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"E F A B C tB fB YB","2":"I c J D pB eB qB rB sB","129":"K L G ZB uB vB wB"},F:{"1":"0 2 G M N O d e f g h i j k l m n o p q r s t u v w x ZB","2":"1 3 4 5 6 7 8 9 F B C y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC","2":"eB 2B hB 3B 4B 5B","257":"EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I PC hB QC RC","2":"H MC NC OC"},J:{"2":"D A"},K:{"1":"ZB","2":"A B C Q YB gB"},L:{"2":"H"},M:{"2":"P"},N:{"1":"B","2":"A"},O:{"2":"SC"},P:{"1":"I","2":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"16":"dC"},S:{"1":"eC"}},B:7,C:"SPDY protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js index f7ef58de4cd89f..2a0e60af46e3f9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","1026":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e jB kB","322":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h","164":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L oB cB pB qB rB sB dB VB WB tB","2084":"G uB vB"},F:{"2":"F B C G M N O c d e f g h i j wB xB yB zB VB eB 0B WB","1026":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","2084":"JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"164":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"322":"dC"}},B:7,C:"Speech Recognition API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","1026":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f lB mB","322":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i","164":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L pB eB qB rB sB tB fB YB ZB uB","2084":"G vB wB"},F:{"2":"F B C G M N O d e f g h i j k xB yB zB 0B YB gB 1B ZB","1026":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2084":"KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"164":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"322":"eC"}},B:7,C:"Speech Recognition API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js index 5bc1f884eec713..6471bea12acbd4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O","2":"C K","257":"R S T U V W X Y Z P a H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n jB kB","194":"0 1 2 3 4 5 o p q r s t u v 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","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p","257":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},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 Q HB","2":"F B C G M N O c d e f g h i j wB xB yB zB VB eB 0B WB","257":"IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:7,C:"Speech Synthesis API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O","2":"C K","257":"R S T U V W X Y Z a P b H"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o lB mB","194":"0 1 2 3 4 5 6 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","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q","257":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},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","2":"F B C G M N O d e f g h i j k xB yB zB 0B YB gB 1B ZB","257":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:7,C:"Speech Synthesis API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js index 95ec7457c597df..67aa5a2c5bed82 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"4":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"4":"KC"},I:{"4":"XB I H LC MC NC OC fB PC QC"},J:{"1":"A","4":"D"},K:{"4":"A B C Q VB eB WB"},L:{"4":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"4":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"4":"cC"},S:{"2":"dC"}},B:1,C:"Spellcheck attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"4":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"4":"LC"},I:{"4":"aB I H MC NC OC PC hB QC RC"},J:{"1":"A","4":"D"},K:{"4":"A B C Q YB gB ZB"},L:{"4":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"4":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"4":"dC"},S:{"2":"eC"}},B:1,C:"Spellcheck attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js index 97e2de36a829f2..742ae80da86998 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C oB cB pB qB rB sB dB VB WB","2":"K L G tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2":"EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:7,C:"Web SQL Database"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C pB eB qB rB sB tB fB YB ZB","2":"K L G uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2":"FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:7,C:"Web SQL Database"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js index 16fb6315fc664e..f89c990a870326 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","260":"C","514":"K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o jB kB","194":"p q r s t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q","260":"r s t u"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB qB","260":"E rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d wB xB yB zB VB eB 0B WB","260":"e f g h"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","260":"E 5B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Srcset and sizes attributes"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","260":"C","514":"K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p lB mB","194":"q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r","260":"s t u v"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB rB","260":"E sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e xB yB zB 0B YB gB 1B ZB","260":"f g h i"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","260":"E 6B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Srcset and sizes attributes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js index 6630c034b2e31d..bf66d4c9c914d6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M jB kB","129":"t u v w x y","420":"N O c d e f g h i j k l m n o p q r s"},D:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d","420":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B G M N wB xB yB zB VB eB 0B","420":"C O c d e f g h i j k l m n o p q r s t u v w WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","513":"HC IC JC","1537":"AC BC CC DC EC FC GC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","420":"A"},K:{"1":"Q","2":"A B VB eB","420":"C WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","420":"I SC"},Q:{"1":"bC"},R:{"420":"cC"},S:{"2":"dC"}},B:4,C:"getUserMedia/Stream API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M lB mB","129":"u v w x y z","420":"N O d e f g h i j k l m n o p q r s t"},D:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e","420":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B G M N xB yB zB 0B YB gB 1B","420":"C O d e f g h i j k l m n o p q r s t u v w x ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","513":"IC JC KC","1537":"BC CC DC EC FC GC HC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","420":"A"},K:{"1":"Q","2":"A B YB gB","420":"C ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","420":"I TC"},Q:{"1":"cC"},R:{"420":"dC"},S:{"2":"eC"}},B:4,C:"getUserMedia/Stream API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js index 8862b29fecfa2f..dea39be22691c1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","130":"B"},B:{"1":"P a H","16":"C K","260":"L G","1028":"R S T U V W X Y Z","5124":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB jB kB","6148":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","6722":"EB FB YB GB ZB Q HB IB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","260":"9 AB BB CB DB EB FB","1028":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z"},E:{"2":"I b J D E F oB cB pB qB rB sB","1028":"G uB vB","3076":"A B C K L dB VB WB tB"},F:{"1":"UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v wB xB yB zB VB eB 0B WB","260":"0 1 2 w x y z","1028":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B","16":"8B","1028":"9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","1028":"Q"},L:{"1":"H"},M:{"6148":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC","1028":"UC VC WC dB XC YC ZC aC"},Q:{"1028":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"Streams"}; +module.exports={A:{A:{"2":"J D E F A iB","130":"B"},B:{"1":"a P b H","16":"C K","260":"L G","1028":"R S T U V W X Y Z","5124":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB lB mB","6148":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","6722":"FB GB bB HB cB IB JB Q"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","260":"AB BB CB DB EB FB GB","1028":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z"},E:{"2":"I c J D E F pB eB qB rB sB tB","1028":"G vB wB","3076":"A B C K L fB YB ZB uB"},F:{"1":"VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w xB yB zB 0B YB gB 1B ZB","260":"0 1 2 3 x y z","1028":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B","16":"9B","1028":"AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"6148":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC","1028":"VC WC XC fB YC ZC aC bC"},Q:{"1028":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"Streams"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js index 29db6823237f5e..69a974490c3ebd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A gB","129":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Strict Transport Security"}; +module.exports={A:{A:{"2":"J D E F A iB","129":"B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Strict Transport Security"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js index 0f7ed5eee6269b..1eec643e395a5a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB","2":"hB XB I b J D E F A B C K L G M N O c d ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","322":"CB DB EB FB YB GB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","194":"d e f g h i j k l m n o p q r s t"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:7,C:"Scoped CSS"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB","2":"jB aB I c J D E F A B C K L G M N O d e cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","322":"DB EB FB GB bB HB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","194":"e f g h i j k l m n o p q r s t u"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:7,C:"Scoped CSS"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js index d399cbedbb26aa..0003dbecc1ba6e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","194":"AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Subresource Integrity"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","194":"BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Subresource Integrity"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js index 0110fb72e292f1..3ad1c14af63a26 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"M N O R S T U V W X Y Z P a H","516":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","260":"I b J D E F A B C K L G M N O c d e f g"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I"},E:{"1":"b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB","132":"I cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","132":"cB 1B"},H:{"260":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"Q","260":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"SVG in CSS backgrounds"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","516":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","260":"I c J D E F A B C K L G M N O d e f g h"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I"},E:{"1":"c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB","132":"I eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","132":"eB 2B"},H:{"260":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"Q","260":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"SVG in CSS backgrounds"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js index e85ebbb466432b..121ec81d2e02d5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I","4":"b J D"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"SVG filters"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I","4":"c J D"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"SVG filters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js index ec810680a5b806..58aca973d538f2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B gB","8":"J D E"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u","2":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","130":"0 1 2 3 4 5 6 7 v w x y z"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","2":"oB"},F:{"1":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB","2":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","130":"i j k l m n o p q r s t"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"258":"KC"},I:{"1":"XB I OC fB PC QC","2":"H LC MC NC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"130":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I","130":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"130":"cC"},S:{"2":"dC"}},B:2,C:"SVG fonts"}; +module.exports={A:{A:{"2":"F A B iB","8":"J D E"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v","2":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","130":"0 1 2 3 4 5 6 7 8 w x y z"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","2":"pB"},F:{"1":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB","2":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","130":"j k l m n o p q r s t u"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"258":"LC"},I:{"1":"aB I PC hB QC RC","2":"H MC NC OC"},J:{"1":"D A"},K:{"1":"A B C YB gB ZB","2":"Q"},L:{"130":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I","130":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"130":"dC"},S:{"2":"eC"}},B:2,C:"SVG fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js index cbd498aa9b2b02..1fbd13f59eb69d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","260":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s","132":"0 1 2 3 4 5 6 t u v w x y z"},E:{"1":"C K L G VB WB tB uB vB","2":"I b J D F A B oB cB pB qB sB dB","132":"E 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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"G M N O c d e f","4":"B C xB yB zB VB eB 0B","16":"F wB","132":"g h i j k l m n o p q r s t"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B 6B 7B 8B 9B AC","132":"E 5B"},H:{"1":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D","132":"A"},K:{"1":"Q WB","4":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","132":"I"},Q:{"1":"bC"},R:{"132":"cC"},S:{"1":"dC"}},B:4,C:"SVG fragment identifiers"}; +module.exports={A:{A:{"2":"J D E iB","260":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t","132":"0 1 2 3 4 5 6 7 u v w x y z"},E:{"1":"C K L G YB ZB uB vB wB","2":"I c J D F A B pB eB qB rB tB fB","132":"E sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"G M N O d e f g","4":"B C yB zB 0B YB gB 1B","16":"F xB","132":"h i j k l m n o p q r s t u"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B 7B 8B 9B AC BC","132":"E 6B"},H:{"1":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D","132":"A"},K:{"1":"Q ZB","4":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","132":"I"},Q:{"1":"cC"},R:{"132":"dC"},S:{"1":"eC"}},B:4,C:"SVG fragment identifiers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js index 9e69610e2a4401..d904bc786a18ef 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","388":"F A B"},B:{"4":"R S T U V W X Y Z P a H","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB","4":"XB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"oB cB","4":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"4":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","4":"H PC QC"},J:{"1":"A","2":"D"},K:{"4":"A B C Q VB eB WB"},L:{"4":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"4":"cC"},S:{"1":"dC"}},B:2,C:"SVG effects for HTML"}; +module.exports={A:{A:{"2":"J D E iB","388":"F A B"},B:{"4":"R S T U V W X Y Z a P b H","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB","4":"aB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"pB eB","4":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"4":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","4":"H QC RC"},J:{"1":"A","2":"D"},K:{"4":"A B C Q YB gB ZB"},L:{"4":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"4":"dC"},S:{"1":"eC"}},B:2,C:"SVG effects for HTML"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js index 87f7554a31cf38..e8ef97500c2728 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E","129":"F A B"},B:{"1":"N O R S T U V W X Y Z P a H","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","8":"I b J"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","8":"I b oB cB","129":"J D E pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"B zB VB eB","8":"F wB xB yB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","8":"cB 1B fB","129":"E 2B 3B 4B 5B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"LC MC NC","129":"XB I OC fB"},J:{"1":"A","129":"D"},K:{"1":"C Q WB","8":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Inline SVG in HTML5"}; +module.exports={A:{A:{"2":"iB","8":"J D E","129":"F A B"},B:{"1":"N O R S T U V W X Y Z a P b H","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","8":"I c J"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","8":"I c pB eB","129":"J D E qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"B 0B YB gB","8":"F xB yB zB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","8":"eB 2B hB","129":"E 3B 4B 5B 6B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"MC NC OC","129":"aB I PC hB"},J:{"1":"A","129":"D"},K:{"1":"C Q ZB","8":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"129":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Inline SVG in HTML5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js index 464edf4ddf87eb..5bb215da24de8c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g h i j k"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"oB","4":"cB","132":"I b J D E pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","132":"E cB 1B fB 2B 3B 4B 5B"},H:{"1":"KC"},I:{"1":"H PC QC","2":"LC MC NC","132":"XB I OC fB"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"SVG in HTML img element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h i j k l"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"pB","4":"eB","132":"I c J D E qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","132":"E eB 2B hB 3B 4B 5B 6B"},H:{"1":"LC"},I:{"1":"H QC RC","2":"MC NC OC","132":"aB I PC hB"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"SVG in HTML img element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js index 04126c0a0c039f..4bc06378db8cc2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E F A B"},B:{"1":"R S T U V W X Y Z P a H","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","8":"oB cB","132":"I b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","132":"cB 1B fB 2B"},H:{"2":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"SVG SMIL animation"}; +module.exports={A:{A:{"2":"iB","8":"J D E F A B"},B:{"1":"R S T U V W X Y Z a P b H","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","8":"pB eB","132":"I c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","132":"eB 2B hB 3B"},H:{"2":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"SVG SMIL animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js index ea7316d5664ace..41359fc4e88fdd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E","772":"F A B"},B:{"1":"R S T U V W X Y Z P a H","513":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","4":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","4":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"H PC QC","2":"LC MC NC","132":"XB I OC fB"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"257":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"SVG (basic support)"}; +module.exports={A:{A:{"2":"iB","8":"J D E","772":"F A B"},B:{"1":"R S T U V W X Y Z a P b H","513":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","4":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","4":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"H QC RC","2":"MC NC OC","132":"aB I PC hB"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"257":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"SVG (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js index b80038d964efb5..4f136cc8422e08 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB","132":"PB QB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"16":"RC"},P:{"1":"XC YC ZC aC","2":"I SC TC UC VC WC dB"},Q:{"16":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB","132":"QB RB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"16":"SC"},P:{"1":"YC ZC aC bC","2":"I TC UC VC WC XC fB"},Q:{"16":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js index c8f0eba8c3b652..9f7ead04acef85 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","16":"J gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"16":"hB XB jB kB","129":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"16":"I b oB cB","257":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"769":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"16":"XB I H LC MC NC OC fB PC QC"},J:{"16":"D A"},K:{"16":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"RC"},P:{"16":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"16":"cC"},S:{"129":"dC"}},B:1,C:"tabindex global attribute"}; +module.exports={A:{A:{"1":"D E F A B","16":"J iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"16":"jB aB lB mB","129":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"16":"I c pB eB","257":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"769":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"16":"aB I H MC NC OC PC hB QC RC"},J:{"16":"D A"},K:{"16":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"16":"A B"},O:{"16":"SC"},P:{"16":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"16":"dC"},S:{"129":"eC"}},B:1,C:"tabindex global attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js index 3a7d664da48b33..a387eff290946c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"K L G M N O R S T U V W X Y Z P a H","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x"},E:{"1":"A B K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB","129":"C"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l wB xB yB zB VB eB 0B WB"},G:{"1":"6B 7B 8B 9B AC BC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B","129":"CC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ES6 Template Literals (Template Strings)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"K L G M N O R S T U V W X Y Z a P b H","16":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y"},E:{"1":"A B K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB","129":"C"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m xB yB zB 0B YB gB 1B ZB"},G:{"1":"7B 8B 9B AC BC CC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B","129":"DC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ES6 Template Literals (Template Strings)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js index 272391de2a564d..2cdae3671170ae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"G M N O R S T U V W X Y Z P a H","2":"C","388":"K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i","132":"j k l m n o p q r"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","2":"I b J D oB cB pB","388":"E rB","514":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","132":"G M N O c d e"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B","388":"E 5B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"HTML templates"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"G M N O R S T U V W X Y Z a P b H","2":"C","388":"K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j","132":"k l m n o p q r s"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","2":"I c J D pB eB qB","388":"E sB","514":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","132":"G M N O d e f"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B","388":"E 6B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"HTML templates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js new file mode 100644 index 00000000000000..42af856f9d1bc9 --- /dev/null +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"Temporal"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js index c44587e3a66fc7..ce5a7fe65b68e9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E A B gB","16":"F"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","16":"I b"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"B C"},E:{"2":"I J oB cB pB","16":"b D E F A B C K L G qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB eB 0B WB","16":"VB"},G:{"2":"cB 1B fB 2B 3B","16":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC OC fB PC QC","16":"NC"},J:{"2":"A","16":"D"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Test feature - updated"}; +module.exports={A:{A:{"2":"J D E A B iB","16":"F"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","16":"I c"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"B C"},E:{"2":"I J pB eB qB","16":"c D E F A B C K L G rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B gB 1B ZB","16":"YB"},G:{"2":"eB 2B hB 3B 4B","16":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC PC hB QC RC","16":"OC"},J:{"2":"A","16":"D"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Test feature - updated"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js index 22038e5bdb5a12..8fe4f7818d7e1c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","2052":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b jB kB","1028":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","1060":"J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i","226":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB","2052":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D oB cB pB qB","772":"K L G WB tB uB vB","804":"E F A B C sB dB VB","1316":"rB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r wB xB yB zB VB eB 0B WB","226":"0 s t u v w x y z","2052":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"cB 1B fB 2B 3B 4B","292":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","2052":"Q"},L:{"2052":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2052":"RC"},P:{"2":"I SC TC","2052":"UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"1":"cC"},S:{"1028":"dC"}},B:4,C:"text-decoration styling"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","2052":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c lB mB","1028":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","1060":"J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j","226":"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","2052":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D pB eB qB rB","772":"K L G ZB uB vB wB","804":"E F A B C tB fB YB","1316":"sB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s xB yB zB 0B YB gB 1B ZB","226":"0 1 t u v w x y z","2052":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"eB 2B hB 3B 4B 5B","292":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"2052":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2052":"SC"},P:{"2":"I TC UC","2052":"VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"1":"dC"},S:{"1028":"eC"}},B:4,C:"text-decoration styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js index f766ede486e912..5301a3d55d020f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z P a H"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","322":"2"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h","164":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB","164":"D qB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","164":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB","164":"H PC QC"},J:{"2":"D","164":"A"},K:{"2":"A B C VB eB WB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"RC"},P:{"164":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"164":"bC"},R:{"164":"cC"},S:{"1":"dC"}},B:4,C:"text-emphasis styling"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","164":"R S T U V W X Y Z a P b H"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","322":"3"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i","164":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB","164":"D rB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","164":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB","164":"H QC RC"},J:{"2":"D","164":"A"},K:{"2":"A B C YB gB ZB","164":"Q"},L:{"164":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"164":"SC"},P:{"164":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"164":"cC"},R:{"164":"dC"},S:{"1":"eC"}},B:4,C:"text-emphasis styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js index a0270f581cbd1c..176a820dedf3cf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B","2":"gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","8":"hB XB I b J jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","33":"F wB xB yB zB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"Q WB","33":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 Text-overflow"}; +module.exports={A:{A:{"1":"J D E F A B","2":"iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","8":"jB aB I c J lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","33":"F xB yB zB 0B"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"Q ZB","33":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 Text-overflow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js index f33a0859ca67fd..3dff24f6b17853 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i k l m n o p q r s t u v w x y z AB","258":"j"},E:{"2":"I b J D E F A B C K L G oB cB qB rB sB dB VB WB tB uB vB","258":"pB"},F:{"1":"0 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"1 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"cB 1B fB","33":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"33":"P"},N:{"161":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS text-size-adjust"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j l m n o p q r s t u v w x y z AB BB","258":"k"},E:{"2":"I c J D E F A B C K L G pB eB rB sB tB fB YB ZB uB vB wB","258":"qB"},F:{"1":"1 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 2 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"eB 2B hB","33":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"33":"P"},N:{"161":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS text-size-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js index 4f84b2d0bcf92c..0090aa3274e068 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L","33":"R S T U V W X Y Z P a H","161":"G M N O"},C:{"2":"0 1 2 3 4 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","161":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","450":"5"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"33":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","33":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"33":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","36":"cB"},H:{"2":"KC"},I:{"2":"XB","33":"I H LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"2":"A B C VB eB WB","33":"Q"},L:{"33":"H"},M:{"161":"P"},N:{"2":"A B"},O:{"33":"RC"},P:{"33":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"33":"bC"},R:{"33":"cC"},S:{"161":"dC"}},B:7,C:"CSS text-stroke and text-fill"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L","33":"R S T U V W X Y Z a P b H","161":"G M N O"},C:{"2":"0 1 2 3 4 5 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","161":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","450":"6"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"33":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","33":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"33":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","36":"eB"},H:{"2":"LC"},I:{"2":"aB","33":"I H MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"2":"A B C YB gB ZB","33":"Q"},L:{"33":"H"},M:{"161":"P"},N:{"2":"A B"},O:{"33":"SC"},P:{"33":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"33":"cC"},R:{"33":"dC"},S:{"161":"eC"}},B:7,C:"CSS text-stroke and text-fill"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js index 75a7668cf30ed5..7da94cf135f7b5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB jB kB","130":"NB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"K L G WB tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"text-underline-offset"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB lB mB","130":"OB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"K L G ZB uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"text-underline-offset"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js index 59656092b446cf..958402dab4e398 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","16":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Node.textContent"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","16":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Node.textContent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js index 66021fd5577f30..1417e330668cb2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O jB kB","132":"c"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"TextEncoder & TextDecoder"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O lB mB","132":"d"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"TextEncoder & TextDecoder"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js index aab5d22aec2253..b16fc95dd5f0b3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D gB","66":"E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB","2":"hB XB I b J D E F A B C K L G M N O c d e f jB kB","66":"g","129":"MB NB OB PB QB RB SB TB UB aB","388":"bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V","2":"I b J D E F A B C K L G M N O c d e","1540":"W X Y Z P a H lB mB nB"},E:{"1":"D E F A B C K rB sB dB VB WB","2":"I b J oB cB pB qB","513":"L G tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB WB","2":"F B C wB xB yB zB VB eB 0B","1540":"RB SB TB UB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"129":"P"},N:{"1":"B","66":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"TLS 1.1"}; +module.exports={A:{A:{"1":"B","2":"J D iB","66":"E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB","2":"jB aB I c J D E F A B C K L G M N O d e f g lB mB","66":"h","129":"NB OB PB QB RB SB TB UB VB WB","388":"XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V","2":"I c J D E F A B C K L G M N O d e f","1540":"W X Y Z a P b H dB nB oB"},E:{"1":"D E F A B C K sB tB fB YB ZB","2":"I c J pB eB qB rB","513":"L G uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB ZB","2":"F B C xB yB zB 0B YB gB 1B","1540":"SB TB UB VB WB XB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"129":"P"},N:{"1":"B","66":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"TLS 1.1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js index e9415a59233fa7..f25727019d10c0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D gB","66":"E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g jB kB","66":"h i j"},D:{"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F G wB","66":"B C xB yB zB VB eB 0B WB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"1":"A","2":"D"},K:{"1":"Q WB","2":"A B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","66":"A"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"TLS 1.2"}; +module.exports={A:{A:{"1":"B","2":"J D iB","66":"E F A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h lB mB","66":"i j k"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F G xB","66":"B C yB zB 0B YB gB 1B ZB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"Q ZB","2":"A B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","66":"A"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"TLS 1.2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js index 228747eabbfe53..8b0f68b9ef771e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","132":"GB ZB Q","450":"8 9 AB BB CB DB EB FB YB"},D:{"1":"OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB","706":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB"},E:{"1":"L G uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB","1028":"K WB tB"},F:{"1":"EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB","706":"BB CB DB"},G:{"1":"DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"dB XC YC ZC aC","2":"I SC TC UC VC WC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:6,C:"TLS 1.3"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","132":"HB cB IB","450":"9 AB BB CB DB EB FB GB bB"},D:{"1":"PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB","706":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB"},E:{"1":"L G vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB","1028":"K ZB uB"},F:{"1":"FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB","706":"CB DB EB"},G:{"1":"EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"fB YC ZC aC bC","2":"I TC UC VC WC XC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:6,C:"TLS 1.3"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js index 99374b2245da79..386fae75ab7ae2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L","194":"R S T U V W X Y Z P a H","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P jB kB","16":"a H"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v","16":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB","194":"FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E oB cB pB qB rB","16":"F A B C K L G sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB","16":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B","16":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"16":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","16":"H"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","16":"Q"},L:{"16":"H"},M:{"16":"P"},N:{"2":"A","16":"B"},O:{"16":"RC"},P:{"16":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"16":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:6,C:"Token Binding"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L","194":"R S T U V W X Y Z a P b H","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b lB mB","16":"H dB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w","16":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB","194":"GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E pB eB qB rB sB","16":"F A B C K L G tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB","16":"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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B","16":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"16":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","16":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","16":"Q"},L:{"16":"H"},M:{"16":"P"},N:{"2":"A","16":"B"},O:{"16":"SC"},P:{"16":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"16":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:6,C:"Token Binding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js index 98474983a9d1e2..7b94a48144fb5a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","8":"A B"},B:{"1":"R S T U V W X Y Z P a H","578":"C K L G M N O"},C:{"1":"9 O c d e f g h AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","4":"I b J D E F A B C K L G M N","194":"0 1 2 3 4 5 6 7 8 i j 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 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","260":"B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:2,C:"Touch events"}; +module.exports={A:{A:{"2":"J D E F iB","8":"A B"},B:{"1":"R S T U V W X Y Z a P b H","578":"C K L G M N O"},C:{"1":"O d e f g h i AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","4":"I c J D E F A B C K L G M N","194":"0 1 2 3 4 5 6 7 8 9 j 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 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","260":"B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:2,C:"Touch events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js index a6856013e9b377..a0da7cf8c7a3bd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E","129":"A B","161":"F"},B:{"1":"N O R S T U V W X Y Z P a H","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","33":"I b J D E F A B C K L G jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","33":"I b J D E oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F wB xB","33":"B C G M N O c d e f yB zB VB eB 0B"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","33":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","33":"XB I LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"CSS3 2D Transforms"}; +module.exports={A:{A:{"2":"iB","8":"J D E","129":"A B","161":"F"},B:{"1":"N O R S T U V W X Y Z a P b H","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","33":"I c J D E F A B C K L G lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","33":"I c J D E pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F xB yB","33":"B C G M N O d e f g zB 0B YB gB 1B"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","33":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","33":"aB I MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"CSS3 2D Transforms"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js index 7692dbc86c9c00..f61069362bca10 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F jB kB","33":"A B C K L G"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B","33":"C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"2":"oB cB","33":"I b J D E pB qB rB","257":"F A B C K L G sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f"},G:{"33":"E cB 1B fB 2B 3B 4B 5B","257":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"LC MC NC","33":"XB I OC fB PC QC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS3 3D Transforms"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F lB mB","33":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B","33":"C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"2":"pB eB","33":"I c J D E qB rB sB","257":"F A B C K L G tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g"},G:{"33":"E eB 2B hB 3B 4B 5B 6B","257":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"MC NC OC","33":"aB I PC hB QC RC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS3 3D Transforms"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js index 18938242dce162..9ada9f89b5f1ee 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"U V W X Y Z P a H","2":"C K L G M N O R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"ZC aC","2":"I SC TC UC VC WC dB XC YC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Trusted Types for DOM manipulation"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"U V W X Y Z a P b H","2":"C K L G M N O R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"aC bC","2":"I TC UC VC WC XC fB YC ZC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Trusted Types for DOM manipulation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js index 3380ef124adf27..c04704e88a707f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB xB yB zB VB eB 0B WB","2":"F wB"},G:{"1":"E fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B"},H:{"2":"KC"},I:{"1":"XB I H MC NC OC fB PC QC","2":"LC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; +module.exports={A:{A:{"2":"J D E iB","132":"F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB yB zB 0B YB gB 1B ZB","2":"F xB"},G:{"1":"E hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B"},H:{"2":"LC"},I:{"1":"aB I H NC OC PC hB QC RC","2":"MC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js index 88dfd3f0ba5353..4a442a283c3c11 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"J D E F gB","132":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB","260":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B","260":"fB"},H:{"1":"KC"},I:{"1":"I H OC fB PC QC","2":"XB LC MC NC"},J:{"1":"A","2":"D"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Typed Arrays"}; +module.exports={A:{A:{"1":"B","2":"J D E F iB","132":"A"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB","260":"qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B","260":"hB"},H:{"1":"LC"},I:{"1":"I H PC hB QC RC","2":"aB MC NC OC"},J:{"1":"A","2":"D"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Typed Arrays"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js index 468d2d6031d59b..02404dbe8ea28d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","513":"R S T U V W X Y Z P a H"},C:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","322":"4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB"},D:{"2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u","130":"v w x","513":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"K L G tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB WB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w y wB xB yB zB VB eB 0B WB","513":"0 1 2 3 4 5 6 7 8 9 x z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"322":"dC"}},B:6,C:"FIDO U2F API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","513":"R S T U V W X Y Z a P b H"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","322":"5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB"},D:{"2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v","130":"w x y","513":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB ZB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x z xB yB zB 0B YB gB 1B ZB","513":"0 1 2 3 4 5 6 7 8 9 y AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"322":"eC"}},B:6,C:"FIDO U2F API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js index d9a80420744021..7c291408305879 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB jB kB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB"},G:{"1":"BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","16":"AC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:1,C:"unhandledrejection/rejectionhandled events"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB lB mB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB"},G:{"1":"CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","16":"BC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:1,C:"unhandledrejection/rejectionhandled events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js index c9723d544afa2b..bce50e5269020b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Upgrade Insecure Requests"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Upgrade Insecure Requests"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js index ad5bac5c4730de..1a3f5616f96ac9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"U V W X Y Z P a H","2":"C K L G M N O","66":"R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB","66":"SB TB UB aB bB R S"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB wB xB yB zB VB eB 0B WB","66":"KB LB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"ZC aC","2":"I SC TC UC VC WC dB XC YC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"URL Scroll-To-Text Fragment"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"U V W X Y Z a P b H","2":"C K L G M N O","66":"R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB","66":"TB UB VB WB XB R S"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB xB yB zB 0B YB gB 1B ZB","66":"LB MB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"aC bC","2":"I TC UC VC WC XC fB YC ZC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"URL Scroll-To-Text Fragment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js index 2b295b50a90dca..f386d34e12fc7b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f","130":"g h i j k l m n o"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I b J oB cB pB qB","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","130":"G M N O"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B","130":"4B"},H:{"2":"KC"},I:{"1":"H QC","2":"XB I LC MC NC OC fB","130":"PC"},J:{"2":"D","130":"A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"URL API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g","130":"h i j k l m n o p"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB rB","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","130":"G M N O"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B","130":"5B"},H:{"2":"LC"},I:{"1":"H RC","2":"aB I MC NC OC PC hB","130":"QC"},J:{"2":"D","130":"A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"URL API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js index 4f758a831d1bcc..b40c6cb218a9c4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","132":"0 m n o p q r s t u v w x y z"},D:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G dB VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","2":"I"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"URLSearchParams"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","132":"0 1 n o p q r s t u v w x y z"},D:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L G fB YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","2":"I"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"URLSearchParams"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js index 870763f70d30f1..19504787592254 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I oB cB","132":"b pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"1":"KC"},I:{"1":"XB I H OC fB PC QC","2":"LC MC NC"},J:{"1":"D A"},K:{"1":"C Q eB WB","2":"A B VB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"ECMAScript 5 Strict Mode"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I pB eB","132":"c qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"1":"LC"},I:{"1":"aB I H PC hB QC RC","2":"MC NC OC"},J:{"1":"D A"},K:{"1":"C Q gB ZB","2":"A B YB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"ECMAScript 5 Strict Mode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js index aa8690bf78c3a9..a084aa087d4899 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","33":"A B"},B:{"1":"R S T U V W X Y Z P a H","33":"C K L G M N O"},C:{"1":"NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","33":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB jB kB"},D:{"1":"BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","33":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB"},E:{"33":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","33":"G M N O c d e f g h i j k l m n o p q r s t u v w x"},G:{"33":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","33":"XB I LC MC NC OC fB PC QC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"33":"A B"},O:{"2":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","33":"I SC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"33":"dC"}},B:5,C:"CSS user-select: none"}; +module.exports={A:{A:{"2":"J D E F iB","33":"A B"},B:{"1":"R S T U V W X Y Z a P b H","33":"C K L G M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","33":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB lB mB"},D:{"1":"CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","33":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"33":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","33":"G M N O d e f g h i j k l m n o p q r s t u v w x y"},G:{"33":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","33":"aB I MC NC OC PC hB QC RC"},J:{"33":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"33":"A B"},O:{"2":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","33":"I TC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"33":"eC"}},B:5,C:"CSS user-select: none"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js index 167cc2a524d811..f24438379fad70 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"User Timing API"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"User Timing API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js index 75a46f7589aa94..71196bc171d2a9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"N O R S T U V W X Y Z P a H","2":"C K L G M"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","4609":"Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","4674":"ZB","5698":"GB","7490":"AB BB CB DB EB","7746":"FB YB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","4097":"KB","4290":"YB GB ZB","6148":"Q HB IB JB"},E:{"1":"G vB","2":"I b J D E F A oB cB pB qB rB sB dB","4609":"B C VB WB","8193":"K L tB uB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","4097":"AB","6148":"6 7 8 9"},G:{"1":"EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","4097":"AC BC CC DC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"4097":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC","4097":"VC WC dB XC YC ZC aC"},Q:{"4097":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"Variable fonts"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"N O R S T U V W X Y Z a P b H","2":"C K L G M"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB lB mB","4609":"IB JB Q KB LB MB NB OB PB","4674":"cB","5698":"HB","7490":"BB CB DB EB FB","7746":"GB bB","8705":"QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","4097":"LB","4290":"bB HB cB","6148":"IB JB Q KB"},E:{"1":"G wB","2":"I c J D E F A pB eB qB rB sB tB fB","4609":"B C YB ZB","8193":"K L uB vB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","4097":"BB","6148":"7 8 9 AB"},G:{"1":"FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","4097":"BC CC DC EC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"4097":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC","4097":"WC XC fB YC ZC aC bC"},Q:{"4097":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"Variable fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js index 72d13fc864411c..9705bd2f25bae1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","2":"F B wB xB yB zB VB eB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"1":"KC"},I:{"1":"H PC QC","16":"XB I LC MC NC OC fB"},J:{"16":"D A"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","2":"F B xB yB zB 0B YB gB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"1":"LC"},I:{"1":"H QC RC","16":"aB I MC NC OC PC hB"},J:{"16":"D A"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js index afc32ab9ccc122..85d3771350a9d1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A jB kB","33":"B C K L G"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"Vibration API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A lB mB","33":"B C K L G"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"Vibration API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js index 7897dfba5ce39e..f80d1f85c30803 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","260":"I b J D E F A B C K L G M N O c jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A pB qB rB sB dB","2":"oB cB","513":"B C K L G VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","513":"AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","132":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Video element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","260":"I c J D E F A B C K L G M N O d lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A qB rB sB tB fB","2":"pB eB","513":"B C K L G YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","513":"BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","132":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Video element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js index 0d9fbc02c7e56d..b3f759a559bd39 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O","322":"R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","322":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b J oB cB pB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o wB xB yB zB VB eB 0B WB","322":"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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","322":"Q"},L:{"322":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:1,C:"Video Tracks"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O","322":"R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","194":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m 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 FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c J pB eB qB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p xB yB zB 0B YB gB 1B ZB","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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"322":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:1,C:"Video Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js index 6d837ccad621bf..db91d3e91289e5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","132":"F","260":"A B"},B:{"1":"M N O R S T U V W X Y Z P a H","260":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c","260":"d e f g h i"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B","516":"4B","772":"3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; +module.exports={A:{A:{"2":"J D E iB","132":"F","260":"A B"},B:{"1":"M N O R S T U V W X Y Z a P b H","260":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O lB mB"},D:{"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d","260":"e f g h i j"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B","516":"5B","772":"4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"260":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js index 0f438fe394f790..770caff430299a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","4":"E F A B"},B:{"4":"C K L G M N O R S T U V W X Y Z P a H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"oB cB","4":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"4":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"4":"KC"},I:{"2":"XB I LC MC NC OC fB","4":"H PC QC"},J:{"2":"D A"},K:{"4":"A B C Q VB eB WB"},L:{"4":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"2":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"4":"cC"},S:{"4":"dC"}},B:2,C:"WAI-ARIA Accessibility features"}; +module.exports={A:{A:{"2":"J D iB","4":"E F A B"},B:{"4":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"pB eB","4":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"4":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"4":"LC"},I:{"2":"aB I MC NC OC PC hB","4":"H QC RC"},J:{"2":"D A"},K:{"4":"A B C Q YB gB ZB"},L:{"4":"H"},M:{"4":"P"},N:{"4":"A B"},O:{"2":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"4":"dC"},S:{"4":"eC"}},B:2,C:"WAI-ARIA Accessibility features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js index c9ed8f29630329..931a599d05229b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"a H","2":"C K L G M N O","194":"R S T U V W X Y Z P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB","194":"PB QB RB SB TB UB aB bB R S T U V"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB wB xB yB zB VB eB 0B WB","194":"FB GB Q HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"aC","2":"I SC TC UC VC WC dB XC YC ZC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:4,C:"Screen Wake Lock API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"P b H","2":"C K L G M N O","194":"R S T U V W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB","194":"QB RB SB TB UB VB WB XB R S T U V"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB xB yB zB 0B YB gB 1B ZB","194":"GB HB IB JB Q KB LB MB NB OB PB QB RB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"bC","2":"I TC UC VC WC XC fB YC ZC aC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:4,C:"Screen Wake Lock API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js index 5f968134634f4d..a5ca39d901def8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"M N O R S T U V W X Y Z P a H","2":"C K L","578":"G"},C:{"1":"AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB","194":"4 5 6 7 8","1025":"9"},D:{"1":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","322":"8 9 AB BB CB DB"},E:{"1":"B C K L G VB WB tB uB vB","2":"I b J D E F A oB cB pB qB rB sB dB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u wB xB yB zB VB eB 0B WB","322":"0 v w x y z"},G:{"1":"AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"194":"dC"}},B:6,C:"WebAssembly"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"M N O R S T U V W X Y Z a P b H","2":"C K L","578":"G"},C:{"1":"BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB","194":"5 6 7 8 9","1025":"AB"},D:{"1":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","322":"9 AB BB CB DB EB"},E:{"1":"B C K L G YB ZB uB vB wB","2":"I c J D E F A pB eB qB rB sB tB fB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v xB yB zB 0B YB gB 1B ZB","322":"0 1 w x y z"},G:{"1":"BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"194":"eC"}},B:6,C:"WebAssembly"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js index f0a95dc5356935..9b4d1a095ae37c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB yB zB VB eB 0B WB","2":"F wB xB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"Wav audio format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB zB 0B YB gB 1B ZB","2":"F xB yB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","16":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"Wav audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js index 96a5380b84d712..d17e30e5cb92ba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D gB","2":"E F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G cB pB qB rB sB dB VB WB tB uB vB","16":"oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","16":"F"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB"},H:{"1":"KC"},I:{"1":"XB I H NC OC fB PC QC","16":"LC MC"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"wbr (word break opportunity) element"}; +module.exports={A:{A:{"1":"J D iB","2":"E F A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G eB qB rB sB tB fB YB ZB uB vB wB","16":"pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","16":"F"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB"},H:{"1":"LC"},I:{"1":"aB I H OC PC hB QC RC","16":"MC NC"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"wbr (word break opportunity) element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js index 20f59396c577a4..f9dc6e5ff1ee17 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"V W X Y Z P a H","2":"C K L G M N O","260":"R S T U"},C:{"1":"T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p jB kB","260":"YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB","516":"4 5 6 7 8 9 AB BB CB DB EB FB","580":"0 1 2 3 q r s t u v w x y z","2049":"TB UB aB bB R S"},D:{"1":"V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s","132":"t u v","260":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U"},E:{"1":"G vB","2":"I b J D E F A oB cB pB qB rB sB dB","1090":"B C K VB WB","2049":"L tB uB"},F:{"1":"PB QB RB SB TB UB","2":"F B C G M N O c d e f wB xB yB zB VB eB 0B WB","132":"g h i","260":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B","1090":"AC BC CC DC EC FC GC","2049":"HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"260":"RC"},P:{"260":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"260":"bC"},R:{"260":"cC"},S:{"516":"dC"}},B:5,C:"Web Animations API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"V W X Y Z a P b H","2":"C K L G M N O","260":"R S T U"},C:{"1":"T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q lB mB","260":"bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB","516":"5 6 7 8 9 AB BB CB DB EB FB GB","580":"0 1 2 3 4 r s t u v w x y z","2049":"UB VB WB XB R S"},D:{"1":"V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t","132":"u v w","260":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U"},E:{"1":"G wB","2":"I c J D E F A pB eB qB rB sB tB fB","1090":"B C K YB ZB","2049":"L uB vB"},F:{"1":"QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g xB yB zB 0B YB gB 1B ZB","132":"h i j","260":"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 Q KB LB MB NB OB PB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC","1090":"BC CC DC EC FC GC HC","2049":"IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"260":"SC"},P:{"260":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"260":"cC"},R:{"260":"dC"},S:{"516":"eC"}},B:5,C:"Web Animations API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js index 65900247244124..65efc6e6347724 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB X Y Z P a H jB kB","578":"UB aB bB R S T iB U V W"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC","260":"BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"2":"dC"}},B:5,C:"Add to home screen (A2HS)"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB X Y Z a P b H dB lB mB","578":"VB WB XB R S T kB U V W"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC","260":"CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"2":"eC"}},B:5,C:"Add to home screen (A2HS)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js index 27eb5a05be707b..7d6192dd1ff266 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","1025":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","194":"2 3 4 5 6 7 8 9","706":"AB BB CB","1025":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C G M N O c d e f g h i j k l m n o p q r s wB xB yB zB VB eB 0B WB","450":"t u v w","706":"x y z","1025":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC QC","1025":"H"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1025":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"TC UC VC WC dB XC YC ZC aC","2":"I SC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Web Bluetooth"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","1025":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","194":"3 4 5 6 7 8 9 AB","706":"BB CB DB","1025":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C G M N O d e f g h i j k l m n o p q r s t xB yB zB 0B YB gB 1B ZB","450":"u v w x","706":"0 y z","1025":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC RC","1025":"H"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","1025":"Q"},L:{"1025":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"UC VC WC XC fB YC ZC aC bC","2":"I TC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Web Bluetooth"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js index 94fde78f4d80da..1281d18cf74505 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O","66":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB","66":"bB R S T U V W X Y Z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB wB xB yB zB VB eB 0B WB","66":"JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Web Serial API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O","66":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB","66":"XB R S T U V W X Y Z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q xB yB zB 0B YB gB 1B ZB","66":"KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Web Serial API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js index 7b9dccad5aa3a1..170dd3fb8ee357 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R S","516":"T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z","130":"O c d e f g h","1028":"P a H lB mB nB"},E:{"1":"L G uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB","2049":"K WB tB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC","2049":"DC EC FC GC HC"},H:{"2":"KC"},I:{"2":"XB I LC MC NC OC fB PC","258":"H QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I","258":"SC TC UC"},Q:{"2":"bC"},R:{"16":"cC"},S:{"2":"dC"}},B:5,C:"Web Share API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R S","516":"T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z","130":"O d e f g h i","1028":"a P b H dB nB oB"},E:{"1":"L G vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB","2049":"K ZB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2049":"EC FC GC HC IC"},H:{"2":"LC"},I:{"2":"aB I MC NC OC PC hB QC","258":"H RC"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","258":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I","258":"TC UC VC"},Q:{"2":"cC"},R:{"16":"dC"},S:{"2":"eC"}},B:5,C:"Web Share API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js index 93ae27d5b9ab48..50daaf422de998 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","2":"C","226":"K L G M N"},C:{"1":"GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB jB kB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB"},E:{"1":"K L G tB uB vB","2":"I b J D E F A B C oB cB pB qB rB sB dB VB","322":"WB"},F:{"1":"BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB wB xB yB zB VB eB 0B WB"},G:{"1":"JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","578":"FC","2052":"IC","3076":"GC HC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:2,C:"Web Authentication API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","2":"C","226":"K L G M N"},C:{"1":"HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB lB mB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB"},E:{"1":"K L G uB vB wB","2":"I c J D E F A B C pB eB qB rB sB tB fB YB","322":"ZB"},F:{"1":"CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB xB yB zB 0B YB gB 1B ZB"},G:{"1":"KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC","578":"GC","2052":"JC","3076":"HC IC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:2,C:"Web Authentication API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js index bff614d3322420..ff077284c20f6a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"gB","8":"J D E F A","129":"B"},B:{"1":"R S T U V W X Y Z P a H","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","129":"I b J D E F A B C K L G M N O c d e f g"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D","129":"E F A B C K L G M N O c d e f g h i j k l m n o p"},E:{"1":"E F A B C K L G sB dB VB WB tB uB vB","2":"I b oB cB","129":"J D pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B wB xB yB zB VB eB 0B","129":"C G M N O WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B 4B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"1":"A","2":"D"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","129":"B"},O:{"129":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"129":"dC"}},B:6,C:"WebGL - 3D Canvas graphics"}; +module.exports={A:{A:{"2":"iB","8":"J D E F A","129":"B"},B:{"1":"R S T U V W X Y Z a P b H","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","129":"I c J D E F A B C K L G M N O d e f g 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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D","129":"E F A B C K L G M N O d e f g h i j k l m n o p q"},E:{"1":"E F A B C K L G tB fB YB ZB uB vB wB","2":"I c pB eB","129":"J D qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B xB yB zB 0B YB gB 1B","129":"C G M N O ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B 5B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"1":"A","2":"D"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A","129":"B"},O:{"129":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"129":"eC"}},B:6,C:"WebGL - 3D Canvas graphics"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js index 24f0fa256d0a2a..21f0601a6f3d51 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"1":"8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h jB kB","194":"0 1 z","450":"i j k l m n o p q r s t u v w x y","2242":"2 3 4 5 6 7"},D:{"1":"DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z","578":"0 1 2 3 4 5 6 7 8 9 AB BB CB"},E:{"1":"G vB","2":"I b J D E F A oB cB pB qB rB sB","1090":"B C K L dB VB WB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC","1090":"CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"UC VC WC dB XC YC ZC aC","2":"I SC TC"},Q:{"578":"bC"},R:{"2":"cC"},S:{"2242":"dC"}},B:6,C:"WebGL 2.0"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i lB mB","194":"0 1 2","450":"j k l m n o p q r s t u v w x y z","2242":"3 4 5 6 7 8"},D:{"1":"EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z","578":"1 2 3 4 5 6 7 8 9 AB BB CB DB"},E:{"1":"G wB","2":"I c J D E F A pB eB qB rB sB tB","1090":"B C K L fB YB ZB uB vB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC","1090":"DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"VC WC XC fB YC ZC aC bC","2":"I TC UC"},Q:{"578":"cC"},R:{"2":"dC"},S:{"2242":"eC"}},B:6,C:"WebGL 2.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js index 0811147b3e6e6b..f9e9eb540cee11 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R","578":"S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q jB kB","194":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R","578":"S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B oB cB pB qB rB sB dB","322":"C K L G VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB wB xB yB zB VB eB 0B WB","578":"RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"WebGPU"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R","578":"S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB lB mB","194":"JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R","578":"S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B pB eB qB rB sB tB fB","322":"C K L G YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB xB yB zB 0B YB gB 1B ZB","578":"SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"194":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"WebGPU"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js index 68bcdc42d7e834..b5025443a8e338 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"P a H","2":"C K L G M N O","66":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB","66":"bB R S T U V W X Y Z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"UB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB wB xB yB zB VB eB 0B WB","66":"KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"WebHID API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"a P b H","2":"C K L G M N O","66":"R S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB","66":"XB R S T U V W X Y Z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB xB yB zB 0B YB gB 1B ZB","66":"LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"WebHID API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js index 21c7ba34eaa0a1..a612198f33a336 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"16":"I b J D E F A B C K L G","132":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"F B C wB xB yB zB VB eB 0B WB","132":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"CSS -webkit-user-drag property"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"16":"I c J D E F A B C K L G","132":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"F B C xB yB zB 0B YB gB 1B ZB","132":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"CSS -webkit-user-drag property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js index 86dce960683fd8..c16ba705ca9ae0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E gB","520":"F A B"},B:{"1":"R S T U V W X Y Z P a H","8":"C K","388":"L G M N O"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","132":"I b J D E F A B C K L G M N O c d e f g h i j k"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b","132":"J D E F A B C K L G M N O c d e f g h"},E:{"2":"oB","8":"I b cB pB","520":"J D E F A B C qB rB sB dB VB","1028":"K WB tB","7172":"L","8196":"G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB yB","132":"B C G zB VB eB 0B WB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC","1028":"DC EC FC GC HC","3076":"IC JC"},H:{"2":"KC"},I:{"1":"H","2":"LC MC","132":"XB I NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C VB eB WB","132":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"RC"},P:{"1":"SC TC UC VC WC dB XC YC ZC aC","132":"I"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:6,C:"WebM video format"}; +module.exports={A:{A:{"2":"J D E iB","520":"F A B"},B:{"1":"R S T U V W X Y Z a P b H","8":"C K","388":"L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","132":"I c J D E F A B C K L G M N O d e f g h i j k l"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c","132":"J D E F A B C K L G M N O d e f g h i"},E:{"2":"pB","8":"I c eB qB","520":"J D E F A B C rB sB tB fB YB","1028":"K ZB uB","7172":"L","8196":"G vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB zB","132":"B C G 0B YB gB 1B ZB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","1028":"EC FC GC HC IC","3076":"JC KC"},H:{"2":"LC"},I:{"1":"H","2":"MC NC","132":"aB I OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"8":"A B"},O:{"1":"SC"},P:{"1":"TC UC VC WC XC fB YC ZC aC bC","132":"I"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:6,C:"WebM video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js index a096ea10094d5f..87d4059c2e09f0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O R P a H","450":"S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R P a H lB mB nB","450":"S T U V W X Y Z"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB wB xB yB zB VB eB 0B WB","450":"LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"257":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"Web NFC"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O R a P b H","450":"S T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R a P b H dB nB oB","450":"S T U V W X Y Z"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB xB yB zB 0B YB gB 1B ZB","450":"MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"257":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"Web NFC"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js index 44403c48925afa..cffc3230142b3c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","2":"C K L G M N"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","8":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b","8":"J D E","132":"F A B C K L G M N O c d e f","260":"g h i j k l m n o"},E:{"2":"I b J D E F A B C K oB cB pB qB rB sB dB VB WB tB","516":"L G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F wB xB yB","8":"B zB","132":"VB eB 0B","260":"C G M N O WB"},G:{"1":"IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},H:{"1":"KC"},I:{"1":"H fB PC QC","2":"XB LC MC NC","132":"I OC"},J:{"2":"D A"},K:{"1":"C Q VB eB WB","2":"A","132":"B"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"8":"dC"}},B:7,C:"WebP image format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","2":"C K L G M N"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","8":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c","8":"J D E","132":"F A B C K L G M N O d e f g","260":"h i j k l m n o p"},E:{"2":"I c J D E F A B C K pB eB qB rB sB tB fB YB ZB uB","516":"L G vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F xB yB zB","8":"B 0B","132":"YB gB 1B","260":"C G M N O ZB"},G:{"1":"JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"1":"LC"},I:{"1":"H hB QC RC","2":"aB MC NC OC","132":"I PC"},J:{"2":"D A"},K:{"1":"C Q YB gB ZB","2":"A","132":"B"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"8":"eC"}},B:7,C:"WebP image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js index 53b39cb6af9aba..be7287b45d8500 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB jB kB","132":"I b","292":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L","260":"G"},E:{"1":"D E F A B C K L G rB sB dB VB WB tB uB vB","2":"I oB cB","132":"b pB","260":"J qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F wB xB yB zB","132":"B C VB eB 0B"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B","132":"fB 2B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","129":"D"},K:{"1":"Q WB","2":"A","132":"B C VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Web Sockets"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB lB mB","132":"I c","292":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L","260":"G"},E:{"1":"D E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I pB eB","132":"c qB","260":"J rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F xB yB zB 0B","132":"B C YB gB 1B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B","132":"hB 3B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","129":"D"},K:{"1":"Q ZB","2":"A","132":"B C YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Web Sockets"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js index dcc7e37e434b1b..dd019797aad116 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB","66":"BB CB DB EB FB YB GB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g h i j k l m n o p q r s t u v w x wB xB yB zB VB eB 0B WB","66":"0 1 2 3 4 y z"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"1":"VC WC dB XC YC ZC aC","2":"I SC TC UC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:7,C:"WebUSB"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB","66":"CB DB EB FB GB bB HB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h i j k l m n o p q r s t u v w x y xB yB zB 0B YB gB 1B ZB","66":"0 1 2 3 4 5 z"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"1":"WC XC fB YC ZC aC bC","2":"I TC UC VC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:7,C:"WebUSB"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js index 9fe5eb56bd7430..ac0a37123eb02c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L S T U V W X Y Z P a H","66":"R","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB jB kB","129":"CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","194":"BB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB S T U V W X Y Z P a H lB mB nB","66":"EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","66":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB Q HB IB JB KB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"513":"I","516":"SC TC UC VC WC dB XC YC ZC aC"},Q:{"2":"bC"},R:{"66":"cC"},S:{"2":"dC"}},B:7,C:"WebVR API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L S T U V W X Y Z a P b H","66":"R","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB lB mB","129":"DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","194":"CB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB S T U V W X Y Z a P b H dB nB oB","66":"FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","66":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB Q KB LB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C Q YB gB ZB"},L:{"2":"H"},M:{"2":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"513":"I","516":"TC UC VC WC XC fB YC ZC aC bC"},Q:{"2":"cC"},R:{"66":"dC"},S:{"2":"eC"}},B:7,C:"WebVR API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js index 362be3d92f1ac7..bd35f4909f236d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"2":"hB XB I b J D E F A B C K L G M N O c d e f g jB kB","66":"h i j k l m n","129":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N"},E:{"1":"J D E F A B C K L G qB rB sB dB VB WB tB uB vB","2":"I b oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB I LC MC NC OC fB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"2":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"129":"dC"}},B:5,C:"WebVTT - Web Video Text Tracks"}; +module.exports={A:{A:{"1":"A B","2":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"2":"jB aB I c J D E F A B C K L G M N O d e f g h lB mB","66":"i j k l m n o","129":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N"},E:{"1":"J D E F A B C K L G rB sB tB fB YB ZB uB vB wB","2":"I c pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB I MC NC OC PC hB"},J:{"1":"A","2":"D"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"B","2":"A"},O:{"2":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"129":"eC"}},B:5,C:"WebVTT - Web Video Text Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js index 380ed1da724ada..b45a5c6fcd64b5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"gB","8":"J D E F"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","8":"hB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","8":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB zB VB eB 0B WB","2":"F wB","8":"xB yB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H LC PC QC","2":"XB I MC NC OC fB"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Web Workers"}; +module.exports={A:{A:{"1":"A B","2":"iB","8":"J D E F"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","8":"jB aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","8":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 0B YB gB 1B ZB","2":"F xB","8":"yB zB"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H MC QC RC","2":"aB I NC OC PC hB"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","8":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Web Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js index 13a71b4f4dda07..430ac110fcd29f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z P a H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB jB kB","322":"aB bB R S T iB U V W X Y Z P a H"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB","66":"JB KB LB MB NB OB PB QB RB SB TB UB aB bB","132":"R S T U V W X Y Z P a H lB mB nB"},E:{"2":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z wB xB yB zB VB eB 0B WB","66":"9 AB BB CB DB EB FB GB Q HB IB JB","132":"KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"KC"},I:{"2":"XB I H LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"2":"A B C Q VB eB WB"},L:{"132":"H"},M:{"322":"P"},N:{"2":"A B"},O:{"2":"RC"},P:{"2":"I SC TC UC VC WC dB XC","132":"YC ZC aC"},Q:{"2":"bC"},R:{"2":"cC"},S:{"2":"dC"}},B:5,C:"WebXR Device API"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"2":"C K L G M N O","132":"R S T U V W X Y Z a P b H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB lB mB","322":"WB XB R S T kB U V W X Y Z a P b H dB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q","66":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"R S T U V W X Y Z a P b H dB nB oB"},E:{"2":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z xB yB zB 0B YB gB 1B ZB","66":"AB BB CB DB EB FB GB HB IB JB Q KB","132":"LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"LC"},I:{"2":"aB I H MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"2":"A B C YB gB ZB","16":"Q"},L:{"132":"H"},M:{"322":"P"},N:{"2":"A B"},O:{"2":"SC"},P:{"2":"I TC UC VC WC XC fB YC","132":"ZC aC bC"},Q:{"2":"cC"},R:{"2":"dC"},S:{"2":"eC"}},B:5,C:"WebXR Device API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js index a7690b13b794c4..169e41b592f1e3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"R S T U V W X Y Z P a H","2":"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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l jB kB","194":"m n o p q r s"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"1":"A B C K L G sB dB VB WB tB uB vB","2":"I b J D E F oB cB pB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f g wB xB yB zB VB eB 0B WB"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS will-change property"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"R S T U V W X Y Z a P b H","2":"C K L G M N O"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m lB mB","194":"n o p q r s t"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"1":"A B C K L G tB fB YB ZB uB vB wB","2":"I c J D E F pB eB qB rB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g h xB yB zB 0B YB gB 1B ZB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS will-change property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js index 21bdfb780bb1e8..91d0e3a8ab629f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H kB","2":"hB XB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I"},E:{"1":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"I b oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB eB 0B WB","2":"F B wB xB yB zB"},G:{"1":"E 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB"},H:{"2":"KC"},I:{"1":"H PC QC","2":"XB LC MC NC OC fB","130":"I"},J:{"1":"D A"},K:{"1":"B C Q VB eB WB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:2,C:"WOFF - Web Open Font Format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB mB","2":"jB aB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I"},E:{"1":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"I c pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB gB 1B ZB","2":"F B xB yB zB 0B"},G:{"1":"E 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB"},H:{"2":"LC"},I:{"1":"H QC RC","2":"aB MC NC OC PC hB","130":"I"},J:{"1":"D A"},K:{"1":"B C Q YB gB ZB","2":"A"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:2,C:"WOFF - Web Open Font Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js index 431a2db56bab4a..c0dcf40c81d84b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F A B gB"},B:{"1":"L G M N O R S T U V W X Y Z P a H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","2":"I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s"},E:{"1":"C K L G WB tB uB vB","2":"I b J D E F oB cB pB qB rB sB","132":"A B dB VB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C G M N O c d e f wB xB yB zB VB eB 0B WB"},G:{"1":"8B 9B AC BC CC DC EC FC GC HC IC JC","2":"E cB 1B fB 2B 3B 4B 5B 6B 7B"},H:{"2":"KC"},I:{"1":"H","2":"XB I LC MC NC OC fB PC QC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"WOFF 2.0 - Web Open Font Format"}; +module.exports={A:{A:{"2":"J D E F A B iB"},B:{"1":"L G M N O R S T U V W X Y Z a P b H","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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","2":"I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t"},E:{"1":"C K L G ZB uB vB wB","2":"I c J D E F pB eB qB rB sB tB","132":"A B fB YB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C G M N O d e f g xB yB zB 0B YB gB 1B ZB"},G:{"1":"9B AC BC CC DC EC FC GC HC IC JC KC","2":"E eB 2B hB 3B 4B 5B 6B 7B 8B"},H:{"2":"LC"},I:{"1":"H","2":"aB I MC NC OC PC hB QC RC"},J:{"2":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"2":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"WOFF 2.0 - Web Open Font Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js index a7abde6759ad20..e47e029a238ac3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"J D E F A B gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB I b J D E F A B C K L jB kB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"0 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G sB dB VB WB tB uB vB","4":"I b J D E oB cB pB qB rB"},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 Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","2":"F B C wB xB yB zB VB eB 0B WB","4":"G M N O c d e f g h i j k l m n"},G:{"1":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","4":"E cB 1B fB 2B 3B 4B 5B"},H:{"2":"KC"},I:{"1":"H","4":"XB I LC MC NC OC fB PC QC"},J:{"4":"D A"},K:{"2":"A B C VB eB WB","4":"Q"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"4":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:5,C:"CSS3 word-break"}; +module.exports={A:{A:{"1":"J D E F A B iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB I c J D E F A B C K L lB mB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"0 1 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F A B C K L G tB fB YB ZB uB vB wB","4":"I c J D E pB eB qB rB sB"},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 Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"F B C xB yB zB 0B YB gB 1B ZB","4":"G M N O d e f g h i j k l m n o"},G:{"1":"7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","4":"E eB 2B hB 3B 4B 5B 6B"},H:{"2":"LC"},I:{"1":"H","4":"aB I MC NC OC PC hB QC RC"},J:{"4":"D A"},K:{"1":"Q","2":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"4":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:5,C:"CSS3 word-break"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js index bbf708492575e8..9f37c5e85c46a6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"J D E F A B gB"},B:{"1":"O R S T U V W X Y Z P a H","4":"C K L G M N"},C:{"1":"6 7 8 9 AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","4":"0 1 2 3 4 5 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","4":"I b J D E F A B C K L G M N O c d e f"},E:{"1":"D E F A B C K L G qB rB sB dB VB WB tB uB vB","4":"I b J oB cB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F wB xB","4":"B C yB zB VB eB 0B"},G:{"1":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","4":"cB 1B fB 2B 3B"},H:{"4":"KC"},I:{"1":"H PC QC","4":"XB I LC MC NC OC fB"},J:{"1":"A","4":"D"},K:{"1":"Q","4":"A B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"4":"dC"}},B:5,C:"CSS3 Overflow-wrap"}; +module.exports={A:{A:{"4":"J D E F A B iB"},B:{"1":"O R S T U V W X Y Z a P b H","4":"C K L G M N"},C:{"1":"7 8 9 AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","4":"0 1 2 3 4 5 6 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","4":"I c J D E F A B C K L G M N O d e f g"},E:{"1":"D E F A B C K L G rB sB tB fB YB ZB uB vB wB","4":"I c J pB eB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F xB yB","4":"B C zB 0B YB gB 1B"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","4":"eB 2B hB 3B 4B"},H:{"4":"LC"},I:{"1":"H QC RC","4":"aB I MC NC OC PC hB"},J:{"1":"A","4":"D"},K:{"1":"Q","4":"A B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"4":"eC"}},B:5,C:"CSS3 Overflow-wrap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js index 34de9be3ea265f..3e5af7b2e5acc4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D gB","132":"E F","260":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB","2":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","2":"oB cB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB","2":"F"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"Cross-document messaging"}; +module.exports={A:{A:{"2":"J D iB","132":"E F","260":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB","2":"jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","2":"pB eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB","2":"F"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"4":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"Cross-document messaging"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js index 652a008f5f4a8d..e8f72b190c1368 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"J D gB"},B:{"1":"C K L G M N O","4":"R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB","4":"I b J D E F A B C K L G M N OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","16":"hB XB jB kB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J D E F A B C K L G M N O c d e f g h i"},E:{"4":"J D E F A B C K L G pB qB rB sB dB VB WB tB uB vB","16":"I b oB cB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB 0B WB","16":"F B wB xB yB zB VB eB"},G:{"4":"E 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","16":"cB 1B fB 2B 3B"},H:{"2":"KC"},I:{"4":"I H OC fB PC QC","16":"XB LC MC NC"},J:{"4":"D A"},K:{"4":"Q WB","16":"A B C VB eB"},L:{"4":"H"},M:{"4":"P"},N:{"1":"A B"},O:{"4":"RC"},P:{"4":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"4":"bC"},R:{"4":"cC"},S:{"1":"dC"}},B:6,C:"X-Frame-Options HTTP header"}; +module.exports={A:{A:{"1":"E F A B","2":"J D iB"},B:{"1":"C K L G M N O","4":"R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB","4":"I c J D E F A B C K L G M N PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","16":"jB aB lB mB"},D:{"4":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J D E F A B C K L G M N O d e f g h i j"},E:{"4":"J D E F A B C K L G qB rB sB tB fB YB ZB uB vB wB","16":"I c pB eB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB 1B ZB","16":"F B xB yB zB 0B YB gB"},G:{"4":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","16":"eB 2B hB 3B 4B"},H:{"2":"LC"},I:{"4":"I H PC hB QC RC","16":"aB MC NC OC"},J:{"4":"D A"},K:{"4":"Q ZB","16":"A B C YB gB"},L:{"4":"H"},M:{"4":"P"},N:{"1":"A B"},O:{"4":"SC"},P:{"4":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"4":"cC"},R:{"4":"dC"},S:{"1":"eC"}},B:6,C:"X-Frame-Options HTTP header"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js index 7881f4de78abf5..4557185d33d1de 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"J D E F gB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","2":"hB XB","260":"A B","388":"J D E F","900":"I b jB kB"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","16":"I b J","132":"m n","388":"D E F A B C K L G M N O c d e f g h i j k l"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","2":"I oB cB","132":"D qB","388":"b J pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB WB","2":"F B wB xB yB zB VB eB 0B","132":"G M N"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","2":"cB 1B fB","132":"4B","388":"2B 3B"},H:{"2":"KC"},I:{"1":"H QC","2":"LC MC NC","388":"PC","900":"XB I OC fB"},J:{"132":"A","388":"D"},K:{"1":"C Q WB","2":"A B VB eB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:1,C:"XMLHttpRequest advanced features"}; +module.exports={A:{A:{"2":"J D E F iB","132":"A B"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","2":"jB aB","260":"A B","388":"J D E F","900":"I c lB mB"},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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","16":"I c J","132":"n o","388":"D E F A B C K L G M N O d e f g h i j k l m"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","2":"I pB eB","132":"D rB","388":"c J qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB ZB","2":"F B xB yB zB 0B YB gB 1B","132":"G M N"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"eB 2B hB","132":"5B","388":"3B 4B"},H:{"2":"LC"},I:{"1":"H RC","2":"MC NC OC","388":"QC","900":"aB I PC hB"},J:{"132":"A","388":"D"},K:{"1":"C Q ZB","2":"A B YB gB"},L:{"1":"H"},M:{"1":"P"},N:{"132":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:1,C:"XMLHttpRequest advanced features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js index bb883ffc0ea32d..c69b66cca5388c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"J D E gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"1":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"1":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"1":"KC"},I:{"1":"XB I H LC MC NC OC fB PC QC"},J:{"1":"D A"},K:{"1":"A B C Q VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"2":"cC"},S:{"1":"dC"}},B:1,C:"XHTML served as application/xhtml+xml"}; +module.exports={A:{A:{"1":"F A B","2":"J D E iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"1":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"1":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"LC"},I:{"1":"aB I H MC NC OC PC hB QC RC"},J:{"1":"D A"},K:{"1":"A B C Q YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"2":"dC"},S:{"1":"eC"}},B:1,C:"XHTML served as application/xhtml+xml"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js index fc3c1f9d621f99..00f68ba1b90c96 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B gB","4":"J D E"},B:{"2":"C K L G M N O","8":"R S T U V W X Y Z P a H"},C:{"8":"0 1 2 3 4 5 6 7 8 9 hB XB I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H jB kB"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I b J D E F A B C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB"},E:{"8":"I b J D E F A B C K L G oB cB pB qB rB sB dB VB WB tB uB vB"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB wB xB yB zB VB eB 0B WB"},G:{"8":"E cB 1B fB 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"8":"KC"},I:{"8":"XB I H LC MC NC OC fB PC QC"},J:{"8":"D A"},K:{"8":"A B C Q VB eB WB"},L:{"8":"H"},M:{"8":"P"},N:{"2":"A B"},O:{"8":"RC"},P:{"8":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"8":"bC"},R:{"8":"cC"},S:{"8":"dC"}},B:7,C:"XHTML+SMIL animation"}; +module.exports={A:{A:{"2":"F A B iB","4":"J D E"},B:{"2":"C K L G M N O","8":"R S T U V W X Y Z a P b H"},C:{"8":"0 1 2 3 4 5 6 7 8 9 jB aB I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB lB mB"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I c J D E F A B C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB"},E:{"8":"I c J D E F A B C K L G pB eB qB rB sB tB fB YB ZB uB vB wB"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB xB yB zB 0B YB gB 1B ZB"},G:{"8":"E eB 2B hB 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"8":"LC"},I:{"8":"aB I H MC NC OC PC hB QC RC"},J:{"8":"D A"},K:{"8":"A B C Q YB gB ZB"},L:{"8":"H"},M:{"8":"P"},N:{"2":"A B"},O:{"8":"SC"},P:{"8":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"8":"cC"},R:{"8":"dC"},S:{"8":"eC"}},B:7,C:"XHTML+SMIL animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js index f2377e1a99b89f..ae224170234ded 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","260":"J D E F gB"},B:{"1":"C K L G M N O R S T U V W X Y Z P a H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T iB U V W X Y Z P a H","132":"B","260":"hB XB I b J D jB kB","516":"E F A"},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 YB GB ZB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB aB bB R S T U V W X Y Z P a H lB mB nB","132":"I b J D E F A B C K L G M N O c d e f g h i j k l m n"},E:{"1":"E F A B C K L G rB sB dB VB WB tB uB vB","132":"I b J D oB cB pB qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O c d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q HB IB JB KB LB MB NB OB PB QB RB SB TB UB","16":"F wB","132":"B C G M N xB yB zB VB eB 0B WB"},G:{"1":"E 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","132":"cB 1B fB 2B 3B 4B"},H:{"132":"KC"},I:{"1":"H PC QC","132":"XB I LC MC NC OC fB"},J:{"132":"D A"},K:{"1":"Q","16":"A","132":"B C VB eB WB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"RC"},P:{"1":"I SC TC UC VC WC dB XC YC ZC aC"},Q:{"1":"bC"},R:{"1":"cC"},S:{"1":"dC"}},B:4,C:"DOM Parsing and Serialization"}; +module.exports={A:{A:{"1":"A B","260":"J D E F iB"},B:{"1":"C K L G M N O R S T U V W X Y Z a P b H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T kB U V W X Y Z a P b H dB","132":"B","260":"jB aB I c J D lB mB","516":"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 bB HB cB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB R S T U V W X Y Z a P b H dB nB oB","132":"I c J D E F A B C K L G M N O d e f g h i j k l m n o"},E:{"1":"E F A B C K L G sB tB fB YB ZB uB vB wB","132":"I c J D pB eB qB rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O d e f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB Q KB LB MB NB OB PB QB RB SB TB UB VB WB XB","16":"F xB","132":"B C G M N yB zB 0B YB gB 1B ZB"},G:{"1":"E 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","132":"eB 2B hB 3B 4B 5B"},H:{"132":"LC"},I:{"1":"H QC RC","132":"aB I MC NC OC PC hB"},J:{"132":"D A"},K:{"1":"Q","16":"A","132":"B C YB gB ZB"},L:{"1":"H"},M:{"1":"P"},N:{"1":"A B"},O:{"1":"SC"},P:{"1":"I TC UC VC WC XC fB YC ZC aC bC"},Q:{"1":"cC"},R:{"1":"dC"},S:{"1":"eC"}},B:4,C:"DOM Parsing and Serialization"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js index 6aa01337ab9e4f..7b010c257fb5f7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js @@ -1 +1 @@ -module.exports={C:{"45":0.01107,"52":0.01107,"66":0.00554,"72":0.01661,"77":0.00554,"78":0.26573,"84":0.01107,"85":0.02768,"86":0.09411,"87":0.04429,"88":4.18522,"89":0.01107,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 67 68 69 70 71 73 74 75 76 79 80 81 82 83 90 91 3.5 3.6"},D:{"24":0.02214,"25":0.00554,"38":0.01107,"49":1.49472,"53":0.11626,"57":0.02214,"58":0.05536,"62":0.01661,"65":0.00554,"67":0.01107,"68":0.01107,"70":0.01661,"74":0.04429,"75":0.09411,"77":0.05536,"78":0.01661,"79":0.02214,"80":0.34877,"81":0.12179,"83":0.04429,"84":0.04982,"85":0.04429,"86":0.04982,"87":3.67037,"88":0.87469,"89":0.95773,"90":25.91955,"91":0.64771,"92":0.03322,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 59 60 61 63 64 66 69 71 72 73 76 93 94"},F:{"36":0.00554,"73":0.04429,"75":0.64771,"76":0.44842,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00305,"7.0-7.1":0.00457,"8.1-8.4":0.02438,"9.0-9.2":0.00457,"9.3":0.43418,"10.0-10.2":0.00609,"10.3":0.30012,"11.0-11.2":0.0259,"11.3-11.4":0.10055,"12.0-12.1":0.0518,"12.2-12.4":0.1234,"13.0-13.1":0.08227,"13.2":0.00762,"13.3":0.09598,"13.4-13.7":0.53473,"14.0-14.4":10.72809,"14.5-14.6":2.11911},E:{"4":0,"12":0.02214,"13":0.07197,"14":5.97334,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.0609,"10.1":0.02214,"11.1":0.12733,"12.1":0.12733,"13.1":1.05184,"14.1":2.19779},B:{"14":0.01107,"15":0.03875,"16":0.01107,"18":0.06643,"86":0.01107,"87":0.01107,"88":0.00554,"89":0.07197,"90":2.38048,"91":0.17162,_:"12 13 17 79 80 81 83 84 85"},P:{"4":0.15038,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.32486,"8.2":0.03018,"9.2":0.15719,"10.1":0.05153,"11.1-11.2":0.03222,"12.0":0.03222,"13.0":0.08593,"14.0":1.76161},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00347,"4.4":0,"4.4.3-4.4.4":0.05902},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28787,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.32141},Q:{"10.4":0},O:{"0":0},H:{"0":0.12256},L:{"0":28.65493}}; +module.exports={C:{"52":0.03578,"66":0.01022,"69":0.00511,"72":0.05623,"78":0.1687,"79":0.06134,"83":0.00511,"85":0.02045,"86":0.01534,"87":0.02045,"88":0.08179,"89":2.556,"90":1.86588,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 68 70 71 73 74 75 76 77 80 81 82 84 91 92 3.5 3.6"},D:{"38":0.02556,"43":0.01022,"49":1.38024,"58":0.01534,"62":0.01534,"63":0.00511,"65":0.02045,"69":0.07668,"70":0.05112,"71":0.01534,"74":0.00511,"75":0.04601,"77":0.07157,"78":0.01022,"79":0.13802,"80":0.02556,"81":0.11246,"83":0.05623,"84":0.01022,"85":0.03578,"86":0.02556,"87":0.2147,"88":0.12269,"89":0.17892,"90":0.38851,"91":21.07678,"92":5.56697,_:"4 5 6 7 8 9 10 11 12 13 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 59 60 61 64 66 67 68 72 73 76 93 94 95"},F:{"36":0.00511,"74":0.03578,"76":0.35784,"77":1.08374,_:"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 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.03434,"9.0-9.2":0,"9.3":0.20091,"10.0-10.2":0,"10.3":0.13737,"11.0-11.2":0.01545,"11.3-11.4":0.18889,"12.0-12.1":0.10131,"12.2-12.4":0.0704,"13.0-13.1":0.17515,"13.2":0.01374,"13.3":0.07899,"13.4-13.7":0.26616,"14.0-14.4":2.23056,"14.5-14.7":12.92661},E:{"4":0,"12":0.01022,"13":0.0869,"14":1.35468,"15":0.09202,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02556,"10.1":0.01022,"11.1":0.14314,"12.1":0.18914,"13.1":1.24222,"14.1":4.99954},B:{"14":0.03067,"18":0.03578,"86":0.01022,"87":0.01534,"90":0.01022,"91":3.00586,"92":0.84859,_:"12 13 15 16 17 79 80 81 83 84 85 88 89"},P:{"4":0.07347,"5.0-5.4":0.3619,"6.2-6.4":0.02075,"7.2-7.4":0.15936,"8.2":0.05026,"9.2":0.14873,"10.1":0.0415,"11.1-11.2":0.05248,"12.0":0.03149,"13.0":0.11546,"14.0":2.14127},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00205,"4.4":0,"4.4.3-4.4.4":0.06148},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.27094,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.61453},S:{"2.5":0},R:{_:"0"},M:{"0":0.23946},Q:{"10.4":0},O:{"0":0.02444},H:{"0":0.04627}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js index f27511d65d008f..d9aa4964bc3a60 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js @@ -1 +1 @@ -module.exports={C:{"52":0.00826,"68":0.00826,"77":0.00413,"78":0.02478,"80":0.00413,"84":0.01652,"85":0.01239,"86":0.01652,"87":0.02891,"88":0.96229,"89":0.01239,"90":0.00826,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 81 82 83 91 3.5 3.6"},D:{"22":0.00413,"34":0.00826,"35":0.56168,"38":0.02891,"47":0.00826,"49":0.22715,"53":0.00826,"56":0.01652,"63":0.00826,"64":0.00826,"65":0.02065,"66":0.00413,"67":0.02065,"68":0.01652,"69":0.01652,"70":0.01239,"71":0.02065,"72":0.02065,"73":0.01239,"74":0.01239,"75":0.03304,"76":0.0413,"77":0.01239,"78":0.01652,"79":0.07021,"80":0.03717,"81":0.02478,"83":0.06195,"84":0.03304,"85":0.04543,"86":0.08673,"87":0.69797,"88":0.23128,"89":0.90447,"90":24.94933,"91":1.03663,"92":0.02891,_:"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 41 42 43 44 45 46 48 50 51 52 54 55 57 58 59 60 61 62 93 94"},F:{"36":0.00413,"46":0.00413,"66":0.00413,"73":0.0826,"74":0.00826,"75":0.32627,"76":0.33866,_:"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 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00146,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01461,"6.0-6.1":0,"7.0-7.1":0.03068,"8.1-8.4":0.00584,"9.0-9.2":0.00438,"9.3":0.16947,"10.0-10.2":0.02776,"10.3":0.09642,"11.0-11.2":0.11687,"11.3-11.4":0.05113,"12.0-12.1":0.03506,"12.2-12.4":0.20161,"13.0-13.1":0.05113,"13.2":0.02337,"13.3":0.1271,"13.4-13.7":0.43243,"14.0-14.4":9.90935,"14.5-14.6":2.68953},E:{"4":0,"11":0.01239,"12":0.01239,"13":0.07847,"14":2.75471,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.02478,"10.1":0.01652,"11.1":0.03717,"12.1":0.09086,"13.1":0.46669,"14.1":0.81774},B:{"13":0.00413,"14":0.00826,"15":0.01239,"16":0.01239,"17":0.01652,"18":0.07847,"84":0.01239,"85":0.00826,"86":0.00413,"88":0.01239,"89":0.05782,"90":2.53582,"91":0.2065,_:"12 79 80 81 83 87"},P:{"4":0.18507,"5.0-5.4":0.01052,"6.2-6.4":0.09153,"7.2-7.4":0.03085,"8.2":0.02034,"9.2":0.03085,"10.1":0.06169,"11.1-11.2":0.14394,"12.0":0.07197,"13.0":0.29817,"14.0":2.44705},I:{"0":0,"3":0,"4":0.00168,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00168,"4.2-4.3":0.00419,"4.4":0,"4.4.3-4.4.4":0.05115},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.44604,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01174},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.11153},Q:{"10.4":0.02348},O:{"0":5.72325},H:{"0":1.30042},L:{"0":36.01123}}; +module.exports={C:{"34":0.00367,"52":0.00734,"63":0.00367,"68":0.04404,"78":0.02569,"80":0.00367,"84":0.02202,"87":0.00734,"88":0.04771,"89":0.66427,"90":0.28259,"91":0.00734,"92":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 59 60 61 62 64 65 66 67 69 70 71 72 73 74 75 76 77 79 81 82 83 85 86 3.5 3.6"},D:{"22":0.00734,"34":0.00734,"35":0.71565,"38":0.0367,"39":0.00367,"43":0.00367,"47":0.00734,"49":0.09542,"56":0.01468,"58":0.00734,"61":0.00734,"63":0.00734,"64":0.00734,"65":0.01468,"66":0.01101,"67":0.01101,"68":0.00734,"69":0.02569,"70":0.00734,"71":0.02202,"72":0.01468,"73":0.01835,"74":0.01101,"75":0.04037,"76":0.04404,"77":0.01101,"78":0.01101,"79":0.09909,"80":0.02936,"81":0.01468,"83":0.04404,"84":0.05872,"85":0.0367,"86":0.06606,"87":0.71198,"88":0.08808,"89":0.13579,"90":0.32663,"91":18.53717,"92":4.09939,"93":0.02202,_:"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 40 41 42 44 45 46 48 50 51 52 53 54 55 57 59 60 62 94 95"},F:{"28":0.00367,"36":0.00734,"46":0.01101,"76":0.16882,"77":0.42572,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0122,"6.0-6.1":0,"7.0-7.1":0.03202,"8.1-8.4":0.01067,"9.0-9.2":0.00915,"9.3":0.24247,"10.0-10.2":0.02135,"10.3":0.10065,"11.0-11.2":0.12047,"11.3-11.4":0.04117,"12.0-12.1":0.03507,"12.2-12.4":0.16622,"13.0-13.1":0.0366,"13.2":0.01982,"13.3":0.1098,"13.4-13.7":0.37819,"14.0-14.4":2.24475,"14.5-14.7":10.95536},E:{"4":0,"11":0.00734,"12":0.00734,"13":0.06239,"14":0.75602,"15":0.01835,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.00367,"10.1":0.01835,"11.1":0.03303,"12.1":0.06239,"13.1":0.29727,"14.1":2.16897},B:{"14":0.00367,"16":0.00367,"17":0.01101,"18":0.05138,"84":0.00734,"85":0.00367,"86":0.00367,"88":0.00734,"89":0.01835,"90":0.01468,"91":2.10658,"92":0.53582,_:"12 13 15 79 80 81 83 87"},P:{"4":0.22617,"5.0-5.4":0.02099,"6.2-6.4":0.04068,"7.2-7.4":0.06168,"8.2":0.01012,"9.2":0.03084,"10.1":0.02056,"11.1-11.2":0.11308,"12.0":0.04112,"13.0":0.17477,"14.0":2.61123},I:{"0":0,"3":0,"4":0.0007,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00106,"4.2-4.3":0.00211,"4.4":0,"4.4.3-4.4.4":0.02146},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00524,"11":0.39846,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01899},N:{"10":0.01143,"11":0.01864},L:{"0":39.9308},S:{"2.5":0},R:{_:"0"},M:{"0":0.10763},Q:{"10.4":0.04432},O:{"0":6.34999},H:{"0":1.36658}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js index 6cf984f080ad6c..8e9833fdeaf309 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js @@ -1 +1 @@ -module.exports={C:{"17":0.00403,"19":0.00202,"23":0.00202,"30":0.00202,"34":0.00202,"38":0.0121,"39":0.00403,"40":0.00403,"41":0.00605,"44":0.00202,"45":0.00202,"47":0.00202,"48":0.00605,"49":0.00202,"50":0.00202,"52":0.00403,"55":0.01009,"56":0.00605,"57":0.00403,"58":0.00605,"64":0.00202,"68":0.00202,"72":0.02622,"73":0.00403,"74":0.00202,"78":0.03631,"79":0.00605,"81":0.01009,"82":0.00605,"83":0.01614,"84":0.00807,"85":0.01009,"86":0.06454,"87":0.05648,"88":1.42199,"89":0.05244,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 21 22 24 25 26 27 28 29 31 32 33 35 36 37 42 43 46 51 53 54 59 60 61 62 63 65 66 67 69 70 71 75 76 77 80 90 91 3.5 3.6"},D:{"18":0.00605,"20":0.00807,"23":0.0121,"26":0.00202,"31":0.00605,"33":0.00605,"34":0.01412,"36":0.00403,"37":0.00403,"39":0.00403,"40":0.00403,"41":0.00403,"43":0.0706,"44":0.00202,"46":0.00202,"47":0.00605,"48":0.00605,"49":0.01009,"50":0.00202,"51":0.00202,"52":0.00807,"53":0.00202,"55":0.0121,"56":0.00403,"57":0.00403,"58":0.00605,"59":0.00202,"60":0.01412,"61":0.00605,"62":0.01614,"63":0.0121,"64":0.0121,"66":0.00403,"67":0.00605,"68":0.00403,"69":0.00403,"70":0.0121,"71":0.0121,"72":0.01009,"73":0.0121,"74":0.01009,"75":0.01009,"76":0.00605,"77":0.01815,"78":0.01614,"79":0.06858,"80":0.04034,"81":0.04236,"83":0.06454,"84":0.07866,"85":0.03832,"86":0.0827,"87":0.16338,"88":0.11699,"89":0.47803,"90":11.44042,"91":0.36709,"92":0.02017,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 21 22 24 25 27 28 29 30 32 35 38 42 45 54 65 93 94"},F:{"64":0.00605,"70":0.00202,"72":0.00202,"73":0.00807,"74":0.00605,"75":0.17548,"76":0.35701,_:"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 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0.00387,"4.2-4.3":0.00387,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01782,"8.1-8.4":0.00155,"9.0-9.2":0.0124,"9.3":0.05423,"10.0-10.2":0.0093,"10.3":0.14101,"11.0-11.2":0.07903,"11.3-11.4":0.1658,"12.0-12.1":0.15805,"12.2-12.4":0.46176,"13.0-13.1":0.10769,"13.2":0.03719,"13.3":0.21616,"13.4-13.7":0.5005,"14.0-14.4":4.21939,"14.5-14.6":0.90725},E:{"4":0,"11":0.00202,"13":0.0242,"14":0.19968,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.12304,"11.1":0.00202,"12.1":0.00807,"13.1":0.06253,"14.1":0.14321},B:{"12":0.01614,"13":0.02017,"14":0.01614,"15":0.01412,"16":0.03631,"17":0.03227,"18":0.16338,"80":0.00605,"81":0.00403,"83":0.00202,"84":0.01009,"85":0.01614,"87":0.00605,"88":0.00807,"89":0.05648,"90":0.90967,"91":0.06454,_:"79 86"},P:{"4":1.51895,"5.0-5.4":0.40237,"6.2-6.4":0.31184,"7.2-7.4":0.74439,"8.2":0.03018,"9.2":0.61362,"10.1":0.09053,"11.1-11.2":0.46273,"12.0":0.29172,"13.0":0.87516,"14.0":1.38818},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00913,"4.2-4.3":0.0341,"4.4":0,"4.4.3-4.4.4":0.31601},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00608,"9":0.01825,"11":0.76634,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.16764},Q:{"10.4":0},O:{"0":2.15541},H:{"0":1.13367},L:{"0":63.50401}}; +module.exports={C:{"4":0.00839,"8":0.0021,"18":0.0021,"29":0.00419,"30":0.0021,"33":0.00419,"37":0.00629,"38":0.0021,"39":0.00419,"41":0.0021,"43":0.01049,"44":0.00419,"45":0.0021,"48":0.01049,"50":0.01258,"52":0.00839,"56":0.02936,"57":0.01258,"58":0.00629,"66":0.00839,"68":0.00419,"70":0.00419,"72":0.01049,"78":0.05033,"81":0.0021,"82":0.00629,"83":0.00419,"84":0.00629,"85":0.02097,"86":0.04823,"87":0.00839,"88":0.03775,"89":1.09044,"90":0.43827,"91":0.01678,_:"2 3 5 6 7 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 31 32 34 35 36 40 42 46 47 49 51 53 54 55 59 60 61 62 63 64 65 67 69 71 73 74 75 76 77 79 80 92 3.5 3.6"},D:{"18":0.00629,"23":0.0021,"25":0.00419,"28":0.00419,"31":0.0021,"33":0.00419,"34":0.02516,"35":0.0021,"36":0.00419,"37":0.00629,"42":0.0021,"43":0.08388,"44":0.00419,"45":0.00419,"46":0.01887,"47":0.00419,"48":0.00629,"49":0.00839,"50":0.0021,"51":0.00419,"52":0.00839,"53":0.0021,"54":0.00419,"55":0.02936,"56":0.00419,"57":0.0021,"60":0.00839,"61":0.00419,"62":0.01887,"63":0.01258,"64":0.01258,"65":0.00839,"66":0.02516,"67":0.00629,"68":0.0021,"69":0.00629,"70":0.01678,"71":0.01887,"72":0.01049,"73":0.02516,"74":0.00419,"75":0.00839,"76":0.00839,"77":0.00839,"78":0.01049,"79":0.03984,"80":0.05033,"81":0.03984,"83":0.08388,"84":0.01887,"85":0.02726,"86":0.05452,"87":0.11743,"88":0.06081,"89":0.11743,"90":0.23906,"91":9.75734,"92":1.71744,"93":0.02726,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 24 26 27 29 30 32 38 39 40 41 58 59 94 95"},F:{"73":0.00419,"74":0.0021,"76":0.03984,"77":1.30853,_:"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 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00226,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00151,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01583,"8.1-8.4":0.00829,"9.0-9.2":0.00226,"9.3":0.06862,"10.0-10.2":0.00679,"10.3":0.15231,"11.0-11.2":0.09576,"11.3-11.4":0.12969,"12.0-12.1":0.10255,"12.2-12.4":0.46448,"13.0-13.1":0.141,"13.2":0.06862,"13.3":0.24883,"13.4-13.7":0.34459,"14.0-14.4":2.36163,"14.5-14.7":2.71677},E:{"4":0,"9":0.00839,"11":0.01049,"12":0.0021,"13":0.01887,"14":0.08388,"15":0.04194,_:"0 5 6 7 8 10 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.04194,"10.1":0.0021,"12.1":0.00839,"13.1":0.03355,"14.1":0.46763},B:{"12":0.02307,"13":0.01887,"14":0.01468,"15":0.01258,"16":0.03146,"17":0.02097,"18":0.17405,"80":0.0021,"81":0.0021,"84":0.01468,"85":0.02516,"87":0.0021,"88":0.00629,"89":0.02516,"90":0.05662,"91":0.79267,"92":0.13001,_:"79 83 86"},P:{"4":1.23649,"5.0-5.4":0.3619,"6.2-6.4":0.18095,"7.2-7.4":0.67354,"8.2":0.05026,"9.2":0.54285,"10.1":0.08042,"11.1-11.2":0.39206,"12.0":0.27143,"13.0":0.5529,"14.0":1.9804},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00479,"4.2-4.3":0.02792,"4.4":0,"4.4.3-4.4.4":0.1807},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00839,"9":0.01678,"11":0.63959,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":63.89902},S:{"2.5":0},R:{_:"0"},M:{"0":0.15018},Q:{"10.4":0},O:{"0":2.07875},H:{"0":1.24966}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js index 782aa6e61e25d2..cfa436714b1e18 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js @@ -1 +1 @@ -module.exports={C:{"52":0.01078,"58":0.00359,"62":0.00359,"68":0.00359,"78":0.03235,"80":0.01078,"84":0.02875,"85":0.00719,"86":0.01078,"87":0.02516,"88":1.08179,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 59 60 61 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 81 82 83 89 90 91 3.5 3.6"},D:{"38":0.00719,"41":0.00719,"46":0.00359,"49":0.31987,"52":0.00719,"53":0.02875,"54":0.00359,"55":0.00359,"59":0.00359,"63":0.00719,"65":0.00719,"67":0.01438,"68":0.00359,"70":0.01438,"72":0.00719,"74":0.2408,"75":0.02156,"76":0.0575,"77":0.02156,"78":0.02516,"79":0.02875,"80":0.01438,"81":0.02516,"83":0.01438,"84":0.03235,"85":0.01438,"86":0.00719,"87":0.11141,"88":0.05391,"89":0.83021,"90":16.7732,"91":0.84818,"92":0.00359,_:"4 5 6 7 8 9 10 11 12 13 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 47 48 50 51 56 57 58 60 61 62 64 66 69 71 73 93 94"},F:{"36":0.00719,"73":0.01078,"75":0.07907,"76":0.64333,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00398,"6.0-6.1":0,"7.0-7.1":0.01859,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06372,"10.0-10.2":0.00398,"10.3":0.09691,"11.0-11.2":0.01328,"11.3-11.4":0.01328,"12.0-12.1":0.02522,"12.2-12.4":0.17258,"13.0-13.1":0.02655,"13.2":0,"13.3":0.05841,"13.4-13.7":0.44075,"14.0-14.4":9.78405,"14.5-14.6":1.97539},E:{"4":0,"13":0.07907,"14":1.81856,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.15095,"9.1":0.40253,"10.1":0.00719,"11.1":0.01438,"12.1":0.08266,"13.1":0.51394,"14.1":0.37378},B:{"12":0.00359,"13":0.01438,"14":0.01797,"15":0.00719,"16":0.01797,"17":0.02156,"18":0.09704,"84":0.01438,"86":0.00359,"87":0.01438,"88":0.04313,"89":0.10423,"90":4.24092,"91":0.28033,_:"79 80 81 83 85"},P:{"4":0.05161,"5.0-5.4":0.01035,"6.2-6.4":0.02052,"7.2-7.4":0.27869,"8.2":0.03078,"9.2":0.17547,"10.1":0.05174,"11.1-11.2":0.25805,"12.0":0.0929,"13.0":0.69157,"14.0":4.47975},I:{"0":0,"3":0,"4":0.00413,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00165,"4.4":0,"4.4.3-4.4.4":0.01984},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":3.07267,"11":0.1763,_:"7 8 9 10 5.5"},J:{"7":0,"10":0.00641},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.3203},Q:{"10.4":0},O:{"0":0.08968},H:{"0":0.1031},L:{"0":47.14905}}; +module.exports={C:{"52":0.00346,"78":0.01385,"85":0.00346,"87":0.00346,"88":0.01039,"89":0.81357,"90":0.51238,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 91 92 3.5 3.6"},D:{"49":0.01385,"58":0.00346,"63":0.00692,"65":0.01039,"66":0.00346,"67":0.01039,"70":0.01385,"74":0.50891,"75":0.03462,"76":0.04154,"77":0.00692,"78":0.1004,"79":0.0277,"80":0.00346,"81":0.01385,"83":0.05193,"84":0.07963,"85":0.06924,"86":0.01039,"87":0.07963,"88":0.03808,"89":0.16618,"90":0.39467,"91":17.10574,"92":3.19196,"93":0.02077,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 64 68 69 71 72 73 94 95"},F:{"64":0.03116,"76":0.03116,"77":0.46391,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00881,"6.0-6.1":0,"7.0-7.1":0.00735,"8.1-8.4":0.00147,"9.0-9.2":0.00294,"9.3":0.05289,"10.0-10.2":0,"10.3":0.07933,"11.0-11.2":0.02204,"11.3-11.4":0.02498,"12.0-12.1":0.02351,"12.2-12.4":0.10431,"13.0-13.1":0.00881,"13.2":0,"13.3":0.06611,"13.4-13.7":0.29236,"14.0-14.4":2.03767,"14.5-14.7":11.08011},E:{"4":0,"12":0.00692,"13":0.04501,"14":0.50199,"15":0.08655,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.31158,"10.1":0.00692,"11.1":0.01731,"12.1":0.0277,"13.1":0.40505,"14.1":1.52328},B:{"12":0.00346,"13":0.02077,"14":0.05193,"16":0.01385,"17":0.01385,"18":0.11425,"83":0.00692,"84":0.03462,"85":0.00346,"86":0.00692,"87":0.00346,"88":0.07616,"89":0.01731,"90":0.03462,"91":3.3166,"92":0.76856,_:"15 79 80 81"},P:{"4":0.36455,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.32289,"8.2":0.01046,"9.2":0.04166,"10.1":0.05229,"11.1-11.2":0.22915,"12.0":0.08333,"13.0":0.35413,"14.0":5.80154},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01232,"4.2-4.3":0.00126,"4.4":0,"4.4.3-4.4.4":0.01257},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1454,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":46.13606},S:{"2.5":0.01307},R:{_:"0"},M:{"0":0.74522},Q:{"10.4":0},O:{"0":0.06537},H:{"0":0.06189}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js index 0ad43080a78c1b..a5bf4033a15874 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js @@ -1 +1 @@ -module.exports={C:{"78":0.01661,"80":0.09967,"85":0.00831,"86":0.03322,"87":0.00831,"88":1.11716,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 81 82 83 84 89 90 91 3.5 3.6"},D:{"23":0.01246,"24":0.00415,"35":0.01246,"49":0.19934,"53":0.01246,"63":0.02907,"65":0.02907,"66":0.01246,"67":0.00415,"69":0.00415,"72":0.01246,"73":0.04984,"74":0.94688,"75":0.01246,"76":0.06645,"77":0.04984,"78":0.00415,"80":0.01661,"81":0.03738,"83":0.00831,"84":0.02907,"85":0.03322,"86":0.01661,"87":0.0623,"88":0.03738,"89":0.57727,"90":19.98839,"91":0.4776,"92":0.14536,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 30 31 32 33 34 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 68 70 71 79 93 94"},F:{"73":0.02907,"75":0.26164,"76":0.12044,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00314,"8.1-8.4":0.00943,"9.0-9.2":0,"9.3":0.06131,"10.0-10.2":0.00786,"10.3":0.07389,"11.0-11.2":0.11162,"11.3-11.4":0.01572,"12.0-12.1":0.0283,"12.2-12.4":0.22009,"13.0-13.1":0.02673,"13.2":0.00943,"13.3":0.11476,"13.4-13.7":0.4339,"14.0-14.4":12.09414,"14.5-14.6":1.80162},E:{"4":0,"12":0.01661,"13":0.27825,"14":2.58732,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.57727,"11.1":0.07475,"12.1":0.04153,"13.1":0.25333,"14.1":0.52328},B:{"12":0.02077,"13":0.01246,"16":0.04568,"18":0.33224,"81":0.00415,"85":0.00831,"86":0.00415,"88":0.01661,"89":0.27825,"90":7.72873,"91":0.30317,_:"14 15 17 79 80 83 84 87"},P:{"4":0.03105,"5.0-5.4":0.01035,"6.2-6.4":0.02052,"7.2-7.4":0.25871,"8.2":0.03078,"9.2":0.11383,"10.1":0.05174,"11.1-11.2":0.40359,"12.0":0.12418,"13.0":0.63125,"14.0":3.45635},I:{"0":0,"3":0,"4":0.00115,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00092,"4.4":0,"4.4.3-4.4.4":0.01546},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2035,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.11109},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.14618},Q:{"10.4":0},O:{"0":0.04093},H:{"0":0.47606},L:{"0":40.75151}}; +module.exports={C:{"87":0.00721,"88":0.01442,"89":0.47599,"90":0.24521,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"38":0.01803,"49":0.03606,"52":0.03245,"58":0.00361,"65":0.01803,"72":0.01442,"73":0.04688,"74":1.11065,"76":0.04688,"79":0.05048,"81":0.03606,"83":0.01442,"84":0.02885,"85":0.00361,"86":0.01442,"87":0.0577,"88":0.02885,"89":0.08654,"90":0.47599,"91":15.54907,"92":2.90644,_:"4 5 6 7 8 9 10 11 12 13 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 59 60 61 62 63 64 66 67 68 69 70 71 75 77 78 80 93 94 95"},F:{"75":0.00361,"76":0.07573,"77":0.55172,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02434,"7.0-7.1":0,"8.1-8.4":0.03651,"9.0-9.2":0,"9.3":0.1443,"10.0-10.2":0,"10.3":0.21558,"11.0-11.2":0.01739,"11.3-11.4":0.0226,"12.0-12.1":0.02782,"12.2-12.4":0.08867,"13.0-13.1":0.00348,"13.2":0.01043,"13.3":0.17038,"13.4-13.7":0.32163,"14.0-14.4":3.25981,"14.5-14.7":12.20473},E:{"4":0,"12":0.01442,"13":0.20554,"14":0.56975,"15":0.04327,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.53369,"10.1":0.00721,"11.1":0.05048,"12.1":0.04688,"13.1":0.28127,"14.1":2.18524},B:{"14":0.00361,"16":0.00721,"17":0.01442,"18":0.22357,"81":0.00721,"84":0.05048,"88":0.00721,"89":0.32093,"90":0.02164,"91":4.66616,"92":0.49042,_:"12 13 15 79 80 83 85 86 87"},P:{"4":0.24838,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.19664,"8.2":0.01046,"9.2":0.0414,"10.1":0.05229,"11.1-11.2":0.38292,"12.0":0.09314,"13.0":0.31048,"14.0":4.18112},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00046,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02511},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16227,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.28823},S:{"2.5":0},R:{_:"0"},M:{"0":0.07673},Q:{"10.4":0.01279},O:{"0":0.18543},H:{"0":0.8838}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js index 3d07967009b084..c95f8eb33c7b1d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js @@ -1 +1 @@ -module.exports={C:{"29":0.00594,"47":0.00198,"48":0.00396,"52":0.01386,"55":0.00594,"66":0.11088,"78":0.02178,"79":0.00198,"80":0.00594,"81":0.00792,"82":0.00792,"83":0.00594,"84":0.00594,"85":0.00198,"86":0.0099,"87":0.0198,"88":0.92664,"89":0.0099,_:"2 3 4 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 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 90 91 3.5 3.6"},D:{"26":0.00198,"34":0.00396,"38":0.01188,"47":0.00396,"48":0.00198,"49":0.32076,"52":0.00198,"53":0.05346,"55":0.00594,"56":0.00198,"58":0.00594,"61":0.05742,"62":0.00198,"63":0.00594,"65":0.00396,"66":0.00594,"68":0.02772,"69":0.00396,"70":0.00594,"71":0.02376,"72":0.00396,"73":0.00198,"74":0.01386,"75":0.02376,"76":0.01188,"77":0.01584,"78":0.0297,"79":0.02376,"80":0.0198,"81":0.01584,"83":0.03168,"84":0.05544,"85":0.04356,"86":0.08514,"87":0.12078,"88":0.08514,"89":0.48708,"90":13.81446,"91":0.43758,"92":0.00396,_:"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 39 40 41 42 43 44 45 46 50 51 54 57 59 60 64 67 93 94"},F:{"40":0.00396,"46":0.00594,"68":0.00198,"73":0.01584,"74":0.0198,"75":0.16632,"76":0.26136,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.05017,"7.0-7.1":0.03942,"8.1-8.4":0.00717,"9.0-9.2":0.00717,"9.3":0.10751,"10.0-10.2":0.03584,"10.3":0.21861,"11.0-11.2":0.1326,"11.3-11.4":0.25086,"12.0-12.1":0.12901,"12.2-12.4":0.82426,"13.0-13.1":0.1541,"13.2":0.07884,"13.3":0.52681,"13.4-13.7":1.60909,"14.0-14.4":25.68454,"14.5-14.6":3.38303},E:{"4":0,"7":0.00396,"12":0.0099,"13":0.01386,"14":0.25938,_:"0 5 6 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00198,"10.1":0.00198,"11.1":0.00792,"12.1":0.02574,"13.1":0.0495,"14.1":0.11484},B:{"12":0.00198,"15":0.00792,"17":0.0099,"18":0.02376,"84":0.00396,"85":0.00396,"87":0.00396,"88":0.00198,"89":0.01782,"90":0.7722,"91":0.02178,_:"13 14 16 79 80 81 83 86"},P:{"4":0.15301,"5.0-5.4":0.40237,"6.2-6.4":0.31184,"7.2-7.4":0.0816,"8.2":0.03018,"9.2":0.0306,"10.1":0.0816,"11.1-11.2":0.22441,"12.0":0.102,"13.0":0.43862,"14.0":2.52969},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00334,"4.2-4.3":0.00802,"4.4":0,"4.4.3-4.4.4":0.0528},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0042,"11":0.0651,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.13636},Q:{"10.4":0},O:{"0":0.03208},H:{"0":0.1215},L:{"0":43.55326}}; +module.exports={C:{"4":0.00202,"5":0.00202,"17":0.00403,"48":0.00202,"50":0.00202,"52":0.01613,"56":0.00605,"66":0.05242,"67":0.00605,"72":0.00202,"78":0.03024,"79":0.00202,"80":0.00202,"84":0.00605,"87":0.00403,"88":0.09677,"89":0.85882,"90":0.45562,_:"2 3 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 51 53 54 55 57 58 59 60 61 62 63 64 65 68 69 70 71 73 74 75 76 77 81 82 83 85 86 91 92 3.5 3.6"},D:{"24":0.00605,"34":0.00605,"38":0.01411,"47":0.01008,"49":0.13709,"53":0.0121,"55":0.00605,"56":0.01008,"58":0.00403,"61":0.09475,"63":0.00806,"64":0.00202,"65":0.00806,"67":0.00403,"68":0.00806,"69":0.00403,"70":0.00403,"71":0.00605,"72":0.00605,"74":0.01814,"75":0.00806,"76":0.00806,"77":0.0121,"78":0.00605,"79":0.06854,"80":0.02016,"81":0.01411,"83":0.03226,"84":0.02822,"85":0.03024,"86":0.04234,"87":0.22176,"88":0.02621,"89":0.07056,"90":0.17136,"91":11.69482,"92":2.79821,"93":0.01613,_:"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 51 52 54 57 59 60 62 66 73 94 95"},F:{"28":0.00605,"31":0.00403,"36":0.00605,"40":0.00403,"46":0.00202,"58":0.00403,"64":0.00202,"65":0.00202,"72":0.00202,"74":0.00403,"76":0.0887,"77":0.27821,_:"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 60 62 63 66 67 68 69 70 71 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.03052,"7.0-7.1":0.05723,"8.1-8.4":0,"9.0-9.2":0.00382,"9.3":0.09157,"10.0-10.2":0.03052,"10.3":0.21366,"11.0-11.2":0.11828,"11.3-11.4":0.23274,"12.0-12.1":0.11065,"12.2-12.4":0.6181,"13.0-13.1":0.12209,"13.2":0.06105,"13.3":0.44641,"13.4-13.7":1.36592,"14.0-14.4":6.31835,"14.5-14.7":25.89151},E:{"4":0,"13":0.0121,"14":0.12499,"15":0.00403,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00403,"11.1":0.00605,"12.1":0.00806,"13.1":0.04234,"14.1":0.31853},B:{"15":0.00202,"16":0.00202,"17":0.01613,"18":0.01613,"84":0.00403,"85":0.00403,"87":0.00202,"89":0.00605,"90":0.00605,"91":0.61286,"92":0.14918,_:"12 13 14 79 80 81 83 86 88"},P:{"4":0.20328,"5.0-5.4":0.3619,"6.2-6.4":0.18095,"7.2-7.4":0.05082,"8.2":0.05026,"9.2":0.02033,"10.1":0.02033,"11.1-11.2":0.16262,"12.0":0.06098,"13.0":0.2236,"14.0":2.34785},I:{"0":0,"3":0,"4":0.00104,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00486,"4.2-4.3":0.00486,"4.4":0,"4.4.3-4.4.4":0.02916},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01233,"9":0.00411,"10":0.00411,"11":0.0863,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":41.4743},S:{"2.5":0},R:{_:"0"},M:{"0":0.16766},Q:{"10.4":0},O:{"0":0.0479},H:{"0":0.14362}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js index 60c42f996c15ef..39470ddb497f09 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js @@ -1 +1 @@ -module.exports={C:{"42":0.01527,"43":0.01527,"52":38.56439,"56":0.01527,"78":0.04581,"84":0.00764,"85":0.06872,"87":0.03818,"88":1.15289,"89":0.01527,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 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 86 90 91 3.5 3.6"},D:{"22":0.00764,"24":0.00764,"49":2.02328,"63":0.01527,"65":0.01527,"67":0.01527,"71":0.00764,"72":0.01527,"73":0.02291,"75":0.01527,"76":0.02291,"77":0.01527,"78":0.01527,"79":0.04581,"80":0.03818,"81":0.01527,"83":0.02291,"84":0.04581,"85":0.05345,"86":0.06108,"87":0.42756,"88":0.19088,"89":0.60317,"90":26.14988,"91":0.88566,"92":0.03054,_:"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 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 69 70 74 93 94"},F:{"73":0.05345,"74":0.00764,"75":0.46574,"76":0.54972,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00467,"6.0-6.1":0.00525,"7.0-7.1":0.00933,"8.1-8.4":0.00175,"9.0-9.2":0.00233,"9.3":0.12424,"10.0-10.2":0.00583,"10.3":0.063,"11.0-11.2":0.02158,"11.3-11.4":0.03558,"12.0-12.1":0.02275,"12.2-12.4":0.15516,"13.0-13.1":0.03325,"13.2":0.00875,"13.3":0.06241,"13.4-13.7":0.20299,"14.0-14.4":3.71626,"14.5-14.6":0.99279},E:{"4":0,"13":0.01527,"14":0.77114,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.14507,"9.1":0.03054,"11.1":0.02291,"12.1":0.00764,"13.1":0.32067,"14.1":0.47337},B:{"18":0.01527,"86":0.06108,"89":0.02291,"90":0.74823,"91":0.03054,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88"},P:{"4":0.02187,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.04374,"8.2":0.03018,"9.2":0.01094,"10.1":0.01094,"11.1-11.2":0.10936,"12.0":0.03281,"13.0":0.17498,"14.0":0.85301},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.0022,"4.4":0,"4.4.3-4.4.4":0.00698},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09926,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.07092},Q:{"10.4":0},O:{"0":0.07328},H:{"0":0.15667},L:{"0":17.1011}}; +module.exports={C:{"4":0.01514,"42":0.01514,"52":41.13324,"56":0.00757,"78":0.01514,"85":0.04543,"87":0.01514,"88":0.00757,"89":0.50726,"90":0.30284,_:"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 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 86 91 92 3.5 3.6"},D:{"49":1.65048,"63":0.06814,"67":0.01514,"70":0.02271,"72":0.02271,"73":0.01514,"75":0.02271,"76":0.03786,"77":0.03028,"79":0.04543,"80":0.02271,"81":0.01514,"83":0.02271,"84":0.03786,"85":0.03028,"86":0.03786,"87":0.31798,"88":0.09085,"89":0.11357,"90":0.28013,"91":19.66946,"92":5.012,"93":0.01514,"94":0.00757,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 71 74 78 95"},F:{"76":0.09842,"77":0.60568,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00329,"6.0-6.1":0.00724,"7.0-7.1":0.00658,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08097,"10.0-10.2":0.00856,"10.3":0.07175,"11.0-11.2":0.03357,"11.3-11.4":0.03226,"12.0-12.1":0.02896,"12.2-12.4":0.1435,"13.0-13.1":0.02765,"13.2":0.00922,"13.3":0.06122,"13.4-13.7":0.18761,"14.0-14.4":1.33234,"14.5-14.7":4.16883},E:{"4":0,"14":0.28013,"15":0.00757,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 10.1","5.1":0.08328,"9.1":0.00757,"11.1":0.00757,"12.1":0.02271,"13.1":0.12871,"14.1":0.86309},B:{"89":0.00757,"90":0.00757,"91":0.67382,"92":0.15899,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88"},P:{"4":0.01075,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.04301,"8.2":0.01046,"9.2":0.01075,"10.1":0.02078,"11.1-11.2":0.09677,"12.0":0.02151,"13.0":0.09677,"14.0":0.99999},I:{"0":0,"3":0,"4":0.00017,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00021,"4.2-4.3":0.00069,"4.4":0,"4.4.3-4.4.4":0.00379},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.81767,"11":0.10599,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":17.42267},S:{"2.5":0},R:{_:"0"},M:{"0":0.03642},Q:{"10.4":0},O:{"0":0.09226},H:{"0":0.14022}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js index 08b2e941f9b6d0..f376d1a2c4d707 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js @@ -1 +1 @@ -module.exports={C:{"35":0.00489,"41":0.04397,"46":0.00977,"47":0.00977,"52":0.07328,"60":0.01466,"64":0.00489,"66":0.00489,"68":0.02443,"72":0.00977,"78":0.16121,"85":0.00489,"86":0.00977,"87":0.02443,"88":1.88073,"89":0.02931,_:"2 3 4 5 6 7 8 9 10 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 42 43 44 45 48 49 50 51 53 54 55 56 57 58 59 61 62 63 65 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 90 91 3.5 3.6"},D:{"11":0.00489,"25":0.00489,"26":0.01954,"28":0.00977,"33":0.00977,"38":0.00977,"40":0.0342,"41":0.00489,"42":0.02443,"43":0.12213,"46":0.02931,"47":0.00977,"48":0.02443,"49":0.08305,"50":0.00977,"53":0.00489,"55":0.01466,"56":0.00977,"58":0.00977,"59":0.00489,"62":0.00977,"63":0.15144,"65":0.01466,"66":0.00489,"67":0.01954,"69":0.26868,"70":0.00977,"71":0.0342,"72":0.00977,"73":0.00977,"74":0.00977,"75":0.05862,"76":0.00977,"77":0.01954,"78":0.01466,"79":0.17098,"80":0.03908,"81":0.0342,"83":0.04885,"84":0.0342,"85":0.04397,"86":0.22471,"87":1.00631,"88":0.15144,"89":3.79076,"90":20.53654,"91":1.04539,"92":0.01466,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 27 29 30 31 32 34 35 36 37 39 44 45 51 52 54 57 60 61 64 68 93 94"},F:{"42":0.00489,"72":0.00489,"73":0.04397,"74":0.00977,"75":0.61551,"76":1.50947,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00249,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0083,"6.0-6.1":0.00913,"7.0-7.1":0.44883,"8.1-8.4":0.03319,"9.0-9.2":0.00996,"9.3":0.96818,"10.0-10.2":0.03153,"10.3":0.30862,"11.0-11.2":0.08296,"11.3-11.4":0.10453,"12.0-12.1":0.05061,"12.2-12.4":0.53014,"13.0-13.1":0.03236,"13.2":0.00747,"13.3":0.2323,"13.4-13.7":0.24474,"14.0-14.4":3.27374,"14.5-14.6":0.79728},E:{"4":0,"8":0.0342,"11":0.00489,"13":0.00977,"14":0.42011,_:"0 5 6 7 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.03908,"10.1":0.01466,"11.1":0.10259,"12.1":0.05374,"13.1":0.27356,"14.1":0.19052},B:{"12":0.07328,"13":0.0342,"14":0.0342,"15":0.03908,"16":0.01954,"17":0.11724,"18":0.3908,"81":0.01954,"83":0.00977,"84":0.02443,"85":0.02443,"86":0.00977,"87":0.01466,"88":0.01466,"89":0.1319,"90":3.39019,"91":0.22471,_:"79 80"},P:{"4":1.22078,"5.0-5.4":0.10259,"6.2-6.4":0.02052,"7.2-7.4":0.19491,"8.2":0.03078,"9.2":0.08207,"10.1":0.21543,"11.1-11.2":0.11285,"12.0":0.21543,"13.0":0.50267,"14.0":0.96431},I:{"0":0,"3":0,"4":0.0045,"2.1":0,"2.2":0,"2.3":0,"4.1":0.07912,"4.2-4.3":0.08901,"4.4":0,"4.4.3-4.4.4":0.2468},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00797,"11":0.96415,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.00512},N:{_:"10 11"},S:{"2.5":0.07673},R:{_:"0"},M:{"0":0.15857},Q:{"10.4":0.10742},O:{"0":0.53196},H:{"0":2.52297},L:{"0":44.60152}}; +module.exports={C:{"38":0.00909,"41":0.00909,"43":0.00455,"45":0.00455,"47":0.10003,"52":0.05456,"59":0.00909,"60":0.00909,"64":0.01364,"68":0.00455,"72":0.02274,"78":0.15915,"85":0.00455,"88":0.03183,"89":1.23678,"90":0.59566,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 49 50 51 53 54 55 56 57 58 61 62 63 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 86 87 91 92 3.5 3.6"},D:{"11":0.00455,"18":0.00909,"25":0.00455,"26":0.00909,"33":0.01364,"38":0.00909,"39":0.01364,"40":0.10913,"42":0.00909,"43":0.10458,"44":0.03638,"46":0.03183,"47":0.01364,"48":0.05456,"49":0.05456,"50":0.05002,"53":0.05911,"55":0.01819,"56":0.02274,"57":0.00909,"58":0.01364,"59":0.00909,"60":0.00455,"62":0.00455,"63":0.08185,"64":0.00909,"65":0.01819,"66":0.00455,"67":0.00909,"69":0.16369,"70":0.00909,"71":0.02274,"72":0.01364,"73":0.00909,"74":0.01819,"75":0.02728,"76":0.02728,"77":0.01364,"78":0.01364,"79":0.10458,"80":0.03183,"81":0.04547,"83":0.07275,"84":0.02728,"85":0.10003,"86":0.11822,"87":0.31829,"88":0.10458,"89":0.62294,"90":0.52291,"91":18.12889,"92":4.90621,"93":0.01364,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 27 28 29 30 31 32 34 35 36 37 41 45 51 52 54 61 68 94 95"},F:{"42":0.02274,"68":0.00455,"70":0.00909,"75":0.00909,"76":0.08185,"77":1.53689,_:"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 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00484,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0029,"5.0-5.1":0.02902,"6.0-6.1":0.01257,"7.0-7.1":0.2157,"8.1-8.4":0.04063,"9.0-9.2":0.0029,"9.3":0.82798,"10.0-10.2":0.05223,"10.3":0.40625,"11.0-11.2":0.19249,"11.3-11.4":0.11897,"12.0-12.1":0.04353,"12.2-12.4":0.55618,"13.0-13.1":0.02999,"13.2":0.00774,"13.3":0.13155,"13.4-13.7":0.26697,"14.0-14.4":1.50314,"14.5-14.7":3.70271},E:{"4":0,"8":0.00455,"11":0.00455,"12":0.00455,"13":0.03183,"14":0.16369,"15":0.00455,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00455,"10.1":0.10913,"11.1":0.01364,"12.1":0.06366,"13.1":0.11822,"14.1":0.35921},B:{"12":0.09549,"13":0.02274,"14":0.02274,"15":0.02274,"16":0.06821,"17":0.06821,"18":0.3092,"84":0.05911,"85":0.01819,"86":0.00909,"87":0.00909,"88":0.00909,"89":0.0773,"90":0.12277,"91":3.48755,"92":0.83665,_:"79 80 81 83"},P:{"4":1.01443,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.1255,"8.2":0.01046,"9.2":0.02092,"10.1":0.05229,"11.1-11.2":0.18824,"12.0":0.1987,"13.0":0.21962,"14.0":1.19221},I:{"0":0,"3":0,"4":0.00681,"2.1":0,"2.2":0,"2.3":0,"4.1":0.05638,"4.2-4.3":0.12583,"4.4":0,"4.4.3-4.4.4":0.24185},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.07309,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01091},N:{_:"10 11"},L:{"0":46.39578},S:{"2.5":0},R:{_:"0"},M:{"0":0.11999},Q:{"10.4":0.08181},O:{"0":0.5454},H:{"0":2.47848}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js index d6edae1d590ec2..4e8c137e289560 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js @@ -1 +1 @@ -module.exports={C:{"52":0.07722,"53":0.00429,"59":0.01287,"66":0.01287,"68":0.00429,"72":0.00429,"73":0.00429,"75":0.00429,"76":0.00429,"78":0.05148,"79":0.00858,"80":0.00858,"82":0.00858,"84":0.01716,"85":0.02145,"86":0.01716,"87":0.0429,"88":1.62162,"89":0.01287,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 65 67 69 70 71 74 77 81 83 90 91 3.5 3.6"},D:{"22":0.00429,"26":0.00429,"34":0.01287,"35":0.00429,"38":0.03432,"49":0.42471,"50":0.00429,"53":0.01287,"55":0.00429,"58":0.01287,"61":0.15015,"62":0.00429,"63":0.01716,"65":0.01287,"66":0.0429,"67":0.00858,"68":0.00429,"69":0.00858,"70":0.00858,"71":0.01287,"72":0.00858,"73":0.00858,"74":0.01716,"75":0.01716,"76":0.02145,"77":0.01716,"78":0.03003,"79":0.06864,"80":0.04719,"81":0.06006,"83":0.05148,"84":0.0429,"85":0.0429,"86":0.08151,"87":0.20592,"88":0.14586,"89":0.74217,"90":31.25694,"91":1.05105,"92":0.01287,_:"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 42 43 44 45 46 47 48 51 52 54 56 57 59 60 64 93 94"},F:{"36":0.00858,"73":0.20592,"74":0.00429,"75":0.75933,"76":0.43329,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00082,"3.2":0.00082,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03039,"6.0-6.1":0.00205,"7.0-7.1":0.00534,"8.1-8.4":0.00452,"9.0-9.2":0.00164,"9.3":0.05502,"10.0-10.2":0.00246,"10.3":0.03203,"11.0-11.2":0.0078,"11.3-11.4":0.04312,"12.0-12.1":0.01273,"12.2-12.4":0.04928,"13.0-13.1":0.01068,"13.2":0.00411,"13.3":0.03819,"13.4-13.7":0.15398,"14.0-14.4":2.83291,"14.5-14.6":0.5835},E:{"4":0,"13":0.01716,"14":0.36894,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.24453,"10.1":0.00429,"11.1":0.02574,"12.1":0.02145,"13.1":0.09438,"14.1":0.20163},B:{"15":0.00858,"16":0.00429,"17":0.01287,"18":0.03432,"84":0.00429,"86":0.00858,"88":0.00858,"89":0.03861,"90":1.66881,"91":0.08151,_:"12 13 14 79 80 81 83 85 87"},P:{"4":0.19569,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.1442,"8.2":0.03018,"9.2":0.0412,"10.1":0.0412,"11.1-11.2":0.20599,"12.0":0.0927,"13.0":0.39139,"14.0":2.14233},I:{"0":0,"3":0,"4":0.00021,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00322,"4.2-4.3":0.00344,"4.4":0,"4.4.3-4.4.4":0.03309},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00902,"11":0.25267,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.13704},Q:{"10.4":0},O:{"0":0.03997},H:{"0":0.19461},L:{"0":50.79563}}; +module.exports={C:{"17":0.00435,"48":0.00435,"52":0.09137,"53":0.00435,"59":0.0087,"65":0.00435,"66":0.0174,"68":0.0087,"69":0.00435,"72":0.01305,"73":0.0087,"75":0.00435,"76":0.00435,"78":0.03916,"79":0.01305,"80":0.00435,"82":0.0087,"84":0.03046,"85":0.0087,"86":0.01305,"87":0.0174,"88":0.03481,"89":1.13996,"90":0.58739,"91":0.0087,_:"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 51 54 55 56 57 58 60 61 62 63 64 67 70 71 74 77 81 83 92 3.5 3.6"},D:{"22":0.0087,"24":0.00435,"26":0.00435,"34":0.0087,"38":0.03046,"43":0.00435,"47":0.00435,"49":0.4177,"58":0.0087,"60":0.00435,"61":0.10442,"63":0.02176,"65":0.0087,"66":0.03916,"67":0.0087,"68":0.00435,"69":0.0087,"70":0.0087,"71":0.01305,"72":0.01305,"73":0.0087,"74":0.01305,"75":0.0174,"76":0.0174,"77":0.01305,"78":0.02176,"79":0.07832,"80":0.04351,"81":0.05221,"83":0.03481,"84":0.03916,"85":0.03481,"86":0.05656,"87":0.35678,"88":0.06527,"89":0.17839,"90":0.39594,"91":27.38084,"92":4.90358,"93":0.0087,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 53 54 55 56 57 59 62 64 94 95"},F:{"36":0.02176,"75":0.01305,"76":0.54388,"77":0.97462,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00081,"4.0-4.1":0.00041,"4.2-4.3":0,"5.0-5.1":0.02678,"6.0-6.1":0.00325,"7.0-7.1":0.00527,"8.1-8.4":0.00406,"9.0-9.2":0.00162,"9.3":0.05031,"10.0-10.2":0.00243,"10.3":0.03165,"11.0-11.2":0.00811,"11.3-11.4":0.04341,"12.0-12.1":0.01298,"12.2-12.4":0.03489,"13.0-13.1":0.01055,"13.2":0.00487,"13.3":0.03327,"13.4-13.7":0.12578,"14.0-14.4":0.46294,"14.5-14.7":2.95533},E:{"4":0,"13":0.0174,"14":0.10878,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1","5.1":0.06091,"10.1":0.00435,"11.1":0.0174,"12.1":0.02176,"13.1":0.08702,"14.1":0.4525},B:{"15":0.0087,"17":0.01305,"18":0.02611,"84":0.00435,"86":0.00435,"88":0.00435,"89":0.01305,"90":0.01305,"91":1.55766,"92":0.31327,_:"12 13 14 16 79 80 81 83 85 87"},P:{"4":0.18701,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.18701,"8.2":0.01046,"9.2":0.04156,"10.1":0.02078,"11.1-11.2":0.18701,"12.0":0.07272,"13.0":0.25973,"14.0":2.33756},I:{"0":0,"3":0,"4":0.0002,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00203,"4.2-4.3":0.00304,"4.4":0,"4.4.3-4.4.4":0.02862},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00469,"9":0.00938,"11":0.22523,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":50.89493},S:{"2.5":0},R:{_:"0"},M:{"0":0.14687},Q:{"10.4":0},O:{"0":0.03954},H:{"0":0.20323}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js index a80d177aacf56d..8677127305ef2c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js @@ -1 +1 @@ -module.exports={C:{"42":0.03009,"47":0.01003,"48":0.07523,"52":0.00502,"65":0.01505,"72":0.01505,"78":0.03511,"86":0.00502,"87":0.01505,"88":0.75225,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 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 84 85 89 90 91 3.5 3.6"},D:{"46":0.03009,"49":0.51153,"50":0.02006,"53":0.07021,"65":0.02508,"68":0.04012,"70":0.01505,"72":0.04012,"74":0.01505,"75":0.08024,"76":0.04514,"77":0.05517,"79":0.08526,"80":0.08024,"81":0.02006,"83":0.01003,"84":0.63691,"86":0.08526,"87":0.77231,"88":1.48444,"89":1.99096,"90":25.58152,"91":0.42126,"92":0.04514,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 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 51 52 54 55 56 57 58 59 60 61 62 63 64 66 67 69 71 73 78 85 93 94"},F:{"75":0.15547,"76":0.23571,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0284,"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.00947,"8.1-8.4":0.41791,"9.0-9.2":0.0027,"9.3":0.01217,"10.0-10.2":0.02164,"10.3":0.12578,"11.0-11.2":0.05004,"11.3-11.4":0.04734,"12.0-12.1":0.01217,"12.2-12.4":0.22316,"13.0-13.1":0.01217,"13.2":0.0257,"13.3":0.04057,"13.4-13.7":0.67218,"14.0-14.4":7.69013,"14.5-14.6":2.55751},E:{"4":0,"11":0.04514,"12":0.03009,"13":0.05517,"14":1.30892,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0652,"11.1":0.02006,"12.1":0.07021,"13.1":0.35105,"14.1":0.29589},B:{"15":0.02508,"17":0.01003,"18":0.39619,"80":0.01505,"85":0.07021,"88":0.04514,"89":0.10532,"90":7.81337,"91":0.44634,_:"12 13 14 16 79 81 83 84 86 87"},P:{"4":0.52397,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.32486,"8.2":0.03018,"9.2":0.15719,"10.1":0.05153,"11.1-11.2":0.45061,"12.0":0.04192,"13.0":0.29342,"14.0":1.58237},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00547,"4.4":0,"4.4.3-4.4.4":0.03441},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.18354,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.07478},R:{_:"0"},M:{"0":0.06979},Q:{"10.4":0.0349},O:{"0":0.15454},H:{"0":0.23125},L:{"0":37.30328}}; +module.exports={C:{"48":0.05744,"52":0.00957,"56":0.02394,"57":0.02872,"62":0.00957,"78":0.00957,"85":0.00479,"86":0.01915,"88":0.00479,"89":0.46434,"90":0.10531,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 87 91 92 3.5 3.6"},D:{"47":0.01436,"49":0.30158,"53":0.00479,"65":0.01436,"67":0.01436,"68":0.01436,"72":0.02394,"75":0.30158,"76":0.06702,"77":0.12446,"79":0.79943,"80":0.03351,"81":0.01915,"84":0.03351,"85":0.00957,"86":0.11968,"87":0.24414,"88":0.12446,"89":0.19148,"90":0.6989,"91":25.38067,"92":3.21208,"93":0.00957,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 61 62 63 64 66 69 70 71 73 74 78 83 94 95"},F:{"76":0.02872,"77":0.72762,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.04181,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.14933,"7.0-7.1":0,"8.1-8.4":0.06571,"9.0-9.2":0,"9.3":1.40523,"10.0-10.2":0,"10.3":0.22549,"11.0-11.2":0.04331,"11.3-11.4":0.04331,"12.0-12.1":0.02091,"12.2-12.4":0.02837,"13.0-13.1":0.00597,"13.2":0.00299,"13.3":0.0448,"13.4-13.7":0.73024,"14.0-14.4":1.83083,"14.5-14.7":8.73304},E:{"4":0,"13":0.03351,"14":0.24414,"15":0.01915,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01915,"11.1":0.01915,"12.1":0.1101,"13.1":0.34945,"14.1":1.13931},B:{"14":0.00479,"15":0.00479,"16":0.02394,"18":0.10531,"81":0.00957,"83":0.00957,"84":0.00957,"85":0.06223,"86":0.01436,"88":0.00957,"89":0.09095,"90":0.02394,"91":4.94976,"92":1.20154,_:"12 13 17 79 80 87"},P:{"4":0.54181,"5.0-5.4":0.3619,"6.2-6.4":0.02075,"7.2-7.4":0.15936,"8.2":0.05026,"9.2":0.14873,"10.1":0.0415,"11.1-11.2":0.77554,"12.0":0.10624,"13.0":0.19123,"14.0":1.99727},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.13452,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":38.6726},S:{"2.5":0.02607},R:{_:"0"},M:{"0":0.04692},Q:{"10.4":0.0417},O:{"0":0.13554},H:{"0":0.26157}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js index e10f209cea1c23..3ff04678a88a9c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js @@ -1 +1 @@ -module.exports={C:{"48":0.01669,"52":0.08346,"57":0.00556,"60":0.05564,"61":0.00556,"62":0.01113,"66":0.10572,"68":0.0612,"69":0.01113,"72":0.03895,"74":0.00556,"75":0.01113,"76":0.03895,"77":0.00556,"78":0.44512,"79":0.01113,"80":0.00556,"81":0.02226,"82":0.01113,"83":0.03338,"84":0.05564,"85":0.0612,"86":0.06677,"87":0.15023,"88":7.62824,"89":0.02226,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 58 59 63 64 65 67 70 71 73 90 91 3.5 3.6"},D:{"34":0.01113,"38":0.03338,"49":0.29489,"53":0.06677,"61":0.16692,"63":0.01113,"64":0.31158,"65":0.01113,"67":0.01669,"68":0.01669,"69":0.01669,"70":0.33384,"72":0.33384,"73":0.00556,"74":0.01669,"75":0.05008,"76":0.02226,"77":0.01113,"78":0.02226,"79":0.64542,"80":0.3394,"81":0.03895,"83":0.05564,"84":0.05564,"85":0.03338,"86":0.08346,"87":0.28933,"88":0.18361,"89":0.73445,"90":23.34654,"91":0.63986,"92":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 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 66 71 93 94"},F:{"36":0.00556,"46":0.00556,"49":0.01113,"73":0.36166,"74":0.01113,"75":1.174,"76":0.97926,_:"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 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00456,"6.0-6.1":0.00152,"7.0-7.1":0.00609,"8.1-8.4":0.01978,"9.0-9.2":0.01217,"9.3":0.14758,"10.0-10.2":0.00761,"10.3":0.14758,"11.0-11.2":0.05934,"11.3-11.4":0.06846,"12.0-12.1":0.03499,"12.2-12.4":0.20387,"13.0-13.1":0.06846,"13.2":0.03956,"13.3":0.19474,"13.4-13.7":0.48382,"14.0-14.4":11.02586,"14.5-14.6":2.20152},E:{"4":0,"8":0.00556,"11":0.00556,"12":0.01669,"13":0.12241,"14":3.37178,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01113,"10.1":0.20587,"11.1":0.12797,"12.1":0.14466,"13.1":0.63986,"14.1":1.42995},B:{"14":0.00556,"15":0.01113,"16":0.01113,"17":0.02226,"18":0.14466,"81":0.01669,"84":0.01113,"85":0.01669,"86":0.02782,"87":0.01113,"88":0.04451,"89":0.17805,"90":6.51544,"91":0.26151,_:"12 13 79 80 83"},P:{"4":0.23168,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.04374,"8.2":0.03018,"9.2":0.04212,"10.1":0.01053,"11.1-11.2":0.16849,"12.0":0.10531,"13.0":0.45283,"14.0":4.086},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.00233,"4.4":0,"4.4.3-4.4.4":0.04125},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00607,"9":0.00607,"11":0.98381,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.55894},Q:{"10.4":0.00444},O:{"0":0.09316},H:{"0":0.24358},L:{"0":24.41811}}; +module.exports={C:{"45":0.00527,"48":0.01581,"52":0.08432,"53":0.00527,"56":0.00527,"57":0.00527,"59":0.01054,"60":0.1054,"61":0.02635,"62":0.02108,"63":0.01054,"66":0.03162,"68":0.0527,"72":0.02108,"74":0.00527,"76":0.01581,"77":0.00527,"78":0.77996,"79":0.00527,"80":0.00527,"81":0.01581,"82":0.00527,"83":0.01581,"84":0.04216,"85":0.04216,"86":0.02635,"87":0.04216,"88":0.33201,"89":4.64287,"90":2.62973,"91":0.01054,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 54 55 58 64 65 67 69 70 71 73 75 92 3.5 3.6"},D:{"34":0.01054,"36":0.02108,"38":0.03689,"49":0.14756,"53":0.02108,"61":0.40579,"64":0.23715,"65":0.01581,"67":0.01581,"68":0.01581,"69":0.02108,"70":0.25823,"71":0.04216,"72":0.2635,"74":0.01054,"75":0.04743,"76":0.01581,"77":0.01054,"78":0.01581,"79":0.61132,"80":0.28458,"81":0.03689,"83":0.03689,"84":0.04743,"85":0.08432,"86":0.06851,"87":0.49538,"88":0.08432,"89":0.17391,"90":0.43214,"91":17.66504,"92":3.82075,"93":0.01054,_:"4 5 6 7 8 9 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 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 63 66 73 94 95"},F:{"36":0.01054,"46":0.00527,"75":0.01054,"76":0.50592,"77":1.64424,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00485,"6.0-6.1":0.00323,"7.0-7.1":0.0097,"8.1-8.4":0.0307,"9.0-9.2":0.0097,"9.3":0.14381,"10.0-10.2":0.0097,"10.3":0.15512,"11.0-11.2":0.05171,"11.3-11.4":0.05171,"12.0-12.1":0.04201,"12.2-12.4":0.18421,"13.0-13.1":0.05817,"13.2":0.03716,"13.3":0.17128,"13.4-13.7":0.49122,"14.0-14.4":2.40924,"14.5-14.7":11.81029},E:{"4":0,"8":0.00527,"11":0.00527,"12":0.01581,"13":0.12121,"14":1.03292,"15":0.02108,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01581,"10.1":0.21607,"11.1":0.11067,"12.1":0.11594,"13.1":0.51119,"14.1":3.60468},B:{"15":0.00527,"16":0.00527,"17":0.01581,"18":0.10013,"81":0.01581,"83":0.00527,"84":0.01054,"85":0.03162,"86":0.02108,"87":0.01054,"88":0.01581,"89":0.04216,"90":0.08959,"91":5.36486,"92":1.18048,_:"12 13 14 79 80"},P:{"4":0.21059,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.17321,"8.2":0.01046,"9.2":0.01053,"10.1":0.0917,"11.1-11.2":0.13688,"12.0":0.10529,"13.0":0.24218,"14.0":4.80141},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00208,"4.2-4.3":0.00249,"4.4":0,"4.4.3-4.4.4":0.04275},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02912,"9":0.01747,"11":0.94943,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.42222},S:{"2.5":0},R:{_:"0"},M:{"0":0.81846},Q:{"10.4":0.00473},O:{"0":0.09462},H:{"0":0.25978}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js index b1cdc87f095242..c27f55337f6300 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js @@ -1 +1 @@ -module.exports={C:{"48":0.01068,"52":0.04273,"54":0.00534,"56":0.01068,"60":0.00534,"68":0.01068,"72":0.00534,"75":0.00534,"78":0.11216,"81":0.00534,"82":0.04807,"83":0.00534,"84":0.01602,"85":0.02136,"86":0.03205,"87":0.09614,"88":2.37675,"89":0.02136,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 76 77 79 80 90 91 3.5 3.6"},D:{"26":0.01068,"34":0.01602,"38":0.08546,"47":0.00534,"48":0.01068,"49":0.37387,"53":0.09614,"55":0.01068,"56":0.01068,"57":0.00534,"58":0.00534,"59":0.01602,"60":0.01602,"61":0.09614,"63":0.01602,"64":0.03739,"65":0.05341,"66":0.01602,"67":0.04273,"68":0.04273,"69":0.04273,"70":0.04807,"71":0.02671,"72":0.05341,"73":0.04273,"74":0.04273,"75":0.04273,"76":0.04273,"77":0.02136,"78":0.04807,"79":0.16557,"80":0.17625,"81":0.08546,"83":0.08546,"84":0.08012,"85":0.0908,"86":0.26171,"87":0.55546,"88":0.66228,"89":2.08833,"90":26.21363,"91":0.55012,"92":0.02136,_:"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 39 40 41 42 43 44 45 46 50 51 52 54 62 93 94"},F:{"46":0.02136,"73":0.03739,"74":0.00534,"75":0.17625,"76":0.18159,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00496,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01985,"6.0-6.1":0.03473,"7.0-7.1":0.04713,"8.1-8.4":0.08682,"9.0-9.2":0.03721,"9.3":0.46141,"10.0-10.2":0.04961,"10.3":0.46637,"11.0-11.2":0.1538,"11.3-11.4":0.16621,"12.0-12.1":0.16869,"12.2-12.4":0.57304,"13.0-13.1":0.08682,"13.2":0.04465,"13.3":0.29272,"13.4-13.7":0.8856,"14.0-14.4":17.55579,"14.5-14.6":2.28967},E:{"4":0,"8":0.01602,"10":0.00534,"11":0.02671,"12":0.03739,"13":0.24569,"14":6.28636,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.02136,"10.1":0.06409,"11.1":0.14421,"12.1":0.26705,"13.1":1.07888,"14.1":1.45809},B:{"14":0.00534,"16":0.01602,"17":0.02136,"18":0.12818,"80":0.00534,"84":0.01602,"85":0.01068,"86":0.02136,"87":0.02136,"88":0.03205,"89":0.14421,"90":4.73213,"91":0.07477,_:"12 13 15 79 81 83"},P:{"4":0.26316,"5.0-5.4":0.02061,"6.2-6.4":0.01048,"7.2-7.4":0.04374,"8.2":0.03018,"9.2":0.03289,"10.1":0.03289,"11.1-11.2":0.09868,"12.0":0.08772,"13.0":0.36184,"14.0":2.8399},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00254,"4.2-4.3":0.00572,"4.4":0,"4.4.3-4.4.4":0.03366},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01019,"11":1.10074,_:"7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.4099},Q:{"10.4":0.03726},O:{"0":0.16769},H:{"0":0.22931},L:{"0":19.47742}}; +module.exports={C:{"34":0.01621,"48":0.01081,"52":0.03242,"56":0.0054,"60":0.0054,"65":0.0054,"70":0.0054,"78":0.10806,"82":0.03782,"84":0.01621,"85":0.01081,"86":0.01081,"87":0.01081,"88":0.07024,"89":1.49663,"90":0.88609,"91":0.01081,_:"2 3 4 5 6 7 8 9 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 57 58 59 61 62 63 64 66 67 68 69 71 72 73 74 75 76 77 79 80 81 83 92 3.5 3.6"},D:{"26":0.02161,"34":0.03242,"38":0.12967,"47":0.0054,"48":0.01081,"49":0.29176,"53":0.04322,"55":0.01081,"56":0.01621,"57":0.01621,"58":0.0054,"59":0.01621,"60":0.02161,"61":0.02161,"62":0.0054,"63":0.01081,"64":0.03782,"65":0.04863,"66":0.01621,"67":0.03782,"68":0.02161,"69":0.03782,"70":0.04863,"71":0.02161,"72":0.04863,"73":0.04322,"74":0.03782,"75":0.03782,"76":0.03242,"77":0.02161,"78":0.03782,"79":0.30797,"80":0.09725,"81":0.07024,"83":0.06484,"84":0.04863,"85":0.04322,"86":0.11346,"87":0.45385,"88":0.16749,"89":0.38902,"90":1.22648,"91":23.20048,"92":5.01398,"93":0.02702,_:"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 39 40 41 42 43 44 45 46 50 51 52 54 94 95"},F:{"36":0.0054,"40":0.0054,"46":0.07024,"74":0.0054,"75":0.0054,"76":0.09725,"77":0.31878,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0.00248,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03974,"6.0-6.1":0.0298,"7.0-7.1":0.03725,"8.1-8.4":0.06954,"9.0-9.2":0.03477,"9.3":0.40234,"10.0-10.2":0.04967,"10.3":0.44704,"11.0-11.2":0.1366,"11.3-11.4":0.15398,"12.0-12.1":0.14653,"12.2-12.4":0.45201,"13.0-13.1":0.08196,"13.2":0.03725,"13.3":0.24836,"13.4-13.7":0.76991,"14.0-14.4":3.26094,"14.5-14.7":17.07211},E:{"4":0,"8":0.02702,"10":0.0054,"11":0.02161,"12":0.03242,"13":0.22152,"14":1.75057,"15":0.02702,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.02161,"10.1":0.06484,"11.1":0.14048,"12.1":0.23233,"13.1":0.94553,"14.1":6.37554},B:{"15":0.0054,"16":0.0054,"17":0.01621,"18":0.11887,"84":0.01621,"85":0.01081,"86":0.01621,"87":0.01081,"88":0.01621,"89":0.02702,"90":0.04322,"91":4.10088,"92":1.086,_:"12 13 14 79 80 81 83"},P:{"4":0.71156,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.17321,"8.2":0.01046,"9.2":0.02189,"10.1":0.01095,"11.1-11.2":0.08758,"12.0":0.06568,"13.0":0.17515,"14.0":2.80246},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00306,"4.2-4.3":0.00552,"4.4":0,"4.4.3-4.4.4":0.02819},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01191,"11":1.03627,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.88783},S:{"2.5":0},R:{_:"0"},M:{"0":0.39534},Q:{"10.4":0.04597},O:{"0":0.1563},H:{"0":0.2089}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js index 4cbb39bd44c89e..6ed39654e383a2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js @@ -1 +1 @@ -module.exports={C:{"4":0.00385,"48":0.01154,"52":0.00385,"57":0.00385,"65":0.00769,"77":0.00385,"78":0.06925,"82":0.03847,"87":0.05001,"88":1.21181,"89":0.02693,_:"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 49 50 51 53 54 55 56 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 79 80 81 83 84 85 86 90 91 3.5 3.6"},D:{"49":0.13465,"53":0.00769,"54":0.01154,"55":0.00769,"58":0.07694,"60":0.01154,"61":0.00769,"63":0.00385,"65":0.00769,"66":0.00385,"67":0.00385,"69":0.00385,"70":0.01924,"72":0.00385,"74":0.09618,"76":0.00769,"78":0.01154,"79":0.02308,"80":0.03078,"81":0.00769,"83":0.06925,"84":0.03078,"85":0.03078,"86":0.14619,"87":0.34623,"88":0.2616,"89":1.16949,"90":20.59684,"91":0.81556,"92":0.01154,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 56 57 59 62 64 68 71 73 75 77 93 94"},F:{"73":0.01154,"75":0.24236,"76":0.22313,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00934,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00233,"9.3":0.10739,"10.0-10.2":0.007,"10.3":0.1284,"11.0-11.2":0.01167,"11.3-11.4":0.07704,"12.0-12.1":0.03969,"12.2-12.4":0.17275,"13.0-13.1":0.02568,"13.2":0.00467,"13.3":0.10739,"13.4-13.7":0.60697,"14.0-14.4":17.69557,"14.5-14.6":3.70253},E:{"4":0,"12":0.01924,"13":0.08079,"14":3.22763,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02308,"11.1":0.14234,"12.1":0.13465,"13.1":0.78479,"14.1":1.19257},B:{"13":0.00769,"14":0.01539,"16":0.01154,"17":0.02693,"18":0.18466,"80":0.00769,"84":0.04616,"85":0.03847,"86":0.02693,"87":0.07309,"88":0.01539,"89":0.11541,"90":4.23555,"91":0.24621,_:"12 15 79 81 83"},P:{"4":0.07127,"5.0-5.4":0.01035,"6.2-6.4":0.02052,"7.2-7.4":0.12218,"8.2":0.03078,"9.2":0.09164,"10.1":0.01018,"11.1-11.2":0.48873,"12.0":0.224,"13.0":0.79419,"14.0":8.49176},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.5155,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.49839},Q:{"10.4":0},O:{"0":0.03077},H:{"0":0.12233},L:{"0":28.89641}}; +module.exports={C:{"48":0.0177,"52":0.02124,"69":0.00708,"76":0.00354,"78":0.04248,"80":0.00708,"82":0.00708,"87":0.01416,"88":0.02124,"89":0.708,"90":0.3717,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 70 71 72 73 74 75 77 79 81 83 84 85 86 91 92 3.5 3.6"},D:{"22":0.03894,"38":0.00708,"49":0.08496,"53":0.01416,"59":0.00354,"60":0.03186,"63":0.01416,"65":0.00708,"70":0.03894,"72":0.00354,"74":0.02832,"76":0.0177,"77":0.00354,"78":0.01416,"79":0.01062,"80":0.00354,"81":0.01062,"83":0.0354,"84":0.0177,"85":0.00708,"86":0.03186,"87":0.10266,"88":0.09912,"89":0.20532,"90":0.35046,"91":16.09992,"92":3.2922,"93":0.06726,"94":0.00708,_:"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 56 57 58 61 62 64 66 67 68 69 71 73 75 95"},F:{"76":0.04602,"77":0.3009,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01878,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07512,"10.0-10.2":0.01073,"10.3":0.12341,"11.0-11.2":0.01073,"11.3-11.4":0.0322,"12.0-12.1":0.03756,"12.2-12.4":0.19585,"13.0-13.1":0.01878,"13.2":0.01073,"13.3":0.09122,"13.4-13.7":0.48024,"14.0-14.4":3.00487,"14.5-14.7":22.31117},E:{"4":0,"12":0.01416,"13":0.06726,"14":1.15404,"15":0.02832,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0177,"11.1":0.0531,"12.1":0.0885,"13.1":0.72924,"14.1":3.42318},B:{"16":0.00708,"17":0.02124,"18":0.13098,"84":0.06018,"85":0.11682,"86":0.02478,"88":0.00354,"89":0.02832,"90":0.06018,"91":3.6285,"92":1.14342,_:"12 13 14 15 79 80 81 83 87"},P:{"4":0.13245,"5.0-5.4":0.05229,"6.2-6.4":0.09412,"7.2-7.4":0.17321,"8.2":0.01046,"9.2":0.0917,"10.1":0.0917,"11.1-11.2":0.25472,"12.0":0.12226,"13.0":0.32604,"14.0":9.16977},I:{"0":0,"3":0,"4":0.00201,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00057,"4.4":0,"4.4.3-4.4.4":0.01034},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.48852,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":28.6981},S:{"2.5":0},R:{_:"0"},M:{"0":0.39406},Q:{"10.4":0.00646},O:{"0":0.04522},H:{"0":0.1529}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js index 0e73a2c716150c..1ecdf350f46823 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js @@ -1 +1 @@ -module.exports={C:{"48":0.01768,"52":0.22397,"61":0.01179,"78":0.08252,"85":0.01768,"86":0.01179,"87":0.16503,"88":3.47746,"89":0.01179,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 82 83 84 90 91 3.5 3.6"},D:{"49":0.06483,"53":0.01179,"67":0.0943,"76":0.11788,"78":0.01179,"79":0.22397,"80":0.05305,"81":0.01768,"85":0.01179,"86":0.04126,"87":0.14735,"88":0.05305,"89":2.47548,"90":28.52696,"91":0.61887,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 66 68 69 70 71 72 73 74 75 77 83 84 92 93 94"},F:{"73":0.10609,"75":0.30059,"76":0.18861,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00277,"8.1-8.4":0,"9.0-9.2":0.02634,"9.3":0.04437,"10.0-10.2":0.00416,"10.3":0.83884,"11.0-11.2":0.06933,"11.3-11.4":0.04576,"12.0-12.1":1.3269,"12.2-12.4":0.4631,"13.0-13.1":0.26483,"13.2":0,"13.3":0.11231,"13.4-13.7":0.16638,"14.0-14.4":8.56592,"14.5-14.6":1.21321},E:{"4":0,"12":0.00589,"13":0.06483,"14":8.7408,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.1945,"10.1":0.01179,"11.1":0.1002,"12.1":0.12967,"13.1":1.30257,"14.1":2.40475},B:{"17":0.05894,"18":0.13556,"87":0.01179,"88":0.01179,"89":0.05305,"90":6.58949,"91":0.18861,_:"12 13 14 15 16 79 80 81 83 84 85 86"},P:{"4":0.09319,"5.0-5.4":0.40237,"6.2-6.4":0.31184,"7.2-7.4":0.0233,"8.2":0.03018,"9.2":0.0233,"10.1":0.09053,"11.1-11.2":0.46273,"12.0":0.0233,"13.0":0.24461,"14.0":1.88701},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.04105},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.41847,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.36535},Q:{"10.4":0},O:{"0":0.23399},H:{"0":0.03498},L:{"0":25.69702}}; +module.exports={C:{"52":0.16405,"56":0.0293,"57":0.00586,"78":0.0293,"85":0.10546,"88":0.06445,"89":1.92175,"90":1.27726,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 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 91 92 3.5 3.6"},D:{"49":0.0293,"67":0.04101,"75":0.01172,"76":0.77925,"78":0.01172,"79":0.24022,"81":0.03515,"83":0.01172,"87":0.01758,"89":0.0293,"90":0.0996,"91":29.73443,"92":5.39614,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 72 73 74 77 80 84 85 86 88 93 94 95"},F:{"75":0.01758,"76":0.17577,"77":0.21678,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00509,"8.1-8.4":0.00679,"9.0-9.2":0.01019,"9.3":0.15448,"10.0-10.2":0.01019,"10.3":0.79788,"11.0-11.2":0.04244,"11.3-11.4":0.01188,"12.0-12.1":1.8589,"12.2-12.4":0.12393,"13.0-13.1":0.32085,"13.2":0.0034,"13.3":0.04244,"13.4-13.7":0.25804,"14.0-14.4":2.17296,"14.5-14.7":10.3012},E:{"4":0,"12":0.01172,"13":0.11132,"14":0.80268,"15":0.01758,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.03515,"10.1":0.04101,"11.1":0.05273,"12.1":0.07617,"13.1":1.03118,"14.1":6.04649},B:{"15":0.01172,"17":0.05273,"18":0.07031,"88":0.00586,"91":6.89604,"92":1.48233,_:"12 13 14 16 79 80 81 83 84 85 86 87 89 90"},P:{"4":0.01151,"5.0-5.4":0.3619,"6.2-6.4":0.18095,"7.2-7.4":0.67354,"8.2":0.05026,"9.2":0.54285,"10.1":0.08042,"11.1-11.2":0.39206,"12.0":0.03453,"13.0":0.16112,"14.0":3.11887},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00176,"4.4":0,"4.4.3-4.4.4":0.01481},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19921,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":21.79756},S:{"2.5":0},R:{_:"0"},M:{"0":0.50118},Q:{"10.4":0},O:{"0":0.32722},H:{"0":0.01961}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js index 3c565002cfc38f..99f776e5adc624 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js @@ -1 +1 @@ -module.exports={C:{"34":0.00402,"52":0.00402,"68":0.08851,"75":0.00402,"78":0.01609,"80":0.00402,"84":0.01207,"86":0.00402,"87":0.01207,"88":0.48678,"89":0.00805,_:"2 3 4 5 6 7 8 9 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 76 77 79 81 82 83 85 90 91 3.5 3.6"},D:{"22":0.01207,"26":0.00402,"34":0.00402,"38":0.02414,"48":0.00402,"49":0.08448,"53":0.08851,"55":0.00402,"56":0.00402,"57":0.00402,"60":0.00402,"61":0.01207,"62":0.00402,"63":0.00402,"65":0.02414,"66":0.02816,"67":0.02012,"68":0.08046,"69":0.02012,"70":0.00805,"71":0.01207,"72":0.01609,"73":0.00805,"74":0.03621,"75":0.00805,"76":0.00805,"77":0.03218,"78":0.00805,"79":0.1931,"80":0.05632,"81":0.01609,"83":0.08851,"84":0.03621,"85":0.06035,"86":0.07241,"87":0.24138,"88":0.14483,"89":0.74426,"90":24.97076,"91":0.90518,"92":0.02414,_:"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 47 50 51 52 54 58 59 64 93 94"},F:{"28":0.00805,"36":0.00402,"40":0.00402,"46":0.00805,"62":0.01609,"73":0.13678,"74":0.01207,"75":1.17472,"76":1.52472,_:"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 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00074,"5.0-5.1":0.01252,"6.0-6.1":0.00147,"7.0-7.1":0.04494,"8.1-8.4":0.00442,"9.0-9.2":0.00516,"9.3":0.05599,"10.0-10.2":0.01695,"10.3":0.13409,"11.0-11.2":0.03831,"11.3-11.4":0.06778,"12.0-12.1":0.0221,"12.2-12.4":0.14072,"13.0-13.1":0.02873,"13.2":0.01989,"13.3":0.10536,"13.4-13.7":0.33375,"14.0-14.4":4.69457,"14.5-14.6":1.09113},E:{"4":0,"13":0.02012,"14":0.63563,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":3.06955,"9.1":0.03218,"10.1":0.01207,"11.1":0.20517,"12.1":0.04425,"13.1":0.13276,"14.1":0.15287},B:{"18":0.02012,"84":0.00402,"89":0.01207,"90":0.78851,"91":0.05632,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.24454,"5.0-5.4":0.02061,"6.2-6.4":0.04076,"7.2-7.4":0.07132,"8.2":0.03018,"9.2":0.07132,"10.1":0.02038,"11.1-11.2":0.25473,"12.0":0.15284,"13.0":0.79474,"14.0":3.04652},I:{"0":0,"3":0,"4":0.00042,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00381,"4.2-4.3":0.01017,"4.4":0,"4.4.3-4.4.4":0.04535},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01207,"9":0.00402,"11":0.13276,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.05378},Q:{"10.4":0},O:{"0":0.23904},H:{"0":0.68458},L:{"0":48.95872}}; +module.exports={C:{"52":0.00782,"65":0.00782,"68":0.06647,"78":0.01173,"84":0.01955,"88":0.00782,"89":0.32062,"90":0.16031,"91":0.01955,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 92 3.5 3.6"},D:{"22":0.01955,"26":0.00782,"34":0.00782,"38":0.05865,"49":0.0782,"53":0.0782,"56":0.01564,"58":0.00391,"59":0.01564,"61":0.00782,"63":0.00782,"65":0.02346,"68":0.04692,"69":0.01564,"70":0.00782,"71":0.00782,"72":0.01564,"73":0.00782,"74":0.01955,"76":0.01955,"77":0.01173,"78":0.00391,"79":0.47702,"80":0.06256,"81":0.00782,"83":0.05083,"84":0.01955,"85":0.04692,"86":0.04301,"87":0.12121,"88":0.05083,"89":0.12512,"90":0.30498,"91":21.69659,"92":5.32151,"93":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 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 60 62 64 66 67 75 94 95"},F:{"28":0.01564,"36":0.00782,"40":0.00391,"46":0.01564,"58":0.00391,"73":0.00391,"74":0.00391,"75":0.01564,"76":0.34017,"77":2.34991,_:"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 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01781,"6.0-6.1":0,"7.0-7.1":0.04049,"8.1-8.4":0.00243,"9.0-9.2":0.00567,"9.3":0.06883,"10.0-10.2":0.02591,"10.3":0.14008,"11.0-11.2":0.04696,"11.3-11.4":0.06073,"12.0-12.1":0.02105,"12.2-12.4":0.09555,"13.0-13.1":0.02429,"13.2":0.01134,"13.3":0.08907,"13.4-13.7":0.2996,"14.0-14.4":1.63808,"14.5-14.7":4.93935},E:{"4":0,"13":0.01955,"14":0.31671,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1","5.1":0.19159,"9.1":0.0391,"10.1":0.00782,"11.1":0.26588,"12.1":0.01564,"13.1":0.11339,"14.1":0.46138},B:{"14":0.00391,"15":0.00391,"18":0.02737,"84":0.00391,"89":0.00782,"90":0.00391,"91":0.69989,"92":0.19159,_:"12 13 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.23445,"5.0-5.4":0.05229,"6.2-6.4":0.01019,"7.2-7.4":0.09174,"8.2":0.01046,"9.2":0.07135,"10.1":0.02039,"11.1-11.2":0.29561,"12.0":0.12232,"13.0":0.49947,"14.0":3.90406},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.00723,"4.4":0,"4.4.3-4.4.4":0.03959},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00782,"11":0.06647,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":49.89273},S:{"2.5":0},R:{_:"0"},M:{"0":0.05481},Q:{"10.4":0},O:{"0":0.31668},H:{"0":0.65728}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js index 8f4ac7f73439ed..2386d83911f87e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js @@ -1 +1 @@ -module.exports={C:{"15":0.04479,"36":0.00407,"45":0.41127,"48":0.00814,"50":0.06515,"52":0.24839,"54":0.01629,"64":0.00407,"66":0.00814,"68":0.01629,"69":0.00814,"72":0.00407,"76":0.01629,"77":0.01222,"78":0.05294,"81":0.00814,"84":0.01629,"85":0.01222,"86":0.03665,"87":0.05294,"88":3.47749,"89":0.03665,_:"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 34 35 37 38 39 40 41 42 43 44 46 47 49 51 53 55 56 57 58 59 60 61 62 63 65 67 70 71 73 74 75 79 80 82 83 90 91 3.5 3.6"},D:{"11":0.01222,"22":0.00814,"26":0.00814,"34":0.00814,"38":0.01629,"43":0.01222,"47":0.00814,"49":0.4072,"50":0.00407,"53":0.08144,"55":0.00407,"56":0.01629,"58":0.02036,"60":0.00814,"61":0.2036,"62":0.00814,"63":0.01629,"65":0.00407,"66":0.01629,"67":0.00814,"68":0.0285,"69":0.00814,"70":0.02443,"71":0.00814,"72":0.00814,"73":0.00407,"74":0.00814,"75":0.02036,"76":0.01629,"77":0.03665,"78":0.01222,"79":0.12216,"80":2.61015,"81":0.04479,"83":0.01629,"84":0.02036,"85":0.03665,"86":0.05294,"87":0.15881,"88":0.14659,"89":0.81847,"90":23.31627,"91":0.80218,"92":0.04479,_:"4 5 6 7 8 9 10 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 51 52 54 57 59 64 93 94"},F:{"32":0.00407,"36":0.01629,"40":0.01629,"46":0.00814,"69":0.00407,"73":0.08144,"74":0.00814,"75":0.59044,"76":0.65152,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00334,"6.0-6.1":0.00095,"7.0-7.1":0.02957,"8.1-8.4":0.00095,"9.0-9.2":0,"9.3":0.12258,"10.0-10.2":0.01717,"10.3":0.11829,"11.0-11.2":0.01335,"11.3-11.4":0.03959,"12.0-12.1":0.02957,"12.2-12.4":0.07441,"13.0-13.1":0.00715,"13.2":0.00286,"13.3":0.03339,"13.4-13.7":0.16455,"14.0-14.4":3.136,"14.5-14.6":0.53372},E:{"4":0,"8":0.01222,"12":0.04072,"13":0.03258,"14":0.37462,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01629,"11.1":0.01222,"12.1":0.02443,"13.1":0.07737,"14.1":0.17917},B:{"17":0.01222,"18":0.0285,"84":0.00407,"85":0.08551,"86":0.00407,"87":0.00814,"88":0.02443,"89":0.02443,"90":1.36819,"91":0.10994,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.28616,"5.0-5.4":0.01021,"6.2-6.4":0.02044,"7.2-7.4":0.06132,"8.2":0.01021,"9.2":0.08176,"10.1":0.03066,"11.1-11.2":0.28616,"12.0":0.17374,"13.0":0.48033,"14.0":3.68937},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00528,"4.2-4.3":0.01583,"4.4":0,"4.4.3-4.4.4":0.10931},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01513,"11":0.32284,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.21341},Q:{"10.4":0},O:{"0":0.01778},H:{"0":0.26939},L:{"0":51.32333}}; +module.exports={C:{"15":0.0811,"36":0.00811,"45":0.55554,"52":0.38117,"54":0.02839,"66":0.00811,"68":0.00811,"69":0.02433,"72":0.00406,"76":0.00811,"77":0.00811,"78":0.0365,"81":0.00406,"83":0.00406,"84":0.02028,"85":0.01217,"86":0.00811,"87":0.00811,"88":0.18248,"89":2.38029,"90":0.91643,"91":0.00811,_:"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 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 67 70 71 73 74 75 79 80 82 92 3.5 3.6"},D:{"11":0.02028,"22":0.00811,"26":0.00406,"34":0.00406,"35":0.00811,"38":0.02433,"43":0.00811,"47":0.00811,"49":0.39334,"53":0.02839,"55":0.00406,"56":0.01622,"58":0.00406,"59":0.00406,"60":0.00811,"61":0.53121,"62":0.00406,"63":0.02028,"65":0.00406,"66":0.01217,"67":0.00811,"68":0.02433,"69":0.00811,"70":0.01622,"71":0.00811,"72":0.00811,"73":0.01217,"75":0.02433,"76":0.02839,"77":0.01622,"78":0.00811,"79":0.17437,"80":0.02433,"81":0.04055,"83":0.02433,"84":0.02839,"85":0.0365,"86":0.05272,"87":0.2433,"88":0.07299,"89":0.18653,"90":0.36901,"91":20.73727,"92":4.7038,"93":0.00811,_:"4 5 6 7 8 9 10 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 42 44 45 46 48 50 51 52 54 57 64 74 94 95"},F:{"28":0.00811,"36":0.01622,"40":0.01217,"46":0.00811,"76":0.33251,"77":1.38681,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00179,"6.0-6.1":0,"7.0-7.1":0.02388,"8.1-8.4":0.00298,"9.0-9.2":0,"9.3":0.12536,"10.0-10.2":0.02507,"10.3":0.09551,"11.0-11.2":0.01075,"11.3-11.4":0.02985,"12.0-12.1":0.02388,"12.2-12.4":0.06865,"13.0-13.1":0.00836,"13.2":0.00955,"13.3":0.04179,"13.4-13.7":0.19282,"14.0-14.4":0.9211,"14.5-14.7":3.97036},E:{"4":0,"8":0.01217,"12":0.00811,"13":0.01622,"14":0.19059,_:"0 5 6 7 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00811,"11.1":0.01217,"12.1":0.01622,"13.1":0.06083,"14.1":0.50688},B:{"12":0.00406,"18":0.02433,"84":0.00811,"85":0.04461,"86":0.00811,"88":0.00811,"89":0.01217,"90":0.00811,"91":1.28138,"92":0.34062,_:"13 14 15 16 17 79 80 81 83 87"},P:{"4":0.33664,"5.0-5.4":0.01019,"6.2-6.4":0.0102,"7.2-7.4":0.07141,"8.2":0.07596,"9.2":0.06121,"10.1":0.04081,"11.1-11.2":0.27544,"12.0":0.12242,"13.0":0.27544,"14.0":4.01933},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00523,"4.2-4.3":0.01421,"4.4":0,"4.4.3-4.4.4":0.09944},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00505,"11":0.22203,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":50.63609},S:{"2.5":0},R:{_:"0"},M:{"0":0.23776},Q:{"10.4":0},O:{"0":0.03566},H:{"0":0.26449}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js index 3b5b842bd0f27b..17f0bb0565ca1e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js @@ -1 +1 @@ -module.exports={C:{"4":0.00951,"5":0.00951,"17":0.00951,"45":0.00476,"52":0.00951,"66":0.00951,"78":0.02853,"79":0.12839,"84":0.04755,"85":0.00951,"86":0.00476,"87":0.0428,"88":2.05892,"89":0.00951,_:"2 3 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 46 47 48 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 80 81 82 83 90 91 3.5 3.6"},D:{"34":0.00476,"49":0.03329,"53":0.00951,"62":0.00476,"63":0.00951,"65":0.01427,"66":0.01427,"68":0.01427,"74":0.79409,"75":0.00951,"76":0.05706,"77":0.00476,"79":0.05706,"80":0.02853,"81":0.01902,"83":0.09035,"84":0.00951,"85":0.0951,"86":0.04755,"87":0.18069,"88":0.26153,"89":0.83688,"90":27.38405,"91":0.951,"92":0.00476,_:"4 5 6 7 8 9 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 50 51 52 54 55 56 57 58 59 60 61 64 67 69 70 71 72 73 78 93 94"},F:{"71":0.02853,"72":0.11888,"73":0.24726,"75":0.60389,"76":0.31859,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0023,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02184,"6.0-6.1":0,"7.0-7.1":0.0931,"8.1-8.4":0.00345,"9.0-9.2":0.00115,"9.3":0.177,"10.0-10.2":0.00115,"10.3":0.10114,"11.0-11.2":0.01149,"11.3-11.4":0.02184,"12.0-12.1":0.10574,"12.2-12.4":0.14252,"13.0-13.1":0.01494,"13.2":0.00575,"13.3":0.2678,"13.4-13.7":0.29883,"14.0-14.4":7.03985,"14.5-14.6":2.32171},E:{"4":0,"12":0.00476,"13":0.03804,"14":2.20157,_:"0 5 6 7 8 9 10 11 3.1 3.2 7.1","5.1":0.16167,"6.1":0.01427,"9.1":0.04755,"10.1":0.00476,"11.1":0.00951,"12.1":0.11888,"13.1":0.22349,"14.1":0.61815},B:{"12":0.01427,"16":0.02853,"17":0.00476,"18":0.06657,"80":0.01427,"84":0.00951,"85":0.00476,"86":0.00476,"87":0.00476,"88":0.00476,"89":0.08559,"90":6.21003,"91":0.35663,_:"13 14 15 79 81 83"},P:{"4":0.19731,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.17539,"8.2":0.02073,"9.2":0.05481,"10.1":0.01096,"11.1-11.2":0.09866,"12.0":0.12058,"13.0":0.58097,"14.0":4.97664},I:{"0":0,"3":0,"4":0.00232,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00099,"4.2-4.3":0.00597,"4.4":0,"4.4.3-4.4.4":0.04841},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0148,"11":0.51301,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00525},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.2675},Q:{"10.4":0},O:{"0":0.08392},H:{"0":0.16883},L:{"0":36.53365}}; +module.exports={C:{"4":0.01876,"45":0.03753,"52":0.00938,"78":0.09382,"80":0.00938,"83":0.00469,"87":0.05629,"88":0.01876,"89":1.11177,"90":0.94758,_:"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 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 84 85 86 91 92 3.5 3.6"},D:{"38":0.01876,"47":0.01407,"49":0.01876,"63":0.00938,"65":0.02346,"69":0.00469,"74":0.84438,"75":0.00469,"76":0.06567,"77":0.05629,"78":0.00469,"79":0.23924,"80":0.00938,"81":0.02346,"83":0.00938,"84":0.03753,"85":0.00938,"86":0.06098,"87":0.37059,"88":0.05629,"89":0.04691,"90":0.31899,"91":22.11807,"92":5.49785,"93":0.00469,_:"4 5 6 7 8 9 10 11 12 13 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 60 61 62 64 66 67 68 70 71 72 73 94 95"},F:{"76":0.25801,"77":1.01795,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01876},G:{"8":0.05499,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03228,"6.0-6.1":0.00239,"7.0-7.1":0.12911,"8.1-8.4":0.00239,"9.0-9.2":0.00478,"9.3":0.22236,"10.0-10.2":0.00359,"10.3":0.38016,"11.0-11.2":0.00956,"11.3-11.4":0.02271,"12.0-12.1":0.02032,"12.2-12.4":0.08727,"13.0-13.1":0.01435,"13.2":0.00359,"13.3":0.28213,"13.4-13.7":0.21996,"14.0-14.4":1.66528,"14.5-14.7":8.03947},E:{"4":0,"12":0.00469,"13":0.02815,"14":0.69427,"15":0.00938,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.01407,"9.1":0.01876,"10.1":0.00938,"11.1":0.01407,"12.1":0.06567,"13.1":0.17357,"14.1":2.36896},B:{"12":0.01876,"15":0.00469,"16":0.00938,"17":0.00938,"18":0.16419,"80":0.00938,"84":0.00938,"87":0.00469,"88":0.00469,"89":0.01876,"90":0.02346,"91":5.72302,"92":1.12584,_:"13 14 79 81 83 85 86"},P:{"4":0.27827,"5.0-5.4":0.02226,"6.2-6.4":0.01019,"7.2-7.4":0.27827,"8.2":0.01046,"9.2":0.05565,"10.1":0.03078,"11.1-11.2":0.16696,"12.0":0.04452,"13.0":0.30054,"14.0":5.67678},I:{"0":0,"3":0,"4":0.0012,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00067,"4.2-4.3":0.0012,"4.4":0,"4.4.3-4.4.4":0.03409},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00938,"11":0.65674,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":35.66375},S:{"2.5":0},R:{_:"0"},M:{"0":0.30792},Q:{"10.4":0},O:{"0":0.12211},H:{"0":0.56796}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js index 66834c3e3f6880..c844844169fdc4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js @@ -1 +1 @@ -module.exports={C:{"4":0.00312,"15":0.00312,"17":0.00623,"38":0.00623,"40":0.0187,"41":0.00623,"43":0.00935,"45":0.00312,"47":0.01559,"48":0.01559,"49":0.00623,"51":0.01247,"52":0.06857,"56":0.01247,"57":0.00623,"59":0.00312,"60":0.01559,"61":0.00312,"62":0.00312,"63":0.00623,"65":0.00623,"67":0.00623,"68":0.00935,"72":0.01559,"74":0.00312,"75":0.03117,"76":0.00312,"77":0.01247,"78":0.05299,"79":0.00623,"80":0.00935,"81":0.00623,"82":0.00623,"83":0.00935,"84":0.02182,"85":0.02182,"86":0.02182,"87":0.05299,"88":3.65001,"89":0.46443,"90":0.00312,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 42 44 46 50 53 54 55 58 64 66 69 70 71 73 91 3.5 3.6"},D:{"11":0.00623,"23":0.00312,"24":0.00623,"25":0.00312,"38":0.00312,"43":0.00312,"49":0.10598,"53":0.00623,"56":0.00623,"57":0.00312,"58":0.00935,"61":0.03429,"62":0.00312,"63":0.00623,"64":0.00312,"65":0.00312,"67":0.00312,"68":0.00623,"69":0.00935,"70":0.00623,"71":0.0187,"72":0.00312,"73":0.01559,"74":0.00935,"75":0.00935,"76":0.01559,"77":0.00623,"78":0.00935,"79":0.10598,"80":0.02182,"81":0.0374,"83":0.0374,"84":0.03117,"85":0.03117,"86":0.08104,"87":0.15273,"88":0.1091,"89":0.38963,"90":15.87176,"91":0.89458,"92":0.05299,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 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 59 60 66 93 94"},F:{"29":0.00623,"64":0.00935,"68":0.00312,"73":0.01559,"75":0.18702,"76":0.3491,_:"9 11 12 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 57 58 60 62 63 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},G:{"8":0.0002,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00353,"6.0-6.1":0.00392,"7.0-7.1":0.06072,"8.1-8.4":0.00235,"9.0-9.2":0.00294,"9.3":0.03898,"10.0-10.2":0.00568,"10.3":0.12751,"11.0-11.2":0.00803,"11.3-11.4":0.01136,"12.0-12.1":0.01822,"12.2-12.4":0.09892,"13.0-13.1":0.03154,"13.2":0.00548,"13.3":0.0188,"13.4-13.7":0.07952,"14.0-14.4":0.96879,"14.5-14.6":0.28245},E:{"4":0,"7":0.00623,"13":0.00935,"14":0.09663,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.03117,"13.1":0.01559,"14.1":0.04676},B:{"12":0.00935,"13":0.00623,"15":0.0187,"16":0.00623,"17":0.04364,"18":0.02494,"84":0.00935,"85":0.00312,"88":0.01247,"89":0.03117,"90":0.83536,"91":0.08416,_:"14 79 80 81 83 86 87"},P:{"4":0.45601,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.13473,"8.2":0.02073,"9.2":0.05182,"10.1":0.04146,"11.1-11.2":0.20728,"12.0":0.18655,"13.0":0.43528,"14.0":1.16074},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00438,"4.2-4.3":0.01226,"4.4":0,"4.4.3-4.4.4":0.23115},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01425,"10":0.00356,"11":0.15674,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.19961},Q:{"10.4":0},O:{"0":3.77877},H:{"0":4.71786},L:{"0":60.81656}}; +module.exports={C:{"4":0.0061,"5":0.0061,"15":0.0061,"17":0.00914,"36":0.00305,"38":0.00305,"40":0.01219,"41":0.0061,"43":0.0061,"47":0.00914,"48":0.01219,"51":0.0061,"52":0.04572,"56":0.00914,"59":0.00305,"60":0.00914,"62":0.0061,"65":0.0061,"67":0.0061,"68":0.0061,"69":0.00305,"72":0.01524,"75":0.02438,"77":0.0061,"78":0.04572,"79":0.00305,"80":0.0061,"81":0.00305,"82":0.0061,"83":0.00305,"84":0.01219,"85":0.01219,"86":0.0061,"87":0.0061,"88":0.04267,"89":2.06045,"90":1.24968,"91":0.16764,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 42 44 45 46 49 50 53 54 55 57 58 61 63 64 66 70 71 73 74 76 92 3.5 3.6"},D:{"11":0.00305,"23":0.0061,"24":0.00914,"25":0.0061,"38":0.0061,"43":0.00305,"49":0.07925,"50":0.00305,"56":0.0061,"57":0.0061,"61":0.09754,"62":0.00305,"63":0.0061,"65":0.0061,"69":0.00914,"70":0.0061,"71":0.00914,"72":0.00305,"73":0.01524,"74":0.0061,"75":0.0061,"76":0.00305,"77":0.0061,"78":0.00914,"79":0.05182,"80":0.01829,"81":0.02438,"83":0.03962,"84":0.02134,"85":0.02743,"86":0.06096,"87":0.1463,"88":0.04877,"89":0.09144,"90":0.20117,"91":13.29233,"92":3.31318,"93":0.03962,"94":0.00305,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 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 58 59 60 64 66 67 68 95"},F:{"29":0.00914,"36":0.00305,"64":0.01829,"65":0.0061,"76":0.04877,"77":0.5273,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00039,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00039,"5.0-5.1":0.00485,"6.0-6.1":0.00563,"7.0-7.1":0.07274,"8.1-8.4":0.00194,"9.0-9.2":0.00466,"9.3":0.03259,"10.0-10.2":0.00776,"10.3":0.11251,"11.0-11.2":0.00989,"11.3-11.4":0.00854,"12.0-12.1":0.01591,"12.2-12.4":0.0516,"13.0-13.1":0.01843,"13.2":0.00369,"13.3":0.01455,"13.4-13.7":0.07391,"14.0-14.4":0.26828,"14.5-14.7":1.05758},E:{"4":0,"13":0.0061,"14":0.03962,_:"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.00305,"12.1":0.01219,"13.1":0.01219,"14.1":0.13106},B:{"12":0.0061,"13":0.0061,"15":0.0061,"16":0.00914,"17":0.01219,"18":0.02134,"84":0.0061,"85":0.00305,"89":0.01524,"90":0.00914,"91":0.78638,"92":0.24689,_:"14 79 80 81 83 86 87 88"},P:{"4":0.4048,"5.0-5.4":0.03114,"6.2-6.4":0.01019,"7.2-7.4":0.09342,"8.2":0.01046,"9.2":0.0519,"10.1":0.02076,"11.1-11.2":0.14531,"12.0":0.10379,"13.0":0.24911,"14.0":1.13137},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0021,"4.2-4.3":0.00841,"4.4":0,"4.4.3-4.4.4":0.15633},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01578,"10":0.01183,"11":0.1065,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":63.61223},S:{"2.5":0},R:{_:"0"},M:{"0":0.1738},Q:{"10.4":0},O:{"0":3.37172},H:{"0":4.23862}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js index fb283b43f4334f..5ae9a2a3128fd9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js @@ -1 +1 @@ -module.exports={C:{"45":0.0059,"48":0.01179,"52":0.04717,"56":0.05306,"60":0.01179,"68":0.01769,"69":0.0059,"72":0.0059,"77":0.0059,"78":0.23584,"79":0.0059,"80":0.01179,"81":0.0059,"82":0.01179,"83":0.01179,"84":0.13561,"85":0.02948,"86":0.03538,"87":0.16509,"88":4.06824,"89":0.01769,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 57 58 59 61 62 63 64 65 66 67 70 71 73 74 75 76 90 91 3.5 3.6"},D:{"38":0.0059,"49":0.17098,"53":0.03538,"57":0.01179,"59":0.0059,"60":0.0059,"61":0.10613,"63":0.0059,"65":0.01769,"66":0.01769,"67":0.02948,"68":0.01179,"69":0.01769,"72":0.01179,"73":0.01179,"74":0.04127,"75":0.05896,"76":0.19457,"77":0.04717,"78":0.43041,"79":0.55422,"80":0.07075,"81":0.04127,"83":0.05306,"84":0.04127,"85":0.10023,"86":0.08844,"87":0.48347,"88":0.50706,"89":1.09076,"90":31.31366,"91":0.81365,"92":0.01179,_:"4 5 6 7 8 9 10 11 12 13 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 58 62 64 70 71 93 94"},F:{"36":0.0059,"73":0.11202,"75":0.4363,"76":0.45399,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00323,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00161,"6.0-6.1":0.01453,"7.0-7.1":0.03714,"8.1-8.4":0.01453,"9.0-9.2":0.01615,"9.3":0.15016,"10.0-10.2":0.01453,"10.3":0.29063,"11.0-11.2":0.0549,"11.3-11.4":0.05813,"12.0-12.1":0.05813,"12.2-12.4":0.20344,"13.0-13.1":0.05005,"13.2":0.01938,"13.3":0.17438,"13.4-13.7":0.81377,"14.0-14.4":11.57037,"14.5-14.6":1.80837},E:{"4":0,"11":0.05306,"12":0.02358,"13":0.17098,"14":4.23333,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1","6.1":0.01179,"9.1":0.0059,"10.1":0.05896,"11.1":0.12971,"12.1":0.20636,"13.1":0.84313,"14.1":1.52117},B:{"14":0.0059,"15":0.0059,"16":0.02358,"17":0.01769,"18":0.08254,"83":0.0059,"84":0.0059,"85":0.01769,"86":0.02358,"87":0.01179,"88":0.05306,"89":0.17098,"90":6.22618,"91":0.24174,_:"12 13 79 80 81"},P:{"4":0.05365,"5.0-5.4":0.02061,"6.2-6.4":0.1561,"7.2-7.4":0.17692,"8.2":0.03018,"9.2":0.08325,"10.1":0.01041,"11.1-11.2":0.09657,"12.0":0.08584,"13.0":0.30044,"14.0":3.98089},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0013,"4.2-4.3":0.00434,"4.4":0,"4.4.3-4.4.4":0.03128},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01253,"11":0.78933,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.29131},Q:{"10.4":0},O:{"0":0.04513},H:{"0":0.11653},L:{"0":21.58142}}; +module.exports={C:{"48":0.01644,"52":0.06028,"56":0.06028,"60":0.01096,"68":0.01644,"78":0.25208,"79":0.00548,"80":0.00548,"81":0.00548,"82":0.00548,"84":0.04384,"85":0.01096,"86":0.01096,"87":0.14796,"88":0.14796,"89":2.64684,"90":1.6988,"91":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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 83 92 3.5 3.6"},D:{"38":0.01096,"49":0.16988,"52":0.02192,"53":0.01644,"57":0.02192,"61":0.01096,"63":0.01096,"65":0.01644,"66":0.02192,"67":0.02192,"69":0.01644,"72":0.01096,"73":0.00548,"74":0.03288,"75":0.06576,"76":0.06576,"77":0.04384,"78":0.46032,"79":0.62472,"80":0.0548,"81":0.03288,"83":0.04384,"84":0.03836,"85":0.09316,"86":0.06576,"87":0.3836,"88":0.08768,"89":0.22468,"90":0.40552,"91":23.85444,"92":5.19504,"93":0.01096,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 58 59 60 62 64 68 70 71 94 95"},F:{"75":0.01096,"76":0.20824,"77":0.73432,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00173,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0156,"7.0-7.1":0.05372,"8.1-8.4":0.01386,"9.0-9.2":0.01906,"9.3":0.18368,"10.0-10.2":0.01386,"10.3":0.23566,"11.0-11.2":0.05718,"11.3-11.4":0.06065,"12.0-12.1":0.06238,"12.2-12.4":0.16808,"13.0-13.1":0.04679,"13.2":0.01906,"13.3":0.15249,"13.4-13.7":0.55969,"14.0-14.4":2.58187,"14.5-14.7":12.25264},E:{"4":0,"11":0.0274,"12":0.01644,"13":0.10412,"14":1.20012,"15":0.01096,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1","6.1":0.00548,"9.1":0.01096,"10.1":0.04384,"11.1":0.09864,"12.1":0.15892,"13.1":0.66856,"14.1":3.95108},B:{"14":0.00548,"15":0.00548,"16":0.0274,"17":0.01644,"18":0.07672,"83":0.00548,"84":0.01096,"85":0.01096,"86":0.02192,"87":0.02192,"88":0.01644,"89":0.0274,"90":0.07124,"91":5.43616,"92":1.3426,_:"12 13 79 80 81"},P:{"4":0.07486,"5.0-5.4":0.02226,"6.2-6.4":0.01019,"7.2-7.4":0.27827,"8.2":0.01046,"9.2":0.05565,"10.1":0.03078,"11.1-11.2":0.09625,"12.0":0.08555,"13.0":0.1818,"14.0":4.58778},I:{"0":0,"3":0,"4":0.00129,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00215,"4.2-4.3":0.00215,"4.4":0,"4.4.3-4.4.4":0.03056},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01174,"11":0.72806,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":24.71904},S:{"2.5":0},R:{_:"0"},M:{"0":0.3616},Q:{"10.4":0},O:{"0":0.05424},H:{"0":0.1241}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js index 9c9091aa28ceff..a15a2ba3b785e7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js @@ -1 +1 @@ -module.exports={C:{"20":0.00227,"30":0.00453,"36":0.00227,"38":0.00453,"40":0.00453,"41":0.00227,"43":0.0136,"44":0.00227,"45":0.01134,"47":0.0136,"48":0.00227,"50":0.01587,"52":0.05668,"53":0.00907,"56":0.00453,"57":0.0068,"59":0.00453,"61":0.00227,"63":0.00227,"64":0.00453,"65":0.00453,"68":0.00453,"72":0.01814,"75":0.0068,"76":0.10882,"77":0.00453,"78":0.04534,"79":0.00453,"80":0.0136,"81":0.17456,"83":0.02267,"84":0.01814,"85":0.13149,"86":0.02947,"87":0.26977,"88":2.38942,"89":0.02267,"90":0.00453,_:"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 31 32 33 34 35 37 39 42 46 49 51 54 55 58 60 62 66 67 69 70 71 73 74 82 91 3.5 3.6"},D:{"23":0.00453,"28":0.00453,"29":0.0068,"40":0.0068,"43":0.00227,"45":0.0068,"49":0.04987,"50":0.00453,"53":0.00227,"55":0.0068,"57":0.00453,"60":0.00453,"62":0.00453,"63":0.00227,"65":0.01814,"66":0.00907,"67":0.0068,"68":0.0068,"69":0.00227,"70":0.0068,"72":0.0136,"74":0.01134,"75":0.00907,"76":0.00227,"77":0.0272,"79":0.00907,"80":0.10882,"81":0.02947,"83":0.0068,"84":0.14736,"85":0.0068,"86":0.04987,"87":0.11108,"88":0.09975,"89":0.32872,"90":7.19546,"91":0.31058,"92":0.10202,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 30 31 32 33 34 35 36 37 38 39 41 42 44 46 47 48 51 52 54 56 58 59 61 64 71 73 78 93 94"},F:{"36":0.00227,"42":0.00907,"73":0.02947,"74":0.0068,"75":0.47154,"76":0.56902,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00055,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00055,"6.0-6.1":0,"7.0-7.1":0.02454,"8.1-8.4":0,"9.0-9.2":0.00109,"9.3":0.20342,"10.0-10.2":0.02072,"10.3":0.07581,"11.0-11.2":0.21706,"11.3-11.4":0.19252,"12.0-12.1":0.05563,"12.2-12.4":0.27051,"13.0-13.1":0.06544,"13.2":0.018,"13.3":0.10198,"13.4-13.7":0.30705,"14.0-14.4":3.18008,"14.5-14.6":0.48484},E:{"4":0,"11":0.0068,"13":0.00453,"14":0.12695,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 9.1 10.1 11.1","5.1":0.01587,"7.1":0.00453,"12.1":0.0068,"13.1":0.0272,"14.1":0.04761},B:{"12":0.02267,"13":0.0068,"14":0.00227,"15":0.0068,"16":0.0068,"17":0.0204,"18":0.11788,"80":0.00227,"84":0.03174,"85":0.0272,"87":0.00907,"88":0.01134,"89":0.07254,"90":1.20378,"91":0.08615,_:"79 81 83 86"},P:{"4":0.21694,"5.0-5.4":0.02066,"6.2-6.4":0.0725,"7.2-7.4":0.06198,"8.2":0.04115,"9.2":0.05165,"10.1":0.02066,"11.1-11.2":0.06198,"12.0":0.04132,"13.0":0.41321,"14.0":0.46487},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00708,"4.2-4.3":0.01416,"4.4":0,"4.4.3-4.4.4":0.27261},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19723,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.03867},N:{_:"10 11"},S:{"2.5":0.01547},R:{_:"0"},M:{"0":0.15466},Q:{"10.4":0.23199},O:{"0":0.85063},H:{"0":4.70015},L:{"0":71.27268}}; +module.exports={C:{"25":0.00239,"30":0.00956,"34":0.00239,"40":0.01195,"42":0.00478,"43":0.01912,"45":0.00239,"47":0.01434,"48":0.00717,"50":0.00478,"51":0.00239,"52":0.04063,"56":0.00239,"57":0.00239,"60":0.00717,"62":0.00239,"63":0.00239,"65":0.00239,"66":0.00478,"68":0.00717,"70":0.00239,"71":0.00478,"72":0.0239,"75":0.01434,"76":0.11472,"78":0.03346,"79":0.00956,"80":0.00478,"81":0.00478,"83":0.00478,"84":0.00717,"85":0.0239,"86":0.0239,"87":0.02868,"88":0.15774,"89":2.02194,"90":0.81499,"91":0.00717,_:"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 31 32 33 35 36 37 38 39 41 44 46 49 53 54 55 58 59 61 64 67 69 73 74 77 82 92 3.5 3.6"},D:{"27":0.00478,"28":0.00717,"29":0.00717,"33":0.00717,"37":0.00239,"39":0.00717,"42":0.00717,"46":0.00717,"49":0.02151,"50":0.00478,"51":0.00478,"55":0.00717,"58":0.00717,"60":0.00478,"62":0.02629,"63":0.00478,"64":0.00478,"65":0.00478,"66":0.00956,"67":0.00478,"68":0.00239,"69":0.02629,"70":0.01673,"71":0.00239,"73":0.00239,"74":0.11711,"75":0.01195,"76":0.00956,"77":0.01195,"78":0.00478,"79":0.01434,"80":0.05975,"81":0.01434,"83":0.02868,"84":0.00239,"85":0.00478,"86":0.01673,"87":0.25812,"88":0.04302,"89":0.06692,"90":0.15057,"91":6.931,"92":1.78533,"93":0.13623,"94":0.00478,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 30 31 32 34 35 36 38 40 41 43 44 45 47 48 52 53 54 56 57 59 61 72 95"},F:{"36":0.00239,"70":0.01434,"75":0.00478,"76":0.0478,"77":0.9799,_:"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 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0267,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03138,"10.0-10.2":0.00515,"10.3":0.1391,"11.0-11.2":0.0932,"11.3-11.4":0.36063,"12.0-12.1":0.03887,"12.2-12.4":0.17188,"13.0-13.1":0.03513,"13.2":0.01546,"13.3":0.08664,"13.4-13.7":0.2796,"14.0-14.4":1.45093,"14.5-14.7":1.67059},E:{"4":0,"11":0.00717,"13":0.00239,"14":0.06453,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01195,"11.1":0.00239,"12.1":0.00239,"13.1":0.06692,"14.1":0.10277},B:{"12":0.02151,"13":0.01195,"14":0.00478,"15":0.00956,"16":0.00717,"17":0.01912,"18":0.12906,"83":0.00239,"84":0.01195,"85":0.01912,"87":0.00239,"88":0.01434,"89":0.05497,"90":0.04063,"91":1.33362,"92":0.30114,_:"79 80 81 86"},P:{"4":0.07481,"5.0-5.4":0.01069,"6.2-6.4":0.02048,"7.2-7.4":0.05344,"8.2":0.01024,"9.2":0.05344,"10.1":0.02088,"11.1-11.2":0.18169,"12.0":0.03206,"13.0":0.21375,"14.0":0.83363},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0034,"4.2-4.3":0.01584,"4.4":0,"4.4.3-4.4.4":0.20145},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00747,"11":0.29128,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.01522},N:{_:"10 11"},L:{"0":71.49807},S:{"2.5":0.00761},R:{_:"0"},M:{"0":0.12176},Q:{"10.4":0.17503},O:{"0":0.761},H:{"0":3.89051}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js index e135d486101c48..1b34216b427848 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js @@ -1 +1 @@ -module.exports={C:{"40":0.00449,"45":0.00449,"47":0.00449,"48":0.00899,"50":0.00449,"51":0.00449,"52":0.23813,"56":0.01797,"57":0.00449,"60":0.11233,"61":0.00449,"62":0.00899,"63":0.02247,"66":0.01348,"67":0.00899,"68":0.1258,"69":0.00899,"70":0.00449,"72":0.01797,"73":0.00899,"75":0.04044,"76":0.00899,"77":0.00449,"78":0.26509,"79":0.00899,"80":0.00899,"81":0.01797,"82":0.01348,"83":0.01797,"84":0.05392,"85":0.03594,"86":0.0674,"87":0.13928,"88":6.21831,"89":0.05841,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 46 49 53 54 55 58 59 64 65 71 74 90 91 3.5 3.6"},D:{"31":0.00449,"38":0.01348,"48":0.00899,"49":0.73236,"53":0.01797,"56":0.00899,"58":0.01348,"61":0.21566,"63":0.03594,"65":0.00899,"66":0.00899,"67":0.00899,"68":0.00899,"69":0.05392,"70":0.01348,"71":0.01348,"72":0.00899,"73":0.01348,"74":0.00899,"75":0.01797,"76":0.01348,"77":0.01797,"78":0.01797,"79":0.22465,"80":0.0674,"81":0.07189,"83":0.05841,"84":0.05841,"85":0.0629,"86":0.08537,"87":0.27407,"88":0.14378,"89":0.86715,"90":25.25515,"91":1.06484,"92":0.00899,_:"4 5 6 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 39 40 41 42 43 44 45 46 47 50 51 52 54 55 57 59 60 62 64 93 94"},F:{"36":0.01348,"45":0.00899,"46":0.00449,"71":0.00899,"73":0.13479,"74":0.00899,"75":0.66047,"76":0.92556,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0045,"6.0-6.1":0.003,"7.0-7.1":0.015,"8.1-8.4":0.0045,"9.0-9.2":0.00225,"9.3":0.05475,"10.0-10.2":0.01125,"10.3":0.10126,"11.0-11.2":0.0285,"11.3-11.4":0.051,"12.0-12.1":0.03,"12.2-12.4":0.10951,"13.0-13.1":0.021,"13.2":0.00825,"13.3":0.0645,"13.4-13.7":0.28652,"14.0-14.4":5.30366,"14.5-14.6":1.05833},E:{"4":0,"13":0.02696,"14":0.45829,_:"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.02696,"12.1":0.03145,"13.1":0.07638,"14.1":0.20668},B:{"15":0.00899,"16":0.00449,"17":0.01797,"18":0.03145,"84":0.00899,"85":0.00899,"86":0.01348,"87":0.01348,"88":0.00449,"89":0.05392,"90":2.1207,"91":0.15726,_:"12 13 14 79 80 81 83"},P:{"4":0.06238,"5.0-5.4":0.02061,"6.2-6.4":0.1561,"7.2-7.4":0.16638,"8.2":0.03018,"9.2":0.02079,"10.1":0.02079,"11.1-11.2":0.12475,"12.0":0.07277,"13.0":0.32227,"14.0":2.34948},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.01983,"4.4":0,"4.4.3-4.4.4":0.13671},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00459,"11":0.88952,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.20923},Q:{"10.4":0.00551},O:{"0":0.04955},H:{"0":0.27106},L:{"0":45.52329}}; +module.exports={C:{"34":0.00861,"47":0.00431,"48":0.00431,"50":0.00431,"51":0.00861,"52":0.24544,"55":0.00861,"56":0.00861,"57":0.00861,"60":0.01292,"61":0.00431,"62":0.00431,"63":0.02153,"66":0.00431,"67":0.00861,"68":0.04306,"70":0.00861,"71":0.00861,"72":0.01722,"73":0.00861,"75":0.02153,"76":0.00861,"78":0.40046,"79":0.01292,"80":0.02584,"81":0.02153,"82":0.00861,"83":0.01722,"84":0.03445,"85":0.01722,"86":0.02153,"87":0.03014,"88":0.11626,"89":3.60412,"90":2.60944,"91":0.01722,_:"2 3 4 5 6 7 8 9 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 49 53 54 58 59 64 65 69 74 77 92 3.5 3.6"},D:{"34":0.00431,"38":0.01292,"41":0.00861,"48":0.00861,"49":0.68035,"53":0.00861,"56":0.01722,"57":0.00431,"58":0.01292,"61":0.31864,"63":0.01722,"64":0.00431,"65":0.01722,"67":0.00861,"68":0.00861,"69":0.01292,"70":0.01292,"71":0.00861,"72":0.00861,"73":0.01722,"74":0.00861,"75":0.01722,"76":0.00861,"77":0.01722,"78":0.01292,"79":0.16363,"80":0.05598,"81":0.0689,"83":0.03014,"84":0.03875,"85":0.04737,"86":0.05167,"87":0.15502,"88":0.0732,"89":0.11626,"90":0.27558,"91":20.50517,"92":4.61603,"93":0.01292,_:"4 5 6 7 8 9 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 51 52 54 55 59 60 62 66 94 95"},F:{"36":0.00861,"40":0.00431,"45":0.00861,"46":0.00861,"70":0.00431,"74":0.00431,"75":0.00431,"76":0.21099,"77":1.29611,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00483,"6.0-6.1":0.00242,"7.0-7.1":0.01369,"8.1-8.4":0,"9.0-9.2":0.00322,"9.3":0.04026,"10.0-10.2":0.00966,"10.3":0.08213,"11.0-11.2":0.02657,"11.3-11.4":0.05234,"12.0-12.1":0.02899,"12.2-12.4":0.09259,"13.0-13.1":0.01691,"13.2":0.00805,"13.3":0.06441,"13.4-13.7":0.23591,"14.0-14.4":1.14736,"14.5-14.7":5.88738},E:{"4":0,"13":0.03014,"14":0.15932,_:"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.01722,"12.1":0.02153,"13.1":0.06028,"14.1":0.49088},B:{"15":0.00431,"16":0.00861,"17":0.01292,"18":0.03014,"84":0.00431,"85":0.00431,"87":0.00431,"88":0.00431,"89":0.01722,"90":0.01292,"91":1.94631,"92":0.5038,_:"12 13 14 79 80 81 83 86"},P:{"4":0.03131,"5.0-5.4":0.01019,"6.2-6.4":0.02048,"7.2-7.4":0.14567,"8.2":0.01024,"9.2":0.03131,"10.1":0.02088,"11.1-11.2":0.11481,"12.0":0.06263,"13.0":0.167,"14.0":2.56763},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00496,"4.2-4.3":0.01364,"4.4":0,"4.4.3-4.4.4":0.13516},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00884,"9":0.00884,"11":0.81768,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":47.42603},S:{"2.5":0},R:{_:"0"},M:{"0":0.19933},Q:{"10.4":0.0057},O:{"0":0.03987},H:{"0":0.2588}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js index 94d30ac1fddbf1..2cd5c3094dda20 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js @@ -1 +1 @@ -module.exports={C:{"34":0.008,"52":0.016,"78":0.012,"84":0.004,"85":0.012,"86":0.016,"87":0.024,"88":1.32,"89":0.02,_:"2 3 4 5 6 7 8 9 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 90 91 3.5 3.6"},D:{"38":0.024,"43":0.004,"49":0.068,"52":0.004,"53":0.02,"56":0.032,"60":0.012,"64":0.008,"65":0.024,"66":0.004,"67":0.02,"68":0.02,"69":0.028,"71":0.004,"73":0.064,"74":0.012,"76":0.004,"77":0.008,"78":0.008,"79":0.06,"80":0.016,"81":0.028,"83":0.076,"84":0.032,"85":0.08,"86":0.076,"87":0.192,"88":0.092,"89":0.632,"90":25.22,"91":1.096,"92":0.032,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 57 58 59 61 62 63 70 72 75 93 94"},F:{"28":0.008,"36":0.004,"46":0.004,"71":0.004,"73":0.088,"74":0.012,"75":0.188,"76":0.052,_:"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 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00677,"6.0-6.1":0,"7.0-7.1":0.03383,"8.1-8.4":0,"9.0-9.2":0.00169,"9.3":0.09304,"10.0-10.2":0.01353,"10.3":0.09474,"11.0-11.2":0.04906,"11.3-11.4":0.07274,"12.0-12.1":0.0406,"12.2-12.4":0.18101,"13.0-13.1":0.06936,"13.2":0.01861,"13.3":0.20131,"13.4-13.7":0.55996,"14.0-14.4":11.92655,"14.5-14.6":3.09244},E:{"4":0,"11":0.004,"12":0.016,"13":0.084,"14":2.084,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.016,"10.1":0.024,"11.1":0.024,"12.1":0.104,"13.1":0.528,"14.1":0.68},B:{"12":0.008,"15":0.008,"16":0.02,"17":0.036,"18":0.116,"84":0.008,"85":0.008,"86":0.012,"87":0.04,"88":0.012,"89":0.152,"90":3.652,"91":0.276,_:"13 14 79 80 81 83"},P:{"4":0.30575,"5.0-5.4":0.01035,"6.2-6.4":0.01043,"7.2-7.4":0.06115,"8.2":0.03078,"9.2":0.08153,"10.1":0.05096,"11.1-11.2":0.40766,"12.0":0.14268,"13.0":0.51977,"14.0":2.96574},I:{"0":0,"3":0,"4":0.00057,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00057,"4.2-4.3":0.002,"4.4":0,"4.4.3-4.4.4":0.01485},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.384,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.22196},Q:{"10.4":0},O:{"0":3.28145},H:{"0":0.54523},L:{"0":36.17421}}; +module.exports={C:{"5":0.00379,"16":0.00758,"17":0.01517,"34":0.00379,"36":0.02275,"52":0.01517,"66":0.39437,"68":0.00379,"78":0.03413,"79":0.00758,"80":0.00379,"81":0.00379,"82":0.00379,"83":0.01138,"85":0.00758,"86":0.00379,"88":0.03413,"89":0.66739,"90":0.43608,"91":0.01138,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 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 67 69 70 71 72 73 74 75 76 77 84 87 92 3.5 3.6"},D:{"23":0.00379,"24":0.00758,"38":0.00758,"43":0.00379,"49":0.11376,"56":0.0455,"63":0.01138,"65":0.02275,"67":0.02275,"68":0.00379,"70":0.00758,"71":0.00758,"73":0.06826,"74":0.01138,"75":0.00758,"76":0.00758,"78":0.00758,"79":0.10618,"80":0.01138,"81":0.01517,"83":0.03034,"84":0.07963,"85":1.71778,"86":0.09859,"87":0.17064,"88":0.06067,"89":0.12893,"90":0.39437,"91":18.73627,"92":4.15982,"93":0.01517,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 57 58 59 60 61 62 64 66 69 72 77 94 95"},F:{"28":0.01517,"36":0.00379,"46":0.00379,"67":0.00758,"71":0.00379,"74":0.00379,"75":0.05688,"76":0.09101,"77":0.12893,_:"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 68 69 70 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00487,"6.0-6.1":0.00325,"7.0-7.1":0.02921,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.12171,"10.0-10.2":0.00811,"10.3":0.09899,"11.0-11.2":0.05842,"11.3-11.4":0.06653,"12.0-12.1":0.0357,"12.2-12.4":0.16715,"13.0-13.1":0.06329,"13.2":0.01623,"13.3":0.1282,"13.4-13.7":0.51118,"14.0-14.4":2.8707,"14.5-14.7":11.41466},E:{"4":0,"10":0.01138,"11":0.00758,"12":0.01138,"13":0.06067,"14":0.73565,"15":0.01138,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 9.1","5.1":0.00379,"10.1":0.00758,"11.1":0.04171,"12.1":0.08342,"13.1":0.3792,"14.1":1.78603},B:{"13":0.00758,"15":0.01138,"16":0.00379,"17":0.01138,"18":0.06067,"80":0.00379,"83":0.03792,"84":0.01517,"85":0.00379,"86":0.01138,"89":0.03792,"90":0.01517,"91":2.76058,"92":0.68256,_:"12 14 79 81 87 88"},P:{"4":0.31809,"5.0-5.4":0.01026,"6.2-6.4":0.01019,"7.2-7.4":0.09235,"8.2":0.01046,"9.2":0.05131,"10.1":0.03078,"11.1-11.2":0.31809,"12.0":0.20522,"13.0":0.28731,"14.0":3.24251},I:{"0":0,"3":0,"4":0.00074,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00222,"4.4":0,"4.4.3-4.4.4":0.02186},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00782,"9":0.01172,"10":0.00782,"11":0.35564,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":39.53413},S:{"2.5":0.00621},R:{_:"0"},M:{"0":0.21725},Q:{"10.4":0.01862},O:{"0":3.38282},H:{"0":0.6464}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js index b57f77328927fd..2ba8ffaaff0e5e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js @@ -1 +1 @@ -module.exports={C:{"4":0.01581,"5":0.01897,"7":0.00316,"15":0.04743,"17":0.04111,"20":0.00316,"28":0.00316,"31":0.00316,"33":0.00949,"35":0.00632,"36":0.00632,"37":0.00316,"40":0.00949,"43":0.01265,"45":0.00949,"47":0.01581,"49":0.00316,"50":0.00316,"51":0.00632,"52":0.01581,"56":0.00316,"59":0.00316,"60":0.00949,"64":0.01581,"65":0.00316,"66":0.00316,"69":0.00316,"70":0.00632,"71":0.00316,"72":0.01265,"75":0.00316,"78":0.0664,"79":0.00316,"81":0.04743,"82":0.00316,"84":0.03162,"85":0.0253,"86":0.01265,"87":0.0917,"88":3.99993,"89":0.17707,_:"2 3 6 8 9 10 11 12 13 14 16 18 19 21 22 23 24 25 26 27 29 30 32 34 38 39 41 42 44 46 48 53 54 55 57 58 61 62 63 67 68 73 74 76 77 80 83 90 91 3.5 3.6"},D:{"23":0.00949,"24":0.07273,"25":0.02213,"26":0.00316,"43":0.00316,"45":0.00316,"47":0.00316,"49":0.03162,"50":0.02213,"52":0.00949,"55":0.00632,"59":0.00316,"60":0.00316,"63":0.01265,"64":0.00316,"65":0.00316,"66":0.01265,"67":0.00316,"68":0.00316,"70":0.00316,"72":0.00316,"73":0.00949,"74":0.02213,"75":0.01265,"76":0.00316,"77":0.02213,"78":0.00316,"79":0.04111,"80":0.0664,"81":0.18972,"83":0.04111,"84":0.0253,"85":0.0253,"86":0.03478,"87":0.67034,"88":0.30355,"89":0.61659,"90":13.38475,"91":0.5407,"92":0.03478,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 48 51 53 54 56 57 58 61 62 69 71 93 94"},F:{"21":0.00632,"42":0.00632,"48":0.00316,"55":0.00632,"68":0.00632,"70":0.00949,"73":0.01265,"74":0.01581,"75":0.59446,"76":1.12251,_:"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 45 46 47 49 50 51 52 53 54 56 57 58 60 62 63 64 65 66 67 69 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00316},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.00385,"7.0-7.1":0.01615,"8.1-8.4":0.00423,"9.0-9.2":0.00615,"9.3":0.07422,"10.0-10.2":0.00308,"10.3":0.07653,"11.0-11.2":0.02923,"11.3-11.4":0.04422,"12.0-12.1":0.05961,"12.2-12.4":0.22304,"13.0-13.1":0.04345,"13.2":0.13882,"13.3":0.19112,"13.4-13.7":0.24419,"14.0-14.4":1.61664,"14.5-14.6":0.78756},E:{"4":0,"13":0.03794,"14":0.55651,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1 12.1","5.1":0.19921,"9.1":0.00632,"11.1":0.00632,"13.1":0.06956,"14.1":0.05375},B:{"12":0.05375,"13":0.02846,"14":0.01581,"15":0.00316,"17":0.02846,"18":0.12964,"81":0.00316,"83":0.00316,"84":0.01581,"85":0.0253,"86":0.02846,"87":0.00949,"88":0.0253,"89":0.11699,"90":1.72329,"91":0.0917,_:"16 79 80"},P:{"4":0.39686,"5.0-5.4":0.01018,"6.2-6.4":0.03053,"7.2-7.4":0.0407,"8.2":0.04115,"9.2":0.14246,"10.1":0.01018,"11.1-11.2":0.0407,"12.0":0.08141,"13.0":0.18317,"14.0":0.37651},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.00222,"4.4":0,"4.4.3-4.4.4":0.05013},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.09802,"10":0.01265,"11":0.52805,_:"6 7 9 5.5"},J:{"7":0,"10":0.00684},N:{"10":0.02735,_:"11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12307},Q:{"10.4":0.3692},O:{"0":0.4991},H:{"0":15.87138},L:{"0":50.03856}}; +module.exports={C:{"4":0.00665,"16":0.00665,"20":0.00665,"24":0.00665,"31":0.00333,"32":0.00998,"35":0.00998,"36":0.0133,"40":0.01996,"43":0.01663,"45":0.00665,"47":0.03991,"48":0.00665,"51":0.00665,"52":0.03991,"53":0.00665,"54":0.02993,"56":0.00665,"57":0.00333,"61":0.00333,"63":0.00665,"65":0.02328,"68":0.00665,"69":0.00665,"72":0.0133,"75":0.00665,"77":0.0133,"78":0.05322,"83":0.00998,"84":0.01996,"85":0.01996,"86":0.00998,"87":0.01996,"88":0.5754,"89":3.98455,"90":2.04549,"91":0.07317,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 17 18 19 21 22 23 25 26 27 28 29 30 33 34 37 38 39 41 42 44 46 49 50 55 58 59 60 62 64 66 67 70 71 73 74 76 79 80 81 82 92 3.5 3.6"},D:{"22":0.01996,"26":0.00665,"33":0.00333,"40":0.00998,"45":0.00333,"46":0.00665,"47":0.09978,"49":0.03326,"51":0.00998,"57":0.00333,"58":0.00998,"61":0.00333,"62":0.01663,"64":0.01663,"67":0.00665,"70":0.00665,"72":0.00665,"76":0.00333,"77":0.02661,"79":0.02993,"80":0.06652,"81":0.10311,"83":0.03659,"84":0.03326,"85":0.01663,"86":0.05322,"87":0.4091,"88":0.0898,"89":0.13969,"90":0.27606,"91":12.32948,"92":2.69406,"93":0.01996,_:"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 34 35 36 37 38 39 41 42 43 44 48 50 52 53 54 55 56 59 60 63 65 66 68 69 71 73 74 75 78 94 95"},F:{"34":0.01996,"56":0.00665,"58":0.00333,"70":0.00333,"71":0.00333,"72":0.00665,"75":0.01663,"76":0.04989,"77":1.3304,_:"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 57 60 62 63 64 65 66 67 68 69 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01053,"8.1-8.4":0.00496,"9.0-9.2":0,"9.3":0.04831,"10.0-10.2":0.00186,"10.3":0.02323,"11.0-11.2":0.0161,"11.3-11.4":0.02694,"12.0-12.1":0.06473,"12.2-12.4":0.24033,"13.0-13.1":0.02137,"13.2":0.0192,"13.3":0.1022,"13.4-13.7":0.11955,"14.0-14.4":0.63582,"14.5-14.7":1.4742},E:{"4":0,"13":0.0133,"14":0.153,"15":0.00998,_:"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.0133,"12.1":0.00998,"13.1":0.13637,"14.1":0.16297},B:{"12":0.09313,"13":0.03659,"14":0.03326,"15":0.00665,"16":0.01663,"17":0.01996,"18":0.1663,"81":0.00998,"83":0.0133,"84":0.0133,"85":0.00665,"87":0.00998,"89":0.03326,"90":0.01996,"91":2.22177,"92":0.29269,_:"79 80 86 88"},P:{"4":0.06207,"5.0-5.4":0.06207,"6.2-6.4":0.02069,"7.2-7.4":0.07242,"8.2":0.01024,"9.2":0.10346,"10.1":0.06207,"11.1-11.2":0.08277,"12.0":0.02069,"13.0":0.09311,"14.0":0.75524},I:{"0":0,"3":0,"4":0.00058,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00497,"4.2-4.3":0.01607,"4.4":0,"4.4.3-4.4.4":0.05845},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21619,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01335},N:{_:"10 11"},L:{"0":45.98751},S:{"2.5":0.01335},R:{_:"0"},M:{"0":0.06006},Q:{"10.4":0.16015},O:{"0":0.4204},H:{"0":18.80739}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js index 36f5629f5f71a2..52c37f998a8dc7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js @@ -1 +1 @@ -module.exports={C:{"4":0.00397,"5":0.00794,"15":0.00794,"17":0.00794,"43":0.00794,"44":0.00794,"47":0.00794,"48":0.02383,"52":0.02383,"56":0.00794,"60":0.00397,"65":0.00397,"68":0.00794,"69":0.00794,"71":0.00794,"72":0.02383,"77":0.00397,"78":0.04369,"79":0.00794,"80":0.00397,"81":0.03972,"82":0.00397,"83":0.01192,"84":0.02383,"85":0.16682,"86":0.03575,"87":0.06752,"88":2.50236,"89":0.0278,_:"2 3 6 7 8 9 10 11 12 13 14 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 45 46 49 50 51 53 54 55 57 58 59 61 62 63 64 66 67 70 73 74 75 76 90 91 3.5 3.6"},D:{"19":0.00397,"22":0.00794,"23":0.01192,"24":0.01192,"25":0.01192,"28":0.00397,"30":0.0993,"31":0.01192,"35":0.00397,"38":0.00794,"39":0.00794,"43":0.00794,"44":0.00397,"46":0.00397,"47":0.00794,"48":0.00397,"49":0.0715,"51":0.00794,"55":0.01986,"56":0.00794,"57":0.01192,"58":0.00397,"62":0.01589,"63":0.05164,"64":0.01589,"66":0.02383,"67":0.01589,"68":0.01589,"69":0.13902,"70":0.03575,"71":1.01683,"72":0.01589,"73":0.00794,"74":0.04766,"75":0.01589,"76":0.09136,"77":0.05164,"78":0.01986,"79":0.11916,"80":0.08341,"81":0.05958,"83":0.1986,"84":0.17874,"85":0.09533,"86":0.10327,"87":0.67127,"88":0.43295,"89":0.78248,"90":16.23754,"91":0.61169,"92":0.0278,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 26 27 29 32 33 34 36 37 40 41 42 45 50 52 53 54 59 60 61 65 93 94"},F:{"58":0.23038,"62":0.04369,"70":0.00397,"71":0.00397,"72":0.00397,"73":0.01192,"74":0.00794,"75":0.61169,"76":0.81029,_:"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 60 63 64 65 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00113,"7.0-7.1":0.0322,"8.1-8.4":0,"9.0-9.2":0.00056,"9.3":0.0435,"10.0-10.2":0.00847,"10.3":0.04859,"11.0-11.2":0.03729,"11.3-11.4":0.01808,"12.0-12.1":0.02599,"12.2-12.4":0.72371,"13.0-13.1":0.03446,"13.2":0.01186,"13.3":0.36214,"13.4-13.7":0.29717,"14.0-14.4":2.89822,"14.5-14.6":0.47795},E:{"4":0,"13":0.00794,"14":0.40117,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.07944,"10.1":0.00794,"11.1":0.00794,"12.1":0.13902,"13.1":0.05164,"14.1":0.09136},B:{"12":0.03178,"13":0.00397,"14":0.00794,"15":0.01589,"16":0.01986,"17":0.00794,"18":0.05561,"84":0.0278,"85":0.00794,"86":0.02383,"88":0.01192,"89":0.0993,"90":1.4895,"91":0.11916,_:"79 80 81 83 87"},P:{"4":0.01144,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.01144,"8.2":0.02073,"9.2":0.02288,"10.1":0.01096,"11.1-11.2":0.03432,"12.0":0.0572,"13.0":0.08009,"14.0":0.34323},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00894,"4.2-4.3":0.00104,"4.4":0,"4.4.3-4.4.4":0.03222},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01483,"9":0.00741,"10":0.01483,"11":0.29658,_:"6 7 5.5"},J:{"7":0,"10":0.01808},N:{_:"10 11"},S:{"2.5":0.10248},R:{_:"0"},M:{"0":0.13262},Q:{"10.4":0.0422},O:{"0":0.80775},H:{"0":4.75387},L:{"0":58.40456}}; +module.exports={C:{"17":0.00787,"40":0.00394,"41":0.00787,"43":0.00787,"47":0.00787,"49":0.00787,"52":0.05512,"56":0.00787,"60":0.01181,"65":0.00787,"72":0.03543,"73":0.00394,"74":0.00394,"78":0.04724,"79":0.00394,"81":0.01969,"82":0.00394,"83":0.01181,"84":0.01575,"85":0.10236,"87":0.01969,"88":0.05118,"89":1.53937,"90":0.78346,"91":0.2874,_:"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 42 44 45 46 48 50 51 53 54 55 57 58 59 61 62 63 64 66 67 68 69 70 71 75 76 77 80 86 92 3.5 3.6"},D:{"23":0.00394,"27":0.01969,"32":0.00787,"33":0.00787,"38":0.01181,"43":0.01181,"44":0.01181,"47":0.00787,"49":0.01181,"51":0.00394,"55":0.00787,"57":0.00787,"58":0.00394,"61":0.00394,"62":0.01181,"63":0.03937,"64":0.01575,"65":0.01969,"67":0.00394,"68":0.00787,"69":0.18504,"70":0.01969,"71":0.00787,"72":0.01969,"73":0.01181,"74":0.05512,"75":0.00787,"76":0.02362,"77":0.1063,"78":0.02362,"79":0.06693,"80":0.08268,"81":0.03937,"83":0.0748,"84":0.03937,"85":0.11811,"86":0.09843,"87":0.73622,"88":0.11024,"89":0.14961,"90":0.5748,"91":15.20076,"92":3.16141,"93":0.01181,_:"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 34 35 36 37 39 40 41 42 45 46 48 50 52 53 54 56 59 60 66 94 95"},F:{"42":0.00787,"57":0.01969,"62":0.01969,"70":0.03543,"75":0.00787,"76":0.06299,"77":1.11417,_:"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 58 60 63 64 65 66 67 68 69 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00443,"7.0-7.1":0.00295,"8.1-8.4":0,"9.0-9.2":0.00541,"9.3":0.02805,"10.0-10.2":0.03887,"10.3":0.04133,"11.0-11.2":0.05118,"11.3-11.4":0.0123,"12.0-12.1":0.03248,"12.2-12.4":0.25243,"13.0-13.1":0.02165,"13.2":0.00492,"13.3":0.07775,"13.4-13.7":0.29819,"14.0-14.4":1.40977,"14.5-14.7":1.98057},E:{"4":0,"10":0.00787,"11":0.00394,"13":0.01969,"14":0.12598,"15":0.00787,_:"0 5 6 7 8 9 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.01575,"10.1":0.00394,"12.1":0.16142,"13.1":0.03543,"14.1":0.29921},B:{"12":0.03937,"13":0.00394,"14":0.00394,"15":0.00787,"16":0.00787,"17":0.00394,"18":0.04724,"83":0.00394,"84":0.01181,"85":0.01969,"89":0.03937,"90":0.03543,"91":1.51181,"92":0.32283,_:"79 80 81 86 87 88"},P:{"4":0.02163,"5.0-5.4":0.02226,"6.2-6.4":0.01019,"7.2-7.4":0.09734,"8.2":0.01046,"9.2":0.01082,"10.1":0.03078,"11.1-11.2":0.03245,"12.0":0.11897,"13.0":0.05408,"14.0":0.46505},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00914,"4.2-4.3":0.00183,"4.4":0,"4.4.3-4.4.4":0.05573},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20866,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":59.61752},S:{"2.5":0.07882},R:{_:"0"},M:{"0":0.14551},Q:{"10.4":0.04244},O:{"0":1.13378},H:{"0":4.70111}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js index 64ee390b8a6d57..88ba453238dc6c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js @@ -1 +1 @@ -module.exports={C:{"52":0.00535,"78":0.09626,"86":0.0107,"87":0.123,"88":1.214,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 89 90 91 3.5 3.6"},D:{"49":0.10161,"63":0.02674,"65":0.03744,"67":0.0107,"69":0.0107,"70":0.0107,"71":0.02139,"73":0.03209,"74":0.07487,"76":0.1444,"77":0.12835,"78":0.03744,"79":0.00535,"80":0.05883,"81":0.11231,"83":0.0107,"84":0.01604,"85":0.30484,"86":0.28344,"87":0.26205,"88":0.1337,"89":1.25678,"90":25.08747,"91":0.5455,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 72 75 92 93 94"},F:{"45":0.04278,"73":0.12835,"75":0.34227,"76":0.20322,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00266,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00533,"9.0-9.2":0,"9.3":0.1066,"10.0-10.2":0.00533,"10.3":0.57029,"11.0-11.2":0.01066,"11.3-11.4":0.05063,"12.0-12.1":0.13325,"12.2-12.4":0.16789,"13.0-13.1":0.03997,"13.2":0.02931,"13.3":0.42372,"13.4-13.7":0.62625,"14.0-14.4":18.83557,"14.5-14.6":4.3971},E:{"4":0,"12":0.0107,"13":0.73802,"14":7.13958,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02674,"10.1":0.71663,"11.1":0.19253,"12.1":0.19253,"13.1":1.79693,"14.1":2.10711},B:{"14":0.00535,"15":0.01604,"16":0.06952,"17":0.02139,"18":0.14974,"89":0.12835,"90":6.69035,"91":0.27275,_:"12 13 79 80 81 83 84 85 86 87 88"},P:{"4":0.15134,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.01081,"8.2":0.05405,"9.2":0.03243,"10.1":0.01096,"11.1-11.2":0.09729,"12.0":0.05405,"13.0":0.31348,"14.0":3.76178},I:{"0":0,"3":0,"4":0.00005,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0001,"4.4":0,"4.4.3-4.4.4":0.0045},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00563,"11":1.16023,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.0093},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.37216},Q:{"10.4":0},O:{"0":0.1163},H:{"0":0.07047},L:{"0":16.61046}}; +module.exports={C:{"48":0.00526,"78":0.20498,"87":0.01051,"89":0.94608,"90":0.46253,"91":0.00526,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 88 92 3.5 3.6"},D:{"38":0.01051,"49":0.07358,"63":0.07884,"65":0.01051,"67":0.01051,"73":0.02628,"74":0.11563,"76":0.01051,"77":0.25229,"78":0.02102,"79":0.00526,"80":0.01051,"81":0.0841,"83":0.26806,"84":0.19447,"85":0.23126,"86":0.15768,"87":0.15242,"88":0.14717,"89":0.15242,"90":0.41522,"91":20.26188,"92":3.80534,_:"4 5 6 7 8 9 10 11 12 13 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 64 66 68 69 70 71 72 75 93 94 95"},F:{"45":0.03679,"69":0.00526,"76":0.38894,"77":0.84096,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00296,"6.0-6.1":0.00296,"7.0-7.1":0,"8.1-8.4":0.00889,"9.0-9.2":0.09487,"9.3":0.25792,"10.0-10.2":0,"10.3":0.40319,"11.0-11.2":0.12451,"11.3-11.4":0.06819,"12.0-12.1":0.0415,"12.2-12.4":0.29053,"13.0-13.1":0.08894,"13.2":0.00889,"13.3":0.61961,"13.4-13.7":0.32611,"14.0-14.4":3.46861,"14.5-14.7":22.11908},E:{"4":0,"12":0.01051,"13":0.1787,"14":1.87114,"15":0.02628,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01051,"10.1":0.59393,"11.1":0.15768,"12.1":0.10512,"13.1":1.54001,"14.1":8.22038},B:{"16":0.00526,"17":0.01051,"18":0.13666,"81":0.00526,"87":0.01577,"89":0.00526,"90":0.01577,"91":6.63833,"92":1.47694,_:"12 13 14 15 79 80 83 84 85 86 88"},P:{"4":0.16278,"5.0-5.4":0.01085,"6.2-6.4":0.01019,"7.2-7.4":0.09734,"8.2":0.07596,"9.2":0.01085,"10.1":0.03078,"11.1-11.2":0.03256,"12.0":0.03256,"13.0":0.08682,"14.0":4.36246},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.00526,"11":0.85673,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00474},N:{_:"10 11"},L:{"0":15.05521},S:{"2.5":0},R:{_:"0"},M:{"0":0.11383},Q:{"10.4":0},O:{"0":0.00949},H:{"0":0.02694}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js index da60073ebb3b58..5f710eb5914874 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js @@ -1 +1 @@ -module.exports={C:{"32":0.01155,"48":0.0154,"52":0.05004,"66":0.00385,"68":0.00385,"72":0.0154,"73":0.0077,"76":0.0077,"78":0.05389,"80":0.01925,"82":0.01155,"83":0.00385,"84":0.0077,"85":0.0154,"86":0.04234,"87":0.04234,"88":2.42102,"89":0.07313,_:"2 3 4 5 6 7 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 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 74 75 77 79 81 90 91 3.5 3.6"},D:{"38":0.06158,"47":0.05774,"49":0.63124,"50":0.01925,"53":0.06543,"55":0.08083,"60":0.0077,"62":0.00385,"65":0.02694,"67":0.01155,"68":0.02309,"70":0.01155,"71":0.0077,"72":0.01925,"73":0.07313,"74":0.06928,"75":0.02694,"77":0.00385,"78":0.0077,"79":0.08468,"80":0.05004,"81":0.06928,"83":0.05389,"84":0.03079,"85":0.02309,"86":0.03079,"87":0.24249,"88":0.26173,"89":0.81984,"90":21.90081,"91":0.82754,"92":0.06928,_:"4 5 6 7 8 9 10 11 12 13 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 51 52 54 56 57 58 59 61 63 64 66 69 76 93 94"},F:{"28":0.01925,"36":0.0077,"40":0.0077,"46":0.01925,"68":0.0077,"73":0.05004,"75":0.35411,"76":0.34641,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01331,"5.0-5.1":0.0074,"6.0-6.1":0.05769,"7.0-7.1":0.11095,"8.1-8.4":0.06805,"9.0-9.2":0.06509,"9.3":0.50444,"10.0-10.2":0.04882,"10.3":0.40828,"11.0-11.2":0.03994,"11.3-11.4":0.08432,"12.0-12.1":0.09024,"12.2-12.4":0.34172,"13.0-13.1":0.06213,"13.2":0.04142,"13.3":0.1997,"13.4-13.7":0.46893,"14.0-14.4":8.73814,"14.5-14.6":2.15088},E:{"4":0,"11":0.0077,"12":0.0154,"13":0.1886,"14":2.91369,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.04234,"9.1":0.0077,"10.1":0.03464,"11.1":0.06928,"12.1":0.10392,"13.1":0.32717,"14.1":0.61584},B:{"12":0.00385,"14":0.03464,"15":0.00385,"16":0.0077,"17":0.01925,"18":0.06928,"84":0.01155,"85":0.00385,"86":0.00385,"87":0.00385,"88":0.01155,"89":0.06158,"90":2.01688,"91":0.13087,_:"13 79 80 81 83"},P:{"4":0.67324,"5.0-5.4":0.01021,"6.2-6.4":0.0725,"7.2-7.4":0.09322,"8.2":0.04115,"9.2":0.14501,"10.1":0.05179,"11.1-11.2":0.09322,"12.0":0.10358,"13.0":0.32109,"14.0":1.85401},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.05949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01292,"11":0.16798,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.34446},Q:{"10.4":0.01845},O:{"0":2.26972},H:{"0":2.76028},L:{"0":40.69573}}; +module.exports={C:{"29":0.00388,"32":0.01165,"44":0.01165,"48":0.01165,"52":0.05049,"60":0.00388,"61":0.00388,"65":0.00388,"66":0.01165,"68":0.00388,"72":0.01554,"73":0.00388,"78":0.02719,"80":0.01165,"81":0.00777,"82":0.00388,"83":0.00777,"84":0.00777,"85":0.00777,"86":0.0233,"87":0.00388,"88":0.02719,"89":1.47204,"90":0.74184,"91":0.03496,_:"2 3 4 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 45 46 47 49 50 51 53 54 55 56 57 58 59 62 63 64 67 69 70 71 74 75 76 77 79 92 3.5 3.6"},D:{"26":0.01165,"34":0.01165,"38":0.0738,"47":0.11264,"49":0.27965,"50":0.01165,"55":0.06214,"60":0.00777,"62":0.02719,"63":0.00777,"65":0.00777,"66":0.00388,"67":0.01165,"68":0.01165,"69":0.00388,"70":0.00777,"72":0.01942,"73":0.04272,"74":0.03884,"75":0.01942,"76":0.00777,"77":0.00388,"78":0.00777,"79":0.20197,"80":0.03884,"81":0.06214,"83":0.03496,"84":0.0233,"85":0.02719,"86":0.01942,"87":0.0738,"88":0.10487,"89":0.11652,"90":0.37286,"91":19.83947,"92":4.4666,"93":0.03107,_:"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 39 40 41 42 43 44 45 46 48 51 52 53 54 56 57 58 59 61 64 71 94 95"},F:{"28":0.02719,"36":0.01942,"46":0.00777,"63":0.00388,"68":0.00777,"75":0.00777,"76":0.21362,"77":0.55541,_:"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 64 65 66 67 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02987,"7.0-7.1":0.12421,"8.1-8.4":0.01887,"9.0-9.2":0.04402,"9.3":0.48898,"10.0-10.2":0.01729,"10.3":0.30816,"11.0-11.2":0.08805,"11.3-11.4":0.06761,"12.0-12.1":0.06289,"12.2-12.4":0.24527,"13.0-13.1":0.04874,"13.2":0.03773,"13.3":0.27986,"13.4-13.7":0.43552,"14.0-14.4":2.40242,"14.5-14.7":9.74334},E:{"4":0,"9":0.00777,"11":0.01165,"12":0.01554,"13":0.12429,"14":0.76515,"15":0.00777,_:"0 5 6 7 8 10 3.1 3.2 5.1 6.1 7.1","9.1":0.20974,"10.1":0.02719,"11.1":0.06214,"12.1":0.08933,"13.1":0.35733,"14.1":2.34982},B:{"14":0.03107,"17":0.03107,"18":0.07768,"84":0.00777,"88":0.01165,"89":0.00777,"90":0.01165,"91":1.4565,"92":0.35344,_:"12 13 15 16 79 80 81 83 85 86 87"},P:{"4":0.64509,"5.0-5.4":0.01019,"6.2-6.4":0.02048,"7.2-7.4":0.14567,"8.2":0.01024,"9.2":0.05202,"10.1":0.03121,"11.1-11.2":0.08324,"12.0":0.08324,"13.0":0.32254,"14.0":2.04972},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00191,"4.2-4.3":0.00765,"4.4":0,"4.4.3-4.4.4":0.02714},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15924,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":40.41626},S:{"2.5":0},R:{_:"0"},M:{"0":0.32415},Q:{"10.4":0},O:{"0":2.4097},H:{"0":2.52454}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js index 0089e6db7e7317..2707ccce4c8921 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js @@ -1 +1 @@ -module.exports={C:{"17":0.00428,"43":0.00856,"47":0.00428,"48":0.00856,"49":0.00428,"52":0.03851,"55":0.00856,"56":0.00428,"60":0.01284,"61":0.00428,"68":0.00856,"69":0.00856,"72":0.0214,"73":0.00856,"74":0.01284,"76":0.00856,"78":0.05563,"79":0.01284,"80":0.01284,"81":0.00428,"82":0.01284,"83":0.00856,"84":0.01284,"85":0.02567,"86":0.02567,"87":0.05563,"88":2.46043,"89":0.03423,_:"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 44 45 46 50 51 53 54 57 58 59 62 63 64 65 66 67 70 71 75 77 90 91 3.5 3.6"},D:{"38":0.0214,"44":0.00428,"47":0.00428,"49":0.16688,"53":0.02995,"58":0.00856,"62":0.00856,"63":0.0214,"64":0.00856,"65":0.02995,"66":0.00856,"67":0.01712,"68":0.01712,"69":0.03423,"70":0.05991,"71":0.01284,"72":0.01712,"73":0.01284,"74":0.00856,"75":0.01284,"76":0.0214,"77":0.01712,"78":0.01284,"79":0.07274,"80":0.03851,"81":0.05135,"83":0.05135,"84":0.05135,"85":0.05991,"86":0.07274,"87":0.2439,"88":0.25674,"89":0.70604,"90":27.71936,"91":1.08259,"92":0.00856,_:"4 5 6 7 8 9 10 11 12 13 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 48 50 51 52 54 55 56 57 59 60 61 93 94"},F:{"73":0.14977,"74":0.01284,"75":0.77022,"76":0.71031,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00379,"6.0-6.1":0.00354,"7.0-7.1":0.01187,"8.1-8.4":0.00025,"9.0-9.2":0.00455,"9.3":0.03359,"10.0-10.2":0.00076,"10.3":0.05303,"11.0-11.2":0.00833,"11.3-11.4":0.02323,"12.0-12.1":0.00732,"12.2-12.4":0.03232,"13.0-13.1":0.00732,"13.2":0.00278,"13.3":0.03131,"13.4-13.7":0.10353,"14.0-14.4":1.64442,"14.5-14.6":0.41944},E:{"4":0,"12":0.00428,"13":0.00856,"14":0.32948,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":1.53188,"10.1":0.00428,"11.1":0.01284,"12.1":0.0214,"13.1":0.08558,"14.1":0.29097},B:{"15":0.00428,"16":0.00428,"17":0.01712,"18":0.06846,"84":0.01284,"85":0.00856,"86":0.00428,"87":0.00856,"88":0.00856,"89":0.04279,"90":1.67309,"91":0.14549,_:"12 13 14 79 80 81 83"},P:{"4":0.6026,"5.0-5.4":0.01021,"6.2-6.4":0.03064,"7.2-7.4":0.54132,"8.2":0.01021,"9.2":0.12256,"10.1":0.04085,"11.1-11.2":0.41876,"12.0":0.21448,"13.0":0.85794,"14.0":2.14485},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0042,"4.2-4.3":0.01201,"4.4":0,"4.4.3-4.4.4":0.09248},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00949,"11":0.25153,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.05149},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.14875},Q:{"10.4":0},O:{"0":0.30893},H:{"0":0.50371},L:{"0":50.99032}}; +module.exports={C:{"17":0.00829,"39":0.00829,"43":0.00829,"47":0.00829,"48":0.00415,"49":0.00415,"52":0.04561,"56":0.00415,"60":0.00829,"61":0.00829,"66":0.00829,"67":0.00415,"68":0.00415,"69":0.00829,"72":0.02073,"73":0.00829,"74":0.00415,"76":0.00415,"78":0.07463,"79":0.02488,"80":0.00415,"81":0.00829,"82":0.00829,"83":0.00415,"84":0.02073,"85":0.02073,"86":0.01244,"87":0.01244,"88":0.05804,"89":1.57548,"90":0.9287,"91":0.02073,_:"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 40 41 42 44 45 46 50 51 53 54 55 57 58 59 62 63 64 65 70 71 75 77 92 3.5 3.6"},D:{"24":0.00829,"38":0.02073,"42":0.00415,"47":0.00415,"49":0.07048,"53":0.00415,"59":0.00415,"60":0.00415,"62":0.00829,"63":0.01244,"65":0.01244,"66":0.01244,"67":0.01244,"68":0.00829,"69":0.04975,"70":0.03317,"71":0.01244,"72":0.01244,"73":0.01244,"74":0.01244,"75":0.01244,"76":0.02488,"77":0.01244,"78":0.02488,"79":0.11609,"80":0.03317,"81":0.04561,"83":0.03317,"84":0.02902,"85":0.11194,"86":0.06219,"87":0.16169,"88":0.0995,"89":0.19072,"90":0.43118,"91":22.30548,"92":5.76709,"93":0.00829,_:"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 43 44 45 46 48 50 51 52 54 55 56 57 58 61 64 94 95"},F:{"75":0.00415,"76":0.38972,"77":1.38891,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00216,"6.0-6.1":0.0027,"7.0-7.1":0.01704,"8.1-8.4":0.00027,"9.0-9.2":0.0073,"9.3":0.03245,"10.0-10.2":0.00135,"10.3":0.01839,"11.0-11.2":0.00703,"11.3-11.4":0.01515,"12.0-12.1":0.00514,"12.2-12.4":0.02218,"13.0-13.1":0.00514,"13.2":0.00297,"13.3":0.01704,"13.4-13.7":0.07816,"14.0-14.4":0.3478,"14.5-14.7":1.99348},E:{"4":0,"13":0.01658,"14":0.1078,"15":0.01244,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.47264,"11.1":0.02073,"12.1":0.01658,"13.1":0.09536,"14.1":0.37314},B:{"14":0.00829,"15":0.00415,"16":0.00415,"17":0.01244,"18":0.06634,"84":0.00829,"85":0.00829,"87":0.00415,"88":0.00415,"89":0.03731,"90":0.02902,"91":1.58377,"92":0.39802,_:"12 13 79 80 81 83 86"},P:{"4":0.52973,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.50936,"8.2":0.07596,"9.2":0.09168,"10.1":0.04075,"11.1-11.2":0.40749,"12.0":0.18337,"13.0":0.55011,"14.0":2.60791},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.01112,"4.4":0,"4.4.3-4.4.4":0.07392},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01333,"9":0.00444,"11":0.29318,_:"6 7 10 5.5"},J:{"7":0,"10":0.05854},N:{_:"10 11"},L:{"0":52.80412},S:{"2.5":0},R:{_:"0"},M:{"0":0.15806},Q:{"10.4":0},O:{"0":0.31612},H:{"0":0.46554}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js index b344e2c2dbb094..4587ef73b6d3d8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js @@ -1 +1 @@ -module.exports={C:{"17":0.01035,"52":0.02589,"60":0.01035,"66":0.00518,"68":0.01553,"72":0.01035,"77":0.01035,"78":0.07766,"79":0.01035,"80":0.01035,"81":0.01035,"82":0.01035,"83":0.01035,"84":0.01553,"85":0.01035,"86":0.01553,"87":0.04142,"88":1.95691,"89":0.02071,_:"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 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 90 91 3.5 3.6"},D:{"24":0.01035,"38":0.01035,"47":0.01035,"49":0.15013,"53":0.03624,"55":0.01035,"56":0.00518,"58":0.01035,"61":0.36239,"62":0.00518,"63":0.02589,"65":0.01035,"66":0.00518,"67":0.01035,"68":0.01553,"69":0.01035,"70":0.01035,"71":0.01035,"72":0.01035,"73":0.12943,"74":0.02071,"75":0.03624,"76":0.02589,"77":0.01553,"78":0.03106,"79":0.07766,"80":0.05177,"81":0.0673,"83":0.07766,"84":0.10872,"85":0.10354,"86":0.1346,"87":0.35721,"88":0.18637,"89":0.71443,"90":36.33219,"91":1.2839,"92":0.03624,_:"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 43 44 45 46 48 50 51 52 54 57 59 60 64 93 94"},F:{"36":0.01035,"71":0.00518,"72":0.00518,"73":0.53323,"75":1.83266,"76":0.74549,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00171,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00739,"6.0-6.1":0.00398,"7.0-7.1":0.00284,"8.1-8.4":0.00171,"9.0-9.2":0.00114,"9.3":0.04035,"10.0-10.2":0.00341,"10.3":0.0466,"11.0-11.2":0.00909,"11.3-11.4":0.05399,"12.0-12.1":0.01364,"12.2-12.4":0.05342,"13.0-13.1":0.01705,"13.2":0.00512,"13.3":0.05115,"13.4-13.7":0.21654,"14.0-14.4":4.19773,"14.5-14.6":0.67973},E:{"4":0,"13":0.02589,"14":0.41934,_:"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.01553,"12.1":0.02071,"13.1":0.12943,"14.1":0.22261},B:{"16":0.00518,"17":0.01035,"18":0.08801,"80":0.00518,"84":0.01553,"85":0.01035,"86":0.01035,"87":0.00518,"88":0.00518,"89":0.05177,"90":2.9716,"91":0.11389,_:"12 13 14 15 79 81 83"},P:{"4":0.11439,"5.0-5.4":0.02061,"6.2-6.4":0.1561,"7.2-7.4":0.16638,"8.2":0.03018,"9.2":0.0416,"10.1":0.01041,"11.1-11.2":0.16638,"12.0":0.06239,"13.0":0.29117,"14.0":1.95502},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00762,"4.2-4.3":0.01396,"4.4":0,"4.4.3-4.4.4":0.07488},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01624,"10":0.00541,"11":0.21649,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.13022},Q:{"10.4":0},O:{"0":0.14469},H:{"0":0.19178},L:{"0":40.38838}}; +module.exports={C:{"5":0.00491,"15":0.00491,"17":0.00981,"52":0.02453,"60":0.01472,"66":0.00981,"67":0.00491,"68":0.01472,"72":0.00491,"78":0.07359,"79":0.00981,"80":0.00491,"81":0.00981,"82":0.00491,"83":0.00491,"84":0.00981,"85":0.00491,"86":0.00981,"87":0.00981,"88":0.04415,"89":1.18725,"90":0.71137,"91":0.00981,_:"2 3 4 6 7 8 9 10 11 12 13 14 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 53 54 55 56 57 58 59 61 62 63 64 65 69 70 71 73 74 75 76 77 92 3.5 3.6"},D:{"23":0.00491,"24":0.00981,"38":0.01472,"43":0.00491,"47":0.01472,"49":0.12756,"51":0.00981,"53":0.00981,"55":0.01472,"58":0.00981,"61":0.25021,"63":0.02453,"65":0.00981,"67":0.01472,"68":0.00981,"69":0.00981,"70":0.00981,"71":0.00981,"72":0.00981,"73":0.01962,"74":0.01962,"75":0.04415,"76":0.02453,"77":0.01472,"78":0.02453,"79":0.15699,"80":0.03925,"81":0.06378,"83":0.04906,"84":0.0785,"85":0.0785,"86":0.09812,"87":0.35814,"88":0.07359,"89":0.14718,"90":0.35323,"91":28.91106,"92":6.7065,"93":0.02453,"94":0.00491,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 52 54 56 57 59 60 62 64 66 95"},F:{"36":0.01472,"71":0.00491,"75":0.00981,"76":1.17744,"77":1.59936,_:"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 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00065,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00908,"6.0-6.1":0.00519,"7.0-7.1":0.00324,"8.1-8.4":0.0013,"9.0-9.2":0.00065,"9.3":0.03502,"10.0-10.2":0.00324,"10.3":0.04281,"11.0-11.2":0.00908,"11.3-11.4":0.01946,"12.0-12.1":0.01297,"12.2-12.4":0.0467,"13.0-13.1":0.01427,"13.2":0.00584,"13.3":0.04735,"13.4-13.7":0.19198,"14.0-14.4":0.92682,"14.5-14.7":4.80727},E:{"4":0,"13":0.01472,"14":0.12265,"15":0.00491,_:"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.00981,"12.1":0.01962,"13.1":0.10793,"14.1":0.45135},B:{"16":0.00491,"17":0.00491,"18":0.0785,"84":0.00981,"85":0.00491,"87":0.00491,"89":0.02453,"90":0.01472,"91":2.47753,"92":0.59363,_:"12 13 14 15 79 80 81 83 86 88"},P:{"4":0.13536,"5.0-5.4":0.01019,"6.2-6.4":0.02048,"7.2-7.4":0.22906,"8.2":0.01024,"9.2":0.04165,"10.1":0.09215,"11.1-11.2":0.16659,"12.0":0.04165,"13.0":0.19783,"14.0":2.23857},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00327,"4.2-4.3":0.0072,"4.4":0,"4.4.3-4.4.4":0.03536},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02624,"9":0.00525,"10":0.0105,"11":0.18369,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":42.65309},S:{"2.5":0},R:{_:"0"},M:{"0":0.1426},Q:{"10.4":0},O:{"0":0.13242},H:{"0":0.18323}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js index c7d1dcd41f6775..9bd54ecc586fcc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js @@ -1 +1 @@ -module.exports={C:{"45":0.02234,"48":0.05808,"52":0.02234,"63":0.00447,"68":0.00447,"78":0.06255,"79":0.00894,"83":0.03574,"84":0.00447,"85":0.02681,"86":0.00894,"87":0.03128,"88":1.30912,"89":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 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 64 65 66 67 69 70 71 72 73 74 75 76 77 80 81 82 90 91 3.5 3.6"},D:{"23":0.00447,"47":0.00894,"49":0.2368,"58":0.0134,"60":0.00447,"63":0.02681,"65":0.02234,"67":0.02234,"70":0.00894,"71":0.00894,"72":0.02234,"73":0.0134,"74":0.41999,"75":0.05362,"76":0.34404,"77":0.05808,"78":0.0134,"79":0.03128,"80":0.03574,"81":0.01787,"83":0.04021,"84":0.01787,"85":0.01787,"86":0.04915,"87":0.16085,"88":0.18319,"89":0.88913,"90":20.62429,"91":0.6702,"92":0.02234,_:"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 59 61 62 64 66 68 69 93 94"},F:{"73":0.02681,"75":0.15638,"76":0.18319,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00993,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00199,"6.0-6.1":0,"7.0-7.1":0.00596,"8.1-8.4":0.00199,"9.0-9.2":0.00199,"9.3":0.1509,"10.0-10.2":0.00596,"10.3":0.19855,"11.0-11.2":0.08935,"11.3-11.4":0.02581,"12.0-12.1":0.1092,"12.2-12.4":0.26605,"13.0-13.1":0.03772,"13.2":0.01588,"13.3":0.23826,"13.4-13.7":0.69095,"14.0-14.4":15.02411,"14.5-14.6":2.24955},E:{"4":0,"7":0.00894,"11":0.00447,"12":0.00894,"13":0.07596,"14":3.82908,_:"0 5 6 8 9 10 3.1 3.2 6.1 7.1","5.1":0.04915,"9.1":0.00447,"10.1":0.01787,"11.1":0.05808,"12.1":0.16978,"13.1":0.68807,"14.1":1.05892},B:{"12":0.00894,"13":0.07149,"14":0.01787,"15":0.03128,"16":0.04915,"17":0.08042,"18":0.31276,"84":0.00894,"85":0.00447,"86":0.05362,"87":0.01787,"88":0.02681,"89":0.11617,"90":6.55456,"91":0.37978,_:"79 80 81 83"},P:{"4":0.06256,"5.0-5.4":0.01035,"6.2-6.4":0.01043,"7.2-7.4":0.33364,"8.2":0.03078,"9.2":0.27108,"10.1":0.0417,"11.1-11.2":0.8341,"12.0":0.27108,"13.0":0.91751,"14.0":5.30696},I:{"0":0,"3":0,"4":0.00207,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00277,"4.4":0,"4.4.3-4.4.4":0.03388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.64339,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.14383},Q:{"10.4":0},O:{"0":0.01106},H:{"0":0.0419},L:{"0":31.70099}}; +module.exports={C:{"45":0.01785,"48":0.06693,"52":0.01785,"63":0.00446,"70":0.00446,"78":0.04908,"81":0.01339,"85":0.02231,"87":0.00446,"88":0.08478,"89":0.90132,"90":0.4819,"91":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 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 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 82 83 84 86 92 3.5 3.6"},D:{"38":0.00446,"49":0.1874,"58":0.00892,"65":0.01339,"67":0.00892,"69":0.00446,"72":0.01785,"73":0.00446,"74":0.46405,"75":0.04908,"76":0.34357,"77":0.02231,"78":0.00892,"79":0.0357,"80":0.01785,"81":0.01785,"83":0.05801,"84":0.02231,"85":0.00892,"86":0.02677,"87":0.11155,"88":0.07585,"89":0.07585,"90":0.41943,"91":18.43252,"92":2.82445,"93":0.02231,_:"4 5 6 7 8 9 10 11 12 13 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 63 64 66 68 70 71 94 95"},F:{"76":0.06247,"77":0.27664,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01041,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00416,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01458,"9.0-9.2":0,"9.3":0.13952,"10.0-10.2":0.01874,"10.3":0.17076,"11.0-11.2":0.05623,"11.3-11.4":0.06456,"12.0-12.1":0.1062,"12.2-12.4":0.16243,"13.0-13.1":0.04165,"13.2":0.01041,"13.3":0.19991,"13.4-13.7":0.43939,"14.0-14.4":3.11532,"14.5-14.7":15.49328},E:{"4":0,"7":0.00446,"12":0.00446,"13":0.05354,"14":0.78085,_:"0 5 6 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01785,"11.1":0.05354,"12.1":0.13386,"13.1":0.49528,"14.1":3.36881},B:{"12":0.00446,"13":0.0357,"14":0.01339,"15":0.02677,"16":0.04016,"17":0.04462,"18":0.16509,"83":0.00892,"86":0.05801,"89":0.03123,"90":0.04462,"91":6.26911,"92":1.2092,_:"79 80 81 84 85 87 88"},P:{"4":0.10474,"5.0-5.4":0.05229,"6.2-6.4":0.01019,"7.2-7.4":0.34563,"8.2":0.01046,"9.2":0.17805,"10.1":0.01047,"11.1-11.2":0.81694,"12.0":0.16758,"13.0":0.40847,"14.0":5.95946},I:{"0":0,"3":0,"4":0.00283,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00142,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.05667},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.53098,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":32.56278},S:{"2.5":0},R:{_:"0"},M:{"0":0.12737},Q:{"10.4":0},O:{"0":0},H:{"0":0.02622}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js index aa2adf73864a2a..39ec219936c560 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js @@ -1 +1 @@ -module.exports={C:{"18":0.0056,"47":0.0028,"68":0.0028,"69":0.0056,"70":0.0084,"78":0.06442,"79":0.0056,"81":0.01401,"86":0.0084,"87":0.03641,"88":0.62182,"89":0.10924,_:"2 3 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 71 72 73 74 75 76 77 80 82 83 84 85 90 91 3.5 3.6"},D:{"18":0.0028,"30":0.0056,"43":0.0084,"49":0.29971,"53":0.0028,"55":0.0056,"56":0.0028,"60":0.01401,"63":0.01681,"65":0.0056,"67":0.03641,"69":0.01401,"70":0.0056,"71":0.0028,"73":0.0084,"74":0.02521,"75":0.0084,"76":0.02801,"78":0.01961,"79":0.01681,"80":0.04762,"81":0.01961,"83":0.0084,"84":0.0112,"85":0.04762,"86":0.04202,"87":0.32772,"88":0.07283,"89":0.71986,"90":16.61833,"91":0.62182,"92":0.02801,_:"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 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 54 57 58 59 61 62 64 66 68 72 77 93 94"},F:{"73":0.0028,"74":0.03641,"75":0.12324,"76":0.24089,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01766,"8.1-8.4":0,"9.0-9.2":0.00065,"9.3":0.0582,"10.0-10.2":0.01112,"10.3":0.03793,"11.0-11.2":0.06277,"11.3-11.4":0.04512,"12.0-12.1":0.04054,"12.2-12.4":0.17328,"13.0-13.1":0.08174,"13.2":0.0085,"13.3":0.21644,"13.4-13.7":0.34657,"14.0-14.4":4.12152,"14.5-14.6":0.92592},E:{"4":0,"10":0.0028,"12":0.01681,"13":0.03081,"14":0.36413,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0056,"11.1":0.02801,"12.1":0.02241,"13.1":0.19607,"14.1":0.23248},B:{"12":0.02241,"13":0.03921,"15":0.0084,"16":0.0084,"17":0.0028,"18":0.07843,"84":0.0028,"85":0.01681,"87":0.0056,"88":0.01401,"89":0.06722,"90":1.26885,"91":0.03641,_:"14 79 80 81 83 86"},P:{"4":0.3874,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.1937,"8.2":0.01019,"9.2":0.39759,"10.1":0.02039,"11.1-11.2":0.21409,"12.0":0.22428,"13.0":0.74421,"14.0":0.9685},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,"4.4":0,"4.4.3-4.4.4":0.00617},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04202,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.0216},Q:{"10.4":0},O:{"0":5.48564},H:{"0":0.50435},L:{"0":61.38343}}; +module.exports={C:{"29":0.00848,"53":0.00283,"68":0.00283,"72":0.00848,"78":0.03394,"86":0.00566,"87":0.0198,"88":0.05373,"89":0.39592,"90":0.19513,"91":0.03394,_:"2 3 4 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 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 92 3.5 3.6"},D:{"18":0.00566,"24":0.00283,"40":0.00566,"49":0.09898,"55":0.00283,"60":0.00566,"63":0.00283,"65":0.01414,"66":0.00566,"67":0.02262,"74":0.01414,"75":0.00283,"76":0.0509,"78":0.00283,"79":0.03676,"80":0.02545,"81":0.00848,"83":0.01131,"84":0.02545,"85":0.00848,"86":0.03676,"87":0.14706,"88":0.07636,"89":0.0905,"90":0.34502,"91":13.2209,"92":3.28614,"93":0.02262,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 61 62 64 68 69 70 71 72 73 77 94 95"},F:{"74":0.01131,"76":0.00848,"77":0.26866,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01192,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02458,"10.0-10.2":0.00149,"10.3":0.0365,"11.0-11.2":0.08344,"11.3-11.4":0.02384,"12.0-12.1":0.03948,"12.2-12.4":0.11845,"13.0-13.1":0.01713,"13.2":0.01117,"13.3":0.13931,"13.4-13.7":0.35311,"14.0-14.4":2.38686,"14.5-14.7":3.73823},E:{"4":0,"12":0.01414,"13":0.03394,"14":0.23755,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1","9.1":0.00848,"10.1":0.01131,"11.1":0.03111,"12.1":0.08484,"13.1":0.11878,"14.1":0.31391},B:{"12":0.01131,"13":0.00848,"14":0.00283,"15":0.00283,"18":0.07353,"84":0.0198,"85":0.00566,"87":0.02262,"89":0.03111,"90":0.02545,"91":1.36592,"92":0.29411,_:"16 17 79 80 81 83 86 88"},P:{"4":0.40859,"5.0-5.4":0.01085,"6.2-6.4":0.01021,"7.2-7.4":0.19408,"8.2":0.07596,"9.2":0.3473,"10.1":0.03078,"11.1-11.2":0.16343,"12.0":0.08172,"13.0":0.32687,"14.0":1.50156},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.10464,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":62.30478},S:{"2.5":0},R:{_:"0"},M:{"0":0.02152},Q:{"10.4":0},O:{"0":5.54396},H:{"0":0.35308}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js index 75fa71962307f7..2d15512944f7a8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js @@ -1 +1 @@ -module.exports={C:{"4":0.00449,"15":0.00449,"17":0.00899,"18":0.01348,"29":0.00899,"33":0.00899,"34":0.02247,"40":0.00899,"43":0.00449,"47":0.03594,"49":0.01797,"52":0.02247,"56":0.01348,"57":0.00899,"60":0.01797,"72":0.00899,"75":0.00899,"78":0.22016,"81":0.00899,"82":0.01797,"84":0.01348,"85":0.01797,"86":0.02247,"87":0.11682,"88":2.43071,"89":0.09885,"90":0.00449,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 19 20 21 22 23 24 25 26 27 28 30 31 32 35 36 37 38 39 41 42 44 45 46 48 50 51 53 54 55 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 79 80 83 91 3.5 3.6"},D:{"33":0.00449,"40":0.00899,"43":0.03145,"49":0.04493,"50":0.00449,"53":0.03594,"55":0.00449,"57":0.00899,"63":0.01348,"64":0.00449,"65":0.01348,"66":0.00899,"67":0.05841,"68":0.00449,"69":0.00899,"70":0.03145,"71":0.03594,"72":0.00449,"73":0.07189,"74":0.03594,"75":0.04493,"76":0.01797,"77":0.03594,"78":0.04044,"79":0.08986,"80":0.07189,"81":0.0629,"83":0.05841,"84":0.04942,"85":0.04942,"86":0.1258,"87":0.23364,"88":0.46278,"89":1.06933,"90":23.43549,"91":0.77729,"92":0.00449,_:"4 5 6 7 8 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 51 52 54 56 58 59 60 61 62 93 94"},F:{"72":0.00449,"73":0.04493,"74":0.01797,"75":0.44031,"76":0.62003,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01013,"6.0-6.1":0.01392,"7.0-7.1":0.18861,"8.1-8.4":0,"9.0-9.2":0.00084,"9.3":0.1,"10.0-10.2":0.00295,"10.3":0.05021,"11.0-11.2":0.0557,"11.3-11.4":0.0308,"12.0-12.1":0.15486,"12.2-12.4":0.08861,"13.0-13.1":0.00886,"13.2":0.0097,"13.3":0.04599,"13.4-13.7":0.18903,"14.0-14.4":2.40471,"14.5-14.6":0.55023},E:{"4":0,"12":0.03145,"13":0.00899,"14":0.75932,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.03594,"10.1":0.00899,"11.1":0.03594,"12.1":0.0629,"13.1":0.07189,"14.1":0.13928},B:{"12":0.04942,"13":0.05841,"14":0.03594,"15":0.03145,"16":0.0674,"17":0.08537,"18":0.23813,"80":0.01797,"81":0.00449,"84":0.03145,"85":0.02247,"86":0.00449,"87":0.01797,"88":0.03145,"89":0.15276,"90":4.77157,"91":0.24262,_:"79 83"},P:{"4":0.46297,"5.0-5.4":0.01021,"6.2-6.4":0.02044,"7.2-7.4":0.72018,"8.2":0.04115,"9.2":0.08231,"10.1":0.05144,"11.1-11.2":0.18519,"12.0":0.08231,"13.0":0.81278,"14.0":2.07823},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00107,"4.2-4.3":0.00193,"4.4":0,"4.4.3-4.4.4":0.05758},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01237,"9":0.03093,"11":1.81231,_:"6 7 10 5.5"},J:{"7":0,"10":0.00551},N:{_:"10 11"},S:{"2.5":0.02203},R:{_:"0"},M:{"0":0.14321},Q:{"10.4":0.01652},O:{"0":1.35497},H:{"0":0.91256},L:{"0":48.12205}}; +module.exports={C:{"29":0.0041,"34":0.02458,"38":0.0041,"40":0.00819,"44":0.0041,"47":0.0041,"48":0.00819,"49":0.00819,"50":0.0041,"52":0.05326,"56":0.01229,"60":0.00819,"72":0.00819,"74":0.00819,"75":0.0041,"78":0.09013,"81":0.0041,"84":0.00819,"85":0.00819,"86":0.01229,"87":0.01229,"88":0.06965,"89":1.46263,"90":0.74975,"91":0.03278,_:"2 3 4 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 39 41 42 43 45 46 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 76 77 79 80 82 83 92 3.5 3.6"},D:{"11":0.00819,"40":0.00819,"42":0.00819,"43":0.04916,"49":0.05326,"50":0.0041,"57":0.01639,"58":0.0041,"60":0.00819,"61":0.00819,"62":0.00819,"63":0.01229,"66":0.01229,"67":0.02458,"68":0.01639,"69":0.02049,"70":0.01229,"71":0.0041,"72":0.00819,"73":0.0041,"74":0.02868,"75":0.01229,"76":0.02458,"77":0.01229,"78":0.0041,"79":0.06146,"80":0.01639,"81":0.08194,"83":0.04916,"84":0.08604,"85":0.02868,"86":0.12291,"87":0.14749,"88":0.20075,"89":0.25811,"90":0.50803,"91":18.01451,"92":4.43705,"93":0.0041,_:"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 41 44 45 46 47 48 51 52 53 54 55 56 59 64 65 94 95"},F:{"28":0.0041,"76":0.07784,"77":1.00377,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00043,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01945,"6.0-6.1":0.00519,"7.0-7.1":0.24988,"8.1-8.4":0.00043,"9.0-9.2":0.00173,"9.3":0.05231,"10.0-10.2":0.0013,"10.3":0.0562,"11.0-11.2":0.03977,"11.3-11.4":0.01773,"12.0-12.1":0.1137,"12.2-12.4":0.04972,"13.0-13.1":0.00735,"13.2":0.01989,"13.3":0.02378,"13.4-13.7":0.11543,"14.0-14.4":0.53564,"14.5-14.7":2.6687},E:{"4":0,"5":0.00819,"12":0.0041,"13":0.00819,"14":0.30728,"15":0.0041,_:"0 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01229,"10.1":0.04097,"11.1":0.0041,"12.1":0.14749,"13.1":0.11881,"14.1":0.79072},B:{"12":0.05326,"13":0.05736,"14":0.02458,"15":0.05326,"16":0.02868,"17":0.04097,"18":0.18437,"80":0.02868,"84":0.02049,"85":0.01639,"87":0.00819,"88":0.00819,"89":0.09833,"90":0.06965,"91":3.26531,"92":0.88086,_:"79 81 83 86"},P:{"4":0.52216,"5.0-5.4":0.01019,"6.2-6.4":0.02048,"7.2-7.4":0.63478,"8.2":0.01024,"9.2":0.08191,"10.1":0.09215,"11.1-11.2":0.31739,"12.0":0.09215,"13.0":0.36858,"14.0":2.79508},I:{"0":0,"3":0,"4":0.00123,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00061,"4.2-4.3":0.00338,"4.4":0,"4.4.3-4.4.4":0.07742},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01239,"11":1.58544,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.0059},N:{_:"10 11"},L:{"0":51.5255},S:{"2.5":0.01771},R:{_:"0"},M:{"0":0.17119},Q:{"10.4":0.01771},O:{"0":1.45804},H:{"0":1.05624}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js index 3c09b28a294406..840cbbbda821b4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js @@ -1 +1 @@ -module.exports={C:{"50":0.01701,"52":0.15306,"56":0.01134,"66":0.02268,"68":0.01134,"69":0.00567,"70":0.00567,"72":0.02835,"75":0.01134,"77":0.00567,"78":0.13039,"79":0.02835,"80":0.01134,"81":0.01134,"82":0.01134,"83":0.01134,"84":0.02268,"85":0.01134,"86":0.02268,"87":0.05669,"88":2.98756,"89":0.02835,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 65 67 71 73 74 76 90 91 3.5 3.6"},D:{"22":0.00567,"25":0.00567,"26":0.00567,"38":0.01134,"49":0.82767,"51":0.01134,"53":0.0737,"55":0.00567,"56":0.00567,"57":0.01701,"58":0.01701,"59":0.01134,"61":0.00567,"62":0.00567,"64":0.00567,"66":0.00567,"67":0.01134,"68":0.01134,"69":0.02835,"70":0.01134,"71":0.03401,"72":0.01134,"73":0.05669,"74":0.01134,"75":0.02268,"76":0.03401,"77":0.02268,"78":0.03401,"79":0.11338,"80":0.10204,"81":0.03968,"83":0.13039,"84":0.10204,"85":0.0907,"86":0.38549,"87":0.76532,"88":0.43651,"89":1.01475,"90":28.38468,"91":0.78799,"92":0.06236,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 54 60 63 65 93 94"},F:{"36":0.19842,"39":0.01701,"41":0.00567,"67":0.01134,"69":0.01134,"70":0.02268,"71":0.02835,"72":0.01701,"73":0.3288,"74":0.03401,"75":2.54538,"76":3.79256,_:"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 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.24377},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.00153,"7.0-7.1":0.00255,"8.1-8.4":0.00764,"9.0-9.2":0.00051,"9.3":0.06568,"10.0-10.2":0.02851,"10.3":0.06262,"11.0-11.2":0.02597,"11.3-11.4":0.028,"12.0-12.1":0.03818,"12.2-12.4":0.10692,"13.0-13.1":0.04989,"13.2":0.01833,"13.3":0.06109,"13.4-13.7":0.20976,"14.0-14.4":3.3719,"14.5-14.6":0.67153},E:{"4":0,"12":0.00567,"13":0.04535,"14":1.26419,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.26644,"10.1":0.01134,"11.1":0.03401,"12.1":0.03968,"13.1":0.23243,"14.1":0.53289},B:{"15":0.00567,"16":0.00567,"17":0.01134,"18":0.04535,"84":0.01134,"89":0.02268,"90":1.38891,"91":0.06236,_:"12 13 14 79 80 81 83 85 86 87 88"},P:{"4":0.05203,"5.0-5.4":0.02061,"6.2-6.4":0.1561,"7.2-7.4":0.17692,"8.2":0.03018,"9.2":0.08325,"10.1":0.01041,"11.1-11.2":0.37464,"12.0":0.13529,"13.0":0.40586,"14.0":2.24786},I:{"0":0,"3":0,"4":0.00071,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00317,"4.2-4.3":0.01022,"4.4":0,"4.4.3-4.4.4":0.04653},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.47053,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.09528},Q:{"10.4":0.00866},O:{"0":0.21222},H:{"0":1.17679},L:{"0":33.27341}}; +module.exports={C:{"16":0.01221,"21":0.01221,"36":0.00611,"37":0.00611,"41":0.01221,"45":0.01221,"47":0.00611,"50":0.03053,"52":0.16486,"56":0.00611,"57":0.00611,"60":0.00611,"68":0.01221,"72":0.01221,"75":0.01832,"78":0.1038,"80":0.01221,"81":0.00611,"82":0.01221,"83":0.01221,"84":0.02442,"86":0.01832,"87":0.01221,"88":0.06106,"89":2.19816,"90":1.16625,"91":0.02442,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 42 43 44 46 48 49 51 53 54 55 58 59 61 62 63 64 65 66 67 69 70 71 73 74 76 77 79 85 92 3.5","3.6":0.00611},D:{"22":0.01221,"25":0.00611,"36":0.01832,"38":0.01221,"43":0.00611,"47":0.01221,"48":0.03053,"49":0.64113,"50":0.00611,"53":0.04885,"57":0.01832,"58":0.01221,"59":0.01832,"63":0.00611,"64":0.01221,"65":0.01221,"66":0.02442,"67":0.01221,"68":0.01221,"69":0.23203,"70":0.01832,"71":0.01221,"72":0.01221,"73":0.02442,"74":0.01832,"75":0.03664,"76":0.00611,"77":0.01832,"78":0.01221,"79":0.25645,"80":0.05495,"81":0.02442,"83":0.07327,"84":0.05495,"85":0.05495,"86":0.3053,"87":0.403,"88":0.34194,"89":0.29919,"90":0.84263,"91":26.41456,"92":5.68469,"93":0.03053,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 34 35 37 39 40 41 42 44 45 46 51 52 54 55 56 60 61 62 94 95"},F:{"21":0.00611,"34":0.00611,"35":0.01832,"36":0.16486,"41":0.01221,"44":0.01221,"52":0.01221,"68":0.00611,"70":0.01221,"71":0.03053,"72":0.01832,"73":0.00611,"74":0.01221,"75":0.02442,"76":0.72051,"77":6.49678,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.34804},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00109,"6.0-6.1":0.00055,"7.0-7.1":0.00109,"8.1-8.4":0.00164,"9.0-9.2":0.00164,"9.3":0.0943,"10.0-10.2":0.01853,"10.3":0.04088,"11.0-11.2":0.05723,"11.3-11.4":0.02507,"12.0-12.1":0.02998,"12.2-12.4":0.06922,"13.0-13.1":0.01036,"13.2":0.04088,"13.3":0.0714,"13.4-13.7":0.20713,"14.0-14.4":1.06506,"14.5-14.7":3.40014},E:{"4":0,"13":0.04885,"14":0.6106,"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.28088,"11.1":0.03664,"12.1":0.03053,"13.1":0.31751,"14.1":1.41049},B:{"16":0.01832,"17":0.01832,"18":0.05495,"89":0.01221,"90":0.00611,"91":1.44712,"92":0.403,_:"12 13 14 15 79 80 81 83 84 85 86 87 88"},P:{"4":0.03194,"5.0-5.4":0.03114,"6.2-6.4":0.14905,"7.2-7.4":0.03194,"8.2":0.01046,"9.2":0.02129,"10.1":0.02076,"11.1-11.2":0.08517,"12.0":0.12776,"13.0":0.14905,"14.0":1.40532},I:{"0":0,"3":0,"4":0.00178,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00432,"4.2-4.3":0.00533,"4.4":0,"4.4.3-4.4.4":0.02362},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02524,"11":0.35333,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":30.3439},S:{"2.5":0},R:{_:"0"},M:{"0":0.10514},Q:{"10.4":0.13629},O:{"0":0.29205},H:{"0":1.21289}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js index 0bb01b69853258..697871d01fefe7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.00955,"70":0.02864,"72":0.00477,"78":0.09546,"79":0.00955,"81":0.69209,"82":0.15274,"85":0.00955,"86":0.0716,"87":0.03818,"88":2.39127,"89":0.0525,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 73 74 75 76 77 80 83 84 90 91 3.5 3.6"},D:{"25":0.00955,"49":0.53935,"55":0.04773,"65":0.02387,"68":0.00477,"69":0.00477,"70":0.00477,"74":0.21956,"75":0.08114,"76":0.11455,"77":0.00955,"79":0.06205,"80":0.04773,"81":0.05728,"83":0.03818,"84":0.10023,"85":0.10501,"86":0.0525,"87":0.09069,"88":0.26729,"89":1.10734,"90":25.03916,"91":0.86391,"92":0.02387,_:"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 56 57 58 59 60 61 62 63 64 66 67 71 72 73 78 93 94"},F:{"73":0.12887,"74":0.01432,"75":0.69209,"76":1.31258,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03156,"6.0-6.1":0.00451,"7.0-7.1":0.10031,"8.1-8.4":0.00338,"9.0-9.2":0.05861,"9.3":0.24458,"10.0-10.2":0.00113,"10.3":0.27389,"11.0-11.2":0.01916,"11.3-11.4":0.18485,"12.0-12.1":0.0293,"12.2-12.4":0.11158,"13.0-13.1":0.08341,"13.2":0.03381,"13.3":0.11835,"13.4-13.7":0.36744,"14.0-14.4":7.55954,"14.5-14.6":1.47426},E:{"4":0,"7":0.00477,"12":0.06205,"13":0.01432,"14":2.66811,_:"0 5 6 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00477,"10.1":0.00477,"11.1":0.14796,"12.1":0.02387,"13.1":0.35798,"14.1":0.59663},B:{"12":0.00477,"16":0.01909,"17":0.00477,"18":0.10501,"84":0.00477,"85":0.00477,"88":0.03818,"89":0.10978,"90":5.43645,"91":0.23865,_:"13 14 15 79 80 81 83 86 87"},P:{"4":0.11054,"5.0-5.4":0.02073,"6.2-6.4":0.01036,"7.2-7.4":0.12159,"8.2":0.02073,"9.2":0.03316,"10.1":0.01096,"11.1-11.2":0.16581,"12.0":0.08843,"13.0":0.32057,"14.0":3.49308},I:{"0":0,"3":0,"4":0.00351,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00156,"4.2-4.3":0.00195,"4.4":0,"4.4.3-4.4.4":0.05571},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09546,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.1359},Q:{"10.4":0.06795},O:{"0":0.13068},H:{"0":0.24248},L:{"0":39.17552}}; +module.exports={C:{"36":0.00869,"50":0.00435,"52":0.01304,"53":0.00869,"54":0.00435,"56":0.00435,"57":0.00869,"58":0.00869,"59":0.00869,"60":0.00435,"61":0.01304,"63":0.00869,"66":0.00435,"72":0.02173,"77":0.00435,"78":0.09125,"80":0.00869,"81":0.62134,"82":0.23463,"83":0.00869,"85":0.02173,"87":0.05214,"88":0.00435,"89":1.52075,"90":0.62134,"91":0.01304,_:"2 3 4 5 6 7 8 9 10 11 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 51 55 62 64 65 67 68 69 70 71 73 74 75 76 79 84 86 92 3.5 3.6"},D:{"26":0.01304,"36":0.00435,"49":0.07387,"55":0.00869,"56":0.00435,"57":0.00435,"58":0.00435,"60":0.00869,"65":0.02173,"68":0.00869,"69":0.02607,"70":0.02173,"73":0.00869,"74":0.55616,"75":0.05649,"76":0.18249,"77":0.00435,"78":0.02173,"79":0.04345,"80":0.06083,"81":0.02607,"83":0.02173,"84":0.19553,"85":0.01738,"86":0.09559,"87":0.09559,"88":0.19987,"89":0.17815,"90":0.3085,"91":18.08824,"92":3.85402,"93":0.02173,_:"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 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 59 61 62 63 64 66 67 71 72 94 95"},F:{"43":0.00435,"54":0.00869,"55":0.00435,"68":0.0869,"71":0.00435,"76":0.16077,"77":2.46362,_:"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 56 57 58 60 62 63 64 65 66 67 69 70 72 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.00435},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00916,"6.0-6.1":0,"7.0-7.1":0.11251,"8.1-8.4":0.01701,"9.0-9.2":0.03663,"9.3":0.1897,"10.0-10.2":0.00392,"10.3":0.17662,"11.0-11.2":0.01962,"11.3-11.4":0.18447,"12.0-12.1":0.05233,"12.2-12.4":0.07588,"13.0-13.1":0.02486,"13.2":0.00785,"13.3":0.0471,"13.4-13.7":0.32053,"14.0-14.4":1.87477,"14.5-14.7":9.141},E:{"4":0,"12":0.05214,"13":0.03042,"14":0.80817,"15":0.03911,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00435,"10.1":0.11732,"11.1":0.09559,"12.1":0.06518,"13.1":0.20856,"14.1":1.87704},B:{"12":0.03911,"13":0.00869,"14":0.00869,"15":0.00869,"16":0.01304,"17":0.01738,"18":0.11297,"80":0.00869,"81":0.01304,"83":0.01738,"84":0.01304,"85":0.01738,"86":0.01304,"87":0.01304,"89":0.01304,"90":0.00869,"91":4.70129,"92":0.63003,_:"79 88"},P:{"4":0.27066,"5.0-5.4":0.02226,"6.2-6.4":0.01019,"7.2-7.4":0.11909,"8.2":0.01046,"9.2":0.05413,"10.1":0.03078,"11.1-11.2":0.25983,"12.0":0.04331,"13.0":0.27066,"14.0":3.54024},I:{"0":0,"3":0,"4":0.00106,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0016,"4.2-4.3":0.00692,"4.4":0,"4.4.3-4.4.4":0.0809},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21725,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":41.784},S:{"2.5":0},R:{_:"0"},M:{"0":0.15834},Q:{"10.4":0.13572},O:{"0":0.5033},H:{"0":0.26234}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js index 84b2a9f420203e..6fc268beef8292 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js @@ -1 +1 @@ -module.exports={C:{"38":0.01171,"43":0.01757,"44":0.0527,"45":0.01171,"48":0.01171,"52":0.05856,"55":0.03514,"56":0.00586,"57":0.01171,"60":0.01171,"63":0.66173,"66":0.00586,"68":0.01171,"70":0.06442,"72":0.01171,"76":0.00586,"77":0.01171,"78":0.15811,"79":0.01171,"80":0.00586,"81":0.01171,"82":0.07027,"83":0.01171,"84":0.02342,"85":0.01757,"86":0.03514,"87":0.31622,"88":3.12125,"89":0.01757,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 58 59 61 62 64 65 67 69 71 73 74 75 90 91 3.5 3.6"},D:{"38":0.00586,"47":0.01757,"48":0.15226,"49":0.33965,"53":0.02342,"56":0.00586,"58":0.01757,"60":0.01757,"61":0.23424,"63":0.01171,"64":0.02928,"65":0.02928,"66":0.01757,"67":0.04685,"68":0.15811,"69":0.04685,"70":0.71443,"71":0.01171,"72":0.0527,"73":0.09955,"74":0.04685,"75":0.03514,"76":0.37478,"77":0.02342,"78":0.04099,"79":1.9032,"80":0.12298,"81":0.04685,"83":1.38787,"84":0.10541,"85":0.11126,"86":0.19325,"87":0.37478,"88":0.40992,"89":1.8095,"90":26.54525,"91":0.55046,"92":0.01757,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 52 54 55 57 59 62 93 94"},F:{"36":0.01171,"42":0.00586,"43":0.00586,"52":0.00586,"56":0.00586,"73":0.04099,"74":0.00586,"75":0.2401,"76":0.26352,_:"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 44 45 46 47 48 49 50 51 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00211,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00846,"6.0-6.1":0.02114,"7.0-7.1":0.03382,"8.1-8.4":0.04017,"9.0-9.2":0.02325,"9.3":0.3615,"10.0-10.2":0.03805,"10.3":0.3467,"11.0-11.2":0.13107,"11.3-11.4":0.10359,"12.0-12.1":0.09302,"12.2-12.4":0.34248,"13.0-13.1":0.05497,"13.2":0.04017,"13.3":0.20083,"13.4-13.7":0.71878,"14.0-14.4":14.86807,"14.5-14.6":2.57491},E:{"4":0,"8":0.01171,"9":0.02342,"10":0.00586,"11":0.01757,"12":0.02342,"13":0.15226,"14":4.80192,_:"0 5 6 7 3.1 3.2 5.1 6.1 7.1","9.1":0.02342,"10.1":0.05856,"11.1":0.15226,"12.1":0.20496,"13.1":0.85498,"14.1":1.62797},B:{"13":0.00586,"14":0.01171,"15":0.00586,"16":0.01171,"17":0.69101,"18":0.13469,"84":0.00586,"85":0.01171,"86":0.01757,"87":0.01171,"88":0.02342,"89":0.15226,"90":5.30554,"91":0.09955,_:"12 79 80 81 83"},P:{"4":0.11063,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.02104,"8.2":0.03018,"9.2":0.01106,"10.1":0.03156,"11.1-11.2":0.05532,"12.0":0.03319,"13.0":0.2102,"14.0":3.19731},I:{"0":0,"3":0,"4":0.00085,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00128,"4.2-4.3":0.0047,"4.4":0,"4.4.3-4.4.4":0.0346},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0074,"8":0.0074,"9":0.04443,"11":0.83673,_:"7 10 5.5"},J:{"7":0,"10":0.01658},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.38125},Q:{"10.4":0.01658},O:{"0":0.18234},H:{"0":0.15693},L:{"0":17.81331}}; +module.exports={C:{"38":0.0167,"43":0.0167,"44":0.06682,"45":0.0167,"48":0.0167,"52":0.06125,"55":0.07238,"56":0.00557,"57":0.0167,"60":0.01114,"63":0.20045,"66":0.00557,"68":0.01114,"70":0.00557,"72":0.01114,"77":0.01114,"78":0.1392,"79":0.01114,"80":0.00557,"81":0.00557,"82":0.06682,"83":0.00557,"84":0.0167,"85":0.01114,"86":0.01114,"87":0.02227,"88":0.07238,"89":2.04346,"90":1.15258,"91":0.01114,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 58 59 61 62 64 65 67 69 71 73 74 75 76 92 3.6","3.5":0.01114},D:{"34":0.00557,"38":0.01114,"47":0.02227,"48":0.18374,"49":0.32294,"53":0.00557,"55":0.00557,"59":0.00557,"60":0.01114,"61":0.1559,"62":0.00557,"63":0.00557,"64":0.0167,"65":0.02784,"66":0.0167,"67":0.03341,"68":0.00557,"69":0.04454,"70":0.22829,"71":0.01114,"72":0.03341,"73":0.0167,"74":0.03898,"75":0.03341,"76":0.23942,"77":0.02227,"78":0.05011,"79":0.48442,"80":0.08909,"81":0.05011,"83":0.44544,"84":0.1225,"85":0.09466,"86":0.1225,"87":0.40646,"88":0.1392,"89":0.36749,"90":0.97997,"91":24.48806,"92":4.50451,"93":0.0167,_:"4 5 6 7 8 9 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 56 57 58 94 95"},F:{"52":0.00557,"76":0.10579,"77":0.45658,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00226,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00679,"6.0-6.1":0.02491,"7.0-7.1":0.0385,"8.1-8.4":0.04756,"9.0-9.2":0.02265,"9.3":0.37371,"10.0-10.2":0.03171,"10.3":0.35106,"11.0-11.2":0.12684,"11.3-11.4":0.10645,"12.0-12.1":0.08833,"12.2-12.4":0.29444,"13.0-13.1":0.05209,"13.2":0.0453,"13.3":0.19478,"13.4-13.7":0.66588,"14.0-14.4":2.87417,"14.5-14.7":16.09899},E:{"4":0,"8":0.01114,"9":0.02784,"11":0.0167,"12":0.02227,"13":0.12806,"14":1.28064,"15":0.02784,_:"0 5 6 7 10 3.1 3.2 5.1 6.1 7.1","9.1":0.0167,"10.1":0.05568,"11.1":0.13363,"12.1":0.18931,"13.1":0.74054,"14.1":5.3063},B:{"12":0.00557,"13":0.00557,"16":0.01114,"17":0.21158,"18":0.10579,"84":0.00557,"85":0.01114,"86":0.0167,"87":0.00557,"88":0.01114,"89":0.02784,"90":0.04454,"91":4.57133,"92":1.17485,_:"14 15 79 80 81 83"},P:{"4":0.13158,"5.0-5.4":0.02097,"6.2-6.4":0.0107,"7.2-7.4":0.10483,"8.2":0.02139,"9.2":0.01097,"10.1":0.0107,"11.1-11.2":0.04386,"12.0":0.0329,"13.0":0.14255,"14.0":3.45409},I:{"0":0,"3":0,"4":0.00077,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00154,"4.2-4.3":0.0054,"4.4":0,"4.4.3-4.4.4":0.02775},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.04299,"11":0.83118,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01773},N:{"11":0.01319,_:"10"},L:{"0":19.32467},S:{"2.5":0},R:{_:"0"},M:{"0":0.43877},Q:{"10.4":0.01773},O:{"0":0.19058},H:{"0":0.16784}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js index 06b764dcf147e0..65ba3f56462e9f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js @@ -1 +1 @@ -module.exports={C:{"17":0.00176,"23":0.00176,"27":0.00176,"29":0.01409,"30":0.00176,"32":0.00352,"34":0.00352,"38":0.00176,"40":0.00176,"41":0.00704,"44":0.00528,"45":0.00352,"47":0.01409,"48":0.00352,"50":0.00176,"52":0.00881,"55":0.00352,"56":0.00176,"57":0.00352,"60":0.00352,"68":0.00881,"69":0.00176,"72":0.00881,"77":0.00176,"78":0.04226,"80":0.00176,"81":0.00176,"83":0.00176,"84":0.00704,"85":0.01409,"86":0.01409,"87":0.05107,"88":1.22566,"89":0.01761,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 24 25 26 28 31 33 35 36 37 39 42 43 46 49 51 53 54 58 59 61 62 63 64 65 66 67 70 71 73 74 75 76 79 82 90 91 3.5 3.6"},D:{"11":0.00176,"22":0.00352,"25":0.00352,"26":0.00176,"38":0.00528,"43":0.00881,"49":0.02113,"51":0.00352,"52":0.00176,"57":0.00704,"58":0.00176,"60":0.00176,"63":0.00704,"64":0.01409,"65":0.00352,"67":0.00352,"69":0.00528,"70":0.00352,"74":0.00352,"75":0.00176,"76":0.01233,"77":0.01409,"78":0.00352,"79":0.02289,"80":0.02642,"81":0.01937,"83":0.02642,"84":0.03346,"85":0.00704,"86":0.02818,"87":0.09509,"88":0.11975,"89":0.34163,"90":5.04174,"91":0.16906,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 53 54 55 56 59 61 62 66 68 71 72 73 92 93 94"},F:{"18":0.00176,"34":0.01057,"36":0.00352,"37":0.00881,"42":0.01585,"45":0.00176,"56":0.00176,"60":0.00881,"63":0.00352,"64":0.00528,"67":0.00176,"73":0.00881,"74":0.01233,"75":0.34868,"76":0.641,_:"9 11 12 15 16 17 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 54 55 57 58 62 65 66 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.6","10.0-10.1":0,"11.5":0.00176,"12.1":0.00352},G:{"8":0.00162,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00567,"6.0-6.1":0.00081,"7.0-7.1":0.08422,"8.1-8.4":0.00162,"9.0-9.2":0.00648,"9.3":0.06559,"10.0-10.2":0.02267,"10.3":0.09718,"11.0-11.2":0.08341,"11.3-11.4":0.11175,"12.0-12.1":0.10041,"12.2-12.4":1.22279,"13.0-13.1":0.07855,"13.2":0.04211,"13.3":0.38546,"13.4-13.7":0.67213,"14.0-14.4":3.5469,"14.5-14.6":0.47292},E:{"4":0,"8":0.00176,"11":0.00528,"12":0.01233,"13":0.03522,"14":0.2078,_:"0 5 6 7 9 10 3.1 3.2 6.1 9.1","5.1":0.07396,"7.1":0.00176,"10.1":0.00352,"11.1":0.00352,"12.1":0.00528,"13.1":0.05283,"14.1":0.04226},B:{"12":0.06164,"13":0.01937,"14":0.01585,"15":0.02994,"16":0.00704,"17":0.02994,"18":0.08453,"80":0.00352,"84":0.01761,"85":0.0317,"86":0.01057,"87":0.00881,"88":0.01937,"89":0.05987,"90":1.11295,"91":0.08277,_:"79 81 83"},P:{"4":0.45631,"5.0-5.4":0.03111,"6.2-6.4":0.0505,"7.2-7.4":0.16593,"8.2":0.02053,"9.2":0.05185,"10.1":0.02074,"11.1-11.2":0.10371,"12.0":0.08297,"13.0":0.50816,"14.0":0.62224},I:{"0":0,"3":0,"4":0.00147,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00403,"4.2-4.3":0.04214,"4.4":0,"4.4.3-4.4.4":0.15831},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00607,"11":0.26689,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.10709},N:{"10":0.02735,"11":0.35567},S:{"2.5":0.25538},R:{_:"0"},M:{"0":0.69199},Q:{"10.4":0.04119},O:{"0":1.65584},H:{"0":26.65769},L:{"0":48.21578}}; +module.exports={C:{"15":0.00405,"21":0.00203,"30":0.00405,"31":0.00405,"32":0.00405,"33":0.00203,"34":0.00203,"36":0.00405,"38":0.00405,"39":0.00203,"41":0.00203,"43":0.00203,"47":0.00405,"48":0.00405,"49":0.00405,"52":0.01216,"57":0.01014,"58":0.00608,"60":0.00405,"65":0.00203,"68":0.01014,"70":0.00203,"72":0.0223,"78":0.05068,"79":0.01216,"80":0.00203,"81":0.00811,"83":0.00608,"84":0.00608,"85":0.00811,"86":0.00608,"87":0.00811,"88":0.03649,"89":0.9831,"90":0.4581,"91":0.01216,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 22 23 24 25 26 27 28 29 35 37 40 42 44 45 46 50 51 53 54 55 56 59 61 62 63 64 66 67 69 71 73 74 75 76 77 82 92 3.5 3.6"},D:{"11":0.00608,"22":0.00405,"24":0.00405,"25":0.00405,"29":0.01622,"33":0.01216,"36":0.00203,"37":0.00203,"38":0.00608,"40":0.00608,"43":0.00811,"44":0.00811,"49":0.02027,"51":0.00405,"53":0.00405,"55":0.00405,"56":0.00203,"57":0.01824,"58":0.00405,"60":0.00811,"62":0.00405,"63":0.00811,"64":0.01014,"65":0.00608,"66":0.00405,"67":0.00405,"68":0.00405,"69":0.03243,"70":0.00608,"71":0.00203,"72":0.00203,"73":0.00405,"74":0.00608,"75":0.00405,"76":0.01622,"78":0.00608,"79":0.02838,"80":0.0527,"81":0.02635,"83":0.02027,"84":0.01622,"85":0.01622,"86":0.12973,"87":0.07297,"88":0.05676,"89":0.19865,"90":0.42567,"91":4.84858,"92":1.1858,"93":0.00203,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 26 27 28 30 31 32 34 35 39 41 42 45 46 47 48 50 52 54 59 61 77 94 95"},F:{"16":0.00203,"29":0.00203,"32":0.00203,"34":0.00405,"35":0.00405,"42":0.01216,"48":0.00608,"60":0.00608,"63":0.00405,"64":0.04662,"65":0.00405,"73":0.00203,"74":0.00405,"75":0.00811,"76":0.05068,"77":1.04999,_:"9 11 12 15 17 18 19 20 21 22 23 24 25 26 27 28 30 31 33 36 37 38 39 40 41 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 62 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00161,"6.0-6.1":0.00242,"7.0-7.1":0.1563,"8.1-8.4":0.00161,"9.0-9.2":0,"9.3":0.08379,"10.0-10.2":0.00725,"10.3":0.228,"11.0-11.2":0.13938,"11.3-11.4":0.06606,"12.0-12.1":0.08379,"12.2-12.4":0.83306,"13.0-13.1":0.05237,"13.2":0.03303,"13.3":0.17402,"13.4-13.7":0.59942,"14.0-14.4":2.31952,"14.5-14.7":2.21156},E:{"4":0,"11":0.00405,"12":0.01622,"13":0.02635,"14":0.12567,_:"0 5 6 7 8 9 10 15 3.1 3.2 6.1 7.1 9.1","5.1":0.00608,"10.1":0.00608,"11.1":0.01014,"12.1":0.00811,"13.1":0.07095,"14.1":0.20878},B:{"12":0.07297,"13":0.01824,"14":0.01622,"15":0.03446,"16":0.01014,"17":0.05068,"18":0.0973,"80":0.00203,"84":0.03041,"85":0.0223,"87":0.00608,"88":0.00608,"89":0.02838,"90":0.05676,"91":1.32363,"92":0.24527,_:"79 81 83 86"},P:{"4":0.26129,"5.0-5.4":0.0209,"6.2-6.4":0.0209,"7.2-7.4":0.13587,"8.2":0.02033,"9.2":0.06271,"10.1":0.04065,"11.1-11.2":0.07316,"12.0":0.04181,"13.0":0.20904,"14.0":1.02428},I:{"0":0,"3":0,"4":0.00136,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00885,"4.2-4.3":0.03812,"4.4":0,"4.4.3-4.4.4":0.17494},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00577,"11":0.33476,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.02392},N:{"11":0.01518,_:"10"},L:{"0":51.40852},S:{"2.5":0.23922},R:{_:"0"},M:{"0":0.2153},Q:{"10.4":0.02392},O:{"0":1.9616},H:{"0":22.10426}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js index 6d3e2b5f4006c8..f725c3c55fdc5c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js @@ -1 +1 @@ -module.exports={C:{"7":0.00589,"27":0.02354,"35":0.00981,"41":0.00392,"43":0.03532,"52":0.00392,"60":0.00589,"63":0.00981,"64":0.01177,"68":0.26487,"72":0.03335,"78":0.27664,"79":0.00981,"81":0.00589,"82":0.00589,"83":0.00981,"84":0.03335,"85":0.04513,"86":0.05297,"87":0.14519,"88":1.2341,"89":0.00392,_:"2 3 4 5 6 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 38 39 40 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 65 66 67 69 70 71 73 74 75 76 77 80 90 91 3.5 3.6"},D:{"25":0.00589,"34":0.00392,"46":0.00981,"52":0.05886,"55":0.00392,"63":0.00981,"67":0.00392,"69":0.01766,"70":0.00981,"73":0.00392,"77":0.00589,"79":0.00392,"80":0.0157,"81":0.03335,"83":0.0157,"84":0.00981,"85":0.2531,"86":0.01177,"87":0.08044,"88":0.06278,"89":0.84366,"90":9.41564,"91":0.27272,_:"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 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 56 57 58 59 60 61 62 64 65 66 68 71 72 74 75 76 78 92 93 94"},F:{"42":0.00392,"53":0.00589,"73":0.02158,"75":0.11576,"76":0.13734,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00555,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.00555,"10.3":0,"11.0-11.2":0.44712,"11.3-11.4":0.03573,"12.0-12.1":0.02497,"12.2-12.4":0.37809,"13.0-13.1":0.0111,"13.2":0.00555,"13.3":0.10476,"13.4-13.7":0.37809,"14.0-14.4":1.55606,"14.5-14.6":0.29519},E:{"4":0,"14":0.03532,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1","11.1":0.00392,"13.1":0.05297,"14.1":0.02943},B:{"12":0.03532,"13":0.05101,"14":0.0157,"15":0.0157,"16":0.02158,"17":0.03532,"18":0.0412,"84":0.03335,"85":0.00392,"87":0.05886,"88":0.01766,"89":0.41987,"90":0.64746,"91":0.08633,_:"79 80 81 83 86"},P:{"4":0.14394,"5.0-5.4":0.01028,"6.2-6.4":0.01027,"7.2-7.4":0.01028,"8.2":0.02053,"9.2":0.2159,"10.1":1.30571,"11.1-11.2":0.19534,"12.0":0.02056,"13.0":0.66828,"14.0":0.45237},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.06605,"4.2-4.3":0.15191,"4.4":0,"4.4.3-4.4.4":2.78059},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05886,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0.05627},R:{_:"0"},M:{"0":0.07235},Q:{"10.4":0.0402},O:{"0":0.64312},H:{"0":8.35666},L:{"0":65.59645}}; +module.exports={C:{"4":0.00251,"35":0.01005,"41":0.04773,"42":0.00251,"50":0.00251,"60":0.00251,"63":0.00251,"68":0.02512,"72":0.05024,"77":0.01005,"78":2.81595,"80":0.02512,"83":0.01005,"86":0.01005,"88":0.01758,"89":0.97466,"90":0.36173,"91":0.02512,_:"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 36 37 38 39 40 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 61 62 64 65 66 67 69 70 71 73 74 75 76 79 81 82 84 85 87 92 3.5 3.6"},D:{"49":0.00251,"55":0.00754,"68":0.00251,"74":0.01507,"77":0.00251,"78":0.01005,"80":0.01005,"81":0.03768,"83":0.00251,"84":0.01005,"85":0.00754,"87":0.03768,"88":0.02512,"89":0.1683,"90":0.27632,"91":10.1309,"92":1.78854,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 69 70 71 72 73 75 76 79 86 93 94 95"},F:{"18":0.00251,"21":0.02261,"36":0.00251,"40":0.04019,"42":0.02512,"62":0.00251,"75":0.00251,"76":0.07285,"77":0.43709,_:"9 11 12 15 16 17 19 20 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 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01507},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.00304,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00943,"10.0-10.2":0,"10.3":0.05113,"11.0-11.2":0.01917,"11.3-11.4":0.17835,"12.0-12.1":0.1753,"12.2-12.4":0.05113,"13.0-13.1":0.00304,"13.2":0.035,"13.3":0.03196,"13.4-13.7":0.30556,"14.0-14.4":0.80926,"14.5-14.7":1.25543},E:{"4":0,"12":0.01005,"14":0.0427,_:"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","13.1":0.08792,"14.1":0.11053},B:{"12":0.14318,"13":0.02512,"14":0.08792,"15":0.01507,"16":0.01758,"17":0.02512,"18":0.07536,"80":0.00251,"85":0.01005,"87":0.10299,"89":0.03014,"90":0.02261,"91":0.91688,"92":0.07285,_:"79 81 83 84 86 88"},P:{"4":0.03038,"5.0-5.4":0.02026,"6.2-6.4":0.03038,"7.2-7.4":0.04051,"8.2":0.03038,"9.2":0.06077,"10.1":5.36795,"11.1-11.2":0.08103,"12.0":0.18231,"13.0":0.31397,"14.0":0.67859},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03576,"4.2-4.3":0.05165,"4.4":0,"4.4.3-4.4.4":0.49665},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00754,"11":0.10299,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":64.4932},S:{"2.5":0.14227},R:{_:"0"},M:{"0":0.09734},Q:{"10.4":0.10483},O:{"0":0.81619},H:{"0":3.92739}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js index b86cc4f794e195..6520af8b682e9b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js @@ -1 +1 @@ -module.exports={C:{"29":0.00344,"32":0.00688,"35":0.01032,"42":0.00688,"43":0.00688,"47":0.00344,"49":0.03439,"52":0.01376,"68":0.00688,"69":0.00688,"70":0.00688,"72":0.00344,"74":0.00688,"75":0.01376,"76":0.03439,"78":0.07566,"80":0.00344,"83":0.00344,"84":0.00688,"85":0.0172,"86":0.02407,"87":0.02063,"88":2.91627,"89":0.04127,_:"2 3 4 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 36 37 38 39 40 41 44 45 46 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 71 73 77 79 81 82 90 91 3.5 3.6"},D:{"11":0.01032,"26":0.00344,"33":0.00344,"42":0.00344,"43":0.02407,"44":0.00688,"49":0.00344,"56":0.01032,"63":0.00344,"64":0.01032,"66":0.0172,"67":0.00688,"70":0.03095,"71":0.00344,"73":0.01032,"74":0.00344,"75":0.01376,"76":0.0172,"77":0.01032,"78":0.00688,"79":0.0172,"80":0.01376,"81":0.02751,"83":0.0172,"84":0.02063,"85":0.01376,"86":0.08941,"87":0.31295,"88":0.13412,"89":0.20978,"90":11.52409,"91":0.45395,_:"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 36 37 38 39 40 41 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 65 68 69 72 92 93 94"},F:{"33":0.00344,"34":0.00688,"42":0.01032,"70":0.00688,"72":0.02063,"73":0.05159,"74":0.02063,"75":0.62246,"76":1.35841,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00158,"6.0-6.1":0.00158,"7.0-7.1":0.40192,"8.1-8.4":0.03237,"9.0-9.2":0.00158,"9.3":0.0379,"10.0-10.2":0.00869,"10.3":0.44614,"11.0-11.2":0.07817,"11.3-11.4":0.04975,"12.0-12.1":0.13818,"12.2-12.4":1.12363,"13.0-13.1":0.05369,"13.2":0.05527,"13.3":0.28032,"13.4-13.7":0.18319,"14.0-14.4":3.22165,"14.5-14.6":0.55037},E:{"4":0,"7":0.00344,"12":0.00688,"13":0.00688,"14":0.26824,_:"0 5 6 8 9 10 11 3.1 3.2 5.1 6.1 9.1","7.1":0.11005,"10.1":0.01032,"11.1":0.01032,"12.1":0.02063,"13.1":0.17539,"14.1":0.03783},B:{"12":0.03095,"13":0.0172,"14":0.01376,"15":0.01032,"16":0.00688,"17":0.02063,"18":0.49522,"84":0.01376,"85":0.07566,"86":0.00344,"87":0.19946,"88":0.00688,"89":0.12037,"90":3.28768,"91":0.16851,_:"79 80 81 83"},P:{"4":0.52757,"5.0-5.4":0.04221,"6.2-6.4":0.0505,"7.2-7.4":0.06331,"8.2":0.01055,"9.2":0.08441,"10.1":0.03165,"11.1-11.2":0.12662,"12.0":0.07386,"13.0":0.23213,"14.0":0.61198},I:{"0":0,"3":0,"4":0.00133,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00994,"4.2-4.3":0.05013,"4.4":0,"4.4.3-4.4.4":0.26665},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01063,"9":0.00531,"11":0.21791,_:"6 7 10 5.5"},J:{"7":0,"10":0.08529},N:{"10":0.02735,"11":0.35567},S:{"2.5":1.10881},R:{_:"0"},M:{"0":1.03664},Q:{"10.4":0.03281},O:{"0":1.39093},H:{"0":2.18025},L:{"0":60.93687}}; +module.exports={C:{"15":0.00775,"24":0.01938,"41":0.00775,"49":0.0155,"50":0.00775,"52":0.03101,"56":0.00388,"68":0.0155,"72":0.0155,"76":0.03488,"78":0.07752,"79":0.01163,"84":0.01163,"85":0.01163,"86":0.00388,"87":0.0155,"88":0.03101,"89":2.53103,"90":1.05427,"91":0.00775,"92":0.01163,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 77 80 81 82 83 3.5 3.6"},D:{"11":0.01938,"33":0.00388,"38":0.00388,"43":0.01938,"49":0.01163,"50":0.01163,"54":0.00388,"56":0.16279,"57":0.01163,"63":0.00388,"64":0.00775,"65":0.00775,"67":0.00775,"70":0.00775,"73":0.00775,"75":0.05426,"76":0.00775,"77":0.00388,"78":0.0155,"79":0.01938,"80":0.00775,"81":0.02326,"83":0.00388,"84":0.0155,"85":0.00775,"86":0.36822,"87":0.5814,"88":0.08915,"89":0.0814,"90":0.21706,"91":11.03885,"92":2.38762,_:"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 39 40 41 42 44 45 46 47 48 51 52 53 55 58 59 60 61 62 66 68 69 71 72 74 93 94 95"},F:{"51":0.00388,"70":0.00775,"71":0.00775,"73":0.01163,"74":0.00388,"75":0.00388,"76":0.01938,"77":2.90312,_:"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 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0.00328,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00082,"7.0-7.1":0.05414,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02789,"10.0-10.2":0.00574,"10.3":0.18046,"11.0-11.2":0.14601,"11.3-11.4":0.03609,"12.0-12.1":0.02953,"12.2-12.4":0.67671,"13.0-13.1":0.05332,"13.2":0.05168,"13.3":0.03445,"13.4-13.7":0.12058,"14.0-14.4":2.2393,"14.5-14.7":1.8464},E:{"4":0,"13":0.00775,"14":0.16279,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 9.1 11.1","7.1":0.81396,"10.1":0.01163,"12.1":0.01163,"13.1":0.22868,"14.1":0.12016},B:{"12":0.17442,"13":0.01938,"14":0.01938,"15":0.01938,"16":0.06977,"17":0.04651,"18":0.45737,"80":0.00388,"84":0.01163,"85":0.02713,"87":0.1124,"88":0.00388,"89":0.01938,"90":0.03876,"91":2.6163,"92":0.62791,_:"79 81 83 86"},P:{"4":0.27609,"5.0-5.4":0.01062,"6.2-6.4":0.0209,"7.2-7.4":0.11681,"8.2":0.02033,"9.2":0.06371,"10.1":0.04065,"11.1-11.2":0.15928,"12.0":0.02124,"13.0":0.21238,"14.0":1.09375},I:{"0":0,"3":0,"4":0.00204,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00937,"4.2-4.3":0.08397,"4.4":0,"4.4.3-4.4.4":0.35787},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01163,"11":0.25582,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.01838},N:{"11":0.01518,_:"10"},L:{"0":59.26504},S:{"2.5":1.32913},R:{_:"0"},M:{"0":0.11638},Q:{"10.4":0.03675},O:{"0":1.029},H:{"0":1.71063}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js index 6bc6804f4fe55a..3f2f06bd43ff1d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js @@ -1 +1 @@ -module.exports={C:{"48":0.03912,"52":0.0503,"57":0.01677,"60":0.01677,"67":0.01118,"68":0.06707,"70":0.05589,"71":0.01677,"72":0.02236,"73":0.00559,"75":0.01118,"76":0.0503,"77":0.00559,"78":0.43035,"80":0.01677,"81":0.01118,"82":0.01118,"83":0.02795,"84":0.04471,"85":0.08942,"86":0.11178,"87":0.19562,"88":6.33793,"89":0.02236,"90":0.00559,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 58 59 61 62 63 64 65 66 69 74 79 91 3.5 3.6"},D:{"38":0.02795,"49":0.17885,"52":0.11178,"53":0.02795,"60":0.01677,"61":0.04471,"63":0.03912,"64":0.01118,"65":0.01118,"66":0.0503,"67":0.01677,"68":0.02236,"69":0.00559,"70":0.02236,"72":0.01677,"73":0.01118,"74":0.01677,"75":0.01677,"76":0.04471,"77":0.01677,"78":0.02236,"79":0.05589,"80":0.05589,"81":0.0503,"83":0.06707,"84":0.08942,"85":0.06707,"86":0.10619,"87":0.31298,"88":0.31298,"89":1.13457,"90":21.2382,"91":0.50301,"92":0.00559,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 57 58 59 62 71 93 94"},F:{"46":0.00559,"73":0.12855,"74":0.00559,"75":0.5589,"76":0.57008,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00471,"6.0-6.1":0.00706,"7.0-7.1":0.03295,"8.1-8.4":0.05413,"9.0-9.2":0.16473,"9.3":0.50832,"10.0-10.2":0.02353,"10.3":0.23063,"11.0-11.2":0.06119,"11.3-11.4":0.12237,"12.0-12.1":0.08707,"12.2-12.4":0.26828,"13.0-13.1":0.09178,"13.2":0.04942,"13.3":0.20003,"13.4-13.7":0.78837,"14.0-14.4":16.91345,"14.5-14.6":3.12994},E:{"4":0,"8":0.01118,"10":0.05589,"11":0.03353,"12":0.03353,"13":0.19003,"14":6.23732,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.02236,"10.1":0.08942,"11.1":0.21797,"12.1":0.4583,"13.1":1.56492,"14.1":2.65478},B:{"14":0.01118,"16":0.01118,"17":0.01677,"18":0.16208,"81":0.01677,"84":0.01677,"85":0.0503,"86":0.03353,"87":0.03353,"88":0.0503,"89":0.26268,"90":7.52838,"91":0.12855,_:"12 13 15 79 80 83"},P:{"4":0.12833,"5.0-5.4":0.01012,"6.2-6.4":0.01012,"7.2-7.4":0.51623,"8.2":0.02024,"9.2":0.03208,"10.1":0.02139,"11.1-11.2":0.07486,"12.0":0.10694,"13.0":0.50262,"14.0":3.76429},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.00343,"4.4":0,"4.4.3-4.4.4":0.0392},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01192,"11":0.88232,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.00441},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.62622},Q:{"10.4":0.03528},O:{"0":0.08379},H:{"0":0.25051},L:{"0":16.29627}}; +module.exports={C:{"45":0.00527,"48":0.04214,"52":0.05267,"54":0.01053,"55":0.01053,"57":0.01053,"60":0.02107,"67":0.0158,"68":0.0474,"70":0.0158,"71":0.0158,"72":0.0158,"76":0.0158,"78":0.45823,"79":0.01053,"80":0.01053,"81":0.01053,"82":0.0158,"83":0.02107,"84":0.02634,"85":0.02107,"86":0.02634,"87":0.0632,"88":0.36869,"89":4.1346,"90":2.40702,"91":0.0158,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 56 58 59 61 62 63 64 65 66 69 73 74 75 77 92 3.5 3.6"},D:{"38":0.02634,"49":0.13168,"52":0.21595,"53":0.00527,"60":0.01053,"63":0.02107,"64":0.01053,"65":0.01053,"66":0.05794,"67":0.0158,"68":0.00527,"70":0.0158,"71":0.01053,"72":0.02107,"73":0.01053,"74":0.0158,"75":0.0158,"76":0.01053,"77":0.0158,"78":0.0158,"79":0.11061,"80":0.07374,"81":0.03687,"83":0.03687,"84":0.0632,"85":0.07901,"86":0.07374,"87":0.4793,"88":0.11061,"89":0.22121,"90":0.42663,"91":17.22309,"92":3.30768,"93":0.01053,"94":0.01053,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 57 58 59 61 62 69 95"},F:{"28":0.01053,"46":0.00527,"75":0.01053,"76":0.23702,"77":0.91119,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":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.7":0},E:{"4":0,"8":0.00527,"10":0.02107,"11":0.0316,"12":0.02634,"13":0.15274,"14":1.70124,"15":0.02634,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.02634,"10.1":0.07374,"11.1":0.17381,"12.1":0.45296,"13.1":1.12187,"14.1":6.18346},B:{"14":0.01053,"16":0.0158,"17":0.02634,"18":0.10534,"80":0.01053,"81":0.01053,"84":0.02107,"85":0.02107,"86":0.02634,"87":0.02634,"88":0.02107,"89":0.05794,"90":0.10007,"91":6.07812,"92":1.39049,_:"12 13 15 79 83"},P:{"4":0.14898,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.02128,"11.1-11.2":0.06385,"12.0":0.08513,"13.0":0.2554,"14.0":4.21413},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:{"9":0.00557,"11":0.86348,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.00473},N:{_:"10 11"},L:{"0":18.46177},S:{"2.5":0},R:{_:"0"},M:{"0":0.6956},Q:{"10.4":0.03312},O:{"0":0.10884},H:{"0":0.28224}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js index 05553cd5b5eb8c..edc8e162d501fd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js @@ -1 +1 @@ -module.exports={C:{"52":0.09571,"56":0.00368,"66":0.00368,"68":0.00368,"72":0.01104,"75":0.00736,"78":0.09203,"79":0.05522,"80":0.00736,"81":0.00368,"84":0.04049,"85":0.01472,"86":0.01472,"87":0.03681,"88":2.24173,"89":0.04785,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 67 69 70 71 73 74 76 77 82 83 90 91 3.5 3.6"},D:{"25":0.02209,"29":0.04049,"40":0.01104,"43":0.01104,"49":0.27239,"50":0.01104,"51":0.00736,"53":0.01104,"55":0.01104,"56":0.00736,"57":0.00368,"58":0.00736,"59":0.01841,"63":0.01841,"64":0.00736,"65":0.01104,"66":0.06626,"67":0.01104,"68":0.01104,"69":0.04049,"70":0.02209,"71":0.01841,"72":0.01841,"73":0.01841,"74":0.09571,"75":0.04049,"76":0.04049,"77":0.06258,"78":0.10307,"79":0.0589,"80":0.08466,"81":0.11043,"83":0.1362,"84":0.16196,"85":0.11411,"86":0.19509,"87":0.85031,"88":0.39755,"89":0.94234,"90":17.56205,"91":0.73988,"92":0.08098,"93":0.01104,_:"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 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 52 54 60 61 62 94"},F:{"73":0.02209,"74":0.00736,"75":0.46013,"76":0.85031,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00506,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00126,"6.0-6.1":0,"7.0-7.1":0.03288,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.20486,"10.0-10.2":0.01138,"10.3":0.29464,"11.0-11.2":0.49065,"11.3-11.4":0.25544,"12.0-12.1":0.13152,"12.2-12.4":1.1242,"13.0-13.1":0.08473,"13.2":0.05817,"13.3":0.33258,"13.4-13.7":0.69678,"14.0-14.4":6.28744,"14.5-14.6":1.23169},E:{"4":0,"13":0.05153,"14":0.34601,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.02209,"9.1":0.00368,"10.1":0.00368,"11.1":0.00736,"12.1":0.01472,"13.1":0.53006,"14.1":0.12147},B:{"12":0.01472,"13":0.00736,"14":0.00736,"15":0.00736,"16":0.01472,"17":0.02577,"18":0.06626,"84":0.01472,"85":0.00736,"87":0.00736,"88":0.01104,"89":0.06258,"90":2.26013,"91":0.09939,_:"79 80 81 83 86"},P:{"4":0.08191,"5.0-5.4":0.04221,"6.2-6.4":0.01024,"7.2-7.4":0.2355,"8.2":0.0101,"9.2":0.15359,"10.1":0.02048,"11.1-11.2":0.21502,"12.0":0.10239,"13.0":0.37885,"14.0":0.63482},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00069,"4.2-4.3":0.00381,"4.4":0,"4.4.3-4.4.4":0.04606},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20246,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02528},N:{"10":0.02735,"11":0.35567},S:{"2.5":0.05688},R:{_:"0"},M:{"0":0.1896},Q:{"10.4":0.06952},O:{"0":0.5372},H:{"0":2.28565},L:{"0":52.61697}}; +module.exports={C:{"43":0.00407,"47":0.00814,"48":0.00407,"52":0.0285,"56":0.00814,"60":0.00407,"68":0.00814,"70":0.00814,"72":0.01221,"75":0.01221,"78":0.06514,"79":0.01221,"80":0.00814,"81":0.00814,"83":0.0285,"84":0.01628,"85":0.00407,"86":0.00407,"87":0.01221,"88":0.04885,"89":2.10064,"90":0.95669,"91":0.0285,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 57 58 59 61 62 63 64 65 66 67 69 71 73 74 76 77 82 92 3.5 3.6"},D:{"18":0.01628,"20":0.00814,"26":0.02036,"27":0.00814,"29":0.01221,"31":0.02036,"32":0.01628,"33":0.01221,"47":0.01628,"49":0.19134,"50":0.00814,"51":0.00407,"53":0.00814,"59":0.00407,"61":0.03257,"63":0.02443,"64":0.00407,"65":0.02036,"66":0.03664,"67":0.01221,"68":0.00407,"69":0.04071,"70":0.01628,"71":0.01221,"72":0.04071,"73":0.01221,"74":0.08956,"75":0.04071,"76":0.04885,"77":0.04885,"78":0.10585,"79":0.05699,"80":0.0977,"81":0.06107,"83":0.12213,"84":0.11806,"85":0.0977,"86":0.10992,"87":0.80199,"88":0.21983,"89":0.42746,"90":0.79385,"91":17.44831,"92":4.09543,"93":0.06107,"94":0.00407,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 21 22 23 24 25 28 30 34 35 36 37 38 39 40 41 42 43 44 45 46 48 52 54 55 56 57 58 60 62 95"},F:{"73":0.00814,"75":0.00814,"76":0.04478,"77":1.58362,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00882,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00504,"5.0-5.1":0.00252,"6.0-6.1":0,"7.0-7.1":0.02015,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.27706,"10.0-10.2":0.01133,"10.3":0.12593,"11.0-11.2":0.28965,"11.3-11.4":0.13979,"12.0-12.1":0.08564,"12.2-12.4":0.73923,"13.0-13.1":0.0806,"13.2":0.08312,"13.3":0.20024,"13.4-13.7":0.62086,"14.0-14.4":3.60046,"14.5-14.7":5.0399},E:{"4":0,"13":0.01221,"14":0.17912,"15":0.01628,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.0285,"11.1":0.00814,"12.1":0.01628,"13.1":0.09363,"14.1":0.35418},B:{"12":0.01221,"13":0.00814,"14":0.00407,"15":0.00814,"16":0.02036,"17":0.0285,"18":0.06107,"84":0.03257,"85":0.01221,"87":0.00814,"88":0.01628,"89":0.03257,"90":0.03257,"91":2.01515,"92":0.46002,_:"79 80 81 83 86"},P:{"4":0.07334,"5.0-5.4":0.01062,"6.2-6.4":0.01036,"7.2-7.4":0.22001,"8.2":0.02033,"9.2":0.08381,"10.1":0.05058,"11.1-11.2":0.15715,"12.0":0.03143,"13.0":0.24097,"14.0":1.0372},I:{"0":0,"3":0,"4":0.00568,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00142,"4.2-4.3":0.00426,"4.4":0,"4.4.3-4.4.4":0.07165},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21169,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01779},N:{"11":0.01518,_:"10"},L:{"0":48.88369},S:{"2.5":0.02372},R:{_:"0"},M:{"0":0.20752},Q:{"10.4":0.03557},O:{"0":0.66998},H:{"0":1.89726}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js index 879eeaeaad85d4..98651525d8349c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js @@ -1 +1 @@ -module.exports={C:{"78":0.02853,"84":0.0163,"85":0.27309,"88":2.40076,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 87 89 90 91 3.5 3.6"},D:{"49":2.82059,"55":0.02446,"65":0.07744,"67":0.02446,"72":0.02853,"74":0.02446,"79":0.01223,"81":0.04076,"83":0.02446,"85":0.00815,"86":0.17934,"87":0.04076,"88":0.04891,"89":1.16166,"90":23.75493,"91":0.48097,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 73 75 76 77 78 80 84 92 93 94"},F:{"73":0.06929,"74":0.05299,"75":0.25271,"76":0.17934,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02186,"10.0-10.2":0,"10.3":0.00219,"11.0-11.2":0.04263,"11.3-11.4":0.05138,"12.0-12.1":0.0951,"12.2-12.4":0.32357,"13.0-13.1":0.05138,"13.2":0.0951,"13.3":0.33778,"13.4-13.7":0.93026,"14.0-14.4":7.20708,"14.5-14.6":1.50307},E:{"4":0,"9":0.01223,"11":0.01223,"13":0.04076,"14":0.81112,_:"0 5 6 7 8 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.1019,"12.1":0.04076,"13.1":1.36138,"14.1":0.15896},B:{"18":0.19565,"86":0.02853,"88":0.02446,"89":0.02038,"90":3.36678,"91":0.2038,_:"12 13 14 15 16 17 79 80 81 83 84 85 87"},P:{"4":0.0101,"5.0-5.4":0.04221,"6.2-6.4":0.09094,"7.2-7.4":0.08083,"8.2":0.0101,"9.2":0.48499,"10.1":0.29301,"11.1-11.2":0.72748,"12.0":0.29301,"13.0":0.70728,"14.0":4.51646},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0079,"4.4":0,"4.4.3-4.4.4":0.02172},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36684,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.24877},Q:{"10.4":0},O:{"0":0.12438},H:{"0":0.09533},L:{"0":41.25476}}; +module.exports={C:{"51":0.01585,"65":0.00317,"73":0.03487,"78":0.01268,"82":0.01585,"88":0.00951,"89":0.54841,"90":0.62449,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 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 59 60 61 62 63 64 66 67 68 69 70 71 72 74 75 76 77 79 80 81 83 84 85 86 87 91 92 3.5 3.6"},D:{"49":1.86713,"55":0.02536,"56":0.00634,"65":0.0317,"67":0.03804,"68":0.11095,"74":0.01268,"75":0.00634,"79":0.00951,"81":0.04121,"83":0.01902,"87":0.00951,"89":0.01585,"90":0.10778,"91":18.69983,"92":3.40775,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 58 59 60 61 62 63 64 66 69 70 71 72 73 76 77 78 80 84 85 86 88 93 94 95"},F:{"77":0.16801,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00365,"8.1-8.4":0.00365,"9.0-9.2":0,"9.3":0.01827,"10.0-10.2":0,"10.3":0.01279,"11.0-11.2":0.03836,"11.3-11.4":0.03105,"12.0-12.1":0.02192,"12.2-12.4":0.21007,"13.0-13.1":0.04932,"13.2":0.09499,"13.3":0.1845,"13.4-13.7":0.90241,"14.0-14.4":3.73933,"14.5-14.7":12.39987},E:{"4":0,"11":0.01268,"12":0.00951,"13":0.03804,"14":0.46282,_:"0 5 6 7 8 9 10 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00634,"11.1":0.02853,"12.1":0.03804,"13.1":0.32651,"14.1":1.18875},B:{"17":0.00317,"18":0.06974,"80":0.01585,"84":0.00951,"88":0.00317,"89":0.00634,"91":1.20777,"92":0.28213,_:"12 13 14 15 16 79 81 83 85 86 87 90"},P:{"4":0.02023,"5.0-5.4":0.01062,"6.2-6.4":0.0209,"7.2-7.4":0.18208,"8.2":0.02033,"9.2":0.16185,"10.1":0.05058,"11.1-11.2":0.56648,"12.0":0.21243,"13.0":0.24278,"14.0":3.90464},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.17118,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":45.98772},S:{"2.5":0},R:{_:"0"},M:{"0":0.35516},Q:{"10.4":0},O:{"0":0.19124},H:{"0":0.04526}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js index 48c3b9d6754568..59e49bcd9eed43 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js @@ -1 +1 @@ -module.exports={C:{"5":0.00405,"17":0.00811,"52":0.01621,"58":0.00811,"66":0.00811,"68":0.02027,"73":0.00405,"78":0.04864,"79":0.00405,"84":0.00811,"85":0.00405,"86":0.01621,"87":0.02432,"88":1.48745,"89":0.01621,_:"2 3 4 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 53 54 55 56 57 59 60 61 62 63 64 65 67 69 70 71 72 74 75 76 77 80 81 82 83 90 91 3.5 3.6"},D:{"23":0.00405,"24":0.00811,"38":0.02027,"47":0.00405,"49":0.10943,"53":0.02837,"58":0.00405,"61":0.00405,"63":0.00405,"65":0.01216,"67":0.01216,"68":0.00811,"70":0.00405,"71":0.00405,"72":0.01216,"73":0.00811,"74":0.00811,"75":0.00811,"76":0.01216,"77":0.00811,"78":0.01216,"79":0.02837,"80":0.02837,"81":0.02432,"83":0.04053,"84":0.04864,"85":0.04458,"86":0.06485,"87":0.22292,"88":0.11348,"89":0.7417,"90":27.74684,"91":0.82681,"92":0.00811,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 59 60 62 64 66 69 93 94"},F:{"73":0.4661,"75":1.41855,"76":0.58769,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00072,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00288,"6.0-6.1":0.00432,"7.0-7.1":0.0036,"8.1-8.4":0.0036,"9.0-9.2":0,"9.3":0.05468,"10.0-10.2":0.00504,"10.3":0.03741,"11.0-11.2":0.01439,"11.3-11.4":0.03454,"12.0-12.1":0.02734,"12.2-12.4":0.13167,"13.0-13.1":0.02302,"13.2":0.01007,"13.3":0.0921,"13.4-13.7":0.31946,"14.0-14.4":4.9466,"14.5-14.6":1.0217},E:{"4":0,"11":0.00405,"12":0.00405,"13":0.04053,"14":0.79034,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00811,"11.1":0.02027,"12.1":0.04053,"13.1":0.23913,"14.1":0.40935},B:{"17":0.00811,"18":0.03242,"80":0.00405,"84":0.01216,"85":0.00811,"87":0.00405,"88":0.00811,"89":0.03648,"90":1.8887,"91":0.07295,_:"12 13 14 15 16 79 81 83 86"},P:{"4":0.08275,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.06207,"8.2":0.03018,"9.2":0.06207,"10.1":0.02069,"11.1-11.2":0.34136,"12.0":0.07241,"13.0":0.31033,"14.0":1.42752},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0014,"4.2-4.3":0.0021,"4.4":0,"4.4.3-4.4.4":0.02029},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00929,"9":0.00464,"10":0.00464,"11":0.20434,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.14275},Q:{"10.4":0},O:{"0":0.03569},H:{"0":0.14078},L:{"0":51.80758}}; +module.exports={C:{"17":0.00426,"52":0.02128,"58":0.00851,"66":0.00851,"73":0.00851,"78":0.08936,"81":0.00426,"83":0.00426,"84":0.00851,"86":0.00426,"87":0.00426,"88":0.02128,"89":1.02546,"90":0.634,"91":0.00851,_:"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 48 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 80 82 85 92 3.5 3.6"},D:{"24":0.00426,"34":0.00426,"38":0.02553,"47":0.00426,"49":0.08936,"53":0.01277,"63":0.00426,"65":0.01277,"67":0.00851,"68":0.00426,"70":0.00426,"71":0.00426,"72":0.00851,"73":0.00426,"74":0.00851,"75":0.00851,"76":0.00851,"77":0.00851,"78":0.00851,"79":0.05957,"80":0.0383,"81":0.02128,"83":0.0383,"84":0.03404,"85":0.02979,"86":0.04681,"87":0.16595,"88":0.05957,"89":0.25105,"90":0.30211,"91":23.60674,"92":5.39109,"93":0.00851,_:"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 51 52 54 55 56 57 58 59 60 61 62 64 66 69 94 95"},F:{"75":0.00851,"76":1.17438,"77":1.57861,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0038,"6.0-6.1":0.00304,"7.0-7.1":0.00304,"8.1-8.4":0.00684,"9.0-9.2":0.00152,"9.3":0.05093,"10.0-10.2":0.00304,"10.3":0.03421,"11.0-11.2":0.01292,"11.3-11.4":0.02737,"12.0-12.1":0.02204,"12.2-12.4":0.0897,"13.0-13.1":0.02128,"13.2":0.02661,"13.3":0.08438,"13.4-13.7":0.25769,"14.0-14.4":1.18507,"14.5-14.7":5.37651},E:{"4":0,"12":0.00426,"13":0.04255,"14":0.33615,"15":0.00851,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00851,"11.1":0.01702,"12.1":0.04255,"13.1":0.19999,"14.1":0.96163},B:{"17":0.00426,"18":0.02128,"84":0.00851,"85":0.00426,"89":0.01702,"90":0.01277,"91":1.81263,"92":0.48507,_:"12 13 14 15 16 79 80 81 83 86 87 88"},P:{"4":0.0734,"5.0-5.4":0.07051,"6.2-6.4":0.1108,"7.2-7.4":0.0734,"8.2":0.01007,"9.2":0.05243,"10.1":0.06044,"11.1-11.2":0.30407,"12.0":0.04194,"13.0":0.19922,"14.0":1.59376},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.00198,"4.4":0,"4.4.3-4.4.4":0.01981},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01015,"9":0.00507,"10":0.00507,"11":0.24352,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":50.35157},S:{"2.5":0},R:{_:"0"},M:{"0":0.14937},Q:{"10.4":0},O:{"0":0.03447},H:{"0":0.15229}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js index f9c63f66bacf66..8ce0d727b448a3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js @@ -1 +1 @@ -module.exports={C:{"21":0.00605,"38":0.00908,"42":0.00908,"43":0.01815,"45":0.00605,"46":0.00605,"47":0.02118,"48":0.00605,"49":0.00908,"50":0.00605,"51":0.00605,"52":0.15125,"56":0.0121,"57":0.00605,"59":0.00605,"60":0.01513,"61":0.04235,"63":0.00908,"66":0.00303,"68":0.0121,"69":0.0121,"70":0.00605,"72":0.03328,"74":0.00303,"75":0.00303,"77":0.00605,"78":0.06353,"79":0.00605,"80":0.01815,"81":0.0121,"82":0.0121,"83":0.0121,"84":0.03025,"85":0.01815,"86":0.04235,"87":0.16335,"88":3.10063,"89":0.14823,"90":0.00605,_:"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 32 33 34 35 36 37 39 40 41 44 53 54 55 58 62 64 65 67 71 73 76 91 3.5 3.6"},D:{"11":0.01513,"25":0.00605,"29":0.0121,"32":0.0242,"38":0.00605,"40":0.00908,"43":0.00908,"47":0.00303,"49":0.09075,"50":0.0121,"53":0.02118,"55":0.00605,"56":0.02723,"57":0.00605,"58":0.0121,"59":0.00303,"62":0.00303,"63":0.01513,"64":0.00303,"65":0.00908,"66":0.01815,"67":0.00303,"68":0.11495,"69":0.02723,"70":0.00605,"71":0.0121,"72":0.00605,"73":0.00605,"74":0.01513,"75":0.01513,"76":0.00605,"77":0.02723,"78":0.00605,"79":0.06655,"80":0.04538,"81":0.08168,"83":0.05143,"84":0.03328,"85":0.0726,"86":0.0847,"87":0.29645,"88":0.19965,"89":0.53543,"90":10.648,"91":0.45678,"92":0.02723,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 30 31 33 34 35 36 37 39 41 42 44 45 46 48 51 52 54 60 61 93 94"},F:{"33":0.00303,"36":0.00303,"44":0.00303,"51":0.00303,"62":0.00303,"70":0.00605,"72":0.00605,"73":0.10285,"74":0.03025,"75":0.4961,"76":0.7986,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 37 38 39 40 41 42 43 45 46 47 48 49 50 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00229,"6.0-6.1":0.00115,"7.0-7.1":0.01835,"8.1-8.4":0,"9.0-9.2":0.00172,"9.3":0.12383,"10.0-10.2":0.00573,"10.3":0.17829,"11.0-11.2":0.12211,"11.3-11.4":0.06879,"12.0-12.1":0.11122,"12.2-12.4":0.60941,"13.0-13.1":0.08943,"13.2":0.03268,"13.3":0.26658,"13.4-13.7":0.57788,"14.0-14.4":2.55286,"14.5-14.6":0.39844},E:{"4":0,"10":0.00605,"13":0.0121,"14":0.17848,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.1573,"9.1":0.00908,"11.1":0.00605,"12.1":0.01513,"13.1":0.03328,"14.1":0.03328},B:{"12":0.04538,"13":0.02118,"14":0.1331,"15":0.0363,"16":0.02723,"17":0.03025,"18":0.09983,"84":0.01513,"85":0.02118,"86":0.00605,"87":0.00605,"88":0.01815,"89":0.0968,"90":1.16765,"91":0.06353,_:"79 80 81 83"},P:{"4":0.42078,"5.0-5.4":0.07364,"6.2-6.4":0.03053,"7.2-7.4":0.12623,"8.2":0.04115,"9.2":0.07364,"10.1":0.01018,"11.1-11.2":0.09467,"12.0":0.12623,"13.0":0.34714,"14.0":0.62065},I:{"0":0,"3":0,"4":0.00239,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00239,"4.2-4.3":0.01167,"4.4":0,"4.4.3-4.4.4":0.12302},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06387,"11":0.50181,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.08369},N:{"10":0.02735,"11":0.35567},S:{"2.5":0.09764},R:{_:"0"},M:{"0":0.29988},Q:{"10.4":0.07671},O:{"0":1.0182},H:{"0":5.216},L:{"0":63.29664}}; +module.exports={C:{"4":0.00681,"17":0.00681,"25":0.0034,"28":0.0034,"33":0.00681,"37":0.0034,"40":0.00681,"43":0.01021,"44":0.0034,"45":0.00681,"47":0.01702,"48":0.02042,"49":0.00681,"50":0.03743,"51":0.01361,"52":0.14633,"56":0.02722,"57":0.0034,"58":0.0034,"60":0.01021,"61":0.00681,"62":0.0034,"64":0.01702,"66":0.0034,"67":0.00681,"68":0.01361,"69":0.00681,"70":0.0034,"71":0.00681,"72":0.04764,"78":0.1123,"79":0.0034,"80":0.00681,"81":0.01361,"82":0.01702,"83":0.00681,"84":0.01702,"85":0.01702,"86":0.02042,"87":0.02382,"88":0.07827,"89":2.58968,"90":1.23529,"91":0.04764,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 26 27 29 30 31 32 34 35 36 38 39 41 42 46 53 54 55 59 63 65 73 74 75 76 77 92 3.5 3.6"},D:{"11":0.0034,"19":0.07487,"23":0.0034,"29":0.0034,"33":0.00681,"38":0.01021,"40":0.00681,"43":0.01021,"46":0.00681,"49":0.08167,"50":0.00681,"55":0.0034,"56":0.05105,"57":0.00681,"58":0.01021,"62":0.00681,"63":0.01702,"64":0.01021,"65":0.01021,"68":0.03063,"69":0.03063,"70":0.00681,"71":0.00681,"72":0.00681,"73":0.01021,"74":0.02382,"75":0.01021,"76":0.01361,"77":0.03403,"78":0.00681,"79":0.15654,"80":0.05105,"81":0.07827,"83":0.03743,"84":0.01702,"85":0.02722,"86":0.07827,"87":0.31988,"88":0.12591,"89":0.15994,"90":0.48663,"91":10.87259,"92":2.44335,"93":0.04084,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 24 25 26 27 28 30 31 32 34 35 36 37 39 41 42 44 45 47 48 51 52 53 54 59 60 61 66 67 94 95"},F:{"36":0.00681,"43":0.0034,"44":0.0034,"71":0.0034,"72":0.0034,"73":0.05785,"74":0.00681,"75":0.02382,"76":0.05785,"77":1.33057,_:"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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00252,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00126,"6.0-6.1":0.00189,"7.0-7.1":0.01765,"8.1-8.4":0.00315,"9.0-9.2":0.00252,"9.3":0.10084,"10.0-10.2":0.0145,"10.3":0.13803,"11.0-11.2":0.45316,"11.3-11.4":0.075,"12.0-12.1":0.0958,"12.2-12.4":0.38635,"13.0-13.1":0.09706,"13.2":0.03656,"13.3":0.22374,"13.4-13.7":0.45568,"14.0-14.4":2.06349,"14.5-14.7":1.39037},E:{"4":0,"10":0.01021,"12":0.0034,"13":0.01021,"14":0.09528,_:"0 5 6 7 8 9 11 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02042,"11.1":0.01021,"12.1":0.00681,"13.1":0.03403,"14.1":0.12251},B:{"12":0.04424,"13":0.03403,"14":0.05445,"15":0.04084,"16":0.03403,"17":0.02722,"18":0.1089,"84":0.01702,"85":0.02382,"87":0.00681,"88":0.00681,"89":0.03063,"90":0.12931,"91":1.21827,"92":0.50364,_:"79 80 81 83 86"},P:{"4":0.55558,"5.0-5.4":0.02097,"6.2-6.4":0.0107,"7.2-7.4":0.10483,"8.2":0.02139,"9.2":0.14676,"10.1":0.0107,"11.1-11.2":0.15724,"12.0":0.04193,"13.0":0.1782,"14.0":0.78619},I:{"0":0,"3":0,"4":0.0013,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00292,"4.2-4.3":0.00778,"4.4":0,"4.4.3-4.4.4":0.12649},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0109,"11":0.68671,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.03298},N:{"11":0.01319,_:"10"},L:{"0":59.76571},S:{"2.5":0.07914},R:{_:"0"},M:{"0":0.29678},Q:{"10.4":0.03957},O:{"0":1.1871},H:{"0":5.08239}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js index 15658ad4c0b5e4..b86809d4dc7afc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js @@ -1 +1 @@ -module.exports={C:{"32":0.01394,"36":0.0244,"43":1.72508,"52":0.03137,"53":0.00349,"54":0.00697,"55":0.00697,"56":0.00697,"57":0.00697,"58":0.00697,"59":0.00697,"60":0.00349,"61":0.00349,"63":0.00349,"65":0.00349,"66":0.00349,"67":0.00349,"68":0.00697,"71":0.00349,"72":0.00697,"78":0.03137,"79":0.00697,"80":0.05925,"81":0.00697,"82":0.01394,"83":0.00697,"84":0.01394,"85":0.01046,"86":0.01046,"87":0.02788,"88":0.7214,_:"2 3 4 5 6 7 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 37 38 39 40 41 42 44 45 46 47 48 49 50 51 62 64 69 70 73 74 75 76 77 89 90 91 3.5 3.6"},D:{"11":0.01394,"19":0.00349,"31":0.00697,"33":0.00349,"39":0.00697,"40":0.01046,"41":0.01046,"42":0.00697,"43":0.00349,"44":0.00349,"45":0.03137,"47":0.03485,"48":0.11501,"49":0.12198,"50":0.00697,"51":0.00697,"53":0.01394,"54":0.02091,"55":0.11849,"56":0.01743,"57":0.12198,"58":0.00697,"59":0.0244,"60":0.01046,"61":0.00697,"62":0.14637,"63":0.17077,"64":0.00697,"65":0.06273,"66":0.01046,"67":0.34153,"68":0.02788,"69":0.95838,"70":0.57851,"71":0.03834,"72":0.66215,"73":0.10107,"74":2.10146,"75":0.23001,"76":0.08364,"77":0.02091,"78":0.32411,"79":0.21259,"80":0.11152,"81":0.0697,"83":0.25092,"84":0.13243,"85":0.11849,"86":0.22304,"87":0.17774,"88":0.25092,"89":0.60988,"90":3.46409,"91":0.0941,"92":0.02788,_:"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 32 34 35 36 37 38 46 52 93 94"},F:{"74":0.00697,"75":0.0244,"76":0.03834,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00271,"3.2":0.00181,"4.0-4.1":0.00271,"4.2-4.3":0.06589,"5.0-5.1":0.01444,"6.0-6.1":0.02256,"7.0-7.1":0.01805,"8.1-8.4":0.05235,"9.0-9.2":0.15795,"9.3":0.09838,"10.0-10.2":0.20308,"10.3":0.16788,"11.0-11.2":0.5596,"11.3-11.4":0.14351,"12.0-12.1":0.1733,"12.2-12.4":0.33486,"13.0-13.1":0.08214,"13.2":0.12365,"13.3":0.24099,"13.4-13.7":1.35659,"14.0-14.4":4.09956,"14.5-14.6":0.91884},E:{"4":0,"9":0.01046,"10":0.00349,"11":0.00697,"12":0.01046,"13":0.03834,"14":0.42517,_:"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.01743,"12.1":0.03137,"13.1":0.18471,"14.1":0.17077},B:{"13":0.00349,"14":0.00697,"15":0.00697,"16":0.01743,"17":0.0244,"18":0.16031,"83":0.00349,"84":0.00697,"85":0.00697,"86":0.01046,"87":0.01046,"88":0.01394,"89":0.05925,"90":2.44299,"91":0.06273,_:"12 79 80 81"},P:{_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0","9.2":0.03434,"13.0":0.03434,"14.0":0.3548},I:{"0":0,"3":0.07715,"4":0.30861,"2.1":0.07715,"2.2":0.23145,"2.3":0,"4.1":1.08012,"4.2-4.3":0.77151,"4.4":0,"4.4.3-4.4.4":3.31751},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.03091,"8":0.5255,"9":0.46368,"10":0.12365,"11":8.84079,_:"7 5.5"},J:{"7":0,"10":0.04561},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.18894},Q:{"10.4":5.46609},O:{"0":14.23528},H:{"0":0.08635},L:{"0":31.65227}}; +module.exports={C:{"36":0.0112,"43":1.17248,"52":0.03361,"54":0.00373,"55":0.00373,"56":0.00747,"57":0.00373,"58":0.00373,"59":0.00373,"63":0.00373,"68":0.00373,"72":0.00373,"75":0.08215,"78":0.04481,"79":0.00747,"80":0.00747,"81":0.00747,"82":0.01494,"83":0.00747,"84":0.00747,"85":0.00747,"86":0.00747,"87":0.00747,"88":0.01867,"89":0.66465,"90":0.26138,_:"2 3 4 5 6 7 8 9 10 11 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 51 53 60 61 62 64 65 66 67 69 70 71 73 74 76 77 91 92 3.5 3.6"},D:{"11":0.01494,"31":0.00747,"39":0.00747,"40":0.0112,"41":0.00747,"42":0.00747,"43":0.00747,"44":0.00373,"45":0.02987,"46":0.00373,"47":0.03361,"48":0.10829,"49":0.11575,"50":0.00747,"51":0.00747,"52":0.00373,"53":0.0112,"54":0.0224,"55":0.07468,"56":0.01494,"57":0.13069,"58":0.0112,"59":0.0224,"60":0.00747,"61":0.0224,"62":0.14189,"63":0.11575,"64":0.00747,"65":0.06721,"66":0.0112,"67":0.22031,"68":0.02614,"69":1.00818,"70":0.57877,"71":0.03734,"72":0.41821,"73":0.14189,"74":2.21053,"75":0.34726,"76":0.10455,"77":0.01867,"78":0.23898,"79":0.23524,"80":0.12322,"81":0.08962,"83":0.19043,"84":0.14936,"85":0.12696,"86":0.22404,"87":0.16056,"88":0.19417,"89":0.33979,"90":0.7356,"91":4.04392,"92":0.53023,"93":0.03361,_:"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 94 95"},F:{"76":0.00373,"77":0.07468,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00189,"3.2":0,"4.0-4.1":0.00189,"4.2-4.3":0.05856,"5.0-5.1":0.02172,"6.0-6.1":0.02361,"7.0-7.1":0.01606,"8.1-8.4":0.03211,"9.0-9.2":0.136,"9.3":0.08028,"10.0-10.2":0.31356,"10.3":0.12845,"11.0-11.2":0.62051,"11.3-11.4":0.119,"12.0-12.1":0.15867,"12.2-12.4":0.30506,"13.0-13.1":0.06895,"13.2":0.03778,"13.3":0.20022,"13.4-13.7":1.24574,"14.0-14.4":2.09952,"14.5-14.7":3.55399},E:{"4":0,"9":0.0112,"10":0.00373,"11":0.00747,"12":0.0112,"13":0.04107,"14":0.22777,"15":0.0112,_:"0 5 6 7 8 3.1 3.2 5.1 6.1 7.1","9.1":0.00373,"10.1":0.00747,"11.1":0.01494,"12.1":0.02987,"13.1":0.17176,"14.1":0.44061},B:{"13":0.00373,"14":0.00747,"15":0.00373,"16":0.01867,"17":0.02987,"18":0.14936,"84":0.00373,"85":0.0112,"86":0.0112,"87":0.00747,"88":0.00747,"89":0.03361,"90":0.02987,"91":2.70715,"92":0.60491,_:"12 79 80 81 83"},P:{"4":0.0734,"5.0-5.4":0.07051,"6.2-6.4":0.1108,"7.2-7.4":0.0734,"8.2":0.01007,"9.2":0.02287,"10.1":0.06044,"11.1-11.2":0.30407,"12.0":0.04194,"13.0":0.02287,"14.0":0.41168},I:{"0":0,"3":0,"4":0.0745,"2.1":0,"2.2":0,"2.3":0.0745,"4.1":0.26074,"4.2-4.3":0.13037,"4.4":0,"4.4.3-4.4.4":0.80083},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.03575,"8":0.50043,"9":0.46469,"10":0.14298,"11":9.36523,_:"7","5.5":0.03575},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":34.99785},S:{"2.5":0},R:{_:"0"},M:{"0":0.21931},Q:{"10.4":5.78352},O:{"0":12.55706},H:{"0":0.11271}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js index eef8db35ea53c9..449fa61d59cd8e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js @@ -1 +1 @@ -module.exports={C:{"15":0.00536,"17":0.01072,"27":0.00536,"50":0.01072,"51":0.00536,"52":0.01608,"66":0.02144,"73":0.00536,"78":0.05895,"81":0.00536,"84":0.02144,"85":0.00536,"86":0.01072,"87":0.02144,"88":1.29688,"89":0.01608,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 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 47 48 49 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 80 82 83 90 91 3.5 3.6"},D:{"22":0.01072,"23":0.00536,"24":0.01072,"26":0.01072,"38":0.03751,"42":0.00536,"47":0.01072,"49":0.10182,"50":0.00536,"53":0.04823,"58":0.00536,"62":0.01072,"63":0.01608,"65":0.02144,"66":0.01072,"67":0.01072,"68":0.01608,"69":0.01072,"70":0.01608,"71":0.01072,"72":0.02144,"73":0.01608,"74":0.01072,"75":0.02144,"76":0.02144,"77":0.02144,"78":0.0268,"79":0.09646,"80":0.05359,"81":0.04823,"83":0.08039,"84":0.06967,"85":0.05359,"86":0.13933,"87":0.35905,"88":0.25723,"89":0.93783,"90":40.06388,"91":1.22721,"92":0.01072,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 48 51 52 54 55 56 57 59 60 61 64 93 94"},F:{"73":0.34298,"75":1.17362,"76":0.60021,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00087,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00304,"6.0-6.1":0.00521,"7.0-7.1":0.01434,"8.1-8.4":0.00391,"9.0-9.2":0.0013,"9.3":0.06907,"10.0-10.2":0.00521,"10.3":0.04431,"11.0-11.2":0.00652,"11.3-11.4":0.0126,"12.0-12.1":0.00782,"12.2-12.4":0.06038,"13.0-13.1":0.01086,"13.2":0.00478,"13.3":0.04344,"13.4-13.7":0.1451,"14.0-14.4":2.93149,"14.5-14.6":0.67118},E:{"4":0,"12":0.00536,"13":0.05359,"14":0.78241,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00536,"11.1":0.01608,"12.1":0.03215,"13.1":0.23044,"14.1":0.39657},B:{"17":0.00536,"18":0.04823,"84":0.01072,"86":0.00536,"88":0.00536,"89":0.03751,"90":2.36868,"91":0.08574,_:"12 13 14 15 16 79 80 81 83 85 87"},P:{"4":0.19987,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.07363,"8.2":0.03018,"9.2":0.02104,"10.1":0.02069,"11.1-11.2":0.10519,"12.0":0.04208,"13.0":0.2209,"14.0":1.03089},I:{"0":0,"3":0,"4":0.00038,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00229,"4.2-4.3":0.00801,"4.4":0,"4.4.3-4.4.4":0.045},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00536,"11":0.12326,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12992},Q:{"10.4":0},O:{"0":0.04176},H:{"0":0.12739},L:{"0":41.71468}}; +module.exports={C:{"4":0.01014,"5":0.01014,"15":0.01014,"17":0.02534,"50":0.01014,"52":0.0152,"66":0.0152,"68":0.03041,"73":0.00507,"78":0.04561,"80":0.00507,"84":0.02027,"85":0.00507,"86":0.00507,"87":0.01014,"88":0.04054,"89":0.82608,"90":0.54228,"91":0.01014,_:"2 3 6 7 8 9 10 11 12 13 14 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 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 74 75 76 77 79 81 82 83 92 3.5 3.6"},D:{"22":0.0152,"23":0.0152,"24":0.02534,"25":0.01014,"26":0.01014,"38":0.04561,"42":0.00507,"47":0.01014,"49":0.08616,"50":0.01014,"53":0.01014,"61":0.0152,"62":0.01014,"63":0.0152,"65":0.02027,"67":0.0152,"68":0.01014,"69":0.0152,"70":0.0152,"71":0.01014,"72":0.0152,"73":0.00507,"74":0.01014,"75":0.02027,"76":0.02534,"77":0.0152,"78":0.0152,"79":0.29394,"80":0.05068,"81":0.06082,"83":0.05068,"84":0.04561,"85":0.04054,"86":0.08616,"87":0.28381,"88":0.10643,"89":0.20272,"90":0.55748,"91":29.70862,"92":8.53958,"93":0.0152,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 48 51 52 54 55 56 57 58 59 60 64 66 94 95"},F:{"66":0.00507,"75":0.01014,"76":0.73486,"77":1.33288,_:"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 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00092,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00276,"6.0-6.1":0.01244,"7.0-7.1":0.00968,"8.1-8.4":0.0023,"9.0-9.2":0.00184,"9.3":0.07925,"10.0-10.2":0.0023,"10.3":0.04423,"11.0-11.2":0.00553,"11.3-11.4":0.01106,"12.0-12.1":0.00691,"12.2-12.4":0.04193,"13.0-13.1":0.00829,"13.2":0.00415,"13.3":0.0341,"13.4-13.7":0.12486,"14.0-14.4":0.6598,"14.5-14.7":3.23355},E:{"4":0,"12":0.00507,"13":0.04054,"14":0.28381,"15":0.00507,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01014,"11.1":0.02027,"12.1":0.02534,"13.1":0.16218,"14.1":0.75006},B:{"17":0.00507,"18":0.04054,"84":0.01014,"89":0.02027,"90":0.0152,"91":1.89543,"92":0.57268,_:"12 13 14 15 16 79 80 81 83 85 86 87 88"},P:{"4":0.18928,"5.0-5.4":0.07051,"6.2-6.4":0.1108,"7.2-7.4":0.09464,"8.2":0.01007,"9.2":0.02103,"10.1":0.06044,"11.1-11.2":0.08412,"12.0":0.03155,"13.0":0.11567,"14.0":1.13566},I:{"0":0,"3":0,"4":0.00112,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00187,"4.2-4.3":0.0056,"4.4":0,"4.4.3-4.4.4":0.03581},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01615,"9":0.01077,"10":0.01615,"11":0.12923,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":45.01121},S:{"2.5":0},R:{_:"0"},M:{"0":0.1381},Q:{"10.4":0},O:{"0":0.03452},H:{"0":0.12607}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js index 5bde381ca28a38..b9e10dcc008f65 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js @@ -1 +1 @@ -module.exports={C:{"52":0.06185,"66":0.19508,"67":0.09992,"72":0.00952,"73":0.0571,"78":0.22363,"80":0.00952,"84":0.02379,"85":0.00952,"86":0.01903,"87":0.03806,"88":2.40755,"89":0.04282,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 68 69 70 71 74 75 76 77 79 81 82 83 90 91 3.5 3.6"},D:{"49":0.16653,"52":0.01427,"53":0.00952,"61":0.49959,"63":0.00952,"65":0.06185,"67":0.01427,"69":0.00952,"71":0.00476,"73":0.00476,"74":0.00476,"75":0.02379,"76":0.02379,"77":0.00952,"78":0.03806,"79":0.01903,"80":0.03331,"81":0.03331,"83":0.07137,"84":0.02855,"85":0.03331,"86":0.08564,"87":0.23314,"88":0.28072,"89":0.73273,"90":29.22364,"91":1.042,"92":0.01427,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 55 56 57 58 59 60 62 64 66 68 70 72 93 94"},F:{"28":0.00952,"36":0.00476,"71":0.00476,"73":0.2379,"75":0.93257,"76":0.42822,_:"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 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0019,"4.0-4.1":0.00095,"4.2-4.3":0,"5.0-5.1":0.0095,"6.0-6.1":0.0114,"7.0-7.1":0.02755,"8.1-8.4":0.00095,"9.0-9.2":0.0019,"9.3":0.07316,"10.0-10.2":0.00285,"10.3":0.05796,"11.0-11.2":0.01235,"11.3-11.4":0.02755,"12.0-12.1":0.01235,"12.2-12.4":0.07791,"13.0-13.1":0.02185,"13.2":0.0057,"13.3":0.09786,"13.4-13.7":0.23752,"14.0-14.4":6.5262,"14.5-14.6":1.86124},E:{"4":0,"12":0.01427,"13":0.07137,"14":2.07925,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.49007,"10.1":0.00952,"11.1":0.0571,"12.1":0.06185,"13.1":0.46153,"14.1":0.86596},B:{"12":0.00476,"14":0.00476,"15":0.00476,"17":0.00476,"18":0.03806,"84":0.01427,"85":0.00476,"86":0.00476,"88":0.00476,"89":0.04758,"90":3.23068,"91":0.19032,_:"13 16 79 80 81 83 87"},P:{"4":0.09326,"5.0-5.4":0.04221,"6.2-6.4":0.01036,"7.2-7.4":0.06217,"8.2":0.0101,"9.2":0.0829,"10.1":0.29301,"11.1-11.2":0.23834,"12.0":0.10362,"13.0":0.39377,"14.0":2.59061},I:{"0":0,"3":0,"4":0.00599,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00266,"4.2-4.3":0.00799,"4.4":0,"4.4.3-4.4.4":0.06723},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16653,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.39839},Q:{"10.4":0},O:{"0":0.05766},H:{"0":0.28288},L:{"0":40.41747}}; +module.exports={C:{"52":0.06776,"66":0.17165,"72":0.00903,"73":0.0542,"78":0.22133,"79":0.00452,"84":0.00903,"85":0.00452,"86":0.00903,"88":0.19875,"89":1.27379,"90":0.81758,"91":0.0271,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 68 69 70 71 74 75 76 77 80 81 82 83 87 92 3.5 3.6"},D:{"38":0.00452,"49":0.15358,"58":0.00452,"63":0.00452,"65":0.04969,"66":0.00452,"67":0.00452,"68":0.00452,"69":0.00452,"70":0.00452,"71":0.01355,"73":0.00452,"74":0.00903,"75":0.03614,"76":0.01807,"77":0.00903,"78":0.01355,"79":0.0271,"80":0.03162,"81":0.04969,"83":0.05872,"84":0.0271,"85":0.02259,"86":0.07227,"87":0.87178,"88":0.12196,"89":0.09937,"90":0.51494,"91":23.31224,"92":5.48816,_:"4 5 6 7 8 9 10 11 12 13 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 72 93 94 95"},F:{"28":0.00452,"36":0.00903,"74":0.00903,"76":0.56011,"77":0.94857,_:"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 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00309,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00619,"6.0-6.1":0.00722,"7.0-7.1":0.02784,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05363,"10.0-10.2":0.00206,"10.3":0.06497,"11.0-11.2":0.00825,"11.3-11.4":0.03197,"12.0-12.1":0.02269,"12.2-12.4":0.09591,"13.0-13.1":0.01547,"13.2":0.00619,"13.3":0.09075,"13.4-13.7":0.17016,"14.0-14.4":1.22413,"14.5-14.7":8.05533},E:{"4":0,"12":0.00903,"13":0.03162,"14":0.48784,"15":0.01807,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.11293,"10.1":0.00903,"11.1":0.04969,"12.1":0.06776,"13.1":0.37039,"14.1":2.05524},B:{"15":0.00452,"17":0.00452,"18":0.0271,"84":0.00452,"89":0.0271,"90":0.02259,"91":2.62889,"92":0.72724,_:"12 13 14 16 79 80 81 83 85 86 87 88"},P:{"4":0.36277,"5.0-5.4":0.01062,"6.2-6.4":0.01036,"7.2-7.4":0.09328,"8.2":0.02033,"9.2":0.04146,"10.1":0.05058,"11.1-11.2":0.19693,"12.0":0.07255,"13.0":0.47678,"14.0":2.71556},I:{"0":0,"3":0,"4":0.00476,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00159,"4.2-4.3":0.00635,"4.4":0,"4.4.3-4.4.4":0.04762},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00964,"11":0.20718,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":42.33213},S:{"2.5":0},R:{_:"0"},M:{"0":0.39478},Q:{"10.4":0},O:{"0":0.03838},H:{"0":0.21283}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js index 59464b3891d0b4..4de5c064881caa 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js @@ -1 +1 @@ -module.exports={C:{"17":0.00652,"18":0.00652,"21":0.00652,"23":0.00979,"28":0.00326,"29":0.01631,"31":0.00979,"32":0.00326,"33":0.00326,"34":0.05872,"35":0.02283,"36":0.00326,"37":0.01631,"38":0.02283,"39":0.03262,"40":0.04241,"41":0.01957,"42":0.00979,"43":0.04567,"44":0.00979,"45":0.03262,"46":0.01305,"47":0.05219,"48":0.0261,"49":0.02283,"50":0.10765,"51":0.00652,"52":0.33272,"53":0.02283,"54":0.10438,"55":0.0261,"56":0.07503,"57":0.26096,"58":0.04241,"59":0.07829,"60":0.09786,"61":0.08807,"62":0.10438,"63":0.02936,"64":0.05219,"65":0.05219,"66":0.08807,"67":0.11091,"68":0.137,"69":0.07503,"70":0.0685,"71":0.08155,"72":0.24791,"73":0.06524,"74":0.03588,"75":0.05219,"76":0.03262,"77":0.04241,"78":0.31641,"79":0.02936,"80":0.10765,"81":0.09786,"82":0.07503,"83":0.17289,"84":0.25444,"85":0.14353,"86":0.46973,"87":0.52518,"88":8.76826,"89":0.10438,"90":0.01305,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19 20 22 24 25 26 27 30 91 3.5 3.6"},D:{"20":0.00652,"22":0.00326,"26":0.00326,"33":0.00979,"37":0.00652,"44":0.00979,"45":0.00652,"49":0.01957,"50":0.00326,"51":0.14027,"52":0.00979,"53":0.01957,"54":0.00326,"55":0.00326,"56":0.04241,"57":0.00652,"58":0.00326,"60":0.00652,"61":0.01305,"62":0.04893,"63":0.01631,"64":0.00652,"66":0.00979,"67":0.00979,"68":0.01305,"69":0.00652,"70":0.03262,"71":0.03914,"72":0.01957,"73":0.03588,"74":0.03588,"75":0.08481,"76":0.0261,"77":0.07176,"78":0.02283,"79":0.08155,"80":0.13048,"81":0.11091,"83":0.06198,"84":0.1631,"85":0.15005,"86":0.1892,"87":1.33416,"88":0.36534,"89":0.60999,"90":6.72951,"91":0.2316,"92":0.00979,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 23 24 25 27 28 29 30 31 32 34 35 36 38 39 40 41 42 43 46 47 48 59 65 93 94"},F:{"34":0.00326,"37":0.00652,"42":0.00326,"45":0.00326,"54":0.00326,"64":0.00652,"68":0.00652,"71":0.01305,"72":0.00979,"73":0.03914,"74":0.01957,"75":0.31315,"76":0.45668,_:"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 43 44 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 65 66 67 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00228,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01085,"6.0-6.1":0.00114,"7.0-7.1":0.0451,"8.1-8.4":0.01598,"9.0-9.2":0.004,"9.3":0.10104,"10.0-10.2":0.05594,"10.3":0.20094,"11.0-11.2":0.08962,"11.3-11.4":0.04966,"12.0-12.1":0.12216,"12.2-12.4":0.74438,"13.0-13.1":0.0959,"13.2":0.08848,"13.3":0.36078,"13.4-13.7":0.49549,"14.0-14.4":2.38842,"14.5-14.6":0.46353},E:{"4":0,"7":0.00326,"13":0.01305,"14":0.06524,_:"0 5 6 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.01774,"11.1":0.00652,"12.1":0.00979,"13.1":0.01305,"14.1":0.01957},B:{"12":0.0261,"13":0.04567,"14":0.01305,"15":0.02936,"16":0.02283,"17":0.02936,"18":0.13048,"81":0.00979,"83":0.00326,"84":0.08481,"85":0.0261,"87":0.00979,"88":0.03588,"89":0.20224,"90":0.7894,"91":0.03914,_:"79 80 86"},P:{"4":0.69799,"5.0-5.4":0.08093,"6.2-6.4":0.04046,"7.2-7.4":0.24278,"8.2":0.02023,"9.2":0.18208,"10.1":0.16185,"11.1-11.2":0.18208,"12.0":0.26301,"13.0":0.53613,"14.0":0.92053},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0075,"4.2-4.3":0.03806,"4.4":0,"4.4.3-4.4.4":0.25087},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14679,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01347},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":1.11161},Q:{"10.4":0.03369},O:{"0":0.29643},H:{"0":1.08429},L:{"0":59.0569}}; +module.exports={C:{"18":0.01247,"23":0.0187,"26":0.00312,"28":0.00312,"33":0.00312,"34":0.0187,"35":0.00623,"36":0.00623,"37":0.00623,"38":0.01247,"39":0.01559,"40":0.02805,"41":0.00623,"42":0.00623,"43":0.03429,"45":0.03429,"46":0.00935,"47":0.03117,"48":0.01559,"49":0.01247,"50":0.15585,"51":0.00623,"52":0.25559,"53":0.0187,"54":0.03429,"55":0.01247,"56":0.08104,"57":0.14962,"58":0.04676,"59":0.04364,"60":0.07793,"61":0.08416,"62":0.04676,"63":0.01559,"64":0.04364,"65":0.16208,"66":0.04676,"67":0.07793,"68":0.1091,"69":0.06546,"70":0.04676,"71":0.04987,"72":0.19949,"73":0.02494,"74":0.0374,"75":0.02494,"76":0.02182,"77":0.03429,"78":0.23066,"79":0.02805,"80":0.09351,"81":0.08104,"82":0.05611,"83":0.11845,"84":0.1839,"85":0.10598,"86":0.15273,"87":0.11533,"88":0.9351,"89":5.74151,"90":2.85829,"91":0.07481,"92":0.00623,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 24 25 27 29 30 31 32 44 3.5 3.6"},D:{"37":0.00623,"38":0.00312,"42":0.00935,"45":0.00623,"49":0.02182,"51":0.00623,"53":0.00935,"54":0.00312,"55":0.01247,"56":0.04052,"58":0.00623,"59":0.00623,"60":0.00623,"62":0.01559,"63":0.02182,"64":0.00312,"65":0.00312,"66":0.00623,"67":0.01247,"68":0.01247,"69":0.00623,"70":0.01559,"71":0.03429,"72":0.02182,"73":0.06234,"74":0.03429,"75":0.02805,"76":0.04052,"77":0.07169,"78":0.02182,"79":0.14027,"80":0.04987,"81":0.09039,"83":0.04052,"84":0.11533,"85":0.21196,"86":0.15897,"87":0.82912,"88":0.23066,"89":0.1839,"90":0.40521,"91":5.66671,"92":1.10654,_:"4 5 6 7 8 9 10 11 12 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 43 44 46 47 48 50 52 57 61 93 94 95"},F:{"36":0.00623,"42":0.00623,"57":0.00312,"64":0.01247,"71":0.00623,"72":0.00623,"73":0.00623,"74":0.01247,"75":0.02182,"76":0.08104,"77":0.85094,_:"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 58 60 62 63 65 66 67 68 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00353,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00294,"6.0-6.1":0.0053,"7.0-7.1":0.13891,"8.1-8.4":0.05474,"9.0-9.2":0.01589,"9.3":0.09182,"10.0-10.2":0.02295,"10.3":0.1136,"11.0-11.2":0.09712,"11.3-11.4":0.05827,"12.0-12.1":0.07593,"12.2-12.4":0.6186,"13.0-13.1":0.0877,"13.2":0.08122,"13.3":0.39435,"13.4-13.7":0.57269,"14.0-14.4":2.01884,"14.5-14.7":0.96174},E:{"4":0,"13":0.00935,"14":0.03429,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 9.1 10.1","5.1":0.07481,"7.1":0.00312,"11.1":0.00312,"12.1":0.00935,"13.1":0.01247,"14.1":0.04987},B:{"12":0.01559,"13":0.02494,"14":0.02182,"15":0.0374,"16":0.1091,"17":0.03429,"18":0.10598,"84":0.07169,"85":0.02494,"86":0.00623,"87":0.00312,"88":0.00623,"89":0.10286,"90":0.09663,"91":1.05666,"92":0.17767,_:"79 80 81 83"},P:{"4":0.49824,"5.0-5.4":0.07118,"6.2-6.4":0.02034,"7.2-7.4":0.27454,"8.2":0.02034,"9.2":0.18303,"10.1":0.14236,"11.1-11.2":0.1932,"12.0":0.17286,"13.0":0.33555,"14.0":1.02699},I:{"0":0,"3":0,"4":0.00117,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0076,"4.2-4.3":0.04382,"4.4":0,"4.4.3-4.4.4":0.2571},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00407,"9":0.00407,"11":0.23187,_:"6 7 10 5.5"},J:{"7":0,"10":0.01376},N:{"11":0.01518,_:"10"},L:{"0":62.11073},S:{"2.5":0},R:{_:"0"},M:{"0":0.88778},Q:{"10.4":0.02065},O:{"0":0.27528},H:{"0":1.25748}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js index 4ea0f3048dbdb2..20c0d0bae31dde 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js @@ -1 +1 @@ -module.exports={C:{"17":0.0083,"52":0.02904,"78":0.28213,"83":0.10373,"86":0.0083,"87":0.02904,"88":1.82971,"89":0.06224,_:"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 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 90 91 3.5 3.6"},D:{"40":0.00415,"43":0.0166,"47":0.0083,"49":0.04979,"53":0.01245,"54":0.03734,"55":0.05809,"60":0.00415,"63":0.0166,"65":0.04149,"67":0.00415,"69":0.00415,"70":0.0166,"71":0.00415,"72":0.01245,"73":0.04564,"74":0.02075,"75":0.04564,"76":0.0083,"77":0.0083,"78":0.0083,"79":0.11202,"80":0.02075,"81":0.04979,"83":0.03319,"84":0.0166,"85":0.41905,"86":0.04979,"87":0.40245,"88":0.12447,"89":0.53937,"90":23.2344,"91":1.29034,_:"4 5 6 7 8 9 10 11 12 13 14 15 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 48 50 51 52 56 57 58 59 61 62 64 66 68 92 93 94"},F:{"37":0.0083,"40":0.0083,"72":0.0083,"73":0.02904,"75":0.30703,"76":1.14927,_:"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 41 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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01409,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00141,"7.0-7.1":0.18667,"8.1-8.4":0,"9.0-9.2":0.01338,"9.3":0.62834,"10.0-10.2":0.00986,"10.3":0.28247,"11.0-11.2":0.15779,"11.3-11.4":0.0324,"12.0-12.1":0.09087,"12.2-12.4":0.78824,"13.0-13.1":0.02465,"13.2":0.01902,"13.3":0.09862,"13.4-13.7":0.31628,"14.0-14.4":3.12266,"14.5-14.6":0.61425},E:{"4":0,"8":0.04979,"13":0.01245,"14":0.43979,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0166,"12.1":0.14107,"13.1":0.15351,"14.1":0.26139},B:{"12":0.0083,"13":0.0166,"15":0.00415,"16":0.0166,"17":0.04564,"18":0.08713,"84":0.02075,"85":0.01245,"86":0.0083,"87":0.56426,"88":0.0083,"89":0.15351,"90":3.58889,"91":0.36926,_:"14 79 80 81 83"},P:{"4":0.52353,"5.0-5.4":0.0308,"6.2-6.4":0.01027,"7.2-7.4":0.21557,"8.2":0.02053,"9.2":0.11292,"10.1":0.08212,"11.1-11.2":0.49273,"12.0":0.21557,"13.0":0.37981,"14.0":1.3858},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00266,"4.2-4.3":0.01397,"4.4":0,"4.4.3-4.4.4":0.15304},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00415,"11":0.39001,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.0234},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.07606},Q:{"10.4":0},O:{"0":0.15798},H:{"0":0.34898},L:{"0":51.74721}}; +module.exports={C:{"45":0.00354,"52":0.04602,"61":0.09204,"78":0.06372,"83":0.00708,"86":0.00354,"87":0.00354,"88":0.01062,"89":1.27086,"90":0.49914,"91":0.02124,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 72 73 74 75 76 77 79 80 81 82 84 85 92 3.5 3.6"},D:{"43":0.00708,"47":0.01062,"49":0.18408,"52":0.00708,"53":0.00708,"55":0.04602,"61":0.0708,"63":0.01062,"64":0.00708,"65":0.02124,"67":0.00708,"69":0.02478,"70":0.03186,"71":0.00708,"72":0.00708,"73":0.11328,"74":0.01062,"75":0.02832,"76":0.00708,"78":0.01416,"79":0.04956,"80":0.02832,"81":0.09912,"83":0.02832,"84":0.01062,"85":0.10974,"86":0.0531,"87":0.13098,"88":0.0708,"89":0.25488,"90":1.01598,"91":15.48396,"92":3.88338,"93":0.00354,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 54 56 57 58 59 60 62 66 68 77 94 95"},F:{"76":0.12744,"77":1.17528,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0.0066,"4.2-4.3":0,"5.0-5.1":0.00189,"6.0-6.1":0.00189,"7.0-7.1":0.12926,"8.1-8.4":0,"9.0-9.2":0.01038,"9.3":0.20569,"10.0-10.2":0.02359,"10.3":0.16889,"11.0-11.2":0.06605,"11.3-11.4":0.33778,"12.0-12.1":0.07359,"12.2-12.4":0.60857,"13.0-13.1":0.04529,"13.2":0.04057,"13.3":0.07737,"13.4-13.7":0.2906,"14.0-14.4":1.62851,"14.5-14.7":4.7138},E:{"4":0,"13":0.00708,"14":0.25134,"15":0.06726,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01062,"11.1":0.01416,"12.1":0.12036,"13.1":0.15576,"14.1":0.77526},B:{"13":0.01416,"15":0.00708,"16":0.01062,"17":0.0177,"18":0.06726,"84":0.01062,"85":0.00708,"87":0.0708,"88":0.01062,"89":0.03894,"90":0.0354,"91":3.13998,"92":0.52392,_:"12 14 79 80 81 83 86"},P:{"4":0.45739,"5.0-5.4":0.04158,"6.2-6.4":0.0104,"7.2-7.4":0.27027,"8.2":0.02139,"9.2":0.19751,"10.1":0.0107,"11.1-11.2":0.30146,"12.0":0.04158,"13.0":0.41581,"14.0":1.21623},I:{"0":0,"3":0,"4":0.00069,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00207,"4.2-4.3":0.00989,"4.4":0,"4.4.3-4.4.4":0.07133},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0216,"11":0.39966,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":56.22118},S:{"2.5":0},R:{_:"0"},M:{"0":0.0323},Q:{"10.4":0.00646},O:{"0":0.05814},H:{"0":0.3853}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js index 83038250243b94..3bee0eda593111 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js @@ -1 +1 @@ -module.exports={C:{"87":7.75,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 3.5 3.6"},D:{"81":9.3,"90":76.74,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 88 89 91 92 93 94"},F:{"76":2.33,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":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.6":0},E:{"4":0,"14":2.33,_:"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"},B:{"90":0.78,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91"},P:{"4":0.50748,"5.0-5.4":0.0406,"6.2-6.4":0.11165,"7.2-7.4":0.50748,"8.2":0.02053,"9.2":0.28419,"10.1":0.0406,"11.1-11.2":1.2078,"12.0":0.0812,"13.0":0.53793,"14.0":0.74092},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.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":0}}; +module.exports={C:{"66":2.5025,"90":4.99538,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 3.5 3.6"},D:{"81":13.75413,"91":68.75138,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 88 89 90 92 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":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.7":0},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"},B:{"91":6.24663,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 92"},P:{"4":0.0734,"5.0-5.4":0.07051,"6.2-6.4":0.1108,"7.2-7.4":0.0734,"8.2":0.01007,"9.2":0.02287,"10.1":0.06044,"11.1-11.2":0.30407,"12.0":0.04194,"13.0":0.02287,"14.0":0.41168},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:{"11":0.01319,_:"10"},L:{"0":3.75},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js index a8c7a783796889..7e0260b0246a54 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js @@ -1 +1 @@ -module.exports={C:{"43":0.0047,"47":0.0047,"52":0.17841,"60":0.0047,"64":0.01409,"68":0.0047,"77":0.0047,"78":0.05634,"79":0.0047,"83":0.00939,"84":0.00939,"85":0.01409,"86":0.00939,"87":0.03287,"88":2.20196,"89":0.01878,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 61 62 63 65 66 67 69 70 71 72 73 74 75 76 80 81 82 90 91 3.5 3.6"},D:{"29":0.02817,"38":0.02817,"42":1.26296,"47":0.00939,"49":0.4695,"53":0.05165,"65":0.01878,"68":0.0047,"69":0.00939,"70":1.19253,"71":0.01878,"72":0.04695,"73":0.01409,"74":0.07982,"75":0.00939,"76":0.00939,"77":0.01409,"78":0.01409,"79":0.03756,"80":0.02348,"81":0.04226,"83":0.04226,"84":0.02348,"85":0.04695,"86":0.06104,"87":0.34274,"88":0.15024,"89":1.00004,"90":28.09488,"91":0.96248,_:"4 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 39 40 41 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 66 67 92 93 94"},F:{"73":0.13146,"74":0.05634,"75":0.36152,"76":0.44603,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00255,"6.0-6.1":0.00383,"7.0-7.1":0.03954,"8.1-8.4":0.0051,"9.0-9.2":0.0051,"9.3":0.14156,"10.0-10.2":0.02041,"10.3":0.14539,"11.0-11.2":0.12753,"11.3-11.4":0.04081,"12.0-12.1":0.03826,"12.2-12.4":0.15942,"13.0-13.1":0.02423,"13.2":0.0102,"13.3":0.13264,"13.4-13.7":0.53692,"14.0-14.4":9.18886,"14.5-14.6":1.62989},E:{"4":0,"5":0.01409,"12":0.00939,"13":0.07512,"14":1.77941,_:"0 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01409,"10.1":0.0047,"11.1":0.01878,"12.1":0.30048,"13.1":0.39438,"14.1":0.70895},B:{"14":0.0047,"15":0.0047,"16":0.0047,"17":0.01878,"18":0.04695,"84":0.00939,"85":0.0047,"89":0.05165,"90":3.3804,"91":0.2817,_:"12 13 79 80 81 83 86 87 88"},P:{"4":0.05219,"5.0-5.4":0.08093,"6.2-6.4":0.04046,"7.2-7.4":0.24278,"8.2":0.02023,"9.2":0.02088,"10.1":0.01044,"11.1-11.2":0.0835,"12.0":0.05219,"13.0":0.36532,"14.0":3.64277},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00448,"4.2-4.3":0.01008,"4.4":0,"4.4.3-4.4.4":0.08622},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.35682,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.15912},Q:{"10.4":0},O:{"0":1.08202},H:{"0":0.37159},L:{"0":36.10562}}; +module.exports={C:{"52":0.24867,"78":0.08842,"82":0.01658,"84":0.0221,"85":0.01105,"88":0.03868,"89":1.07204,"90":0.60786,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 83 86 87 91 92 3.5 3.6"},D:{"38":0.03868,"42":1.6799,"49":0.4034,"53":0.01105,"62":0.00553,"68":0.00553,"69":0.01105,"70":1.6578,"71":0.01658,"72":0.03316,"73":0.00553,"74":0.06631,"75":0.00553,"77":0.00553,"78":0.01658,"79":0.09394,"80":0.01105,"81":0.06079,"83":0.0221,"84":0.0221,"85":0.0221,"86":0.03316,"87":0.20446,"88":0.06079,"89":0.24314,"90":0.23762,"91":32.61998,"92":5.99571,_:"4 5 6 7 8 9 10 11 12 13 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 57 58 59 60 61 63 64 65 66 67 76 93 94 95"},F:{"76":0.18788,"77":0.58576,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00113,"7.0-7.1":0.01248,"8.1-8.4":0.00567,"9.0-9.2":0.00567,"9.3":0.07941,"10.0-10.2":0.01475,"10.3":0.12252,"11.0-11.2":0.10437,"11.3-11.4":0.04198,"12.0-12.1":0.03403,"12.2-12.4":0.11231,"13.0-13.1":0.01702,"13.2":0.00681,"13.3":0.07828,"13.4-13.7":0.34375,"14.0-14.4":1.46462,"14.5-14.7":8.50413},E:{"4":0,"13":0.04973,"14":0.37577,_:"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.00553,"11.1":0.0221,"12.1":0.34814,"13.1":0.29288,"14.1":1.47544},B:{"15":0.00553,"18":0.03316,"84":0.00553,"89":0.01105,"90":0.00553,"91":2.80168,"92":0.66312,_:"12 13 14 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.04167,"5.0-5.4":0.07118,"6.2-6.4":0.02034,"7.2-7.4":0.27454,"8.2":0.02034,"9.2":0.02084,"10.1":0.14236,"11.1-11.2":0.09376,"12.0":0.04167,"13.0":0.15627,"14.0":3.2921},I:{"0":0,"3":0,"4":0.00172,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00258,"4.2-4.3":0.00602,"4.4":0,"4.4.3-4.4.4":0.05679},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28183,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":30.27061},S:{"2.5":0},R:{_:"0"},M:{"0":0.12527},Q:{"10.4":0.00895},O:{"0":0.90375},H:{"0":0.28379}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js index 20441c03aeb88c..11cfed28d2ea94 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js @@ -1 +1 @@ -module.exports={C:{"17":0.01213,"48":0.00607,"52":0.15165,"56":0.04246,"60":0.01213,"65":0.00607,"66":0.00607,"68":0.02426,"71":0.0182,"72":0.01213,"73":0.00607,"76":0.00607,"78":0.27904,"79":0.01213,"80":0.00607,"81":0.01213,"82":0.05459,"83":0.04853,"84":0.04853,"85":0.10312,"86":0.05459,"87":0.16378,"88":6.62407,"89":0.0182,_:"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 51 53 54 55 57 58 59 61 62 63 64 67 69 70 74 75 77 90 91 3.5 3.6"},D:{"22":0.00607,"24":0.00607,"38":0.01213,"49":0.17591,"53":0.0364,"59":0.01213,"61":0.0182,"62":0.00607,"63":0.01213,"65":0.00607,"66":0.01213,"67":0.0182,"68":0.01213,"69":0.02426,"70":0.0182,"71":0.00607,"72":0.0182,"73":0.01213,"74":0.01213,"75":0.04853,"76":0.0182,"77":0.0182,"78":0.03033,"79":0.07279,"80":0.04853,"81":0.04853,"83":0.05459,"84":0.06673,"85":0.06673,"86":0.09706,"87":0.26084,"88":0.23051,"89":1.30419,"90":32.78673,"91":0.70366,"92":0.0182,_:"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 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 60 64 93 94"},F:{"36":0.00607,"52":0.00607,"68":0.00607,"73":0.21231,"74":0.01213,"75":1.33452,"76":1.61962,_:"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 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0182},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00082,"5.0-5.1":0.00082,"6.0-6.1":0.0041,"7.0-7.1":0.00493,"8.1-8.4":0.00082,"9.0-9.2":0.00328,"9.3":0.06403,"10.0-10.2":0.00575,"10.3":0.0747,"11.0-11.2":0.01888,"11.3-11.4":0.02052,"12.0-12.1":0.01806,"12.2-12.4":0.09358,"13.0-13.1":0.02545,"13.2":0.00985,"13.3":0.08127,"13.4-13.7":0.24216,"14.0-14.4":5.90883,"14.5-14.6":1.30194},E:{"4":0,"12":0.00607,"13":0.05459,"14":2.1595,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0182,"11.1":0.05459,"12.1":0.07279,"13.1":0.30937,"14.1":0.78251},B:{"14":0.00607,"15":0.01213,"16":0.0182,"17":0.0364,"18":0.10919,"84":0.01213,"85":0.01213,"86":0.03033,"87":0.01213,"88":0.01213,"89":0.16378,"90":6.19945,"91":0.10919,_:"12 13 79 80 81 83"},P:{"4":0.04282,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.01037,"8.2":0.03018,"9.2":0.0107,"10.1":0.0107,"11.1-11.2":0.06423,"12.0":0.07493,"13.0":0.2355,"14.0":2.05527},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0029,"4.2-4.3":0.01668,"4.4":0,"4.4.3-4.4.4":0.0827},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0498,"11":1.13914,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00393},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.3698},Q:{"10.4":0.0118},O:{"0":0.16916},H:{"0":0.43949},L:{"0":28.97826}}; +module.exports={C:{"48":0.01081,"52":0.12434,"56":0.03244,"60":0.01081,"66":0.00541,"68":0.02162,"70":0.01081,"71":0.01081,"72":0.01081,"76":0.01081,"78":0.2703,"79":0.01081,"80":0.01081,"81":0.01081,"82":0.01081,"83":0.01081,"84":0.02703,"85":0.07568,"86":0.02162,"87":0.02703,"88":0.16759,"89":4.00585,"90":2.3462,"91":0.02162,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 61 62 63 64 65 67 69 73 74 75 77 92 3.5 3.6"},D:{"22":0.00541,"24":0.00541,"34":0.00541,"38":0.01081,"42":0.00541,"49":0.21083,"53":0.02162,"58":0.01081,"61":0.11353,"65":0.00541,"67":0.01081,"69":0.02162,"70":0.02162,"71":0.00541,"72":0.01081,"73":0.01081,"74":0.01081,"75":0.02703,"76":0.01081,"77":0.01081,"78":0.01081,"79":0.11353,"80":0.01622,"81":0.04865,"83":0.04865,"84":0.03784,"85":0.03784,"86":0.0865,"87":0.21624,"88":0.11893,"89":0.26489,"90":0.43248,"91":23.95399,"92":5.19517,"93":0.00541,_:"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 33 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 62 63 64 66 68 94 95"},F:{"36":0.01081,"69":0.00541,"74":0.01081,"75":0.00541,"76":0.42707,"77":2.5192,_:"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 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01622},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0055,"6.0-6.1":0.00458,"7.0-7.1":0.00275,"8.1-8.4":0.00275,"9.0-9.2":0.00092,"9.3":0.06872,"10.0-10.2":0.00641,"10.3":0.07697,"11.0-11.2":0.02107,"11.3-11.4":0.05498,"12.0-12.1":0.02199,"12.2-12.4":0.07239,"13.0-13.1":0.01374,"13.2":0.00641,"13.3":0.05681,"13.4-13.7":0.20525,"14.0-14.4":1.11514,"14.5-14.7":7.03355},E:{"4":0,"12":0.00541,"13":0.02703,"14":0.48654,"15":0.02162,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00541,"10.1":0.01622,"11.1":0.03244,"12.1":0.05406,"13.1":0.22165,"14.1":1.86507},B:{"14":0.00541,"15":0.00541,"16":0.01081,"17":0.02162,"18":0.04865,"84":0.00541,"85":0.00541,"86":0.01081,"87":0.01081,"88":0.00541,"89":0.04325,"90":0.04865,"91":4.71944,"92":1.22716,_:"12 13 79 80 81 83"},P:{"4":0.08466,"5.0-5.4":0.07118,"6.2-6.4":0.02034,"7.2-7.4":0.27454,"8.2":0.02034,"9.2":0.01058,"10.1":0.01058,"11.1-11.2":0.07408,"12.0":0.04233,"13.0":0.15874,"14.0":2.58216},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00377,"4.2-4.3":0.01412,"4.4":0,"4.4.3-4.4.4":0.09696},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01144,"10":0.01716,"11":0.96071,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":34.7063},S:{"2.5":0},R:{_:"0"},M:{"0":0.47318},Q:{"10.4":0},O:{"0":0.1516},H:{"0":0.50887}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js index 68ba12605dc468..741a3f249d5c15 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js @@ -1 +1 @@ -module.exports={C:{"48":0.01662,"51":0.01662,"52":0.14407,"53":0.01108,"54":0.00554,"55":0.00554,"56":0.02216,"59":0.01662,"60":0.01662,"65":0.00554,"66":0.01108,"68":0.04433,"69":0.00554,"70":0.01662,"71":0.00554,"72":0.02216,"73":0.00554,"74":0.00554,"75":0.00554,"76":0.01108,"77":0.07757,"78":0.4322,"79":0.13298,"80":0.02771,"81":0.02771,"82":0.03879,"83":0.08312,"84":0.06649,"85":0.06095,"86":0.11082,"87":0.27705,"88":9.02075,"89":0.02771,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 57 58 61 62 63 64 67 90 91 3.5 3.6"},D:{"38":0.01108,"41":0.00554,"49":0.22718,"51":0.02216,"52":0.02216,"53":0.01662,"56":0.01108,"59":0.01662,"60":0.03325,"61":0.10528,"63":0.01108,"64":0.00554,"65":0.22718,"66":0.08312,"67":0.01108,"68":0.1219,"69":0.0942,"70":0.02216,"71":0.02771,"72":0.04433,"73":0.01108,"74":0.02216,"75":1.62905,"76":0.02216,"77":0.01662,"78":0.23272,"79":0.04987,"80":0.28813,"81":0.08866,"83":0.14407,"84":0.17731,"85":0.22164,"86":0.25489,"87":0.338,"88":0.26043,"89":0.67046,"90":19.26606,"91":0.48207,"92":0.01108,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 57 58 62 93 94"},F:{"36":0.00554,"46":0.00554,"68":0.01108,"69":0.00554,"70":0.00554,"71":0.01108,"72":0.01108,"73":0.53194,"74":0.01108,"75":1.69001,"76":1.15253,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00554},G:{"8":0.0045,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0165,"6.0-6.1":0.006,"7.0-7.1":0.0135,"8.1-8.4":0.0075,"9.0-9.2":0.033,"9.3":0.16648,"10.0-10.2":0.0135,"10.3":0.14548,"11.0-11.2":0.04349,"11.3-11.4":0.09299,"12.0-12.1":0.04649,"12.2-12.4":0.15748,"13.0-13.1":0.033,"13.2":0.0165,"13.3":0.10949,"13.4-13.7":0.39295,"14.0-14.4":10.50462,"14.5-14.6":2.62465},E:{"4":0,"7":0.02216,"11":0.01108,"12":0.01662,"13":0.10528,"14":3.59611,_:"0 5 6 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01108,"9.1":0.00554,"10.1":0.02216,"11.1":0.09974,"12.1":0.11636,"13.1":0.57072,"14.1":1.61243},B:{"12":0.06649,"14":0.00554,"15":0.00554,"16":0.00554,"17":0.02771,"18":0.11082,"83":0.00554,"84":0.01662,"85":0.02771,"86":0.03879,"87":0.02771,"88":0.04433,"89":0.16623,"90":6.37769,"91":0.11082,_:"13 79 80 81"},P:{"4":0.13764,"5.0-5.4":0.02101,"6.2-6.4":0.0417,"7.2-7.4":0.01059,"8.2":0.01051,"9.2":0.04235,"10.1":0.03176,"11.1-11.2":0.11647,"12.0":0.09529,"13.0":0.41293,"14.0":4.44698},I:{"0":0,"3":0,"4":0.00165,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00274,"4.2-4.3":0.01043,"4.4":0,"4.4.3-4.4.4":0.05654},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.05967,"7":0.01193,"8":0.0179,"9":0.01193,"10":0.01193,"11":0.81751,_:"5.5"},J:{"7":0,"10":0.00446},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.85632},Q:{"10.4":0.00892},O:{"0":0.2453},H:{"0":0.45602},L:{"0":24.06004}}; +module.exports={C:{"40":0.01057,"47":0.00529,"48":0.01586,"50":0.17976,"51":0.02115,"52":0.14275,"53":0.00529,"54":0.00529,"55":0.01057,"56":0.01057,"59":0.01586,"60":0.02115,"66":0.01586,"68":0.04758,"69":0.00529,"70":0.01057,"72":0.02115,"73":0.00529,"74":0.00529,"75":0.01057,"76":0.01057,"77":0.08459,"78":0.49169,"79":0.11103,"80":0.02644,"81":0.03172,"82":0.0423,"83":0.04758,"84":0.05287,"85":0.02644,"86":0.05816,"87":0.13218,"88":0.16918,"89":5.79984,"90":3.56344,"91":0.01586,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 49 57 58 61 62 63 64 65 67 71 92 3.5 3.6"},D:{"38":0.01057,"41":0.00529,"47":0.00529,"48":0.00529,"49":0.25906,"51":0.03701,"52":0.0423,"53":0.00529,"55":0.17976,"56":0.01057,"58":0.00529,"59":0.01057,"60":0.01586,"61":0.15332,"63":0.01057,"65":0.25378,"66":0.07931,"67":0.01057,"68":0.00529,"69":0.10045,"70":0.01586,"71":0.0423,"72":0.0423,"73":0.01057,"74":0.03172,"75":1.83459,"76":0.02644,"77":0.02644,"78":0.04758,"79":0.13218,"80":0.45468,"81":0.10045,"83":0.13218,"84":0.20619,"85":0.21677,"86":0.22205,"87":0.42825,"88":0.1639,"89":0.18505,"90":0.72432,"91":14.58683,"92":2.91314,"93":0.01057,_:"4 5 6 7 8 9 10 11 12 13 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 50 54 57 62 64 94 95"},F:{"36":0.01057,"46":0.00529,"68":0.01057,"69":0.00529,"70":0.01057,"71":0.01586,"72":0.01057,"74":0.00529,"75":0.01057,"76":0.72432,"77":1.90861,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00529},G:{"8":0.00595,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00744,"6.0-6.1":0.00893,"7.0-7.1":0.00744,"8.1-8.4":0.00744,"9.0-9.2":0.03721,"9.3":0.15926,"10.0-10.2":0.01637,"10.3":0.13396,"11.0-11.2":0.06102,"11.3-11.4":0.10568,"12.0-12.1":0.05358,"12.2-12.4":0.15926,"13.0-13.1":0.04614,"13.2":0.02828,"13.3":0.1161,"13.4-13.7":0.4108,"14.0-14.4":1.93343,"14.5-14.7":10.99927},E:{"4":0,"7":0.00529,"11":0.01057,"12":0.02644,"13":0.10574,"14":0.92523,"15":0.03172,_:"0 5 6 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00529,"9.1":0.00529,"10.1":0.02115,"11.1":0.07931,"12.1":0.11103,"13.1":0.47054,"14.1":3.6216},B:{"12":0.10574,"14":0.00529,"15":0.00529,"16":0.00529,"17":0.02115,"18":0.09517,"80":0.01057,"81":0.01586,"83":0.01586,"84":0.02644,"85":0.03172,"86":0.03701,"87":0.02644,"88":0.03172,"89":0.04758,"90":0.06873,"91":4.80588,"92":1.12613,_:"13 79"},P:{"4":0.16743,"5.0-5.4":0.02093,"6.2-6.4":0.03079,"7.2-7.4":0.01046,"8.2":0.03071,"9.2":0.03139,"10.1":0.03139,"11.1-11.2":0.12557,"12.0":0.09418,"13.0":0.24068,"14.0":4.7509},I:{"0":0,"3":0,"4":0.00115,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0046,"4.2-4.3":0.01035,"4.4":0,"4.4.3-4.4.4":0.05461},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.07937,"7":0.01134,"8":0.01701,"9":0.01701,"10":0.01134,"11":0.80503,_:"5.5"},J:{"7":0,"10":0.00471},N:{"11":0.01472,_:"10"},L:{"0":26.85569},S:{"2.5":0},R:{_:"0"},M:{"0":0.96166},Q:{"10.4":0.00943},O:{"0":0.28284},H:{"0":0.50877}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js index 7bc13d7ea1496f..95dbcea298d090 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js @@ -1 +1 @@ -module.exports={C:{"38":0.00243,"43":0.00485,"52":0.00728,"65":0.0194,"68":0.0194,"71":0.01455,"72":0.02668,"78":0.04365,"80":0.00485,"82":0.00243,"85":0.01455,"86":0.00243,"87":0.03395,"88":2.45168,"89":0.01213,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 69 70 73 74 75 76 77 79 81 83 84 90 91 3.5 3.6"},D:{"22":0.00728,"37":0.0097,"40":0.00485,"45":0.00728,"47":0.00485,"49":0.01455,"50":0.00243,"55":0.00728,"56":0.00728,"59":0.22553,"63":0.00485,"66":0.01698,"68":0.00485,"70":0.00243,"71":0.00243,"72":0.00728,"74":0.00485,"77":0.10913,"79":0.01213,"80":0.0485,"81":0.03153,"83":0.1067,"84":0.01213,"85":0.01213,"86":0.0194,"87":0.05335,"88":0.06548,"89":0.6111,"90":13.50968,"91":0.40013,"92":0.02183,_:"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 38 39 41 42 43 44 46 48 51 52 53 54 57 58 60 61 62 64 65 67 69 73 75 76 78 93 94"},F:{"40":0.00243,"73":0.00485,"74":0.0194,"75":0.11155,"76":0.65718,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0012,"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.00601,"8.1-8.4":0.0024,"9.0-9.2":0.0006,"9.3":0.01021,"10.0-10.2":0.04984,"10.3":0.01021,"11.0-11.2":0.12191,"11.3-11.4":0.09969,"12.0-12.1":0.04144,"12.2-12.4":0.15554,"13.0-13.1":0.44679,"13.2":0.00781,"13.3":0.13272,"13.4-13.7":0.54828,"14.0-14.4":2.81285,"14.5-14.6":1.08154},E:{"4":0,"12":0.03395,"13":0.00728,"14":0.52623,_:"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.00728,"13.1":0.2425,"14.1":0.08245},B:{"12":0.03395,"13":0.00728,"15":0.04123,"16":0.01455,"17":0.03153,"18":0.03395,"80":0.00243,"84":0.11155,"85":0.0097,"87":0.00243,"88":0.00728,"89":0.21825,"90":1.73388,"91":0.11883,_:"14 79 81 83 86"},P:{"4":0.72492,"5.0-5.4":0.02014,"6.2-6.4":0.05034,"7.2-7.4":0.93636,"8.2":0.02014,"9.2":0.23157,"10.1":0.54369,"11.1-11.2":1.03704,"12.0":0.40273,"13.0":5.22548,"14.0":2.54729},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.00161,"4.4":0,"4.4.3-4.4.4":0.04222},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00544,"11":0.15219,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.13633},Q:{"10.4":1.47693},O:{"0":2.35551},H:{"0":0.8533},L:{"0":55.39424}}; +module.exports={C:{"29":0.00211,"41":0.00422,"48":0.00211,"56":0.00422,"68":0.00422,"72":0.00633,"78":0.03374,"80":0.00633,"85":0.00422,"86":0.00633,"88":0.00633,"89":1.76523,"90":0.56099,"91":0.04007,_:"2 3 4 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 42 43 44 45 46 47 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 81 82 83 84 87 92 3.5 3.6"},D:{"23":0.00844,"25":0.01265,"37":0.01265,"38":0.00211,"40":0.00844,"49":0.02953,"54":0.00211,"56":0.02109,"58":0.00422,"59":0.10334,"60":0.00422,"63":0.00422,"67":0.00422,"70":0.01055,"72":0.00844,"74":0.01055,"77":0.00211,"78":0.01055,"79":0.0464,"80":0.01055,"81":0.0232,"83":0.02109,"86":0.03164,"87":0.4914,"88":0.21934,"89":0.05905,"90":0.14552,"91":10.76434,"92":2.21656,"93":0.02742,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 26 27 28 29 30 31 32 33 34 35 36 39 41 42 43 44 45 46 47 48 50 51 52 53 55 57 61 62 64 65 66 68 69 71 73 75 76 84 85 94 95"},F:{"76":0.00422,"77":0.29104,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00069,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00686,"9.0-9.2":0.00274,"9.3":0.00137,"10.0-10.2":0.09123,"10.3":0.03841,"11.0-11.2":0.0535,"11.3-11.4":0.07065,"12.0-12.1":0.01578,"12.2-12.4":0.18315,"13.0-13.1":0.17217,"13.2":0.04802,"13.3":0.12484,"13.4-13.7":0.17148,"14.0-14.4":1.92474,"14.5-14.7":3.34325},E:{"4":0,"8":0.00844,"13":0.00844,"14":0.09912,_:"0 5 6 7 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00633,"12.1":0.0464,"13.1":0.0928,"14.1":0.15607},B:{"12":0.00633,"15":0.00422,"16":0.01687,"17":0.0464,"18":0.05694,"84":0.00422,"85":0.00422,"86":0.00422,"87":0.00844,"89":0.03164,"90":0.02953,"91":0.65801,"92":0.12021,_:"13 14 79 80 81 83 88"},P:{"4":0.56352,"5.0-5.4":0.05031,"6.2-6.4":0.05031,"7.2-7.4":1.10692,"8.2":0.02034,"9.2":0.15094,"10.1":0.03019,"11.1-11.2":0.7044,"12.0":0.37233,"13.0":1.39874,"14.0":4.46791},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0058,"4.4":0,"4.4.3-4.4.4":0.05732},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06116,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01578},N:{"11":0.01518,_:"10"},L:{"0":60.50999},S:{"2.5":0},R:{_:"0"},M:{"0":0.08679},Q:{"10.4":1.50699},O:{"0":3.20334},H:{"0":0.53035}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js index d8a7505dbb1444..a0e51fc466f8cd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js @@ -1 +1 @@ -module.exports={C:{"48":0.00671,"52":0.02684,"65":0.00671,"70":0.02013,"76":0.00671,"78":0.08052,"81":0.00671,"82":0.04697,"84":0.00671,"85":0.02013,"86":0.04026,"87":0.05368,"88":2.38876,"89":0.00671,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 71 72 73 74 75 77 79 80 83 90 91 3.5 3.6"},D:{"38":0.00671,"49":0.1342,"52":0.02013,"53":0.02013,"57":0.00671,"59":0.01342,"61":0.24827,"62":0.00671,"63":0.00671,"65":0.01342,"66":0.01342,"67":0.02013,"69":0.44286,"70":0.04026,"71":0.02013,"72":0.00671,"73":0.00671,"74":0.01342,"75":0.02013,"76":0.10736,"77":0.01342,"78":0.03355,"79":0.04697,"80":0.08052,"81":0.07381,"83":0.0671,"84":0.17446,"85":0.06039,"86":0.16104,"87":0.50996,"88":0.55693,"89":2.46928,"90":40.43446,"91":0.99308,"92":0.00671,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 58 60 64 68 93 94"},F:{"73":0.14762,"75":0.42273,"76":0.32879,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00194,"7.0-7.1":0.00388,"8.1-8.4":0.00194,"9.0-9.2":0.04273,"9.3":0.12624,"10.0-10.2":0.02136,"10.3":0.22335,"11.0-11.2":0.05244,"11.3-11.4":0.06603,"12.0-12.1":0.04855,"12.2-12.4":0.21753,"13.0-13.1":0.03496,"13.2":0.01748,"13.3":0.14178,"13.4-13.7":0.47195,"14.0-14.4":15.02478,"14.5-14.6":2.14418},E:{"4":0,"5":0.00671,"11":0.00671,"12":0.02013,"13":0.19459,"14":6.18662,_:"0 6 7 8 9 10 3.1 3.2 5.1 7.1 9.1","6.1":0.00671,"10.1":0.04026,"11.1":0.12078,"12.1":0.22814,"13.1":1.08702,"14.1":1.97945},B:{"17":0.00671,"18":0.05368,"85":0.01342,"86":0.01342,"87":0.02013,"88":0.03355,"89":0.12749,"90":4.57622,"91":0.18788,_:"12 13 14 15 16 79 80 81 83 84"},P:{"4":0.0331,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.01037,"8.2":0.03018,"9.2":0.01103,"10.1":0.0107,"11.1-11.2":0.02206,"12.0":0.02206,"13.0":0.15445,"14.0":1.59969},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00287,"4.2-4.3":0.00575,"4.4":0,"4.4.3-4.4.4":0.06705},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0548,"11":0.60278,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.24017},Q:{"10.4":0.00987},O:{"0":0.02632},H:{"0":0.07787},L:{"0":12.38699}}; +module.exports={C:{"47":0.01153,"48":0.02306,"52":0.05189,"63":0.01153,"64":0.0173,"68":0.01153,"70":0.00577,"78":0.09802,"82":0.09802,"83":0.01153,"85":0.00577,"87":0.04613,"88":0.23641,"89":1.67791,"90":0.98022,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 65 66 67 69 71 72 73 74 75 76 77 79 80 81 84 86 91 92 3.5 3.6"},D:{"38":0.0173,"49":0.10379,"52":0.02883,"53":0.01153,"58":0.01153,"59":0.02306,"61":0.17298,"65":0.01153,"66":0.01153,"67":0.02883,"69":0.50741,"70":0.01153,"71":0.00577,"72":0.01153,"74":0.01153,"75":0.02306,"76":0.02883,"77":0.01153,"78":0.01153,"79":0.08649,"80":0.04613,"81":0.05189,"83":0.02883,"84":0.14415,"85":0.04036,"86":0.05766,"87":0.22487,"88":0.10379,"89":0.20758,"90":0.83607,"91":28.48404,"92":5.58149,"93":0.01153,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 57 60 62 63 64 68 73 94 95"},F:{"46":0.00577,"75":0.01153,"76":0.33443,"77":0.68039,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00493,"8.1-8.4":0.00493,"9.0-9.2":0.06658,"9.3":0.15783,"10.0-10.2":0.0148,"10.3":0.26387,"11.0-11.2":0.07152,"11.3-11.4":0.08385,"12.0-12.1":0.04686,"12.2-12.4":0.22441,"13.0-13.1":0.03206,"13.2":0.01973,"13.3":0.16276,"13.4-13.7":0.47595,"14.0-14.4":3.07274,"14.5-14.7":18.95677},E:{"4":0,"5":0.02306,"12":0.0173,"13":0.16145,"14":1.61448,"15":0.02883,_:"0 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04036,"11.1":0.10955,"12.1":0.14992,"13.1":0.68039,"14.1":5.70257},B:{"18":0.04036,"84":0.01153,"85":0.0173,"86":0.02306,"87":0.0173,"88":0.0173,"89":0.04036,"90":0.05189,"91":4.20341,"92":1.03211,_:"12 13 14 15 16 17 79 80 81 83"},P:{"4":0.04317,"5.0-5.4":0.07118,"6.2-6.4":0.02034,"7.2-7.4":0.27454,"8.2":0.02034,"9.2":0.02084,"10.1":0.14236,"11.1-11.2":0.03238,"12.0":0.02159,"13.0":0.14031,"14.0":2.18017},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.00866,"4.4":0,"4.4.3-4.4.4":0.05293},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00596,"9":0.00596,"10":0.07746,"11":0.62561,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":16.66198},S:{"2.5":0},R:{_:"0"},M:{"0":0.39376},Q:{"10.4":0.00423},O:{"0":0.03387},H:{"0":0.0962}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js index 88e6e9ea018d7d..79fe1c29bba662 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js @@ -1 +1 @@ -module.exports={C:{"84":0.0054,"86":0.0108,"87":0.19976,"88":1.33895,"89":0.0216,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 90 91 3.5 3.6"},D:{"38":0.0216,"49":0.04319,"51":0.0054,"53":0.0054,"58":0.0054,"62":0.0108,"63":0.0054,"65":0.0162,"68":0.0162,"69":0.0162,"73":0.17277,"74":0.26995,"75":0.03239,"76":0.97182,"77":0.06479,"79":0.0216,"81":0.04859,"83":0.05399,"84":0.08638,"85":0.0054,"86":0.0216,"87":0.08099,"88":0.64248,"89":2.01383,"90":28.99803,"91":1.53332,"92":0.0216,_:"4 5 6 7 8 9 10 11 12 13 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 59 60 61 64 66 67 70 71 72 78 80 93 94"},F:{"73":0.17277,"75":0.30234,"76":0.34014,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.013,"6.0-6.1":0,"7.0-7.1":0.051,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.029,"10.0-10.2":0.002,"10.3":0.0235,"11.0-11.2":0.015,"11.3-11.4":0.014,"12.0-12.1":0.001,"12.2-12.4":0.064,"13.0-13.1":0.0045,"13.2":0.0035,"13.3":0.028,"13.4-13.7":0.11051,"14.0-14.4":3.70217,"14.5-14.6":0.59503},E:{"4":0,"13":0.0162,"14":1.59271,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.0054,"10.1":0.0162,"12.1":0.14037,"13.1":0.16737,"14.1":1.66289},B:{"13":0.0054,"17":0.03239,"18":0.12958,"85":0.0216,"88":0.0108,"89":0.18357,"90":6.63537,"91":0.59389,_:"12 14 15 16 79 80 81 83 84 86 87"},P:{"4":0.13123,"5.0-5.4":0.02014,"6.2-6.4":0.05034,"7.2-7.4":0.07655,"8.2":0.02014,"9.2":0.23157,"10.1":0.07655,"11.1-11.2":0.10936,"12.0":0.22965,"13.0":0.30619,"14.0":2.93072},I:{"0":0,"3":0,"4":0.01044,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00574,"4.4":0,"4.4.3-4.4.4":0.08505},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.01501,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.11503},Q:{"10.4":0},O:{"0":0.76377},H:{"0":0.08712},L:{"0":40.1426}}; +module.exports={C:{"34":0.09351,"77":0.03637,"88":0.02078,"89":0.52989,"90":0.43638,_:"2 3 4 5 6 7 8 9 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 78 79 80 81 82 83 84 85 86 87 91 92 3.5 3.6"},D:{"38":0.06234,"49":0.0052,"55":0.02078,"56":0.01559,"69":0.01559,"71":0.01039,"73":0.15066,"74":0.50911,"75":0.14546,"76":0.66496,"77":0.02598,"78":0.01039,"79":0.22339,"81":0.15066,"83":0.04156,"84":0.14027,"87":0.04676,"88":0.08312,"89":0.3169,"90":1.60526,"91":23.88661,"92":5.43397,"93":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 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 58 59 60 61 62 63 64 65 66 67 68 70 72 80 85 86 94 95"},F:{"76":0.17144,"77":0.3169,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.09084,"6.0-6.1":0,"7.0-7.1":0.03749,"8.1-8.4":0.00096,"9.0-9.2":0,"9.3":0.23552,"10.0-10.2":0.00096,"10.3":0.02547,"11.0-11.2":0.06104,"11.3-11.4":0.03268,"12.0-12.1":0.00577,"12.2-12.4":0.06537,"13.0-13.1":0.00481,"13.2":0.0024,"13.3":0.00336,"13.4-13.7":0.0769,"14.0-14.4":0.85316,"14.5-14.7":3.02475},E:{"4":0,"12":0.02078,"13":0.01039,"14":0.2078,_:"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":0.03117,"13.1":0.15066,"14.1":1.57928},B:{"16":0.04676,"17":0.01559,"18":0.06234,"80":0.01039,"85":0.01039,"89":0.05715,"90":0.03117,"91":5.34046,"92":1.55331,_:"12 13 14 15 79 81 83 84 86 87 88"},P:{"4":0.4568,"5.0-5.4":0.05031,"6.2-6.4":0.05031,"7.2-7.4":0.1337,"8.2":0.02034,"9.2":0.15094,"10.1":0.07799,"11.1-11.2":0.20055,"12.0":0.24511,"13.0":0.16712,"14.0":3.27561},I:{"0":0,"3":0,"4":0.00398,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00095,"4.4":0,"4.4.3-4.4.4":0.01909},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.40265,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":43.07132},S:{"2.5":0},R:{_:"0"},M:{"0":0.05766},Q:{"10.4":0},O:{"0":1.54721},H:{"0":0.05004}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js index 66c0d9573bfd56..b481fbae46c73a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js @@ -1 +1 @@ -module.exports={C:{"4":0.00461,"15":0.00461,"17":0.00922,"45":0.06455,"52":0.00922,"65":0.00461,"66":0.02306,"68":0.00461,"73":0.03689,"74":0.00461,"78":0.03228,"79":0.00922,"80":0.01383,"81":0.00922,"82":0.00922,"84":0.01844,"85":0.00922,"86":0.02767,"87":0.05994,"88":1.40174,"89":0.30894,_:"2 3 5 6 7 8 9 10 11 12 13 14 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 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 67 69 70 71 72 75 76 77 83 90 91 3.5 3.6"},D:{"23":0.00461,"24":0.00922,"25":0.00461,"38":0.02767,"45":0.00461,"47":0.00461,"49":0.5441,"53":0.01844,"56":0.00922,"58":0.00922,"59":0.00461,"61":0.03689,"63":0.01844,"64":0.00922,"65":0.00922,"67":0.01383,"68":0.02767,"69":0.01383,"70":0.02767,"71":0.00461,"72":0.00922,"73":0.01383,"74":0.01844,"75":0.05533,"76":0.0415,"77":0.01383,"78":0.01383,"79":0.05072,"80":0.05533,"81":0.03689,"83":0.11528,"84":0.14755,"85":0.15677,"86":0.19827,"87":0.43805,"88":0.22133,"89":0.94526,"90":28.74497,"91":1.08359,"92":0.03228,"93":0.00461,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 60 62 66 94"},F:{"52":0.00461,"68":0.00461,"69":0.00461,"70":0.00922,"71":0.00461,"73":0.20288,"74":0.00922,"75":0.85765,"76":0.55332,_:"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 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01688,"6.0-6.1":0.00563,"7.0-7.1":0.03376,"8.1-8.4":0.00985,"9.0-9.2":0.00422,"9.3":0.09705,"10.0-10.2":0.01266,"10.3":0.10127,"11.0-11.2":0.05345,"11.3-11.4":0.04501,"12.0-12.1":0.0436,"12.2-12.4":0.2363,"13.0-13.1":0.03235,"13.2":0.01688,"13.3":0.1716,"13.4-13.7":0.6442,"14.0-14.4":9.59826,"14.5-14.6":2.17171},E:{"4":0,"12":0.02306,"13":0.04611,"14":1.18503,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":1.05131,"10.1":0.00461,"11.1":0.03689,"12.1":0.06917,"13.1":0.28588,"14.1":0.47954},B:{"12":0.00461,"14":0.00922,"15":0.00922,"16":0.00461,"17":0.01844,"18":0.32277,"84":0.01383,"85":0.00922,"86":0.01383,"87":0.01383,"88":0.00461,"89":0.05994,"90":2.46227,"91":0.15677,_:"13 79 80 81 83"},P:{"4":0.12934,"5.0-5.4":0.02014,"6.2-6.4":0.02156,"7.2-7.4":0.05389,"8.2":0.02014,"9.2":0.05389,"10.1":0.07655,"11.1-11.2":0.16167,"12.0":0.04311,"13.0":0.22634,"14.0":1.33647},I:{"0":0,"3":0,"4":0.00302,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0011,"4.2-4.3":0.00357,"4.4":0,"4.4.3-4.4.4":0.03542},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.029,"9":0.00483,"10":0.00967,"11":0.25621,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.64668},Q:{"10.4":0},O:{"0":0.07006},H:{"0":0.20918},L:{"0":39.646}}; +module.exports={C:{"15":0.00483,"17":0.00966,"52":0.01932,"60":0.00483,"66":0.01449,"68":0.00966,"73":0.03381,"76":0.00966,"78":0.03864,"79":0.00483,"80":0.01932,"81":0.00966,"83":0.00966,"84":0.01449,"85":0.00966,"86":0.00966,"87":0.00966,"88":0.05796,"89":0.92253,"90":0.54579,"91":0.00966,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 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 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 72 74 75 77 82 92 3.5 3.6"},D:{"23":0.00966,"24":0.00966,"32":0.00483,"38":0.02415,"47":0.00483,"48":0.00483,"49":0.37674,"53":0.00966,"55":0.00483,"63":0.01449,"65":0.00966,"67":0.00483,"68":0.02415,"69":0.00966,"70":0.01449,"72":0.02898,"73":0.00483,"74":0.01932,"75":0.04347,"76":0.03864,"77":0.01449,"78":0.00966,"79":0.07728,"80":0.07245,"81":0.02898,"83":0.11592,"84":0.11109,"85":0.13524,"86":0.12558,"87":0.483,"88":0.09177,"89":0.17388,"90":0.56994,"91":22.75413,"92":5.48205,"93":0.00966,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 30 31 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 56 57 58 59 60 61 62 64 66 71 94 95"},F:{"71":0.00483,"74":0.00966,"75":0.00966,"76":0.54579,"77":1.29444,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00603,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00905,"6.0-6.1":0.00603,"7.0-7.1":0.03015,"8.1-8.4":0.01206,"9.0-9.2":0,"9.3":0.05277,"10.0-10.2":0.00905,"10.3":0.08895,"11.0-11.2":0.0392,"11.3-11.4":0.04523,"12.0-12.1":0.03317,"12.2-12.4":0.16133,"13.0-13.1":0.02563,"13.2":0.01809,"13.3":0.15228,"13.4-13.7":0.51413,"14.0-14.4":2.61286,"14.5-14.7":10.42733},E:{"4":0,"12":0.01449,"13":0.03864,"14":0.45885,"15":0.01449,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.61341,"11.1":0.05313,"12.1":0.05313,"13.1":0.24633,"14.1":1.21233},B:{"12":0.00483,"14":0.02415,"15":0.00483,"16":0.00483,"17":0.01932,"18":0.56028,"80":0.00483,"84":0.00966,"85":0.00483,"87":0.00966,"89":0.03864,"90":0.01932,"91":5.65593,"92":1.2075,_:"13 79 81 83 86 88"},P:{"4":0.11845,"5.0-5.4":0.05031,"6.2-6.4":0.01077,"7.2-7.4":0.06461,"8.2":0.02034,"9.2":0.0323,"10.1":0.07799,"11.1-11.2":0.13999,"12.0":0.02154,"13.0":0.13999,"14.0":1.29219},I:{"0":0,"3":0,"4":0.00235,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00313,"4.2-4.3":0.00588,"4.4":0,"4.4.3-4.4.4":0.04034},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02645,"9":0.01058,"10":0.01587,"11":0.16928,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":37.28605},S:{"2.5":0},R:{_:"0"},M:{"0":0.67727},Q:{"10.4":0},O:{"0":0.07755},H:{"0":0.1811}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js index 875ce2e28ef9b3..fae9474808f8ae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js @@ -1 +1 @@ -module.exports={C:{"15":0.01266,"33":0.00422,"35":0.00422,"36":0.00422,"38":0.00844,"40":0.00422,"43":0.00844,"47":0.01688,"48":0.02111,"52":0.22371,"56":0.00422,"60":0.00422,"62":0.00422,"68":0.01266,"70":0.00422,"72":0.02111,"76":0.00422,"77":0.00422,"78":0.14351,"79":0.00422,"80":0.01266,"81":0.01266,"82":0.00422,"83":0.01266,"84":0.06332,"85":0.02533,"86":0.03377,"87":0.07176,"88":2.89561,"89":0.05487,_:"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 34 37 39 41 42 44 45 46 49 50 51 53 54 55 57 58 59 61 63 64 65 66 67 69 71 73 74 75 90 91 3.5 3.6"},D:{"11":0.00844,"23":0.01266,"26":0.00844,"30":0.01266,"31":0.00844,"32":0.00844,"33":0.01688,"34":0.00422,"38":0.01266,"39":0.00422,"40":0.03377,"42":0.00844,"43":0.30391,"46":0.00422,"47":0.00844,"48":0.00844,"49":0.39677,"50":0.01688,"51":0.00844,"52":0.00844,"53":0.01688,"54":0.00844,"55":0.00422,"56":0.02955,"57":0.00844,"58":0.01266,"59":0.00422,"60":0.01688,"61":0.04221,"62":0.01266,"63":0.05065,"64":0.00844,"65":0.01688,"66":0.00844,"67":0.01688,"68":0.01688,"69":0.03799,"70":0.02533,"71":0.05065,"72":0.01688,"73":0.02111,"74":0.02533,"75":0.02533,"76":0.03799,"77":0.02955,"78":0.02111,"79":0.08864,"80":0.06332,"81":0.09708,"83":0.07176,"84":0.07176,"85":0.08864,"86":0.21949,"87":0.54451,"88":0.29547,"89":0.83998,"90":22.76807,"91":0.91174,"92":0.02111,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 27 28 29 35 36 37 41 44 45 93 94"},F:{"36":0.00422,"58":0.00422,"72":0.00422,"73":0.12241,"74":0.02955,"75":0.85264,"76":1.29585,_:"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 60 62 63 64 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00422},G:{"8":0.00121,"3.2":0.00101,"4.0-4.1":0,"4.2-4.3":0.0004,"5.0-5.1":0.0099,"6.0-6.1":0.00445,"7.0-7.1":0.04305,"8.1-8.4":0.00627,"9.0-9.2":0.00424,"9.3":0.07033,"10.0-10.2":0.00202,"10.3":0.05214,"11.0-11.2":0.01011,"11.3-11.4":0.02425,"12.0-12.1":0.0196,"12.2-12.4":0.06993,"13.0-13.1":0.01293,"13.2":0.00647,"13.3":0.04851,"13.4-13.7":0.17583,"14.0-14.4":1.03034,"14.5-14.6":0.26173},E:{"4":0,"13":0.05065,"14":0.13507,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.09708,"11.1":0.01688,"12.1":0.01266,"13.1":0.02955,"14.1":0.04643},B:{"12":0.00844,"13":0.00422,"14":0.00422,"15":0.00422,"16":0.01688,"17":0.02111,"18":0.06332,"84":0.01688,"85":0.00844,"86":0.00844,"87":0.00844,"88":0.00844,"89":0.03799,"90":1.40137,"91":0.07598,_:"79 80 81 83"},P:{"4":0.18551,"5.0-5.4":0.02061,"6.2-6.4":0.02061,"7.2-7.4":0.18551,"8.2":0.03018,"9.2":0.08245,"10.1":0.05153,"11.1-11.2":0.15459,"12.0":0.12367,"13.0":0.47408,"14.0":1.22642},I:{"0":0,"3":0,"4":0.0008,"2.1":0,"2.2":0,"2.3":0.00053,"4.1":0.00346,"4.2-4.3":0.00931,"4.4":0,"4.4.3-4.4.4":0.06679},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0108,"9":0.0324,"11":0.32402,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.19067},Q:{"10.4":0.01156},O:{"0":0.70492},H:{"0":0.74942},L:{"0":57.08591}}; +module.exports={C:{"33":0.00428,"37":0.00856,"43":0.01283,"45":0.00428,"47":0.01711,"48":0.0385,"52":0.18823,"55":0.01283,"56":0.00856,"62":0.01283,"63":0.00856,"68":0.00428,"72":0.01711,"76":0.00428,"78":0.08556,"79":0.00428,"80":0.01283,"82":0.01283,"83":0.00856,"84":0.01283,"85":0.01283,"86":0.01283,"87":0.01711,"88":0.10695,"89":1.82671,"90":1.03528,"91":0.02567,_:"2 3 4 5 6 7 8 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 39 40 41 42 44 46 49 50 51 53 54 57 58 59 60 61 64 65 66 67 69 70 71 73 74 75 77 81 92 3.5 3.6"},D:{"11":0.00428,"22":0.00856,"26":0.01283,"30":0.01283,"31":0.00856,"32":0.00428,"33":0.01711,"34":0.00856,"38":0.01711,"39":0.01283,"40":0.01711,"42":0.01283,"43":0.22246,"47":0.00856,"49":0.43636,"50":0.02567,"51":0.01283,"52":0.00856,"53":0.00428,"54":0.00428,"55":0.00856,"56":0.02567,"58":0.01711,"59":0.00428,"60":0.01711,"61":0.05989,"62":0.01283,"63":0.04706,"64":0.00856,"65":0.01711,"66":0.00856,"67":0.01283,"68":0.02567,"69":0.0385,"70":0.02139,"71":0.02139,"72":0.01283,"73":0.01283,"74":0.02567,"75":0.01711,"76":0.02567,"77":0.02139,"78":0.01711,"79":0.10267,"80":0.08556,"81":0.08984,"83":0.06417,"84":0.05561,"85":0.06845,"86":0.1754,"87":0.49197,"88":0.11978,"89":0.29518,"90":0.50053,"91":19.58468,"92":5.30044,"93":0.02995,"94":0.00856,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 35 36 37 41 44 45 46 48 57 95"},F:{"25":0.00856,"28":0.00856,"68":0.00428,"73":0.00428,"74":0.00856,"75":0.01283,"76":0.30374,"77":2.04916,_:"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 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00146,"3.2":0.00121,"4.0-4.1":0.00097,"4.2-4.3":0.01384,"5.0-5.1":0.01239,"6.0-6.1":0.00729,"7.0-7.1":0.05441,"8.1-8.4":0.00753,"9.0-9.2":0.00486,"9.3":0.08938,"10.0-10.2":0.00194,"10.3":0.05757,"11.0-11.2":0.0136,"11.3-11.4":0.03085,"12.0-12.1":0.01822,"12.2-12.4":0.05562,"13.0-13.1":0.0136,"13.2":0.0051,"13.3":0.04469,"13.4-13.7":0.11853,"14.0-14.4":0.52902,"14.5-14.7":1.14378},E:{"4":0,"13":0.03422,"14":0.07273,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.04706,"11.1":0.00856,"12.1":0.02567,"13.1":0.03422,"14.1":0.14117},B:{"12":0.01283,"13":0.00428,"15":0.00428,"16":0.00856,"17":0.00856,"18":0.08556,"84":0.02567,"85":0.00856,"86":0.00428,"89":0.02567,"90":0.01711,"91":1.33046,"92":0.36791,_:"14 79 80 81 83 87 88"},P:{"4":0.18674,"5.0-5.4":0.3619,"6.2-6.4":0.02075,"7.2-7.4":0.16599,"8.2":0.05026,"9.2":0.06225,"10.1":0.0415,"11.1-11.2":0.15561,"12.0":0.08299,"13.0":0.2801,"14.0":1.39015},I:{"0":0,"3":0,"4":0.00075,"2.1":0,"2.2":0,"2.3":0.0005,"4.1":0.00323,"4.2-4.3":0.00871,"4.4":0,"4.4.3-4.4.4":0.06692},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01876,"9":0.01876,"11":0.45018,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":56.08346},S:{"2.5":0},R:{_:"0"},M:{"0":0.15449},Q:{"10.4":0.02289},O:{"0":0.69236},H:{"0":0.61756}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js index 3def5f14188154..6b5a0f002bcc25 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js @@ -1 +1 @@ -module.exports={C:{"4":0.00593,"17":0.01186,"51":0.00593,"52":0.02966,"56":0.00593,"60":0.01186,"61":0.00593,"66":0.02966,"68":0.01186,"69":0.00593,"72":0.01186,"73":0.02373,"78":0.07712,"79":0.00593,"80":0.01186,"81":0.0178,"82":0.01186,"83":0.01186,"84":0.04152,"85":0.02373,"86":0.02966,"87":0.05932,"88":3.59479,"89":0.0178,_:"2 3 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 53 54 55 57 58 59 62 63 64 65 67 70 71 74 75 76 77 90 91 3.5 3.6"},D:{"22":0.01186,"23":0.00593,"24":0.01186,"25":0.00593,"26":0.00593,"38":0.04746,"47":0.03559,"48":0.0178,"49":0.10678,"53":0.07118,"55":0.05339,"56":0.01186,"61":0.00593,"63":0.13644,"65":0.02373,"67":0.01186,"68":0.01186,"69":0.00593,"70":0.01186,"71":0.01186,"72":0.00593,"73":0.0178,"74":0.02966,"75":0.04152,"76":0.02966,"77":0.02373,"78":0.03559,"79":0.08305,"80":0.04746,"81":0.04152,"83":0.05932,"84":0.04746,"85":0.05339,"86":0.12457,"87":0.29067,"88":0.22542,"89":0.8898,"90":41.27486,"91":1.7796,"92":0.01186,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 57 58 59 60 62 64 66 93 94"},F:{"73":0.2788,"75":1.11522,"76":0.81862,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01872,"6.0-6.1":0.0144,"7.0-7.1":0.0096,"8.1-8.4":0.0024,"9.0-9.2":0.00096,"9.3":0.06673,"10.0-10.2":0.00288,"10.3":0.05665,"11.0-11.2":0.01728,"11.3-11.4":0.01104,"12.0-12.1":0.00624,"12.2-12.4":0.06193,"13.0-13.1":0.01104,"13.2":0.0048,"13.3":0.03697,"13.4-13.7":0.1397,"14.0-14.4":3.11138,"14.5-14.6":0.90207},E:{"4":0,"12":0.01186,"13":0.04746,"14":0.91353,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.60506,"10.1":0.01186,"11.1":0.02966,"12.1":0.05932,"13.1":0.2788,"14.1":0.53981},B:{"16":0.00593,"17":0.00593,"18":0.04152,"84":0.01186,"85":0.00593,"87":0.00593,"88":0.01186,"89":0.04152,"90":2.55076,"91":0.18389,_:"12 13 14 15 79 80 81 83 86"},P:{"4":0.22001,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.11525,"8.2":0.03018,"9.2":0.04191,"10.1":0.01048,"11.1-11.2":0.16763,"12.0":0.11525,"13.0":0.39812,"14.0":1.91727},I:{"0":0,"3":0,"4":0.0013,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00325,"4.2-4.3":0.0104,"4.4":0,"4.4.3-4.4.4":0.07862},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01055,"10":0.01055,"11":0.16873,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.14645},Q:{"10.4":0},O:{"0":0.05288},H:{"0":0.16176},L:{"0":34.01854}}; +module.exports={C:{"4":0.01145,"5":0.01145,"15":0.00573,"17":0.01718,"47":0.00573,"51":0.01145,"52":0.03436,"56":0.01145,"59":0.00573,"60":0.01145,"61":0.00573,"63":0.00573,"64":0.00573,"66":0.02864,"68":0.01145,"70":0.01145,"72":0.01145,"73":0.02291,"78":0.07445,"79":0.00573,"80":0.00573,"81":0.02864,"82":0.01145,"83":0.01145,"84":0.04009,"85":0.01145,"86":0.01145,"87":0.01718,"88":0.10881,"89":2.50843,"90":1.46611,"91":0.01145,_:"2 3 6 7 8 9 10 11 12 13 14 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 48 49 50 53 54 55 57 58 62 65 67 69 71 74 75 76 77 92 3.5 3.6"},D:{"22":0.00573,"23":0.01145,"24":0.01718,"25":0.01145,"38":0.04009,"42":0.00573,"47":0.02291,"48":0.01145,"49":0.10881,"53":0.02291,"55":0.063,"61":0.13745,"63":0.13745,"65":0.02291,"66":0.00573,"67":0.00573,"68":0.00573,"69":0.00573,"70":0.01145,"71":0.01145,"73":0.00573,"74":0.03436,"75":0.04582,"76":0.02291,"77":0.02291,"78":0.02291,"79":0.11454,"80":0.04009,"81":0.04009,"83":0.04582,"84":0.04009,"85":0.04009,"86":0.07445,"87":0.24626,"88":0.07445,"89":0.22335,"90":0.61852,"91":32.71262,"92":8.00062,"93":0.01145,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 50 51 52 54 56 57 58 59 60 62 64 72 94 95"},F:{"76":0.67579,"77":1.48902,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01726,"6.0-6.1":0.02014,"7.0-7.1":0.00863,"8.1-8.4":0.00144,"9.0-9.2":0.00144,"9.3":0.06137,"10.0-10.2":0.0024,"10.3":0.05418,"11.0-11.2":0.01822,"11.3-11.4":0.01055,"12.0-12.1":0.00719,"12.2-12.4":0.04699,"13.0-13.1":0.01007,"13.2":0.00719,"13.3":0.02829,"13.4-13.7":0.105,"14.0-14.4":0.6329,"14.5-14.7":3.43203},E:{"4":0,"12":0.01145,"13":0.04009,"14":0.2749,"15":0.00573,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.25199,"11.1":0.02291,"12.1":0.04009,"13.1":0.18326,"14.1":0.82469},B:{"18":0.04009,"84":0.00573,"88":0.00573,"89":0.02291,"90":0.02291,"91":2.41107,"92":0.60706,_:"12 13 14 15 16 17 79 80 81 83 85 86 87"},P:{"4":0.22972,"5.0-5.4":0.05031,"6.2-6.4":0.01077,"7.2-7.4":0.1253,"8.2":0.02034,"9.2":0.04177,"10.1":0.07799,"11.1-11.2":0.17751,"12.0":0.07309,"13.0":0.2506,"14.0":2.06747},I:{"0":0,"3":0,"4":0.00104,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00313,"4.2-4.3":0.00626,"4.4":0,"4.4.3-4.4.4":0.05793},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0184,"9":0.0092,"10":0.0184,"11":0.25754,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":36.63703},S:{"2.5":0},R:{_:"0"},M:{"0":0.16665},Q:{"10.4":0.01709},O:{"0":0.05982},H:{"0":0.24272}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js index cd0d5e1e2c7469..78e9a0e3865fa1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js @@ -1 +1 @@ -module.exports={C:{"52":0.04399,"66":0.022,"68":0.13931,"78":0.08798,"82":0.11731,"83":0.00733,"84":0.06599,"85":0.01466,"86":0.22729,"87":0.10998,"88":3.54869,"89":0.022,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 72 73 74 75 76 77 79 80 81 90 91 3.5 3.6"},D:{"49":0.16864,"51":0.01466,"53":0.01466,"59":0.022,"60":0.01466,"65":0.022,"66":0.00733,"67":0.01466,"69":1.0998,"70":0.05866,"71":0.00733,"74":0.00733,"75":0.022,"76":0.022,"77":0.00733,"78":0.11731,"79":0.10265,"80":0.06599,"81":0.03666,"83":0.08065,"84":0.07332,"85":0.02933,"86":10.67539,"87":3.688,"88":0.26395,"89":1.53239,"90":36.40338,"91":1.20245,"92":0.00733,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 54 55 56 57 58 61 62 63 64 68 72 73 93 94"},F:{"36":0.00733,"69":0.01466,"73":0.26395,"74":0.00733,"75":1.55438,"76":2.08962,_:"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 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00819,"6.0-6.1":0.01883,"7.0-7.1":0.00655,"8.1-8.4":0.02948,"9.0-9.2":0,"9.3":0.02211,"10.0-10.2":0.01965,"10.3":0.15559,"11.0-11.2":0.0262,"11.3-11.4":0.02211,"12.0-12.1":0.03276,"12.2-12.4":0.09335,"13.0-13.1":0.02457,"13.2":0.01065,"13.3":0.07534,"13.4-13.7":0.28989,"14.0-14.4":5.82064,"14.5-14.6":1.34543},E:{"4":0,"12":0.01466,"13":0.07332,"14":1.93565,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00733,"11.1":0.07332,"12.1":0.09532,"13.1":0.5499,"14.1":0.9385},B:{"17":0.00733,"18":0.03666,"80":0.00733,"81":0.01466,"84":0.01466,"85":0.01466,"87":0.00733,"88":0.00733,"89":0.11731,"90":3.20408,"91":0.11731,_:"12 13 14 15 16 79 83 86"},P:{"4":0.07616,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.11525,"8.2":0.03018,"9.2":0.01088,"10.1":0.02176,"11.1-11.2":0.06528,"12.0":0.04352,"13.0":0.26113,"14.0":1.75172},I:{"0":0,"3":0,"4":0.00157,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00275,"4.4":0,"4.4.3-4.4.4":0.03185},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46925,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.28014},Q:{"10.4":0},O:{"0":0.10672},H:{"0":0.2248},L:{"0":16.311}}; +module.exports={C:{"52":0.07646,"55":0.01274,"66":0.01274,"68":0.16567,"70":0.00637,"78":0.08921,"82":0.21665,"83":0.00637,"84":0.13381,"85":0.00637,"86":0.03186,"87":0.05735,"88":0.08284,"89":2.65075,"90":1.44644,"91":0.00637,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 67 69 71 72 73 74 75 76 77 79 80 81 92 3.5 3.6"},D:{"38":0.00637,"49":0.21665,"58":0.01912,"59":0.01274,"60":0.03186,"64":0.01274,"65":0.02549,"69":1.41458,"71":0.00637,"72":0.00637,"73":0.01912,"74":0.00637,"75":0.01274,"76":0.01274,"77":0.00637,"78":0.06372,"79":0.07646,"80":0.03186,"81":0.02549,"83":0.05098,"84":0.10832,"85":0.01912,"86":0.09558,"87":0.1147,"88":0.14656,"89":0.30586,"90":0.84748,"91":32.45897,"92":7.17487,"93":0.01274,_:"4 5 6 7 8 9 10 11 12 13 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 61 62 63 66 67 68 70 94 95"},F:{"36":0.00637,"75":0.00637,"76":0.7519,"77":3.86143,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00113,"7.0-7.1":0,"8.1-8.4":0.01355,"9.0-9.2":0,"9.3":0.0271,"10.0-10.2":0.00452,"10.3":0.17505,"11.0-11.2":0.04404,"11.3-11.4":0.01581,"12.0-12.1":0.05308,"12.2-12.4":0.07792,"13.0-13.1":0.02597,"13.2":0.02485,"13.3":0.05647,"13.4-13.7":0.30944,"14.0-14.4":1.89728,"14.5-14.7":8.31075},E:{"4":0.01274,"12":0.00637,"13":0.05735,"14":0.82836,"15":0.01912,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00637,"11.1":0.03186,"12.1":0.12107,"13.1":0.47153,"14.1":2.4341},B:{"18":0.03823,"86":0.01274,"88":0.03186,"89":0.07009,"90":0.02549,"91":3.16688,"92":0.80287,_:"12 13 14 15 16 17 79 80 81 83 84 85 87"},P:{"4":0.10586,"5.0-5.4":0.0306,"6.2-6.4":0.06119,"7.2-7.4":1.08106,_:"8.2","9.2":0.01059,"10.1":0.02117,"11.1-11.2":0.15879,"12.0":0.05293,"13.0":0.1482,"14.0":2.61472},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00134,"4.2-4.3":0.00403,"4.4":0,"4.4.3-4.4.4":0.0309},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.41418,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":22.58009},S:{"2.5":0},R:{_:"0"},M:{"0":0.48239},Q:{"10.4":0},O:{"0":0.05078},H:{"0":0.2644}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js index 8d06ee80f8ca93..7b222019be29d0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js @@ -1 +1 @@ -module.exports={C:{"15":0.00886,"36":0.00177,"43":0.00177,"47":0.00708,"48":0.00177,"49":0.00177,"50":0.00354,"52":0.09386,"55":0.00354,"56":0.00354,"60":0.00177,"65":0.00177,"66":0.00708,"67":0.02479,"68":0.00354,"72":0.00531,"78":0.03896,"80":0.00177,"81":0.00354,"82":0.00354,"83":0.00354,"84":0.00708,"85":0.00708,"86":0.01063,"87":0.02657,"88":1.19543,"89":0.03188,"90":0.00354,_:"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 34 35 37 38 39 40 41 42 44 45 46 51 53 54 57 58 59 61 62 63 64 69 70 71 73 74 75 76 77 79 91 3.5 3.6"},D:{"26":0.01063,"31":0.00177,"33":0.0124,"34":0.00177,"38":0.00354,"40":0.01771,"43":0.1771,"47":0.00354,"48":0.00177,"49":0.07615,"51":0.00177,"53":0.02125,"55":0.00177,"56":0.00177,"57":0.00354,"58":0.00177,"60":0.00177,"61":0.01594,"62":0.00177,"63":0.01948,"64":0.00177,"65":0.00354,"66":0.00354,"67":0.00354,"68":0.01417,"69":0.00886,"70":0.00708,"71":0.00708,"72":0.00531,"73":0.00531,"74":0.01063,"75":0.00708,"76":0.01594,"77":0.00886,"78":0.00886,"79":0.05313,"80":0.02479,"81":0.02302,"83":0.0425,"84":0.02302,"85":0.02834,"86":0.0673,"87":0.11157,"88":0.09209,"89":0.33649,"90":10.23107,"91":0.44983,"92":0.01063,_:"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 32 35 36 37 39 41 42 44 45 46 50 52 54 59 93 94"},F:{"51":0.00354,"56":0.00354,"62":0.00354,"63":0.00531,"64":0.01948,"66":0.00354,"68":0.00886,"69":0.00886,"70":0.02125,"71":0.03011,"72":0.06553,"73":0.06376,"74":0.02302,"75":0.04959,"76":0.02125,_:"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 57 58 60 65 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0046,"7.0-7.1":0.0161,"8.1-8.4":0,"9.0-9.2":0.0138,"9.3":0.11957,"10.0-10.2":0.03679,"10.3":0.22535,"11.0-11.2":0.03909,"11.3-11.4":0.08278,"12.0-12.1":0.07358,"12.2-12.4":0.37251,"13.0-13.1":0.04599,"13.2":0.02529,"13.3":0.17246,"13.4-13.7":0.55187,"14.0-14.4":18.476,"14.5-14.6":0.8048},E:{"4":0,"12":0.00354,"13":0.01063,"14":0.18773,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.34003,"11.1":0.00531,"12.1":0.01063,"13.1":0.05313,"14.1":0.0673},B:{"12":0.00354,"13":0.00177,"14":0.00354,"15":0.00354,"16":0.00354,"17":0.00354,"18":0.02479,"83":0.00354,"84":0.00531,"85":0.00354,"86":0.00354,"88":0.00177,"89":0.01594,"90":0.70486,"91":0.05844,_:"79 80 81 87"},P:{"4":0.26748,"5.0-5.4":0.02014,"6.2-6.4":0.02156,"7.2-7.4":0.07201,"8.2":0.02014,"9.2":0.05144,"10.1":0.03086,"11.1-11.2":0.21604,"12.0":0.11316,"13.0":0.4115,"14.0":1.30651},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0055,"4.2-4.3":0.02657,"4.4":0,"4.4.3-4.4.4":0.48643},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00372,"9":0.00372,"11":0.14133,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.12345},Q:{"10.4":0},O:{"0":0.37858},H:{"0":0.34283},L:{"0":59.29193}}; +module.exports={C:{"15":0.00343,"47":0.00343,"52":0.09933,"55":0.00343,"66":0.00343,"72":0.00685,"78":0.03768,"83":0.00343,"84":0.00685,"85":0.00685,"86":0.00343,"87":0.00685,"88":0.03768,"89":8.3981,"90":7.51103,"91":0.01713,_:"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 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 92 3.5 3.6"},D:{"26":0.01028,"31":0.00343,"33":0.0137,"34":0.00685,"38":0.00685,"40":0.02055,"43":0.18838,"47":0.00685,"49":0.0822,"51":0.00343,"53":0.01713,"57":0.00343,"61":0.04795,"63":0.01713,"65":0.00343,"68":0.01713,"69":0.0137,"70":0.00685,"71":0.00685,"72":0.00343,"73":0.00343,"74":0.01028,"75":0.00685,"76":0.0137,"77":0.01028,"78":0.01028,"79":0.10618,"80":0.02398,"81":0.02055,"83":0.03083,"84":0.0274,"85":0.02398,"86":0.06508,"87":0.0959,"88":0.0548,"89":0.08905,"90":0.19865,"91":10.0695,"92":2.30845,"93":0.01028,_:"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 32 35 36 37 39 41 42 44 45 46 48 50 52 54 55 56 58 59 60 62 64 66 67 94 95"},F:{"51":0.00343,"56":0.00343,"63":0.00343,"64":0.01713,"68":0.00685,"69":0.00685,"70":0.01713,"71":0.02055,"72":0.04795,"73":0.0411,"74":0.01713,"75":0.03768,"76":0.0548,"77":0.0548,_:"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 57 58 60 62 65 66 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00559,"6.0-6.1":0.00373,"7.0-7.1":0.02609,"8.1-8.4":0.00559,"9.0-9.2":0.02236,"9.3":0.17331,"10.0-10.2":0.07454,"10.3":0.47708,"11.0-11.2":0.18077,"11.3-11.4":0.16213,"12.0-12.1":0.15281,"12.2-12.4":0.59635,"13.0-13.1":0.14722,"13.2":0.04659,"13.3":0.36899,"13.4-13.7":1.24115,"14.0-14.4":7.38353,"14.5-14.7":3.93403},E:{"4":0,"13":0.01028,"14":0.1096,"15":0.00343,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0411,"11.1":0.00685,"12.1":0.03083,"13.1":0.03768,"14.1":0.18838},B:{"12":0.00685,"16":0.00343,"17":0.01028,"18":0.02398,"84":0.00685,"89":0.0137,"90":0.01028,"91":0.7672,"92":0.21578,_:"13 14 15 79 80 81 83 85 86 87 88"},P:{"4":0.28902,"5.0-5.4":0.05031,"6.2-6.4":0.01077,"7.2-7.4":0.07225,"8.2":0.02034,"9.2":0.04129,"10.1":0.01032,"11.1-11.2":0.16515,"12.0":0.06193,"13.0":0.22709,"14.0":1.41412},I:{"0":0,"3":0,"4":0.00177,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00621,"4.2-4.3":0.03282,"4.4":0,"4.4.3-4.4.4":0.62975},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00731,"9":0.00731,"11":0.09499,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":48.83028},S:{"2.5":0},R:{_:"0"},M:{"0":0.18407},Q:{"10.4":0},O:{"0":0.46675},H:{"0":0.37343}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js index d1458f24803f7d..c16df45bf6c72a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js @@ -1 +1 @@ -module.exports={C:{"24":0.00165,"27":0.00165,"29":0.00331,"30":0.00165,"31":0.00331,"34":0.01654,"35":0.00165,"37":0.00331,"40":0.00827,"41":0.00827,"42":0.00827,"43":0.00662,"44":0.00165,"45":0.00331,"47":0.01323,"48":0.00496,"49":0.00331,"52":0.00992,"53":0.00165,"56":0.00165,"57":0.00331,"61":0.00331,"64":0.00165,"66":0.00165,"67":0.00827,"72":0.00662,"73":0.00331,"77":0.44327,"78":0.01819,"79":0.00331,"80":0.00827,"84":0.00662,"85":0.00496,"86":0.17367,"87":0.02646,"88":0.71122,"89":0.11247,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 28 32 33 36 38 39 46 50 51 54 55 58 59 60 62 63 65 68 69 70 71 74 75 76 81 82 83 90 91 3.5 3.6"},D:{"11":0.04797,"26":0.00331,"28":0.00165,"30":0.03639,"31":0.00331,"33":0.01158,"34":0.00331,"35":0.00331,"36":0.00992,"37":0.07443,"38":0.00165,"40":0.13728,"43":0.04962,"46":0.00496,"49":0.00827,"50":0.07774,"51":0.00662,"53":0.00331,"55":0.00662,"56":0.00331,"57":0.01819,"58":0.00331,"60":0.00662,"61":0.00331,"62":0.00496,"63":0.01489,"64":0.00331,"65":0.00165,"67":0.00827,"68":0.00331,"69":0.00827,"70":0.01819,"74":0.01158,"77":0.02646,"78":0.06616,"79":0.02812,"80":0.07278,"81":0.02481,"83":0.01654,"84":0.01323,"85":0.01819,"86":0.03639,"87":0.15548,"88":0.0827,"89":0.21171,"90":5.19356,"91":0.1257,"92":0.00331,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 29 32 39 41 42 44 45 47 48 52 54 59 66 71 72 73 75 76 93 94"},F:{"40":0.00331,"42":0.00331,"45":0.01158,"67":0.00165,"70":0.00331,"71":0.00165,"73":0.01489,"74":0.00827,"75":0.36223,"76":0.81377,_:"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 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 72 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00662},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00056,"6.0-6.1":0.00112,"7.0-7.1":0.05764,"8.1-8.4":0.00805,"9.0-9.2":0.03163,"9.3":0.03088,"10.0-10.2":0.00524,"10.3":0.05726,"11.0-11.2":0.0436,"11.3-11.4":0.0597,"12.0-12.1":0.02208,"12.2-12.4":0.26367,"13.0-13.1":0.03743,"13.2":0.00618,"13.3":0.03892,"13.4-13.7":0.12819,"14.0-14.4":0.7942,"14.5-14.6":0.18302},E:{"4":0,"7":0.043,"13":0.00165,"14":0.13067,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 10.1 11.1","7.1":0.00165,"9.1":0.00331,"12.1":0.00827,"13.1":0.04135,"14.1":0.043},B:{"12":0.02646,"13":0.01158,"14":0.00992,"15":0.00496,"16":0.00662,"17":0.02481,"18":0.043,"84":0.01489,"85":0.00662,"87":0.01985,"88":0.00662,"89":0.04466,"90":0.73438,"91":0.02316,_:"79 80 81 83 86"},P:{"4":0.51392,"5.0-5.4":0.06167,"6.2-6.4":0.0925,"7.2-7.4":0.26724,"8.2":0.02014,"9.2":0.0925,"10.1":0.01028,"11.1-11.2":0.17473,"12.0":0.10278,"13.0":0.30835,"14.0":0.46252},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00723,"4.2-4.3":0.1955,"4.4":0,"4.4.3-4.4.4":0.35645},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12736,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.04173},Q:{"10.4":0.23369},O:{"0":1.43551},H:{"0":23.69646},L:{"0":56.36384}}; +module.exports={C:{"19":0.01747,"30":0.00749,"31":0.01997,"32":0.00499,"34":0.00499,"35":0.01498,"37":0.00499,"38":0.00749,"39":0.00499,"40":0.00998,"41":0.01997,"42":0.02746,"43":0.01997,"44":0.00749,"47":0.04493,"48":0.01997,"49":0.0025,"50":0.01997,"52":0.00749,"53":0.01997,"54":0.0025,"55":0.00499,"56":0.01248,"57":0.02995,"58":0.00998,"59":0.00749,"60":0.00998,"61":0.06739,"62":0.00499,"64":0.0025,"67":0.00998,"68":0.00998,"69":0.01747,"72":0.01498,"77":0.09235,"78":0.02496,"79":0.00998,"82":0.26707,"84":0.00998,"85":0.03744,"86":0.02246,"87":0.01498,"88":0.06989,"89":0.6889,"90":0.44678,"91":0.13978,_:"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 33 36 45 46 51 63 65 66 70 71 73 74 75 76 80 81 83 92 3.5 3.6"},D:{"11":0.01997,"18":0.0025,"20":0.0025,"32":0.00499,"33":0.03245,"37":0.00749,"40":0.01248,"41":0.0025,"43":0.10234,"46":0.0025,"49":0.00499,"50":0.01997,"51":0.00749,"53":0.0025,"55":0.00749,"57":0.04992,"58":0.00499,"59":0.01747,"60":0.00749,"61":0.01997,"63":0.04992,"64":0.00998,"65":0.00749,"66":0.01747,"67":0.00998,"68":0.00499,"69":0.02246,"70":0.00998,"71":0.04493,"73":0.00499,"74":0.03744,"75":0.01498,"76":0.0025,"77":0.02995,"78":0.01248,"79":0.10733,"80":0.79373,"81":0.01997,"83":0.02496,"84":0.00499,"85":0.02995,"86":0.11981,"87":0.09235,"88":0.13978,"89":0.45926,"90":0.13229,"91":7.48301,"92":1.64736,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 21 22 23 24 25 26 27 28 29 30 31 34 35 36 38 39 42 44 45 47 48 52 54 56 62 72 93 94 95"},F:{"34":0.0025,"63":0.00749,"67":0.00499,"76":0.04493,"77":2.20646,_:"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 64 65 66 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00499},G:{"8":0.00113,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00045,"5.0-5.1":0.00045,"6.0-6.1":0,"7.0-7.1":0.3947,"8.1-8.4":0.00947,"9.0-9.2":0.00271,"9.3":0.1245,"10.0-10.2":0.00045,"10.3":0.2623,"11.0-11.2":0.1475,"11.3-11.4":0.00992,"12.0-12.1":0.01556,"12.2-12.4":0.09856,"13.0-13.1":0.00045,"13.2":0.00992,"13.3":0.04195,"13.4-13.7":0.08728,"14.0-14.4":0.3559,"14.5-14.7":0.57513},E:{"4":0,"6":0.0025,"14":0.09485,_:"0 5 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":0.00998,"13.1":0.0599,"14.1":0.13728},B:{"12":0.04992,"13":0.00998,"14":0.01997,"15":0.01498,"16":0.03245,"17":0.0599,"18":0.06989,"81":0.0025,"83":0.00749,"84":0.02246,"85":0.00749,"89":0.04493,"90":0.01248,"91":1.04333,"92":0.24211,_:"79 80 86 87 88"},P:{"4":0.70371,"5.0-5.4":0.0306,"6.2-6.4":0.06119,"7.2-7.4":1.08106,"8.2":0.02034,"9.2":0.17338,"10.1":0.02073,"11.1-11.2":0.26517,"12.0":0.04079,"13.0":0.23457,"14.0":0.8159},I:{"0":0,"3":0,"4":0.00154,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00171,"4.2-4.3":0.07267,"4.4":0,"4.4.3-4.4.4":0.11166},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01799,"11":0.48569,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":53.3544},S:{"2.5":0},R:{_:"0"},M:{"0":0.11255},Q:{"10.4":0.13505},O:{"0":3.40636},H:{"0":17.21853}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js index 372929ca863a14..3cf20e749006b0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js @@ -1 +1 @@ -module.exports={C:{"45":0.00483,"48":0.01932,"52":0.10145,"53":0.00483,"55":0.00483,"56":0.00483,"59":0.00966,"60":0.02899,"64":0.00483,"66":0.01449,"67":0.01449,"68":0.02416,"69":0.01449,"72":0.01449,"77":0.00483,"78":0.2029,"79":0.00966,"80":0.01449,"81":0.00966,"82":0.00966,"83":0.00966,"84":0.07247,"85":0.02899,"86":0.03382,"87":0.27054,"88":3.11116,"89":0.01932,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 54 57 58 61 62 63 65 70 71 73 74 75 76 90 91 3.5 3.6"},D:{"34":0.00483,"38":0.02416,"49":0.35266,"52":0.00966,"53":0.05314,"54":0.0628,"56":0.00966,"57":0.00483,"58":0.00966,"61":0.19807,"63":0.00966,"64":0.00966,"65":0.02416,"66":0.01449,"67":0.01932,"68":0.01932,"69":0.02416,"70":0.01932,"71":0.01449,"72":0.00966,"73":0.01449,"74":0.02899,"75":0.0773,"76":0.03382,"77":0.02899,"78":0.02899,"79":0.08213,"80":0.05314,"81":0.04831,"83":0.0628,"84":0.07247,"85":0.07247,"86":0.14493,"87":0.25121,"88":0.22223,"89":0.95171,"90":28.68648,"91":0.75364,"92":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 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 55 59 60 62 93 94"},F:{"36":0.00483,"73":0.1401,"74":0.00483,"75":0.53141,"76":0.44928,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00194,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00389,"6.0-6.1":0.00292,"7.0-7.1":0.01069,"8.1-8.4":0.01166,"9.0-9.2":0.00583,"9.3":0.14387,"10.0-10.2":0.04472,"10.3":0.14581,"11.0-11.2":0.04277,"11.3-11.4":0.03791,"12.0-12.1":0.03402,"12.2-12.4":0.14192,"13.0-13.1":0.04472,"13.2":0.01555,"13.3":0.12831,"13.4-13.7":0.36453,"14.0-14.4":6.71995,"14.5-14.6":1.34632},E:{"4":0,"11":0.00483,"12":0.00966,"13":0.10145,"14":2.42516,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01449,"9.1":0.00483,"10.1":0.01932,"11.1":0.0773,"12.1":0.10145,"13.1":0.4831,"14.1":0.84059},B:{"14":0.00483,"15":0.00483,"16":0.00966,"17":0.01449,"18":0.04831,"84":0.00966,"85":0.00966,"86":0.01932,"87":0.01449,"88":0.01449,"89":0.07247,"90":3.15947,"91":0.1401,_:"12 13 79 80 81 83"},P:{"4":0.14857,"5.0-5.4":0.01061,"6.2-6.4":0.03031,"7.2-7.4":0.57596,"8.2":0.02021,"9.2":0.01061,"10.1":0.01061,"11.1-11.2":0.12734,"12.0":0.09551,"13.0":0.32897,"14.0":2.47256},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01233,"4.2-4.3":0.01088,"4.4":0,"4.4.3-4.4.4":0.05949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00533,"11":0.55989,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.27913},Q:{"10.4":0.01551},O:{"0":0.07237},H:{"0":0.23979},L:{"0":40.29459}}; +module.exports={C:{"45":0.00441,"48":0.00882,"52":0.09698,"55":0.00882,"56":0.00441,"60":0.01322,"63":0.00441,"66":0.01322,"68":0.02645,"72":0.00441,"73":0.00441,"78":0.18954,"79":0.00882,"80":0.00882,"81":0.01322,"82":0.00441,"83":0.00441,"84":0.02204,"85":0.00882,"86":0.00882,"87":0.01322,"88":0.06612,"89":1.91748,"90":1.11082,"91":0.00882,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 57 58 59 61 62 64 65 67 69 70 71 74 75 76 77 92 3.5 3.6"},D:{"38":0.02204,"49":0.29534,"51":0.00882,"53":0.01322,"54":0.0573,"56":0.00441,"57":0.00441,"58":0.00882,"61":0.15869,"63":0.01322,"64":0.00882,"65":0.02204,"66":0.01763,"67":0.01763,"68":0.00882,"69":0.03526,"70":0.01763,"71":0.00882,"72":0.00882,"73":0.01322,"74":0.02204,"75":0.1102,"76":0.02645,"77":0.01763,"78":0.02204,"79":0.14546,"80":0.04408,"81":0.03967,"83":0.0529,"84":0.06612,"85":0.04849,"86":0.10579,"87":0.29974,"88":0.09698,"89":0.1631,"90":0.36586,"91":21.23334,"92":4.94137,"93":0.01322,_:"4 5 6 7 8 9 10 11 12 13 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 55 59 60 62 94 95"},F:{"36":0.00882,"46":0.00441,"75":0.00441,"76":0.30856,"77":0.86838,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00243,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00485,"6.0-6.1":0.00607,"7.0-7.1":0.01214,"8.1-8.4":0.01335,"9.0-9.2":0.00364,"9.3":0.14929,"10.0-10.2":0.04491,"10.3":0.14079,"11.0-11.2":0.04491,"11.3-11.4":0.03763,"12.0-12.1":0.04127,"12.2-12.4":0.12987,"13.0-13.1":0.04491,"13.2":0.01821,"13.3":0.12744,"13.4-13.7":0.38354,"14.0-14.4":1.82666,"14.5-14.7":8.5568},E:{"4":0,"12":0.00882,"13":0.07494,"14":0.69646,"15":0.01322,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00882,"9.1":0.00882,"10.1":0.02645,"11.1":0.06171,"12.1":0.09698,"13.1":0.37027,"14.1":2.18196},B:{"14":0.00441,"16":0.00441,"17":0.00882,"18":0.04408,"84":0.00441,"85":0.00882,"86":0.01322,"87":0.00882,"88":0.00882,"89":0.01763,"90":0.02204,"91":2.60072,"92":0.69646,_:"12 13 15 79 80 81 83"},P:{"4":0.16987,"5.0-5.4":0.01062,"6.2-6.4":0.2319,"7.2-7.4":0.98808,"8.2":0.01025,"9.2":0.01062,"10.1":0.04033,"11.1-11.2":0.1274,"12.0":0.05308,"13.0":0.18049,"14.0":2.47373},I:{"0":0,"3":0,"4":0.00186,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01398,"4.2-4.3":0.00839,"4.4":0,"4.4.3-4.4.4":0.06525},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01021,"11":0.6025,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":42.95573},S:{"2.5":0},R:{_:"0"},M:{"0":0.34117},Q:{"10.4":0.01678},O:{"0":0.10067},H:{"0":0.2118}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js index f778d184e9629b..b5d3b0cfecce08 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js @@ -1 +1 @@ -module.exports={C:{"20":0.00813,"25":0.00407,"27":0.00407,"29":0.0122,"30":0.0122,"32":0.00813,"33":0.0122,"34":0.02033,"35":0.02439,"36":0.01626,"37":0.02439,"38":0.00813,"39":0.00813,"40":0.00813,"41":0.00813,"42":0.00407,"43":0.04065,"44":0.01626,"45":0.00407,"46":0.00813,"47":0.13008,"48":0.02033,"49":0.0122,"52":0.28049,"54":0.00813,"56":0.0122,"57":0.00813,"58":0.00813,"59":0.00813,"60":0.02033,"61":0.04878,"62":0.00407,"65":0.00407,"66":0.01626,"67":0.00813,"68":0.05691,"69":0.05691,"70":0.0122,"71":0.01626,"72":0.05285,"74":0.00407,"77":0.13821,"78":0.07724,"79":0.00813,"80":0.00813,"81":0.02439,"82":0.01626,"83":0.01626,"84":0.02846,"85":0.02846,"86":0.0813,"87":0.09756,"88":3.76419,"89":0.32114,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 26 28 31 50 51 53 55 63 64 73 75 76 90 91 3.5 3.6"},D:{"11":0.01626,"33":0.05691,"34":0.01626,"36":0.00407,"37":0.02033,"38":0.0122,"40":0.20732,"43":0.39024,"46":0.00813,"48":0.04065,"49":0.04472,"50":0.01626,"51":0.02439,"53":0.02439,"55":0.0122,"56":0.00813,"57":0.01626,"58":0.02033,"60":0.0122,"63":0.04065,"64":0.00813,"65":0.02439,"67":0.04065,"68":0.02846,"69":0.03659,"70":0.02846,"71":0.0122,"72":0.0122,"73":0.01626,"74":0.03252,"75":0.02033,"76":0.02846,"77":0.10976,"78":0.03659,"79":0.17886,"80":0.04065,"81":0.04472,"83":0.03659,"84":0.06911,"85":0.06504,"86":0.14634,"87":0.43496,"88":0.2439,"89":0.62195,"90":19.11363,"91":0.54878,"92":0.04065,_:"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 35 39 41 42 44 45 47 52 54 59 61 62 66 93 94"},F:{"40":0.00407,"42":0.00407,"71":0.00407,"72":0.00813,"73":0.03659,"74":0.02846,"75":1.01625,"76":2.30079,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01229,"3.2":0.00259,"4.0-4.1":0,"4.2-4.3":0.00129,"5.0-5.1":0.0042,"6.0-6.1":0.00065,"7.0-7.1":0.27393,"8.1-8.4":0.04463,"9.0-9.2":0.02684,"9.3":0.14295,"10.0-10.2":0.01294,"10.3":0.48836,"11.0-11.2":0.0249,"11.3-11.4":0.48545,"12.0-12.1":0.02102,"12.2-12.4":0.11384,"13.0-13.1":0.02329,"13.2":0.01423,"13.3":0.02781,"13.4-13.7":0.12743,"14.0-14.4":0.98125,"14.5-14.6":0.1727},E:{"4":0,"7":0.0122,"8":0.0122,"13":0.00407,"14":0.13415,_:"0 5 6 9 10 11 12 3.1 3.2 5.1 6.1 9.1","7.1":0.00407,"10.1":0.02033,"11.1":0.00813,"12.1":0.0122,"13.1":0.09756,"14.1":0.05285},B:{"12":0.11789,"13":0.04878,"14":0.02846,"15":0.03659,"16":0.07724,"17":0.09756,"18":0.2439,"83":0.00813,"84":0.02033,"85":0.02439,"86":0.00407,"87":0.02439,"88":0.02846,"89":0.23577,"90":2.86583,"91":0.05285,_:"79 80 81"},P:{"4":0.69841,"5.0-5.4":0.03127,"6.2-6.4":0.0417,"7.2-7.4":0.29187,"8.2":0.03018,"9.2":0.12509,"10.1":0.02085,"11.1-11.2":0.15636,"12.0":0.08339,"13.0":0.37526,"14.0":0.91731},I:{"0":0,"3":0,"4":0.00199,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00419,"4.2-4.3":0.09448,"4.4":0,"4.4.3-4.4.4":0.24945},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01016,"11":0.25406,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.02967},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12461},Q:{"10.4":0.07121},O:{"0":2.99074},H:{"0":8.99992},L:{"0":43.7566}}; +module.exports={C:{"20":0.00414,"27":0.00829,"29":0.01243,"30":0.01243,"31":0.04557,"32":0.00829,"33":0.02072,"34":0.01243,"35":0.01243,"36":0.00829,"37":0.02072,"38":0.01243,"39":0.00414,"40":0.01657,"41":0.00829,"43":0.01657,"44":0.01243,"45":0.00829,"47":0.09943,"48":0.01243,"49":0.00414,"52":0.37701,"54":0.00829,"56":0.01657,"57":0.00829,"58":0.00829,"60":0.01657,"61":0.00829,"65":0.00414,"66":0.02072,"67":0.00829,"68":0.03729,"69":0.00829,"70":0.00414,"72":0.03729,"73":0.00829,"74":0.00414,"76":0.00414,"77":0.09115,"78":0.07457,"79":0.00829,"80":0.00414,"81":0.01657,"82":0.00829,"83":0.00829,"84":0.02072,"85":0.02072,"86":0.02486,"87":0.03314,"88":0.14915,"89":2.38637,"90":1.47077,"91":0.21544,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 28 42 46 50 51 53 55 59 62 63 64 71 75 92 3.5 3.6"},D:{"11":0.02072,"26":0.01243,"31":0.00414,"33":0.04972,"34":0.01243,"35":0.00414,"36":0.01657,"37":0.03314,"38":0.01243,"40":0.21544,"42":0.00829,"43":0.30244,"46":0.00829,"48":0.02072,"49":0.04143,"50":0.01243,"51":0.02486,"53":0.01657,"55":0.01243,"56":0.00829,"57":0.00829,"58":0.01657,"60":0.029,"61":0.00414,"63":0.05386,"64":0.01243,"65":0.03314,"66":0.00414,"67":0.02486,"68":0.03729,"69":0.04972,"70":0.029,"71":0.03314,"72":0.01243,"73":0.01243,"74":0.03729,"75":0.03729,"76":0.02486,"77":0.04557,"78":0.03314,"79":0.18229,"80":0.05386,"81":0.04143,"83":0.04143,"84":0.058,"85":0.06629,"86":0.16986,"87":0.33973,"88":0.087,"89":0.23615,"90":0.4723,"91":16.19499,"92":4.21757,"93":0.02486,_:"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 39 41 44 45 47 52 54 59 62 94 95"},F:{"25":0.00829,"36":0.00829,"42":0.00414,"65":0.00414,"70":0.00414,"73":0.00829,"74":0.00829,"75":0.01657,"76":0.087,"77":2.77167,_:"9 11 12 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00237,"5.0-5.1":0.02667,"6.0-6.1":0.00089,"7.0-7.1":0.24509,"8.1-8.4":0.02045,"9.0-9.2":0.00978,"9.3":0.08179,"10.0-10.2":0.00593,"10.3":0.29043,"11.0-11.2":0.0652,"11.3-11.4":0.02608,"12.0-12.1":0.02756,"12.2-12.4":0.13514,"13.0-13.1":0.01778,"13.2":0.03023,"13.3":0.08209,"13.4-13.7":0.13632,"14.0-14.4":0.61376,"14.5-14.7":0.95279},E:{"4":0,"13":0.00414,"14":0.087,_:"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.00414,"12.1":0.00414,"13.1":0.03729,"14.1":0.13672},B:{"12":0.13258,"13":0.04143,"14":0.03314,"15":0.03314,"16":0.05386,"17":0.04557,"18":0.20715,"83":0.00829,"84":0.04143,"85":0.03314,"87":0.00829,"88":0.01657,"89":0.09115,"90":0.06629,"91":2.89181,"92":0.72088,_:"79 80 81 86"},P:{"4":0.83612,"5.0-5.4":0.04129,"6.2-6.4":0.06193,"7.2-7.4":0.27871,"8.2":0.02034,"9.2":0.12387,"10.1":0.03097,"11.1-11.2":0.17548,"12.0":0.06193,"13.0":0.17548,"14.0":1.12515},I:{"0":0,"3":0,"4":0.00029,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01001,"4.2-4.3":0.03446,"4.4":0,"4.4.3-4.4.4":0.13096},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01076,"9":0.00538,"11":0.3443,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":43.57729},S:{"2.5":0},R:{_:"0"},M:{"0":0.10543},Q:{"10.4":0.09371},O:{"0":1.93281},H:{"0":9.79807}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js index fc6508a50b2f4a..fe9f7eb5c76cb3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js @@ -1 +1 @@ -module.exports={C:{"37":0.06761,"44":0.01844,"48":0.00615,"50":0.00615,"52":0.09834,"54":0.04302,"55":0.04917,"56":0.01844,"59":0.01844,"60":0.01844,"63":0.01844,"66":0.01229,"68":0.01844,"72":0.01229,"73":0.00615,"78":0.42407,"79":0.01844,"80":0.04302,"81":0.04302,"82":0.03073,"83":0.02458,"84":0.06146,"85":0.01844,"86":0.06761,"87":0.17209,"88":5.26712,"89":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 36 38 39 40 41 42 43 45 46 47 49 51 53 57 58 61 62 64 65 67 69 70 71 74 75 76 77 90 91 3.5 3.6"},D:{"38":0.01229,"48":0.04917,"49":0.30115,"52":0.08604,"53":0.02458,"56":0.02458,"59":0.08604,"60":0.36876,"61":0.03073,"64":0.86044,"65":0.01229,"66":0.09219,"67":0.02458,"68":0.01844,"69":0.32574,"70":0.88502,"71":0.00615,"72":0.93419,"73":0.01844,"74":0.00615,"75":0.03688,"76":0.03688,"77":0.01229,"78":0.30115,"79":1.88068,"80":0.94034,"81":0.05531,"83":0.17209,"84":0.59002,"85":0.51626,"86":0.89732,"87":0.87888,"88":1.11857,"89":1.83765,"90":27.03011,"91":0.68221,"92":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 39 40 41 42 43 44 45 46 47 50 51 54 55 57 58 62 63 93 94"},F:{"71":0.00615,"72":0.01229,"73":0.12907,"74":0.00615,"75":0.54699,"76":0.56543,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00351,"6.0-6.1":0.00234,"7.0-7.1":0.00117,"8.1-8.4":0.02222,"9.0-9.2":0.08655,"9.3":0.08538,"10.0-10.2":0.0152,"10.3":0.1614,"11.0-11.2":0.03743,"11.3-11.4":0.11696,"12.0-12.1":0.069,"12.2-12.4":0.19765,"13.0-13.1":0.03626,"13.2":0.01637,"13.3":0.16374,"13.4-13.7":0.51227,"14.0-14.4":8.01614,"14.5-14.6":1.69469},E:{"4":0.00615,"12":0.07375,"13":0.35032,"14":2.77799,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.06146,"11.1":0.12907,"12.1":0.11063,"13.1":0.5347,"14.1":1.23535},B:{"17":0.01844,"18":0.06146,"81":0.02458,"84":0.01229,"85":0.01844,"86":0.02458,"87":0.01844,"88":0.01844,"89":0.11677,"90":3.53395,"91":0.12907,_:"12 13 14 15 16 79 80 83"},P:{"4":0.02136,"5.0-5.4":0.01068,"6.2-6.4":0.0417,"7.2-7.4":0.01068,"8.2":0.03018,"9.2":0.05341,"10.1":0.04273,"11.1-11.2":0.1175,"12.0":0.14954,"13.0":0.48067,"14.0":1.9654},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00167,"4.2-4.3":0.01282,"4.4":0,"4.4.3-4.4.4":0.03176},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.14779,"9":0.04702,"10":0.18138,"11":0.49039,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.00771},R:{_:"0"},M:{"0":0.60893},Q:{"10.4":0},O:{"0":0.14645},H:{"0":0.35393},L:{"0":24.37821}}; +module.exports={C:{"3":0.00583,"4":0.00583,"37":0.04666,"43":0.01166,"48":0.01166,"50":0.00583,"51":0.00583,"52":0.09914,"54":0.02333,"55":0.02916,"56":0.01166,"57":0.00583,"59":0.0175,"60":0.0175,"62":0.00583,"65":0.01166,"66":0.00583,"68":0.01166,"77":0.01166,"78":0.2741,"79":0.02333,"80":0.02916,"81":0.02916,"82":0.06415,"83":0.01166,"84":0.09914,"85":0.01166,"86":0.01166,"87":0.0175,"88":0.08748,"89":3.07346,"90":1.94789,"91":0.00583,_:"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 38 39 40 41 42 44 45 46 47 49 53 58 61 63 64 67 69 70 71 72 73 74 75 76 92 3.5 3.6"},D:{"38":0.0175,"41":0.00583,"42":0.03499,"48":0.06415,"49":0.30326,"52":0.08748,"56":0.04082,"59":0.02333,"60":0.18079,"61":0.03499,"64":0.5657,"66":0.08748,"67":0.02916,"68":0.00583,"69":0.33242,"70":0.61236,"72":0.58903,"74":0.01166,"75":0.04082,"76":0.02333,"77":0.01166,"78":0.01166,"79":1.60963,"80":0.64152,"81":0.04666,"83":0.17496,"84":0.30326,"85":0.39074,"86":0.7115,"87":0.93895,"88":0.92729,"89":0.2916,"90":5.84366,"91":19.81714,"92":3.99492,"93":0.01166,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 53 54 55 57 58 62 63 65 71 73 94 95"},F:{"69":0.0175,"71":0.02916,"72":0.01166,"74":0.00583,"75":0.00583,"76":0.34992,"77":1.06726,_:"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 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00121,"6.0-6.1":0.00364,"7.0-7.1":0.00485,"8.1-8.4":0.0182,"9.0-9.2":0.10316,"9.3":0.06311,"10.0-10.2":0.02549,"10.3":0.13714,"11.0-11.2":0.04248,"11.3-11.4":0.11772,"12.0-12.1":0.05097,"12.2-12.4":0.16505,"13.0-13.1":0.02549,"13.2":0.02306,"13.3":0.12622,"13.4-13.7":0.52185,"14.0-14.4":2.34227,"14.5-14.7":7.92487},E:{"4":0.01166,"10":0.00583,"12":0.00583,"13":0.2741,"14":0.7115,"15":0.01166,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03499,"11.1":0.08748,"12.1":0.05832,"13.1":0.37908,"14.1":2.6419},B:{"14":0.00583,"17":0.01166,"18":0.05249,"83":0.00583,"84":0.03499,"85":0.01166,"86":0.00583,"87":0.01166,"88":0.00583,"89":0.02333,"90":0.02916,"91":2.72938,"92":0.67651,_:"12 13 15 16 79 80 81"},P:{"4":0.06355,"5.0-5.4":0.02118,"6.2-6.4":0.0819,"7.2-7.4":1.19776,"8.2":0.03071,"9.2":0.06355,"10.1":0.02118,"11.1-11.2":0.1165,"12.0":0.18005,"13.0":0.29655,"14.0":2.54187},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0012,"4.2-4.3":0.01165,"4.4":0,"4.4.3-4.4.4":0.02048},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.22829,"9":0.04566,"10":0.23481,"11":0.48267,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":26.85487},S:{"2.5":0.00417},R:{_:"0"},M:{"0":0.76256},Q:{"10.4":0},O:{"0":0.22919},H:{"0":0.44974}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js index 154de2a2526dcc..36545a21a7081c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js @@ -1 +1 @@ -module.exports={C:{"29":0.0041,"30":0.0082,"34":0.02459,"43":0.0041,"47":0.01229,"50":0.0041,"52":0.0082,"56":0.02869,"65":0.05737,"66":0.01639,"69":0.01229,"72":0.04508,"78":0.05737,"80":0.03278,"82":0.01229,"83":0.0041,"84":0.0082,"85":0.08606,"86":0.01639,"87":0.05327,"88":1.95475,"89":0.03688,_:"2 3 4 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 35 36 37 38 39 40 41 42 44 45 46 48 49 51 53 54 55 57 58 59 60 61 62 63 64 67 68 70 71 73 74 75 76 77 79 81 90 91 3.5 3.6"},D:{"39":0.04508,"49":0.02869,"51":0.01229,"53":0.18441,"57":0.0041,"58":0.01229,"63":0.02459,"65":0.06557,"66":0.0082,"67":0.03278,"69":0.04918,"74":0.01639,"76":0.01229,"77":0.02869,"79":0.09016,"80":0.05327,"81":0.02869,"83":0.02049,"84":0.01639,"85":0.02459,"86":0.08606,"87":0.15163,"88":0.10245,"89":0.50405,"90":20.87931,"91":1.07368,"92":0.0082,_:"4 5 6 7 8 9 10 11 12 13 14 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 52 54 55 56 59 60 61 62 64 68 70 71 72 73 75 78 93 94"},F:{"73":0.01639,"75":0.23768,"76":0.45078,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01047,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00698,"6.0-6.1":0.02394,"7.0-7.1":0.01047,"8.1-8.4":0.00399,"9.0-9.2":0.00299,"9.3":0.18605,"10.0-10.2":0.07981,"10.3":0.07083,"11.0-11.2":0.0808,"11.3-11.4":0.03142,"12.0-12.1":0.03043,"12.2-12.4":0.13767,"13.0-13.1":0.01347,"13.2":0.01596,"13.3":0.12969,"13.4-13.7":0.34118,"14.0-14.4":2.55882,"14.5-14.6":0.91579},E:{"4":0,"6":0.01639,"12":0.0041,"13":0.03278,"14":0.70895,_:"0 5 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01639,"11.1":0.01229,"12.1":0.01639,"13.1":0.17212,"14.1":0.15982},B:{"12":0.01229,"13":0.01639,"14":0.01639,"15":0.02459,"16":0.04508,"17":0.05327,"18":0.07786,"80":0.01639,"84":0.01229,"85":0.02869,"86":0.06557,"87":0.27457,"88":0.01639,"89":0.23359,"90":7.1633,"91":0.13114,_:"79 81 83"},P:{"4":0.77712,"5.0-5.4":0.06167,"6.2-6.4":0.07158,"7.2-7.4":1.45199,"8.2":0.01023,"9.2":0.26586,"10.1":0.1227,"11.1-11.2":1.10433,"12.0":0.40901,"13.0":1.48267,"14.0":2.63813},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00149,"4.2-4.3":0.00547,"4.4":0,"4.4.3-4.4.4":0.04026},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.75813,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.15935},Q:{"10.4":0.07673},O:{"0":1.96537},H:{"0":0.44142},L:{"0":47.0428}}; +module.exports={C:{"30":0.00359,"43":0.00359,"45":0.00719,"47":0.02156,"52":0.01078,"65":0.03594,"68":0.03953,"72":0.00359,"73":0.00359,"78":0.01078,"80":0.08266,"83":0.00359,"84":0.00719,"87":0.00719,"88":0.13657,"89":1.22915,"90":0.84459,"91":0.02156,_:"2 3 4 5 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 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 69 70 71 74 75 76 77 79 81 82 85 86 92 3.5 3.6"},D:{"31":0.02156,"36":0.01438,"38":0.00359,"39":0.01797,"45":0.00719,"49":0.02156,"51":0.0575,"53":0.07547,"56":0.01078,"63":0.02516,"64":0.03594,"65":0.00359,"67":0.01078,"69":0.02156,"70":0.01078,"71":0.01797,"72":0.00359,"73":0.00719,"74":0.00359,"75":0.00719,"76":0.01078,"77":0.02156,"78":0.00719,"79":0.03953,"80":0.01438,"81":0.0575,"83":0.04313,"84":0.02156,"85":0.02156,"86":0.04672,"87":0.09704,"88":0.04313,"89":0.13657,"90":0.68286,"91":15.49014,"92":3.48977,"93":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 29 30 32 33 34 35 37 40 41 42 43 44 46 47 48 50 52 54 55 57 58 59 60 61 62 66 68 94 95"},F:{"36":0.01438,"76":0.06469,"77":0.6613,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00546,"6.0-6.1":0.00248,"7.0-7.1":0.00695,"8.1-8.4":0.01888,"9.0-9.2":0.0005,"9.3":0.27819,"10.0-10.2":0.0149,"10.3":0.76551,"11.0-11.2":0.0621,"11.3-11.4":0.00844,"12.0-12.1":0.03477,"12.2-12.4":0.15449,"13.0-13.1":0.00348,"13.2":0.00298,"13.3":0.13909,"13.4-13.7":0.14754,"14.0-14.4":0.74316,"14.5-14.7":2.14651},E:{"4":0,"11":0.00359,"12":0.00359,"13":0.08266,"14":0.29471,"15":0.00719,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00359,"11.1":0.00719,"12.1":0.01078,"13.1":0.14376,"14.1":0.61817},B:{"12":0.01078,"13":0.06469,"14":0.01797,"15":0.05391,"16":0.05391,"17":0.03594,"18":0.13298,"80":0.02516,"84":0.01797,"85":0.06469,"86":0.00359,"87":0.15454,"88":0.01078,"89":0.16173,"90":0.08626,"91":3.2921,"92":0.81224,_:"79 81 83"},P:{"4":0.92135,"5.0-5.4":0.04129,"6.2-6.4":0.0819,"7.2-7.4":1.19776,"8.2":0.03071,"9.2":0.23546,"10.1":0.06142,"11.1-11.2":1.31037,"12.0":0.21498,"13.0":0.92135,"14.0":3.53186},I:{"0":0,"3":0,"4":0.00034,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00034,"4.2-4.3":0.00138,"4.4":0,"4.4.3-4.4.4":0.02996},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00636,"11":0.8526,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":53.44592},S:{"2.5":0},R:{_:"0"},M:{"0":0.07047},Q:{"10.4":0.01922},O:{"0":1.77446},H:{"0":0.27292}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js index 3ecf2e37b4ee05..faf3a8bcb9df28 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js @@ -1 +1 @@ -module.exports={C:{"33":0.01865,"48":0.22382,"52":0.02798,"59":0.0373,"63":0.00933,"69":0.00933,"75":0.00933,"76":0.07461,"78":0.05596,"80":0.00933,"81":0.00933,"82":0.04663,"84":0.08393,"85":0.00933,"87":0.07461,"88":8.78509,"89":0.00933,_:"2 3 4 5 6 7 8 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 49 50 51 53 54 55 56 57 58 60 61 62 64 65 66 67 68 70 71 72 73 74 77 79 83 86 90 91 3.5 3.6"},D:{"43":0.04663,"49":0.28911,"56":0.00933,"68":0.02798,"74":0.00933,"76":0.06528,"80":0.00933,"81":0.08393,"84":0.0373,"88":0.23315,"89":0.66215,"90":20.49389,"91":0.39169,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 75 77 78 79 83 85 86 87 92 93 94"},F:{"73":0.00933,"75":0.45697,"76":0.74142,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02749,"9.0-9.2":0,"9.3":0.0719,"10.0-10.2":0.03595,"10.3":0.16284,"11.0-11.2":0.16284,"11.3-11.4":0.00846,"12.0-12.1":9.56726,"12.2-12.4":0.18187,"13.0-13.1":0.00846,"13.2":0.02749,"13.3":0.0719,"13.4-13.7":1.3027,"14.0-14.4":7.70203,"14.5-14.6":1.45497},E:{"4":0,"8":0.02798,"13":0.53158,"14":1.46885,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00933,"10.1":0.0373,"11.1":0.00933,"12.1":0.0373,"13.1":0.11191,"14.1":1.11446},B:{"12":0.22382,"13":0.12124,"14":0.02798,"17":0.11191,"18":0.429,"80":0.0373,"84":0.00933,"86":0.08393,"87":0.02798,"89":0.83468,"90":5.5583,"91":1.45952,_:"15 16 79 81 83 85 88"},P:{"4":0.01055,"5.0-5.4":0.06167,"6.2-6.4":0.0925,"7.2-7.4":0.21726,"8.2":0.02014,"9.2":0.1161,"10.1":0.03104,"11.1-11.2":0.58971,"12.0":0.05173,"13.0":2.7623,"14.0":1.53116},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.04804},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.4663,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.24021},Q:{"10.4":0},O:{"0":0},H:{"0":0.31838},L:{"0":27.49676}}; +module.exports={C:{"20":0.00832,"58":0.00832,"59":0.17476,"68":0.02913,"72":0.02081,"76":0.06658,"78":0.02081,"83":0.00832,"84":0.17476,"87":0.02081,"88":0.00832,"89":5.60903,"90":2.37177,_:"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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 69 70 71 73 74 75 77 79 80 81 82 85 86 91 92 3.5 3.6"},D:{"49":0.13731,"63":0.02081,"68":0.11651,"72":0.00832,"77":0.02081,"80":0.00832,"81":0.15812,"83":0.00832,"87":0.00832,"89":0.10819,"90":0.57422,"91":15.31664,"92":4.04865,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 69 70 71 73 74 75 76 78 79 84 85 86 88 93 94 95"},F:{"73":0.03745,"77":1.32736,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00866,"9.0-9.2":0,"9.3":0.12489,"10.0-10.2":0,"10.3":0.18177,"11.0-11.2":0.01608,"11.3-11.4":0,"12.0-12.1":1.00284,"12.2-12.4":0.04946,"13.0-13.1":0,"13.2":0.03339,"13.3":0.02473,"13.4-13.7":0.07543,"14.0-14.4":4.00269,"14.5-14.7":6.24948},E:{"4":0,"13":0.78227,"14":1.25662,_:"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.00832,"11.1":0.02913,"12.1":0.02913,"13.1":0.21637,"14.1":1.02361},B:{"13":0.10819,"15":0.02081,"16":0.00832,"17":0.02913,"18":0.34952,"80":0.10819,"85":0.02081,"86":0.3204,"87":0.04993,"89":0.02081,"90":0.13731,"91":3.39538,"92":0.28295,_:"12 14 79 81 83 84 88"},P:{"4":0.76804,"5.0-5.4":0.04129,"6.2-6.4":0.06193,"7.2-7.4":0.18433,"8.2":0.02034,"9.2":0.07168,"10.1":0.03097,"11.1-11.2":0.35842,"12.0":0.96262,"13.0":2.10958,"14.0":7.35282},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00566,"4.4":0,"4.4.3-4.4.4":0.02353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.19701,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":34.68875},S:{"2.5":0},R:{_:"0"},M:{"0":0.36196},Q:{"10.4":0},O:{"0":0},H:{"0":0.93407}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js index cfbd2757d9fba8..af0e24f488bdaa 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js @@ -1 +1 @@ -module.exports={C:{"47":0.10847,"48":0.00943,"52":0.00472,"57":0.01415,"72":0.02358,"77":0.00943,"78":0.03301,"80":0.00472,"82":0.33012,"83":0.04244,"85":0.00943,"86":0.06131,"87":0.20279,"88":3.56058,"89":0.18864,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 81 84 90 91 3.5 3.6"},D:{"23":0.01415,"49":0.06602,"54":0.00943,"60":0.06131,"62":0.00472,"65":0.00943,"67":0.00472,"69":0.0283,"70":0.00472,"71":0.03773,"72":0.01415,"76":0.0896,"78":0.00472,"79":0.03773,"80":0.00472,"81":0.00472,"84":0.16034,"86":0.00472,"87":0.01415,"88":0.02358,"89":0.36313,"90":20.8966,"91":1.24031,_:"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 55 56 57 58 59 61 63 64 66 68 73 74 75 77 83 85 92 93 94"},F:{"75":0.39614,"76":1.60816,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.06757,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":2.80481,"10.0-10.2":0.00431,"10.3":0.04313,"11.0-11.2":0.02013,"11.3-11.4":0.01006,"12.0-12.1":0.00431,"12.2-12.4":0.30621,"13.0-13.1":0.00431,"13.2":0,"13.3":0.12651,"13.4-13.7":0.32059,"14.0-14.4":8.03347,"14.5-14.6":0.22283},E:{"4":0,"11":0.01415,"12":0.0283,"13":0.12262,"14":0.8536,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01415,"12.1":0.09432,"13.1":0.40086,"14.1":0.0283},B:{"12":0.00943,"14":0.03301,"15":0.00472,"16":0.04244,"18":0.17921,"84":0.02358,"85":0.00472,"87":0.00472,"88":0.12733,"89":0.14148,"90":8.20584,"91":0.39143,_:"13 17 79 80 81 83 86"},P:{"4":0.1489,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.13373,"8.2":0.01114,"9.2":0.03343,"10.1":0.02065,"11.1-11.2":0.53493,"12.0":0.03191,"13.0":0.33433,"14.0":0.79125},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0083,"4.4":0,"4.4.3-4.4.4":0.04982},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.30182,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12682},Q:{"10.4":0},O:{"0":0.77146},H:{"0":0.09505},L:{"0":44.18708}}; +module.exports={C:{"47":0.03568,"48":0.08155,"72":0.03058,"77":0.04078,"78":0.02039,"82":0.03568,"88":0.01019,"89":1.5291,"90":1.07547,"91":0.20898,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 52 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 83 84 85 86 87 92 3.5 3.6"},D:{"49":0.02039,"63":0.01529,"69":0.07136,"75":0.01019,"79":0.1631,"80":0.05097,"81":0.21917,"84":0.04587,"87":0.05097,"88":0.01019,"89":0.03568,"90":0.1631,"91":19.22079,"92":4.03173,"93":0.01019,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 70 71 72 73 74 76 77 78 83 85 86 94 95"},F:{"77":2.02351,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00977,"6.0-6.1":0.05536,"7.0-7.1":0.01302,"8.1-8.4":0.00651,"9.0-9.2":0,"9.3":1.61289,"10.0-10.2":0,"10.3":0.05861,"11.0-11.2":0.22251,"11.3-11.4":0,"12.0-12.1":0.00651,"12.2-12.4":0.32019,"13.0-13.1":0.02605,"13.2":0.00651,"13.3":0.04559,"13.4-13.7":0.8097,"14.0-14.4":1.11904,"14.5-14.7":5.48883},E:{"4":0,"11":0.0051,"13":0.06116,"14":0.24466,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.03568,"13.1":0.36698,"14.1":0.62183},B:{"13":0.01019,"14":0.03058,"16":0.0051,"18":0.03568,"80":0.02039,"84":0.03568,"86":0.71868,"88":0.01529,"89":0.06116,"90":0.02039,"91":12.65075,"92":1.76356,_:"12 15 17 79 81 83 85 87"},P:{"4":0.13681,"5.0-5.4":0.03026,"6.2-6.4":0.04058,"7.2-7.4":0.64785,"8.2":0.07177,"9.2":0.02196,"10.1":0.02196,"11.1-11.2":0.29647,"12.0":0.03157,"13.0":0.02196,"14.0":1.87766},I:{"0":0,"3":0,"4":0.00021,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00043,"4.4":0,"4.4.3-4.4.4":0.02388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10194,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":38.87955},S:{"2.5":0.04413},R:{_:"0"},M:{"0":0.04413},Q:{"10.4":0.01471},O:{"0":1.99552},H:{"0":0.17175}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js index d3b411bd837646..58e841ae3590ea 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js @@ -1 +1 @@ -module.exports={C:{"48":0.00603,"52":0.01207,"73":0.02413,"78":0.6938,"79":0.01207,"83":0.07843,"84":0.00603,"85":0.01207,"86":0.02413,"87":0.01207,"88":2.70882,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 74 75 76 77 80 81 82 89 90 91 3.5 3.6"},D:{"49":0.0543,"53":0.0543,"61":0.0181,"63":0.01207,"67":0.01207,"71":0.19306,"75":0.15083,"76":0.01207,"79":0.0362,"80":0.03017,"81":0.0181,"85":0.12669,"86":0.0362,"87":0.18702,"88":0.12066,"89":3.87319,"90":35.92652,"91":0.83255,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 62 64 65 66 68 69 70 72 73 74 77 78 83 84 92 93 94"},F:{"73":0.07843,"75":0.21116,"76":0.0543,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.32776,"10.0-10.2":0.03557,"10.3":0.24392,"11.0-11.2":0.14482,"11.3-11.4":0.19564,"12.0-12.1":0.08639,"12.2-12.4":0.33284,"13.0-13.1":0.04319,"13.2":0.20834,"13.3":0.36587,"13.4-13.7":1.75823,"14.0-14.4":18.88567,"14.5-14.6":1.88781},E:{"4":0,"11":0.01207,"12":0.03017,"13":0.13273,"14":4.67558,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.20512,"11.1":0.10256,"12.1":0.20512,"13.1":0.88685,"14.1":1.49618},B:{"14":0.0181,"18":0.08446,"85":0.01207,"88":0.0905,"89":0.0543,"90":4.40409,"91":0.27752,_:"12 13 15 16 17 79 80 81 83 84 86 87"},P:{"4":0.01055,"5.0-5.4":0.06167,"6.2-6.4":0.0925,"7.2-7.4":0.26724,"8.2":0.02014,"9.2":0.1161,"10.1":0.01028,"11.1-11.2":0.17473,"12.0":0.10278,"13.0":1.0449,"14.0":2.87082},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00123,"4.4":0,"4.4.3-4.4.4":0.01067},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.91702,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.19835},Q:{"10.4":0},O:{"0":0},H:{"0":0.01127},L:{"0":11.13668}}; +module.exports={C:{"48":0.01541,"61":0.01028,"78":0.38021,"84":0.00514,"85":0.00514,"86":0.00514,"88":0.20038,"89":2.06548,"90":0.90943,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 87 91 92 3.5 3.6"},D:{"49":0.05138,"63":0.01028,"65":0.00514,"67":0.01028,"71":0.35966,"75":0.05138,"76":0.01028,"78":0.00514,"79":0.05138,"80":0.06166,"81":0.03083,"83":0.02569,"85":0.11817,"87":0.07707,"88":0.01541,"89":0.06166,"90":0.56518,"91":25.53586,"92":5.20993,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 69 70 72 73 74 77 84 86 93 94 95"},F:{"75":0.04624,"76":0.17983,"77":0.25176,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02587,"9.0-9.2":0,"9.3":0.37083,"10.0-10.2":0.04887,"10.3":0.34495,"11.0-11.2":0.06324,"11.3-11.4":0.04024,"12.0-12.1":0.05749,"12.2-12.4":0.24434,"13.0-13.1":0.03737,"13.2":0.25584,"13.3":0.32771,"13.4-13.7":2.72227,"14.0-14.4":6.10858,"14.5-14.7":17.12414},E:{"4":0,"11":0.06679,"12":0.06679,"13":0.0411,"14":1.63388,"15":0.01541,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01028,"10.1":0.02055,"11.1":0.08221,"12.1":0.07193,"13.1":0.62684,"14.1":4.69613},B:{"12":0.02055,"14":0.01028,"15":0.01541,"18":0.01028,"86":0.01541,"87":0.01028,"88":0.01541,"89":0.02569,"90":0.01541,"91":3.60688,"92":1.16633,_:"13 16 17 79 80 81 83 84 85"},P:{"4":0.76804,"5.0-5.4":0.04129,"6.2-6.4":0.06193,"7.2-7.4":0.27871,_:"8.2","9.2":0.12387,"10.1":0.03097,"11.1-11.2":0.05189,"12.0":0.06227,"13.0":0.1972,"14.0":4.00625},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01279,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01152},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.21257,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":16.64887},S:{"2.5":0},R:{_:"0"},M:{"0":0.19448},Q:{"10.4":0},O:{"0":0},H:{"0":0.02762}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js index b337db1e82b1c0..45f2d0ad81c0b8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js @@ -1 +1 @@ -module.exports={C:{"11":0.02078,"12":0.00519,"38":0.00519,"45":0.02078,"48":0.05194,"50":0.00519,"52":0.15063,"54":0.00519,"55":0.00519,"56":0.03636,"59":0.02078,"60":0.03636,"61":0.00519,"62":0.01039,"63":0.01039,"65":0.01039,"66":0.01039,"68":0.07272,"69":0.00519,"70":0.01039,"71":0.00519,"72":0.01558,"74":0.00519,"75":0.01039,"76":0.00519,"77":0.01039,"78":0.54018,"79":0.02078,"80":0.02078,"81":0.09869,"82":0.04155,"83":0.02597,"84":0.05713,"85":0.04155,"86":0.06233,"87":0.12985,"88":5.9731,"89":0.02597,_:"2 3 4 5 6 7 8 9 10 13 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 46 47 49 51 53 57 58 64 67 73 90 91 3.5 3.6"},D:{"38":0.00519,"44":0.00519,"48":0.00519,"49":0.48824,"51":0.00519,"52":0.03116,"53":0.01039,"54":0.20776,"56":0.01039,"57":0.00519,"58":0.02078,"59":0.00519,"60":0.0831,"61":0.10907,"63":0.02078,"64":0.06233,"65":0.02078,"66":0.06752,"67":0.03116,"68":0.01039,"69":0.02078,"70":0.05713,"71":0.03116,"72":0.06233,"73":0.01039,"74":0.02597,"75":0.0831,"76":0.02597,"77":0.02078,"78":0.05194,"79":0.14024,"80":0.12466,"81":0.07272,"83":0.18179,"84":0.20776,"85":0.29606,"86":0.36358,"87":0.46746,"88":0.29086,"89":1.00244,"90":23.96512,"91":0.63886,"92":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 39 40 41 42 43 45 46 47 50 55 62 93 94"},F:{"36":0.00519,"68":0.00519,"69":0.00519,"70":0.00519,"71":0.01039,"72":0.00519,"73":0.11427,"74":0.00519,"75":0.49343,"76":0.44668,_:"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 10.5 10.6 11.1 11.5 11.6 12.1","9.5-9.6":0.00519,"10.0-10.1":0},G:{"8":0.01395,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00465,"6.0-6.1":0.0062,"7.0-7.1":0.02325,"8.1-8.4":0.031,"9.0-9.2":0.062,"9.3":0.36115,"10.0-10.2":0.0434,"10.3":0.2201,"11.0-11.2":0.0775,"11.3-11.4":0.09455,"12.0-12.1":0.0744,"12.2-12.4":0.27435,"13.0-13.1":0.0837,"13.2":0.03255,"13.3":0.21235,"13.4-13.7":0.67114,"14.0-14.4":10.71194,"14.5-14.6":1.74838},E:{"4":0,"11":0.01558,"12":0.03116,"13":0.16101,"14":3.03849,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00519,"9.1":0.01039,"10.1":0.05194,"11.1":0.16101,"12.1":0.21815,"13.1":0.75313,"14.1":1.07516},B:{"14":0.00519,"15":0.01039,"16":0.01558,"17":0.03116,"18":0.20257,"80":0.00519,"83":0.00519,"84":0.02078,"85":0.02078,"86":0.02597,"87":0.02597,"88":0.02597,"89":0.12466,"90":4.47723,"91":0.18179,_:"12 13 79 81"},P:{"4":0.09456,"5.0-5.4":0.02101,"6.2-6.4":0.0417,"7.2-7.4":0.03152,"8.2":0.01051,"9.2":0.06304,"10.1":0.04203,"11.1-11.2":0.1471,"12.0":0.11558,"13.0":0.49383,"14.0":2.92093},I:{"0":0,"3":0,"4":0.00159,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00318,"4.2-4.3":0.00529,"4.4":0,"4.4.3-4.4.4":0.05241},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02886,"8":0.01731,"9":0.02308,"10":0.01154,"11":0.75024,_:"7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.5766},Q:{"10.4":0.00961},O:{"0":0.74958},H:{"0":0.45036},L:{"0":28.94423}}; +module.exports={C:{"11":0.00493,"45":0.00985,"48":0.02956,"50":0.00985,"52":0.14781,"54":0.00985,"55":0.00493,"56":0.01971,"57":0.00985,"58":0.00493,"59":0.01971,"60":0.02956,"61":0.00985,"62":0.00985,"63":0.00985,"65":0.00493,"66":0.00985,"67":0.00493,"68":0.05912,"69":0.00493,"70":0.00493,"72":0.01478,"74":0.00985,"75":0.00985,"76":0.00493,"77":0.00985,"78":0.47792,"79":0.01971,"80":0.02464,"81":0.08376,"82":0.03942,"83":0.02464,"84":0.07391,"85":0.02464,"86":0.02956,"87":0.02956,"88":0.11825,"89":3.49324,"90":2.05456,"91":0.00985,_:"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 47 49 51 53 64 71 73 92 3.5 3.6"},D:{"38":0.01478,"41":0.00985,"47":0.00493,"48":0.00985,"49":0.54197,"50":0.00985,"51":0.00985,"52":0.03942,"54":0.24142,"55":0.00493,"56":0.01971,"57":0.01478,"58":0.00985,"59":0.00985,"60":0.09854,"61":0.0542,"63":0.02464,"64":0.05912,"65":0.01971,"66":0.0542,"67":0.02464,"68":0.00985,"69":0.01478,"70":0.04927,"71":0.02956,"72":0.04927,"73":0.01478,"74":0.02956,"75":0.09854,"76":0.03449,"77":0.01971,"78":0.04434,"79":0.13796,"80":0.13796,"81":0.07883,"83":0.12318,"84":0.18723,"85":0.26113,"86":0.25128,"87":0.51734,"88":0.19708,"89":0.26113,"90":0.4927,"91":19.7622,"92":3.77408,"93":0.00985,_:"4 5 6 7 8 9 10 11 12 13 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 53 62 94 95"},F:{"36":0.00985,"68":0.00985,"69":0.00493,"70":0.00985,"71":0.01971,"72":0.00493,"75":0.01478,"76":0.24142,"77":0.76369,_:"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 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01431,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00477,"6.0-6.1":0.0159,"7.0-7.1":0.01908,"8.1-8.4":0.04453,"9.0-9.2":0.03658,"9.3":0.34987,"10.0-10.2":0.03817,"10.3":0.22264,"11.0-11.2":0.08111,"11.3-11.4":0.06997,"12.0-12.1":0.07156,"12.2-12.4":0.22901,"13.0-13.1":0.07793,"13.2":0.02704,"13.3":0.1972,"13.4-13.7":0.59637,"14.0-14.4":2.50952,"14.5-14.7":10.55972},E:{"4":0,"8":0.00493,"11":0.01478,"12":0.02956,"13":0.15766,"14":0.96569,"15":0.01971,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00985,"10.1":0.03942,"11.1":0.1281,"12.1":0.1823,"13.1":0.57646,"14.1":2.65565},B:{"12":0.00985,"13":0.00493,"14":0.00985,"15":0.00985,"16":0.01478,"17":0.02956,"18":0.11332,"80":0.00493,"81":0.00493,"83":0.00985,"84":0.02464,"85":0.02956,"86":0.02956,"87":0.01971,"88":0.01971,"89":0.02956,"90":0.03449,"91":3.61149,"92":0.89671,_:"79"},P:{"4":0.07336,"5.0-5.4":0.03144,"6.2-6.4":0.0819,"7.2-7.4":0.04192,"8.2":0.03071,"9.2":0.0524,"10.1":0.04192,"11.1-11.2":0.15721,"12.0":0.1048,"13.0":0.28297,"14.0":3.16506},I:{"0":0,"3":0,"4":0.0029,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0029,"4.2-4.3":0.00522,"4.4":0,"4.4.3-4.4.4":0.04985},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02771,"8":0.02771,"9":0.03326,"10":0.01663,"11":0.64852,_:"7 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":31.73039},S:{"2.5":0},R:{_:"0"},M:{"0":0.65429},Q:{"10.4":0.01014},O:{"0":0.77094},H:{"0":0.44657}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js index dc2b30a7740c7b..00dfc7539fec0c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js @@ -1 +1 @@ -module.exports={C:{"29":0.00749,"34":0.00374,"47":0.02994,"48":0.01123,"51":0.00374,"52":0.0524,"54":0.1048,"66":0.00374,"72":0.02246,"75":0.00374,"78":0.11978,"84":0.00749,"85":0.00749,"86":0.01872,"87":0.01872,"88":3.24892,"89":0.00374,_:"2 3 4 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 49 50 53 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 76 77 79 80 81 82 83 90 91 3.5 3.6"},D:{"11":0.01123,"22":0.06363,"30":0.03369,"34":0.00749,"38":0.00749,"46":0.02994,"49":0.07486,"50":0.00374,"53":0.05989,"55":0.00374,"58":0.00749,"62":0.00374,"63":0.0262,"65":0.01123,"69":0.98067,"74":0.02994,"75":0.01497,"76":0.03369,"77":0.00749,"78":0.04117,"79":0.22832,"80":0.0262,"81":0.06737,"83":0.05989,"84":0.01123,"85":0.08983,"86":0.03369,"87":0.33313,"88":0.4529,"89":0.52028,"90":16.33071,"91":0.45665,"92":0.00749,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 45 47 48 51 52 54 56 57 59 60 61 64 66 67 68 70 71 72 73 93 94"},F:{"68":0.00749,"72":0.00749,"73":0.0262,"74":0.01123,"75":0.84218,"76":2.13725,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00306,"5.0-5.1":0.0441,"6.0-6.1":0.00061,"7.0-7.1":0.06921,"8.1-8.4":0,"9.0-9.2":0.00306,"9.3":0.02756,"10.0-10.2":0.00184,"10.3":0.03369,"11.0-11.2":0.14148,"11.3-11.4":0.0294,"12.0-12.1":0.02634,"12.2-12.4":0.18925,"13.0-13.1":0.74353,"13.2":0.00306,"13.3":0.0343,"13.4-13.7":0.15189,"14.0-14.4":2.62684,"14.5-14.6":1.07119},E:{"4":0,"10":0.00749,"13":0.25078,"14":0.34436,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00374,"10.1":0.00749,"11.1":0.05615,"12.1":0.0262,"13.1":0.0524,"14.1":0.23581},B:{"12":0.02246,"13":0.02246,"14":0.00749,"15":0.01497,"16":0.01123,"17":0.01497,"18":0.11229,"84":0.01497,"85":0.01123,"87":0.00749,"88":0.00749,"89":0.78229,"90":2.96446,"91":0.13849,_:"79 80 81 83 86"},P:{"4":0.48683,"5.0-5.4":0.02028,"6.2-6.4":0.03043,"7.2-7.4":0.43612,"8.2":0.0105,"9.2":0.03043,"10.1":0.04057,"11.1-11.2":0.16228,"12.0":0.25356,"13.0":1.18665,"14.0":2.05888},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00548,"4.2-4.3":0.02924,"4.4":0,"4.4.3-4.4.4":0.54101},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.29944,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.03129},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.01877},R:{_:"0"},M:{"0":0.60077},Q:{"10.4":0.36296},O:{"0":0.73844},H:{"0":2.39357},L:{"0":52.4608}}; +module.exports={C:{"25":0.00336,"39":0.00336,"47":0.00672,"48":0.01007,"49":0.00336,"52":0.09402,"54":0.11417,"56":0.00672,"60":0.01343,"68":0.00672,"72":0.01007,"77":0.02351,"78":0.59772,"84":0.00672,"86":0.00336,"87":0.00336,"88":0.02351,"89":1.32641,"90":0.55743,"91":0.00336,_:"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 35 36 37 38 40 41 42 43 44 45 46 50 51 53 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 79 80 81 82 83 85 92 3.5 3.6"},D:{"18":0.02015,"22":0.00336,"27":0.00336,"34":0.00672,"36":0.00672,"38":0.00672,"42":0.00336,"47":0.00336,"49":0.08731,"50":0.00672,"52":0.00336,"53":0.00672,"55":0.00336,"56":0.00336,"58":0.01343,"63":0.03022,"65":0.01679,"67":0.01343,"69":0.44661,"70":0.01343,"71":0.01007,"73":0.12425,"74":0.01343,"75":0.02351,"76":0.08059,"77":0.01007,"78":0.00672,"79":0.65817,"80":0.01679,"81":0.01679,"83":0.01343,"84":0.02015,"85":0.01343,"86":0.05037,"87":0.2317,"88":0.08395,"89":0.09067,"90":0.25857,"91":12.37423,"92":3.4856,"93":0.00672,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 23 24 25 26 28 29 30 31 32 33 35 37 39 40 41 43 44 45 46 48 51 54 57 59 60 61 62 64 66 68 72 94 95"},F:{"28":0.08059,"40":0.00672,"64":0.00672,"70":0.00336,"75":0.01007,"76":0.03694,"77":1.42715,_:"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 65 66 67 68 69 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00317,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00951,"6.0-6.1":0.00317,"7.0-7.1":0.01427,"8.1-8.4":0.00714,"9.0-9.2":0,"9.3":0.14906,"10.0-10.2":0.00317,"10.3":0.07611,"11.0-11.2":0.19187,"11.3-11.4":0.05391,"12.0-12.1":0.01348,"12.2-12.4":0.16095,"13.0-13.1":0.17918,"13.2":0.00079,"13.3":0.05709,"13.4-13.7":0.13003,"14.0-14.4":0.97838,"14.5-14.7":4.9561},E:{"4":0,"10":0.01007,"11":0.01007,"13":0.49698,"14":0.21827,_:"0 5 6 7 8 9 12 15 3.1 3.2 6.1 9.1","5.1":0.00672,"7.1":0.01007,"10.1":0.01007,"11.1":0.01343,"12.1":0.03694,"13.1":0.05709,"14.1":0.24178},B:{"12":0.01679,"13":0.01679,"14":0.01343,"15":0.01007,"16":0.01679,"17":0.01679,"18":0.07723,"83":0.00336,"84":0.02015,"85":0.00336,"87":0.00672,"88":0.00672,"89":0.04365,"90":0.04701,"91":2.57559,"92":0.6078,_:"79 80 81 86"},P:{"4":0.54839,"5.0-5.4":0.02031,"6.2-6.4":0.04062,"7.2-7.4":0.45699,"8.2":0.03071,"9.2":0.08124,"10.1":0.05078,"11.1-11.2":0.19295,"12.0":0.14217,"13.0":1.07647,"14.0":2.65054},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00133,"4.2-4.3":0.00417,"4.4":0,"4.4.3-4.4.4":0.04763},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.69846,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.2059},N:{_:"10 11"},L:{"0":54.92405},S:{"2.5":0.02657},R:{_:"0"},M:{"0":0.19926},Q:{"10.4":0.35867},O:{"0":0.94316},H:{"0":1.89904}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js index 909136c7e525c2..28f2e7553cd0db 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js @@ -1 +1 @@ -module.exports={C:{"43":0.00474,"48":0.00948,"52":0.03317,"56":0.00474,"59":0.01421,"68":0.00474,"72":0.00474,"78":0.22269,"81":0.00948,"82":0.0379,"83":0.00474,"84":0.02369,"85":0.01421,"86":0.02369,"87":0.05212,"88":1.99944,"89":0.01421,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 57 58 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 90 91 3.5 3.6"},D:{"38":0.00948,"40":0.21321,"49":0.21795,"53":0.01421,"58":0.00474,"59":0.00474,"60":0.02843,"61":0.06159,"63":0.01421,"64":0.01895,"65":0.02369,"66":0.06159,"67":0.01895,"68":0.00948,"69":0.06633,"70":0.02843,"71":0.05212,"72":0.05212,"73":0.00948,"74":0.0379,"75":0.0379,"76":0.08055,"77":0.02843,"78":0.03317,"79":0.08055,"80":0.08055,"81":0.04738,"83":0.0995,"84":0.06633,"85":0.06633,"86":0.10424,"87":0.46432,"88":0.29376,"89":1.19871,"90":22.73292,"91":0.45485,"92":0.00948,_:"4 5 6 7 8 9 10 11 12 13 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 43 44 45 46 47 48 50 51 52 54 55 56 57 62 93 94"},F:{"36":0.00948,"42":0.00474,"43":0.00474,"56":0.00474,"71":0.00474,"73":0.09002,"74":0.00948,"75":0.3364,"76":0.2748,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00948},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.008,"6.0-6.1":0.01067,"7.0-7.1":0.02134,"8.1-8.4":0.02667,"9.0-9.2":0.016,"9.3":0.42145,"10.0-10.2":0.02667,"10.3":0.41611,"11.0-11.2":0.06402,"11.3-11.4":0.10403,"12.0-12.1":0.07469,"12.2-12.4":0.30141,"13.0-13.1":0.05868,"13.2":0.02134,"13.3":0.19472,"13.4-13.7":0.74153,"14.0-14.4":19.69598,"14.5-14.6":2.87011},E:{"4":0,"11":0.00948,"12":0.02369,"13":0.16583,"14":5.40606,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00948,"10.1":0.03317,"11.1":0.11845,"12.1":0.17057,"13.1":0.78651,"14.1":1.5209},B:{"14":0.01421,"15":0.00948,"16":0.01421,"17":0.03317,"18":0.24164,"80":0.00948,"84":0.00948,"85":0.01421,"86":0.00948,"87":0.01421,"88":0.01895,"89":0.14214,"90":5.95093,"91":0.09002,_:"12 13 79 81 83"},P:{"4":0.03266,"5.0-5.4":0.01052,"6.2-6.4":0.09153,"7.2-7.4":0.03085,"8.2":0.02034,"9.2":0.02178,"10.1":0.01089,"11.1-11.2":0.13065,"12.0":0.0871,"13.0":0.3593,"14.0":4.0829},I:{"0":0,"3":0,"4":0.01358,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00145,"4.2-4.3":0.00412,"4.4":0,"4.4.3-4.4.4":0.03346},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01027,"11":0.66252,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.35782},Q:{"10.4":0.01052},O:{"0":0.21048},H:{"0":0.21421},L:{"0":22.88442}}; +module.exports={C:{"43":0.00468,"48":0.00935,"52":0.0374,"56":0.00468,"59":0.0187,"68":0.00468,"78":0.11688,"79":0.00468,"81":0.00468,"82":0.0374,"84":0.02805,"85":0.00468,"86":0.00468,"87":0.00935,"88":0.0561,"89":1.64093,"90":0.8415,"91":0.00468,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 80 83 92 3.5 3.6"},D:{"36":0.00468,"38":0.01403,"40":0.2244,"43":0.00935,"49":0.1683,"53":0.00468,"56":0.03273,"58":0.00468,"60":0.0187,"61":0.07013,"63":0.01403,"64":0.0187,"65":0.0187,"66":0.07013,"67":0.0187,"68":0.00468,"69":0.07013,"70":0.02805,"71":0.04208,"72":0.03273,"73":0.00935,"74":0.02338,"75":0.0374,"76":0.0561,"77":0.02338,"78":0.03273,"79":0.09818,"80":0.07948,"81":0.0374,"83":0.06078,"84":0.04675,"85":0.0561,"86":0.07013,"87":0.36465,"88":0.12623,"89":0.56568,"90":0.58438,"91":19.32645,"92":3.17433,"93":0.01403,_:"4 5 6 7 8 9 10 11 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 54 55 57 59 62 94 95"},F:{"40":0.00468,"46":0.00468,"74":0.00468,"75":0.00468,"76":0.20103,"77":0.52828,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00468},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00802,"6.0-6.1":0.0107,"7.0-7.1":0.0214,"8.1-8.4":0.02407,"9.0-9.2":0.01605,"9.3":0.39585,"10.0-10.2":0.0214,"10.3":0.38248,"11.0-11.2":0.05349,"11.3-11.4":0.09094,"12.0-12.1":0.06152,"12.2-12.4":0.22467,"13.0-13.1":0.04547,"13.2":0.01872,"13.3":0.15781,"13.4-13.7":0.66064,"14.0-14.4":3.39415,"14.5-14.7":19.57857},E:{"4":0,"8":0.00468,"11":0.00935,"12":0.01403,"13":0.14025,"14":1.4025,"15":0.02805,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00468,"10.1":0.02805,"11.1":0.09818,"12.1":0.14025,"13.1":0.62178,"14.1":5.28743},B:{"14":0.00468,"15":0.00468,"16":0.00935,"17":0.02805,"18":0.2244,"84":0.00935,"85":0.00935,"86":0.00935,"87":0.00935,"88":0.00935,"89":0.02805,"90":0.04208,"91":5.2547,"92":1.1033,_:"12 13 79 80 81 83"},P:{"4":0.07569,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2","9.2":0.01081,"10.1":0.01081,"11.1-11.2":0.10813,"12.0":0.06488,"13.0":0.20544,"14.0":4.13038},I:{"0":0,"3":0,"4":0.01564,"2.1":0,"2.2":0.00057,"2.3":0,"4.1":0.00171,"4.2-4.3":0.00398,"4.4":0,"4.4.3-4.4.4":0.03668},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0052,"11":0.5932,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":24.02308},S:{"2.5":0},R:{_:"0"},M:{"0":0.36743},Q:{"10.4":0.01065},O:{"0":0.19703},H:{"0":0.22182}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js index e9bc214858093b..2a3fe48e5b90e3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js @@ -1 +1 @@ -module.exports={C:{"17":0.00885,"47":0.00885,"60":0.00885,"78":0.11948,"86":0.12833,"87":0.01328,"88":1.99568,"89":0.00885,_:"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 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 90 91 3.5 3.6"},D:{"25":0.01328,"34":0.01328,"49":0.01328,"50":0.07523,"53":0.0531,"70":0.00885,"72":0.00443,"73":0.11505,"74":0.27878,"75":0.00885,"76":0.07523,"77":0.0177,"79":0.0177,"81":0.09735,"83":0.02213,"84":0.01328,"85":0.0177,"86":0.02213,"87":0.07965,"88":0.2478,"89":1.0089,"90":23.32418,"91":0.59295,"92":0.29648,_:"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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 78 80 93 94"},F:{"73":0.0177,"75":0.2832,"76":1.07528,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02869,"6.0-6.1":0,"7.0-7.1":0.03187,"8.1-8.4":0.01275,"9.0-9.2":0.02231,"9.3":0.15061,"10.0-10.2":0.00319,"10.3":0.15379,"11.0-11.2":0.01275,"11.3-11.4":0.01275,"12.0-12.1":0,"12.2-12.4":0.08208,"13.0-13.1":0.00478,"13.2":0.00239,"13.3":0.02709,"13.4-13.7":0.15778,"14.0-14.4":5.78204,"14.5-14.6":0.82396},E:{"4":0,"10":0.16373,"12":0.00885,"13":0.03983,"14":1.84965,_:"0 5 6 7 8 9 11 3.1 3.2 6.1 7.1 9.1","5.1":0.0885,"10.1":0.00885,"11.1":0.0354,"12.1":0.00443,"13.1":0.50888,"14.1":0.4248},B:{"13":0.01328,"16":0.00885,"17":0.01328,"18":0.04425,"83":0.00885,"84":0.0177,"85":0.00885,"86":0.00885,"87":0.1062,"88":0.0708,"89":0.42923,"90":7.40745,"91":0.3009,_:"12 14 15 79 80 81"},P:{"4":0.03247,"5.0-5.4":0.0609,"6.2-6.4":0.0812,"7.2-7.4":1.22313,"8.2":0.0105,"9.2":0.03247,"10.1":0.03247,"11.1-11.2":0.40049,"12.0":0.15154,"13.0":0.43297,"14.0":2.69522},I:{"0":0,"3":0,"4":0.00283,"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.02945},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.04568,"10":0.04568,"11":0.26265,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.05575},Q:{"10.4":0},O:{"0":0.05575},H:{"0":0.22696},L:{"0":44.74175}}; +module.exports={C:{"47":0.00918,"60":0.01377,"75":0.01377,"78":0.0918,"83":0.00459,"86":0.11016,"87":0.00459,"88":0.07803,"89":0.67014,"90":0.66555,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 84 85 91 92 3.5 3.6"},D:{"41":0.00459,"49":0.00918,"56":0.00918,"63":0.00918,"69":0.00459,"70":0.01836,"71":0.00918,"72":0.00459,"73":0.03213,"74":0.84456,"75":0.01836,"76":0.03672,"77":0.01377,"79":0.02754,"80":0.02295,"81":0.14229,"84":0.01836,"85":0.00918,"86":0.11475,"87":0.1377,"88":0.0459,"89":0.15606,"90":0.39474,"91":21.82086,"92":4.96179,"93":0.16524,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 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 64 65 66 67 68 78 83 94 95"},F:{"72":0.01836,"76":0.12393,"77":0.56457,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04063,"6.0-6.1":0.00198,"7.0-7.1":0.22295,"8.1-8.4":0,"9.0-9.2":0.04261,"9.3":0.05648,"10.0-10.2":0,"10.3":0.39239,"11.0-11.2":0.05549,"11.3-11.4":0.00297,"12.0-12.1":0.00892,"12.2-12.4":0.03072,"13.0-13.1":0.00198,"13.2":0.00198,"13.3":0.09413,"13.4-13.7":0.27249,"14.0-14.4":1.91142,"14.5-14.7":6.17519},E:{"4":0,"10":0.14229,"12":0.00459,"13":0.01377,"14":0.44523,"15":0.02754,_:"0 5 6 7 8 9 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01836,"11.1":0.03672,"12.1":0.02295,"13.1":0.16065,"14.1":1.90485},B:{"14":0.01377,"15":0.00918,"16":0.00459,"17":0.00918,"18":0.35343,"84":0.03213,"85":0.00918,"88":0.01836,"89":0.02754,"90":0.02295,"91":5.65029,"92":1.67994,_:"12 13 79 80 81 83 86 87"},P:{"4":0.09476,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.3705,"8.2":0.03071,"9.2":0.04491,"10.1":0.03156,"11.1-11.2":0.15718,"12.0":0.21332,"13.0":0.76345,"14.0":3.0987},I:{"0":0,"3":0,"4":0.00055,"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.02054},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00981,"11":0.98622,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01082},N:{"11":0.01472,_:"10"},L:{"0":42.22008},S:{"2.5":0.00541},R:{_:"0"},M:{"0":0.05411},Q:{"10.4":0.01623},O:{"0":0.09199},H:{"0":0.09221}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js index 5aaae2cb777f2b..50cbc7c4767f67 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js @@ -1 +1 @@ -module.exports={C:{"34":0.00884,"52":0.01326,"65":0.00442,"78":0.01768,"81":0.01768,"84":0.00884,"85":0.00442,"86":0.00442,"87":0.01326,"88":1.38757,"89":0.04419,_:"2 3 4 5 6 7 8 9 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 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 90 91 3.5 3.6"},D:{"38":0.00884,"39":0.01326,"41":0.00884,"47":0.01326,"49":0.29165,"50":0.00884,"53":0.02651,"56":0.01768,"59":0.02651,"61":0.00442,"62":0.01326,"63":0.01326,"64":0.00884,"65":0.01326,"66":0.00884,"67":0.00884,"68":0.03535,"69":0.00442,"70":0.01326,"71":0.03093,"72":0.01768,"73":0.00884,"74":0.01326,"75":0.01768,"76":0.0221,"77":0.01326,"78":0.01326,"79":0.14583,"80":0.05745,"81":0.03977,"83":0.05303,"84":0.05745,"85":0.05745,"86":0.17234,"87":0.34468,"88":0.2563,"89":0.65401,"90":28.35672,"91":1.11801,"92":0.06187,_:"4 5 6 7 8 9 10 11 12 13 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 42 43 44 45 46 48 51 52 54 55 57 58 60 93 94"},F:{"28":0.00442,"36":0.00884,"40":0.00442,"45":0.00442,"46":0.05745,"48":0.0221,"56":0.00442,"57":0.00884,"60":0.0221,"67":0.01326,"72":0.00884,"73":0.19444,"74":0.02651,"75":1.59526,"76":2.46138,_:"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 47 49 50 51 52 53 54 55 58 62 63 64 65 66 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.05882,"6.0-6.1":0.00735,"7.0-7.1":0.17794,"8.1-8.4":0.01912,"9.0-9.2":0.00147,"9.3":0.20736,"10.0-10.2":0.02794,"10.3":0.17353,"11.0-11.2":0.10588,"11.3-11.4":0.09412,"12.0-12.1":0.06618,"12.2-12.4":0.45736,"13.0-13.1":0.06324,"13.2":0.02206,"13.3":0.24706,"13.4-13.7":0.60589,"14.0-14.4":9.30892,"14.5-14.6":1.86178},E:{"4":0,"13":0.02651,"14":0.54796,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.05303,"9.1":0.03535,"11.1":0.01326,"12.1":0.04419,"13.1":0.08838,"14.1":0.17234},B:{"12":0.00884,"13":0.07512,"14":0.12815,"16":0.09722,"17":0.00884,"18":0.26514,"84":0.01768,"85":0.01768,"86":0.01768,"87":0.01326,"88":0.01326,"89":0.04419,"90":2.07251,"91":0.14141,_:"15 79 80 81 83"},P:{"4":0.32246,"5.0-5.4":0.02101,"6.2-6.4":0.0417,"7.2-7.4":0.07281,"8.2":0.01051,"9.2":0.04161,"10.1":0.0208,"11.1-11.2":0.15603,"12.0":0.10402,"13.0":0.32246,"14.0":1.40427},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.01498,"4.4":0,"4.4.3-4.4.4":0.05477},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00884,"11":0.1635,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.10604},Q:{"10.4":0},O:{"0":0.34602},H:{"0":0.42798},L:{"0":39.90203}}; +module.exports={C:{"52":0.00924,"65":0.00462,"72":0.00462,"78":0.01386,"81":0.00462,"84":0.01386,"85":0.00924,"87":0.00462,"88":0.01386,"89":0.76675,"90":0.49885,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 73 74 75 76 77 79 80 82 83 86 91 92 3.5 3.6"},D:{"34":0.00924,"38":0.00924,"39":0.00924,"41":0.00924,"47":0.01848,"49":0.291,"50":0.00924,"53":0.00924,"56":0.01386,"59":0.01848,"61":0.00924,"62":0.01386,"63":0.01848,"64":0.00924,"65":0.03233,"66":0.0231,"67":0.01386,"68":0.03695,"69":0.01386,"70":0.00924,"71":0.0231,"72":0.01848,"73":0.01386,"74":0.0231,"75":0.02771,"76":0.03233,"77":0.01386,"78":0.0231,"79":0.26328,"80":0.04619,"81":0.03233,"83":0.04619,"84":0.04157,"85":0.04157,"86":0.12471,"87":0.291,"88":0.097,"89":0.18476,"90":0.60047,"91":24.48994,"92":6.11094,"93":0.03233,_:"4 5 6 7 8 9 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 48 51 52 54 55 57 58 60 94 95"},F:{"28":0.01386,"36":0.02771,"40":0.0231,"44":0.00924,"45":0.01386,"46":0.01386,"48":0.01848,"60":0.01848,"67":0.00924,"69":0.00462,"72":0.01386,"73":0.00462,"74":0.00462,"75":0.00924,"76":0.43881,"77":3.72753,_:"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 47 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 68 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.05554,"6.0-6.1":0.00439,"7.0-7.1":0.19879,"8.1-8.4":0.01462,"9.0-9.2":0.00439,"9.3":0.29087,"10.0-10.2":0.01754,"10.3":0.21487,"11.0-11.2":0.08185,"11.3-11.4":0.07162,"12.0-12.1":0.05701,"12.2-12.4":0.30257,"13.0-13.1":0.05262,"13.2":0.02193,"13.3":0.1754,"13.4-13.7":0.51158,"14.0-14.4":2.92919,"14.5-14.7":8.48792},E:{"4":0,"13":0.01386,"14":0.25866,"15":0.00924,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.01848,"9.1":0.04157,"10.1":0.00462,"11.1":0.01386,"12.1":0.04619,"13.1":0.09238,"14.1":0.58661},B:{"12":0.0231,"13":0.06467,"14":0.11548,"15":0.00924,"16":0.08776,"17":0.01386,"18":0.15243,"84":0.00924,"86":0.00924,"87":0.00924,"88":0.00924,"89":0.0231,"90":0.04157,"91":1.85222,"92":0.48961,_:"79 80 81 83 85"},P:{"4":0.32353,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.10436,"8.2":0.03071,"9.2":0.03131,"10.1":0.02087,"11.1-11.2":0.16698,"12.0":0.07305,"13.0":0.19829,"14.0":1.48197},I:{"0":0,"3":0,"4":0.00066,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0033,"4.2-4.3":0.01779,"4.4":0,"4.4.3-4.4.4":0.07513},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16628,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":39.06032},S:{"2.5":0},R:{_:"0"},M:{"0":0.08073},Q:{"10.4":0},O:{"0":0.08073},H:{"0":0.27515}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js index 93c010c946b46e..8a60c000689b89 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js @@ -1 +1 @@ -module.exports={C:{"49":0.03354,"51":0.00479,"52":0.00958,"60":0.03354,"68":0.00958,"72":0.02875,"74":0.00958,"78":0.20601,"79":0.00958,"81":0.00958,"84":0.01916,"85":0.08624,"86":0.03833,"87":0.03833,"88":6.26184,"89":0.06707,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 58 59 61 62 63 64 65 66 67 69 70 71 73 75 76 77 80 82 83 90 91 3.5 3.6"},D:{"47":0.00479,"49":0.36891,"51":0.00479,"57":0.29704,"63":0.14852,"67":0.01916,"69":0.05749,"70":0.01437,"76":0.11978,"78":0.07187,"80":0.00958,"81":0.00958,"83":0.01916,"84":0.02875,"85":0.01437,"86":0.02875,"87":0.10061,"88":2.72608,"89":0.64679,"90":17.95188,"91":0.44556,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 58 59 60 61 62 64 65 66 68 71 72 73 74 75 77 79 92 93 94"},F:{"40":0.01437,"73":0.04791,"75":0.50306,"76":0.37849,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00751,"7.0-7.1":0.00644,"8.1-8.4":0,"9.0-9.2":0.00215,"9.3":0.18458,"10.0-10.2":0.00322,"10.3":0.91538,"11.0-11.2":0.26614,"11.3-11.4":0.02468,"12.0-12.1":0.07512,"12.2-12.4":0.12878,"13.0-13.1":0.11375,"13.2":0.00429,"13.3":0.19424,"13.4-13.7":0.35092,"14.0-14.4":6.81011,"14.5-14.6":1.36395},E:{"4":0,"12":0.00479,"13":0.09103,"14":2.48174,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00958,"10.1":0.04791,"11.1":0.1054,"12.1":0.29704,"13.1":0.321,"14.1":1.80621},B:{"13":0.00479,"14":0.00958,"15":0.00479,"16":0.01916,"17":0.01437,"18":0.11019,"80":0.00958,"84":0.01437,"86":0.01916,"87":0.00958,"88":0.01916,"89":0.09103,"90":6.9182,"91":0.2683,_:"12 79 81 83 85"},P:{"4":0.13653,"5.0-5.4":0.06167,"6.2-6.4":0.07158,"7.2-7.4":0.15753,"8.2":0.0105,"9.2":0.0105,"10.1":0.04201,"11.1-11.2":0.22054,"12.0":0.07351,"13.0":0.5041,"14.0":2.84605},I:{"0":0,"3":0,"4":0.00039,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00016,"4.2-4.3":0.00071,"4.4":0,"4.4.3-4.4.4":0.00916},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46952,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.69814},Q:{"10.4":0.01042},O:{"0":0.07815},H:{"0":0.05919},L:{"0":39.63864}}; +module.exports={C:{"35":0.00872,"49":0.02617,"52":0.02617,"60":0.00436,"71":0.00436,"72":0.00436,"77":0.00436,"78":0.12647,"82":0.02181,"83":0.02181,"84":0.00872,"85":0.01308,"86":0.00872,"88":0.04361,"89":2.28953,"90":1.43913,_:"2 3 4 5 6 7 8 9 10 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 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 73 74 75 76 79 80 81 87 91 92 3.5 3.6"},D:{"45":0.00436,"49":0.38377,"57":0.19625,"58":0.00436,"63":0.1788,"65":0.00872,"67":0.00872,"69":0.00872,"78":0.01744,"79":0.01308,"81":0.00872,"83":0.01744,"86":0.02617,"87":0.03053,"88":3.43211,"89":0.3576,"90":0.14827,"91":15.1632,"92":3.23586,"93":0.05669,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 50 51 52 53 54 55 56 59 60 61 62 64 66 68 70 71 72 73 74 75 76 77 80 84 85 94 95"},F:{"76":0.0785,"77":1.77929,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00731,"7.0-7.1":0,"8.1-8.4":0.00585,"9.0-9.2":0,"9.3":0.18266,"10.0-10.2":0.00292,"10.3":0.74232,"11.0-11.2":0.01754,"11.3-11.4":0.02484,"12.0-12.1":0.11106,"12.2-12.4":0.07306,"13.0-13.1":0.0906,"13.2":0.01023,"13.3":0.05261,"13.4-13.7":0.49829,"14.0-14.4":2.20357,"14.5-14.7":10.21564},E:{"4":0,"12":0.02617,"13":0.00872,"14":0.68904,"15":0.05233,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00872,"10.1":0.06542,"11.1":0.02617,"12.1":0.22241,"13.1":0.32271,"14.1":2.1805},B:{"12":0.03925,"16":0.00436,"17":0.03053,"18":0.06542,"80":0.00872,"86":0.00436,"89":0.01308,"90":0.04361,"91":5.37275,"92":1.12078,_:"13 14 15 79 81 83 84 85 87 88"},P:{"4":0.06355,"5.0-5.4":0.02118,"6.2-6.4":0.0819,"7.2-7.4":0.06305,"8.2":0.03071,"9.2":0.01051,"10.1":0.01051,"11.1-11.2":0.18916,"12.0":0.04204,"13.0":0.24171,"14.0":2.88999},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00039,"4.2-4.3":0.00354,"4.4":0,"4.4.3-4.4.4":0.01298},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.69776,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":41.0209},S:{"2.5":0.02256},R:{_:"0"},M:{"0":0.25939},Q:{"10.4":0},O:{"0":0.0282},H:{"0":0.08008}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js index f2b692fb9e15dc..0466f7debc4a74 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js @@ -1 +1 @@ -module.exports={C:{"45":0.02178,"50":0.00545,"52":0.0599,"73":0.07079,"78":0.0599,"83":0.01634,"86":0.02178,"87":0.02178,"88":1.87853,"90":0.02178,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 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 84 85 89 91 3.5 3.6"},D:{"49":0.07079,"63":0.00545,"65":0.02723,"67":0.01634,"69":0.01634,"74":0.02178,"75":0.01089,"76":0.27225,"77":0.05445,"79":0.02178,"81":0.01634,"84":0.01634,"85":0.06534,"86":0.01089,"87":0.07623,"88":0.51728,"89":1.13256,"90":20.81079,"91":0.69696,"92":0.00545,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 78 80 83 93 94"},F:{"73":0.01089,"75":0.07623,"76":0.10346,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.03925,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03084,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.17383,"9.0-9.2":0.0028,"9.3":1.16914,"10.0-10.2":0.00561,"10.3":0.93363,"11.0-11.2":0.06448,"11.3-11.4":0.03925,"12.0-12.1":0.11495,"12.2-12.4":0.35046,"13.0-13.1":0.05327,"13.2":0.00561,"13.3":0.21869,"13.4-13.7":0.85513,"14.0-14.4":18.56324,"14.5-14.6":2.9607},E:{"4":0,"11":0.2178,"12":0.07079,"13":0.03812,"14":11.8701,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.07079,"10.1":0.0599,"11.1":0.41927,"12.1":0.20691,"13.1":0.97466,"14.1":3.3269},B:{"17":0.06534,"18":0.13068,"80":0.01634,"81":0.01634,"85":0.02178,"87":0.01634,"88":0.01634,"89":0.26681,"90":7.16562,"91":0.31037,_:"12 13 14 15 16 79 83 84 86"},P:{"4":0.01186,"5.0-5.4":0.05166,"6.2-6.4":0.0812,"7.2-7.4":0.031,"8.2":0.0105,"9.2":0.06199,"10.1":0.08266,"11.1-11.2":0.02373,"12.0":0.07233,"13.0":0.18983,"14.0":4.3068},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.94931,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.27786},Q:{"10.4":0},O:{"0":0},H:{"0":0.02156},L:{"0":15.52621}}; +module.exports={C:{"49":0.00995,"52":0.02986,"57":0.00498,"78":0.02986,"88":0.00498,"89":1.21439,"90":0.83614,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 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 91 92 3.5 3.6"},D:{"49":0.21899,"65":0.00995,"67":0.01991,"74":0.00995,"75":0.00498,"76":0.03484,"77":0.01991,"79":0.02986,"81":0.01991,"84":0.00498,"85":0.02986,"86":0.01493,"87":0.08959,"88":0.05972,"89":0.1294,"90":0.60719,"91":15.64271,"92":3.42915,"93":0.01991,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 78 80 83 94 95"},F:{"76":0.05475,"77":0.27871,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.06022,"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.26622,"9.0-9.2":0,"9.3":1.18849,"10.0-10.2":0.01268,"10.3":0.88424,"11.0-11.2":0.08874,"11.3-11.4":0.06656,"12.0-12.1":0.0824,"12.2-12.4":0.23136,"13.0-13.1":0.03169,"13.2":0.00951,"13.3":0.12677,"13.4-13.7":0.55463,"14.0-14.4":3.54012,"14.5-14.7":22.2359},E:{"4":0,"11":0.20406,"12":0.00995,"13":0.18415,"14":2.11523,"15":0.00995,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00498,"10.1":0.05475,"11.1":0.47779,"12.1":0.12443,"13.1":0.97052,"14.1":12.62665},B:{"15":0.01991,"17":0.02986,"18":0.11945,"81":0.01493,"85":0.00498,"89":0.02986,"90":0.04479,"91":5.39009,"92":1.32886,_:"12 13 14 16 79 80 83 84 86 87 88"},P:{"4":0.0234,"5.0-5.4":0.02093,"6.2-6.4":0.03079,"7.2-7.4":0.1948,"8.2":0.01025,"9.2":0.07177,"10.1":0.02051,"11.1-11.2":0.0234,"12.0":0.08202,"13.0":0.17548,"14.0":4.36372},I:{"0":0,"3":0,"4":0.00366,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00135},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.89126,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":16.22744},S:{"2.5":0},R:{_:"0"},M:{"0":0.63792},Q:{"10.4":0},O:{"0":0},H:{"0":0.01427}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js index 1a15f72ab53c28..710f114f09bea2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js @@ -1 +1 @@ -module.exports={C:{"30":0.00547,"31":0.00821,"38":0.00274,"40":0.00274,"41":0.00547,"43":0.00821,"44":0.00547,"45":0.00821,"46":0.00274,"47":0.01915,"48":0.00821,"49":0.00547,"50":0.00274,"51":0.00274,"52":0.01642,"55":0.00274,"56":0.00821,"57":0.00821,"60":0.00274,"61":0.00547,"67":0.00547,"68":0.01094,"69":0.00274,"70":0.00274,"71":0.00821,"72":0.01915,"75":0.00274,"76":0.01368,"77":0.00821,"78":0.04104,"79":0.00821,"80":0.01642,"81":0.01642,"82":0.01094,"83":0.01368,"84":0.04104,"85":0.04104,"86":0.04104,"87":0.0684,"88":1.89331,"89":0.16963,"90":0.00274,_:"2 3 4 5 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 42 53 54 58 59 62 63 64 65 66 73 74 91 3.5 3.6"},D:{"11":0.00274,"30":0.00274,"31":0.00274,"33":0.00547,"40":0.00821,"43":0.00547,"46":0.00274,"47":0.00274,"49":0.04378,"50":0.01368,"51":0.00274,"52":0.00274,"55":0.00821,"56":0.00274,"57":0.00547,"58":0.00821,"60":0.01094,"61":0.00274,"63":0.01915,"64":0.00821,"65":0.01368,"66":0.00821,"67":0.00821,"68":0.01915,"69":0.01642,"70":0.01094,"71":0.01368,"72":0.0301,"73":0.00821,"74":0.02189,"75":0.01915,"76":0.01915,"77":0.04651,"78":0.03283,"79":0.04925,"80":0.08482,"81":0.04925,"83":0.08208,"84":0.04651,"85":0.04104,"86":0.10397,"87":0.28181,"88":0.20794,"89":0.56088,"90":11.75933,"91":0.29002,"92":0.02189,_:"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 32 34 35 36 37 38 39 41 42 44 45 48 53 54 59 62 93 94"},F:{"36":0.00547,"42":0.00821,"62":0.00274,"63":0.00547,"64":0.00547,"72":0.00547,"73":0.02736,"74":0.02736,"75":0.51163,"76":0.81533,_:"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 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00611,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00122,"5.0-5.1":0.00366,"6.0-6.1":0.00611,"7.0-7.1":0.0232,"8.1-8.4":0.01221,"9.0-9.2":0.01099,"9.3":0.07204,"10.0-10.2":0.00855,"10.3":0.30403,"11.0-11.2":0.75947,"11.3-11.4":0.09158,"12.0-12.1":0.0928,"12.2-12.4":0.6215,"13.0-13.1":0.12699,"13.2":0.06593,"13.3":0.30281,"13.4-13.7":0.76191,"14.0-14.4":6.50923,"14.5-14.6":1.3248},E:{"4":0,"11":0.00274,"12":0.00547,"13":0.02189,"14":0.32011,_:"0 5 6 7 8 9 10 3.1 3.2 6.1","5.1":0.04925,"7.1":0.00274,"9.1":0.01094,"10.1":0.00821,"11.1":0.01915,"12.1":0.02462,"13.1":0.07661,"14.1":0.15595},B:{"12":0.04104,"13":0.01642,"14":0.01094,"15":0.01915,"16":0.01915,"17":0.01915,"18":0.12038,"80":0.00547,"81":0.00821,"83":0.00547,"84":0.02736,"85":0.04925,"86":0.01915,"87":0.01368,"88":0.02189,"89":0.11491,"90":1.72642,"91":0.04651,_:"79"},P:{"4":0.25006,"5.0-5.4":0.02084,"6.2-6.4":0.0417,"7.2-7.4":0.12503,"8.2":0.01051,"9.2":0.06252,"10.1":0.01042,"11.1-11.2":0.22922,"12.0":0.11461,"13.0":0.35425,"14.0":0.82311},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00261,"4.2-4.3":0.0108,"4.4":0,"4.4.3-4.4.4":0.05922},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00666,"9":0.00666,"10":0.00333,"11":0.13656,_:"6 7 5.5"},J:{"7":0,"10":0.02179},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.29052},Q:{"10.4":0.01453},O:{"0":2.74541},H:{"0":14.70119},L:{"0":46.20479}}; +module.exports={C:{"40":0.00575,"41":0.00575,"43":0.00288,"44":0.00575,"46":0.00288,"47":0.0115,"48":0.00863,"49":0.00288,"50":0.00288,"52":0.02013,"56":0.0115,"66":0.00288,"68":0.00863,"69":0.00288,"70":0.01725,"71":0.00575,"72":0.01725,"73":0.00575,"74":0.00575,"76":0.00575,"77":0.00863,"78":0.04025,"79":0.00575,"80":0.0115,"81":0.00575,"82":0.00863,"83":0.0115,"84":0.02875,"85":0.01725,"86":0.01438,"87":0.0115,"88":0.06613,"89":1.29375,"90":0.69288,"91":0.08338,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 51 53 54 55 57 58 59 60 61 62 63 64 65 67 75 92 3.5 3.6"},D:{"40":0.0115,"42":0.00288,"45":0.00288,"49":0.023,"50":0.00863,"55":0.00288,"56":0.00288,"57":0.00575,"58":0.00575,"60":0.0115,"61":0.00575,"63":0.01725,"64":0.01438,"65":0.01438,"67":0.00288,"68":0.023,"69":0.01725,"70":0.01725,"71":0.00575,"72":0.03163,"73":0.00575,"74":0.02875,"75":0.02588,"76":0.01725,"77":0.03163,"78":0.02875,"79":0.04888,"80":0.05463,"81":0.06325,"83":0.06613,"84":0.03163,"85":0.03738,"86":0.08913,"87":0.23,"88":0.07475,"89":0.13513,"90":0.26163,"91":10.2695,"92":2.323,"93":0.02588,_:"4 5 6 7 8 9 10 11 12 13 14 15 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 43 44 46 47 48 51 52 53 54 59 62 66 94 95"},F:{"42":0.00863,"64":0.01725,"68":0.00288,"73":0.00575,"74":0.00575,"75":0.0115,"76":0.0805,"77":1.39438,_:"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 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00791,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00132,"5.0-5.1":0.00527,"6.0-6.1":0.00395,"7.0-7.1":0.01713,"8.1-8.4":0.01186,"9.0-9.2":0.00132,"9.3":0.05667,"10.0-10.2":0.00527,"10.3":0.20297,"11.0-11.2":0.82505,"11.3-11.4":0.07249,"12.0-12.1":0.0804,"12.2-12.4":0.48633,"13.0-13.1":0.10412,"13.2":0.06326,"13.3":0.3005,"13.4-13.7":0.62604,"14.0-14.4":4.08308,"14.5-14.7":4.87255},E:{"4":0,"11":0.00575,"12":0.00575,"13":0.02588,"14":0.17538,"15":0.05175,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01438,"10.1":0.00575,"11.1":0.01725,"12.1":0.02013,"13.1":0.08913,"14.1":0.40825},B:{"12":0.04025,"13":0.01725,"14":0.00863,"15":0.01725,"16":0.01725,"17":0.0345,"18":0.13225,"80":0.00863,"83":0.00288,"84":0.02013,"85":0.03738,"86":0.02013,"87":0.00863,"88":0.0115,"89":0.05463,"90":0.0575,"91":1.60713,"92":0.35363,_:"79 81"},P:{"4":0.2081,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.12486,"8.2":0.03071,"9.2":0.07283,"10.1":0.0104,"11.1-11.2":0.18729,"12.0":0.08324,"13.0":0.24971,"14.0":1.03007},I:{"0":0,"3":0,"4":0.00143,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00214,"4.2-4.3":0.00713,"4.4":0,"4.4.3-4.4.4":0.05344},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15238,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0285},N:{"11":0.01472,_:"10"},L:{"0":46.73188},S:{"2.5":0},R:{_:"0"},M:{"0":0.342},Q:{"10.4":0.00713},O:{"0":2.77875},H:{"0":13.26163}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js index b7204d210a95f7..4d75d2f013e285 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js @@ -1 +1 @@ -module.exports={C:{"48":0.01373,"56":0.01373,"58":0.00687,"64":0.00687,"75":0.01373,"78":0.03434,"82":0.01373,"84":0.15107,"85":0.01373,"87":0.00687,"88":1.16052,"89":0.01373,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 57 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 83 86 90 91 3.5 3.6"},D:{"49":0.00687,"56":0.01373,"60":0.0206,"67":0.01373,"74":0.0618,"76":0.00687,"78":0.01373,"79":0.51503,"80":0.01373,"81":0.0206,"83":0.03434,"84":0.48756,"85":0.04807,"86":0.07554,"87":0.37769,"88":0.11674,"89":11.6327,"90":37.23287,"91":0.85151,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 61 62 63 64 65 66 68 69 70 71 72 73 75 77 92 93 94"},F:{"36":0.0412,"73":0.02747,"75":0.05494,"76":0.07554,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.03284,"7.0-7.1":0,"8.1-8.4":0.00448,"9.0-9.2":0,"9.3":0.15974,"10.0-10.2":0.01344,"10.3":0.11794,"11.0-11.2":0.01045,"11.3-11.4":0.04031,"12.0-12.1":0.01791,"12.2-12.4":0.17317,"13.0-13.1":0.03284,"13.2":0.00746,"13.3":0.10599,"13.4-13.7":0.48369,"14.0-14.4":11.12192,"14.5-14.6":1.68546},E:{"4":0,"11":0.0206,"13":0.08927,"14":7.64984,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00687,"11.1":0.12361,"12.1":0.06867,"13.1":0.59056,"14.1":1.04378},B:{"17":0.0206,"18":0.13734,"84":0.04807,"89":0.0824,"90":3.60518,"91":0.21974,_:"12 13 14 15 16 79 80 81 83 85 86 87 88"},P:{"4":0.20679,"5.0-5.4":0.0609,"6.2-6.4":0.0812,"7.2-7.4":0.59883,"8.2":0.0105,"9.2":0.05075,"10.1":0.01088,"11.1-11.2":0.23344,"12.0":0.02177,"13.0":0.11972,"14.0":3.178},I:{"0":0,"3":0,"4":0.00109,"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.01202},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24035,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.13785},Q:{"10.4":0},O:{"0":0.18485},H:{"0":0.12161},L:{"0":14.44071}}; +module.exports={C:{"52":0.01636,"76":0.01091,"78":0.1309,"86":0.01091,"88":0.07636,"89":0.88355,"90":1.82709,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 77 79 80 81 82 83 84 85 87 91 92 3.5 3.6"},D:{"49":0.01091,"60":0.03818,"65":0.03272,"74":0.00545,"76":0.01091,"78":0.01091,"79":0.0709,"80":0.01091,"81":0.02727,"83":0.00545,"84":1.37986,"85":0.01091,"86":0.08181,"87":0.20725,"88":0.01091,"89":0.1309,"90":0.32179,"91":26.29373,"92":5.85214,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 63 64 66 67 68 69 70 71 72 73 75 77 93 94 95"},F:{"36":0.03272,"76":0.08181,"77":0.25634,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00641,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00427,"9.3":0.19658,"10.0-10.2":0.00641,"10.3":0.10684,"11.0-11.2":0.04487,"11.3-11.4":0.03633,"12.0-12.1":0.00855,"12.2-12.4":0.06197,"13.0-13.1":0.04701,"13.2":0.05556,"13.3":0.21154,"13.4-13.7":0.47009,"14.0-14.4":4.38894,"14.5-14.7":14.78436},E:{"4":0,"13":0.17453,"14":1.35259,"15":0.01091,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01091,"11.1":0.23452,"12.1":0.10363,"13.1":0.66539,"14.1":5.03404},B:{"18":0.1418,"84":0.01636,"86":0.01091,"90":0.00545,"91":4.51591,"92":1.1617,_:"12 13 14 15 16 17 79 80 81 83 85 87 88 89"},P:{"4":0.44178,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.12486,"8.2":0.03071,"9.2":0.07283,"10.1":0.03156,"11.1-11.2":0.01052,"12.0":0.08324,"13.0":0.1157,"14.0":3.89189},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.01759},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21816,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":21.34652},S:{"2.5":0},R:{_:"0"},M:{"0":0.93193},Q:{"10.4":0},O:{"0":0.32731},H:{"0":0.49494}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js index 84df7b58fa0054..79f24fb059e859 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js @@ -1 +1 @@ -module.exports={C:{"48":0.05101,"59":0.01134,"78":1.24696,"85":0.01134,"86":0.01134,"87":0.03968,"88":5.05586,"89":0.03968,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 90 91 3.5 3.6"},D:{"49":0.08502,"62":0.00567,"67":0.08502,"73":0.00567,"74":0.02834,"76":0.02834,"78":0.01134,"79":0.02267,"80":0.09069,"81":0.10769,"83":0.01134,"84":0.017,"86":0.06235,"87":0.15304,"88":0.1247,"89":1.79676,"90":27.24041,"91":0.55546,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 68 69 70 71 72 75 77 85 92 93 94"},F:{"73":0.10202,"75":0.7085,"76":0.52712,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0035,"8.1-8.4":0,"9.0-9.2":0.47363,"9.3":0.09962,"10.0-10.2":0,"10.3":0.18176,"11.0-11.2":0.00699,"11.3-11.4":0.00699,"12.0-12.1":0.01223,"12.2-12.4":0.17477,"13.0-13.1":0.00524,"13.2":0.03146,"13.3":0.14157,"13.4-13.7":0.29886,"14.0-14.4":12.98213,"14.5-14.6":2.72296},E:{"4":0,"12":0.05668,"13":1.12226,"14":6.08176,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05101,"11.1":0.04534,"12.1":0.10769,"13.1":0.74818,"14.1":2.87368},B:{"14":0.13603,"15":0.04534,"18":0.17004,"84":0.05668,"85":0.05668,"86":0.02267,"89":0.17571,"90":4.01861,"91":0.14737,_:"12 13 16 17 79 80 81 83 87 88"},P:{"4":0.07721,"5.0-5.4":0.0609,"6.2-6.4":0.0812,"7.2-7.4":0.59883,"8.2":0.0105,"9.2":0.05075,"10.1":0.01088,"11.1-11.2":0.01103,"12.0":0.02206,"13.0":0.15442,"14.0":3.91566},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.02591,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.27725},Q:{"10.4":0},O:{"0":6.32905},H:{"0":0.324},L:{"0":15.71224}}; +module.exports={C:{"50":0.01166,"78":1.42835,"87":0.14575,"88":0.03498,"89":3.50966,"90":2.92083,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 91 92 3.5 3.6"},D:{"38":0.01749,"49":0.22154,"56":0.08162,"57":0.00583,"67":0.07579,"74":0.07579,"75":0.01749,"76":0.06413,"79":0.03498,"80":0.13409,"81":0.18656,"83":0.01749,"85":0.04081,"86":0.02332,"87":0.09328,"88":0.41393,"89":0.21571,"90":2.22123,"91":21.30865,"92":4.50076,"93":0.02332,_:"4 5 6 7 8 9 10 11 12 13 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 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 77 78 84 94 95"},F:{"66":0.01166,"74":0.01749,"76":0.15741,"77":3.46302,_:"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 67 68 69 70 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.07784,"8.1-8.4":0.01297,"9.0-9.2":0.07135,"9.3":0.11027,"10.0-10.2":0.02162,"10.3":0.30919,"11.0-11.2":0.04324,"11.3-11.4":0.00649,"12.0-12.1":0.04324,"12.2-12.4":0.12108,"13.0-13.1":0.0173,"13.2":0.01514,"13.3":0.05189,"13.4-13.7":0.19892,"14.0-14.4":2.61622,"14.5-14.7":17.40757},E:{"4":0,"10":0.02332,"13":0.37312,"14":1.14851,_:"0 5 6 7 8 9 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00583,"11.1":0.02332,"12.1":0.07579,"13.1":0.47223,"14.1":4.56489},B:{"13":0.01749,"14":0.00583,"15":0.00583,"16":0.00583,"18":0.05247,"89":0.01749,"90":0.02915,"91":4.38416,"92":1.47499,_:"12 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.09476,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.12486,"8.2":0.03071,"9.2":0.07283,"10.1":0.03156,"11.1-11.2":0.28427,"12.0":0.08324,"13.0":0.23163,"14.0":3.93772},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:{"8":0.00583,"11":2.22706,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":16.33452},S:{"2.5":0.00417},R:{_:"0"},M:{"0":0.11673},Q:{"10.4":0},O:{"0":0.53363},H:{"0":0.13814}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js index dc8267c85add41..6fa9662f746e43 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js @@ -1 +1 @@ -module.exports={C:{"4":0.00626,"6":0.00626,"7":0.00939,"12":0.00939,"13":0.00313,"14":0.00626,"15":0.00313,"16":0.00313,"18":0.01878,"19":0.01252,"20":0.01565,"23":0.00939,"24":0.00626,"26":0.00313,"31":0.00939,"33":0.00626,"34":0.00626,"35":0.00626,"36":0.02191,"38":0.01565,"39":0.01252,"40":0.01252,"41":0.00939,"42":0.01878,"43":0.01565,"44":0.02191,"45":0.01565,"46":0.00939,"47":0.02817,"48":0.01878,"49":0.02191,"50":0.02191,"51":0.13772,"52":0.17215,"53":0.15337,"54":0.08451,"55":0.14398,"56":0.10642,"57":0.09703,"58":0.03756,"59":0.03756,"60":0.00939,"61":0.00626,"62":0.00939,"63":0.00626,"64":0.00626,"65":0.00939,"66":0.01252,"68":0.00939,"71":0.00313,"72":0.02817,"73":0.00626,"75":0.00313,"76":0.00939,"77":0.00313,"78":0.02817,"79":0.00313,"80":0.00626,"82":0.00313,"83":0.02817,"84":0.64165,"85":0.01565,"86":0.02191,"87":0.10016,"88":2.29429,"89":0.26918,_:"2 3 5 8 9 10 11 17 21 22 25 27 28 29 30 32 37 67 69 70 74 81 90 91 3.5 3.6"},D:{"11":0.00939,"18":0.00626,"25":0.00626,"30":0.00939,"31":0.00313,"33":0.00939,"34":0.02817,"36":0.00626,"37":0.01878,"38":0.00313,"39":0.09703,"40":0.08138,"41":0.08764,"42":0.05947,"43":0.08764,"44":0.0939,"45":0.10642,"46":0.12833,"47":0.12207,"48":0.11581,"49":0.23162,"50":0.05634,"51":0.12833,"52":0.09077,"53":0.13146,"54":0.16902,"55":0.16589,"56":0.13146,"57":0.15337,"58":0.12833,"59":0.0939,"60":0.14398,"61":0.06886,"62":0.08138,"63":0.08138,"64":0.07199,"65":0.65417,"66":0.00939,"67":0.00939,"68":0.01565,"69":0.02191,"70":0.04382,"71":0.00626,"72":0.00313,"73":0.00626,"74":0.0626,"75":0.01565,"76":0.05321,"77":0.01565,"78":0.00939,"79":0.09703,"80":0.05321,"81":0.05321,"83":0.02191,"84":0.03756,"85":0.01252,"86":0.02191,"87":1.67455,"88":0.13459,"89":0.45698,"90":7.97837,"91":0.26605,"92":0.00939,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 26 27 28 29 32 35 93 94"},F:{"11":0.00626,"12":0.01878,"16":0.00626,"17":0.00939,"18":0.00626,"19":0.00626,"20":0.00626,"27":0.00313,"29":0.00626,"30":0.00626,"31":0.00313,"32":0.00626,"34":0.00313,"36":0.00626,"37":0.01252,"39":0.00313,"40":0.00313,"41":0.00626,"42":0.0313,"43":0.00939,"44":0.00939,"47":0.00313,"49":0.00313,"51":0.00313,"52":0.00313,"53":0.00313,"54":0.01565,"55":0.00626,"71":0.00313,"74":0.00313,"75":0.30674,"76":1.42415,_:"9 15 21 22 23 24 25 26 28 33 35 38 45 46 48 50 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 9.5-9.6 10.5 10.6 11.5","10.0-10.1":0,"11.1":0.00313,"11.6":0.00626,"12.1":0.02504},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00333,"5.0-5.1":0.01444,"6.0-6.1":0,"7.0-7.1":0.07664,"8.1-8.4":0.00111,"9.0-9.2":0.01222,"9.3":0.40095,"10.0-10.2":0.02666,"10.3":0.4165,"11.0-11.2":0.08219,"11.3-11.4":0.02332,"12.0-12.1":0.07108,"12.2-12.4":0.87187,"13.0-13.1":0.05998,"13.2":0.02443,"13.3":0.52201,"13.4-13.7":0.80745,"14.0-14.4":5.90875,"14.5-14.6":0.96295},E:{"4":0,"11":0.00626,"12":0.01252,"13":0.32552,"14":0.26605,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.07199,"10.1":0.00626,"11.1":0.05947,"12.1":0.00939,"13.1":0.19719,"14.1":0.10955},B:{"12":0.03443,"13":0.01565,"14":0.01252,"15":0.02191,"16":0.04695,"17":0.01878,"18":0.15963,"80":0.00626,"81":0.00939,"83":0.00939,"84":0.04695,"85":0.01878,"86":0.00626,"87":0.01878,"88":0.00939,"89":0.04695,"90":1.28956,"91":0.05634,_:"79"},P:{"4":1.10631,"5.0-5.4":0.0609,"6.2-6.4":0.0812,"7.2-7.4":0.59883,"8.2":0.0105,"9.2":0.05075,"10.1":0.05075,"11.1-11.2":0.23344,"12.0":0.26389,"13.0":0.37554,"14.0":1.62394},I:{"0":0,"3":0,"4":0.00097,"2.1":0,"2.2":0,"2.3":0,"4.1":0.04084,"4.2-4.3":0.07973,"4.4":0,"4.4.3-4.4.4":0.18766},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.2623,"9":0.14384,"10":0.05077,"11":0.31307,_:"6 7 5.5"},J:{"7":0,"10":0.05497},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.01374},R:{_:"0"},M:{"0":0.08245},Q:{"10.4":0},O:{"0":0.95507},H:{"0":2.2052},L:{"0":55.32463}}; +module.exports={C:{"2":0.00264,"3":0.01056,"4":0.00528,"8":0.00264,"10":0.00528,"11":0.00792,"12":0.00264,"14":0.00528,"16":0.00528,"17":0.00264,"18":0.00792,"19":0.00792,"20":0.01321,"31":0.01849,"34":0.01321,"35":0.00264,"36":0.00792,"37":0.00528,"38":0.00528,"39":0.00792,"40":0.02641,"41":0.02377,"42":0.01321,"43":0.02113,"44":0.01321,"45":0.02377,"46":0.01321,"47":0.02377,"48":0.02113,"49":0.01849,"50":0.03697,"51":0.09244,"52":0.11885,"53":0.11356,"54":0.05018,"55":0.103,"56":0.08715,"57":0.08715,"58":0.02905,"59":0.03433,"60":0.00792,"61":0.01321,"62":0.01056,"63":0.01056,"64":0.00528,"65":0.00528,"66":0.00528,"68":0.00792,"71":0.00264,"72":0.02641,"75":0.00264,"77":0.00792,"78":0.03169,"81":0.00528,"82":0.00792,"83":0.00528,"85":0.00528,"86":0.01321,"87":0.01056,"88":0.09244,"89":1.44991,"90":0.78174,"91":0.06074,_:"5 6 7 9 13 15 21 22 23 24 25 26 27 28 29 30 32 33 67 69 70 73 74 76 79 80 84 92 3.5","3.6":0.01321},D:{"11":0.01056,"18":0.00264,"28":0.00792,"30":0.01321,"34":0.04754,"36":0.03962,"37":0.00792,"38":0.00792,"39":0.05282,"40":0.0581,"41":0.06603,"42":0.06074,"43":0.07131,"44":0.07659,"45":0.06603,"46":0.11092,"47":0.07923,"48":0.06074,"49":0.21656,"50":0.03433,"51":0.18487,"52":0.08451,"53":0.11092,"54":0.103,"55":0.07923,"56":0.07131,"57":0.10036,"58":0.103,"59":0.0581,"60":0.15054,"61":0.06603,"62":0.06867,"63":0.08451,"64":0.0581,"65":0.09772,"66":0.00264,"67":0.00528,"68":0.00528,"69":0.02641,"70":0.01585,"71":0.00528,"72":0.00528,"74":0.16638,"75":0.02113,"76":0.03169,"77":0.01056,"78":0.01056,"79":0.06603,"80":0.01849,"81":0.0449,"83":0.02377,"84":0.01056,"85":0.01849,"86":0.01056,"87":0.09508,"88":0.06074,"89":0.15582,"90":0.18487,"91":8.63871,"92":1.69816,"93":0.01585,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 29 31 32 33 35 73 94 95"},F:{"11":0.00792,"15":0.01056,"16":0.00792,"18":0.00264,"21":0.00528,"27":0.00264,"28":0.00264,"32":0.00792,"34":0.00528,"36":0.00264,"37":0.02377,"39":0.00528,"40":0.00528,"42":0.02113,"43":0.00792,"44":0.00264,"45":0.00528,"46":0.00528,"53":0.00528,"54":0.00528,"55":0.00528,"56":0.00264,"65":0.00264,"66":0.00528,"70":0.00528,"71":0.00528,"76":0.01849,"77":0.75269,_:"9 12 17 19 20 22 23 24 25 26 29 30 31 33 35 38 41 47 48 49 50 51 52 57 58 60 62 63 64 67 68 69 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.6","10.0-10.1":0,"11.5":0.00528,"12.1":0.00792},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.06241,"6.0-6.1":0,"7.0-7.1":0.01596,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.19738,"10.0-10.2":0.00145,"10.3":0.25108,"11.0-11.2":0.04789,"11.3-11.4":0.02612,"12.0-12.1":0.03483,"12.2-12.4":1.05366,"13.0-13.1":0.06966,"13.2":0.01596,"13.3":0.31058,"13.4-13.7":0.68793,"14.0-14.4":4.18126,"14.5-14.7":5.6645},E:{"4":0,"10":0.01585,"11":0.00264,"12":0.01056,"13":0.02641,"14":0.17167,_:"0 5 6 7 8 9 15 3.1 3.2 6.1 7.1 9.1","5.1":0.00792,"10.1":0.03697,"11.1":0.11092,"12.1":0.00264,"13.1":0.16374,"14.1":0.2641},B:{"12":0.04754,"13":0.03697,"14":0.00792,"15":0.01585,"16":0.05018,"17":0.01849,"18":0.103,"79":0.00528,"80":0.00528,"81":0.01321,"83":0.00792,"84":0.01585,"85":0.02113,"86":0.01056,"87":0.00792,"89":0.06867,"90":0.02905,"91":1.38388,"92":0.34597,_:"88"},P:{"4":0.58504,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.30792,"8.2":0.03071,"9.2":0.1129,"10.1":0.04106,"11.1-11.2":0.15396,"12.0":0.21554,"13.0":0.24633,"14.0":1.75512},I:{"0":0,"3":0,"4":0.00151,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00491,"4.2-4.3":0.02871,"4.4":0,"4.4.3-4.4.4":0.13412},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.07753,"9":0.02087,"10":0.01491,"11":0.07156,_:"6 7 5.5"},J:{"7":0,"10":0.01472},N:{"11":0.01472,_:"10"},L:{"0":56.96363},S:{"2.5":0},R:{_:"0"},M:{"0":0.07359},Q:{"10.4":0},O:{"0":1.26575},H:{"0":2.6823}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js index 8b49d80b92efea..05688cba3b192b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js @@ -1 +1 @@ -module.exports={C:{"17":0.00247,"19":0.0037,"22":0.00123,"24":0.00494,"30":0.00247,"32":0.00123,"33":0.00247,"37":0.00617,"38":0.00123,"45":0.00123,"46":0.0037,"47":0.01234,"49":0.00247,"52":0.01481,"57":0.00247,"60":0.00123,"66":0.0037,"72":0.00247,"76":0.00123,"78":0.00617,"79":0.00247,"84":0.0037,"85":0.00123,"86":0.0037,"87":0.01111,"88":0.87491,"89":0.00494,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 21 23 25 26 27 28 29 31 34 35 36 39 40 41 42 43 44 48 50 51 53 54 55 56 58 59 61 62 63 64 65 67 68 69 70 71 73 74 75 77 80 81 82 83 90 91 3.5 3.6"},D:{"11":0.02098,"25":0.00123,"28":0.00247,"29":0.0037,"33":0.03085,"36":0.00494,"37":0.00247,"38":0.00864,"39":0.0037,"40":0.0037,"41":0.00617,"43":0.02098,"48":0.02221,"49":0.00247,"50":0.0037,"55":0.02098,"56":0.05059,"60":0.00247,"63":0.0074,"64":0.0037,"65":0.02591,"67":0.00123,"69":0.05923,"70":0.0037,"72":0.03579,"73":0.00247,"74":0.00864,"75":0.03702,"76":0.02715,"77":0.0037,"78":0.00247,"79":0.0074,"80":0.01604,"81":0.0037,"83":0.04319,"84":0.00864,"85":0.00617,"86":0.01234,"87":0.04689,"88":0.01357,"89":0.116,"90":3.2084,"91":0.08885,"92":0.00123,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 30 31 32 34 35 42 44 45 46 47 51 52 53 54 57 58 59 61 62 66 68 71 93 94"},F:{"19":0.01234,"20":0.00247,"36":0.00247,"42":0.00123,"45":0.00123,"63":0.00123,"64":0.0037,"67":0.00123,"74":0.0074,"75":0.11723,"76":0.18387,_:"9 11 12 15 16 17 18 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 65 66 68 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},G:{"8":0.00434,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00087,"7.0-7.1":0.07816,"8.1-8.4":0.08684,"9.0-9.2":0.00521,"9.3":0.0356,"10.0-10.2":0.00347,"10.3":0.11289,"11.0-11.2":0.29526,"11.3-11.4":0.24749,"12.0-12.1":0.17281,"12.2-12.4":1.57528,"13.0-13.1":0.20842,"13.2":0.12331,"13.3":0.25444,"13.4-13.7":0.84235,"14.0-14.4":3.45797,"14.5-14.6":0.66519},E:{"4":0,"11":0.00247,"13":0.00247,"14":0.116,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.10366,"11.1":0.00247,"12.1":0.04566,"13.1":0.02221,"14.1":0.03825},B:{"12":0.01357,"13":0.0037,"14":0.00494,"15":0.00123,"16":0.01604,"17":0.01357,"18":0.07898,"80":0.0037,"84":0.00617,"85":0.01974,"86":0.00247,"87":0.01111,"88":0.05676,"89":0.07774,"90":0.53185,"91":0.04813,_:"79 81 83"},P:{"4":1.89804,"5.0-5.4":0.07143,"6.2-6.4":0.02041,"7.2-7.4":0.38777,"8.2":0.0105,"9.2":0.17348,"10.1":0.03061,"11.1-11.2":0.56125,"12.0":0.08164,"13.0":0.42859,"14.0":0.32654},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00333,"4.2-4.3":0.003,"4.4":0,"4.4.3-4.4.4":0.16899},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00278,"11":0.08607,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.22792},R:{_:"0"},M:{"0":0.07013},Q:{"10.4":0.14902},O:{"0":0.50843},H:{"0":7.09572},L:{"0":72.37362}}; +module.exports={C:{"21":0.00562,"22":0.00422,"24":0.00281,"30":0.00281,"31":0.00422,"33":0.00422,"35":0.00703,"37":0.01686,"38":0.00422,"39":0.00422,"40":0.00422,"42":0.00281,"43":0.00281,"47":0.00562,"52":0.01546,"55":0.00141,"64":0.00141,"65":0.00281,"72":0.00281,"78":0.00843,"79":0.00281,"81":0.00281,"84":0.00281,"87":0.01265,"88":0.01265,"89":0.673,"90":0.35406,"91":0.00141,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 23 25 26 27 28 29 32 34 36 41 44 45 46 48 49 50 51 53 54 56 57 58 59 60 61 62 63 66 67 68 69 70 71 73 74 75 76 77 80 82 83 85 86 92 3.5 3.6"},D:{"11":0.00703,"18":0.00141,"23":0.00281,"24":0.00141,"25":0.00281,"26":0.00422,"28":0.00141,"29":0.00281,"33":0.07166,"36":0.01265,"37":0.00703,"38":0.00843,"39":0.00422,"40":0.02951,"42":0.00562,"43":0.00562,"45":0.01827,"46":0.00141,"47":0.00281,"48":0.00422,"49":0.08149,"50":0.00281,"51":0.00703,"53":0.01546,"55":0.00141,"56":0.00422,"58":0.00422,"60":0.00141,"61":0.00562,"63":0.04215,"64":0.00281,"65":0.00422,"66":0.00141,"69":0.06042,"70":0.00562,"72":0.0562,"73":0.00281,"74":0.00281,"75":0.09414,"76":0.00703,"78":0.02389,"79":0.00843,"80":0.00703,"81":0.01546,"83":0.00984,"84":0.00562,"85":0.00703,"86":0.01265,"87":0.03653,"88":0.01827,"89":0.09695,"90":0.16017,"91":3.59399,"92":0.82193,"93":0.01124,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 27 30 31 32 34 35 41 44 52 54 57 59 62 67 68 71 77 94 95"},F:{"15":0.00984,"17":0.00281,"40":0.00422,"75":0.01124,"76":0.01265,"77":0.4482,_:"9 11 12 16 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00406,"6.0-6.1":0.00406,"7.0-7.1":0.01928,"8.1-8.4":0.00203,"9.0-9.2":0.01218,"9.3":0.03348,"10.0-10.2":0,"10.3":0.08625,"11.0-11.2":0.19888,"11.3-11.4":0.12481,"12.0-12.1":0.64433,"12.2-12.4":0.8077,"13.0-13.1":0.07204,"13.2":0.03754,"13.3":0.25164,"13.4-13.7":0.56721,"14.0-14.4":3.58289,"14.5-14.7":2.44744},E:{"4":0,"11":0.00422,"12":0.00281,"13":0.00984,"14":0.04918,_:"0 5 6 7 8 9 10 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00281,"11.1":0.01265,"12.1":0.04496,"13.1":0.03372,"14.1":0.13488},B:{"12":0.0548,"13":0.00984,"14":0.00562,"15":0.00703,"16":0.00703,"17":0.01967,"18":0.04075,"80":0.00562,"84":0.00562,"85":0.01265,"86":0.00141,"87":0.00281,"88":0.02389,"89":0.05901,"90":0.02951,"91":0.95259,"92":0.3358,_:"79 81 83"},P:{"4":0.47146,"5.0-5.4":0.041,"6.2-6.4":0.03075,"7.2-7.4":0.29722,"8.2":0.0205,"9.2":0.19473,"10.1":0.02051,"11.1-11.2":0.67644,"12.0":0.11274,"13.0":0.28698,"14.0":0.5637},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00175,"4.2-4.3":0.00454,"4.4":0,"4.4.3-4.4.4":0.07966},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04989,"9":0.01247,"11":0.19334,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":69.16404},S:{"2.5":0.20628},R:{_:"0"},M:{"0":0.07736},Q:{"10.4":0.30942},O:{"0":0.67041},H:{"0":7.93376}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js index f1a8b1fb3c2c8a..2feff3d7fb9dd0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js @@ -1 +1 @@ -module.exports={C:{"38":0.00464,"48":0.01391,"50":0.00927,"52":0.02782,"60":0.00927,"66":0.00464,"68":0.00464,"71":0.00464,"78":0.2133,"83":0.01391,"84":0.04173,"85":0.01391,"86":0.04637,"87":0.07883,"88":4.48862,"89":0.00927,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 56 57 58 59 61 62 63 64 65 67 69 70 72 73 74 75 76 77 79 80 81 82 90 91 3.5 3.6"},D:{"49":0.13447,"51":0.01391,"56":0.02319,"57":0.01391,"58":0.00464,"63":0.01855,"65":0.12056,"67":0.02319,"74":0.01391,"75":0.00927,"76":0.01855,"79":0.04637,"80":0.06492,"81":0.1252,"83":0.0371,"85":0.06492,"86":0.01855,"87":0.17621,"88":0.25967,"89":0.91813,"90":21.01952,"91":0.64918,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 59 60 61 62 64 66 68 69 70 71 72 73 77 78 84 92 93 94"},F:{"36":0.00464,"73":0.06492,"75":0.34314,"76":0.47761,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01901,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00634,"9.0-9.2":0.02059,"9.3":1.67125,"10.0-10.2":0.0095,"10.3":0.17584,"11.0-11.2":0.07129,"11.3-11.4":0.0697,"12.0-12.1":0.0396,"12.2-12.4":0.19009,"13.0-13.1":0.06178,"13.2":0.0095,"13.3":0.16475,"13.4-13.7":0.41979,"14.0-14.4":10.2841,"14.5-14.6":2.07678},E:{"4":0,"9":0.00927,"10":0.00927,"11":0.00927,"12":0.01855,"13":0.47297,"14":3.76061,_:"0 5 6 7 8 3.1 3.2 6.1 7.1","5.1":0.01855,"9.1":0.00464,"10.1":0.11593,"11.1":0.12056,"12.1":0.3385,"13.1":1.00623,"14.1":1.1407},B:{"12":0.00927,"15":0.00927,"16":0.03246,"17":0.0371,"18":0.23185,"84":0.00927,"85":0.01391,"86":0.05101,"87":0.00927,"88":0.01855,"89":0.11129,"90":5.77307,"91":0.35241,_:"13 14 79 80 81 83"},P:{"4":0.09564,"5.0-5.4":0.0609,"6.2-6.4":0.0812,"7.2-7.4":0.08502,"8.2":0.0105,"9.2":0.06376,"10.1":0.03188,"11.1-11.2":0.2763,"12.0":0.37195,"13.0":0.48885,"14.0":3.77262},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00207,"4.2-4.3":0.00223,"4.4":0,"4.4.3-4.4.4":0.02788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.31995,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.02682},R:{_:"0"},M:{"0":0.4344},Q:{"10.4":0.03754},O:{"0":0.01073},H:{"0":0.26402},L:{"0":34.13151}}; +module.exports={C:{"48":0.00859,"50":0.00859,"52":0.05586,"54":0.00859,"60":0.01289,"68":0.01289,"74":0.00859,"78":0.22344,"83":0.00859,"84":0.02578,"86":0.01289,"87":0.02578,"88":0.03438,"89":1.81763,"90":1.39653,"91":0.02149,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 75 76 77 79 80 81 82 85 92 3.5 3.6"},D:{"49":0.1375,"63":0.00859,"65":0.10743,"66":0.03008,"67":0.02578,"68":0.00859,"70":0.00859,"74":0.01289,"76":0.0043,"77":0.01289,"79":0.02149,"80":0.02149,"81":0.01719,"83":0.04727,"84":0.09453,"85":0.01289,"86":0.12461,"87":0.12032,"88":0.08164,"89":0.17618,"90":0.18047,"91":17.08058,"92":4.38294,"93":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 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 69 71 72 73 75 78 94 95"},F:{"36":0.00859,"76":0.30509,"77":0.7176,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0033,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00661,"7.0-7.1":0,"8.1-8.4":0.01322,"9.0-9.2":0,"9.3":0.53365,"10.0-10.2":0.0033,"10.3":0.07765,"11.0-11.2":0.04957,"11.3-11.4":0.06113,"12.0-12.1":0.02974,"12.2-12.4":0.27261,"13.0-13.1":0.04296,"13.2":0.00826,"13.3":0.12722,"13.4-13.7":0.43617,"14.0-14.4":2.40556,"14.5-14.7":11.90885},E:{"4":0,"12":0.00859,"13":0.15899,"14":1.16019,"15":0.02578,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.0043,"10.1":0.01719,"11.1":0.12891,"12.1":0.17188,"13.1":0.85081,"14.1":3.25713},B:{"15":0.00859,"16":0.00859,"17":0.03867,"18":0.11602,"84":0.02578,"85":0.00859,"86":0.06875,"87":0.00859,"88":0.0043,"89":0.02149,"90":0.10313,"91":4.33997,"92":1.01839,_:"12 13 14 79 80 81 83"},P:{"4":0.11443,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.11443,"8.2":0.03071,"9.2":0.07282,"10.1":0.0104,"11.1-11.2":0.29128,"12.0":0.61376,"13.0":0.29128,"14.0":4.10906},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.0021,"4.4":0,"4.4.3-4.4.4":0.01953},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.49416,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":37.1905},S:{"2.5":0.02281},R:{_:"0"},M:{"0":0.66155},Q:{"10.4":0},O:{"0":0.01141},H:{"0":0.16198}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js index 2fbe0227da6885..496e567ad5853a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js @@ -1 +1 @@ -module.exports={C:{"21":0.01532,"27":0.06128,"31":0.00511,"43":0.08682,"45":0.04086,"47":0.01532,"52":0.35238,"53":0.00511,"54":0.01532,"55":0.02554,"56":0.0715,"57":0.03064,"60":0.02554,"62":0.01532,"63":0.02043,"64":0.07661,"68":0.01021,"69":0.00511,"72":0.05618,"75":0.01532,"76":0.01021,"77":0.00511,"78":0.06128,"79":0.01021,"83":0.01532,"84":0.02554,"85":0.01021,"86":0.01532,"87":0.73541,"88":10.12207,"89":0.04086,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 46 48 49 50 51 58 59 61 65 66 67 70 71 73 74 80 81 82 90 91 3.5","3.6":0.01532},D:{"18":0.02043,"28":0.01021,"29":0.01532,"31":0.00511,"35":0.03575,"38":0.02554,"43":0.00511,"47":0.04086,"49":0.26556,"50":0.01021,"53":0.01532,"57":0.38813,"58":0.02043,"60":0.50049,"62":0.02043,"63":0.03064,"64":0.00511,"65":0.16853,"66":0.00511,"67":0.01532,"68":0.08682,"69":0.04596,"70":0.143,"71":0.01532,"74":0.01021,"75":0.0715,"78":0.18896,"79":0.16342,"80":0.03064,"81":0.09703,"83":0.05618,"84":0.03575,"85":0.01021,"86":0.11235,"87":0.10214,"88":0.64348,"89":0.59752,"90":20.71399,"91":1.36868,"92":0.02554,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 30 32 33 34 36 37 39 40 41 42 44 45 46 48 51 52 54 55 56 59 61 72 73 76 77 93 94"},F:{"34":0.00511,"35":0.00511,"36":0.01021,"40":0.03575,"45":0.01021,"47":0.01021,"48":0.00511,"50":0.00511,"51":0.03064,"64":0.02043,"68":0.01532,"71":0.02043,"74":0.3626,"75":0.12768,"76":0.12768,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 41 42 43 44 46 49 52 53 54 55 56 57 58 60 62 63 65 66 67 69 70 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02948,"8.1-8.4":0.01134,"9.0-9.2":0.00113,"9.3":0.08391,"10.0-10.2":0.00113,"10.3":0.44225,"11.0-11.2":0.13154,"11.3-11.4":0.04196,"12.0-12.1":0.09299,"12.2-12.4":0.25288,"13.0-13.1":0.10886,"13.2":0.01474,"13.3":0.07484,"13.4-13.7":0.47854,"14.0-14.4":6.71659,"14.5-14.6":0.95935},E:{"4":0,"12":0.01021,"13":0.00511,"14":0.35238,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.30642,"9.1":0.05618,"10.1":0.01532,"11.1":0.02554,"12.1":0.09193,"13.1":0.02043,"14.1":0.05618},B:{"12":0.09703,"13":0.01021,"14":0.01532,"15":0.0715,"16":0.05618,"17":0.27067,"18":0.04596,"84":0.02043,"85":0.02043,"86":0.02043,"88":0.01532,"89":0.08171,"90":3.80982,"91":0.08682,_:"79 80 81 83 87"},P:{"4":0.92625,"5.0-5.4":0.05146,"6.2-6.4":0.01029,"7.2-7.4":0.05146,"8.2":0.02014,"9.2":0.02058,"10.1":0.02075,"11.1-11.2":0.05146,"12.0":0.04117,"13.0":0.30875,"14.0":0.72042},I:{"0":0,"3":0,"4":0.00205,"2.1":0,"2.2":0,"2.3":0.00051,"4.1":0.00819,"4.2-4.3":0.27323,"4.4":0,"4.4.3-4.4.4":0.23946},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.98054,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.05381},Q:{"10.4":0.03914},O:{"0":0.4892},H:{"0":0.34736},L:{"0":41.0646}}; +module.exports={C:{"16":0.00525,"30":0.11554,"31":0.00525,"34":0.01576,"38":0.01576,"40":0.00525,"43":0.00525,"45":0.00525,"49":0.0105,"51":0.02626,"52":0.11029,"53":0.02626,"54":0.01576,"55":0.02626,"56":0.09454,"57":0.04202,"58":0.0105,"59":0.01576,"60":0.02626,"62":0.03151,"63":0.0105,"64":0.04202,"65":0.0105,"68":0.02626,"71":0.02101,"72":0.02101,"77":0.00525,"78":0.03676,"79":0.0105,"83":0.00525,"84":0.0105,"85":0.01576,"87":0.05252,"88":0.03151,"89":8.49248,"90":5.18898,"91":0.0105,_:"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 33 35 36 37 39 41 42 44 46 47 48 50 61 66 67 69 70 73 74 75 76 80 81 82 86 92 3.5 3.6"},D:{"18":0.05252,"22":0.00525,"33":0.0105,"38":0.02101,"39":0.01576,"40":0.01576,"41":0.01576,"42":0.0105,"43":0.0105,"44":0.01576,"45":0.03151,"46":0.0105,"47":0.02626,"48":0.0105,"49":0.05777,"50":0.02626,"51":0.0105,"52":0.01576,"53":0.01576,"54":0.02101,"55":0.0105,"56":0.02626,"57":0.05252,"58":0.03676,"59":0.0105,"60":0.17857,"61":0.0105,"62":0.01576,"63":0.08928,"64":0.02101,"65":0.03676,"66":0.0105,"67":0.00525,"68":0.28886,"69":0.0105,"70":0.03676,"72":0.00525,"73":0.0105,"74":0.02101,"75":0.0105,"77":0.00525,"78":0.06828,"79":0.23109,"80":0.02626,"81":0.03151,"83":0.05777,"84":0.07878,"85":0.02101,"86":0.02101,"87":0.1208,"88":0.06828,"89":0.20483,"90":0.84032,"91":18.7759,"92":3.47157,"93":0.12605,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 23 24 25 26 27 28 29 30 31 32 34 35 36 37 71 76 94 95"},F:{"25":0.0105,"36":0.01576,"40":0.01576,"48":0.00525,"50":0.02626,"51":0.05777,"56":0.0105,"68":0.01576,"72":0.00525,"75":0.01576,"76":0.02101,"77":0.28886,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 46 47 49 52 53 54 55 57 58 60 62 63 64 65 66 67 69 70 71 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01576},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0068,"6.0-6.1":0.00136,"7.0-7.1":0.01224,"8.1-8.4":0.0374,"9.0-9.2":0.03604,"9.3":0.08568,"10.0-10.2":0,"10.3":0.32708,"11.0-11.2":0.07004,"11.3-11.4":0.01632,"12.0-12.1":0.20672,"12.2-12.4":0.33184,"13.0-13.1":0.03332,"13.2":0.01904,"13.3":0.09928,"13.4-13.7":0.66641,"14.0-14.4":1.97678,"14.5-14.7":2.25423},E:{"4":0,"8":0.03676,"13":0.01576,"14":0.16281,_:"0 5 6 7 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1","5.1":0.10504,"10.1":0.02626,"11.1":0.0105,"12.1":0.01576,"13.1":0.01576,"14.1":0.60398},B:{"12":0.34138,"13":0.06302,"14":0.02101,"15":0.11029,"16":0.05777,"17":0.11554,"18":0.05252,"81":0.00525,"83":0.02101,"84":0.00525,"85":0.02101,"86":0.00525,"87":0.02101,"88":0.0105,"89":0.03676,"90":0.0105,"91":3.52409,"92":1.41279,_:"79 80"},P:{"4":1.06699,"5.0-5.4":0.01046,"6.2-6.4":0.01077,"7.2-7.4":0.06276,"8.2":0.02034,"9.2":0.01046,"10.1":0.02073,"11.1-11.2":0.0523,"12.0":0.09415,"13.0":0.12553,"14.0":1.45403},I:{"0":0,"3":0,"4":0.00015,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0006,"4.2-4.3":0.00374,"4.4":0,"4.4.3-4.4.4":0.03823},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00751,"8":0.02253,"11":0.66847,_:"7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":41.36859},S:{"2.5":0},R:{_:"0"},M:{"0":0.07121},Q:{"10.4":0.02374},O:{"0":0.33229},H:{"0":0.20673}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js index 891d9e9fd23093..dc668f9c48e040 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js @@ -1 +1 @@ -module.exports={C:{"45":0.01874,"48":0.0125,"52":0.7935,"56":0.00625,"60":0.00625,"66":0.0125,"68":0.0125,"72":0.00625,"78":0.08122,"79":0.00625,"81":0.09372,"82":0.05623,"83":0.0125,"84":0.04998,"85":0.02499,"86":0.02499,"87":0.10622,"88":8.75345,"89":0.01874,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 80 90 91 3.5 3.6"},D:{"11":0.01874,"22":0.63105,"26":0.00625,"34":0.0125,"38":0.14995,"43":0.00625,"47":0.09997,"49":1.2496,"53":0.01874,"54":0.04374,"56":0.00625,"58":0.04998,"61":0.02499,"62":0.00625,"65":0.0125,"67":0.01874,"68":0.01874,"69":0.19994,"71":0.03124,"72":0.01874,"73":0.04998,"74":0.0125,"75":0.0125,"76":0.0125,"77":0.13121,"78":0.0125,"79":0.06248,"80":0.02499,"81":0.03749,"83":0.04374,"84":0.03124,"85":0.03749,"86":0.06873,"87":0.26866,"88":0.38738,"89":0.52483,"90":35.37618,"91":1.38706,_:"4 5 6 7 8 9 10 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 51 52 55 57 59 60 63 64 66 70 92 93 94"},F:{"12":0.09372,"25":0.09372,"31":0.60606,"40":0.54982,"73":0.08122,"75":0.50609,"76":0.91221,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00056,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01063,"6.0-6.1":0.0028,"7.0-7.1":0.20978,"8.1-8.4":0.00559,"9.0-9.2":0.00112,"9.3":0.11803,"10.0-10.2":0.01063,"10.3":0.10797,"11.0-11.2":0.0207,"11.3-11.4":0.02573,"12.0-12.1":0.01846,"12.2-12.4":0.09342,"13.0-13.1":0.01846,"13.2":0.02014,"13.3":0.05762,"13.4-13.7":0.19579,"14.0-14.4":3.45042,"14.5-14.6":0.85869},E:{"4":0,"13":0.04998,"14":0.75601,_:"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.04998,"12.1":0.03749,"13.1":0.14995,"14.1":0.2999},B:{"17":0.00625,"18":0.02499,"84":0.00625,"85":0.0125,"89":0.03124,"90":2.46796,"91":0.18119,_:"12 13 14 15 16 79 80 81 83 86 87 88"},P:{"4":0.56051,"5.0-5.4":0.02084,"6.2-6.4":0.0417,"7.2-7.4":0.12503,"8.2":0.01051,"9.2":0.01099,"10.1":0.01042,"11.1-11.2":0.09891,"12.0":0.02198,"13.0":0.24179,"14.0":1.54964},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00935,"4.2-4.3":0.15702,"4.4":0,"4.4.3-4.4.4":0.35891},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.57482,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.20261},Q:{"10.4":0},O:{"0":0.12757},H:{"0":0.21668},L:{"0":29.86858}}; +module.exports={C:{"48":0.01237,"52":0.85985,"56":0.00619,"60":0.00619,"66":0.01237,"68":0.01237,"72":0.00619,"78":0.07423,"81":0.05567,"82":0.05567,"84":0.04949,"85":0.01856,"86":0.00619,"87":0.04949,"88":0.07423,"89":4.82508,"90":2.8703,"91":0.00619,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 83 92 3.5 3.6"},D:{"22":0.74232,"34":0.02474,"38":0.12372,"47":0.17321,"49":0.9712,"53":0.00619,"54":0.01856,"56":0.01237,"62":0.11753,"65":0.00619,"68":0.01856,"69":0.19795,"71":0.01856,"72":0.01856,"73":0.01856,"74":0.00619,"75":0.01237,"76":0.00619,"77":0.0866,"78":0.01237,"79":0.07423,"80":0.02474,"81":0.03093,"83":0.03093,"84":0.01856,"85":0.02474,"86":0.03712,"87":0.37735,"88":0.13609,"89":0.12372,"90":0.32786,"91":30.12582,"92":6.81697,_:"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 55 57 58 59 60 61 63 64 66 67 70 93 94 95"},F:{"12":0.09279,"25":0.09279,"31":0.85985,"40":0.6186,"46":0.00619,"72":0.01237,"76":0.12991,"77":1.36092,_:"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 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00064,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03257,"6.0-6.1":0.00128,"7.0-7.1":0.25931,"8.1-8.4":0.00575,"9.0-9.2":0.00128,"9.3":0.10922,"10.0-10.2":0.00639,"10.3":0.09644,"11.0-11.2":0.02108,"11.3-11.4":0.02172,"12.0-12.1":0.01788,"12.2-12.4":0.06962,"13.0-13.1":0.01277,"13.2":0.04088,"13.3":0.05429,"13.4-13.7":0.22163,"14.0-14.4":0.79454,"14.5-14.7":4.25884},E:{"4":0,"12":0.00619,"13":0.06186,"14":0.24125,_:"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.0433,"12.1":0.03093,"13.1":0.12991,"14.1":0.82274},B:{"15":0.06186,"18":0.01856,"84":0.00619,"85":0.01856,"89":0.01237,"90":0.01237,"91":2.10324,"92":0.63097,_:"12 13 14 16 17 79 80 81 83 86 87 88"},P:{"4":0.77874,"5.0-5.4":0.02093,"6.2-6.4":0.03079,"7.2-7.4":0.01046,"8.2":0.03071,"9.2":0.03139,"10.1":0.03156,"11.1-11.2":0.10668,"12.0":0.02134,"13.0":0.21335,"14.0":1.7175},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01598,"4.2-4.3":0.14152,"4.4":0,"4.4.3-4.4.4":0.43368},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46395,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":29.60591},S:{"2.5":0},R:{_:"0"},M:{"0":0.22503},Q:{"10.4":0},O:{"0":0.1373},H:{"0":0.22387}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js index e8d157140e8112..7bc1774ec2bdca 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js @@ -1 +1 @@ -module.exports={C:{"17":0.00411,"52":0.0329,"54":0.00823,"56":0.01234,"61":0.00411,"66":0.01645,"72":0.00823,"73":0.08637,"78":0.03702,"84":0.01234,"85":0.00823,"86":0.01645,"87":0.02057,"88":1.82206,"89":0.02879,_:"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 48 49 50 51 53 55 57 58 59 60 62 63 64 65 67 68 69 70 71 74 75 76 77 79 80 81 82 83 90 91 3.5 3.6"},D:{"38":0.01234,"42":0.00411,"46":0.00411,"49":0.10694,"53":0.0329,"63":0.01234,"65":0.01234,"67":0.00823,"68":0.00411,"69":0.0329,"70":0.00411,"71":0.01234,"72":0.01645,"73":0.00411,"74":0.02879,"75":0.02879,"76":0.0329,"77":0.00823,"78":0.02879,"79":0.0329,"80":0.02879,"81":0.0329,"83":0.04113,"84":0.02057,"85":0.02468,"86":0.07403,"87":0.13984,"88":0.10283,"89":0.4442,"90":27.36379,"91":1.02825,"92":0.00823,_:"4 5 6 7 8 9 10 11 12 13 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 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 66 93 94"},F:{"73":0.23033,"75":0.7897,"76":0.54292,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00414,"6.0-6.1":0.01793,"7.0-7.1":0.00828,"8.1-8.4":0,"9.0-9.2":0.00138,"9.3":0.06137,"10.0-10.2":0.00276,"10.3":0.05379,"11.0-11.2":0.00965,"11.3-11.4":0.02138,"12.0-12.1":0.01655,"12.2-12.4":0.08206,"13.0-13.1":0.02551,"13.2":0.00896,"13.3":0.06344,"13.4-13.7":0.16343,"14.0-14.4":4.15752,"14.5-14.6":1.8412},E:{"4":0,"11":0.00411,"12":0.00823,"13":0.0329,"14":0.94599,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00823,"11.1":0.0329,"12.1":0.03702,"13.1":0.23033,"14.1":0.473},B:{"12":0.00823,"14":0.00411,"15":0.00823,"16":0.00411,"17":0.00823,"18":0.0329,"84":0.00823,"85":0.00823,"88":0.00823,"89":0.06992,"90":2.29094,"91":0.15629,_:"13 79 80 81 83 86 87"},P:{"4":0.21481,"5.0-5.4":0.02084,"6.2-6.4":0.0417,"7.2-7.4":0.16366,"8.2":0.01051,"9.2":0.09206,"10.1":0.03069,"11.1-11.2":0.42961,"12.0":0.13298,"13.0":0.49099,"14.0":2.2299},I:{"0":0,"3":0,"4":0.00325,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00325,"4.2-4.3":0.00651,"4.4":0,"4.4.3-4.4.4":0.06939},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.5388,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.21778},Q:{"10.4":0},O:{"0":0.12949},H:{"0":0.28977},L:{"0":50.13369}}; +module.exports={C:{"24":0.00429,"31":0.00429,"41":0.01288,"43":0.00429,"52":0.01717,"61":0.00429,"66":0.02147,"72":0.00859,"73":0.11162,"78":0.04293,"84":0.00429,"86":0.01288,"87":0.00429,"88":0.02576,"89":1.15052,"90":0.77703,"91":0.01717,_:"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 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 62 63 64 65 67 68 69 70 71 74 75 76 77 79 80 81 82 83 85 92 3.5 3.6"},D:{"38":0.00859,"42":0.00859,"49":0.10733,"53":0.00859,"63":0.00859,"65":0.01717,"67":0.01288,"69":0.00859,"70":0.00859,"71":0.00429,"72":0.00429,"73":0.00429,"74":0.00859,"75":0.02147,"76":0.04293,"77":0.00859,"78":0.02576,"79":0.06869,"80":0.02147,"81":0.04293,"83":0.04293,"84":0.02147,"85":0.01717,"86":0.10303,"87":0.13738,"88":0.0644,"89":0.09874,"90":0.32627,"91":22.89028,"92":6.20768,"93":0.01717,_:"4 5 6 7 8 9 10 11 12 13 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 57 58 59 60 61 62 64 66 68 94 95"},F:{"76":0.58814,"77":1.10759,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00216,"6.0-6.1":0.0173,"7.0-7.1":0.00577,"8.1-8.4":0,"9.0-9.2":0.00072,"9.3":0.04759,"10.0-10.2":0.00144,"10.3":0.04831,"11.0-11.2":0.00865,"11.3-11.4":0.01875,"12.0-12.1":0.01226,"12.2-12.4":0.05263,"13.0-13.1":0.01514,"13.2":0.00649,"13.3":0.05191,"13.4-13.7":0.13483,"14.0-14.4":0.86447,"14.5-14.7":5.59994},E:{"4":0,"11":0.00429,"12":0.00859,"13":0.03434,"14":0.41213,"15":0.02147,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02147,"12.1":0.03434,"13.1":0.20177,"14.1":1.30507},B:{"12":0.00429,"15":0.00429,"16":0.00429,"17":0.00429,"18":0.03005,"80":0.00429,"84":0.00859,"85":0.01288,"89":0.02576,"90":0.03005,"91":2.19802,"92":0.65254,_:"13 14 79 81 83 86 87 88"},P:{"4":0.16404,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.1948,"8.2":0.01025,"9.2":0.07177,"10.1":0.02051,"11.1-11.2":0.39985,"12.0":0.08202,"13.0":0.25632,"14.0":2.32736},I:{"0":0,"3":0,"4":0.00318,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00212,"4.2-4.3":0.0053,"4.4":0,"4.4.3-4.4.4":0.06359},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15026,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":48.93539},S:{"2.5":0},R:{_:"0"},M:{"0":0.23399},Q:{"10.4":0},O:{"0":0.14268},H:{"0":0.22693}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js index 9e45150c8bd7ae..769a421354337d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js @@ -1 +1 @@ -module.exports={C:{"48":0.03738,"52":0.01246,"72":0.04153,"74":0.17858,"78":0.03738,"81":0.02907,"84":0.00831,"86":0.00415,"87":0.12459,"88":1.70273,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 75 76 77 79 80 82 83 85 89 90 91 3.5 3.6"},D:{"49":0.03322,"53":0.11213,"54":0.01246,"65":0.00831,"68":0.03322,"69":0.00831,"75":0.02907,"76":0.04984,"77":0.00415,"79":0.03322,"80":0.01661,"81":0.00415,"83":0.00831,"84":0.02077,"85":0.05399,"86":0.04984,"87":0.22842,"88":0.2035,"89":1.3082,"90":19.06227,"91":0.49421,"92":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 38 39 40 41 42 43 44 45 46 47 48 50 51 52 55 56 57 58 59 60 61 62 63 64 66 67 70 71 72 73 74 78 93 94"},F:{"73":0.10798,"75":0.34885,"76":0.19519,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00543,"7.0-7.1":0.00271,"8.1-8.4":0.11395,"9.0-9.2":0,"9.3":0.35813,"10.0-10.2":0.00271,"10.3":0.29573,"11.0-11.2":0.05697,"11.3-11.4":0.08411,"12.0-12.1":0.06511,"12.2-12.4":0.1872,"13.0-13.1":0.04612,"13.2":0.05697,"13.3":0.32557,"13.4-13.7":0.93602,"14.0-14.4":20.23421,"14.5-14.6":3.37237},E:{"4":0,"10":0.00415,"12":0.04984,"13":0.66863,"14":4.913,_:"0 5 6 7 8 9 11 3.1 3.2 6.1 7.1","5.1":0.21596,"9.1":0.00415,"10.1":0.02077,"11.1":0.05399,"12.1":0.14951,"13.1":0.70186,"14.1":0.96765},B:{"13":0.00831,"15":0.01246,"16":0.00831,"17":0.02907,"18":0.23672,"81":0.00415,"86":0.02077,"87":0.00831,"88":0.00415,"89":0.0623,"90":3.62557,"91":0.19519,_:"12 14 79 80 83 84 85"},P:{"4":0.50628,"5.0-5.4":0.05166,"6.2-6.4":0.0812,"7.2-7.4":0.031,"8.2":0.0105,"9.2":0.06199,"10.1":0.08266,"11.1-11.2":0.21698,"12.0":0.07233,"13.0":0.68193,"14.0":5.26945},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00167,"4.4":0,"4.4.3-4.4.4":0.01002},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00967,"11":1.04934,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.17538},Q:{"10.4":0},O:{"0":0.04677},H:{"0":0.29333},L:{"0":27.78209}}; +module.exports={C:{"48":0.01221,"52":0.00407,"71":0.01221,"72":0.02441,"74":0.16683,"78":0.02848,"81":0.01628,"84":0.03255,"85":0.00407,"87":0.01628,"88":0.01628,"89":0.94401,"90":0.55745,"91":0.00814,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 73 75 76 77 79 80 82 83 86 92 3.5 3.6"},D:{"38":0.00814,"49":0.08138,"53":0.01221,"54":0.00814,"58":0.01221,"67":0.02035,"68":0.02441,"69":0.00814,"75":0.02441,"76":0.01628,"79":0.10173,"80":0.00814,"81":0.00814,"84":0.00814,"85":0.02035,"86":0.02441,"87":0.32552,"88":0.07731,"89":0.27669,"90":0.41097,"91":15.7511,"92":4.11783,_:"4 5 6 7 8 9 10 11 12 13 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 55 56 57 59 60 61 62 63 64 65 66 70 71 72 73 74 77 78 83 93 94 95"},F:{"46":0.00814,"75":0.00814,"76":0.09766,"77":0.26042,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.17496,"9.0-9.2":0,"9.3":0.34388,"10.0-10.2":0.00302,"10.3":0.30165,"11.0-11.2":0.04525,"11.3-11.4":0.04525,"12.0-12.1":0.12971,"12.2-12.4":0.2202,"13.0-13.1":0.06033,"13.2":0.02413,"13.3":0.26847,"13.4-13.7":0.96225,"14.0-14.4":5.04656,"14.5-14.7":21.50743},E:{"4":0,"10":0.00407,"11":0.00407,"13":0.59407,"14":1.37125,"15":0.01221,_:"0 5 6 7 8 9 12 3.1 3.2 6.1 7.1 9.1","5.1":0.04476,"10.1":0.08952,"11.1":0.10173,"12.1":0.0529,"13.1":0.472,"14.1":4.8177},B:{"12":0.01628,"15":0.01628,"16":0.01628,"17":0.00814,"18":0.08952,"86":0.01221,"88":0.04069,"89":0.02441,"90":0.00814,"91":3.55631,"92":1.11491,_:"13 14 79 80 81 83 84 85 87"},P:{"4":0.58952,"5.0-5.4":0.06158,"6.2-6.4":0.03079,"7.2-7.4":0.02068,"8.2":0.03071,"9.2":0.06205,"10.1":0.09308,"11.1-11.2":0.28959,"12.0":0.16548,"13.0":0.3413,"14.0":4.64378},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00074,"4.2-4.3":0.00148,"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.61849,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":26.18865},S:{"2.5":0},R:{_:"0"},M:{"0":0.37958},Q:{"10.4":0},O:{"0":0.03559},H:{"0":0.16845}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js index b06b5370fde548..e8b91687693a46 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js @@ -1 +1 @@ -module.exports={C:{"15":0.13143,"27":0.01133,"45":0.0068,"84":0.00227,"85":0.02266,"87":0.00227,"88":2.24107,"89":0.00453,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 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 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 86 90 91 3.5 3.6"},D:{"11":0.02266,"25":0.00906,"26":0.0068,"33":0.00906,"37":0.00227,"40":0.01586,"43":0.2402,"48":0.0068,"49":0.0068,"51":0.00227,"60":0.0136,"70":0.01133,"71":0.00453,"74":0.00227,"76":0.01133,"79":0.08611,"81":0.04079,"83":0.00906,"84":0.00906,"85":0.0068,"86":0.04985,"87":0.02266,"88":0.01586,"89":0.14502,"90":8.54735,"91":0.36029,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 34 35 36 38 39 41 42 44 45 46 47 50 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 72 73 75 77 78 80 92 93 94"},F:{"73":0.00227,"74":0.00227,"75":0.23566,"76":0.28778,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00428,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01399,"6.0-6.1":0,"7.0-7.1":0.11039,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00855,"10.0-10.2":0.15393,"10.3":0.11195,"11.0-11.2":0.02488,"11.3-11.4":0.0517,"12.0-12.1":0.38598,"12.2-12.4":1.03279,"13.0-13.1":0.01555,"13.2":0.00544,"13.3":0.03343,"13.4-13.7":0.11078,"14.0-14.4":1.48757,"14.5-14.6":0.19979},E:{"4":0,"9":0.00227,"11":0.00227,"13":0.02266,"14":0.04759,_:"0 5 6 7 8 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.04985,"14.1":0.35576},B:{"12":0.02946,"13":0.00227,"14":0.02946,"16":0.00906,"17":0.03399,"18":0.04532,"80":0.00453,"84":0.01813,"88":0.02946,"89":0.02719,"90":2.0258,"91":0.25832,_:"15 79 81 83 85 86 87"},P:{"4":0.56492,"5.0-5.4":0.01009,"6.2-6.4":0.01009,"7.2-7.4":1.23071,"8.2":0.03026,"9.2":0.02018,"10.1":0.04035,"11.1-11.2":0.29255,"12.0":0.26228,"13.0":0.2522,"14.0":0.30263},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.00242,"4.4":0,"4.4.3-4.4.4":0.15948},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06798,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.8198},R:{_:"0"},M:{"0":0.05414},Q:{"10.4":0},O:{"0":0.10054},H:{"0":4.7154},L:{"0":71.1601}}; +module.exports={C:{"15":0.02535,"29":0.0039,"34":0.0117,"43":0.0039,"45":0.0039,"56":0.05655,"64":0.00585,"84":0.00585,"85":0.0234,"88":0.01365,"89":0.4953,"90":0.1248,_:"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 30 31 32 33 35 36 37 38 39 40 41 42 44 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 86 87 91 92 3.5 3.6"},D:{"25":0.0039,"33":0.0312,"38":0.0039,"40":0.01755,"42":0.00975,"43":0.0702,"46":0.0078,"49":0.0195,"53":0.0195,"63":0.01755,"67":0.00585,"70":0.01365,"71":0.0039,"74":0.00975,"76":0.00975,"79":0.1248,"81":0.0663,"83":0.02535,"84":0.00975,"86":0.0078,"87":0.00585,"88":0.0078,"89":0.08775,"90":0.16575,"91":5.10705,"92":1.63995,_:"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 34 35 36 37 39 41 44 45 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 68 69 72 73 75 77 78 80 85 93 94 95"},F:{"76":0.0117,"77":0.21645,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00294,"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.02238,"8.1-8.4":0.00158,"9.0-9.2":0,"9.3":0.01334,"10.0-10.2":0.00294,"10.3":0.13815,"11.0-11.2":0.02962,"11.3-11.4":0.02216,"12.0-12.1":0.11305,"12.2-12.4":0.12187,"13.0-13.1":0.00158,"13.2":0,"13.3":0.0104,"13.4-13.7":0.07439,"14.0-14.4":0.56256,"14.5-14.7":1.00822},E:{"4":0,"14":0.039,_:"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","5.1":0.0039,"12.1":0.01755,"13.1":0.0039,"14.1":0.25935},B:{"12":0.00975,"14":0.0078,"15":0.0195,"16":0.03705,"18":0.0468,"83":0.0039,"84":0.0234,"88":0.02925,"89":0.03705,"91":2.50575,"92":0.80145,_:"13 17 79 80 81 85 86 87 90"},P:{"4":0.55315,"5.0-5.4":0.96549,"6.2-6.4":0.05029,"7.2-7.4":0.60343,"8.2":0.0205,"9.2":0.05029,"10.1":0.02051,"11.1-11.2":0.50286,"12.0":0.10057,"13.0":0.13074,"14.0":0.87498},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00037,"4.2-4.3":0.00028,"4.4":0,"4.4.3-4.4.4":0.104},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.09482,"11":0.66373,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":74.96375},S:{"2.5":0.55545},R:{_:"0"},M:{"0":0.21735},Q:{"10.4":0},O:{"0":0.13685},H:{"0":4.54987}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js index 41bc4a8db29f36..f348a2a10acc75 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js @@ -1 +1 @@ -module.exports={C:{"78":0.00733,"81":0.00366,"84":0.00733,"85":0.02198,"86":0.02198,"87":0.01832,"88":1.21612,"89":0.01465,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 90 91 3.5 3.6"},D:{"38":0.01465,"39":0.01099,"46":0.00366,"49":0.05495,"50":0.00733,"53":0.00366,"60":0.00366,"63":0.01099,"65":0.01465,"67":0.00366,"68":0.01465,"69":0.01465,"70":0.03297,"73":0.00366,"74":0.10623,"75":0.01832,"76":0.04396,"77":0.05495,"78":0.00366,"79":0.03663,"80":0.04396,"81":0.06227,"83":0.01465,"84":0.30037,"85":0.04762,"86":0.21612,"87":0.20879,"88":0.10256,"89":0.6044,"90":18.73258,"91":0.81319,"92":0.11355,_:"4 5 6 7 8 9 10 11 12 13 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 47 48 51 52 54 55 56 57 58 59 61 62 64 66 71 72 93 94"},F:{"56":0.02198,"73":0.01832,"75":0.34799,"76":0.50183,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.067,"6.0-6.1":0.00096,"7.0-7.1":0.20866,"8.1-8.4":0.00096,"9.0-9.2":0.00574,"9.3":0.10146,"10.0-10.2":0.00191,"10.3":0.12347,"11.0-11.2":0.0268,"11.3-11.4":0.03254,"12.0-12.1":0.01244,"12.2-12.4":0.12922,"13.0-13.1":0.01627,"13.2":0.00479,"13.3":0.0737,"13.4-13.7":0.20483,"14.0-14.4":6.36796,"14.5-14.6":1.50082},E:{"4":0,"11":0.00366,"13":0.02198,"14":0.81685,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.10256,"10.1":0.00733,"11.1":0.01099,"12.1":0.02198,"13.1":0.63004,"14.1":0.37729},B:{"12":0.00733,"13":0.01099,"14":0.00733,"15":0.01832,"16":0.0293,"17":0.04029,"18":0.23443,"80":0.00366,"84":0.01465,"85":0.04029,"86":0.02198,"87":0.00733,"88":0.01832,"89":0.12088,"90":4.53113,"91":0.26374,_:"79 81 83"},P:{"4":0.47304,"5.0-5.4":0.0215,"6.2-6.4":0.01009,"7.2-7.4":0.19352,"8.2":0.03026,"9.2":0.05375,"10.1":0.18277,"11.1-11.2":0.64506,"12.0":0.10751,"13.0":0.66656,"14.0":3.70908},I:{"0":0,"3":0,"4":0.01257,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00686,"4.2-4.3":0.01143,"4.4":0,"4.4.3-4.4.4":0.1783},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.03043,"11":0.76078,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.02535},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.12676},Q:{"10.4":0.09507},O:{"0":1.30563},H:{"0":0.60604},L:{"0":50.00631}}; +module.exports={C:{"52":0.01094,"78":0.00365,"84":0.00365,"85":0.01824,"87":0.00729,"88":0.01459,"89":0.58717,"90":0.53246,"91":0.01459,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 86 92 3.5 3.6"},D:{"34":0.02188,"47":0.00729,"49":0.03282,"55":0.01094,"57":0.00729,"60":0.00729,"63":0.01824,"66":0.00729,"68":0.04376,"69":0.02553,"70":0.02553,"71":0.00365,"72":0.01459,"73":0.00729,"74":0.07294,"75":0.03282,"76":0.06565,"77":0.10576,"79":0.1167,"80":0.02188,"81":0.09847,"83":0.00729,"84":0.01824,"85":0.01459,"86":0.02918,"87":0.08388,"88":0.05471,"89":0.09482,"90":0.27717,"91":16.31668,"92":3.89135,"93":0.05835,_:"4 5 6 7 8 9 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 53 54 56 58 59 61 62 64 65 67 78 94 95"},F:{"28":0.10576,"75":0.00365,"76":0.09482,"77":0.56529,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00104,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04588,"6.0-6.1":0.00209,"7.0-7.1":0.20331,"8.1-8.4":0.00626,"9.0-9.2":0,"9.3":0.09905,"10.0-10.2":0.0073,"10.3":0.11261,"11.0-11.2":0.02398,"11.3-11.4":0.01772,"12.0-12.1":0.01668,"12.2-12.4":0.15431,"13.0-13.1":0.01564,"13.2":0.00313,"13.3":0.03858,"13.4-13.7":0.28256,"14.0-14.4":1.15941,"14.5-14.7":7.42255},E:{"4":0,"13":0.00365,"14":0.11306,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 11.1 12.1","5.1":0.01094,"10.1":0.03282,"13.1":0.6674,"14.1":0.8534},B:{"12":0.00365,"13":0.00729,"14":0.00365,"15":0.04741,"16":0.00729,"17":0.01824,"18":0.248,"80":0.01459,"81":0.01459,"84":0.00729,"85":0.02918,"86":0.00729,"87":0.07659,"88":0.01459,"89":0.03282,"90":0.03647,"91":4.04088,"92":1.00657,_:"79 83"},P:{"4":0.56542,"5.0-5.4":0.01087,"6.2-6.4":0.05029,"7.2-7.4":0.35882,"8.2":0.0205,"9.2":0.11961,"10.1":0.15223,"11.1-11.2":0.54367,"12.0":0.05437,"13.0":0.3262,"14.0":4.0884},I:{"0":0,"3":0,"4":0.01263,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00379,"4.2-4.3":0.00505,"4.4":0,"4.4.3-4.4.4":0.18183},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.05584,"11":0.48392,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.26683},N:{"11":0.01472,_:"10"},L:{"0":50.06423},S:{"2.5":0},R:{_:"0"},M:{"0":0.10165},Q:{"10.4":0.13341},O:{"0":1.24519},H:{"0":0.24058}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js index f61166fb35237f..646336bdafbb06 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js @@ -1 +1 @@ -module.exports={C:{"34":0.02642,"52":0.02642,"56":0.00528,"68":0.00528,"72":0.01057,"74":0.01057,"78":0.06868,"83":0.00528,"84":0.01585,"85":0.02113,"86":0.02113,"87":0.04755,"88":1.59018,"89":0.00528,_:"2 3 4 5 6 7 8 9 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 75 76 77 79 80 81 82 90 91 3.5 3.6"},D:{"19":0.00528,"22":0.02113,"26":0.01585,"30":0.00528,"34":0.08453,"38":0.19019,"46":0.01057,"48":0.01057,"49":0.14264,"53":0.31698,"54":0.00528,"55":0.02642,"56":0.01585,"57":0.01057,"58":0.00528,"60":0.00528,"61":0.02113,"62":0.02642,"63":0.01585,"64":0.02642,"65":0.03698,"66":0.01057,"67":0.03698,"68":0.12679,"69":0.04226,"70":0.03698,"71":0.0317,"72":0.04755,"73":0.0317,"74":0.03698,"75":0.05811,"76":0.02642,"77":0.02642,"78":0.05283,"79":0.19547,"80":0.10566,"81":0.06868,"83":0.14792,"84":0.07396,"85":0.05811,"86":0.4966,"87":0.56,"88":0.51245,"89":1.72226,"90":27.79386,"91":0.91924,"92":0.04226,_:"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 45 47 50 51 52 59 93 94"},F:{"36":0.03698,"40":0.01057,"46":0.0634,"73":0.01057,"75":0.07396,"76":0.11094,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00194,"5.0-5.1":0.03291,"6.0-6.1":0.01742,"7.0-7.1":0.03678,"8.1-8.4":0.03678,"9.0-9.2":0.02323,"9.3":0.26905,"10.0-10.2":0.04452,"10.3":0.19743,"11.0-11.2":0.09291,"11.3-11.4":0.11226,"12.0-12.1":0.12194,"12.2-12.4":0.36002,"13.0-13.1":0.11807,"13.2":0.03871,"13.3":0.27098,"13.4-13.7":0.85941,"14.0-14.4":13.58984,"14.5-14.6":2.40401},E:{"4":0,"8":0.02642,"11":0.01585,"12":0.02642,"13":0.2166,"14":5.24074,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00528,"10.1":0.03698,"11.1":0.07396,"12.1":0.13736,"13.1":0.73434,"14.1":0.97207},B:{"12":0.01057,"16":0.00528,"17":0.01585,"18":0.05811,"84":0.00528,"86":0.01057,"87":0.00528,"88":0.01057,"89":0.0634,"90":3.55018,"91":0.14264,_:"13 14 15 79 80 81 83 85"},P:{"4":0.91475,"5.0-5.4":0.02084,"6.2-6.4":0.0417,"7.2-7.4":0.01102,"8.2":0.01051,"9.2":0.07715,"10.1":0.03306,"11.1-11.2":0.12123,"12.0":0.12123,"13.0":0.42982,"14.0":4.37537},I:{"0":0,"3":0,"4":0.00109,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00218,"4.2-4.3":0.00653,"4.4":0,"4.4.3-4.4.4":0.0468},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.55169,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.24995},Q:{"10.4":0.15091},O:{"0":0.65552},H:{"0":0.09376},L:{"0":22.8722}}; +module.exports={C:{"34":0.02632,"52":0.03158,"63":0.01053,"67":0.00526,"69":0.03685,"72":0.01053,"78":0.0579,"80":0.00526,"84":0.01053,"85":0.01053,"86":0.01053,"88":0.03685,"89":0.98437,"90":0.6001,_:"2 3 4 5 6 7 8 9 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 64 65 66 68 70 71 73 74 75 76 77 79 81 82 83 87 91 92 3.5 3.6"},D:{"19":0.01053,"22":0.02106,"26":0.01579,"30":0.00526,"34":0.0737,"38":0.18424,"46":0.00526,"48":0.01053,"49":0.12634,"53":0.07896,"54":0.00526,"55":0.02632,"56":0.01579,"57":0.01053,"58":0.01053,"60":0.00526,"61":0.02106,"62":0.02632,"63":0.01053,"64":0.01053,"65":0.03685,"66":0.01053,"67":0.03158,"68":0.03685,"69":0.04738,"70":0.02106,"71":0.02632,"72":0.04211,"73":0.03158,"74":0.04738,"75":0.0579,"76":0.03158,"77":0.02106,"78":0.08949,"79":0.54746,"80":0.08422,"81":0.0579,"83":0.11054,"84":0.06317,"85":0.06843,"86":0.21582,"87":0.24741,"88":0.2053,"89":0.40533,"90":1.15282,"91":25.36195,"92":4.78498,"93":0.04738,_:"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 45 47 50 51 52 59 94 95"},F:{"28":0.00526,"36":0.04211,"40":0.01053,"46":0.06843,"76":0.02632,"77":0.16845,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00395,"5.0-5.1":0.02963,"6.0-6.1":0.01778,"7.0-7.1":0.03951,"8.1-8.4":0.03754,"9.0-9.2":0.02766,"9.3":0.25683,"10.0-10.2":0.06717,"10.3":0.19361,"11.0-11.2":0.12249,"11.3-11.4":0.09878,"12.0-12.1":0.11064,"12.2-12.4":0.29437,"13.0-13.1":0.10273,"13.2":0.02963,"13.3":0.22522,"13.4-13.7":0.72703,"14.0-14.4":3.21436,"14.5-14.7":13.38294},E:{"4":0,"8":0.02106,"11":0.01579,"12":0.02632,"13":0.20003,"14":1.72659,"15":0.01579,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00526,"10.1":0.03685,"11.1":0.06843,"12.1":0.11054,"13.1":0.658,"14.1":5.0745},B:{"12":0.01053,"16":0.00526,"17":0.01053,"18":0.04211,"86":0.01053,"89":0.01579,"90":0.02106,"91":2.77413,"92":0.79486,_:"13 14 15 79 80 81 83 84 85 87 88"},P:{"4":0.96816,"5.0-5.4":0.01034,"6.2-6.4":0.05041,"7.2-7.4":0.18613,"8.2":0.01034,"9.2":0.06677,"10.1":0.01113,"11.1-11.2":0.10015,"12.0":0.0779,"13.0":0.26708,"14.0":4.39566},I:{"0":0,"3":0,"4":0.00166,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00276,"4.2-4.3":0.00717,"4.4":0,"4.4.3-4.4.4":0.04524},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01013,"11":1.32693,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":23.10136},S:{"2.5":0},R:{_:"0"},M:{"0":0.25574},Q:{"10.4":0.20838},O:{"0":0.80986},H:{"0":0.08967}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js index 507675ee3a76a2..e701a511952dae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js @@ -1 +1 @@ -module.exports={C:{"52":0.01838,"60":0.00459,"63":0.00919,"72":0.00919,"73":0.08269,"78":0.03216,"81":0.00459,"85":0.00459,"86":0.00919,"87":0.02756,"88":1.69978,"89":0.03675,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 64 65 66 67 68 69 70 71 74 75 76 77 79 80 82 83 84 90 91 3.5 3.6"},D:{"24":0.00459,"38":0.01838,"49":0.14241,"53":0.08269,"55":0.00919,"63":0.01378,"65":0.01378,"67":0.00919,"68":0.01378,"69":0.06432,"70":0.03216,"72":0.00459,"73":0.02297,"74":0.01838,"75":0.05053,"76":0.09188,"77":0.01378,"78":0.03216,"79":0.05053,"80":0.06891,"81":0.03216,"83":0.05513,"84":0.16538,"85":0.0735,"86":0.05053,"87":0.43643,"88":0.19754,"89":0.74882,"90":27.16432,"91":1.14391,"92":0.00919,_:"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 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 62 64 66 71 93 94"},F:{"73":0.18835,"75":0.86367,"76":0.58803,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00419,"7.0-7.1":0.01761,"8.1-8.4":0.00168,"9.0-9.2":0.00335,"9.3":0.09477,"10.0-10.2":0.0109,"10.3":0.10567,"11.0-11.2":0.02516,"11.3-11.4":0.02013,"12.0-12.1":0.01426,"12.2-12.4":0.1107,"13.0-13.1":0.026,"13.2":0.00503,"13.3":0.09728,"13.4-13.7":0.25495,"14.0-14.4":5.38751,"14.5-14.6":1.68485},E:{"4":0,"13":0.0781,"14":0.89124,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":1.04743,"10.1":0.01838,"11.1":0.04594,"12.1":0.02756,"13.1":0.24348,"14.1":0.42724},B:{"12":0.00919,"13":0.00459,"14":0.00919,"15":0.01378,"16":0.00919,"17":0.04594,"18":0.18376,"80":0.00459,"84":0.01378,"85":0.00459,"87":0.00459,"88":0.00919,"89":0.03675,"90":2.71046,"91":0.19754,_:"79 81 83 86"},P:{"4":0.32121,"5.0-5.4":0.15169,"6.2-6.4":0.05056,"7.2-7.4":0.17615,"8.2":0.01011,"9.2":0.08289,"10.1":0.01036,"11.1-11.2":0.36265,"12.0":0.24868,"13.0":0.50771,"14.0":2.14483},I:{"0":0,"3":0,"4":0.00124,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00373,"4.2-4.3":0.00685,"4.4":0,"4.4.3-4.4.4":0.07467},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01468,"11":0.80764,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.0865},Q:{"10.4":0.01081},O:{"0":0.23786},H:{"0":0.24055},L:{"0":45.74268}}; +module.exports={C:{"4":0.0087,"5":0.0087,"15":0.0087,"17":0.0087,"52":0.02174,"61":0.0087,"72":0.0087,"73":0.07826,"78":0.06957,"81":0.01304,"84":0.0087,"86":0.00435,"87":0.00435,"88":0.01304,"89":1.02178,"90":0.74351,"91":0.01739,_:"2 3 6 7 8 9 10 11 12 13 14 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 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 82 83 85 92 3.5 3.6"},D:{"24":0.01304,"25":0.00435,"38":0.01739,"47":0.0087,"49":0.06087,"53":0.03913,"55":0.0087,"63":0.01739,"65":0.01304,"66":0.0087,"67":0.02174,"68":0.0087,"69":0.0087,"70":0.0087,"71":0.00435,"72":0.01304,"73":0.01739,"74":0.02609,"75":0.06957,"76":0.12174,"77":0.01739,"78":0.02174,"79":0.14348,"80":0.1,"81":0.03044,"83":0.04783,"84":0.12609,"85":0.13479,"86":0.04783,"87":0.28697,"88":0.08261,"89":0.20001,"90":0.45219,"91":21.02693,"92":5.62631,"93":0.01304,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 94 95"},F:{"65":0.00435,"76":0.48263,"77":1.20874,_:"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 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00351,"6.0-6.1":0.00526,"7.0-7.1":0.02895,"8.1-8.4":0.00263,"9.0-9.2":0.00175,"9.3":0.12018,"10.0-10.2":0.00526,"10.3":0.12983,"11.0-11.2":0.02544,"11.3-11.4":0.02807,"12.0-12.1":0.01404,"12.2-12.4":0.07807,"13.0-13.1":0.02807,"13.2":0.00614,"13.3":0.09737,"13.4-13.7":0.18948,"14.0-14.4":1.18779,"14.5-14.7":6.24773},E:{"4":0,"13":0.04783,"14":0.39132,"15":0.0087,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.45219,"10.1":0.01304,"11.1":0.04783,"12.1":0.02174,"13.1":0.11305,"14.1":0.93917},B:{"12":0.0087,"13":0.00435,"14":0.01304,"15":0.01739,"16":0.0087,"17":0.02174,"18":0.10435,"83":0.00435,"84":0.01304,"85":0.0087,"87":0.03044,"88":0.00435,"89":0.03044,"90":0.02174,"91":2.41314,"92":0.75655,_:"79 80 81 86"},P:{"4":0.33091,"5.0-5.4":0.01034,"6.2-6.4":0.05041,"7.2-7.4":0.18613,"8.2":0.01034,"9.2":0.07239,"10.1":0.01034,"11.1-11.2":0.35159,"12.0":0.08273,"13.0":0.2275,"14.0":2.24396},I:{"0":0,"3":0,"4":0.0011,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00166,"4.2-4.3":0.00608,"4.4":0,"4.4.3-4.4.4":0.06463},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00922,"10":0.01383,"11":0.51175,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":48.38627},S:{"2.5":0},R:{_:"0"},M:{"0":0.19779},Q:{"10.4":0.0226},O:{"0":0.20909},H:{"0":0.24075}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js index a3461e6e0a9c7e..59bbe8c2b207bd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js @@ -1 +1 @@ -module.exports={C:{"52":0.12206,"56":0.00509,"57":0.01017,"63":0.02543,"65":0.00509,"66":0.00509,"68":0.01526,"72":0.02034,"75":0.01017,"77":0.00509,"78":0.17801,"79":0.00509,"80":0.01526,"81":0.01526,"82":0.01017,"83":0.01017,"84":0.02034,"85":0.04577,"86":0.11698,"87":0.15258,"88":6.36259,"89":0.01526,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 58 59 60 61 62 64 67 69 70 71 73 74 76 90 91 3.5 3.6"},D:{"38":0.01017,"43":0.01526,"47":0.00509,"49":0.24921,"53":0.06103,"62":0.00509,"63":0.01526,"65":0.01017,"66":0.01526,"68":0.01526,"69":0.01526,"70":0.01017,"71":0.01526,"72":0.01017,"73":0.00509,"74":0.01017,"75":0.11698,"76":0.01526,"77":0.28482,"78":0.02034,"79":0.05086,"80":0.04069,"81":0.33568,"83":0.0356,"84":0.0356,"85":0.02034,"86":0.08138,"87":0.28482,"88":0.19835,"89":0.78833,"90":29.75819,"91":1.15452,"92":0.00509,_:"4 5 6 7 8 9 10 11 12 13 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 56 57 58 59 60 61 64 67 93 94"},F:{"32":0.01017,"36":0.02034,"46":0.00509,"72":0.00509,"73":0.09663,"74":0.00509,"75":0.85445,"76":1.25624,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00198,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00792,"6.0-6.1":0.00132,"7.0-7.1":0.00528,"8.1-8.4":0.00924,"9.0-9.2":0.0033,"9.3":0.21918,"10.0-10.2":0.00462,"10.3":0.10035,"11.0-11.2":0.02443,"11.3-11.4":0.03037,"12.0-12.1":0.03499,"12.2-12.4":0.13402,"13.0-13.1":0.0165,"13.2":0.00792,"13.3":0.07592,"13.4-13.7":0.27266,"14.0-14.4":4.62201,"14.5-14.6":0.74866},E:{"4":0,"12":0.01017,"13":0.02543,"14":0.86971,_:"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.03052,"12.1":0.05086,"13.1":0.18818,"14.1":0.2899},B:{"15":0.00509,"16":0.01526,"17":0.02543,"18":0.05595,"84":0.00509,"85":0.01526,"86":0.01526,"87":0.01017,"88":0.06103,"89":0.06103,"90":2.52266,"91":0.1831,_:"12 13 14 79 80 81 83"},P:{"4":0.17628,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.01037,"8.2":0.03018,"9.2":0.05185,"10.1":0.06222,"11.1-11.2":0.19701,"12.0":0.14517,"13.0":0.5392,"14.0":3.73291},I:{"0":0,"3":0,"4":0.00077,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00231,"4.2-4.3":0.00615,"4.4":0,"4.4.3-4.4.4":0.035},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.68661,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.27524},Q:{"10.4":0},O:{"0":0.05898},H:{"0":0.41879},L:{"0":39.12727}}; +module.exports={C:{"48":0.00917,"52":0.10085,"56":0.00458,"57":0.00917,"63":0.0275,"66":0.00458,"67":0.00917,"68":0.00917,"72":0.00917,"77":0.00458,"78":0.12377,"79":0.00458,"82":0.00458,"83":0.00458,"84":0.0275,"85":0.01375,"86":0.01375,"87":0.01375,"88":0.09168,"89":3.57094,"90":1.85652,"91":0.00917,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 58 59 60 61 62 64 65 69 70 71 73 74 75 76 80 81 92 3.5 3.6"},D:{"38":0.01375,"43":0.01375,"47":0.00458,"49":0.18336,"53":0.0275,"59":0.00917,"61":0.00917,"62":0.00458,"63":0.01375,"65":0.00458,"66":0.00917,"67":0.00458,"68":0.00917,"69":0.01375,"70":0.00917,"71":0.01375,"72":0.00917,"73":0.00917,"74":0.00917,"75":0.11918,"76":0.0275,"77":0.05959,"78":0.02292,"79":0.10085,"80":0.03209,"81":0.1421,"83":0.03209,"84":0.0275,"85":0.02292,"86":0.07793,"87":0.32088,"88":0.07793,"89":0.14669,"90":0.46757,"91":22.13155,"92":5.25326,"93":0.00458,_:"4 5 6 7 8 9 10 11 12 13 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 56 57 58 60 64 94 95"},F:{"32":0.00917,"36":0.00917,"46":0.00917,"76":0.24295,"77":1.70525,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00176,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00703,"6.0-6.1":0.00176,"7.0-7.1":0.00616,"8.1-8.4":0.00528,"9.0-9.2":0.00176,"9.3":0.12663,"10.0-10.2":0.00176,"10.3":0.08178,"11.0-11.2":0.0211,"11.3-11.4":0.03254,"12.0-12.1":0.04045,"12.2-12.4":0.10552,"13.0-13.1":0.0211,"13.2":0.01319,"13.3":0.07826,"13.4-13.7":0.26556,"14.0-14.4":1.36651,"14.5-14.7":6.29789},E:{"4":0,"8":0.00458,"12":0.00458,"13":0.04584,"14":0.36672,"15":0.00458,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00917,"11.1":0.02292,"12.1":0.0871,"13.1":0.17878,"14.1":1.10474},B:{"14":0.00917,"16":0.01375,"17":0.01375,"18":0.03209,"84":0.00917,"86":0.00917,"88":0.02292,"89":0.01834,"90":0.00917,"91":2.17282,"92":0.573,_:"12 13 15 79 80 81 83 85 87"},P:{"4":0.11354,"5.0-5.4":0.01062,"6.2-6.4":0.01036,"7.2-7.4":0.01032,"8.2":0.02033,"9.2":0.02064,"10.1":0.04129,"11.1-11.2":0.1858,"12.0":0.07226,"13.0":0.28902,"14.0":4.53147},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00253,"4.2-4.3":0.0059,"4.4":0,"4.4.3-4.4.4":0.02949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.41714,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":42.29142},S:{"2.5":0},R:{_:"0"},M:{"0":0.39537},Q:{"10.4":0},O:{"0":0.06499},H:{"0":0.47173}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js index 4e10596021b4f0..7dd7f3f801c9ad 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js @@ -1 +1 @@ -module.exports={C:{"16":0.00162,"18":0.00323,"37":0.00162,"38":0.00485,"43":0.00162,"47":0.00808,"52":0.00808,"57":0.00162,"63":0.00162,"65":0.00808,"66":0.00323,"72":0.00485,"78":0.05171,"79":0.00162,"80":0.00646,"82":0.00162,"84":0.00323,"85":0.00646,"86":0.00808,"87":0.05333,"88":0.63509,"89":0.00485,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 58 59 60 61 62 64 67 68 69 70 71 73 74 75 76 77 81 83 90 91 3.5 3.6"},D:{"11":0.00646,"30":0.00485,"33":0.00323,"36":0.00162,"38":0.00323,"39":0.01131,"42":0.01293,"43":0.00646,"46":0.00162,"49":0.01454,"50":0.00323,"53":0.00323,"55":0.00485,"56":0.02747,"57":0.04686,"58":0.00485,"60":0.0711,"61":0.00323,"62":0.00485,"63":0.01293,"64":0.00808,"65":0.0097,"66":0.00808,"67":0.00323,"68":0.00485,"69":0.01454,"70":0.02262,"71":0.00485,"72":0.00646,"73":0.00485,"74":0.01778,"75":0.03717,"76":0.08565,"77":0.0097,"78":0.00485,"79":0.02909,"80":0.0404,"81":0.03232,"83":0.01131,"84":0.01131,"85":0.01939,"86":0.0404,"87":0.17614,"88":0.11474,"89":0.29411,"90":6.90517,"91":0.24563,"92":0.00485,_:"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 34 35 37 40 41 44 45 47 48 51 52 54 59 93 94"},F:{"72":0.00162,"73":0.01454,"74":0.00323,"75":0.4137,"76":0.43955,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0056,"6.0-6.1":0.00187,"7.0-7.1":0.03173,"8.1-8.4":0.00373,"9.0-9.2":0.04106,"9.3":0.42922,"10.0-10.2":0.01773,"10.3":0.26313,"11.0-11.2":0.14463,"11.3-11.4":0.19128,"12.0-12.1":0.24167,"12.2-12.4":0.65223,"13.0-13.1":0.20435,"13.2":0.02893,"13.3":0.3751,"13.4-13.7":0.83138,"14.0-14.4":4.36779,"14.5-14.6":0.66996},E:{"4":0,"8":0.00323,"11":0.09373,"13":0.04686,"14":0.38138,_:"0 5 6 7 9 10 12 3.1 3.2 6.1 7.1","5.1":0.0905,"9.1":0.00323,"10.1":0.01616,"11.1":0.01454,"12.1":0.03394,"13.1":0.09534,"14.1":0.23432},B:{"12":0.10019,"13":0.01454,"14":0.01293,"15":0.01616,"16":0.02424,"17":0.07272,"18":0.10342,"80":0.01293,"81":0.00323,"83":0.00485,"84":0.01939,"85":0.00808,"86":0.00323,"87":0.00646,"88":0.01293,"89":0.06464,"90":1.41723,"91":0.0711,_:"79"},P:{"4":0.49551,"5.0-5.4":0.15169,"6.2-6.4":0.05056,"7.2-7.4":0.30337,"8.2":0.01011,"9.2":0.17191,"10.1":0.03034,"11.1-11.2":0.4045,"12.0":0.13146,"13.0":0.52584,"14.0":1.01124},I:{"0":0,"3":0,"4":0.00011,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00102,"4.2-4.3":0.00273,"4.4":0,"4.4.3-4.4.4":0.04643},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00323,"11":0.1212,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01677},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.13414},Q:{"10.4":0},O:{"0":0.27667},H:{"0":1.11918},L:{"0":72.97018}}; +module.exports={C:{"17":0.00353,"18":0.0106,"25":0.0053,"49":0.0106,"52":0.00883,"59":0.00353,"78":0.09536,"85":0.00706,"88":0.00883,"89":0.46976,"90":0.22781,"91":0.0053,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 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 86 87 92 3.5 3.6"},D:{"18":0.00177,"24":0.0053,"27":0.00177,"31":0.00177,"33":0.00177,"34":0.00353,"36":0.00177,"37":0.00177,"39":0.00177,"42":0.00353,"46":0.0053,"49":0.01943,"50":0.0053,"52":0.00177,"55":0.00353,"56":0.01766,"58":0.00353,"60":0.07947,"61":0.00353,"62":0.00353,"63":0.01766,"64":0.00706,"65":0.00883,"66":0.08124,"67":0.00706,"68":0.00706,"69":0.01413,"70":0.02119,"71":0.01766,"72":0.00706,"73":0.00177,"74":0.02472,"75":0.01943,"76":0.18366,"77":0.0106,"78":0.01236,"79":0.02296,"80":0.05121,"81":0.03885,"83":0.01943,"84":0.01943,"85":0.02119,"86":0.05121,"87":0.17307,"88":0.12185,"89":0.10066,"90":0.1872,"91":6.36466,"92":1.79955,"93":0.00883,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 25 26 28 29 30 32 35 38 40 41 43 44 45 47 48 51 53 54 57 59 94 95"},F:{"53":0.00177,"75":0.0053,"76":0.01943,"77":0.76115,_:"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 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0097,"6.0-6.1":0,"7.0-7.1":0.01833,"8.1-8.4":0.00539,"9.0-9.2":0.04313,"9.3":0.14016,"10.0-10.2":0.01833,"10.3":0.20593,"11.0-11.2":0.08625,"11.3-11.4":0.16065,"12.0-12.1":0.30513,"12.2-12.4":0.58222,"13.0-13.1":0.17143,"13.2":0.14124,"13.3":0.46146,"13.4-13.7":0.67494,"14.0-14.4":3.05018,"14.5-14.7":3.15584},E:{"4":0,"11":0.00883,"12":0.00353,"13":0.03355,"14":0.16247,_:"0 5 6 7 8 9 10 15 3.1 3.2 6.1 7.1 9.1","5.1":0.01589,"10.1":0.00706,"11.1":0.00883,"12.1":0.01589,"13.1":0.04238,"14.1":0.37792},B:{"12":0.04768,"13":0.02119,"14":0.01766,"15":0.01943,"16":0.01766,"17":0.03885,"18":0.06358,"80":0.03885,"83":0.0053,"84":0.01236,"85":0.01413,"86":0.00706,"87":0.0053,"88":0.03532,"89":0.04062,"90":0.06534,"91":1.39691,"92":0.33907,_:"79 81"},P:{"4":0.57467,"5.0-5.4":0.17139,"6.2-6.4":0.05041,"7.2-7.4":0.29238,"8.2":0.04033,"9.2":0.23189,"10.1":0.03025,"11.1-11.2":0.55451,"12.0":0.16131,"13.0":0.40328,"14.0":1.03844},I:{"0":0,"3":0,"4":0.00041,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00164,"4.2-4.3":0.00821,"4.4":0,"4.4.3-4.4.4":0.12972},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14305,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":70.86411},S:{"2.5":0},R:{_:"0"},M:{"0":0.10704},Q:{"10.4":0},O:{"0":0.37876},H:{"0":1.20829}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js index fb7df8f2befc0e..4e5eb4b01479d3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js @@ -1 +1 @@ -module.exports={C:{"47":0.00507,"48":0.01013,"50":0.02026,"52":0.15705,"56":0.01013,"57":0.00507,"59":0.00507,"60":0.01013,"63":0.0152,"66":0.01013,"68":0.02533,"69":0.00507,"72":0.02026,"74":0.02026,"76":0.00507,"77":0.01013,"78":0.14691,"79":0.00507,"80":0.0152,"81":0.0152,"82":0.02026,"83":0.02026,"84":0.04559,"85":0.7447,"86":0.85615,"87":0.11145,"88":6.35276,"89":0.0152,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 55 58 61 62 64 65 67 70 71 73 75 90 91 3.5 3.6"},D:{"22":0.00507,"24":0.02026,"26":0.01013,"33":0.02026,"34":0.02026,"37":0.02026,"38":0.05573,"49":0.69404,"53":0.13172,"58":0.00507,"61":0.03546,"65":0.00507,"66":0.02533,"67":0.00507,"68":0.05066,"69":0.0152,"70":0.0152,"71":0.0152,"72":0.00507,"73":0.01013,"74":0.01013,"75":0.01013,"76":0.01013,"77":0.01013,"78":0.0152,"79":0.08106,"80":0.0304,"81":0.03546,"83":0.08612,"84":0.02533,"85":0.02533,"86":0.04053,"87":0.24823,"88":0.19757,"89":1.04866,"90":28.40506,"91":1.07906,"92":0.01013,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 27 28 29 30 31 32 35 36 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 62 63 64 93 94"},F:{"36":0.0152,"40":0.00507,"46":0.00507,"73":0.14691,"74":0.01013,"75":0.89668,"76":1.11959,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0056,"6.0-6.1":0.00093,"7.0-7.1":0.01214,"8.1-8.4":0.05881,"9.0-9.2":0.00093,"9.3":0.07655,"10.0-10.2":0.00747,"10.3":0.06255,"11.0-11.2":0.02707,"11.3-11.4":0.02521,"12.0-12.1":0.03081,"12.2-12.4":0.10269,"13.0-13.1":0.02614,"13.2":0.01027,"13.3":0.07935,"13.4-13.7":0.30993,"14.0-14.4":6.32272,"14.5-14.6":1.8633},E:{"4":0,"12":0.00507,"13":0.05573,"14":0.95747,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00507,"11.1":0.03546,"12.1":0.04053,"13.1":0.16718,"14.1":0.46607},B:{"17":0.0152,"18":0.10132,"84":0.01013,"85":0.00507,"87":0.0152,"88":0.01013,"89":0.04559,"90":2.71031,"91":0.21784,_:"12 13 14 15 16 79 80 81 83 86"},P:{"4":0.37563,"5.0-5.4":0.02084,"6.2-6.4":0.0417,"7.2-7.4":0.01102,"8.2":0.01051,"9.2":0.02087,"10.1":0.02087,"11.1-11.2":0.27129,"12.0":0.05217,"13.0":0.29215,"14.0":2.41026},I:{"0":0,"3":0,"4":0,"2.1":0.00675,"2.2":0,"2.3":0,"4.1":0.0054,"4.2-4.3":0.01754,"4.4":0,"4.4.3-4.4.4":0.11337},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2837,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.34531},Q:{"10.4":0},O:{"0":0.05426},H:{"0":0.42032},L:{"0":37.38537}}; +module.exports={C:{"45":0.00471,"48":0.00471,"50":0.00471,"51":0.00941,"52":0.1553,"56":0.00941,"60":0.00471,"63":0.00941,"66":0.00471,"68":0.01882,"69":0.00471,"72":0.01412,"74":0.01882,"75":0.00471,"76":0.00941,"77":0.00471,"78":0.12706,"80":0.00471,"81":0.00941,"82":0.01412,"83":0.01412,"84":0.04706,"85":0.01882,"86":0.05177,"87":0.73414,"88":0.95532,"89":4.01422,"90":2.07064,"91":0.00941,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 53 54 55 57 58 59 61 62 64 65 67 70 71 73 79 92 3.5 3.6"},D:{"26":0.00471,"34":0.00941,"38":0.04235,"49":0.61178,"53":0.03294,"58":0.01412,"61":0.08,"65":0.00471,"67":0.00471,"68":0.00941,"69":0.00941,"70":0.01412,"71":0.00471,"73":0.00471,"74":0.00471,"75":0.00471,"76":0.00941,"77":0.01412,"78":0.01412,"79":0.2353,"80":0.01882,"81":0.03294,"83":0.04235,"84":0.01882,"85":0.03294,"86":0.02824,"87":0.22118,"88":0.11765,"89":0.11294,"90":0.32942,"91":21.59583,"92":5.08719,"93":0.00941,_:"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 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 62 63 64 66 72 94 95"},F:{"36":0.00941,"46":0.00471,"73":0.00941,"75":0.00471,"76":0.34824,"77":1.75534,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00402,"6.0-6.1":0,"7.0-7.1":0.01707,"8.1-8.4":0.07332,"9.0-9.2":0,"9.3":0.05825,"10.0-10.2":0.00603,"10.3":0.05926,"11.0-11.2":0.02913,"11.3-11.4":0.02712,"12.0-12.1":0.02812,"12.2-12.4":0.0914,"13.0-13.1":0.02109,"13.2":0.00904,"13.3":0.0683,"13.4-13.7":0.2752,"14.0-14.4":1.27957,"14.5-14.7":7.68346},E:{"4":0,"13":0.05177,"14":0.28707,"15":0.00941,_:"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.02824,"12.1":0.02824,"13.1":0.12706,"14.1":1.00708},B:{"17":0.00941,"18":0.06118,"85":0.00471,"87":0.01412,"88":0.00471,"89":0.01412,"90":0.01412,"91":2.40947,"92":0.57413,_:"12 13 14 15 16 79 80 81 83 84 86"},P:{"4":0.3823,"5.0-5.4":0.01034,"6.2-6.4":0.05041,"7.2-7.4":0.18613,"8.2":0.01034,"9.2":0.01033,"10.1":0.02066,"11.1-11.2":0.10332,"12.0":0.05166,"13.0":0.16532,"14.0":2.90338},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00524,"4.2-4.3":0.01676,"4.4":0,"4.4.3-4.4.4":0.07858},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24001,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":40.84156},S:{"2.5":0},R:{_:"0"},M:{"0":0.38646},Q:{"10.4":0},O:{"0":0.05294},H:{"0":0.48115}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js index fc389820831ab3..eb15cc59052a0c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js @@ -1 +1 @@ -module.exports={C:{"4":0.00336,"5":0.00336,"15":0.00336,"17":0.01009,"36":0.05379,"47":0.00672,"48":0.00336,"50":0.00336,"52":0.03026,"56":0.00672,"59":0.00336,"60":0.00336,"61":0.00336,"62":0.00336,"63":0.00336,"64":0.01345,"66":0.00672,"68":0.00672,"69":0.00672,"70":0.00672,"71":0.00336,"72":0.02353,"73":0.00336,"76":0.00336,"77":0.00336,"78":0.03362,"79":0.00336,"80":0.01009,"81":0.01345,"82":0.01009,"83":0.01009,"84":0.02353,"85":0.0269,"86":0.0269,"87":0.05715,"88":2.4509,"89":0.10758,_:"2 3 6 7 8 9 10 11 12 13 14 16 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 49 51 53 54 55 57 58 65 67 74 75 90 91 3.5 3.6"},D:{"23":0.00336,"24":0.00672,"25":0.01009,"38":0.00672,"43":0.00336,"49":0.04034,"53":0.00672,"55":0.00672,"56":0.00336,"58":0.01345,"61":0.11095,"63":0.0269,"64":0.00672,"65":0.00672,"66":0.00672,"67":0.01009,"68":0.00672,"69":0.00672,"70":0.01681,"71":0.04707,"72":0.01345,"73":0.01345,"74":0.02353,"75":0.01681,"76":0.01681,"77":0.02017,"78":0.0269,"79":0.10086,"80":0.05379,"81":0.03026,"83":0.05043,"84":0.04034,"85":0.06052,"86":0.07733,"87":0.23534,"88":0.16474,"89":0.5749,"90":19.30124,"91":0.53456,"92":0.01345,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 57 59 60 62 93 94"},F:{"57":0.01009,"73":0.02353,"75":0.20844,"76":0.25215,_:"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 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0016,"5.0-5.1":0.0016,"6.0-6.1":0.02238,"7.0-7.1":0.0016,"8.1-8.4":0.00107,"9.0-9.2":0.00266,"9.3":0.02557,"10.0-10.2":0.00639,"10.3":0.03357,"11.0-11.2":0.01811,"11.3-11.4":0.02504,"12.0-12.1":0.0357,"12.2-12.4":0.16463,"13.0-13.1":0.0357,"13.2":0.01492,"13.3":0.11775,"13.4-13.7":0.27652,"14.0-14.4":3.29527,"14.5-14.6":0.86524},E:{"4":0,"11":0.00336,"12":0.01009,"13":0.02353,"14":0.34292,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":1.76505,"10.1":0.00336,"11.1":0.01345,"12.1":0.03026,"13.1":0.12103,"14.1":0.13112},B:{"12":0.00336,"18":0.01681,"84":0.00336,"85":0.00336,"86":0.00336,"87":0.00336,"88":0.00672,"89":0.03362,"90":1.10946,"91":0.04034,_:"13 14 15 16 17 79 80 81 83"},P:{"4":0.5085,"5.0-5.4":0.02084,"6.2-6.4":0.02034,"7.2-7.4":0.07119,"8.2":0.01017,"9.2":0.09153,"10.1":0.06102,"11.1-11.2":0.23391,"12.0":0.15255,"13.0":0.43731,"14.0":1.10852},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00309,"4.2-4.3":0.02624,"4.4":0,"4.4.3-4.4.4":0.10343},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00743,"10":0.00372,"11":0.05945,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12612},Q:{"10.4":0},O:{"0":1.75907},H:{"0":1.37001},L:{"0":59.33307}}; +module.exports={C:{"4":0.00338,"5":0.00338,"15":0.00338,"17":0.01013,"36":0.07432,"47":0.00676,"48":0.00676,"52":0.03716,"56":0.01013,"60":0.00676,"62":0.00338,"63":0.00338,"64":0.02027,"68":0.00676,"69":0.00338,"70":0.00676,"72":0.02027,"76":0.00338,"77":0.00338,"78":0.03716,"79":0.00338,"80":0.00676,"81":0.01013,"82":0.00676,"83":0.01013,"84":0.02365,"85":0.01689,"86":0.01351,"87":0.01689,"88":0.0608,"89":1.98626,"90":0.86477,"91":0.05067,_:"2 3 6 7 8 9 10 11 12 13 14 16 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 49 50 51 53 54 55 57 58 59 61 65 66 67 71 73 74 75 92 3.5 3.6"},D:{"23":0.00676,"24":0.01013,"25":0.01013,"38":0.00338,"41":0.00338,"49":0.0304,"55":0.00338,"56":0.00338,"58":0.01013,"61":0.0608,"63":0.0304,"64":0.00676,"65":0.00676,"66":0.00676,"67":0.01013,"68":0.00338,"69":0.01013,"70":0.01689,"71":0.05067,"72":0.01013,"73":0.01013,"74":0.02027,"75":0.01351,"76":0.01351,"77":0.01689,"78":0.02027,"79":0.11147,"80":0.04054,"81":0.02365,"83":0.04054,"84":0.03378,"85":0.05743,"86":0.06756,"87":0.29726,"88":0.07094,"89":0.1385,"90":0.25673,"91":17.24131,"92":2.60106,"93":0.01013,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 57 59 60 62 94 95"},F:{"57":0.02027,"76":0.06756,"77":0.45603,_:"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 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00111,"5.0-5.1":0.00167,"6.0-6.1":0.04054,"7.0-7.1":0.00056,"8.1-8.4":0.00111,"9.0-9.2":0.00111,"9.3":0.02166,"10.0-10.2":0.005,"10.3":0.03165,"11.0-11.2":0.01555,"11.3-11.4":0.02055,"12.0-12.1":0.02777,"12.2-12.4":0.11884,"13.0-13.1":0.02888,"13.2":0.01388,"13.3":0.09607,"13.4-13.7":0.22601,"14.0-14.4":1.22003,"14.5-14.7":3.31968},E:{"4":0,"11":0.00338,"12":0.01013,"13":0.0304,"14":0.19592,_:"0 5 6 7 8 9 10 15 3.1 3.2 6.1 7.1 9.1","5.1":0.15201,"10.1":0.00338,"11.1":0.01689,"12.1":0.0304,"13.1":0.12499,"14.1":0.37496},B:{"12":0.00676,"18":0.01689,"84":0.00676,"88":0.00338,"89":0.01351,"90":0.01689,"91":1.18568,"92":0.22633,_:"13 14 15 16 17 79 80 81 83 85 86 87"},P:{"4":0.30875,"5.0-5.4":0.01034,"6.2-6.4":0.01029,"7.2-7.4":0.08233,"8.2":0.01029,"9.2":0.08233,"10.1":0.04117,"11.1-11.2":0.20583,"12.0":0.11321,"13.0":0.25729,"14.0":1.3585},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00424,"4.2-4.3":0.03602,"4.4":0,"4.4.3-4.4.4":0.11867},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00728,"10":0.00728,"11":0.08003,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":60.34466},S:{"2.5":0},R:{_:"0"},M:{"0":0.13906},Q:{"10.4":0},O:{"0":1.7151},H:{"0":1.31028}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js index 918bf84baa931d..0fd7c5731d0e88 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js @@ -1 +1 @@ -module.exports={C:{"11":0.00392,"48":0.00392,"52":0.0196,"70":0.00392,"77":0.00392,"78":0.13328,"79":0.01176,"80":0.01176,"81":0.00784,"82":0.07056,"83":0.00784,"84":0.00784,"85":0.00784,"86":0.01568,"87":0.03136,"88":1.38376,"89":0.01568,_:"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 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 90 91 3.5 3.6"},D:{"38":0.00784,"48":0.00392,"49":0.09016,"53":0.0196,"61":0.18032,"63":0.00784,"65":0.02744,"67":0.01176,"68":0.01176,"69":0.01176,"70":0.00784,"71":0.02744,"72":0.00784,"73":0.00392,"74":0.02744,"75":0.01176,"76":0.04312,"77":0.02352,"78":0.01568,"79":0.04312,"80":0.03136,"81":0.1176,"83":0.0392,"84":0.0392,"85":0.07448,"86":0.10976,"87":0.196,"88":0.65072,"89":1.12896,"90":20.31344,"91":0.55664,"92":0.00784,_:"4 5 6 7 8 9 10 11 12 13 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 56 57 58 59 60 62 64 66 93 94"},F:{"73":0.03136,"75":0.1764,"76":0.19208,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00297,"6.0-6.1":0.00297,"7.0-7.1":0.11569,"8.1-8.4":0.0178,"9.0-9.2":0.01187,"9.3":0.23435,"10.0-10.2":0.02076,"10.3":0.26698,"11.0-11.2":0.07713,"11.3-11.4":0.10679,"12.0-12.1":0.09196,"12.2-12.4":0.41827,"13.0-13.1":0.0534,"13.2":0.06526,"13.3":0.26698,"13.4-13.7":1.06791,"14.0-14.4":22.39054,"14.5-14.6":2.7914},E:{"4":0,"11":0.00784,"12":0.01176,"13":0.2352,"14":5.34688,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00392,"9.1":0.00392,"10.1":0.02744,"11.1":0.05096,"12.1":0.0784,"13.1":0.66248,"14.1":0.8232},B:{"16":0.01176,"17":0.0196,"18":0.13328,"80":0.00392,"84":0.00392,"85":0.00392,"86":0.00784,"87":0.00784,"88":0.03136,"89":0.14504,"90":2.97528,"91":0.15288,_:"12 13 14 15 79 81 83"},P:{"4":0.0105,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.16258,"8.2":0.01069,"9.2":0.02099,"10.1":0.02099,"11.1-11.2":0.19941,"12.0":0.09446,"13.0":0.46179,"14.0":3.32696},I:{"0":0,"3":0,"4":0.00355,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00473,"4.2-4.3":0.00473,"4.4":0,"4.4.3-4.4.4":0.07213},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.05858,"11":0.42358,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.33446},Q:{"10.4":0.02432},O:{"0":0.04257},H:{"0":0.13241},L:{"0":29.31626}}; +module.exports={C:{"11":0.01675,"38":0.0067,"43":0.0067,"44":0.03684,"45":0.0067,"48":0.01005,"52":0.03014,"55":0.01675,"67":0.00335,"68":0.00335,"70":0.0067,"78":0.15405,"79":0.01675,"80":0.00335,"81":0.01005,"84":0.02344,"85":0.0067,"86":0.0067,"87":0.1574,"88":0.12056,"89":0.95447,"90":0.53919,"91":0.00335,_:"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 56 57 58 59 60 61 62 63 64 65 66 69 71 72 73 74 75 76 77 82 83 92 3.5 3.6"},D:{"26":0.00335,"34":0.0067,"37":0.0134,"38":0.01005,"43":0.0067,"47":0.01005,"48":0.10047,"49":0.11387,"51":0.00335,"52":0.01005,"53":0.0134,"58":0.0067,"59":0.0067,"61":0.02679,"63":0.0067,"65":0.01675,"66":0.00335,"67":0.0134,"68":0.0067,"69":0.0134,"70":0.01005,"71":0.0134,"72":0.01005,"73":0.00335,"74":0.03014,"75":0.02679,"76":0.04354,"77":0.02679,"78":0.01675,"79":0.07033,"80":0.04019,"81":0.23443,"83":0.03349,"84":0.05693,"85":0.05024,"86":0.07703,"87":0.31816,"88":0.08373,"89":0.13731,"90":0.48226,"91":15.67332,"92":3.16481,"93":0.0067,_:"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 39 40 41 42 44 45 46 50 54 55 56 57 60 62 64 94 95"},F:{"18":0.0067,"38":0.02009,"68":0.00335,"71":0.0067,"75":0.00335,"76":0.10717,"77":0.36504,_:"9 11 12 15 16 17 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 60 62 63 64 65 66 67 69 70 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00656,"6.0-6.1":0.01641,"7.0-7.1":0.12469,"8.1-8.4":0.01969,"9.0-9.2":0.00656,"9.3":0.23626,"10.0-10.2":0.01641,"10.3":0.2658,"11.0-11.2":0.06563,"11.3-11.4":0.09188,"12.0-12.1":0.06235,"12.2-12.4":0.31502,"13.0-13.1":0.0525,"13.2":0.03938,"13.3":0.26252,"13.4-13.7":0.93849,"14.0-14.4":5.48328,"14.5-14.7":23.10132},E:{"4":0,"6":0.00335,"8":0.01005,"9":0.01675,"11":0.0067,"12":0.0067,"13":0.10047,"14":0.90088,"15":0.0134,_:"0 5 7 10 3.1 3.2 6.1 7.1","5.1":0.01005,"9.1":0.00335,"10.1":0.01675,"11.1":0.04689,"12.1":0.07368,"13.1":0.33155,"14.1":2.25053},B:{"12":0.00335,"13":0.00335,"15":0.00335,"16":0.00335,"17":0.0134,"18":0.08707,"80":0.00335,"84":0.0067,"86":0.02344,"88":0.01675,"89":0.0134,"90":0.01675,"91":2.19694,"92":0.55259,_:"14 79 81 83 85 87"},P:{"4":0.04165,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.01041,"8.2":0.01041,"9.2":0.02083,"10.1":0.01041,"11.1-11.2":0.19785,"12.0":0.08331,"13.0":0.28116,"14.0":3.80081},I:{"0":0,"3":0,"4":0.00693,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00277,"4.2-4.3":0.01109,"4.4":0,"4.4.3-4.4.4":0.07899},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0498,"11":0.4559,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.0133},N:{"11":0.03973,_:"10"},L:{"0":32.06433},S:{"2.5":0},R:{_:"0"},M:{"0":0.39247},Q:{"10.4":0.01996},O:{"0":0.07982},H:{"0":0.18263}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js index 45a8c94f4ff009..0317db39dcd6d6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js @@ -1 +1 @@ -module.exports={C:{"24":0.00399,"25":0.01196,"26":0.03589,"27":0.00399,"36":0.00399,"45":0.00399,"52":0.02792,"66":0.0678,"68":0.00399,"72":0.00399,"78":0.05583,"79":0.15553,"80":0.02393,"83":0.00399,"84":0.01595,"85":0.00798,"86":0.01595,"87":0.03988,"88":1.328,"89":0.01994,_:"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 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 81 82 90 91 3.5 3.6"},D:{"22":0.00798,"31":0.05184,"32":0.01196,"38":0.02792,"41":0.12762,"49":0.10768,"53":0.03589,"56":0.00798,"57":0.00798,"58":0.00399,"61":0.05982,"62":0.00399,"63":0.00798,"64":0.00399,"65":0.01196,"67":0.00798,"68":0.01595,"69":0.00798,"70":0.00798,"71":0.01994,"72":0.01595,"73":0.0319,"74":0.01595,"75":0.02792,"76":0.02393,"77":0.01196,"78":0.01595,"79":0.08375,"80":0.27916,"81":0.03988,"83":0.02792,"84":0.02792,"85":0.03988,"86":0.05982,"87":0.19142,"88":0.1675,"89":2.96308,"90":24.69768,"91":0.65403,"92":0.01196,_:"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 33 34 35 36 37 39 40 42 43 44 45 46 47 48 50 51 52 54 55 59 60 66 93 94"},F:{"68":0.00399,"73":0.04786,"75":0.24327,"76":0.35892,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00242,"3.2":0.00242,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00969,"6.0-6.1":0.00969,"7.0-7.1":0.02664,"8.1-8.4":0.0218,"9.0-9.2":0.00363,"9.3":0.13563,"10.0-10.2":0.02785,"10.3":0.11262,"11.0-11.2":0.03875,"11.3-11.4":0.06418,"12.0-12.1":0.06055,"12.2-12.4":0.20708,"13.0-13.1":0.05449,"13.2":0.02422,"13.3":0.1538,"13.4-13.7":0.4081,"14.0-14.4":8.57864,"14.5-14.6":1.75714},E:{"4":0,"7":0.00399,"8":0.12762,"13":0.03988,"14":0.92522,_:"0 5 6 9 10 11 12 3.1 3.2 7.1 9.1","5.1":0.01595,"6.1":0.01196,"10.1":0.00399,"11.1":0.01595,"12.1":0.0319,"13.1":0.11166,"14.1":0.2991},B:{"16":0.01196,"17":0.01196,"18":0.05583,"84":0.01196,"85":0.00399,"86":0.00798,"87":0.01196,"88":0.01196,"89":0.0678,"90":1.99799,"91":0.08774,_:"12 13 14 15 79 80 81 83"},P:{"4":0.07152,"5.0-5.4":0.14145,"6.2-6.4":0.14145,"7.2-7.4":0.04087,"8.2":0.03065,"9.2":0.19413,"10.1":0.10217,"11.1-11.2":0.34738,"12.0":0.27586,"13.0":0.7765,"14.0":5.74204},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00169,"4.2-4.3":0.00466,"4.4":0,"4.4.3-4.4.4":0.02371},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00798,"10":0.00798,"11":0.63808,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.22244},Q:{"10.4":0.01804},O:{"0":0.10822},H:{"0":0.35858},L:{"0":41.88552}}; +module.exports={C:{"24":0.00858,"25":0.01717,"26":0.0515,"27":0.00858,"36":0.00858,"52":0.03004,"66":0.06867,"78":0.04292,"79":0.16739,"80":0.04292,"84":0.01717,"85":0.00429,"87":0.00858,"88":0.04721,"89":0.97428,"90":0.50646,"91":0.00858,_:"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 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 81 82 83 86 92 3.5 3.6"},D:{"22":0.00858,"31":0.06867,"32":0.01717,"34":0.00429,"38":0.03434,"39":0.01288,"41":0.00429,"49":0.12018,"53":0.02146,"56":0.00858,"57":0.00429,"58":0.00429,"61":0.03434,"63":0.00858,"65":0.01288,"66":0.00858,"67":0.00858,"68":0.00858,"69":0.00858,"70":0.00858,"71":0.01717,"72":0.02146,"73":0.06867,"74":0.01288,"75":0.02575,"76":0.01717,"77":0.01288,"78":0.01717,"79":0.14164,"80":0.34765,"81":0.03004,"83":0.03434,"84":0.02575,"85":0.04721,"86":0.04721,"87":0.1588,"88":0.06009,"89":0.18885,"90":0.36482,"91":24.71763,"92":4.51948,"93":0.00858,_:"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 33 35 36 37 40 42 43 44 45 46 47 48 50 51 52 54 55 59 60 62 64 94 95"},F:{"75":0.00429,"76":0.13734,"77":0.51933,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00244,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0061,"6.0-6.1":0.00488,"7.0-7.1":0.03296,"8.1-8.4":0.02808,"9.0-9.2":0.0061,"9.3":0.1172,"10.0-10.2":0.01831,"10.3":0.10866,"11.0-11.2":0.03907,"11.3-11.4":0.0525,"12.0-12.1":0.05006,"12.2-12.4":0.16237,"13.0-13.1":0.03418,"13.2":0.02564,"13.3":0.12697,"13.4-13.7":0.3333,"14.0-14.4":1.82153,"14.5-14.7":8.82807},E:{"4":0,"7":0.00858,"8":0.1588,"13":0.03863,"14":0.30473,"15":0.01717,_:"0 5 6 9 10 11 12 3.1 3.2 7.1 9.1","5.1":0.00429,"6.1":0.01288,"10.1":0.00429,"11.1":0.02146,"12.1":0.03863,"13.1":0.09872,"14.1":1.00862},B:{"16":0.00429,"17":0.00858,"18":0.06867,"84":0.00858,"85":0.00429,"86":0.00858,"87":0.01288,"88":0.00429,"89":0.02146,"90":0.02575,"91":2.06874,"92":0.44637,_:"12 13 14 15 79 80 81 83"},P:{"4":0.09226,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.03075,"8.2":0.0205,"9.2":0.16403,"10.1":0.07176,"11.1-11.2":0.3383,"12.0":0.15377,"13.0":0.45107,"14.0":5.36161},I:{"0":0,"3":0,"4":0.00185,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00247,"4.2-4.3":0.00555,"4.4":0,"4.4.3-4.4.4":0.03579},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03004,"10":0.01288,"11":0.59659,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":40.70105},S:{"2.5":0},R:{_:"0"},M:{"0":0.19407},Q:{"10.4":0},O:{"0":0.09704},H:{"0":0.25939}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js index 9cafd428676d87..a22745d87f3c67 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js @@ -1 +1 @@ -module.exports={C:{"52":0.14448,"72":0.01926,"78":0.04816,"85":0.00482,"86":0.02408,"87":0.0289,"88":2.72104,"89":0.00963,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 90 91 3.5 3.6"},D:{"49":1.01136,"65":0.00963,"67":0.13485,"71":0.13485,"72":0.04334,"74":0.00482,"75":0.06261,"76":0.01926,"77":0.03853,"78":0.01926,"79":0.06261,"80":0.03853,"81":0.03371,"83":0.0289,"84":0.01926,"85":0.0289,"86":0.04334,"87":0.19264,"88":0.2697,"89":0.86688,"90":20.21275,"91":0.7224,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 73 92 93 94"},F:{"46":0.00482,"73":0.02408,"74":0.00482,"75":0.17338,"76":0.28414,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00303,"7.0-7.1":0.01211,"8.1-8.4":0.00908,"9.0-9.2":0,"9.3":0.88678,"10.0-10.2":0.00605,"10.3":0.69308,"11.0-11.2":0.16343,"11.3-11.4":0.03935,"12.0-12.1":0.06053,"12.2-12.4":0.36319,"13.0-13.1":0.01211,"13.2":0.01513,"13.3":0.23002,"13.4-13.7":0.81717,"14.0-14.4":22.10907,"14.5-14.6":2.08833},E:{"4":0,"11":0.0289,"12":0.01445,"13":0.13485,"14":6.02482,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1","6.1":0.01926,"9.1":0.00482,"10.1":0.05298,"11.1":0.18301,"12.1":0.1204,"13.1":1.34848,"14.1":3.59274},B:{"14":0.06261,"16":0.01445,"17":0.01926,"18":0.1204,"80":0.00482,"86":0.01926,"87":0.01926,"88":0.00963,"89":0.2697,"90":6.44381,"91":0.25043,_:"12 13 15 79 81 83 84 85"},P:{"4":0.01113,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.16258,"8.2":0.03338,"9.2":0.02099,"10.1":0.10013,"11.1-11.2":0.19941,"12.0":0.05563,"13.0":0.18913,"14.0":3.11501},I:{"0":0,"3":0,"4":0.02577,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0007,"4.4":0,"4.4.3-4.4.4":0.02019},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03556,"11":0.6146,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.52877},Q:{"10.4":0},O:{"0":0.0311},H:{"0":0.27975},L:{"0":20.4319}}; +module.exports={C:{"48":0.01467,"52":0.09293,"63":0.19564,"78":0.03913,"79":0.00489,"88":0.02935,"89":1.67272,"90":0.99776,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 86 87 91 92 3.5 3.6"},D:{"49":0.36683,"53":0.00489,"62":0.00978,"65":0.00978,"67":0.16629,"72":0.07826,"74":0.00978,"75":0.0538,"76":0.01467,"77":0.06847,"78":0.01956,"79":0.10271,"80":0.03913,"81":0.05869,"83":0.02446,"84":0.02935,"85":0.02446,"86":0.05869,"87":0.07337,"88":0.05869,"89":0.15651,"90":0.39617,"91":18.52222,"92":3.2085,"93":0.00489,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 63 64 66 68 69 70 71 73 94 95"},F:{"46":0.01467,"74":0.00489,"75":0.0538,"76":0.23477,"77":0.67496,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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":0.00925,"7.0-7.1":0.01849,"8.1-8.4":0.01233,"9.0-9.2":0.00616,"9.3":0.99555,"10.0-10.2":0,"10.3":0.73356,"11.0-11.2":0.09863,"11.3-11.4":0.03699,"12.0-12.1":0.05548,"12.2-12.4":0.20034,"13.0-13.1":0.02158,"13.2":0.01233,"13.3":0.17877,"13.4-13.7":0.75206,"14.0-14.4":3.71406,"14.5-14.7":21.52612},E:{"4":0,"11":0.03913,"12":0.02446,"13":0.26411,"14":1.23253,"15":0.00978,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00978,"10.1":0.02446,"11.1":0.2201,"12.1":0.11249,"13.1":1.39394,"14.1":8.08971},B:{"14":0.03913,"17":0.01467,"18":0.04891,"79":0.00978,"86":0.00978,"87":0.01467,"89":0.03424,"90":0.04891,"91":6.00615,"92":1.89771,_:"12 13 15 16 80 81 83 84 85 88"},P:{"4":0.07795,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.01041,"8.2":0.01041,"9.2":0.02083,"10.1":0.03341,"11.1-11.2":0.02227,"12.0":0.08331,"13.0":0.11135,"14.0":3.48533},I:{"0":0,"3":0,"4":0.00578,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00071,"4.4":0,"4.4.3-4.4.4":0.00884},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.04672,"11":0.54509,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":18.94598},S:{"2.5":0},R:{_:"0"},M:{"0":0.62342},Q:{"10.4":0},O:{"0":0.02555},H:{"0":0.10643}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js index 31a69505aa25ff..727961d7155916 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js @@ -1 +1 @@ -module.exports={C:{"42":0.00656,"43":0.00219,"47":0.00656,"48":0.00219,"52":0.01749,"56":0.00219,"66":0.00437,"68":0.00219,"72":0.00437,"78":0.02405,"79":0.00219,"80":0.00219,"81":0.00437,"82":0.00437,"83":0.00437,"84":0.00656,"85":0.00656,"86":0.00874,"87":0.02186,"88":0.80226,"89":0.06558,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 44 45 46 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 90 91 3.5 3.6"},D:{"33":0.00219,"49":0.0306,"51":0.00219,"53":0.00437,"55":0.00437,"56":0.00219,"58":0.00656,"61":0.01312,"63":0.01312,"64":0.00656,"65":0.00437,"66":0.00219,"67":0.00437,"68":0.00437,"69":0.00656,"70":0.02186,"71":0.03716,"72":0.00656,"73":0.00656,"74":0.01312,"75":0.00874,"76":0.00656,"77":0.00874,"78":0.0153,"79":0.02623,"80":0.03498,"81":0.02623,"83":0.04591,"84":0.02842,"85":0.02842,"86":0.05028,"87":0.11367,"88":0.10274,"89":0.42408,"90":13.56194,"91":0.45906,"92":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 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 54 57 59 60 62 93 94"},F:{"64":0.00219,"73":0.01093,"74":0.00219,"75":0.09837,"76":0.17051,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00086,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0.00086,"6.0-6.1":0.00086,"7.0-7.1":0.00843,"8.1-8.4":0.00043,"9.0-9.2":0.00108,"9.3":0.01404,"10.0-10.2":0.00302,"10.3":0.01491,"11.0-11.2":0.07065,"11.3-11.4":0.01426,"12.0-12.1":0.01577,"12.2-12.4":0.05899,"13.0-13.1":0.01253,"13.2":0.0067,"13.3":0.03047,"13.4-13.7":0.08837,"14.0-14.4":1.1899,"14.5-14.6":0.47535},E:{"4":0,"13":0.00874,"14":0.22516,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.06995,"11.1":0.00437,"12.1":0.00874,"13.1":0.04591,"14.1":0.11804},B:{"12":0.00437,"13":0.00219,"15":0.00219,"16":0.00437,"17":0.00437,"18":0.0153,"84":0.00437,"85":0.00437,"86":0.00219,"87":0.00437,"88":0.00656,"89":0.02623,"90":0.71045,"91":0.02842,_:"14 79 80 81 83"},P:{"4":0.44294,"5.0-5.4":0.02084,"6.2-6.4":0.0309,"7.2-7.4":0.14421,"8.2":0.01051,"9.2":0.06181,"10.1":0.0309,"11.1-11.2":0.14421,"12.0":0.08241,"13.0":0.31933,"14.0":0.58715},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00182,"4.2-4.3":0.00363,"4.4":0,"4.4.3-4.4.4":0.03361},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00219,"11":0.05246,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.76567},R:{_:"0"},M:{"0":0.14063},Q:{"10.4":0},O:{"0":3.85181},H:{"0":3.2916},L:{"0":69.69318}}; +module.exports={C:{"42":0.00531,"43":0.00265,"47":0.00796,"48":0.00531,"52":0.02653,"56":0.00531,"60":0.00265,"66":0.00531,"68":0.00265,"72":0.00531,"78":0.02653,"81":0.00531,"82":0.00265,"83":0.00265,"84":0.00531,"85":0.00796,"86":0.00796,"87":0.00531,"88":0.02918,"89":0.64733,"90":0.4404,"91":0.0451,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 44 45 46 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 92 3.5 3.6"},D:{"49":0.03714,"50":0.00265,"51":0.00265,"55":0.00531,"58":0.00531,"61":0.01857,"63":0.01857,"64":0.00796,"65":0.01061,"66":0.00265,"67":0.00531,"68":0.00265,"69":0.00796,"70":0.03449,"71":0.03449,"72":0.00796,"73":0.00531,"74":0.01592,"75":0.00796,"76":0.00796,"77":0.00796,"78":0.01592,"79":0.02918,"80":0.03714,"81":0.02122,"83":0.05041,"84":0.02653,"85":0.02388,"86":0.0451,"87":0.13265,"88":0.05837,"89":0.13265,"90":0.21489,"91":13.30214,"92":3.39849,"93":0.02122,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 57 59 60 62 94 95"},F:{"64":0.00265,"76":0.02653,"77":0.2653,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0008,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0004,"5.0-5.1":0.0006,"6.0-6.1":0.0008,"7.0-7.1":0.0074,"8.1-8.4":0.0002,"9.0-9.2":0.001,"9.3":0.01,"10.0-10.2":0.0026,"10.3":0.012,"11.0-11.2":0.05721,"11.3-11.4":0.0106,"12.0-12.1":0.0116,"12.2-12.4":0.0398,"13.0-13.1":0.01,"13.2":0.0054,"13.3":0.022,"13.4-13.7":0.06501,"14.0-14.4":0.41904,"14.5-14.7":1.18232},E:{"4":0,"13":0.00796,"14":0.07428,"15":0.00531,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01327,"11.1":0.00265,"12.1":0.00796,"13.1":0.03184,"14.1":0.24142},B:{"12":0.00531,"16":0.00531,"17":0.00531,"18":0.01592,"84":0.00531,"85":0.00265,"89":0.01061,"90":0.01061,"91":0.63937,"92":0.1804,_:"13 14 15 79 80 81 83 86 87 88"},P:{"4":0.35133,"5.0-5.4":0.01034,"6.2-6.4":0.02067,"7.2-7.4":0.13433,"8.2":0.01034,"9.2":0.05167,"10.1":0.02067,"11.1-11.2":0.124,"12.0":0.05167,"13.0":0.186,"14.0":0.66132},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00238,"4.2-4.3":0.00238,"4.4":0,"4.4.3-4.4.4":0.02462},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05837,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":69.06428},S:{"2.5":0.72001},R:{_:"0"},M:{"0":0.13225},Q:{"10.4":0},O:{"0":2.76247},H:{"0":2.61533}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js index c8e4e1cd7f439d..10b8d47107038c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js @@ -1 +1 @@ -module.exports={C:{"15":0.00195,"17":0.00391,"34":0.00782,"47":0.00195,"52":0.04299,"65":0.00195,"72":0.00586,"78":0.06448,"84":0.00195,"85":0.00391,"86":0.01172,"87":0.01368,"88":0.60379,"89":0.04299,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 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 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 90 91 3.5 3.6"},D:{"24":0.00391,"26":0.00195,"33":0.00391,"34":0.00195,"38":0.02736,"39":0.00391,"40":0.00391,"41":0.00195,"43":0.06448,"47":0.00195,"48":0.00195,"49":0.02345,"53":0.01759,"55":0.00391,"58":0.00195,"60":0.00586,"62":0.00195,"63":0.01954,"64":0.00195,"65":0.00391,"67":0.00391,"68":0.00977,"69":0.01172,"70":0.03126,"71":0.00586,"72":0.00782,"73":0.00586,"74":0.00586,"75":0.01954,"76":0.00586,"77":0.00391,"78":0.00977,"79":0.08207,"80":0.01368,"81":0.02736,"83":0.08011,"84":0.00977,"85":0.02149,"86":0.08402,"87":0.09575,"88":0.08598,"89":0.32827,"90":9.92437,"91":0.45137,"92":0.00977,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 27 28 29 30 31 32 35 36 37 42 44 45 46 50 51 52 54 56 57 59 61 66 93 94"},F:{"73":0.04885,"74":0.00195,"75":0.23448,"76":0.26965,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00498,"6.0-6.1":0.00249,"7.0-7.1":0.06346,"8.1-8.4":0,"9.0-9.2":0.00498,"9.3":0.06346,"10.0-10.2":0.01742,"10.3":0.09456,"11.0-11.2":0.02613,"11.3-11.4":0.05973,"12.0-12.1":0.05599,"12.2-12.4":0.29116,"13.0-13.1":0.0336,"13.2":0.01991,"13.3":0.13065,"13.4-13.7":0.40439,"14.0-14.4":7.95587,"14.5-14.6":2.39771},E:{"4":0,"12":0.00195,"13":0.02149,"14":1.47918,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.26379,"10.1":0.00586,"11.1":0.00586,"12.1":0.01172,"13.1":0.08598,"14.1":0.46505},B:{"12":0.00195,"13":0.00195,"15":0.00195,"16":0.00586,"17":0.00586,"18":0.0469,"83":0.00195,"84":0.00977,"85":0.00586,"87":0.00391,"88":0.00782,"89":0.01759,"90":0.8539,"91":0.07621,_:"14 79 80 81 86"},P:{"4":0.19307,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.16258,"8.2":0.01069,"9.2":0.17274,"10.1":0.05081,"11.1-11.2":0.45726,"12.0":0.22355,"13.0":0.91452,"14.0":4.10517},I:{"0":0,"3":0,"4":0.00151,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00151,"4.2-4.3":0.00754,"4.4":0,"4.4.3-4.4.4":0.07795},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01232,"10":0.00411,"11":0.18483,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.09655},Q:{"10.4":0},O:{"0":0.62759},H:{"0":0.3047},L:{"0":63.96773}}; +module.exports={C:{"5":0.00228,"17":0.00228,"34":0.00683,"45":0.00228,"47":0.00455,"48":0.00228,"50":0.00228,"51":0.00228,"52":0.08421,"53":0.00228,"55":0.00228,"56":0.00455,"68":0.00228,"72":0.00228,"78":0.03186,"85":0.00228,"87":0.00455,"88":0.01821,"89":0.46203,"90":0.24126,"91":0.03642,_:"2 3 4 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 38 39 40 41 42 43 44 46 49 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 86 92 3.5 3.6"},D:{"11":0.00455,"22":0.00455,"25":0.00228,"26":0.00455,"33":0.00683,"34":0.00683,"36":0.00455,"38":0.0478,"39":0.00683,"40":0.00683,"41":0.00228,"42":0.00228,"43":0.07283,"45":0.00228,"47":0.01366,"49":0.01138,"50":0.00228,"53":0.01593,"55":0.00455,"56":0.00228,"57":0.00228,"58":0.00455,"59":0.00228,"60":0.00683,"61":0.00455,"63":0.01366,"65":0.00683,"66":0.00228,"68":0.01366,"69":0.01366,"70":0.01593,"71":0.00683,"72":0.00683,"73":0.01366,"74":0.00455,"75":0.01593,"76":0.00683,"77":0.00683,"78":0.01366,"79":0.1707,"80":0.01366,"81":0.02504,"83":0.05007,"84":0.01593,"85":0.01821,"86":0.0569,"87":0.06145,"88":0.05918,"89":0.08876,"90":0.19801,"91":10.22379,"92":2.5514,"93":0.01366,"94":0.0091,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 32 35 37 44 46 48 51 52 54 62 64 67 95"},F:{"73":0.00455,"75":0.00228,"76":0.09104,"77":0.50527,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00707,"6.0-6.1":0.01238,"7.0-7.1":0.07603,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08133,"10.0-10.2":0.01768,"10.3":0.12377,"11.0-11.2":0.04951,"11.3-11.4":0.06542,"12.0-12.1":0.05304,"12.2-12.4":0.29174,"13.0-13.1":0.03359,"13.2":0.02122,"13.3":0.16443,"13.4-13.7":0.40313,"14.0-14.4":3.24092,"14.5-14.7":11.91343},E:{"4":0,"13":0.02731,"14":0.4643,"15":0.01138,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.10925,"10.1":0.00455,"11.1":0.00683,"12.1":0.01138,"13.1":0.11152,"14.1":1.33829},B:{"12":0.00228,"14":0.00228,"15":0.00455,"16":0.00683,"17":0.00455,"18":0.05918,"84":0.00683,"85":0.00455,"87":0.00455,"89":0.01821,"90":0.0091,"91":0.95364,"92":0.28678,_:"13 79 80 81 83 86 88"},P:{"4":0.21512,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.1639,"8.2":0.12105,"9.2":0.11268,"10.1":0.02049,"11.1-11.2":0.32781,"12.0":0.13317,"13.0":0.54293,"14.0":3.64687},I:{"0":0,"3":0,"4":0.00117,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00156,"4.2-4.3":0.00861,"4.4":0,"4.4.3-4.4.4":0.08136},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00551,"11":0.34727,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":56.64569},S:{"2.5":0},R:{_:"0"},M:{"0":0.10815},Q:{"10.4":0},O:{"0":1.1124},H:{"0":0.30717}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js index 856f3cb94002ca..b242908877fca9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js @@ -1 +1 @@ -module.exports={C:{"3":0.00484,"27":0.00484,"29":0.00484,"30":0.00484,"31":0.00242,"32":0.00242,"33":0.00968,"37":0.00242,"38":0.00726,"39":0.00484,"40":0.00484,"41":0.00726,"42":0.00242,"43":0.01211,"45":0.00242,"46":0.00242,"47":0.01695,"48":0.00726,"49":0.00484,"50":0.00484,"52":0.08958,"53":0.00484,"54":0.00242,"56":0.00968,"57":0.00484,"59":0.00242,"60":0.00484,"61":0.00242,"62":0.00484,"64":0.00242,"65":0.00242,"66":0.00242,"67":0.00242,"68":0.00726,"69":0.00484,"70":0.00484,"71":0.00242,"72":0.02905,"73":0.00242,"74":0.00242,"75":0.00484,"76":0.00484,"77":0.00484,"78":0.13558,"79":0.00968,"80":0.01211,"81":0.01453,"82":0.01453,"83":0.01453,"84":0.02421,"85":0.02663,"86":0.03632,"87":0.10168,"88":3.4475,"89":0.03874,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 34 35 36 44 51 55 58 63 90 91 3.5","3.6":0.00242},D:{"11":0.00242,"31":0.00242,"33":0.00726,"34":0.00484,"35":0.01695,"38":0.01211,"39":0.00484,"41":0.00968,"42":0.00242,"48":0.00484,"49":0.08474,"51":0.00484,"53":0.00726,"54":0.00484,"55":0.00484,"56":0.00242,"57":0.00242,"58":0.00726,"60":0.00484,"61":0.04116,"62":0.00726,"63":0.046,"64":0.00484,"65":0.00242,"66":0.00242,"67":0.00726,"68":0.00726,"69":0.00726,"70":0.00726,"71":0.02421,"72":0.00726,"73":0.00484,"74":0.00968,"75":0.00968,"76":0.05326,"77":0.01453,"78":0.01453,"79":0.03874,"80":0.08231,"81":0.04358,"83":0.05084,"84":0.06295,"85":0.08958,"86":0.11863,"87":0.184,"88":0.138,"89":0.30747,"90":12.14374,"91":0.2881,"92":0.00726,_:"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 36 37 40 43 44 45 46 47 50 52 59 93 94"},F:{"64":0.00484,"68":0.00242,"71":0.00242,"72":0.00242,"73":0.01695,"74":0.00726,"75":0.19368,"76":0.27599,_:"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 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00242},G:{"8":0,"3.2":0,"4.0-4.1":0.00037,"4.2-4.3":0,"5.0-5.1":0.00187,"6.0-6.1":0.0015,"7.0-7.1":0.00712,"8.1-8.4":0.00187,"9.0-9.2":0.00262,"9.3":0.03486,"10.0-10.2":0.01612,"10.3":0.05361,"11.0-11.2":0.04274,"11.3-11.4":0.05211,"12.0-12.1":0.04986,"12.2-12.4":0.20843,"13.0-13.1":0.04611,"13.2":0.02474,"13.3":0.12296,"13.4-13.7":0.26916,"14.0-14.4":1.94332,"14.5-14.6":0.46296},E:{"4":0,"5":0.00242,"7":0.00484,"13":0.01453,"14":0.07263,_:"0 6 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.10168,"9.1":0.00484,"11.1":0.00242,"12.1":0.00484,"13.1":0.02179,"14.1":0.02663},B:{"12":0.00484,"13":0.00484,"14":0.00968,"15":0.00484,"16":0.00484,"17":0.00968,"18":0.046,"81":0.00484,"84":0.01211,"85":0.00726,"86":0.00484,"87":0.00484,"88":0.00484,"89":0.03147,"90":0.45273,"91":0.00968,_:"79 80 83"},P:{"4":1.64685,"5.0-5.4":0.14145,"6.2-6.4":0.14145,"7.2-7.4":1.00024,"8.2":0.15155,"9.2":0.80827,"10.1":0.36372,"11.1-11.2":1.7984,"12.0":0.8992,"13.0":2.73802,"14.0":3.44526},I:{"0":0,"3":0,"4":0.00062,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00342,"4.2-4.3":0.03386,"4.4":0,"4.4.3-4.4.4":0.11369},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02678,"9":0.00974,"10":0.0073,"11":2.09634,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.77306},Q:{"10.4":0},O:{"0":0.12126},H:{"0":0.43052},L:{"0":60.07709}}; +module.exports={C:{"27":0.00303,"29":0.00606,"30":0.00303,"31":0.00303,"33":0.00908,"34":0.00303,"37":0.00303,"38":0.01211,"39":0.00303,"40":0.00606,"41":0.00908,"43":0.00908,"47":0.01817,"48":0.00606,"49":0.00606,"50":0.00606,"52":0.0969,"56":0.00908,"57":0.00606,"58":0.00303,"60":0.00606,"62":0.00303,"66":0.00303,"67":0.00303,"68":0.00606,"69":0.00606,"70":0.00606,"71":0.00303,"72":0.03028,"73":0.00303,"75":0.00303,"76":0.00606,"77":0.00606,"78":0.21196,"79":0.00908,"80":0.01211,"81":0.01514,"82":0.01211,"83":0.01211,"84":0.0212,"85":0.02422,"86":0.01817,"87":0.0212,"88":0.09992,"89":3.01286,"90":1.40499,"91":0.0212,_:"2 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 32 35 36 42 44 45 46 51 53 54 55 59 61 63 64 65 74 92 3.5 3.6"},D:{"11":0.00303,"29":0.00303,"31":0.00303,"33":0.00606,"34":0.00606,"35":0.0212,"38":0.01211,"39":0.00303,"48":0.00606,"49":0.09084,"51":0.00303,"53":0.00303,"55":0.00303,"56":0.00606,"57":0.00303,"58":0.00606,"60":0.00303,"61":0.03936,"62":0.01211,"63":0.0212,"64":0.00606,"65":0.00303,"66":0.00303,"67":0.00606,"68":0.00606,"69":0.01211,"70":0.00908,"71":0.02422,"72":0.00606,"73":0.00908,"74":0.00908,"75":0.01211,"76":0.00908,"77":0.01514,"78":0.01514,"79":0.05148,"80":0.03634,"81":0.03331,"83":0.0545,"84":0.06964,"85":0.08781,"86":0.13323,"87":0.18471,"88":0.05753,"89":0.09992,"90":0.27555,"91":12.7388,"92":3.04011,"93":0.00606,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 32 36 37 40 41 42 43 44 45 46 47 50 52 54 59 94 95"},F:{"64":0.00908,"70":0.00303,"73":0.00303,"74":0.00303,"75":0.00606,"76":0.0545,"77":0.53898,_:"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 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00147,"6.0-6.1":0.00147,"7.0-7.1":0.00782,"8.1-8.4":0.00049,"9.0-9.2":0.00293,"9.3":0.03128,"10.0-10.2":0.01368,"10.3":0.05865,"11.0-11.2":0.04398,"11.3-11.4":0.04838,"12.0-12.1":0.05327,"12.2-12.4":0.20037,"13.0-13.1":0.04838,"13.2":0.02248,"13.3":0.13342,"13.4-13.7":0.28345,"14.0-14.4":1.29313,"14.5-14.7":2.11222},E:{"4":0,"13":0.00606,"14":0.04845,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.1514,"12.1":0.00606,"13.1":0.01817,"14.1":0.09387},B:{"12":0.00606,"13":0.00606,"14":0.00606,"15":0.00908,"16":0.00606,"17":0.00908,"18":0.04542,"81":0.00303,"83":0.00303,"84":0.00908,"85":0.00606,"87":0.00303,"89":0.02422,"90":0.01514,"91":0.48448,"92":0.12718,_:"79 80 86 88"},P:{"4":1.15,"5.0-5.4":0.12105,"6.2-6.4":0.11097,"7.2-7.4":0.67588,"8.2":0.12105,"9.2":0.53465,"10.1":0.25219,"11.1-11.2":1.13992,"12.0":0.59518,"13.0":1.57369,"14.0":4.6908},I:{"0":0,"3":0,"4":0.00081,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00324,"4.2-4.3":0.02861,"4.4":0,"4.4.3-4.4.4":0.08584},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04278,"9":0.01222,"10":0.01222,"11":2.6277,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":55.79228},S:{"2.5":0},R:{_:"0"},M:{"0":0.94806},Q:{"10.4":0},O:{"0":0.13942},H:{"0":0.47518}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js index b7b5a089bf23ee..28e325892ecbb5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js @@ -1 +1 @@ -module.exports={C:{"48":0.09488,"52":0.04428,"76":0.01898,"78":0.1771,"81":0.01265,"84":0.08223,"85":0.01265,"86":0.03163,"87":0.0506,"88":4.33895,"89":0.01265,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 77 79 80 82 83 90 91 3.5 3.6"},D:{"38":0.00633,"48":0.03163,"49":0.18975,"53":0.01265,"65":0.03795,"66":0.03163,"67":0.03795,"70":0.01265,"75":0.01265,"76":0.01898,"77":0.00633,"78":0.0506,"79":0.01898,"80":0.03795,"81":0.0253,"83":0.0253,"84":0.01898,"85":0.05693,"86":0.04428,"87":0.43643,"88":0.42378,"89":2.2517,"90":34.2056,"91":1.22705,"92":0.0253,_:"4 5 6 7 8 9 10 11 12 13 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 56 57 58 59 60 61 62 63 64 68 69 71 72 73 74 93 94"},F:{"70":0.01898,"73":0.18343,"75":0.57558,"76":0.61353,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00633},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.12398,"9.0-9.2":0,"9.3":0.05796,"10.0-10.2":0,"10.3":0.10788,"11.0-11.2":0.02254,"11.3-11.4":0.05313,"12.0-12.1":0.07245,"12.2-12.4":0.20609,"13.0-13.1":0.03864,"13.2":0.0161,"13.3":0.13686,"13.4-13.7":0.44599,"14.0-14.4":12.92258,"14.5-14.6":1.55052},E:{"4":0,"12":0.01265,"13":0.13915,"14":7.00178,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01265,"10.1":0.03163,"11.1":0.29728,"12.1":0.3542,"13.1":1.05628,"14.1":2.11255},B:{"17":0.0253,"18":0.11385,"84":0.03163,"85":0.00633,"86":0.0253,"87":0.01265,"88":0.00633,"89":0.06325,"90":4.25673,"91":0.44275,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.01069,"5.0-5.4":0.15169,"6.2-6.4":0.05056,"7.2-7.4":0.17615,"8.2":0.01069,"9.2":0.01069,"10.1":0.02139,"11.1-11.2":0.07486,"12.0":0.09624,"13.0":0.22457,"14.0":3.34714},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00674,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03369},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24035,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.0147},R:{_:"0"},M:{"0":0.28298},Q:{"10.4":0},O:{"0":0.00368},H:{"0":0.167},L:{"0":17.62138}}; +module.exports={C:{"52":0.04022,"58":0.01149,"76":0.00575,"78":0.23555,"81":0.00575,"84":0.02298,"85":0.00575,"87":0.00575,"88":0.03447,"89":3.00464,"90":2.09118,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 82 83 86 91 92 3.5 3.6"},D:{"38":0.01149,"49":0.13788,"50":0.01149,"63":0.01724,"65":0.00575,"67":0.04596,"71":0.00575,"73":0.01724,"75":0.01149,"76":0.05745,"78":0.02873,"79":0.02873,"80":0.0632,"81":0.02873,"83":0.02873,"84":0.01724,"85":0.04022,"86":0.02298,"87":0.31023,"88":0.05171,"89":0.39641,"90":0.58599,"91":27.84602,"92":5.38307,_:"4 5 6 7 8 9 10 11 12 13 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 64 66 68 69 70 72 74 77 93 94 95"},F:{"69":0.00575,"74":0.00575,"76":0.41364,"77":0.90197,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00189,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.04342,"9.0-9.2":0,"9.3":0.08495,"10.0-10.2":0.00189,"10.3":0.11138,"11.0-11.2":0.03209,"11.3-11.4":0.05097,"12.0-12.1":0.06419,"12.2-12.4":0.14348,"13.0-13.1":0.02265,"13.2":0.00944,"13.3":0.10006,"13.4-13.7":0.45875,"14.0-14.4":2.36361,"14.5-14.7":14.93112},E:{"4":0,"12":0.01724,"13":0.09767,"14":1.76372,"15":0.02298,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01149,"10.1":0.02298,"11.1":0.28725,"12.1":0.22406,"13.1":0.76983,"14.1":4.74537},B:{"17":0.01149,"18":0.01724,"85":0.02873,"86":0.02298,"89":0.00575,"90":0.05171,"91":4.21109,"92":1.12602,_:"12 13 14 15 16 79 80 81 83 84 87 88"},P:{"4":0.08487,"5.0-5.4":0.01034,"6.2-6.4":0.05041,"7.2-7.4":0.18613,"8.2":0.01034,"9.2":0.01033,"10.1":0.02066,"11.1-11.2":0.08487,"12.0":0.09548,"13.0":0.09548,"14.0":3.63898},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00268,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00583},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0059,"11":0.21816,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":20.89882},S:{"2.5":0},R:{_:"0"},M:{"0":0.35317},Q:{"10.4":0},O:{"0":0.00851},H:{"0":0.12085}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js index 6b50f3570bed93..216139c6a707c9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js @@ -1 +1 @@ -module.exports={C:{"34":0.00506,"45":0.01012,"48":0.01518,"52":0.07085,"54":0.00506,"55":0.00506,"56":0.01518,"59":0.01012,"60":0.00506,"66":0.01012,"68":0.01012,"72":0.01012,"78":0.36439,"80":0.00506,"81":0.00506,"82":0.03543,"83":0.01518,"84":0.01518,"85":0.01518,"86":0.02024,"87":0.15183,"88":8.70492,"89":0.02024,_:"2 3 4 5 6 7 8 9 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 46 47 49 50 51 53 57 58 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 90 91 3.5 3.6"},D:{"26":0.01012,"38":0.03037,"49":0.22268,"50":0.14677,"52":0.01012,"53":0.51622,"55":0.01012,"56":0.02531,"59":0.01012,"60":0.04555,"61":0.06579,"63":0.01518,"65":0.02024,"66":0.07592,"67":0.02024,"68":0.09616,"69":0.13159,"70":0.02024,"71":0.01012,"72":0.01012,"73":0.02024,"74":0.03037,"75":0.01518,"76":0.01012,"77":0.02024,"78":0.01518,"79":0.12146,"80":0.03543,"81":0.06073,"83":0.05061,"84":0.03543,"85":0.05061,"86":0.0911,"87":0.2075,"88":0.14677,"89":0.65793,"90":25.75037,"91":0.70348,"92":0.01012,_:"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 51 54 57 58 62 64 93 94"},F:{"32":0.00506,"36":0.00506,"46":0.02024,"73":0.08098,"74":0.00506,"75":0.35427,"76":0.43019,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00289,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00577,"6.0-6.1":0.00481,"7.0-7.1":0.02021,"8.1-8.4":0.00962,"9.0-9.2":0.01155,"9.3":0.12894,"10.0-10.2":0.01925,"10.3":0.14434,"11.0-11.2":0.06543,"11.3-11.4":0.06255,"12.0-12.1":0.04715,"12.2-12.4":0.15396,"13.0-13.1":0.05004,"13.2":0.01925,"13.3":0.10874,"13.4-13.7":0.33871,"14.0-14.4":6.45386,"14.5-14.6":1.54442},E:{"4":0,"11":0.00506,"12":0.01518,"13":0.0911,"14":2.19647,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01012,"9.1":0.01012,"10.1":0.03037,"11.1":0.0911,"12.1":0.10122,"13.1":0.45549,"14.1":0.91098},B:{"17":0.01518,"18":0.24293,"84":0.01012,"85":0.00506,"86":0.01012,"87":0.01012,"88":0.01012,"89":0.04555,"90":3.06697,"91":0.11134,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.71806,"5.0-5.4":0.01041,"6.2-6.4":0.14145,"7.2-7.4":0.04087,"8.2":0.02081,"9.2":0.06244,"10.1":0.05203,"11.1-11.2":0.19773,"12.0":0.12488,"13.0":0.40586,"14.0":2.39355},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.01043,"4.4":0,"4.4.3-4.4.4":0.08226},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0056,"11":0.52074,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.24695},Q:{"10.4":0.0247},O:{"0":0.17287},H:{"0":0.19639},L:{"0":36.61404}}; +module.exports={C:{"34":0.00478,"45":0.00956,"48":0.01434,"52":0.08604,"56":0.01434,"59":0.01434,"63":0.00478,"66":0.00478,"68":0.00956,"72":0.00956,"78":0.3107,"81":0.00478,"82":0.03824,"83":0.01912,"84":0.01434,"85":0.00956,"86":0.00956,"87":0.00956,"88":0.1195,"89":5.81726,"90":3.02574,"91":0.00956,_:"2 3 4 5 6 7 8 9 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 46 47 49 50 51 53 54 55 57 58 60 61 62 64 65 67 69 70 71 73 74 75 76 77 79 80 92 3.5 3.6"},D:{"26":0.00956,"34":0.00478,"38":0.02868,"49":0.4302,"50":0.17208,"51":0.00478,"52":0.01434,"53":0.08604,"56":0.00956,"59":0.00478,"60":0.01912,"61":0.06214,"63":0.01434,"65":0.01434,"66":0.08604,"67":0.01434,"68":0.02868,"69":0.20554,"70":0.01912,"71":0.00956,"72":0.00956,"73":0.01434,"74":0.04302,"75":0.01912,"76":0.00956,"77":0.01434,"78":0.01912,"79":0.3346,"80":0.03824,"81":0.10994,"83":0.0478,"84":0.04302,"85":0.05258,"86":0.0717,"87":0.19598,"88":0.06692,"89":0.25812,"90":0.28202,"91":19.34466,"92":3.81922,"93":0.00956,_:"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 39 40 41 42 43 44 45 46 47 48 54 55 57 58 62 64 94 95"},F:{"36":0.00478,"46":0.02868,"76":0.1434,"77":0.65964,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00563,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00338,"5.0-5.1":0.00563,"6.0-6.1":0.00451,"7.0-7.1":0.02028,"8.1-8.4":0.01014,"9.0-9.2":0.01465,"9.3":0.14198,"10.0-10.2":0.0169,"10.3":0.14874,"11.0-11.2":0.07212,"11.3-11.4":0.06874,"12.0-12.1":0.05183,"12.2-12.4":0.14536,"13.0-13.1":0.03831,"13.2":0.02028,"13.3":0.10592,"13.4-13.7":0.33466,"14.0-14.4":1.75105,"14.5-14.7":7.80875},E:{"4":0,"11":0.00478,"12":0.00956,"13":0.07648,"14":0.87474,"15":0.01434,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00478,"10.1":0.01912,"11.1":0.10038,"12.1":0.09082,"13.1":0.42542,"14.1":2.35176},B:{"17":0.01434,"18":0.17686,"84":0.00478,"85":0.00478,"86":0.00478,"87":0.00478,"89":0.0239,"90":0.01912,"91":2.38522,"92":0.66442,_:"12 13 14 15 16 79 80 81 83 88"},P:{"4":0.69455,"5.0-5.4":0.01037,"6.2-6.4":0.01024,"7.2-7.4":0.01041,"8.2":0.02073,"9.2":0.04147,"10.1":0.05183,"11.1-11.2":0.22806,"12.0":0.11403,"13.0":0.26953,"14.0":2.98555},I:{"0":0,"3":0,"4":0.00164,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00164,"4.2-4.3":0.00654,"4.4":0,"4.4.3-4.4.4":0.05805},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01065,"11":0.54861,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":38.20958},S:{"2.5":0},R:{_:"0"},M:{"0":0.32364},Q:{"10.4":0.0261},O:{"0":0.19836},H:{"0":0.2125}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js index 3e72bbd7b4ee86..c2f6c4c3362c26 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js @@ -1 +1 @@ -module.exports={C:{"48":0.0093,"52":0.0093,"60":0.0093,"65":0.09769,"78":0.08839,"81":0.0093,"84":0.11165,"85":0.01861,"86":0.01861,"87":0.03722,"88":1.87941,"89":0.0093,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 90 91 3.5 3.6"},D:{"42":0.01861,"49":0.25586,"53":0.02326,"61":1.70728,"63":0.0093,"65":0.03722,"67":0.01396,"69":0.0093,"72":0.06513,"74":0.02791,"75":0.0093,"78":0.00465,"79":0.01396,"80":0.04652,"81":0.00465,"83":0.0093,"84":0.04187,"85":0.03722,"86":0.04652,"87":0.20469,"88":0.15817,"89":0.85132,"90":17.11936,"91":0.62802,"92":0.01396,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 54 55 56 57 58 59 60 62 64 66 68 70 71 73 76 77 93 94"},F:{"73":0.01861,"75":0.45124,"76":0.18143,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.14502,"7.0-7.1":0.00354,"8.1-8.4":0.03183,"9.0-9.2":0,"9.3":0.45984,"10.0-10.2":0.02476,"10.3":0.67207,"11.0-11.2":0.03537,"11.3-11.4":0.10258,"12.0-12.1":0.03183,"12.2-12.4":0.46337,"13.0-13.1":0.03537,"13.2":0.01415,"13.3":0.24053,"13.4-13.7":0.68975,"14.0-14.4":27.75636,"14.5-14.6":3.13042},E:{"4":0,"12":0.01861,"13":0.12095,"14":9.32261,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02326,"10.1":0.05117,"11.1":0.09304,"12.1":0.2233,"13.1":1.25139,"14.1":2.13992},B:{"12":0.00465,"13":0.00465,"16":0.26051,"17":0.01861,"18":0.08839,"80":0.06978,"85":0.01396,"86":0.04187,"87":0.01396,"88":0.00465,"89":0.06978,"90":6.0569,"91":0.26982,_:"14 15 79 81 83 84"},P:{"4":0.49293,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.1409,"8.2":0.03338,"9.2":0.01095,"10.1":0.10013,"11.1-11.2":0.07668,"12.0":0.05477,"13.0":0.38339,"14.0":3.29712},I:{"0":0,"3":0,"4":0.00055,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00041,"4.4":0,"4.4.3-4.4.4":0.00974},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.20952,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.18183},Q:{"10.4":0},O:{"0":0.01604},H:{"0":0.21265},L:{"0":15.27381}}; +module.exports={C:{"48":0.00881,"52":0.00881,"60":0.01322,"78":0.13215,"83":0.01762,"88":0.00881,"89":1.30829,"90":0.91184,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 91 92 3.5 3.6"},D:{"49":0.05286,"53":0.01322,"61":0.10132,"65":0.01322,"67":0.00441,"70":0.00441,"71":0.00881,"72":0.04846,"74":0.00441,"76":0.00441,"79":0.02203,"80":0.05727,"83":0.02643,"84":0.03084,"86":0.03524,"87":0.22025,"88":0.05286,"89":0.1718,"90":0.22025,"91":13.4749,"92":3.41388,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 62 63 64 66 68 69 73 75 77 78 81 85 93 94 95"},F:{"68":0.00441,"76":0.12334,"77":0.348,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.26857,"7.0-7.1":0,"8.1-8.4":0.01535,"9.0-9.2":0,"9.3":0.42204,"10.0-10.2":0.00767,"10.3":0.84023,"11.0-11.2":0.0422,"11.3-11.4":0.06139,"12.0-12.1":0.02686,"12.2-12.4":0.31845,"13.0-13.1":0.06906,"13.2":0.00767,"13.3":0.18032,"13.4-13.7":0.74815,"14.0-14.4":4.76517,"14.5-14.7":28.94782},E:{"4":0,"13":0.24228,"14":2.05273,"15":0.01322,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.02203,"10.1":0.01762,"11.1":0.11013,"12.1":0.14537,"13.1":0.99113,"14.1":10.52795},B:{"13":0.00441,"15":0.00881,"16":0.11013,"17":0.00881,"18":0.0837,"80":0.06608,"84":0.00881,"85":0.00441,"86":0.04846,"89":0.01322,"90":0.04846,"91":4.82348,"92":1.30829,_:"12 14 79 81 83 87 88"},P:{"4":0.26179,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.16207,"8.2":0.0205,"9.2":0.12965,"10.1":0.0108,"11.1-11.2":0.06545,"12.0":0.03272,"13.0":0.17452,"14.0":2.90146},I:{"0":0,"3":0,"4":0.00022,"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.00537},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.34793,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":15.87747},S:{"2.5":0},R:{_:"0"},M:{"0":0.39172},Q:{"10.4":0},O:{"0":0.01679},H:{"0":0.02649}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js index 13531eb05d2e64..d53f5c65a1a1fd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js @@ -1 +1 @@ -module.exports={C:{"61":0.00436,"67":0.01745,"78":0.02617,"84":0.00872,"86":0.01309,"87":0.02181,"88":1.27807,"89":0.00872,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 90 91 3.5 3.6"},D:{"38":0.00436,"42":0.00436,"43":0.02181,"47":0.01309,"49":0.18757,"50":0.01309,"53":0.04362,"55":0.01309,"56":0.00872,"58":0.00436,"63":0.01309,"65":0.01309,"68":0.02181,"69":0.01745,"70":0.01309,"71":0.00872,"72":0.00436,"73":0.01309,"74":0.38822,"75":0.16139,"76":0.13522,"77":0.05234,"78":0.07852,"79":0.0916,"80":0.06543,"81":0.07852,"83":0.02181,"84":0.13522,"85":0.04798,"86":0.06979,"87":0.23119,"88":0.18757,"89":0.85931,"90":24.64966,"91":0.84187,"92":0.06543,_:"4 5 6 7 8 9 10 11 12 13 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 51 52 54 57 59 60 61 62 64 66 67 93 94"},F:{"57":0.00872,"73":0.05671,"75":0.46673,"76":0.44492,_:"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 67 68 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},G:{"8":0,"3.2":0.00256,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00769,"6.0-6.1":0,"7.0-7.1":0.19479,"8.1-8.4":0.00128,"9.0-9.2":0.00128,"9.3":0.16275,"10.0-10.2":0,"10.3":0.07561,"11.0-11.2":0.132,"11.3-11.4":0.12687,"12.0-12.1":0.03332,"12.2-12.4":0.12815,"13.0-13.1":0.02691,"13.2":0.00641,"13.3":0.12943,"13.4-13.7":0.44341,"14.0-14.4":8.46577,"14.5-14.6":2.14399},E:{"4":0,"13":0.02181,"14":1.35222,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.0916,"10.1":0.02181,"11.1":0.03053,"12.1":0.03053,"13.1":0.23991,"14.1":0.31406},B:{"12":0.01309,"13":0.01309,"14":0.00872,"15":0.03053,"16":0.02181,"17":0.02617,"18":0.10469,"79":0.00436,"80":0.00872,"84":0.01309,"85":0.00872,"86":0.01309,"87":0.02617,"88":0.01309,"89":0.11341,"90":4.69787,"91":0.32715,_:"81 83"},P:{"4":0.16258,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.1409,"8.2":0.03338,"9.2":0.09755,"10.1":0.10013,"11.1-11.2":0.31432,"12.0":0.24929,"13.0":0.66115,"14.0":3.40331},I:{"0":0,"3":0,"4":0.00097,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0013,"4.2-4.3":0.0094,"4.4":0,"4.4.3-4.4.4":0.04472},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02754,"9":0.01836,"10":0.01377,"11":0.3809,_:"6 7 5.5"},J:{"7":0,"10":0.00564},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.15786},Q:{"10.4":0},O:{"0":0.61454},H:{"0":0.28824},L:{"0":42.31073}}; +module.exports={C:{"52":0.00428,"78":0.03856,"79":0.00428,"85":0.00428,"86":0.00857,"87":0.0257,"88":0.02999,"89":0.62118,"90":0.44554,"91":0.01285,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 81 82 83 84 92 3.5 3.6"},D:{"11":0.00428,"22":0.00428,"43":0.00428,"47":0.02142,"49":0.19706,"53":0.01714,"55":0.01285,"60":0.00428,"63":0.00857,"64":0.00428,"65":0.01714,"67":0.00428,"68":0.00857,"69":0.02142,"70":0.00857,"73":0.00857,"74":0.42412,"75":0.09853,"76":0.14566,"77":0.03856,"78":0.03427,"79":0.12852,"80":0.02999,"81":0.08568,"83":0.02999,"84":0.11138,"85":0.01714,"86":0.04712,"87":0.15851,"88":0.07283,"89":0.18421,"90":0.53978,"91":20.88022,"92":4.24973,"93":0.05998,"94":0.00428,_:"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 37 38 39 40 41 42 44 45 46 48 50 51 52 54 56 57 58 59 61 62 66 71 72 95"},F:{"57":0.00428,"76":0.17136,"77":0.76255,_:"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 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00129,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00773,"6.0-6.1":0,"7.0-7.1":0.36311,"8.1-8.4":0.00129,"9.0-9.2":0.00644,"9.3":0.16868,"10.0-10.2":0.00129,"10.3":0.10558,"11.0-11.2":0.13391,"11.3-11.4":0.0206,"12.0-12.1":0.03477,"12.2-12.4":0.08369,"13.0-13.1":0.02575,"13.2":0.00773,"13.3":0.10687,"13.4-13.7":0.29358,"14.0-14.4":1.91081,"14.5-14.7":8.90769},E:{"4":0,"12":0.00428,"13":0.0257,"14":0.33415,"15":0.01714,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.02999,"10.1":0.00857,"11.1":0.01285,"12.1":0.01714,"13.1":0.14994,"14.1":1.22522},B:{"12":0.00857,"13":0.00428,"15":0.04712,"16":0.01714,"17":0.01714,"18":0.10282,"80":0.00857,"84":0.00857,"85":0.00857,"87":0.02142,"88":0.00857,"89":0.05569,"90":0.0257,"91":4.38253,"92":1.01959,_:"14 79 81 83 86"},P:{"4":0.31333,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.16207,"8.2":0.0205,"9.2":0.12965,"10.1":0.0108,"11.1-11.2":0.49701,"12.0":0.09724,"13.0":0.34574,"14.0":3.8356},I:{"0":0,"3":0,"4":0.00064,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00286,"4.2-4.3":0.00921,"4.4":0,"4.4.3-4.4.4":0.04446},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06126,"9":0.00471,"10":0.00942,"11":0.25447,_:"6 7 5.5"},J:{"7":0,"10":0.00572},N:{"11":0.01472,_:"10"},L:{"0":42.99972},S:{"2.5":0},R:{_:"0"},M:{"0":0.13718},Q:{"10.4":0},O:{"0":0.54302},H:{"0":0.23811}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js index 615c4dd0d17c04..92aaab7a6a2ad8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js @@ -1 +1 @@ -module.exports={C:{"34":0.01027,"52":0.00685,"63":0.02054,"69":0.00342,"78":0.01369,"81":0.01369,"85":0.00342,"86":0.00685,"87":0.01712,"88":1.1159,"89":0.01027,_:"2 3 4 5 6 7 8 9 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 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 82 83 84 90 91 3.5 3.6"},D:{"11":0.00342,"37":0.00342,"38":0.00342,"49":0.05477,"53":0.00685,"61":0.01369,"63":0.01369,"65":0.01712,"66":0.00685,"67":0.00342,"68":0.00685,"69":0.01027,"70":0.00685,"73":0.00342,"74":0.00685,"75":0.01027,"76":0.00685,"77":0.01369,"78":0.01369,"79":0.07531,"80":0.02054,"81":0.01027,"83":0.07873,"84":0.01712,"85":0.02738,"86":0.07188,"87":0.09927,"88":0.10269,"89":0.43814,"90":16.55705,"91":0.70856,"92":0.00685,_:"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 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 64 71 72 93 94"},F:{"73":0.06161,"74":0.02054,"75":0.40049,"76":0.36626,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00238,"6.0-6.1":0.00318,"7.0-7.1":0.01748,"8.1-8.4":0.00159,"9.0-9.2":0.00159,"9.3":0.06594,"10.0-10.2":0.00794,"10.3":0.05482,"11.0-11.2":0.02304,"11.3-11.4":0.03814,"12.0-12.1":0.03496,"12.2-12.4":0.15731,"13.0-13.1":0.02622,"13.2":0.01271,"13.3":0.07389,"13.4-13.7":0.25662,"14.0-14.4":5.23325,"14.5-14.6":1.37604},E:{"4":0,"12":0.01027,"13":0.03081,"14":0.76675,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.15061,"11.1":0.01027,"12.1":0.02054,"13.1":0.13692,"14.1":0.26699},B:{"17":0.00685,"18":0.02396,"84":0.00685,"85":0.00342,"86":0.01027,"87":0.00685,"88":0.00342,"89":0.02738,"90":9.61863,"91":0.12665,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.10415,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.09374,"8.2":0.03338,"9.2":0.07291,"10.1":0.10013,"11.1-11.2":0.23955,"12.0":0.08332,"13.0":0.30204,"14.0":1.47895},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.22284,"4.2-4.3":1.0028,"4.4":0,"4.4.3-4.4.4":11.47648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07188,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.14472},Q:{"10.4":0},O:{"0":0.36179},H:{"0":0.23042},L:{"0":44.56587}}; +module.exports={C:{"33":0.00308,"34":0.00308,"52":0.01234,"63":0.02776,"69":0.01234,"78":0.03084,"79":0.00617,"81":0.00308,"84":0.00617,"85":0.00308,"86":0.00308,"87":0.00925,"88":0.02159,"89":0.81726,"90":0.51503,"91":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 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 64 65 66 67 68 70 71 72 73 74 75 76 77 80 82 83 92 3.5 3.6"},D:{"11":0.00617,"33":0.00308,"34":0.00617,"38":0.00617,"43":0.00925,"49":0.21896,"51":0.00617,"54":0.00617,"58":0.00617,"61":0.47802,"63":0.01234,"65":0.0185,"66":0.00925,"68":0.00617,"69":0.0185,"70":0.00925,"71":0.00925,"74":0.01234,"75":0.01542,"76":0.00617,"77":0.01234,"78":0.01234,"79":0.07402,"80":0.03084,"81":0.01542,"83":0.06476,"84":0.01542,"85":0.04009,"86":0.04626,"87":0.62297,"88":0.08635,"89":0.09869,"90":0.22205,"91":15.52177,"92":3.70388,"93":0.00925,_:"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 35 36 37 39 40 41 42 44 45 46 47 48 50 52 53 55 56 57 59 60 62 64 67 72 73 94 95"},F:{"73":0.00617,"74":0.00925,"75":0.0185,"76":0.22205,"77":0.62297,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00293,"6.0-6.1":0.00683,"7.0-7.1":0.01952,"8.1-8.4":0.00195,"9.0-9.2":0.00098,"9.3":0.06733,"10.0-10.2":0.00781,"10.3":0.07124,"11.0-11.2":0.02244,"11.3-11.4":0.03318,"12.0-12.1":0.03708,"12.2-12.4":0.11027,"13.0-13.1":0.02635,"13.2":0.01756,"13.3":0.07124,"13.4-13.7":0.24396,"14.0-14.4":1.76626,"14.5-14.7":6.68445},E:{"4":0,"12":0.00617,"13":0.03084,"14":0.4441,"15":0.01234,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01542,"11.1":0.00925,"12.1":0.02159,"13.1":0.08944,"14.1":0.94987},B:{"16":0.00925,"17":0.00925,"18":0.03392,"84":0.00617,"85":0.00308,"86":0.00617,"89":0.03084,"90":0.02159,"91":1.44948,"92":0.35774,_:"12 13 14 15 79 80 81 83 87 88"},P:{"4":0.14396,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.09254,"8.2":0.0205,"9.2":0.05141,"10.1":0.0108,"11.1-11.2":0.21594,"12.0":0.08226,"13.0":0.20565,"14.0":1.93314},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.57505,"4.2-4.3":1.43763,"4.4":0,"4.4.3-4.4.4":13.51374},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00308,"11":0.10177,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":43.68522},S:{"2.5":0},R:{_:"0"},M:{"0":0.15215},Q:{"10.4":0},O:{"0":0.44262},H:{"0":0.29464}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js index 4212d66b9236fd..c00dd2871a711c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js @@ -1 +1 @@ -module.exports={C:{"45":0.00975,"48":0.01463,"52":0.05852,"53":0.00488,"56":0.02439,"60":0.00975,"63":0.00488,"66":0.00975,"67":0.00975,"68":0.00975,"69":0.00488,"72":0.00975,"78":0.10242,"79":0.00488,"81":0.00488,"82":0.00488,"84":0.01951,"85":0.02439,"86":0.02439,"87":0.04389,"88":2.43362,"89":0.00975,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 54 55 57 58 59 61 62 64 65 70 71 73 74 75 76 77 80 83 90 91 3.5 3.6"},D:{"47":0.00488,"48":0.00975,"49":0.28287,"50":0.00488,"52":0.00975,"53":0.00975,"55":0.00488,"56":0.01463,"57":0.00488,"61":0.18045,"62":0.01951,"63":0.00488,"64":0.01951,"65":0.01951,"66":0.00488,"67":0.01463,"68":0.00975,"69":0.05365,"70":0.02926,"71":0.02439,"72":0.03902,"73":0.01463,"74":0.04389,"75":0.02439,"76":0.01951,"77":0.01463,"78":0.02439,"79":0.05365,"80":0.07316,"81":0.18045,"83":0.07316,"84":0.07316,"85":0.05852,"86":0.13656,"87":0.18533,"88":0.2341,"89":0.93151,"90":18.16683,"91":0.38041,"92":0.01463,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 51 54 58 59 60 93 94"},F:{"46":0.00488,"73":0.00488,"75":0.09266,"76":0.1707,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00663,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00331,"7.0-7.1":0.02981,"8.1-8.4":0.06294,"9.0-9.2":0.19876,"9.3":0.21201,"10.0-10.2":0.07288,"10.3":0.20207,"11.0-11.2":0.18551,"11.3-11.4":0.18882,"12.0-12.1":0.20538,"12.2-12.4":0.42401,"13.0-13.1":0.09938,"13.2":0.04638,"13.3":0.33126,"13.4-13.7":1.24222,"14.0-14.4":24.52646,"14.5-14.6":4.29975},E:{"4":0,"11":0.01463,"12":0.01951,"13":0.09754,"14":2.69698,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01951,"10.1":0.02439,"11.1":0.07803,"12.1":0.10729,"13.1":0.44381,"14.1":0.912},B:{"14":0.00488,"15":0.00975,"16":0.00975,"17":0.02439,"18":0.08779,"83":0.00488,"84":0.00975,"85":0.01463,"86":0.01463,"87":0.01463,"88":0.01951,"89":0.10242,"90":7.8666,"91":0.13656,_:"12 13 79 80 81"},P:{"4":0.71806,"5.0-5.4":0.01041,"6.2-6.4":0.14145,"7.2-7.4":0.04087,"8.2":0.02081,"9.2":0.06244,"10.1":0.05203,"11.1-11.2":0.05493,"12.0":0.02197,"13.0":0.12084,"14.0":1.17549},I:{"0":0,"3":0,"4":0.00838,"2.1":0,"2.2":0.01006,"2.3":0,"4.1":0.01676,"4.2-4.3":0.05197,"4.4":0,"4.4.3-4.4.4":0.1844},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0171,"10":0.0057,"11":3.08873,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.30744},Q:{"10.4":0.07174},O:{"0":0.37918},H:{"0":0.12128},L:{"0":23.60852}}; +module.exports={C:{"45":0.01021,"48":0.01531,"52":0.05103,"53":0.01021,"55":0.0051,"56":0.03062,"60":0.01021,"63":0.0051,"66":0.01021,"67":0.0051,"68":0.01021,"72":0.01021,"78":0.12758,"79":0.01021,"81":0.0051,"84":0.02041,"85":0.01531,"86":0.0051,"87":0.0051,"88":0.05103,"89":1.75033,"90":0.98998,"91":0.0051,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 54 57 58 59 61 62 64 65 69 70 71 73 74 75 76 77 80 82 83 92 3.5 3.6"},D:{"24":0.0051,"42":0.0051,"43":0.01021,"47":0.0051,"48":0.01531,"49":0.28577,"52":0.01531,"56":0.0051,"57":0.0051,"61":0.27556,"62":0.02041,"63":0.01021,"64":0.01531,"65":0.03062,"66":0.0051,"67":0.02041,"68":0.0051,"69":0.05103,"70":0.03062,"71":0.02041,"72":0.03062,"73":0.01531,"74":0.04593,"75":0.02552,"76":0.01531,"77":0.01531,"78":0.02041,"79":0.05613,"80":0.08675,"81":0.15819,"83":0.05103,"84":0.06124,"85":0.05613,"86":0.10716,"87":0.5154,"88":0.10716,"89":0.23984,"90":0.50009,"91":17.72782,"92":3.36798,"93":0.02552,_:"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 44 45 46 50 51 53 54 55 58 59 60 94 95"},F:{"34":0.0051,"35":0.0051,"76":0.02552,"77":0.24494,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0051},G:{"8":0.00643,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00643,"7.0-7.1":0.0225,"8.1-8.4":0.03858,"9.0-9.2":0.22182,"9.3":0.16717,"10.0-10.2":0.06108,"10.3":0.18003,"11.0-11.2":0.17039,"11.3-11.4":0.14145,"12.0-12.1":0.14467,"12.2-12.4":0.31505,"13.0-13.1":0.08037,"13.2":0.03858,"13.3":0.2604,"13.4-13.7":1.00946,"14.0-14.4":4.31108,"14.5-14.7":24.30089},E:{"4":0,"11":0.01531,"12":0.02041,"13":0.08675,"14":0.80627,"15":0.02041,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01531,"10.1":0.02041,"11.1":0.06634,"12.1":0.10716,"13.1":0.38783,"14.1":2.85768},B:{"14":0.0051,"16":0.0051,"17":0.03062,"18":0.07144,"84":0.0051,"85":0.01021,"86":0.01531,"87":0.01021,"88":0.01021,"89":0.02552,"90":0.03062,"91":6.65942,"92":1.41863,_:"12 13 15 79 80 81 83"},P:{_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2","10.1":0.01093,"11.1-11.2":0.02186,"12.0":0.01093,"13.0":0.05464,"14.0":1.12564},I:{"0":0,"3":0,"4":0.00809,"2.1":0,"2.2":0.02629,"2.3":0,"4.1":0.01618,"4.2-4.3":0.06876,"4.4":0,"4.4.3-4.4.4":0.15976},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01252,"9":0.01252,"10":0.00626,"11":2.78556,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":21.9015},S:{"2.5":0},R:{_:"0"},M:{"0":0.32803},Q:{"10.4":0.06365},O:{"0":0.39168},H:{"0":0.13442}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js index c7b31e4f67fb3b..331127bb00dd52 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js @@ -1 +1 @@ -module.exports={C:{"34":0.00793,"43":0.00264,"47":0.00529,"48":0.00264,"49":0.00264,"52":0.03965,"56":0.00529,"67":0.03436,"68":0.00529,"70":0.00529,"72":0.03172,"73":0.00529,"77":0.00529,"78":0.04493,"79":0.00264,"81":0.00793,"82":0.00793,"83":0.00529,"84":0.01586,"85":0.01586,"86":0.0185,"87":0.05286,"88":1.93732,"89":0.12158,_:"2 3 4 5 6 7 8 9 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 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 69 71 74 75 76 80 90 91 3.5 3.6"},D:{"11":0.00529,"34":0.00529,"38":0.00793,"39":0.01322,"40":0.00529,"42":0.00793,"43":0.00529,"47":0.00264,"49":0.05286,"50":0.00529,"51":0.00264,"53":0.01057,"55":0.00529,"56":0.00529,"57":0.00529,"58":0.00529,"60":0.00264,"61":0.04229,"62":0.00793,"63":0.00793,"64":0.00529,"65":0.00529,"67":0.01586,"68":0.01322,"69":0.01322,"70":0.00793,"71":0.00529,"72":0.00793,"73":0.00793,"74":0.01586,"75":0.01057,"76":0.01586,"77":0.00793,"78":0.01322,"79":0.03172,"80":0.03436,"81":0.03965,"83":0.02643,"84":0.02114,"85":0.02643,"86":0.09251,"87":0.13479,"88":0.11629,"89":0.44402,"90":13.47401,"91":0.53124,"92":0.01057,_:"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 41 44 45 46 48 52 54 59 66 93 94"},F:{"28":0.00264,"33":0.00529,"36":0.00264,"63":0.00793,"64":0.00529,"72":0.02379,"73":0.02114,"74":0.01057,"75":0.29602,"76":0.52331,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 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 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00529,"6.0-6.1":0.00063,"7.0-7.1":0.03426,"8.1-8.4":0.00085,"9.0-9.2":0.00106,"9.3":0.03469,"10.0-10.2":0.0019,"10.3":0.0313,"11.0-11.2":0.01438,"11.3-11.4":0.01396,"12.0-12.1":0.01311,"12.2-12.4":0.0571,"13.0-13.1":0.00867,"13.2":0.00634,"13.3":0.06133,"13.4-13.7":0.09158,"14.0-14.4":1.21018,"14.5-14.6":0.33353},E:{"4":0,"12":0.00264,"13":0.0185,"14":0.2643,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.11101,"10.1":0.01057,"11.1":0.00793,"12.1":0.0185,"13.1":0.06343,"14.1":0.10308},B:{"12":0.01057,"13":0.00529,"14":0.00529,"15":0.00529,"16":0.01057,"17":0.01322,"18":0.05022,"84":0.01322,"85":0.00793,"86":0.00264,"87":0.00529,"88":0.01322,"89":0.04493,"90":1.08892,"91":0.06343,_:"79 80 81 83"},P:{"4":0.14059,"5.0-5.4":0.01016,"6.2-6.4":0.01027,"7.2-7.4":0.04326,"8.2":0.03338,"9.2":0.02163,"10.1":0.03081,"11.1-11.2":0.06489,"12.0":0.03244,"13.0":0.17304,"14.0":0.60563},I:{"0":0,"3":0,"4":0.00046,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00092,"4.2-4.3":0.00439,"4.4":0,"4.4.3-4.4.4":0.05309},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01057,"10":0.01057,"11":0.13744,_:"6 7 9 5.5"},J:{"7":0,"10":0.01471},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.13978},Q:{"10.4":0},O:{"0":0.34578},H:{"0":31.78886},L:{"0":41.4355}}; +module.exports={C:{"30":0.00324,"34":0.00648,"43":0.00324,"47":0.01296,"48":0.00324,"49":0.00648,"52":0.05182,"56":0.00648,"57":0.00648,"60":0.00324,"66":0.00324,"68":0.00972,"70":0.00324,"72":0.00972,"73":0.00972,"76":0.00324,"78":0.04859,"79":0.00324,"81":0.04211,"83":0.00324,"84":0.00972,"85":0.00972,"86":0.00972,"87":0.0162,"88":0.07126,"89":1.52233,"90":0.86157,"91":0.07126,_:"2 3 4 5 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 37 38 39 40 41 42 44 45 46 50 51 53 54 55 58 59 61 62 63 64 65 67 69 71 74 75 77 80 82 92 3.5 3.6"},D:{"11":0.00324,"20":0.00324,"38":0.02267,"39":0.02915,"42":0.00648,"43":0.00648,"47":0.00648,"49":0.06154,"50":0.00972,"53":0.00648,"55":0.00324,"56":0.00648,"57":0.00972,"58":0.00324,"61":0.0583,"62":0.00324,"63":0.01296,"64":0.00648,"65":0.01296,"66":0.00972,"67":0.01296,"68":0.00972,"69":0.00972,"70":0.00972,"71":0.00648,"72":0.00972,"73":0.00972,"74":0.00972,"75":0.00648,"76":0.0162,"77":0.0162,"78":0.01943,"79":0.05182,"80":0.03239,"81":0.0583,"83":0.03887,"84":0.02267,"85":0.02591,"86":0.0583,"87":0.14576,"88":0.05506,"89":0.1328,"90":0.27208,"91":14.53987,"92":3.00903,"93":0.01296,"94":0.00648,_:"4 5 6 7 8 9 10 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 40 41 44 45 46 48 51 52 54 59 60 95"},F:{"28":0.00972,"36":0.00648,"63":0.00972,"64":0.03563,"65":0.00648,"75":0.00324,"76":0.06154,"77":0.8551,_:"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 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01521,"6.0-6.1":0.00111,"7.0-7.1":0.03762,"8.1-8.4":0.00664,"9.0-9.2":0.00055,"9.3":0.05559,"10.0-10.2":0.00636,"10.3":0.03596,"11.0-11.2":0.06306,"11.3-11.4":0.01023,"12.0-12.1":0.00885,"12.2-12.4":0.04287,"13.0-13.1":0.0094,"13.2":0.00608,"13.3":0.06223,"13.4-13.7":0.08381,"14.0-14.4":0.46993,"14.5-14.7":1.62662},E:{"4":0,"13":0.01943,"14":0.1328,"15":0.00324,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 9.1","5.1":0.01943,"7.1":0.00324,"10.1":0.00324,"11.1":0.00972,"12.1":0.06478,"13.1":0.0583,"14.1":0.35629},B:{"12":0.01296,"13":0.01296,"14":0.00648,"15":0.01296,"16":0.00972,"17":0.00972,"18":0.05506,"84":0.00972,"85":0.00648,"86":0.00324,"88":0.00324,"89":0.03239,"90":0.02267,"91":1.34742,"92":0.28179,_:"79 80 81 83 87"},P:{"4":0.21391,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.06417,"9.2":0.04278,"11.1-11.2":0.07487,"12.0":0.03209,"13.0":0.12835,"14.0":0.7487},I:{"0":0,"3":0,"4":0.00085,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00199,"4.2-4.3":0.00513,"4.4":0,"4.4.3-4.4.4":0.06639},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01036,"10":0.00518,"11":0.16584,_:"6 7 9 5.5"},J:{"7":0,"10":0.01352},N:{_:"10 11"},L:{"0":43.24756},S:{"2.5":0},R:{_:"0"},M:{"0":0.16226},Q:{"10.4":0},O:{"0":0.4327},H:{"0":24.84181}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js index cefccfd1f50954..741c7d0c665c1c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js @@ -1 +1 @@ -module.exports={C:{"52":0.0191,"78":0.03183,"84":0.00637,"86":0.03183,"87":0.02546,"88":0.84018,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 89 90 91 3.5 3.6"},D:{"42":0.50284,"49":0.26097,"56":0.31825,"59":0.03819,"60":0.02546,"65":0.00637,"67":0.0191,"68":0.00637,"71":0.02546,"73":0.0191,"74":0.03819,"75":0.01273,"77":0.00637,"78":0.00637,"79":0.05092,"80":0.02546,"81":0.0191,"83":0.0191,"84":0.00637,"85":0.03183,"86":0.08911,"87":0.15913,"88":0.42009,"89":13.35377,"90":36.45872,"91":0.72561,"92":0.10184,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 57 58 61 62 63 64 66 69 70 72 76 93 94"},F:{"62":0.01273,"67":0.00637,"72":0.01273,"73":0.17822,"74":0.00637,"75":0.84655,"76":1.1648,_:"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 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00166,"6.0-6.1":0.0029,"7.0-7.1":0.00332,"8.1-8.4":0,"9.0-9.2":0.00705,"9.3":0.01161,"10.0-10.2":0.00664,"10.3":0.02613,"11.0-11.2":0.0112,"11.3-11.4":0.01037,"12.0-12.1":0.02281,"12.2-12.4":0.08169,"13.0-13.1":0.02322,"13.2":0.00829,"13.3":0.08086,"13.4-13.7":0.16173,"14.0-14.4":2.82734,"14.5-14.6":0.66806},E:{"4":0,"13":0.03183,"14":0.92293,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.94133,"11.1":0.0191,"12.1":0.01273,"13.1":0.09548,"14.1":0.38827},B:{"18":0.0191,"89":0.03183,"90":0.61741,"91":0.02546,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.30938,"5.0-5.4":0.01031,"6.2-6.4":0.05156,"7.2-7.4":0.11344,"8.2":0.01031,"9.2":0.09281,"10.1":0.12375,"11.1-11.2":0.17531,"12.0":0.10313,"13.0":0.39188,"14.0":0.95906},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00044,"4.2-4.3":0.00088,"4.4":0,"4.4.3-4.4.4":0.01322},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.59831,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00364},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.09088},Q:{"10.4":0.00727},O:{"0":0.73064},H:{"0":0.30628},L:{"0":29.4732}}; +module.exports={C:{"4":0.00607,"47":0.01213,"52":0.02426,"78":0.03639,"79":0.0182,"81":0.00607,"88":0.02426,"89":0.3639,"90":0.2608,"91":0.01213,_:"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 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 92 3.5 3.6"},D:{"49":0.19408,"56":0.04246,"59":0.10917,"60":0.00607,"66":0.01213,"67":0.00607,"71":0.01213,"73":0.00607,"75":0.0182,"76":0.00607,"77":0.01213,"79":0.09098,"80":0.0182,"81":0.00607,"83":0.02426,"84":0.0182,"85":0.02426,"86":0.09098,"87":0.54585,"88":0.41849,"89":0.09704,"90":15.87211,"91":29.26969,"92":3.42673,"93":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 50 51 52 53 54 55 57 58 61 62 63 64 65 68 69 70 72 74 78 94 95"},F:{"36":0.00607,"68":0.00607,"73":0.00607,"74":0.02426,"76":0.43668,"77":1.96506,_:"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 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00047,"7.0-7.1":0.00377,"8.1-8.4":0,"9.0-9.2":0.00047,"9.3":0.01507,"10.0-10.2":0.00141,"10.3":0.03626,"11.0-11.2":0.00895,"11.3-11.4":0.01978,"12.0-12.1":0.01318,"12.2-12.4":0.06969,"13.0-13.1":0.0146,"13.2":0.00942,"13.3":0.06216,"13.4-13.7":0.17799,"14.0-14.4":1.40887,"14.5-14.7":2.66235},E:{"4":0,"13":0.0182,"14":0.30932,"15":0.01213,_:"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.28578,"12.1":0.01213,"13.1":0.04852,"14.1":0.64896},B:{"18":0.00607,"86":0.00607,"90":0.00607,"91":0.46701,"92":0.11524,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89"},P:{"4":0.24711,"5.0-5.4":0.0103,"6.2-6.4":0.05148,"7.2-7.4":0.15444,"8.2":0.0103,"9.2":0.05148,"10.1":0.03089,"11.1-11.2":0.13385,"12.0":0.10296,"13.0":0.19563,"14.0":1.16347},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0004,"4.2-4.3":0.00174,"4.4":0,"4.4.3-4.4.4":0.00966},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.77026,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":32.54207},S:{"2.5":0},R:{_:"0"},M:{"0":0.05508},Q:{"10.4":0},O:{"0":0.67271},H:{"0":0.41341}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js index a8d355782bf280..0ad5c3cadde2d1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js @@ -1 +1 @@ -module.exports={C:{"4":0.02002,"5":0.01601,"15":0.01601,"17":0.02402,"33":0.004,"43":0.01201,"44":0.00801,"47":0.004,"48":0.004,"51":0.004,"52":0.02002,"56":0.01601,"57":0.01201,"61":0.04804,"67":0.00801,"68":0.01601,"70":0.01201,"72":0.01201,"76":0.004,"77":0.00801,"78":0.06005,"79":0.02402,"80":0.01201,"81":0.03603,"82":0.02002,"83":0.01601,"84":0.01601,"85":0.02002,"86":0.03202,"87":0.06805,"88":2.23367,"89":0.10808,_:"2 3 6 7 8 9 10 11 12 13 14 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 45 46 49 50 53 54 55 58 59 60 62 63 64 65 66 69 71 73 74 75 90 91 3.5 3.6"},D:{"23":0.01601,"24":0.03202,"25":0.01601,"29":0.00801,"38":0.03202,"43":0.01601,"46":0.02002,"47":0.02402,"49":0.36027,"53":0.10808,"56":0.01201,"57":0.02002,"61":0.1321,"63":0.01601,"65":0.01201,"67":0.02402,"68":0.02402,"69":0.00801,"70":0.03202,"71":0.02002,"72":0.01601,"73":0.01601,"74":0.02002,"75":0.04403,"76":0.02402,"78":0.03202,"79":0.06805,"80":0.06405,"81":0.06805,"83":0.14811,"84":0.20816,"85":0.24018,"86":0.38429,"87":0.42432,"88":0.48837,"89":0.73655,"90":22.63697,"91":0.75256,"92":0.06005,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 44 45 48 50 51 52 54 55 58 59 60 62 64 66 77 93 94"},F:{"29":0.00801,"36":0.00801,"40":0.00801,"46":0.00801,"68":0.02002,"69":0.02002,"71":0.02002,"72":0.004,"73":0.06005,"74":0.00801,"75":0.33225,"76":0.43232,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00801},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00522,"6.0-6.1":0.01566,"7.0-7.1":0.10964,"8.1-8.4":0.08876,"9.0-9.2":0.05743,"9.3":0.21929,"10.0-10.2":0.0496,"10.3":0.24017,"11.0-11.2":0.15141,"11.3-11.4":0.2715,"12.0-12.1":0.23234,"12.2-12.4":0.9894,"13.0-13.1":0.16446,"13.2":0.08354,"13.3":0.57432,"13.4-13.7":1.36792,"14.0-14.4":17.07034,"14.5-14.6":2.40692},E:{"4":0,"8":0.004,"9":0.01201,"11":0.004,"12":0.01601,"13":0.09607,"14":2.22167,_:"0 5 6 7 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02802,"11.1":0.02802,"12.1":0.08006,"13.1":0.36427,"14.1":0.56843},B:{"12":0.00801,"14":0.004,"15":0.004,"16":0.01601,"17":0.01601,"18":0.11208,"80":0.01201,"83":0.00801,"84":0.03603,"85":0.02002,"86":0.01201,"87":0.00801,"88":0.004,"89":0.05604,"90":1.98549,"91":0.06005,_:"13 79 81"},P:{"4":0.26303,"5.0-5.4":0.02104,"6.2-6.4":0.1561,"7.2-7.4":0.02104,"8.2":0.03018,"9.2":0.04209,"10.1":0.03156,"11.1-11.2":0.03156,"12.0":0.18938,"13.0":0.27355,"14.0":1.35725},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00574,"4.4":0,"4.4.3-4.4.4":0.04822},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0338,"8":0.07606,"9":0.0338,"10":0.0338,"11":0.50705,_:"7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.19187},Q:{"10.4":0.07195},O:{"0":0.95936},H:{"0":0.79473},L:{"0":33.29047}}; +module.exports={C:{"4":0.02357,"5":0.01572,"15":0.02357,"17":0.03536,"44":0.00786,"47":0.02357,"48":0.00786,"50":0.00393,"52":0.01965,"54":0.00393,"56":0.01179,"57":0.00786,"59":0.00393,"60":0.01572,"61":0.03536,"67":0.00393,"68":0.00786,"69":0.00786,"70":0.00393,"72":0.01179,"78":0.07858,"79":0.01179,"80":0.01965,"81":0.01179,"82":0.01572,"83":0.00786,"84":0.0275,"85":0.00786,"86":0.00786,"87":0.01572,"88":0.08251,"89":1.71697,"90":0.86438,"91":0.04715,_:"2 3 6 7 8 9 10 11 12 13 14 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 45 46 49 51 53 55 58 62 63 64 65 66 71 73 74 75 76 77 92 3.5 3.6"},D:{"23":0.02357,"24":0.04715,"25":0.02357,"28":0.00786,"29":0.01179,"34":0.00786,"38":0.01965,"47":0.0275,"49":0.22002,"53":0.05108,"55":0.01179,"56":0.01965,"57":0.00786,"59":0.00786,"61":0.0275,"63":0.00786,"65":0.00786,"67":0.02357,"68":0.01572,"69":0.01179,"70":0.01572,"71":0.01179,"72":0.01572,"73":0.00393,"74":0.00786,"75":0.02357,"76":0.01179,"77":0.00786,"78":0.02357,"79":0.11787,"80":0.04715,"81":0.02357,"83":0.11394,"84":0.13359,"85":0.15716,"86":0.16502,"87":0.25146,"88":0.10215,"89":0.16502,"90":0.38111,"91":18.64703,"92":4.43584,"93":0.05894,"94":0.01179,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 58 60 62 64 66 95"},F:{"29":0.01179,"36":0.00786,"40":0.00786,"46":0.00393,"71":0.00786,"72":0.01572,"74":0.00786,"76":0.12966,"77":0.84474,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00624,"6.0-6.1":0.02807,"7.0-7.1":0.0686,"8.1-8.4":0.09355,"9.0-9.2":0.02495,"9.3":0.2214,"10.0-10.2":0.07172,"10.3":0.28065,"11.0-11.2":0.11538,"11.3-11.4":0.23699,"12.0-12.1":0.24323,"12.2-12.4":0.92615,"13.0-13.1":0.19957,"13.2":0.0686,"13.3":0.47711,"13.4-13.7":1.40638,"14.0-14.4":6.8136,"14.5-14.7":17.6717},E:{"4":0,"11":0.00393,"12":0.01179,"13":0.08644,"14":0.96261,"15":0.0275,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01965,"11.1":0.02357,"12.1":0.08644,"13.1":0.43219,"14.1":2.3849},B:{"12":0.00786,"13":0.00393,"14":0.00393,"15":0.00786,"17":0.00393,"18":0.05108,"84":0.01179,"85":0.01179,"86":0.00393,"89":0.0275,"90":0.01572,"91":1.49302,"92":0.44791,_:"16 79 80 81 83 87 88"},P:{"4":0.31019,"5.0-5.4":0.0107,"6.2-6.4":0.0107,"7.2-7.4":0.07242,"8.2":0.02139,"9.2":0.02139,"10.1":0.0107,"11.1-11.2":0.0107,"12.0":0.36367,"13.0":0.11766,"14.0":1.32632},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00443,"4.4":0,"4.4.3-4.4.4":0.03806},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05752,"9":0.02092,"10":0.04183,"11":0.60659,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":30.1344},S:{"2.5":0},R:{_:"0"},M:{"0":0.1821},Q:{"10.4":0.03035},O:{"0":0.69198},H:{"0":0.56892}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js index 35fac712049041..9badce7891c25a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js @@ -1 +1 @@ -module.exports={C:{"53":0.01957,"54":0.03522,"56":0.10174,"59":0.00783,"67":0.02739,"71":0.00783,"72":0.01957,"77":0.03522,"78":0.00783,"84":0.00783,"87":0.01957,"88":6.55036,"89":0.58304,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 55 57 58 60 61 62 63 64 65 66 68 69 70 73 74 75 76 79 80 81 82 83 85 86 90 91 3.5 3.6"},D:{"40":0.4226,"45":0.02739,"52":0.00783,"55":0.05478,"57":0.02739,"58":0.01957,"62":0.03522,"63":0.04696,"67":0.04696,"69":0.00783,"71":0.01957,"76":0.00783,"80":0.04696,"81":0.64565,"83":0.31304,"84":0.06652,"85":0.15652,"86":0.10174,"87":0.2113,"88":0.2113,"89":0.58304,"90":15.90635,"91":1.33825,_:"4 5 6 7 8 9 10 11 12 13 14 15 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 46 47 48 49 50 51 53 54 56 59 60 61 64 65 66 68 70 72 73 74 75 77 78 79 92 93 94"},F:{"64":0.02739,"75":0.12913,"76":0.10174,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.05498,"9.3":0.04709,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.03144,"12.0-12.1":0.03144,"12.2-12.4":0.13351,"13.0-13.1":0.1414,"13.2":0.00789,"13.3":0.07064,"13.4-13.7":0.11786,"14.0-14.4":0.58115,"14.5-14.6":0},E:{"4":0,"13":0.00783,"14":0.00783,_:"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 14.1","13.1":0.02739},B:{"12":0.17609,"15":0.07435,"16":0.31304,"17":0.09391,"18":0.52434,"80":0.05478,"81":0.01957,"84":0.00783,"85":0.01957,"86":0.10956,"87":0.00783,"88":0.01957,"89":0.36,"90":5.20429,"91":0.08217,_:"13 14 79 83"},P:{"4":1.38641,"5.0-5.4":0.01016,"6.2-6.4":0.01027,"7.2-7.4":1.43701,"8.2":0.04048,"9.2":0.16192,"10.1":0.1518,"11.1-11.2":0.38455,"12.0":0.02024,"13.0":0.43515,"14.0":0.8703},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.14},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.21863,"11":0.17658,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.01217},Q:{"10.4":0.03044},O:{"0":2.05741},H:{"0":0.88171},L:{"0":54.94294}}; +module.exports={C:{"40":0.03048,"50":0.0381,"54":0.01143,"56":0.05715,"58":0.0381,"59":0.0381,"83":0.01143,"84":0.03048,"85":0.04953,"88":0.6096,"89":5.05206,"90":1.88595,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 51 52 53 55 57 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 86 87 91 92 3.5 3.6"},D:{"55":0.01905,"58":0.0381,"65":0.04953,"70":0.01905,"74":0.01143,"75":0.03048,"76":0.01905,"78":0.01905,"79":0.01143,"81":0.44577,"83":0.01143,"85":0.06858,"86":0.03048,"87":0.09525,"88":0.0381,"89":0.32004,"90":0.13716,"91":12.43584,"92":3.98526,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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 59 60 61 62 63 64 66 67 68 69 71 72 73 77 80 84 93 94 95"},F:{"74":0.01905,"76":0.01143,"77":0.15621,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.10744,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.0448,"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.01794,"12.2-12.4":0.10744,"13.0-13.1":0.01794,"13.2":0.01794,"13.3":0.07166,"13.4-13.7":0.08069,"14.0-14.4":0.12538,"14.5-14.7":0.51056},E:{"4":0,"13":0.10668,"14":0.01905,_:"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","14.1":0.10668},B:{"12":0.04953,"13":0.01905,"14":0.03048,"16":0.05715,"17":0.15621,"18":0.22098,"80":0.06858,"85":0.09525,"86":0.40767,"87":0.01143,"88":0.01143,"89":0.01143,"90":0.12573,"91":4.9149,"92":1.28778,_:"15 79 81 83 84"},P:{"4":0.96338,"5.0-5.4":0.01024,"6.2-6.4":0.06085,"7.2-7.4":2.54535,"8.2":0.0205,"9.2":0.08195,"10.1":0.11155,"11.1-11.2":0.80113,"12.0":0.12292,"13.0":0.97352,"14.0":0.37521},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.45339,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":57.77589},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0.03714},O:{"0":0.48901},H:{"0":0.59775}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js index aab0a08d23ce2e..b28d5ee24c66ec 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js @@ -1 +1 @@ -module.exports={C:{"20":0.00665,"33":0.03546,"52":0.05318,"56":0.00443,"61":0.00443,"65":0.00665,"67":0.00443,"68":0.00886,"70":0.0133,"71":0.03324,"72":0.01108,"76":0.00886,"78":0.04875,"80":0.00665,"82":0.00665,"84":0.02881,"85":0.00886,"86":0.01108,"87":0.00886,"88":1.40938,"89":0.00665,_:"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 31 32 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 62 63 64 66 69 73 74 75 77 79 81 83 90 91 3.5","3.6":0.00443},D:{"11":0.00665,"27":0.00665,"38":0.02659,"39":0.01108,"40":0.01994,"43":0.07978,"49":0.00886,"51":0.00665,"55":0.01994,"58":0.00443,"59":0.00443,"60":0.00443,"63":0.02881,"64":0.0133,"65":0.0421,"66":0.04432,"69":0.00886,"70":0.01551,"72":0.02881,"74":0.02216,"76":0.00886,"79":0.00886,"81":0.0421,"83":0.00665,"84":0.02216,"85":0.04432,"86":0.02438,"87":0.0554,"88":0.29473,"89":0.25041,"90":7.6585,"91":0.29251,_:"4 5 6 7 8 9 10 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 41 42 44 45 46 47 48 50 52 53 54 56 57 61 62 67 68 71 73 75 77 78 80 92 93 94"},F:{"43":0.01108,"46":0.00443,"49":0.00665,"51":0.01108,"74":0.02659,"75":0.29473,"76":0.37894,_:"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 47 48 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00181,"5.0-5.1":0.00181,"6.0-6.1":0.01123,"7.0-7.1":0.01304,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05214,"10.0-10.2":0.00181,"10.3":0.11008,"11.0-11.2":0.12674,"11.3-11.4":0.01702,"12.0-12.1":0.01123,"12.2-12.4":0.11913,"13.0-13.1":0.06916,"13.2":0.00181,"13.3":0.05214,"13.4-13.7":0.30996,"14.0-14.4":1.204,"14.5-14.6":1.17395},E:{"4":0,"8":0.00443,"10":0.01994,"13":0.00443,"14":0.06205,_:"0 5 6 7 9 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02438,"11.1":0.00886,"12.1":0.00886,"13.1":0.03324,"14.1":0.14404},B:{"12":0.02216,"13":0.01994,"14":0.03767,"15":0.03324,"16":0.03989,"17":0.03767,"18":0.02438,"84":0.00665,"86":0.00443,"88":0.03324,"89":0.02881,"90":0.74901,"91":0.03767,_:"79 80 81 83 85 87"},P:{"4":1.30283,"5.0-5.4":0.0505,"6.2-6.4":0.0505,"7.2-7.4":0.22219,"8.2":0.02053,"9.2":0.0808,"10.1":0.0406,"11.1-11.2":0.38378,"12.0":0.14139,"13.0":0.31308,"14.0":0.64637},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01187,"4.2-4.3":0.04651,"4.4":0,"4.4.3-4.4.4":0.17514},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08864,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.17125},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.17903},Q:{"10.4":0.10119},O:{"0":0.42812},H:{"0":0.90643},L:{"0":76.46193}}; +module.exports={C:{"26":0.05779,"40":0.46474,"47":0.01686,"50":0.00482,"51":0.00482,"52":0.01204,"56":0.01204,"60":0.00482,"61":0.00482,"63":0.00482,"72":0.01686,"78":0.03371,"87":0.00482,"88":0.05779,"89":1.12454,"90":0.48642,_:"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 41 42 43 44 45 46 48 49 53 54 55 57 58 59 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 91 92 3.5 3.6"},D:{"18":0.01686,"33":0.02408,"35":0.00482,"37":0.01204,"40":0.01445,"41":0.00482,"42":0.00963,"43":0.01926,"53":0.01204,"55":0.00722,"56":0.00482,"58":0.00482,"60":0.01926,"65":0.00963,"67":0.00482,"69":0.01686,"70":0.01445,"72":0.00482,"73":0.02408,"74":0.00482,"76":0.00963,"77":0.01686,"78":0.00482,"79":0.0313,"80":0.00482,"81":0.08669,"85":0.03853,"86":0.05779,"87":1.40146,"88":0.18782,"89":0.11318,"90":0.14448,"91":5.91405,"92":1.36774,"93":0.00482,_:"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 34 36 38 39 44 45 46 47 48 49 50 51 52 54 57 59 61 62 63 64 66 68 71 75 83 84 94 95"},F:{"42":0.00482,"48":0.00482,"53":0.00482,"62":0.00482,"68":0.00722,"76":0.01686,"77":0.44548,_:"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 49 50 51 52 54 55 56 57 58 60 63 64 65 66 67 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00185,"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.0324,"8.1-8.4":0.01204,"9.0-9.2":0,"9.3":0.04027,"10.0-10.2":0.00185,"10.3":0.10045,"11.0-11.2":0.48976,"11.3-11.4":0.02407,"12.0-12.1":0.01204,"12.2-12.4":0.19257,"13.0-13.1":0.21294,"13.2":0.00602,"13.3":0.07823,"13.4-13.7":0.15044,"14.0-14.4":0.89109,"14.5-14.7":1.95995},E:{"4":0,"12":0.00482,"13":0.01204,"14":0.05298,_:"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.02167,"12.1":0.03853,"13.1":0.01445,"14.1":0.06983},B:{"12":0.00482,"13":0.00482,"14":0.01926,"15":0.00963,"17":0.00482,"18":0.04094,"85":0.00722,"88":0.00963,"89":0.00482,"91":2.3478,"92":0.54902,_:"16 79 80 81 83 84 86 87 90"},P:{"4":0.86381,"5.0-5.4":0.04065,"6.2-6.4":0.04065,"7.2-7.4":0.85365,"8.2":0.02033,"9.2":0.29471,"10.1":0.04065,"11.1-11.2":0.51829,"12.0":0.09146,"13.0":0.31504,"14.0":0.79268},I:{"0":0,"3":0,"4":0.00919,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02624,"4.2-4.3":0.05249,"4.4":0,"4.4.3-4.4.4":0.33723},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.58755,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01518,_:"10"},L:{"0":73.60594},S:{"2.5":0},R:{_:"0"},M:{"0":0.11388},Q:{"10.4":0.02278},O:{"0":0.18221},H:{"0":0.86251}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js index cc30dff28df272..5e6307452848ac 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js @@ -1 +1 @@ -module.exports={C:{"52":0.00456,"53":0.00456,"70":0.03194,"78":0.02738,"88":1.02211,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 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 89 90 91 3.5 3.6"},D:{"29":0.00456,"39":0.00456,"53":0.00456,"63":0.00913,"69":0.00913,"73":0.01369,"74":0.56581,"75":0.01825,"76":0.24184,"77":0.02282,"79":0.04563,"80":0.00913,"81":0.04563,"83":0.04107,"84":0.01369,"85":0.02282,"86":0.04107,"87":0.58406,"88":0.17796,"89":0.64795,"90":24.37555,"91":1.04036,"92":0.01369,_:"4 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 49 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 67 68 70 71 72 78 93 94"},F:{"74":0.05019,"75":0.11864,"76":0.23271,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00171,"3.2":0,"4.0-4.1":0.00171,"4.2-4.3":0.00171,"5.0-5.1":0.12857,"6.0-6.1":0.00171,"7.0-7.1":0.00514,"8.1-8.4":0.00343,"9.0-9.2":0.01029,"9.3":0.02743,"10.0-10.2":0.00686,"10.3":0.204,"11.0-11.2":0.02914,"11.3-11.4":0.012,"12.0-12.1":0.04457,"12.2-12.4":0.07372,"13.0-13.1":1.72631,"13.2":0.04114,"13.3":0.02914,"13.4-13.7":0.252,"14.0-14.4":11.25446,"14.5-14.6":2.60575},E:{"4":0,"12":0.0365,"13":0.04563,"14":2.10354,_:"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.07757,"12.1":0.08213,"13.1":0.38786,"14.1":1.18182},B:{"12":0.01369,"13":0.00913,"14":0.06388,"17":0.09126,"18":0.11864,"80":0.00913,"81":0.00456,"84":0.02282,"85":0.01369,"87":0.05019,"88":0.03194,"89":0.35135,"90":6.39276,"91":0.51562,_:"15 16 79 83 86"},P:{"4":0.0745,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.15964,"8.2":0.01166,"9.2":0.0745,"10.1":0.18695,"11.1-11.2":0.447,"12.0":0.03193,"13.0":1.09622,"14.0":4.07625},I:{"0":0,"3":0,"4":0.00167,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00042,"4.2-4.3":0.00586,"4.4":0,"4.4.3-4.4.4":0.03012},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.14988,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01631},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.28821},Q:{"10.4":0},O:{"0":0.02719},H:{"0":0.2986},L:{"0":33.93911}}; +module.exports={C:{"43":0.00404,"52":0.00807,"78":0.01614,"86":0.00807,"89":1.07358,"90":0.43589,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 91 92 3.5 3.6"},D:{"38":0.00404,"49":0.01211,"63":0.00807,"67":0.01211,"68":0.02825,"69":0.00404,"74":0.29463,"75":0.03229,"76":0.0565,"79":0.06054,"80":0.00807,"81":0.04036,"83":0.01211,"84":0.00807,"86":0.02422,"87":0.03229,"88":0.01614,"89":0.0444,"90":0.09686,"91":18.20236,"92":4.01986,"93":0.00404,_:"4 5 6 7 8 9 10 11 12 13 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 64 65 66 70 71 72 73 77 78 85 94 95"},F:{"76":0.0444,"77":0.39553,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.2277,"6.0-6.1":0,"7.0-7.1":0.00632,"8.1-8.4":0.04744,"9.0-9.2":0,"9.3":0.34313,"10.0-10.2":0,"10.3":0.04427,"11.0-11.2":0.01265,"11.3-11.4":0.01423,"12.0-12.1":0.1518,"12.2-12.4":0.1518,"13.0-13.1":0.02846,"13.2":0.01423,"13.3":0.03795,"13.4-13.7":0.34787,"14.0-14.4":2.07459,"14.5-14.7":10.36981},E:{"4":0,"9":0.01211,"12":0.00807,"13":0.06458,"14":0.36324,"15":0.05247,_:"0 5 6 7 8 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00404,"10.1":0.00404,"11.1":0.03229,"12.1":0.06054,"13.1":0.58118,"14.1":2.93821},B:{"12":0.02825,"14":0.02018,"15":0.00404,"16":0.01211,"17":0.04843,"18":0.10494,"81":0.00807,"84":0.00404,"89":0.0565,"90":0.00807,"91":6.3567,"92":0.96864,_:"13 79 80 83 85 86 87 88"},P:{"4":0.08374,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.24075,"8.2":0.02032,"9.2":0.0628,"10.1":0.08128,"11.1-11.2":0.24075,"12.0":0.0314,"13.0":0.16748,"14.0":3.78921},I:{"0":0,"3":0,"4":0.00374,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01498,"4.4":0,"4.4.3-4.4.4":0.1423},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.68208,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01193},N:{"10":0.03533,"11":0.01864},L:{"0":42.38811},S:{"2.5":0},R:{_:"0"},M:{"0":0.63815},Q:{"10.4":0},O:{"0":0.05964},H:{"0":0.22585}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js index 6795051c50e50a..61d4befe64edd0 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js @@ -1 +1 @@ -module.exports={C:{"42":1.98083,"52":22.87673,"76":0.28092,"78":0.28092,"82":0.28092,"83":0.28092,"85":0.84995,"87":1.13087,"88":9.32068,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 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 86 89 90 91 3.5 3.6"},D:{"76":0.28092,"81":5.08532,"83":1.13087,"88":2.54266,"89":1.13087,"90":14.68692,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 77 78 79 80 84 85 86 87 91 92 93 94"},F:{"65":0.56183,"74":2.82358,"75":0.56183,"76":0.28092,_:"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 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},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":1.74117,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":4.97559,"13.0-13.1":0.24874,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":1.24369,"14.5-14.6":0},E:{"4":0,_:"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 11.1 12.1 13.1 14.1"},B:{"90":0.56183,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91"},P:{"4":0.3057,"5.0-5.4":0.01016,"6.2-6.4":0.3057,"7.2-7.4":1.43701,"8.2":0.04048,"9.2":1.21225,"10.1":0.1518,"11.1-11.2":0.38455,"12.0":0.02024,"13.0":0.43515,"14.0":0.8703},I:{"0":0,"3":0,"4":0.91252,"2.1":0,"2.2":0.30417,"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.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.30487},Q:{"10.4":0},O:{"0":0},H:{"0":0.28863},L:{"0":18.09434}}; +module.exports={C:{"52":8.58624,"59":0.43133,"79":0.43133,"85":0.43133,"87":0.43133,"89":12.01959,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 78 80 81 82 83 84 86 88 90 91 92 3.5 3.6"},D:{"11":0.43133,"46":0.8569,"51":0.8569,"65":0.8569,"81":5.57847,"84":0.43133,"90":2.57645,"91":17.59806,_:"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 47 48 49 50 52 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 83 85 86 87 88 89 92 93 94 95"},F:{"74":1.71955,"76":0.43133,"77":0.8569,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.45962,"14.5-14.7":3.40272},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"},B:{"91":0.8569,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 92"},P:{"4":1.7166,"5.0-5.4":0.01024,"6.2-6.4":0.06085,"7.2-7.4":2.54535,"8.2":0.0205,"9.2":0.08195,"10.1":0.11155,"11.1-11.2":0.80113,"12.0":0.12292,"13.0":0.97352,"14.0":0.37521},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:{"11":0.01472,_:"10"},L:{"0":38.19929},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js index bd2169f799d93c..c16a41ffb2afb8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js @@ -1 +1 @@ -module.exports={C:{"52":0.01971,"78":0.02956,"79":0.00493,"80":0.00493,"81":0.00985,"82":0.00985,"83":0.00493,"87":0.00985,"88":0.64544,"89":0.00985,"90":0.00493,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 84 85 86 91 3.5 3.6"},D:{"42":0.03449,"49":0.05912,"56":0.00985,"61":0.01971,"63":0.00985,"64":0.01971,"67":0.00493,"68":0.08376,"69":0.00985,"70":0.02464,"71":0.00985,"72":0.02464,"73":0.00493,"74":0.00985,"75":0.01478,"76":0.01478,"77":0.13303,"78":0.01971,"79":0.04927,"80":0.04927,"81":0.06898,"83":0.06898,"84":0.09854,"85":0.07391,"86":0.10347,"87":0.14781,"88":0.09854,"89":0.50255,"90":30.09412,"91":0.71442,"92":0.00985,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 57 58 59 60 62 65 66 93 94"},F:{"75":0.09854,"76":0.16752,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00113,"7.0-7.1":0.00452,"8.1-8.4":0,"9.0-9.2":0.11874,"9.3":0.01696,"10.0-10.2":0.00226,"10.3":0.01696,"11.0-11.2":0.01809,"11.3-11.4":0.00792,"12.0-12.1":0.02714,"12.2-12.4":0.07803,"13.0-13.1":0.11648,"13.2":0.0147,"13.3":0.08481,"13.4-13.7":0.30194,"14.0-14.4":8.53798,"14.5-14.6":1.86365},E:{"4":0,"8":0.00985,"12":0.00493,"13":0.01971,"14":0.68978,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00985,"12.1":0.02464,"13.1":0.11825,"14.1":0.35474},B:{"16":0.00985,"17":0.01971,"18":0.05912,"84":0.00985,"85":0.01478,"86":0.03449,"87":0.01971,"88":0.02464,"89":0.09361,"90":5.97645,"91":0.12318,_:"12 13 14 15 79 80 81 83"},P:{"4":0.3057,"5.0-5.4":0.03041,"6.2-6.4":0.3057,"7.2-7.4":1.43701,"8.2":0.05069,"9.2":0.07097,"10.1":0.07097,"11.1-11.2":0.13179,"12.0":0.31428,"13.0":1.28753,"14.0":10.92878},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00307,"4.4":0,"4.4.3-4.4.4":0.01722},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.02048,"11":3.25598,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.16741},Q:{"10.4":0.02029},O:{"0":0.14204},H:{"0":0.1729},L:{"0":21.56437}}; +module.exports={C:{"21":0.0047,"45":0.0047,"52":0.02351,"55":0.0047,"78":0.03761,"79":0.0047,"80":0.0047,"81":0.0094,"82":0.0047,"86":0.0094,"88":0.0094,"89":0.39959,"90":0.22095,"91":0.0094,_:"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 32 33 34 35 36 37 38 39 40 41 42 43 44 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 83 84 85 87 92 3.5 3.6"},D:{"31":0.0094,"42":0.03761,"43":0.0047,"44":0.0094,"47":0.0094,"48":0.0141,"49":0.05171,"50":0.0047,"56":0.0094,"61":0.0094,"63":0.0094,"64":0.0188,"65":0.0094,"67":0.0047,"68":0.09872,"69":0.0047,"70":0.02821,"71":0.0047,"72":0.02821,"73":0.0094,"74":0.0094,"75":0.0141,"76":0.0094,"77":0.15513,"78":0.0188,"79":0.06111,"80":0.04701,"81":0.06111,"83":0.05641,"84":0.09402,"85":0.06111,"86":0.08462,"87":0.11282,"88":0.04701,"89":0.17864,"90":0.24915,"91":23.36397,"92":5.71172,"93":0.0141,_:"4 5 6 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 45 46 51 52 53 54 55 57 58 59 60 62 66 94 95"},F:{"34":0.0094,"35":0.0094,"76":0.0047,"77":0.23975,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0047},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.10473,"9.3":0.01964,"10.0-10.2":0.00262,"10.3":0.01309,"11.0-11.2":0.0144,"11.3-11.4":0.00524,"12.0-12.1":0.02487,"12.2-12.4":0.06284,"13.0-13.1":0.13222,"13.2":0.01178,"13.3":0.07462,"13.4-13.7":0.22779,"14.0-14.4":1.93228,"14.5-14.7":10.36703},E:{"4":0,"8":0.0047,"12":0.0047,"13":0.0141,"14":0.19274,"15":0.0141,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0094,"12.1":0.0188,"13.1":0.07992,"14.1":0.77567},B:{"16":0.0047,"17":0.0094,"18":0.04701,"84":0.0047,"85":0.0094,"86":0.02821,"87":0.0188,"88":0.0141,"89":0.04701,"90":0.04701,"91":4.83263,"92":1.43381,_:"12 13 14 15 79 80 81 83"},P:{"4":1.7166,"5.0-5.4":0.01013,"6.2-6.4":0.06085,"7.2-7.4":0.02026,"8.2":0.02026,"9.2":0.06077,"10.1":0.05064,"11.1-11.2":0.11142,"12.0":0.20258,"13.0":0.67863,"14.0":11.61778},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00393,"4.4":0,"4.4.3-4.4.4":0.01727},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00977,"9":0.02444,"11":2.67827,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":22.21643},S:{"2.5":0},R:{_:"0"},M:{"0":0.16427},Q:{"10.4":0.0159},O:{"0":0.12188},H:{"0":0.16054}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js index 06a4f966979cf1..7baed42deb0f2c 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js @@ -1 +1 @@ -module.exports={C:{"34":0.01663,"52":0.14967,"67":0.36586,"68":0.00333,"71":0.00333,"78":0.40245,"80":0.00333,"84":0.02661,"85":0.00333,"86":0.00665,"87":0.02328,"88":0.92463,"89":0.02328,_:"2 3 4 5 6 7 8 9 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 69 70 72 73 74 75 76 77 79 81 82 83 90 91 3.5 3.6"},D:{"31":0.00665,"34":0.00333,"38":0.02993,"43":0.00333,"47":0.01996,"49":0.06985,"55":0.00333,"56":0.00998,"57":0.00665,"62":0.00333,"63":0.00998,"64":0.00665,"65":0.00665,"67":0.0133,"68":0.00998,"69":0.02328,"70":0.00333,"71":0.00665,"72":0.00333,"73":0.00665,"74":0.00665,"75":0.00665,"76":0.0133,"77":0.01663,"78":0.0133,"79":0.01663,"80":0.01996,"81":0.01996,"83":0.08648,"84":0.01996,"85":0.02661,"86":0.04989,"87":0.1663,"88":0.10643,"89":0.6519,"90":18.86175,"91":0.69513,"92":0.0133,_:"4 5 6 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 44 45 46 48 50 51 52 53 54 58 59 60 61 66 93 94"},F:{"28":0.00665,"36":0.00665,"46":0.02661,"73":0.05654,"75":0.24612,"76":0.22284,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00836,"6.0-6.1":0,"7.0-7.1":0.02787,"8.1-8.4":0.01672,"9.0-9.2":0.01115,"9.3":0.17837,"10.0-10.2":0.03344,"10.3":0.09754,"11.0-11.2":0.07525,"11.3-11.4":0.12263,"12.0-12.1":0.15886,"12.2-12.4":0.49329,"13.0-13.1":0.23132,"13.2":0.11984,"13.3":0.61871,"13.4-13.7":1.26528,"14.0-14.4":18.58909,"14.5-14.6":5.05278},E:{"4":0,"11":0.00665,"12":0.01663,"13":0.11641,"14":2.8138,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00998,"9.1":0.00333,"10.1":0.0133,"11.1":0.04989,"12.1":0.09645,"13.1":0.44568,"14.1":0.94458},B:{"12":0.00333,"15":0.00665,"16":0.00665,"17":0.0133,"18":0.06652,"80":0.00333,"83":0.02328,"84":0.0133,"85":0.00998,"86":0.00998,"87":0.01996,"88":0.01663,"89":0.11641,"90":2.55437,"91":0.18958,_:"13 14 79 81"},P:{"4":0.25594,"5.0-5.4":0.03041,"6.2-6.4":0.3057,"7.2-7.4":0.07166,"8.2":0.02048,"9.2":0.0819,"10.1":0.06143,"11.1-11.2":0.36856,"12.0":0.19452,"13.0":0.68593,"14.0":3.26584},I:{"0":0,"3":0,"4":0.00226,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00151,"4.2-4.3":0.00452,"4.4":0,"4.4.3-4.4.4":0.03844},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.33593,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.11348},Q:{"10.4":0.02003},O:{"0":2.03588},H:{"0":0.66354},L:{"0":32.70969}}; +module.exports={C:{"52":0.20312,"74":0.00299,"78":0.10753,"79":0.00597,"80":0.00299,"84":0.01195,"88":0.01792,"89":0.63026,"90":0.34052,"91":0.00896,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 81 82 83 85 86 87 92 3.5 3.6"},D:{"33":0.00597,"38":0.02987,"40":0.03286,"43":0.00299,"47":0.00597,"49":0.08364,"56":0.00299,"63":0.00597,"65":0.01494,"67":0.01792,"68":0.00597,"69":0.0239,"70":0.01195,"71":0.01195,"73":0.00299,"74":0.00597,"75":0.00597,"76":0.00896,"77":0.01494,"78":0.01792,"79":0.01494,"80":0.01494,"81":0.00896,"83":0.05974,"84":0.03286,"85":0.02091,"86":0.03584,"87":0.19117,"88":0.06571,"89":0.11649,"90":0.24792,"91":13.91345,"92":3.16921,"93":0.00896,_:"4 5 6 7 8 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 48 50 51 52 53 54 55 57 58 59 60 61 62 64 66 72 94 95"},F:{"28":0.00597,"46":0.00896,"71":0.00597,"75":0.00896,"76":0.18519,"77":0.4361,_:"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 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00286,"6.0-6.1":0,"7.0-7.1":0.03141,"8.1-8.4":0.01713,"9.0-9.2":0.01142,"9.3":0.16561,"10.0-10.2":0.02855,"10.3":0.08851,"11.0-11.2":0.59961,"11.3-11.4":0.07424,"12.0-12.1":0.13991,"12.2-12.4":0.43972,"13.0-13.1":0.17988,"13.2":0.1085,"13.3":0.5368,"13.4-13.7":1.05075,"14.0-14.4":6.68999,"14.5-14.7":17.64866},E:{"4":0,"12":0.00896,"13":0.08662,"14":0.99168,"15":0.05377,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00299,"10.1":0.00597,"11.1":0.0239,"12.1":0.44805,"13.1":0.29571,"14.1":2.4822},B:{"13":0.00299,"15":0.00299,"16":0.00597,"17":0.00597,"18":0.06571,"80":0.00299,"83":0.01494,"84":0.00896,"85":0.00299,"86":0.00299,"88":0.00299,"89":0.02091,"90":0.03883,"91":2.05207,"92":0.53169,_:"12 14 79 81 87"},P:{"4":0.17312,"5.0-5.4":0.01013,"6.2-6.4":0.06085,"7.2-7.4":0.11202,"8.2":0.04073,"9.2":0.11202,"10.1":0.05092,"11.1-11.2":0.33605,"12.0":0.16294,"13.0":0.43789,"14.0":3.46238},I:{"0":0,"3":0,"4":0.00761,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00217,"4.2-4.3":0.00652,"4.4":0,"4.4.3-4.4.4":0.06085},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2987,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":35.14018},S:{"2.5":0},R:{_:"0"},M:{"0":0.11922},Q:{"10.4":0.01403},O:{"0":2.55273},H:{"0":0.82993}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js index f363992cfc1407..033fe5e90b39c3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js @@ -1 +1 @@ -module.exports={C:{"52":0.01032,"75":0.15996,"78":0.01548,"87":0.03096,"88":1.6254,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 89 90 91 3.5 3.6"},D:{"49":0.01032,"66":0.01548,"67":0.00516,"68":0.01032,"69":0.03612,"70":0.09288,"74":0.17028,"75":0.08772,"79":0.07224,"80":0.0258,"81":0.01548,"83":0.02064,"84":0.04128,"85":0.03612,"86":0.04128,"87":0.1806,"88":0.34056,"89":2.30136,"90":27.5802,"91":0.72756,"92":0.19092,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 71 72 73 76 77 78 93 94"},F:{"73":0.22188,"75":0.15996,"76":0.1806,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01486,"9.0-9.2":0,"9.3":0.47069,"10.0-10.2":0.00495,"10.3":1.3229,"11.0-11.2":0.00248,"11.3-11.4":0.05946,"12.0-12.1":0.11148,"12.2-12.4":0.08918,"13.0-13.1":0.00991,"13.2":0.01734,"13.3":0.14369,"13.4-13.7":0.5029,"14.0-14.4":18.46111,"14.5-14.6":2.84398},E:{"4":0,"13":0.09804,"14":5.40252,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.06708,"11.1":0.0516,"12.1":0.15996,"13.1":0.7224,"14.1":2.09496},B:{"15":0.08256,"16":0.04128,"17":0.01032,"18":0.26832,"80":0.02064,"83":0.0258,"88":0.00516,"89":0.29412,"90":5.7018,"91":0.42828,_:"12 13 14 79 81 84 85 86 87"},P:{"4":0.07396,"5.0-5.4":0.0308,"6.2-6.4":0.01027,"7.2-7.4":0.0317,"8.2":0.02053,"9.2":0.01057,"10.1":0.08212,"11.1-11.2":0.35923,"12.0":0.02113,"13.0":0.42262,"14.0":5.96954},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00085,"4.2-4.3":0.01821,"4.4":0,"4.4.3-4.4.4":0.0826},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.55728,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.29046},Q:{"10.4":0},O:{"0":0.13071},H:{"0":0.03208},L:{"0":17.47551}}; +module.exports={C:{"52":0.0135,"78":0.0135,"89":1.3368,"90":0.32407,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 91 92 3.5 3.6"},D:{"34":0.0045,"38":0.0045,"49":0.04951,"65":0.018,"67":0.018,"68":0.009,"74":0.15754,"78":0.0045,"79":0.09902,"80":0.0135,"81":0.009,"83":0.37808,"84":0.4501,"85":0.47711,"86":0.04951,"87":0.49511,"88":0.03601,"89":0.05401,"90":0.31057,"91":20.28601,"92":4.66754,"93":0.10802,_:"4 5 6 7 8 9 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 53 54 55 56 57 58 59 60 61 62 63 64 66 69 70 71 72 73 75 76 77 94 95"},F:{"76":0.27456,"77":0.63914,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00279,"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.00279,"9.3":0.19517,"10.0-10.2":0.00836,"10.3":1.77604,"11.0-11.2":0.00558,"11.3-11.4":0.24814,"12.0-12.1":0.16729,"12.2-12.4":0.09758,"13.0-13.1":0.00836,"13.2":0.02231,"13.3":0.20632,"13.4-13.7":0.34294,"14.0-14.4":2.56787,"14.5-14.7":21.33755},E:{"4":0,"12":0.009,"13":0.12153,"14":0.94971,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1","5.1":0.0135,"10.1":0.04501,"11.1":0.04951,"12.1":0.35108,"13.1":0.40959,"14.1":4.5055},B:{"16":0.04051,"17":0.009,"18":0.06301,"84":0.009,"89":0.018,"90":0.02701,"91":4.85658,"92":0.95421,_:"12 13 14 15 79 80 81 83 85 86 87 88"},P:{"4":0.13546,"5.0-5.4":0.01042,"6.2-6.4":0.0104,"7.2-7.4":0.02084,"8.2":0.02139,"9.2":0.02084,"10.1":0.0521,"11.1-11.2":0.30218,"12.0":0.03126,"13.0":0.21882,"14.0":5.75188},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:{"8":0.009,"9":0.009,"11":0.58063,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01319,_:"10"},L:{"0":21.4486},S:{"2.5":0},R:{_:"0"},M:{"0":0.30794},Q:{"10.4":0},O:{"0":0.76436},H:{"0":0.09371}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js index b31d3b257dbcff..006866e3a11108 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.27264,"56":0.01573,"66":0.01049,"69":0.00524,"72":0.01049,"75":0.01049,"76":0.00524,"78":0.05243,"79":0.01573,"80":0.01573,"81":0.01049,"83":0.00524,"84":0.01049,"85":0.01049,"86":0.02097,"87":0.08913,"88":1.74592,"89":0.01573,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 67 68 70 71 73 74 77 82 90 91 3.5 3.6"},D:{"28":0.01049,"34":0.01049,"45":0.01049,"46":0.01049,"49":0.30934,"53":0.00524,"55":0.01573,"56":0.01573,"57":0.00524,"59":0.01049,"61":0.00524,"63":0.01573,"65":0.00524,"66":0.01049,"67":0.02097,"68":0.01049,"69":0.01049,"70":0.01573,"71":0.05243,"72":0.02097,"73":0.02097,"74":0.02097,"75":0.02622,"76":0.05243,"77":0.01573,"78":0.01049,"79":0.05243,"80":0.0734,"81":0.03146,"83":0.07865,"84":0.08913,"85":0.06292,"86":0.23069,"87":0.3408,"88":0.44566,"89":0.98568,"90":27.51002,"91":0.95947,"92":0.02622,_:"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 38 39 40 41 42 43 44 47 48 50 51 52 54 58 60 62 64 93 94"},F:{"36":0.01573,"43":0.01049,"46":0.01573,"67":0.01049,"72":0.03146,"73":0.41944,"74":0.0367,"75":1.85078,"76":2.16012,_:"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 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.57673},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.00666,"8.1-8.4":0.00381,"9.0-9.2":0.00571,"9.3":0.0352,"10.0-10.2":0.02949,"10.3":0.08181,"11.0-11.2":0.07135,"11.3-11.4":0.0761,"12.0-12.1":0.05422,"12.2-12.4":0.2597,"13.0-13.1":0.05898,"13.2":0.0333,"13.3":0.19882,"13.4-13.7":0.54414,"14.0-14.4":6.31661,"14.5-14.6":0.93703},E:{"4":0,"12":0.00524,"13":0.05243,"14":0.99093,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.96471,"11.1":0.0367,"12.1":0.04719,"13.1":0.24642,"14.1":0.53479},B:{"13":0.05243,"14":0.00524,"18":0.06816,"85":0.02097,"87":0.01573,"88":0.01049,"89":0.05243,"90":1.93991,"91":0.15205,_:"12 15 16 17 79 80 81 83 84 86"},P:{"4":0.09244,"5.0-5.4":0.01016,"6.2-6.4":0.01027,"7.2-7.4":0.09244,"8.2":0.03338,"9.2":0.09244,"10.1":0.03081,"11.1-11.2":0.25677,"12.0":0.18487,"13.0":0.58544,"14.0":1.81793},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.00512,"4.4":0,"4.4.3-4.4.4":0.02269},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01922,"11":0.67285,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.17601},Q:{"10.4":0.02854},O:{"0":0.62792},H:{"0":0.27472},L:{"0":34.47937}}; +module.exports={C:{"4":0.01008,"5":0.00504,"15":0.00504,"17":0.01511,"51":0.01008,"52":0.31739,"55":0.01008,"56":0.01511,"57":0.00504,"68":0.00504,"72":0.01511,"78":0.04534,"79":0.01511,"81":0.02519,"83":0.01511,"84":0.01008,"85":0.00504,"86":0.01008,"87":0.0403,"88":0.04534,"89":1.19401,"90":0.70028,_:"2 3 6 7 8 9 10 11 12 13 14 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 53 54 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 80 82 91 92 3.5 3.6"},D:{"22":0.01511,"23":0.00504,"24":0.01008,"25":0.01008,"34":0.00504,"38":0.00504,"44":0.00504,"45":0.01008,"46":0.01008,"49":0.15114,"51":0.00504,"53":0.00504,"55":0.01511,"57":0.01008,"59":0.01008,"61":0.01008,"63":0.00504,"64":0.00504,"66":0.00504,"67":0.02015,"68":0.01008,"69":0.01511,"70":0.03023,"71":0.05542,"72":0.01008,"73":0.01511,"74":0.02519,"75":0.05542,"76":0.02519,"77":0.01008,"78":0.01008,"79":0.09068,"80":0.1058,"81":0.02519,"83":0.07053,"84":0.06549,"85":0.09572,"86":0.16122,"87":0.33251,"88":0.17633,"89":0.17129,"90":0.67509,"91":22.09667,"92":5.05311,"93":0.04534,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 47 48 50 52 54 56 58 60 62 65 94 95"},F:{"36":0.01008,"38":0.01511,"46":0.0403,"60":0.00504,"67":0.01008,"70":0.01008,"71":0.01008,"73":0.00504,"74":0.02519,"75":0.01008,"76":0.64486,"77":3.1689,_:"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 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 68 69 72 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.6499},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00429,"6.0-6.1":0.0075,"7.0-7.1":0.00536,"8.1-8.4":0.00536,"9.0-9.2":0.00214,"9.3":0.02143,"10.0-10.2":0.01286,"10.3":0.11356,"11.0-11.2":0.13391,"11.3-11.4":0.08784,"12.0-12.1":0.11034,"12.2-12.4":0.22604,"13.0-13.1":0.06856,"13.2":0.04928,"13.3":0.24961,"13.4-13.7":0.50457,"14.0-14.4":2.88602,"14.5-14.7":5.36389},E:{"4":0,"12":0.01008,"13":0.08061,"14":0.59448,"15":0.02519,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.77585,"11.1":0.01511,"12.1":0.02519,"13.1":0.24182,"14.1":0.87661},B:{"12":0.01008,"13":0.01008,"17":0.01008,"18":0.06549,"84":0.00504,"87":0.00504,"89":0.01511,"90":0.01511,"91":1.44591,"92":0.33251,_:"14 15 16 79 80 81 83 85 86 88"},P:{"4":0.14341,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.10243,"8.2":0.0205,"9.2":0.08195,"10.1":0.04097,"11.1-11.2":0.2356,"12.0":0.12292,"13.0":0.35852,"14.0":2.54037},I:{"0":0,"3":0,"4":0.00112,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00074,"4.2-4.3":0.0067,"4.4":0,"4.4.3-4.4.4":0.02121},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01983,"9":0.00992,"10":0.02975,"11":0.87254,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":35.32916},S:{"2.5":0},R:{_:"0"},M:{"0":0.28774},Q:{"10.4":0.06945},O:{"0":0.72927},H:{"0":0.32408}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js index a5d00ed34a12f9..92abbeda4f50da 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js @@ -1 +1 @@ -module.exports={C:{"48":0.0226,"51":0.00283,"52":0.01978,"56":0.00565,"63":0.0226,"66":0.00565,"71":0.55935,"72":0.00848,"76":0.00565,"78":0.0339,"83":0.00283,"84":0.01695,"85":0.02825,"86":0.05085,"87":0.01413,"88":1.47748,"89":0.05933,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 57 58 59 60 61 62 64 65 67 68 69 70 73 74 75 77 79 80 81 82 90 91 3.5 3.6"},D:{"26":0.00283,"37":0.00565,"43":0.0339,"49":0.37008,"52":0.00565,"53":0.00565,"56":0.01413,"58":0.00565,"62":0.00848,"63":0.0113,"65":0.00565,"67":0.00283,"68":0.00283,"69":0.00283,"70":0.00848,"71":0.00565,"72":0.00565,"74":0.0452,"75":0.0226,"76":0.0113,"77":0.00283,"78":0.03955,"79":0.03673,"80":0.05085,"81":0.01413,"83":0.05368,"84":0.16103,"85":0.02543,"86":0.1695,"87":0.5311,"88":0.12995,"89":0.62998,"90":13.79448,"91":0.59043,"92":0.01413,_:"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 38 39 40 41 42 44 45 46 47 48 50 51 54 55 57 59 60 61 64 66 73 93 94"},F:{"28":0.00283,"69":0.03673,"73":0.01413,"75":0.0904,"76":0.17233,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00147,"5.0-5.1":0,"6.0-6.1":0.01469,"7.0-7.1":0.03526,"8.1-8.4":0.00147,"9.0-9.2":0.04261,"9.3":0.09256,"10.0-10.2":0.04701,"10.3":0.19099,"11.0-11.2":0.09549,"11.3-11.4":0.22772,"12.0-12.1":0.28354,"12.2-12.4":0.94613,"13.0-13.1":0.13516,"13.2":0.09109,"13.3":0.51126,"13.4-13.7":1.21498,"14.0-14.4":7.69829,"14.5-14.6":1.40009},E:{"4":0,"10":0.00283,"11":0.00848,"12":0.00848,"13":0.03108,"14":0.98875,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00565,"11.1":0.0339,"12.1":0.03955,"13.1":0.1017,"14.1":0.2825},B:{"12":0.00848,"13":0.00565,"14":0.00283,"15":0.0339,"16":0.01413,"17":0.0113,"18":0.11583,"81":0.00848,"84":0.01695,"85":0.0113,"86":0.01413,"87":0.00283,"88":0.00848,"89":0.0565,"90":1.71195,"91":0.09605,_:"79 80 83"},P:{"4":1.10507,"5.0-5.4":0.11152,"6.2-6.4":0.06083,"7.2-7.4":0.29401,"8.2":0.02028,"9.2":0.24332,"10.1":0.09124,"11.1-11.2":0.42581,"12.0":0.25346,"13.0":0.66913,"14.0":2.02766},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00564,"4.4":0,"4.4.3-4.4.4":0.07329},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00732,"11":0.71023,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.1722},Q:{"10.4":0.1722},O:{"0":1.24128},H:{"0":0.35323},L:{"0":55.07558}}; +module.exports={C:{"17":0.00325,"33":0.00325,"41":0.00325,"47":0.0065,"48":0.02275,"50":0.0065,"51":0.00975,"52":0.0325,"53":0.00975,"54":0.0065,"55":0.0065,"56":0.00975,"57":0.0065,"58":0.0065,"60":0.00325,"63":0.00975,"66":0.0065,"71":0.65975,"72":0.0065,"77":0.0065,"78":0.0325,"79":0.00975,"81":0.026,"82":0.00325,"83":0.00325,"84":0.013,"85":0.13325,"86":0.00325,"88":0.06825,"89":1.01075,"90":0.5265,"91":0.04875,_:"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 42 43 44 45 46 49 59 61 62 64 65 67 68 69 70 73 74 75 76 80 87 92 3.5 3.6"},D:{"11":0.00325,"23":0.0065,"24":0.01625,"25":0.0065,"33":0.00975,"37":0.0065,"43":0.07475,"46":0.00325,"47":0.00325,"49":0.15275,"51":0.0065,"52":0.00325,"53":0.0065,"54":0.0065,"55":0.00975,"56":0.0195,"57":0.00975,"58":0.0065,"59":0.00325,"60":0.00325,"62":0.0065,"63":0.01625,"64":0.00975,"65":0.00975,"67":0.00975,"68":0.0455,"69":0.0065,"70":0.013,"71":0.0195,"72":0.00975,"73":0.00975,"74":0.026,"75":0.0325,"76":0.00975,"77":0.0065,"78":0.026,"79":0.065,"80":0.0975,"81":0.04225,"83":0.05525,"84":0.0585,"85":0.039,"86":0.065,"87":0.43875,"88":0.06825,"89":0.15275,"90":0.36075,"91":14.12775,"92":3.2435,"93":0.0195,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 34 35 36 38 39 40 41 42 44 45 48 50 61 66 94 95"},F:{"67":0.00325,"69":0.02925,"76":0.03575,"77":0.507,_:"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 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0116,"7.0-7.1":0.04123,"8.1-8.4":0.00258,"9.0-9.2":0.00902,"9.3":0.08762,"10.0-10.2":0.02448,"10.3":0.12885,"11.0-11.2":0.0786,"11.3-11.4":0.1005,"12.0-12.1":0.29893,"12.2-12.4":0.60173,"13.0-13.1":0.11983,"13.2":0.04252,"13.3":0.28347,"13.4-13.7":0.90452,"14.0-14.4":2.86303,"14.5-14.7":5.88325},E:{"4":0,"10":0.00325,"11":0.0065,"12":0.0065,"13":0.026,"14":0.299,_:"0 5 6 7 8 9 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00325,"11.1":0.02925,"12.1":0.026,"13.1":0.12025,"14.1":0.7865},B:{"12":0.00975,"13":0.00975,"14":0.00975,"15":0.01625,"16":0.0195,"17":0.00975,"18":0.10075,"80":0.0065,"81":0.0065,"83":0.0065,"84":0.02275,"85":0.02275,"86":0.0195,"87":0.0065,"88":0.0065,"89":0.04875,"90":0.01625,"91":2.12875,"92":0.42575,_:"79"},P:{"4":0.78805,"5.0-5.4":0.04041,"6.2-6.4":0.06062,"7.2-7.4":0.40413,"8.2":0.03031,"9.2":0.25258,"10.1":0.07072,"11.1-11.2":0.41423,"12.0":0.21217,"13.0":0.43444,"14.0":1.99034},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00262,"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.01326,"10":0.01989,"11":0.63636,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"11":0.03973,_:"10"},L:{"0":53.55225},S:{"2.5":0},R:{_:"0"},M:{"0":0.14175},Q:{"10.4":0.297},O:{"0":1.00575},H:{"0":0.44733}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js index 94b597847566fd..69a72a8c0fa59e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js @@ -1 +1 @@ -module.exports={C:{"37":0.01428,"50":0.00714,"52":0.03569,"57":0.01428,"58":0.03212,"67":0.00714,"68":0.00714,"72":0.01428,"77":0.01785,"78":0.04283,"81":0.01071,"83":0.00357,"84":0.00714,"85":0.00714,"86":0.01071,"87":0.02498,"88":1.79521,"89":0.01785,_:"2 3 4 5 6 7 8 9 10 11 12 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 51 53 54 55 56 59 60 61 62 63 64 65 66 69 70 71 73 74 75 76 79 80 82 90 91 3.5 3.6"},D:{"38":0.00714,"43":0.01071,"49":0.07852,"53":0.00714,"63":0.01785,"65":0.08209,"67":0.00714,"68":0.00714,"69":0.00714,"70":0.01785,"71":0.00714,"72":0.01071,"73":0.00714,"74":0.01785,"75":0.00357,"76":0.00714,"77":0.00714,"78":0.01071,"79":0.05354,"80":0.08566,"81":0.01785,"83":0.0464,"84":0.03569,"85":0.04283,"86":0.06424,"87":0.32835,"88":0.12135,"89":0.58532,"90":20.88222,"91":0.89225,"92":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 39 40 41 42 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 66 93 94"},F:{"73":0.04283,"75":0.32121,"76":0.33192,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00488,"6.0-6.1":0.00122,"7.0-7.1":0.04151,"8.1-8.4":0.04517,"9.0-9.2":0.00977,"9.3":0.11598,"10.0-10.2":0.02808,"10.3":0.12575,"11.0-11.2":0.06349,"11.3-11.4":0.11232,"12.0-12.1":0.09034,"12.2-12.4":0.34062,"13.0-13.1":0.04639,"13.2":0.01221,"13.3":0.18435,"13.4-13.7":0.54939,"14.0-14.4":7.48516,"14.5-14.6":1.92043},E:{"4":0,"11":0.00714,"12":0.03212,"13":0.0571,"14":1.5311,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":1.24558,"9.1":0.00714,"10.1":0.01428,"11.1":0.04997,"12.1":0.11778,"13.1":0.36761,"14.1":0.41044},B:{"12":0.01071,"13":0.00714,"14":0.00714,"15":0.01071,"16":0.00714,"17":0.01428,"18":0.06067,"84":0.00714,"85":0.00357,"86":0.02498,"87":0.00357,"88":0.01428,"89":0.11421,"90":2.2449,"91":0.32478,_:"79 80 81 83"},P:{"4":0.29425,"5.0-5.4":0.11152,"6.2-6.4":0.06083,"7.2-7.4":0.31455,"8.2":0.02028,"9.2":0.14205,"10.1":0.07103,"11.1-11.2":0.37543,"12.0":0.20293,"13.0":0.9132,"14.0":5.44877},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00151,"4.2-4.3":0.00726,"4.4":0,"4.4.3-4.4.4":0.06197},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00714,"9":0.00357,"11":0.4604,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.10933},Q:{"10.4":0},O:{"0":0.34084},H:{"0":0.21918},L:{"0":46.40907}}; +module.exports={C:{"3":0.06098,"52":0.05421,"58":0.01016,"68":0.00339,"72":0.01016,"74":0.00339,"77":0.00339,"78":0.03388,"81":0.01694,"83":0.00678,"84":0.00339,"87":0.00339,"88":0.01694,"89":1.84985,"90":0.49804,"91":0.01355,_:"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 45 46 47 48 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 66 67 69 70 71 73 75 76 79 80 82 85 86 92 3.6","3.5":0.03049},D:{"4":0.05082,"22":0.00678,"33":0.00678,"34":0.00678,"38":0.00678,"43":0.00339,"49":0.0576,"55":0.00339,"63":0.00678,"65":0.03727,"66":0.00339,"67":0.00339,"68":0.00678,"69":0.00339,"70":0.01355,"71":0.00339,"72":0.00678,"73":0.01016,"74":0.02372,"75":0.00339,"76":0.0271,"77":0.00339,"78":0.01016,"79":0.0576,"80":0.06437,"81":0.0271,"83":0.0271,"84":0.01694,"85":0.03388,"86":0.07454,"87":0.14568,"88":0.07115,"89":0.11519,"90":0.26088,"91":16.5741,"92":4.15708,"93":0.00678,_:"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 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 64 94 95"},F:{"75":0.00339,"76":0.11519,"77":0.59968,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01082,"6.0-6.1":0.00155,"7.0-7.1":0.04019,"8.1-8.4":0.08502,"9.0-9.2":0.00773,"9.3":0.15149,"10.0-10.2":0.02319,"10.3":0.15921,"11.0-11.2":0.07729,"11.3-11.4":0.12212,"12.0-12.1":0.08502,"12.2-12.4":0.28133,"13.0-13.1":0.04174,"13.2":0.01546,"13.3":0.17004,"13.4-13.7":0.4761,"14.0-14.4":2.51498,"14.5-14.7":9.70129},E:{"4":0,"7":0.00339,"12":0.02372,"13":0.04066,"14":0.62678,"15":0.01694,_:"0 5 6 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.06437,"10.1":0.01016,"11.1":0.03727,"12.1":0.1423,"13.1":0.23377,"14.1":1.48056},B:{"12":0.00678,"13":0.00678,"14":0.00678,"15":0.01016,"16":0.00678,"17":0.01016,"18":0.05082,"84":0.00678,"85":0.00678,"86":0.01016,"87":0.00339,"89":0.0271,"90":0.02372,"91":1.83291,"92":0.40656,_:"79 80 81 83 88"},P:{"4":0.34734,"5.0-5.4":0.01022,"6.2-6.4":0.06062,"7.2-7.4":0.30648,"8.2":0.01022,"9.2":0.11238,"10.1":0.04086,"11.1-11.2":0.33713,"12.0":0.16346,"13.0":0.55166,"14.0":5.26122},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00145,"4.2-4.3":0.00579,"4.4":0,"4.4.3-4.4.4":0.04566},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00348,"11":0.26418,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":46.6855},S:{"2.5":0},R:{_:"0"},M:{"0":0.12563},Q:{"10.4":0},O:{"0":0.43639},H:{"0":0.22535}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js index a15983c58c7862..526bd811f6a653 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js @@ -1 +1 @@ -module.exports={C:{"59":0.00379,"78":0.00758,"85":0.00379,"86":0.00758,"87":0.02273,"88":0.73128,"89":0.00758,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 79 80 81 82 83 84 90 91 3.5 3.6"},D:{"34":0.04547,"49":0.67065,"53":0.00758,"63":0.01137,"65":0.01137,"69":0.01137,"70":0.01137,"71":0.00758,"73":0.04926,"74":0.10609,"75":0.01516,"76":0.50773,"77":0.02652,"79":0.03789,"80":0.01137,"81":0.02652,"83":0.01895,"84":0.00758,"85":0.01895,"86":0.02273,"87":0.20082,"88":0.10609,"89":0.70097,"90":20.62732,"91":0.67065,"92":0.01137,_:"4 5 6 7 8 9 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 50 51 52 54 55 56 57 58 59 60 61 62 64 66 67 68 72 78 93 94"},F:{"73":0.04547,"74":0.00379,"75":0.16293,"76":0.16672,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00225,"5.0-5.1":0.0045,"6.0-6.1":0,"7.0-7.1":0.00563,"8.1-8.4":0,"9.0-9.2":0.0045,"9.3":0.03825,"10.0-10.2":0.08775,"10.3":0.08888,"11.0-11.2":0.02813,"11.3-11.4":0.02363,"12.0-12.1":0.01463,"12.2-12.4":0.12825,"13.0-13.1":0.018,"13.2":0.00788,"13.3":0.14738,"13.4-13.7":0.26551,"14.0-14.4":7.90224,"14.5-14.6":1.41079},E:{"4":0,"13":0.0341,"14":0.94346,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.09094,"9.1":0.00758,"10.1":0.01516,"11.1":0.00758,"12.1":0.07199,"13.1":0.40163,"14.1":0.33343},B:{"13":0.00379,"14":0.00379,"15":0.01137,"16":0.01137,"17":0.01137,"18":0.12883,"80":0.00379,"84":0.00379,"85":0.01516,"88":0.00379,"89":0.12125,"90":4.20579,"91":0.44331,_:"12 79 81 83 86 87"},P:{"4":0.05222,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.69977,"8.2":0.03133,"9.2":0.13578,"10.1":0.03133,"11.1-11.2":0.50133,"12.0":0.19844,"13.0":0.82511,"14.0":7.14397},I:{"0":0,"3":0,"4":0.00048,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00143,"4.2-4.3":0.00525,"4.4":0,"4.4.3-4.4.4":0.04251},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00379,"11":0.20461,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.30429},Q:{"10.4":0},O:{"0":0.42228},H:{"0":0.1705},L:{"0":46.6233}}; +module.exports={C:{"52":0.00699,"78":0.03845,"84":0.0035,"86":0.00699,"87":0.02447,"88":0.0035,"89":0.60114,"90":0.31106,"91":0.0035,"92":0.0035,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 3.5 3.6"},D:{"34":0.05243,"39":0.0035,"49":0.2097,"63":0.01398,"69":0.01398,"70":0.08388,"71":0.0035,"74":0.10136,"75":0.03845,"76":0.2796,"77":0.00699,"79":0.08738,"81":0.02447,"83":0.00699,"84":0.01049,"85":0.01748,"86":0.16427,"87":0.2831,"88":0.04194,"89":0.0734,"90":0.22718,"91":16.29369,"92":3.50199,"93":0.00699,_:"4 5 6 7 8 9 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 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 72 73 78 80 94 95"},F:{"76":0.08388,"77":0.40193,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00248,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01362,"6.0-6.1":0,"7.0-7.1":0.12752,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.10771,"10.0-10.2":0.01238,"10.3":0.13867,"11.0-11.2":0.0099,"11.3-11.4":0.026,"12.0-12.1":0.00619,"12.2-12.4":0.07676,"13.0-13.1":0.00743,"13.2":0.01486,"13.3":0.05076,"13.4-13.7":0.17086,"14.0-14.4":2.07629,"14.5-14.7":8.79422},E:{"4":0,"13":0.01398,"14":0.20271,"15":0.0035,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.01748,"10.1":0.0035,"12.1":0.05243,"13.1":0.1398,"14.1":0.90521},B:{"13":0.00699,"16":0.0035,"17":0.00699,"18":0.12233,"84":0.00699,"85":0.0035,"86":0.00699,"88":0.0035,"89":0.02097,"90":0.01398,"91":3.59636,"92":0.64308,_:"12 14 15 79 80 81 83 87"},P:{"4":0.24914,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.79933,"8.2":0.02076,"9.2":0.10381,"10.1":0.03114,"11.1-11.2":0.45676,"12.0":0.14533,"13.0":0.38409,"14.0":6.29084},I:{"0":0,"3":0,"4":0.00058,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00251,"4.4":0,"4.4.3-4.4.4":0.01642},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.27261,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":49.75252},S:{"2.5":0},R:{_:"0"},M:{"0":0.23414},Q:{"10.4":0},O:{"0":0.39674},H:{"0":0.09852}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js index 71dcd13ac9b14f..e480b8fa3026c4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js @@ -1 +1 @@ -module.exports={C:{"47":0.02744,"52":0.04117,"54":0.17839,"68":0.01372,"70":0.01372,"76":0.00686,"77":0.36363,"78":0.30875,"83":0.00686,"84":0.10292,"85":0.01372,"86":0.10978,"87":0.49399,"88":10.03764,"89":0.02058,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 65 66 67 69 71 72 73 74 75 79 80 81 82 90 91 3.5 3.6"},D:{"29":0.02058,"49":1.96225,"50":0.10978,"53":0.02058,"63":0.01372,"64":0.04117,"71":0.01372,"72":0.01372,"73":0.02744,"74":0.01372,"75":0.03431,"77":0.02058,"78":0.02744,"79":0.06175,"80":0.00686,"81":0.1235,"83":0.00686,"84":0.08919,"85":0.02058,"86":0.1578,"87":0.247,"88":0.47341,"89":2.57974,"90":24.78879,"91":1.15951,"92":0.08233,_:"4 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 54 55 56 57 58 59 60 61 62 65 66 67 68 69 70 76 93 94"},F:{"73":0.10292,"74":0.02058,"75":0.96054,"76":0.99485,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00366,"7.0-7.1":0.21021,"8.1-8.4":0,"9.0-9.2":0.00366,"9.3":0.03107,"10.0-10.2":0,"10.3":0.08043,"11.0-11.2":0.0658,"11.3-11.4":0.02559,"12.0-12.1":0.15354,"12.2-12.4":0.11881,"13.0-13.1":0.02559,"13.2":0.00731,"13.3":0.19376,"13.4-13.7":0.59407,"14.0-14.4":12.99827,"14.5-14.6":3.02336},E:{"4":0,"12":0.00686,"13":0.13722,"14":5.49566,_:"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.61063,"12.1":0.15094,"13.1":1.39964,"14.1":1.72211},B:{"12":0.01372,"15":0.00686,"17":0.00686,"18":0.02744,"84":0.00686,"88":0.31561,"89":0.6861,"90":9.65343,"91":0.87135,_:"13 14 16 79 80 81 83 85 86 87"},P:{"4":0.06554,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.72717,"8.2":0.0303,"9.2":0.28279,"10.1":0.14139,"11.1-11.2":0.69687,"12.0":0.36358,"13.0":0.49153,"14.0":2.00982},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.05326},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.5283,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.92257},Q:{"10.4":0},O:{"0":0.00628},H:{"0":0.09804},L:{"0":10.54995}}; +module.exports={C:{"52":0.0617,"54":0.42507,"68":0.00686,"72":0.07542,"76":0.00686,"77":0.76102,"78":0.87071,"79":0.02742,"81":0.01371,"83":0.03428,"84":0.09598,"85":0.00686,"86":0.02057,"88":0.06856,"89":5.58764,"90":3.09891,"91":0.01371,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 66 67 69 70 71 73 74 75 80 82 87 92 3.5 3.6"},D:{"49":2.31047,"55":0.01371,"66":0.01371,"67":0.01371,"72":0.1714,"73":0.02742,"75":0.10284,"79":0.03428,"81":0.21939,"83":0.04114,"84":0.01371,"85":0.01371,"86":0.02057,"87":0.26053,"88":0.0617,"89":0.6856,"90":1.33692,"91":21.28788,"92":5.12143,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 68 69 70 71 74 76 77 78 80 93 94 95"},F:{"71":0.0617,"74":0.02057,"76":0.61018,"77":1.89226,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02073,"8.1-8.4":0.02073,"9.0-9.2":0.01319,"9.3":0.05841,"10.0-10.2":0,"10.3":0.04334,"11.0-11.2":0.00754,"11.3-11.4":0.04522,"12.0-12.1":0.05088,"12.2-12.4":0.25439,"13.0-13.1":0.02073,"13.2":0.00377,"13.3":0.08103,"13.4-13.7":0.32034,"14.0-14.4":1.70157,"14.5-14.7":14.69416},E:{"4":0,"13":0.13712,"14":1.22037,"15":0.03428,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.02742,"10.1":0.03428,"11.1":0.53477,"12.1":0.07542,"13.1":0.88442,"14.1":4.65522},B:{"13":0.02742,"15":0.00686,"17":0.00686,"18":0.02057,"83":0.0617,"84":0.02742,"85":0.00686,"88":0.81586,"89":0.04114,"90":0.16454,"91":9.7081,"92":2.24191,_:"12 14 16 79 80 81 86 87"},P:{"4":0.41327,"5.0-5.4":0.03024,"6.2-6.4":0.06048,"7.2-7.4":0.67535,"8.2":0.02016,"9.2":0.2016,"10.1":0.06048,"11.1-11.2":0.44351,"12.0":0.17136,"13.0":0.10902,"14.0":3.76124},I:{"0":0,"3":0,"4":0.00064,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00032,"4.2-4.3":0.00043,"4.4":0,"4.4.3-4.4.4":0.01119},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00686,"11":1.2615,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":10.0062},S:{"2.5":0},R:{_:"0"},M:{"0":0.41815},Q:{"10.4":0},O:{"0":0.15406},H:{"0":0.09823}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js index 034477c38cee1a..ea0cca954bcd40 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js @@ -1 +1 @@ -module.exports={C:{"41":0.00364,"43":0.00364,"47":0.00364,"52":0.01455,"65":0.00727,"72":0.01455,"76":0.00364,"77":0.00364,"78":0.03273,"81":0.01091,"82":0.00364,"83":0.00364,"84":0.01819,"85":0.01455,"86":0.02182,"87":0.0291,"88":1.63301,"89":0.08001,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 79 80 90 91 3.5 3.6"},D:{"22":0.00364,"30":0.00364,"31":0.00364,"33":0.00364,"43":0.00364,"49":0.04728,"53":0.00364,"55":0.00727,"56":0.00364,"58":0.00727,"60":0.01091,"61":0.00727,"63":0.0291,"64":0.00727,"65":0.00364,"66":0.00727,"67":0.01091,"68":0.01091,"69":0.00727,"70":0.01455,"71":0.01091,"72":0.00727,"73":0.00364,"74":0.02182,"75":0.00727,"76":0.01455,"77":0.01455,"78":0.01819,"79":0.05092,"80":0.0291,"81":0.06183,"83":0.05819,"84":0.02546,"85":0.04001,"86":0.08365,"87":0.24004,"88":0.14912,"89":0.47281,"90":20.69817,"91":0.8947,"92":0.01455,_:"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 32 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 54 57 59 62 93 94"},F:{"72":0.00727,"73":0.03637,"74":0.01091,"75":0.47645,"76":0.9929,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00236,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00094,"5.0-5.1":0.00047,"6.0-6.1":0.00094,"7.0-7.1":0.01508,"8.1-8.4":0.00848,"9.0-9.2":0.00943,"9.3":0.04289,"10.0-10.2":0.01461,"10.3":0.05562,"11.0-11.2":0.07919,"11.3-11.4":0.05656,"12.0-12.1":0.05751,"12.2-12.4":0.25077,"13.0-13.1":0.05044,"13.2":0.03111,"13.3":0.11973,"13.4-13.7":0.32948,"14.0-14.4":2.51991,"14.5-14.6":0.62974},E:{"4":0,"13":0.02182,"14":0.25459,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.23277,"11.1":0.00727,"12.1":0.01819,"13.1":0.05819,"14.1":0.09456},B:{"12":0.01819,"13":0.01091,"14":0.00727,"15":0.01091,"16":0.01091,"17":0.01455,"18":0.0691,"80":0.00727,"84":0.01819,"85":0.01091,"86":0.00727,"87":0.01455,"88":0.01455,"89":0.0691,"90":4.21528,"91":0.16003,_:"79 81 83"},P:{"4":1.18236,"5.0-5.4":0.03032,"6.2-6.4":0.08085,"7.2-7.4":0.96004,"8.2":0.06063,"9.2":0.27285,"10.1":0.10106,"11.1-11.2":0.77814,"12.0":0.25264,"13.0":0.81856,"14.0":1.23289},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.009,"4.4":0,"4.4.3-4.4.4":0.09044},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07274,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.10179},Q:{"10.4":0},O:{"0":2.43665},H:{"0":2.24663},L:{"0":52.40185}}; +module.exports={C:{"47":0.00771,"52":0.01542,"65":0.00771,"72":0.00771,"76":0.00386,"77":0.00771,"78":0.02313,"83":0.00771,"84":0.01542,"85":0.00386,"86":0.00386,"87":0.00386,"88":0.04626,"89":1.14108,"90":0.60524,"91":0.04241,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 66 67 68 69 70 71 73 74 75 79 80 81 82 92 3.5 3.6"},D:{"22":0.00386,"33":0.00386,"43":0.00386,"49":0.03084,"56":0.00771,"58":0.00386,"59":0.00386,"60":0.00771,"61":0.04626,"62":0.00386,"63":0.02313,"64":0.01157,"65":0.00771,"66":0.00386,"67":0.00771,"68":0.00771,"69":0.00771,"70":0.01157,"71":0.00771,"72":0.00386,"73":0.00771,"74":0.01928,"75":0.00771,"76":0.01542,"77":0.01157,"78":0.01542,"79":0.04241,"80":0.01928,"81":0.09252,"83":0.04626,"84":0.01928,"85":0.02699,"86":0.06168,"87":0.15806,"88":0.0771,"89":0.08867,"90":0.24287,"91":17.49399,"92":3.8897,"93":0.01157,_:"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 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 94 95"},F:{"72":0.00386,"76":0.09252,"77":1.31456,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00093,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00139,"5.0-5.1":0.00046,"6.0-6.1":0.00186,"7.0-7.1":0.00789,"8.1-8.4":0.00975,"9.0-9.2":0.00371,"9.3":0.04084,"10.0-10.2":0.0116,"10.3":0.05894,"11.0-11.2":0.071,"11.3-11.4":0.04362,"12.0-12.1":0.05012,"12.2-12.4":0.16845,"13.0-13.1":0.04316,"13.2":0.02506,"13.3":0.09513,"13.4-13.7":0.2608,"14.0-14.4":1.14807,"14.5-14.7":2.14812},E:{"4":0,"13":0.01157,"14":0.13493,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02313,"11.1":0.00386,"12.1":0.01157,"13.1":0.05783,"14.1":0.25443},B:{"12":0.01542,"13":0.00771,"14":0.00771,"15":0.00771,"16":0.01157,"17":0.01542,"18":0.05397,"84":0.01542,"85":0.01542,"86":0.00771,"87":0.00386,"88":0.01157,"89":0.03084,"90":0.0347,"91":4.74165,"92":1.19891,_:"79 80 81 83"},P:{"4":1.04235,"5.0-5.4":0.02024,"6.2-6.4":0.06072,"7.2-7.4":1.10307,"8.2":0.06072,"9.2":0.21252,"10.1":0.08096,"11.1-11.2":0.75899,"12.0":0.17204,"13.0":0.47563,"14.0":1.6293},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00168,"4.2-4.3":0.0064,"4.4":0,"4.4.3-4.4.4":0.06566},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07325,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":52.60469},S:{"2.5":0},R:{_:"0"},M:{"0":0.09832},Q:{"10.4":0},O:{"0":2.11388},H:{"0":2.04783}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js index 67fe67d6e1e58d..3a807c8d7867b8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js @@ -1 +1 @@ -module.exports={C:{"15":0.0074,"24":0.02715,"27":0.00494,"34":0.00987,"47":0.00987,"49":0.00247,"50":0.0074,"56":0.0074,"62":0.0074,"68":0.0074,"70":0.00247,"72":0.0074,"78":0.00987,"82":0.03949,"84":0.00494,"85":0.00494,"86":0.01974,"87":0.04936,"88":0.83912,"89":0.07404,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 25 26 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 53 54 55 57 58 59 60 61 63 64 65 66 67 69 71 73 74 75 76 77 79 80 81 83 90 91 3.5 3.6"},D:{"11":0.0074,"43":0.01728,"50":0.00987,"51":0.00247,"53":0.00494,"55":0.00247,"56":0.00247,"57":0.01481,"58":0.01728,"60":0.07651,"63":0.01974,"64":0.06664,"65":0.00987,"67":0.02221,"68":0.00247,"69":0.0074,"70":0.01728,"71":0.00494,"73":0.02468,"74":0.01974,"75":0.01234,"76":0.01481,"77":0.00987,"78":0.01234,"79":0.02221,"80":0.02468,"81":0.02715,"83":0.03949,"84":0.02221,"85":0.04442,"86":0.03702,"87":0.15795,"88":0.10612,"89":0.37514,"90":6.82402,"91":0.39735,"92":0.01481,_:"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 44 45 46 47 48 49 52 54 59 61 62 66 72 93 94"},F:{"63":0.0074,"72":0.00494,"73":0.00247,"74":0.00494,"75":0.20731,"76":0.31097,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00066,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00997,"6.0-6.1":0.00066,"7.0-7.1":0.0605,"8.1-8.4":0.00199,"9.0-9.2":0.00066,"9.3":0.20943,"10.0-10.2":0.0379,"10.3":0.05585,"11.0-11.2":0.03457,"11.3-11.4":0.05718,"12.0-12.1":0.09241,"12.2-12.4":0.40689,"13.0-13.1":0.08909,"13.2":0.05186,"13.3":0.18815,"13.4-13.7":0.69277,"14.0-14.4":3.7863,"14.5-14.6":0.49731},E:{"4":0,"13":0.04442,"14":0.38007,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00987,"10.1":0.02715,"11.1":0.00987,"12.1":0.00494,"13.1":0.06664,"14.1":0.07651},B:{"12":0.10366,"13":0.06664,"14":0.03208,"15":0.05183,"16":0.04196,"17":0.05676,"18":0.16536,"80":0.04442,"84":0.01728,"85":0.03455,"86":0.0074,"87":0.01481,"88":0.01481,"89":0.05676,"90":1.58939,"91":0.09625,_:"79 81 83"},P:{"4":0.25731,"5.0-5.4":0.05146,"6.2-6.4":0.08234,"7.2-7.4":0.11322,"8.2":0.01029,"9.2":0.08234,"10.1":0.04117,"11.1-11.2":0.20585,"12.0":0.07205,"13.0":0.31906,"14.0":0.73076},I:{"0":0,"3":0,"4":0.00157,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00314,"4.2-4.3":0.00863,"4.4":0,"4.4.3-4.4.4":0.06198},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01062,"10":0.01062,"11":0.22309,_:"6 7 9 5.5"},J:{"7":0,"10":0.01506},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.2109},R:{_:"0"},M:{"0":0.1657},Q:{"10.4":0.07532},O:{"0":1.64198},H:{"0":6.53182},L:{"0":68.38344}}; +module.exports={C:{"15":0.00832,"21":0.01387,"24":0.0111,"34":0.00832,"43":0.01664,"47":0.00555,"48":0.00555,"57":0.00555,"58":0.00555,"66":0.01387,"68":0.01387,"69":0.0111,"72":0.02774,"78":0.02219,"81":0.0111,"82":0.00555,"83":0.00555,"85":0.01664,"87":0.00277,"88":0.01942,"89":0.85717,"90":0.30237,"91":0.01387,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 22 23 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 49 50 51 52 53 54 55 56 59 60 61 62 63 64 65 67 70 71 73 74 75 76 77 79 80 84 86 92 3.5 3.6"},D:{"11":0.00832,"18":0.01387,"26":0.00555,"28":0.00277,"32":0.00555,"33":0.00277,"38":0.00555,"42":0.00555,"43":0.01664,"45":0.0111,"47":0.00832,"49":0.0111,"50":0.00555,"56":0.00277,"58":0.00555,"60":0.00555,"63":0.03051,"64":0.04716,"65":0.00832,"66":0.01664,"67":0.00555,"68":0.00555,"69":0.00277,"70":0.0111,"71":0.01387,"72":0.00832,"73":0.00832,"74":0.01942,"75":0.01942,"76":0.03329,"77":0.03329,"78":0.00555,"79":0.03606,"80":0.05825,"81":0.04438,"83":0.0111,"84":0.01942,"85":0.0638,"86":0.03051,"87":0.06103,"88":0.07767,"89":0.04993,"90":0.2774,"91":6.49393,"92":1.91683,"93":0.00555,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 27 29 30 31 34 35 36 37 39 40 41 44 46 48 51 52 53 54 55 57 59 61 62 94 95"},F:{"21":0.00277,"22":0.00555,"35":0.03606,"37":0.00832,"42":0.00832,"45":0.0111,"53":0.00555,"72":0.00555,"73":0.00555,"76":0.01942,"77":0.47435,_:"9 11 12 15 16 17 18 19 20 23 24 25 26 27 28 29 30 31 32 33 34 36 38 39 40 41 43 44 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00177,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00883,"6.0-6.1":0,"7.0-7.1":0.14043,"8.1-8.4":0.00618,"9.0-9.2":0.00795,"9.3":0.07772,"10.0-10.2":0.01237,"10.3":0.05476,"11.0-11.2":0.03445,"11.3-11.4":0.09627,"12.0-12.1":0.09274,"12.2-12.4":0.4319,"13.0-13.1":0.1581,"13.2":0.02738,"13.3":0.21463,"13.4-13.7":0.55644,"14.0-14.4":2.97827,"14.5-14.7":3.32185},E:{"4":0,"13":0.02219,"14":0.08599,"15":0.00555,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00277,"11.1":0.01664,"12.1":0.00277,"13.1":0.15812,"14.1":0.08877},B:{"12":0.07767,"13":0.04438,"14":0.00832,"15":0.04438,"16":0.04161,"17":0.02219,"18":0.13315,"80":0.02497,"83":0.00832,"84":0.02497,"85":0.04161,"87":0.0111,"88":0.00832,"89":0.04438,"90":0.04161,"91":1.76149,"92":0.26076,_:"79 81 86"},P:{"4":0.27669,"5.0-5.4":0.05124,"6.2-6.4":0.0205,"7.2-7.4":0.11272,"8.2":0.05065,"9.2":0.08198,"10.1":0.05124,"11.1-11.2":0.24594,"12.0":0.05124,"13.0":0.11272,"14.0":1.00428},I:{"0":0,"3":0,"4":0.00224,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00224,"4.2-4.3":0.00374,"4.4":0,"4.4.3-4.4.4":0.0568},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01617,"11":0.45264,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00723},N:{"11":0.01472,_:"10"},L:{"0":65.43868},S:{"2.5":0.2601},R:{_:"0"},M:{"0":0.21675},Q:{"10.4":0},O:{"0":1.55338},H:{"0":6.08775}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js index cecf2a69095fde..46c72fd5bdf511 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js @@ -1 +1 @@ -module.exports={C:{"29":0.05903,"43":0.00537,"47":0.01342,"60":0.00268,"64":0.00268,"78":0.0161,"82":0.04561,"85":0.00537,"87":0.02146,"88":0.70563,"89":0.03488,_:"2 3 4 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 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 86 90 91 3.5 3.6"},D:{"28":0.01073,"40":0.00268,"43":0.0161,"49":0.00537,"53":0.0322,"56":0.02415,"57":0.00537,"58":0.00268,"60":0.00805,"63":0.04561,"65":0.00537,"66":0.00268,"67":0.00268,"68":0.01342,"69":0.02951,"70":0.05098,"71":0.02146,"72":0.01073,"73":0.00805,"74":0.05366,"77":0.00537,"78":0.02951,"79":0.04025,"80":0.04293,"81":0.06976,"83":0.02146,"84":0.02146,"85":0.01878,"86":0.03488,"87":0.17171,"88":0.08854,"89":0.29513,"90":8.3495,"91":0.21196,_:"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 41 42 44 45 46 47 48 50 51 52 54 55 59 61 62 64 75 76 92 93 94"},F:{"63":0.00537,"73":0.0322,"74":0.00537,"75":0.2361,"76":0.41587,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0,"6.0-6.1":0.0011,"7.0-7.1":0.00658,"8.1-8.4":0.00132,"9.0-9.2":0.00044,"9.3":0.15304,"10.0-10.2":0.00241,"10.3":0.02806,"11.0-11.2":0.04539,"11.3-11.4":0.02302,"12.0-12.1":0.02719,"12.2-12.4":0.12454,"13.0-13.1":0.0068,"13.2":0.04276,"13.3":0.10217,"13.4-13.7":0.15194,"14.0-14.4":0.98556,"14.5-14.6":0.3234},E:{"4":0,"11":0.00537,"13":0.00268,"14":0.17171,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 9.1 11.1","5.1":0.06708,"7.1":0.00537,"10.1":0.02951,"12.1":0.0161,"13.1":0.02415,"14.1":0.02146},B:{"12":0.41855,"13":0.02415,"14":0.01878,"15":0.01878,"16":0.05634,"17":0.0322,"18":0.17171,"80":0.01878,"84":0.01073,"85":0.01878,"86":0.01342,"87":0.00537,"88":0.01342,"89":0.08317,"90":1.63395,"91":0.04025,_:"79 81 83"},P:{"4":0.77515,"5.0-5.4":0.11152,"6.2-6.4":0.04027,"7.2-7.4":1.99324,"8.2":0.07047,"9.2":0.16107,"10.1":0.0604,"11.1-11.2":1.03689,"12.0":0.2416,"13.0":0.77515,"14.0":1.00669},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0074,"4.4":0,"4.4.3-4.4.4":0.12431},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.18781,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02927},N:{"10":0.02735,"11":0.02361},S:{"2.5":0.00732},R:{_:"0"},M:{"0":0.16829},Q:{"10.4":0.05854},O:{"0":1.18535},H:{"0":7.7239},L:{"0":67.23319}}; +module.exports={C:{"4":0.00548,"31":0.01096,"43":0.00274,"52":0.01096,"56":0.00822,"60":0.00548,"65":0.00548,"76":0.00822,"78":0.01917,"86":0.00548,"87":0.00274,"88":0.0137,"89":0.52863,"90":0.19447,"91":0.02191,_:"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 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 92 3.5 3.6"},D:{"43":0.07943,"49":0.01096,"50":0.00274,"56":0.0137,"57":0.00822,"60":0.00822,"63":0.01096,"65":0.0137,"68":0.01096,"69":0.27938,"70":0.03835,"71":0.00274,"72":0.00548,"74":0.01917,"75":0.00274,"76":0.00548,"77":0.05752,"78":0.01917,"79":0.03835,"80":0.04109,"81":0.03287,"83":0.00822,"84":0.01096,"85":0.03013,"86":0.09313,"87":0.07943,"88":0.2109,"89":0.08765,"90":0.14517,"91":8.0554,"92":1.87895,"93":0.00548,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 58 59 61 62 64 66 67 73 94 95"},F:{"49":0.00274,"72":0.00548,"76":0.00274,"77":0.52589,_:"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 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00136,"5.0-5.1":0.00249,"6.0-6.1":0.00317,"7.0-7.1":0.00407,"8.1-8.4":0.00045,"9.0-9.2":0.00136,"9.3":0.11737,"10.0-10.2":0.00158,"10.3":0.01131,"11.0-11.2":0.03098,"11.3-11.4":0.00814,"12.0-12.1":0.01108,"12.2-12.4":0.22478,"13.0-13.1":0.01493,"13.2":0.00317,"13.3":0.0441,"13.4-13.7":0.18656,"14.0-14.4":0.33039,"14.5-14.7":0.87606},E:{"4":0,"13":0.01643,"14":0.06574,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 9.1 11.1","5.1":0.02465,"7.1":0.00548,"10.1":0.00548,"12.1":0.00822,"13.1":0.03013,"14.1":0.09587},B:{"12":0.03835,"13":0.02191,"14":0.00822,"15":0.01643,"16":0.03561,"17":0.02191,"18":0.11778,"80":0.02465,"84":0.0137,"85":0.01643,"88":0.00822,"89":0.02465,"90":0.03561,"91":1.50097,"92":0.26021,_:"79 81 83 86 87"},P:{"4":0.47614,"5.0-5.4":0.01022,"6.2-6.4":0.02026,"7.2-7.4":2.27937,"8.2":0.05065,"9.2":0.233,"10.1":0.05065,"11.1-11.2":0.3647,"12.0":0.33431,"13.0":0.4964,"14.0":2.02611},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00093,"4.2-4.3":0.00464,"4.4":0,"4.4.3-4.4.4":0.08882},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21912,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01452},N:{"11":0.01472,_:"10"},L:{"0":67.17789},S:{"2.5":0.01452},R:{_:"0"},M:{"0":0.33401},Q:{"10.4":0.02904},O:{"0":1.27068},H:{"0":6.42742}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js index 97c225fa74075b..d4b136d10a6521 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js @@ -1 +1 @@ -module.exports={C:{"31":0.0059,"32":0.0059,"48":0.01769,"50":0.01179,"51":0.01179,"52":0.09434,"55":0.0059,"56":0.0059,"60":0.01179,"63":0.0059,"66":0.01179,"68":0.01179,"70":0.0059,"72":0.01179,"76":0.01769,"78":0.13561,"80":0.0059,"81":0.0059,"82":0.01179,"83":0.01179,"84":0.01769,"85":0.02948,"86":0.02948,"87":0.08844,"88":5.58941,"89":0.04717,_:"2 3 4 5 6 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 38 39 40 41 42 43 44 45 46 47 49 53 54 57 58 59 61 62 64 65 67 69 71 73 74 75 77 79 90 91 3.5 3.6"},D:{"38":0.05896,"47":0.01179,"48":0.02948,"49":0.33018,"53":0.02358,"56":0.13561,"58":0.0059,"60":0.01179,"61":0.20636,"63":0.0059,"64":0.01179,"65":0.0059,"67":0.01179,"68":0.04717,"69":0.01179,"70":0.0059,"71":0.0059,"72":0.01179,"73":0.0059,"74":0.01179,"75":0.02358,"76":0.01179,"77":0.01179,"78":0.01769,"79":0.06486,"80":0.04127,"81":0.02358,"83":0.11202,"84":0.21226,"85":0.11792,"86":0.22994,"87":0.25942,"88":0.24174,"89":0.86082,"90":34.72744,"91":1.23226,"92":0.01179,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 52 54 55 57 59 62 66 93 94"},F:{"36":0.04127,"65":0.02948,"70":0.01179,"73":0.4422,"74":0.02358,"75":1.9162,"76":1.52706,_:"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 66 67 68 69 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00331,"7.0-7.1":0,"8.1-8.4":0.00552,"9.0-9.2":0.01105,"9.3":0.04309,"10.0-10.2":0.00663,"10.3":0.10275,"11.0-11.2":0.02541,"11.3-11.4":0.04861,"12.0-12.1":0.04198,"12.2-12.4":0.08949,"13.0-13.1":0.02099,"13.2":0.01547,"13.3":0.0917,"13.4-13.7":0.33696,"14.0-14.4":8.69473,"14.5-14.6":1.30918},E:{"4":0.0059,"12":0.01179,"13":0.04717,"14":1.39146,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01179,"11.1":0.04127,"12.1":0.08844,"13.1":0.35376,"14.1":0.67214},B:{"13":0.01179,"14":0.01179,"16":0.0059,"17":0.0059,"18":0.04127,"80":0.0059,"84":0.01179,"85":0.01769,"86":0.0059,"87":0.01769,"88":0.01769,"89":0.08254,"90":4.19795,"91":0.27711,_:"12 15 79 81 83"},P:{"4":0.07295,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.01042,"8.2":0.0303,"9.2":0.28279,"10.1":0.03127,"11.1-11.2":0.07295,"12.0":0.0938,"13.0":0.38561,"14.0":3.29335},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.00873,"4.4":0,"4.4.3-4.4.4":0.04171},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00622,"7":0.00622,"8":0.05598,"9":0.02488,"10":0.02488,"11":0.55985,_:"5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.27497},Q:{"10.4":0.02052},O:{"0":0.09439},H:{"0":0.30306},L:{"0":26.32735}}; +module.exports={C:{"3":0.02135,"11":0.00534,"44":0.01068,"48":0.0427,"51":0.01068,"52":0.10142,"55":0.00534,"56":0.01601,"60":0.01601,"66":0.00534,"67":0.00534,"68":0.01601,"70":0.00534,"72":0.01601,"76":0.01601,"77":0.01068,"78":0.14413,"79":0.02135,"80":0.03737,"81":0.0427,"82":0.02135,"83":0.03203,"84":0.02135,"85":0.01601,"86":0.01601,"87":0.02135,"88":0.06939,"89":2.88786,"90":1.80424,"91":0.02135,_:"2 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 45 46 47 49 50 53 54 57 58 59 61 62 63 64 65 69 71 73 74 75 92 3.5 3.6"},D:{"32":0.00534,"38":0.1121,"46":0.01068,"48":0.21886,"49":0.1548,"53":0.00534,"56":0.43772,"58":0.00534,"60":0.00534,"61":0.48042,"62":0.01068,"63":0.01601,"64":0.01068,"65":0.0427,"66":0.02135,"67":0.01068,"68":0.01601,"69":0.00534,"70":0.00534,"71":0.01068,"73":0.01601,"74":0.03737,"75":0.02669,"76":0.01601,"77":0.01601,"78":0.02669,"79":0.10142,"80":0.04804,"81":0.06406,"83":0.23487,"84":0.2242,"85":0.20284,"86":0.27224,"87":0.27224,"88":0.21886,"89":0.26156,"90":0.46441,"91":24.19715,"92":5.63159,"93":0.03203,_:"4 5 6 7 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 40 41 42 43 44 45 47 50 51 52 54 55 57 59 72 94 95"},F:{"36":0.03203,"46":0.00534,"49":0.00534,"65":0.01601,"68":0.02135,"69":0.02669,"70":0.03203,"71":0.03203,"72":0.01601,"73":0.02669,"74":0.02135,"75":0.02669,"76":0.79002,"77":2.43413,_:"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 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00117,"6.0-6.1":0.00233,"7.0-7.1":0.01283,"8.1-8.4":0.01049,"9.0-9.2":0,"9.3":0.02332,"10.0-10.2":0.00816,"10.3":0.1061,"11.0-11.2":0.02332,"11.3-11.4":0.0513,"12.0-12.1":0.04547,"12.2-12.4":0.09794,"13.0-13.1":0.02099,"13.2":0.01749,"13.3":0.09095,"13.4-13.7":0.36145,"14.0-14.4":1.96465,"14.5-14.7":8.59082},E:{"4":0.03737,"12":0.00534,"13":0.03737,"14":0.51245,"15":0.01068,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00534,"11.1":0.02669,"12.1":0.0427,"13.1":0.25089,"14.1":1.16368},B:{"14":0.00534,"16":0.01601,"17":0.00534,"18":0.05338,"83":0.01601,"84":0.02669,"85":0.03203,"86":0.01601,"87":0.03203,"88":0.01601,"89":0.05338,"90":0.03737,"91":2.88252,"92":0.87009,_:"12 13 15 79 80 81"},P:{"4":0.08312,"5.0-5.4":0.02078,"6.2-6.4":0.06048,"7.2-7.4":0.67535,"8.2":0.02016,"9.2":0.01039,"10.1":0.06048,"11.1-11.2":0.11428,"12.0":0.09351,"13.0":0.23896,"14.0":4.02073},I:{"0":0,"3":0,"4":0.00108,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00433,"4.2-4.3":0.01298,"4.4":0,"4.4.3-4.4.4":0.0422},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.08211,"7":0.08211,"8":0.36635,"9":0.11369,"10":0.20844,"11":1.11168,_:"5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":31.13035},S:{"2.5":0},R:{_:"0"},M:{"0":0.31695},Q:{"10.4":0.01398},O:{"0":0.05593},H:{"0":0.39715}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js index 47c2219f30c928..f21fc1507a5129 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js @@ -1 +1 @@ -module.exports={C:{"45":0.01564,"48":0.04693,"52":0.10949,"60":0.02086,"68":0.26591,"70":0.02607,"72":0.01043,"75":0.00521,"76":0.01564,"77":0.01564,"78":0.5214,"79":0.01043,"80":0.02086,"81":0.01043,"82":0.01043,"83":0.02607,"84":0.01043,"85":0.0365,"86":0.06778,"87":0.14599,"88":5.9231,"89":0.01564,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 61 62 63 64 65 66 67 69 71 73 74 90 91 3.5 3.6"},D:{"36":0.00521,"38":0.01043,"41":0.00521,"49":0.61525,"53":0.03128,"57":0.02086,"63":0.00521,"65":0.01043,"67":0.01043,"68":0.01564,"70":0.02607,"71":0.01043,"72":0.02607,"73":0.01043,"74":0.00521,"75":0.04171,"76":0.073,"77":0.08864,"78":0.09385,"79":0.03128,"80":0.06778,"81":0.16163,"83":0.073,"84":0.02607,"85":0.13035,"86":0.33891,"87":0.35977,"88":0.43798,"89":0.88638,"90":19.44822,"91":0.5579,"92":0.01043,_:"4 5 6 7 8 9 10 11 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 42 43 44 45 46 47 48 50 51 52 54 55 56 58 59 60 61 62 64 66 69 93 94"},F:{"73":0.11471,"74":0.00521,"75":0.53183,"76":0.49533,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.02607},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00674,"6.0-6.1":0.00449,"7.0-7.1":0,"8.1-8.4":0.00225,"9.0-9.2":0,"9.3":0.48505,"10.0-10.2":0.08533,"10.3":0.17291,"11.0-11.2":0.07635,"11.3-11.4":0.06288,"12.0-12.1":0.08758,"12.2-12.4":0.24926,"13.0-13.1":0.1033,"13.2":0.01796,"13.3":0.16842,"13.4-13.7":0.77698,"14.0-14.4":15.95503,"14.5-14.6":3.58399},E:{"4":0,"8":0.00521,"11":0.00521,"12":0.02086,"13":0.11992,"14":7.13797,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01043,"10.1":0.06778,"11.1":0.13556,"12.1":0.49533,"13.1":1.13144,"14.1":2.77385},B:{"14":0.00521,"17":0.01564,"18":0.14078,"84":0.02086,"85":0.01043,"86":0.02086,"87":0.01043,"88":0.11471,"89":0.19292,"90":5.07322,"91":0.26591,_:"12 13 15 16 79 80 81 83"},P:{"4":0.26442,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.04231,"8.2":0.0303,"9.2":0.03173,"10.1":0.02115,"11.1-11.2":0.10577,"12.0":0.09519,"13.0":0.37018,"14.0":3.55374},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.0027,"4.4":0,"4.4.3-4.4.4":0.03468},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00588,"9":0.01765,"11":0.66472,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.80405},Q:{"10.4":0.05743},O:{"0":0.33502},H:{"0":0.33983},L:{"0":20.46633}}; +module.exports={C:{"31":0.00462,"45":0.01386,"48":0.01386,"50":0.00462,"52":0.13395,"58":0.00924,"59":0.01386,"60":0.04157,"61":0.02771,"62":0.03233,"63":0.02771,"68":0.37414,"71":0.00462,"72":0.00924,"75":0.01386,"76":0.00462,"77":0.01386,"78":0.66514,"79":0.01386,"80":0.00462,"81":0.01386,"82":0.00924,"84":0.00924,"85":0.01386,"86":0.01386,"87":0.10162,"88":1.29794,"89":3.28411,"90":2.02312,_:"2 3 4 5 6 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 49 51 53 54 55 56 57 64 65 66 67 69 70 73 74 83 91 92 3.5 3.6"},D:{"38":0.01386,"49":0.50347,"53":0.00462,"57":0.01848,"59":0.00462,"61":0.20324,"64":0.00924,"65":0.00924,"67":0.00924,"68":0.0231,"69":0.03233,"70":0.06005,"71":0.05543,"72":0.0739,"73":0.00462,"74":0.00924,"75":0.02771,"76":0.08776,"77":0.13857,"78":0.03695,"79":0.06005,"80":0.0739,"81":0.08776,"83":0.08776,"84":0.04157,"85":0.097,"86":0.18938,"87":0.1709,"88":0.10624,"89":0.24943,"90":0.47576,"91":14.19881,"92":2.93307,"93":0.00924,_:"4 5 6 7 8 9 10 11 12 13 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 58 60 62 63 66 94 95"},F:{"22":0.00924,"53":0.00924,"64":0.00924,"75":0.00924,"76":0.27252,"77":0.88223,_:"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 48 49 50 51 52 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00412,"6.0-6.1":0.00412,"7.0-7.1":0.00206,"8.1-8.4":0,"9.0-9.2":0,"9.3":1.14824,"10.0-10.2":0.07009,"10.3":0.22676,"11.0-11.2":0.06597,"11.3-11.4":0.23501,"12.0-12.1":0.03917,"12.2-12.4":0.18966,"13.0-13.1":0.03917,"13.2":0.01443,"13.3":0.09277,"13.4-13.7":0.60195,"14.0-14.4":2.78918,"14.5-14.7":14.60762},E:{"4":0,"11":0.00924,"12":0.01386,"13":0.0739,"14":1.49656,"15":0.01848,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00462,"9.1":0.00462,"10.1":0.0231,"11.1":0.08314,"12.1":0.25405,"13.1":0.91918,"14.1":5.05319},B:{"17":0.00462,"18":0.06005,"84":0.00924,"85":0.01386,"86":0.01386,"88":0.00924,"89":0.1709,"90":0.03233,"91":4.16634,"92":1.08085,_:"12 13 14 15 16 79 80 81 83 87"},P:{"4":0.15796,"5.0-5.4":0.02078,"6.2-6.4":0.02106,"7.2-7.4":0.06318,"8.2":0.01053,"9.2":0.02106,"10.1":0.01053,"11.1-11.2":0.09478,"12.0":0.07371,"13.0":0.27379,"14.0":4.1701},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.01129,"4.4":0,"4.4.3-4.4.4":0.07128},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01732,"11":0.65243,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":27.63764},S:{"2.5":0},R:{_:"0"},M:{"0":0.91477},Q:{"10.4":0.02691},O:{"0":0.79101},H:{"0":0.62151}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js index 040f0dc095569a..21d54da59b5b8e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js @@ -1 +1 @@ -module.exports={C:{"37":0.00632,"52":0.13911,"56":0.02529,"60":0.01265,"64":0.00632,"66":0.00632,"68":0.01897,"72":0.06955,"73":0.85361,"74":0.02529,"75":0.01265,"78":0.25292,"79":0.01897,"80":0.00632,"81":0.01265,"82":0.00632,"83":0.00632,"84":0.03794,"85":0.02529,"86":0.04426,"87":0.17072,"88":6.22183,"89":0.08852,_:"2 3 4 5 6 7 8 9 10 11 12 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 55 57 58 59 61 62 63 65 67 69 70 71 76 77 90 91 3.5 3.6"},D:{"38":0.01265,"46":0.00632,"49":0.49952,"52":0.00632,"53":0.03794,"56":0.02529,"57":0.1644,"66":0.01897,"67":0.01897,"68":0.01265,"69":0.05691,"70":0.01897,"71":0.02529,"72":0.01897,"73":0.01265,"74":0.04426,"75":0.01897,"76":0.01897,"77":0.03162,"78":0.03162,"79":0.0822,"80":0.05058,"81":0.02529,"83":0.10117,"84":0.2466,"85":0.06955,"86":0.12646,"87":0.37306,"88":0.42364,"89":1.15711,"90":37.02117,"91":1.30886,"92":0.01265,_:"4 5 6 7 8 9 10 11 12 13 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 47 48 50 51 54 55 58 59 60 61 62 63 64 65 93 94"},F:{"36":0.01265,"54":0.00632,"70":0.00632,"73":0.24027,"74":0.01265,"75":1.41635,"76":1.46061,_:"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 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00093,"6.0-6.1":0.00187,"7.0-7.1":0.00747,"8.1-8.4":0.00187,"9.0-9.2":0.03174,"9.3":0.04948,"10.0-10.2":0.0056,"10.3":0.07936,"11.0-11.2":0.02241,"11.3-11.4":0.01961,"12.0-12.1":0.02428,"12.2-12.4":0.10457,"13.0-13.1":0.03081,"13.2":0.02241,"13.3":0.10177,"13.4-13.7":0.4687,"14.0-14.4":6.5936,"14.5-14.6":1.47894},E:{"4":0,"12":0.00632,"13":0.08852,"14":1.75147,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01265,"11.1":0.09485,"12.1":0.11381,"13.1":0.41732,"14.1":0.92948},B:{"17":0.00632,"18":0.11381,"80":0.00632,"81":0.00632,"83":0.00632,"84":0.01897,"85":0.01897,"86":0.01265,"87":0.01265,"88":0.01897,"89":0.10749,"90":3.60411,"91":0.22131,_:"12 13 14 15 16 79"},P:{"4":0.06324,"5.0-5.4":0.11152,"6.2-6.4":0.06083,"7.2-7.4":0.29401,"8.2":0.02028,"9.2":0.01054,"10.1":0.03162,"11.1-11.2":0.12649,"12.0":0.13703,"13.0":0.57974,"14.0":3.32033},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00325,"4.2-4.3":0.00894,"4.4":0,"4.4.3-4.4.4":0.05768},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02621,"10":0.00655,"11":0.32765,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.32725},Q:{"10.4":0},O:{"0":0.13605},H:{"0":0.37248},L:{"0":23.59973}}; +module.exports={C:{"52":0.04601,"55":0.00708,"56":0.00708,"59":0.00354,"60":0.00708,"62":0.00354,"68":0.00708,"72":0.01416,"73":0.09555,"74":0.00354,"78":0.09909,"79":0.00708,"81":0.00354,"83":0.01062,"84":0.0177,"85":0.02123,"86":0.02831,"87":0.00708,"88":0.05662,"89":2.88075,"90":0.69011,"91":0.00708,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 61 63 64 65 66 67 69 70 71 75 76 77 80 82 92 3.5 3.6"},D:{"38":0.00354,"49":0.19465,"57":0.00708,"61":0.19818,"64":0.03539,"66":0.01062,"69":0.00708,"71":0.00708,"72":0.00354,"74":0.00708,"75":0.09555,"76":0.00708,"77":0.00708,"78":0.00708,"79":0.05309,"80":0.02123,"81":0.01416,"83":0.03185,"84":0.03185,"85":0.01062,"86":0.02831,"87":0.10263,"88":0.07786,"89":0.11325,"90":0.32913,"91":17.11107,"92":2.15879,"93":0.01062,_:"4 5 6 7 8 9 10 11 12 13 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 58 59 60 62 63 65 67 68 70 73 94 95"},F:{"28":0.01062,"36":0.00354,"70":0.01062,"75":0.01062,"76":0.2265,"77":1.21388,_:"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 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.007,"8.1-8.4":0.0035,"9.0-9.2":0.01049,"9.3":0.00816,"10.0-10.2":0.0035,"10.3":0.01866,"11.0-11.2":0.00933,"11.3-11.4":0.03382,"12.0-12.1":0.02915,"12.2-12.4":0.09445,"13.0-13.1":0.02915,"13.2":0.01399,"13.3":0.14343,"13.4-13.7":0.50958,"14.0-14.4":2.70883,"14.5-14.7":7.71601},E:{"4":0,"8":0.00354,"12":0.01062,"13":0.02123,"14":0.33267,"15":0.02477,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00354,"11.1":0.02477,"12.1":0.03539,"13.1":0.15218,"14.1":1.10417},B:{"18":0.0177,"85":0.00354,"89":0.00708,"90":0.00708,"91":2.00307,"92":0.26189,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88"},P:{"4":0.01014,"5.0-5.4":0.04041,"6.2-6.4":0.06062,"7.2-7.4":0.40413,"8.2":0.03031,"9.2":0.02029,"10.1":0.07072,"11.1-11.2":0.05071,"12.0":0.31443,"13.0":0.92301,"14.0":7.10009},I:{"0":0,"3":0,"4":0,"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.0228},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10617,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":47.4871},S:{"2.5":0},R:{_:"0"},M:{"0":0.80763},Q:{"10.4":0},O:{"0":0.06461},H:{"0":0.76461}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js index a86c1f7efd9785..f94d73d3bd2fb7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js @@ -1 +1 @@ -module.exports={C:{"17":0.00515,"20":0.00172,"21":0.00172,"30":0.00343,"45":0.00172,"47":0.00172,"48":0.00343,"52":0.01029,"67":0.00172,"68":0.00172,"70":0.01201,"71":0.00515,"72":0.02916,"73":0.01201,"74":0.01201,"75":0.00686,"76":0.01201,"77":0.00515,"78":0.01715,"79":0.00686,"80":0.01372,"81":0.00172,"82":0.00343,"83":0.00172,"84":0.00515,"85":0.00686,"86":0.01372,"87":0.0566,"88":1.01528,"89":0.0223,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 69 90 91 3.5 3.6"},D:{"23":0.00686,"24":0.01029,"25":0.01372,"26":0.00343,"31":0.00515,"33":0.00515,"38":0.01201,"40":0.00172,"43":0.0223,"44":0.00515,"47":0.00515,"49":0.04974,"50":0.00686,"53":0.00343,"55":0.00515,"56":0.00343,"57":0.00172,"58":0.01544,"60":0.00172,"61":0.03087,"63":0.01887,"65":0.00686,"66":0.00172,"67":0.00343,"68":0.00172,"69":0.00858,"70":0.00515,"71":0.01029,"72":0.00686,"73":0.00858,"74":0.01372,"75":0.01029,"76":0.00858,"77":0.01544,"78":0.02744,"79":0.05145,"80":0.04802,"81":0.02744,"83":0.04288,"84":0.02058,"85":0.04288,"86":0.08061,"87":0.19894,"88":0.10976,"89":0.4116,"90":8.43094,"91":0.33614,"92":0.00686,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 27 28 29 30 32 34 35 36 37 39 41 42 45 46 48 51 52 54 59 62 64 93 94"},F:{"55":0.00172,"57":0.00515,"58":0.00686,"60":0.00515,"62":0.00686,"63":0.00686,"64":0.00858,"65":0.00515,"66":0.00515,"67":0.00515,"68":0.01201,"70":0.00515,"73":0.02744,"74":0.00686,"75":0.2967,"76":0.49049,_:"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 56 69 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01715},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00149,"5.0-5.1":0.00149,"6.0-6.1":0.0052,"7.0-7.1":0.05049,"8.1-8.4":0.02005,"9.0-9.2":0.01337,"9.3":0.11732,"10.0-10.2":0.01337,"10.3":0.12772,"11.0-11.2":0.03638,"11.3-11.4":0.09356,"12.0-12.1":0.09505,"12.2-12.4":0.42919,"13.0-13.1":0.0594,"13.2":0.02896,"13.3":0.1344,"13.4-13.7":0.35345,"14.0-14.4":4.26367,"14.5-14.6":1.0403},E:{"4":0,"11":0.00343,"12":0.01372,"13":0.04288,"14":0.32757,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.61912,"10.1":0.00172,"11.1":0.00515,"12.1":0.0223,"13.1":0.06689,"14.1":0.14063},B:{"12":0.00515,"13":0.00343,"14":0.00686,"15":0.01715,"16":0.00858,"17":0.00858,"18":0.04116,"79":0.00515,"80":0.00686,"81":0.00686,"83":0.00858,"84":0.01372,"85":0.01201,"87":0.00686,"88":0.00686,"89":0.04459,"90":0.78547,"91":0.04974,_:"86"},P:{"4":0.52518,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.72717,"8.2":0.0303,"9.2":0.28279,"10.1":0.14139,"11.1-11.2":0.69687,"12.0":0.36358,"13.0":0.95946,"14.0":2.1108},I:{"0":0,"3":0,"4":0.00206,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00413,"4.2-4.3":0.0191,"4.4":0,"4.4.3-4.4.4":0.13213},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00515,"9":0.00343,"10":0.00343,"11":0.07032,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.09114},Q:{"10.4":0},O:{"0":0.46396},H:{"0":4.19638},L:{"0":66.65868}}; +module.exports={C:{"4":0.01291,"5":0.00646,"15":0.0113,"17":0.01775,"30":0.00323,"34":0.00323,"39":0.00323,"43":0.00161,"47":0.00323,"52":0.02098,"56":0.00323,"66":0.00484,"68":0.00484,"69":0.00323,"72":0.00484,"78":0.0113,"82":0.00161,"84":0.00484,"86":0.00484,"87":0.05649,"88":0.03551,"89":0.44385,"90":0.27115,"91":0.00807,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 37 38 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 70 71 73 74 75 76 77 79 80 81 83 85 92 3.5 3.6"},D:{"11":0.00161,"23":0.01453,"24":0.01775,"25":0.00968,"26":0.00323,"31":0.00484,"33":0.0113,"40":0.00323,"42":0.00323,"43":0.0113,"45":0.00323,"47":0.00161,"49":0.02582,"50":0.00807,"51":0.00161,"52":0.00161,"53":0.00161,"55":0.00323,"56":0.00161,"57":0.00161,"58":0.00807,"60":0.00323,"61":0.00161,"63":0.00968,"65":0.0113,"66":0.00161,"67":0.00161,"68":0.00807,"69":0.00807,"70":0.00323,"71":0.00646,"72":0.00161,"73":0.00646,"74":0.00484,"75":0.00646,"76":0.0113,"77":0.00484,"78":0.02582,"79":0.0581,"80":0.03067,"81":0.01775,"83":0.03712,"84":0.01291,"85":0.0226,"86":0.04842,"87":0.15656,"88":0.0807,"89":0.0581,"90":0.14687,"91":6.66421,"92":1.69954,"93":0.00323,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 27 28 29 30 32 34 35 36 37 38 39 41 44 46 48 54 59 62 64 94 95"},F:{"54":0.00161,"64":0.00323,"65":0.00161,"73":0.00323,"76":0.04035,"77":0.66174,_:"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 66 67 68 69 70 71 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00078,"6.0-6.1":0.01321,"7.0-7.1":0.0272,"8.1-8.4":0.00544,"9.0-9.2":0.00311,"9.3":0.10726,"10.0-10.2":0.01088,"10.3":0.11192,"11.0-11.2":0.03031,"11.3-11.4":0.06296,"12.0-12.1":0.07306,"12.2-12.4":0.30856,"13.0-13.1":0.06062,"13.2":0.02643,"13.3":0.12125,"13.4-13.7":0.28602,"14.0-14.4":2.5936,"14.5-14.7":3.3786},E:{"4":0,"13":0.19852,"14":0.27277,"15":0.00807,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.02905,"10.1":0.00161,"11.1":0.00323,"12.1":0.05003,"13.1":0.12428,"14.1":0.33571},B:{"12":0.00323,"14":0.00484,"16":0.00484,"17":0.00807,"18":0.04519,"84":0.00807,"85":0.00323,"87":0.00323,"89":0.01775,"90":0.01614,"91":0.63269,"92":0.15979,_:"13 15 79 80 81 83 86 88"},P:{"4":0.41327,"5.0-5.4":0.03024,"6.2-6.4":0.06048,"7.2-7.4":0.67535,"8.2":0.02016,"9.2":0.2016,"10.1":0.06048,"11.1-11.2":0.44351,"12.0":0.17136,"13.0":0.36287,"14.0":1.9454},I:{"0":0,"3":0,"4":0.00126,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00632,"4.2-4.3":0.01707,"4.4":0,"4.4.3-4.4.4":0.13469},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00484,"9":0.00323,"10":0.00968,"11":0.49388,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":69.9139},S:{"2.5":0},R:{_:"0"},M:{"0":0.05871},Q:{"10.4":0},O:{"0":0.58709},H:{"0":3.32697}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js index 31bbf2421f8d98..c84e0d7611b1d9 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js @@ -1 +1 @@ -module.exports={C:{"2":0.46899,"15":0.43664,"18":0.42047,"21":0.4326,"23":0.42452,"25":0.84499,"30":0.40026,"50":0.00404,"51":0.42856,"52":0.07682,"55":0.00809,"65":0.01617,"67":0.01617,"71":0.00404,"72":0.00809,"75":0.01213,"76":0.00404,"78":0.06065,"79":0.01213,"80":0.00404,"81":0.00809,"82":0.00404,"83":0.00809,"84":0.05256,"85":0.01617,"86":0.02022,"87":0.05256,"88":1.49995,"89":0.02426,_:"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 53 54 56 57 58 59 60 61 62 63 64 66 68 69 70 73 74 77 90 91 3.5 3.6"},D:{"19":0.46899,"24":1.22099,"30":0.44069,"33":0.44877,"34":0.00404,"35":0.86925,"43":0.01213,"49":0.16576,"53":0.01213,"54":0.4043,"55":0.45686,"56":2.16705,"58":0.00404,"61":0.10108,"63":0.01617,"64":0.00404,"65":0.00809,"67":0.0283,"68":0.01617,"69":0.01213,"70":0.01213,"71":0.01213,"72":0.02426,"73":0.01213,"74":0.01617,"75":0.01213,"76":0.01213,"77":0.02022,"78":0.01617,"79":0.0566,"80":0.02426,"81":0.0283,"83":0.06873,"84":0.0566,"85":0.0566,"86":0.09703,"87":0.45686,"88":0.16981,"89":0.54581,"90":14.76908,"91":0.75604,"92":0.01213,_:"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 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 57 59 60 62 66 93 94"},F:{"36":0.00404,"43":0.42047,"73":0.07682,"74":0.00809,"75":0.49729,"76":0.64688,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.4043},G:{"8":0,"3.2":0,"4.0-4.1":0.00129,"4.2-4.3":0,"5.0-5.1":0.00775,"6.0-6.1":8.25478,"7.0-7.1":0.01809,"8.1-8.4":0.00388,"9.0-9.2":0,"9.3":0.05296,"10.0-10.2":1.08901,"10.3":0.05555,"11.0-11.2":0.031,"11.3-11.4":0.03488,"12.0-12.1":0.031,"12.2-12.4":0.16019,"13.0-13.1":0.02067,"13.2":0.0155,"13.3":0.0788,"13.4-13.7":0.25191,"14.0-14.4":2.17931,"14.5-14.6":0.37205},E:{"4":0,"5":0.39217,"11":0.00404,"12":0.00809,"13":0.06469,"14":0.28301,_:"0 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.18194,"10.1":0.00404,"11.1":0.01213,"12.1":0.02426,"13.1":0.10108,"14.1":0.07682},B:{"16":0.00404,"17":0.00404,"18":0.03234,"84":0.00404,"85":0.00404,"88":0.00404,"89":0.0283,"90":1.14013,"91":0.08895,_:"12 13 14 15 79 80 81 83 86 87"},P:{"4":0.39316,"5.0-5.4":0.09157,"6.2-6.4":0.02125,"7.2-7.4":0.21252,"8.2":0.02021,"9.2":0.10626,"10.1":0.05313,"11.1-11.2":0.23377,"12.0":0.14876,"13.0":0.64819,"14.0":2.11457},I:{"0":0,"3":0,"4":0.00236,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01182,"4.2-4.3":0.33162,"4.4":0,"4.4.3-4.4.4":0.60732},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.43088,"9":0.87395,"10":0.86176,"11":0.08536,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.10723},Q:{"10.4":0},O:{"0":0.09531},H:{"0":0.27635},L:{"0":43.21155}}; +module.exports={C:{"2":0.55162,"15":0.52728,"18":0.54756,"21":0.53539,"23":0.52728,"25":1.05862,"30":0.51917,"47":0.00406,"51":0.53945,"52":0.06084,"55":0.00811,"65":0.01217,"72":0.00406,"78":0.04462,"79":0.00406,"80":0.00406,"81":0.00406,"83":0.00406,"84":0.0365,"85":0.00406,"86":0.00811,"87":0.00811,"88":0.04056,"89":0.85582,"90":0.40966,"91":0.02028,_:"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 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 82 92 3.5 3.6"},D:{"19":0.53539,"24":1.58184,"30":0.51917,"33":0.5435,"35":1.08701,"38":0.00406,"43":0.00811,"49":0.12168,"53":0.00811,"54":0.55162,"55":0.51917,"56":2.69318,"58":0.00406,"61":0.0649,"63":0.01217,"65":0.00406,"67":0.01622,"68":0.00811,"69":0.00811,"70":0.01217,"71":0.00406,"72":0.02839,"73":0.00406,"74":0.00811,"75":0.02434,"76":0.00406,"77":0.00811,"78":0.00811,"79":0.06084,"80":0.01622,"81":0.02434,"83":0.06084,"84":0.04056,"85":0.04056,"86":0.08112,"87":0.49078,"88":0.07706,"89":0.12168,"90":0.24742,"91":10.87414,"92":2.25514,"93":0.01217,_:"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 59 60 62 64 66 94 95"},F:{"43":0.54756,"70":0.00406,"75":0.00406,"76":0.19063,"77":0.88826,_:"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 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.49889},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00492,"6.0-6.1":10.41279,"7.0-7.1":0.01806,"8.1-8.4":0.00164,"9.0-9.2":0,"9.3":0.07059,"10.0-10.2":1.48238,"10.3":0.07551,"11.0-11.2":0.12805,"11.3-11.4":0.06566,"12.0-12.1":0.09521,"12.2-12.4":0.46786,"13.0-13.1":0.01642,"13.2":0.01149,"13.3":0.07387,"13.4-13.7":0.22162,"14.0-14.4":0.84708,"14.5-14.7":2.16858},E:{"4":0,"5":0.53134,"12":0.00406,"13":0.11357,"14":0.11762,_:"0 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1","5.1":0.01622,"10.1":0.00406,"11.1":0.01217,"12.1":0.04462,"13.1":0.09734,"14.1":0.24336},B:{"16":0.00406,"17":0.00406,"18":0.02434,"84":0.00811,"89":0.01217,"90":0.00811,"91":0.93694,"92":0.21091,_:"12 13 14 15 79 80 81 83 85 86 87 88"},P:{"4":0.3767,"5.0-5.4":0.27074,"6.2-6.4":0.01076,"7.2-7.4":0.17221,"8.2":0.07177,"9.2":0.06458,"10.1":0.01076,"11.1-11.2":0.21526,"12.0":0.09687,"13.0":0.30136,"14.0":2.16335},I:{"0":0,"3":0,"4":0.00152,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01982,"4.2-4.3":0.41857,"4.4":0,"4.4.3-4.4.4":0.81427},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.55972,"9":1.08676,"10":1.0745,"11":0.08171,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":39.7405},S:{"2.5":0},R:{_:"0"},M:{"0":0.10105},Q:{"10.4":0.00594},O:{"0":0.0951},H:{"0":0.25886}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js index 50fe0b1f59c268..550485b82d0653 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js @@ -1 +1 @@ -module.exports={C:{"48":0.20784,"67":0.00693,"68":0.02078,"72":0.00693,"75":0.0485,"78":0.10392,"79":0.00693,"84":0.44339,"85":0.00693,"86":0.03464,"87":0.08314,"88":3.38086,"89":0.01386,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 69 70 71 73 74 76 77 80 81 82 83 90 91 3.5 3.6"},D:{"49":2.21696,"65":0.02771,"70":0.01386,"71":0.06235,"72":0.19398,"73":0.10392,"74":0.01386,"75":0.01386,"76":0.0485,"77":0.40182,"78":0.06235,"79":0.08314,"80":0.02078,"81":0.16627,"83":0.03464,"84":0.01386,"85":0.18013,"86":0.11085,"87":1.46181,"88":0.6443,"89":5.11286,"90":29.78347,"91":0.73437,"92":0.08314,"93":0.00693,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 94"},F:{"65":0.00693,"73":0.05542,"74":0.0485,"75":0.25634,"76":0.36718,_:"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 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.06826,"6.0-6.1":0.00553,"7.0-7.1":0.00369,"8.1-8.4":0,"9.0-9.2":0.01845,"9.3":0.3487,"10.0-10.2":0,"10.3":0.09225,"11.0-11.2":0.02952,"11.3-11.4":0.01845,"12.0-12.1":0.06088,"12.2-12.4":0.21402,"13.0-13.1":0.05719,"13.2":0,"13.3":0.22693,"13.4-13.7":0.77857,"14.0-14.4":13.82797,"14.5-14.6":2.29144},E:{"4":0,"12":0.03464,"13":0.4711,"14":8.04341,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00693,"10.1":0.09699,"11.1":0.70666,"12.1":0.2979,"13.1":1.10848,"14.1":4.64869},B:{"18":0.15242,"87":0.03464,"89":0.09699,"90":3.99746,"91":0.20091,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 88"},P:{"4":0.06575,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.13373,"8.2":0.01114,"9.2":0.03122,"10.1":0.09862,"11.1-11.2":0.17692,"12.0":0.3616,"13.0":0.2849,"14.0":1.64366},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00218,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0101},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.83136,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.18125},Q:{"10.4":0},O:{"0":0},H:{"0":0.08725},L:{"0":10.93634}}; +module.exports={C:{"48":0.28024,"68":0.00684,"78":0.22556,"81":0.00684,"84":0.36226,"85":0.06835,"86":0.00684,"88":0.06835,"89":3.29447,"90":1.05259,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 69 70 71 72 73 74 75 76 77 79 80 82 83 87 91 92 3.5 3.6"},D:{"49":0.08886,"61":1.72926,"63":0.12987,"65":0.03418,"70":0.03418,"71":0.06152,"72":0.06152,"73":0.1162,"74":0.04101,"76":0.03418,"77":0.70401,"78":0.01367,"79":0.01367,"80":0.04101,"81":0.14354,"85":0.01367,"86":0.15037,"87":0.67667,"88":0.05468,"89":0.55364,"90":1.16195,"91":28.12603,"92":4.84602,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 62 64 66 67 68 69 75 83 84 93 94 95"},F:{"75":0.00684,"76":0.12987,"77":0.84754,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00205,"9.0-9.2":0,"9.3":0.05732,"10.0-10.2":0.01433,"10.3":0.05323,"11.0-11.2":0.01638,"11.3-11.4":0.07575,"12.0-12.1":0.03071,"12.2-12.4":0.25385,"13.0-13.1":0.0389,"13.2":0.01638,"13.3":0.08394,"13.4-13.7":1.28156,"14.0-14.4":3.10767,"14.5-14.7":14.9201},E:{"4":0,"13":0.03418,"14":2.26239,"15":0.03418,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00684,"10.1":0.01367,"11.1":0.22556,"12.1":0.21189,"13.1":0.95007,"14.1":12.20048},B:{"16":0.00684,"17":0.02051,"18":0.04785,"87":0.05468,"89":0.02734,"90":0.04101,"91":3.63622,"92":0.84071,_:"12 13 14 15 79 80 81 83 84 85 86 88"},P:{"4":0.21835,"5.0-5.4":0.01036,"6.2-6.4":0.04058,"7.2-7.4":0.01036,"8.2":0.07177,"9.2":0.06216,"10.1":0.02196,"11.1-11.2":0.15284,"12.0":0.41486,"13.0":0.07642,"14.0":1.83411},I:{"0":0,"3":0,"4":0.00082,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00328,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01805},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.15512,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":9.81914},S:{"2.5":0},R:{_:"0"},M:{"0":0.10128},Q:{"10.4":0},O:{"0":0},H:{"0":0.06892}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js index e6fc2092b5ef3c..5893a27edeea9e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js @@ -1 +1 @@ -module.exports={C:{"17":0.00526,"52":0.09988,"59":0.0736,"60":0.0368,"63":0.00526,"64":0.01051,"68":0.00526,"72":0.02103,"75":0.00526,"77":0.00526,"78":0.12091,"79":0.03154,"80":0.01051,"82":0.72021,"83":0.02103,"84":0.03154,"85":0.02103,"86":0.04206,"87":0.04206,"88":2.15011,"89":0.01577,_:"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 48 49 50 51 53 54 55 56 57 58 61 62 65 66 67 69 70 71 73 74 76 81 90 91 3.5","3.6":0.00526},D:{"23":0.01051,"25":0.00526,"33":0.05257,"34":0.00526,"41":0.01051,"46":0.00526,"49":0.57301,"51":0.01577,"53":0.01577,"59":0.07886,"62":0.01051,"63":0.01051,"65":0.61507,"66":0.00526,"67":0.02629,"68":0.00526,"69":0.03154,"70":0.01577,"71":0.0368,"72":0.01051,"73":0.04206,"74":0.0368,"75":0.01577,"76":0.02629,"77":0.01577,"78":0.02629,"79":0.05783,"80":0.0736,"81":0.0368,"83":0.08411,"84":0.08937,"85":0.06308,"86":0.24182,"87":0.40479,"88":0.31542,"89":1.06191,"90":33.91816,"91":0.72021,"92":0.01051,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 26 27 28 29 30 31 32 35 36 37 38 39 40 42 43 44 45 47 48 50 52 54 55 56 57 58 60 61 64 93 94"},F:{"36":0.00526,"58":0.01051,"70":0.01051,"71":0.01577,"72":0.00526,"73":0.26285,"74":0.02103,"75":1.25117,"76":1.47196,_:"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 60 62 63 64 65 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00088,"6.0-6.1":0.00438,"7.0-7.1":0.00789,"8.1-8.4":0.00175,"9.0-9.2":0.00263,"9.3":0.04645,"10.0-10.2":0.00877,"10.3":0.06574,"11.0-11.2":0.03594,"11.3-11.4":0.02454,"12.0-12.1":0.03594,"12.2-12.4":0.16391,"13.0-13.1":0.03769,"13.2":0.01227,"13.3":0.08151,"13.4-13.7":0.38303,"14.0-14.4":5.90499,"14.5-14.6":1.59874},E:{"4":0,"11":0.01051,"13":0.04206,"14":0.96203,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.28388,"11.1":0.01577,"12.1":0.05257,"13.1":0.21554,"14.1":0.33645},B:{"17":0.01051,"18":0.05257,"84":0.01051,"88":0.02629,"89":0.03154,"90":1.19334,"91":0.04206,_:"12 13 14 15 16 79 80 81 83 85 86 87"},P:{"4":0.19773,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.13373,"8.2":0.01114,"9.2":0.03122,"10.1":0.01041,"11.1-11.2":0.17692,"12.0":0.17692,"13.0":0.27058,"14.0":1.86286},I:{"0":0,"3":0,"4":0.00095,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00126,"4.2-4.3":0.00316,"4.4":0,"4.4.3-4.4.4":0.02308},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01051,"11":0.33119,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.0901},Q:{"10.4":0},O:{"0":0.22762},H:{"0":0.27385},L:{"0":36.83357}}; +module.exports={C:{"17":0.0111,"28":0.0111,"33":0.0111,"36":0.00555,"38":0.00555,"43":0.00555,"44":0.00555,"45":0.0111,"47":0.0111,"48":0.0111,"52":0.08325,"55":0.02775,"56":0.00555,"59":0.0333,"60":0.0111,"65":0.00555,"68":0.0222,"70":0.00555,"72":0.01665,"74":0.00555,"77":0.0111,"78":0.23865,"79":0.0888,"80":0.0222,"81":0.02775,"82":0.7326,"84":0.0222,"85":0.0222,"86":0.00555,"87":0.0111,"88":0.09435,"89":1.51515,"90":0.81585,"91":0.0111,_:"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 29 30 31 32 34 35 37 39 40 41 42 46 49 50 51 53 54 57 58 61 62 63 64 66 67 69 71 73 75 76 83 92","3.5":0.0111,"3.6":0.0222},D:{"25":0.0111,"27":0.00555,"33":0.01665,"38":0.01665,"40":0.00555,"41":0.01665,"48":0.02775,"49":0.64935,"53":0.0222,"54":0.0111,"59":0.11655,"61":0.00555,"63":0.0111,"65":0.2775,"67":0.01665,"68":0.0111,"69":0.02775,"70":0.0111,"71":0.0333,"72":0.00555,"73":0.01665,"74":0.01665,"75":0.0666,"76":0.0222,"77":0.00555,"78":0.02775,"79":0.10545,"80":0.06105,"81":0.0777,"83":0.1221,"84":0.1221,"85":0.10545,"86":0.21645,"87":1.45965,"88":0.19425,"89":0.29415,"90":0.64935,"91":28.84335,"92":6.4158,"93":0.01665,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 28 29 30 31 32 34 35 36 37 39 42 43 44 45 46 47 50 51 52 55 56 57 58 60 62 64 66 94 95"},F:{"34":0.0111,"35":0.01665,"36":0.0111,"74":0.0111,"75":0.01665,"76":0.69375,"77":2.5308,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00159,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00319,"6.0-6.1":0.00478,"7.0-7.1":0.00558,"8.1-8.4":0.00319,"9.0-9.2":0.00797,"9.3":0.04624,"10.0-10.2":0.00877,"10.3":0.05103,"11.0-11.2":0.02711,"11.3-11.4":0.02791,"12.0-12.1":0.03269,"12.2-12.4":0.14431,"13.0-13.1":0.02551,"13.2":0.01355,"13.3":0.08372,"13.4-13.7":0.32131,"14.0-14.4":1.38811,"14.5-14.7":5.46632},E:{"4":0,"12":0.00555,"13":0.02775,"14":0.6327,"15":0.0111,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.1665,"11.1":0.01665,"12.1":0.0444,"13.1":0.20535,"14.1":0.94905},B:{"18":0.06105,"84":0.00555,"85":0.0111,"87":0.01665,"89":0.01665,"90":0.01665,"91":0.98235,"92":0.333,_:"12 13 14 15 16 17 79 80 81 83 86 88"},P:{"4":0.18649,"5.0-5.4":0.01036,"6.2-6.4":0.04058,"7.2-7.4":0.01036,"8.2":0.07177,"9.2":0.06216,"10.1":0.02196,"11.1-11.2":0.15541,"12.0":0.04144,"13.0":0.15541,"14.0":2.06172},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00133,"4.2-4.3":0.00265,"4.4":0,"4.4.3-4.4.4":0.02717},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02909,"9":0.01745,"10":0.01745,"11":0.41886,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":35.0582},S:{"2.5":0},R:{_:"0"},M:{"0":0.1335},Q:{"10.4":0},O:{"0":0.26255},H:{"0":0.32019}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js index b824626b65d2d4..c900b0972f24e7 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js @@ -1 +1 @@ -module.exports={C:{"31":0.01314,"52":0.83768,"56":0.00329,"64":0.00329,"66":0.04271,"68":0.00329,"69":0.00657,"70":0.023,"72":0.01971,"73":0.00329,"74":0.00329,"76":0.00986,"77":0.00986,"78":0.03942,"79":0.00329,"81":0.00329,"83":0.00986,"84":0.00657,"85":0.01314,"86":0.03614,"87":0.03614,"88":2.70356,"89":0.05585,_:"2 3 4 5 6 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 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 65 67 71 75 80 82 90 91 3.5 3.6"},D:{"22":0.00986,"38":0.02957,"43":0.00657,"47":0.00329,"49":0.29565,"53":0.07227,"56":0.00329,"57":0.00657,"62":0.01643,"63":0.00986,"65":0.03285,"66":0.00986,"67":0.01643,"68":0.01314,"69":0.00329,"70":0.00986,"71":0.00657,"73":0.00657,"74":0.00986,"75":0.00986,"76":0.01314,"77":0.01314,"78":0.01314,"79":0.06899,"80":0.03942,"81":0.03942,"83":0.023,"84":0.31208,"85":0.05913,"86":0.05256,"87":0.15111,"88":0.17082,"89":0.81468,"90":18.65552,"91":0.86067,"92":0.00657,_:"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 48 50 51 52 54 55 58 59 60 61 64 72 93 94"},F:{"36":0.01643,"40":0.00657,"46":0.03285,"67":0.00657,"68":1.63265,"69":0.00329,"73":0.04271,"74":0.00657,"75":0.3942,"76":0.73256,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02954,"8.1-8.4":0.00448,"9.0-9.2":0,"9.3":0.16205,"10.0-10.2":0.01074,"10.3":0.17279,"11.0-11.2":0.02507,"11.3-11.4":0.03492,"12.0-12.1":0.0376,"12.2-12.4":0.19786,"13.0-13.1":0.04208,"13.2":0.00806,"13.3":0.11639,"13.4-13.7":0.42257,"14.0-14.4":6.32251,"14.5-14.6":0.77353},E:{"4":0,"12":0.02628,"13":0.01314,"14":0.47304,_:"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.01971,"12.1":0.01971,"13.1":0.0887,"14.1":0.18396},B:{"15":0.00657,"17":0.00329,"18":0.01314,"84":0.01643,"87":0.00657,"88":0.00329,"89":0.00986,"90":0.68328,"91":0.05585,_:"12 13 14 16 79 80 81 83 85 86"},P:{"4":0.20215,"5.0-5.4":0.09157,"6.2-6.4":0.01011,"7.2-7.4":0.10107,"8.2":0.02021,"9.2":0.08086,"10.1":0.11118,"11.1-11.2":0.29312,"12.0":0.10107,"13.0":0.60645,"14.0":4.29568},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00137,"4.2-4.3":0.00342,"4.4":0,"4.4.3-4.4.4":0.04893},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2201,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.16116},Q:{"10.4":0},O:{"0":0.01343},H:{"0":0.31787},L:{"0":54.25984}}; +module.exports={C:{"31":0.01043,"51":0.01043,"52":0.57354,"66":0.0139,"67":0.00348,"72":0.0139,"76":0.00695,"78":0.0139,"79":0.00348,"83":0.00695,"84":0.04519,"86":0.02433,"87":0.01043,"88":0.0869,"89":1.61634,"90":0.81686,"91":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 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 68 69 70 71 73 74 75 77 80 81 82 85 92 3.5 3.6"},D:{"22":0.00348,"26":0.00695,"34":0.00348,"38":0.02433,"41":0.00348,"48":0.00348,"49":0.27113,"53":0.02086,"58":0.00695,"62":0.00695,"63":0.00348,"65":0.01738,"66":0.02433,"67":0.01738,"68":0.0139,"69":0.01043,"70":0.0139,"71":0.00348,"74":0.00695,"75":0.00348,"76":0.01738,"77":0.00695,"78":0.00695,"79":0.13209,"80":0.02781,"81":0.04519,"83":0.05562,"84":0.25027,"85":0.02433,"86":0.05909,"87":0.06604,"88":0.12166,"89":0.13556,"90":0.31284,"91":14.97461,"92":3.62547,_:"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 42 43 44 45 46 47 50 51 52 54 55 56 57 59 60 61 64 72 73 93 94 95"},F:{"28":0.00695,"31":0.00695,"36":0.01043,"40":0.01043,"42":0.00348,"46":0.01738,"51":0.00348,"68":4.43885,"71":0.01043,"75":0.0139,"76":0.1599,"77":0.98371,_:"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 43 44 45 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00336,"7.0-7.1":0.06598,"8.1-8.4":0.00447,"9.0-9.2":0.00336,"9.3":0.09171,"10.0-10.2":0.01901,"10.3":0.1219,"11.0-11.2":0.04026,"11.3-11.4":0.05704,"12.0-12.1":0.04474,"12.2-12.4":0.14539,"13.0-13.1":0.03131,"13.2":0.0123,"13.3":0.10625,"13.4-13.7":0.39031,"14.0-14.4":1.7827,"14.5-14.7":7.69446},E:{"4":0,"12":0.0139,"13":0.03128,"14":0.23637,"15":0.00348,_:"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.03128,"13.1":0.09038,"14.1":0.72648},B:{"16":0.00695,"17":0.00348,"18":0.11471,"85":0.00348,"89":0.01043,"90":0.00695,"91":0.73344,"92":0.19466,_:"12 13 14 15 79 80 81 83 84 86 87 88"},P:{"4":0.1844,"5.0-5.4":0.06097,"6.2-6.4":0.03049,"7.2-7.4":0.06147,"8.2":0.07177,"9.2":0.05122,"10.1":0.12293,"11.1-11.2":0.26635,"12.0":0.0922,"13.0":0.29709,"14.0":3.95434},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.00129,"4.4":0,"4.4.3-4.4.4":0.02415},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00442,"11":0.19023,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":51.42123},S:{"2.5":0},R:{_:"0"},M:{"0":0.25444},Q:{"10.4":0},O:{"0":0.01957},H:{"0":0.37677}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js index e281e16df0d61d..c41a539a902fc2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js @@ -1 +1 @@ -module.exports={C:{"30":0.01246,"33":0.00623,"41":0.01246,"43":0.01246,"44":0.01869,"45":0.00623,"46":0.01246,"47":0.04362,"48":0.06854,"50":0.01246,"52":0.1807,"56":0.03739,"57":0.01869,"59":0.01246,"60":0.02492,"61":0.00623,"62":0.00623,"64":0.00623,"65":0.01246,"66":0.03739,"67":0.02492,"68":0.04362,"70":0.01246,"71":0.0997,"72":0.081,"73":0.01246,"74":0.01246,"75":0.02492,"77":0.01246,"78":0.23678,"79":0.01246,"80":0.07477,"81":0.03116,"82":0.03116,"83":0.08723,"84":0.0997,"85":0.0997,"86":0.22432,"87":0.28663,"88":8.1003,"89":0.06854,_:"2 3 4 5 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 34 35 36 37 38 39 40 42 49 51 53 54 55 58 63 69 76 90 91 3.5 3.6"},D:{"11":0.01246,"25":0.29909,"43":0.06231,"49":0.19939,"51":0.00623,"54":0.00623,"55":0.01246,"56":0.02492,"57":0.01869,"58":0.04362,"63":0.03116,"64":0.02492,"65":0.25547,"66":0.00623,"67":0.01246,"69":0.01869,"70":0.03739,"71":0.07477,"72":0.01869,"73":0.00623,"74":0.03116,"75":0.48602,"76":0.04362,"77":0.0997,"78":0.02492,"79":0.15578,"80":0.05608,"81":0.16201,"83":0.2804,"84":0.11216,"85":0.11216,"86":0.17447,"87":1.02188,"88":0.89726,"89":1.60137,"90":31.08023,"91":1.40821,"92":0.03116,"93":0.02492,_:"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 40 41 42 44 45 46 47 48 50 52 53 59 60 61 62 68 94"},F:{"53":0.04985,"62":0.02492,"68":0.01869,"73":0.06231,"74":0.03116,"75":0.6231,"76":1.54529,_:"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 58 60 63 64 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00121,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00725,"6.0-6.1":0.00091,"7.0-7.1":0.08975,"8.1-8.4":0,"9.0-9.2":0.0006,"9.3":0.09126,"10.0-10.2":0.00846,"10.3":0.06799,"11.0-11.2":0.02417,"11.3-11.4":0.01269,"12.0-12.1":0.0284,"12.2-12.4":0.08914,"13.0-13.1":0.00816,"13.2":0.02236,"13.3":0.04835,"13.4-13.7":0.09942,"14.0-14.4":1.46343,"14.5-14.6":0.6539},E:{"4":0,"6":0.01869,"10":0.00623,"11":0.00623,"13":0.03739,"14":0.28663,_:"0 5 7 8 9 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01246,"11.1":0.01869,"12.1":0.06854,"13.1":0.17447,"14.1":0.11839},B:{"12":0.01246,"13":0.01869,"14":0.01869,"15":0.01869,"16":0.03116,"17":0.03116,"18":0.18693,"84":0.01869,"85":0.01869,"86":0.04985,"87":0.01246,"88":0.04362,"89":0.081,"90":2.70425,"91":0.17447,_:"79 80 81 83"},P:{"4":0.27338,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.03154,"8.2":0.0303,"9.2":0.03092,"10.1":0.02062,"11.1-11.2":0.05257,"12.0":0.0736,"13.0":0.45213,"14.0":0.96735},I:{"0":0,"3":0,"4":0.00126,"2.1":0,"2.2":0,"2.3":0.00054,"4.1":0.00596,"4.2-4.3":0.01589,"4.4":0,"4.4.3-4.4.4":0.12711},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00714,"9":0.00714,"11":0.27857,_:"6 7 10 5.5"},J:{"7":0,"10":0.02261},N:{"10":0.02735,"11":0.01885},S:{"2.5":0.11684},R:{_:"0"},M:{"0":0.28268},Q:{"10.4":0.03392},O:{"0":1.7752},H:{"0":5.58787},L:{"0":30.24555}}; +module.exports={C:{"28":0.00614,"30":0.01229,"33":0.01229,"35":0.03072,"39":0.043,"40":0.01229,"41":0.01229,"43":0.01229,"44":0.01229,"45":0.11057,"47":0.01843,"48":0.07986,"51":0.01229,"52":0.25801,"56":0.01843,"57":0.03072,"58":0.02457,"59":0.01843,"60":0.01229,"61":0.01229,"62":0.00614,"64":0.00614,"65":0.05529,"66":0.01843,"67":0.01843,"68":0.01843,"70":0.01843,"71":0.17815,"72":0.11672,"73":0.01843,"75":0.00614,"76":0.01843,"77":0.01229,"78":0.23343,"79":0.01843,"80":0.00614,"81":0.03072,"82":0.01229,"83":0.04914,"84":0.06757,"85":0.04914,"86":0.07986,"87":0.09829,"88":0.47301,"89":5.40584,"90":2.57392,"91":0.043,_:"2 3 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 31 32 34 36 37 38 42 46 49 50 53 54 55 63 69 74 92 3.5 3.6"},D:{"11":0.02457,"31":0.00614,"40":0.00614,"42":0.043,"43":0.01843,"49":0.56516,"57":0.01229,"58":0.11057,"60":0.01229,"61":0.01843,"63":0.04914,"64":0.01843,"65":0.03686,"66":0.00614,"67":0.01229,"68":0.01229,"69":0.01843,"70":0.01843,"71":0.03686,"72":0.01843,"73":0.03686,"74":0.14129,"75":0.01843,"76":0.03686,"77":0.04914,"78":0.01843,"79":0.06143,"80":0.04914,"81":0.23958,"83":0.04914,"84":0.03686,"85":0.086,"86":0.11057,"87":0.65116,"88":0.22115,"89":0.36858,"90":0.80473,"91":27.36707,"92":6.19829,"93":0.01843,_:"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 41 44 45 46 47 48 50 51 52 53 54 55 56 59 62 94 95"},F:{"36":0.01229,"53":0.01843,"57":0.01843,"62":0.01229,"65":0.00614,"69":0.01229,"74":0.01229,"75":0.01229,"76":0.12286,"77":2.48177,_:"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 54 55 56 58 60 63 64 66 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0.00338,"6.0-6.1":0.00197,"7.0-7.1":0.25541,"8.1-8.4":0.00113,"9.0-9.2":0.00253,"9.3":0.04083,"10.0-10.2":0.02168,"10.3":0.03126,"11.0-11.2":0.02844,"11.3-11.4":0.00788,"12.0-12.1":0.0383,"12.2-12.4":0.06787,"13.0-13.1":0.02084,"13.2":0.00225,"13.3":0.02534,"13.4-13.7":0.08476,"14.0-14.4":0.6153,"14.5-14.7":1.33734},E:{"4":0,"6":0.01229,"13":0.03072,"14":0.21501,_:"0 5 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01229,"12.1":0.03686,"13.1":0.11672,"14.1":0.30101},B:{"13":0.00614,"14":0.01229,"15":0.01843,"16":0.02457,"17":0.02457,"18":0.11057,"84":0.06143,"85":0.03686,"86":0.01229,"88":0.01843,"89":0.043,"90":0.05529,"91":2.29748,"92":0.52216,_:"12 79 80 81 83 87"},P:{"4":0.06599,"5.0-5.4":0.02078,"6.2-6.4":0.02106,"7.2-7.4":0.07699,"8.2":0.01053,"9.2":0.011,"10.1":0.05499,"11.1-11.2":0.06599,"12.0":0.03299,"13.0":0.29695,"14.0":0.65988},I:{"0":0,"3":0,"4":0.00173,"2.1":0,"2.2":0,"2.3":0.00062,"4.1":0.00641,"4.2-4.3":0.01702,"4.4":0,"4.4.3-4.4.4":0.06291},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01424,"11":0.29905,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01157},N:{"11":0.01864,_:"10"},L:{"0":32.08992},S:{"2.5":0.16581},R:{_:"0"},M:{"0":0.29691},Q:{"10.4":0.01157},O:{"0":1.87016},H:{"0":5.50877}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js index 05472faa19abe8..56203569a8e86e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js @@ -1 +1 @@ -module.exports={C:{"63":0.03693,"68":0.01055,"78":0.3746,"86":0.02638,"88":3.79344,"89":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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 90 91 3.5 3.6"},D:{"36":0.02638,"73":0.96023,"76":0.04221,"80":0.08969,"81":0.10552,"86":0.01055,"87":0.06331,"88":0.25852,"89":1.71998,"90":32.90114,"91":1.12379,"92":0.01583,_:"4 5 6 7 8 9 10 11 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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 77 78 79 83 84 85 93 94"},F:{"70":0.01055,"76":0.02638,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.10867,"10.0-10.2":0,"10.3":0.12657,"11.0-11.2":0,"11.3-11.4":0.0358,"12.0-12.1":0.06265,"12.2-12.4":0.16237,"13.0-13.1":0.00895,"13.2":0.00895,"13.3":0.23525,"13.4-13.7":0.56894,"14.0-14.4":9.93925,"14.5-14.6":1.02026},E:{"4":0,"11":0.01055,"13":0.1319,"14":0.62257,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01055,"11.1":0.02638,"12.1":0.01583,"13.1":0.16883,"14.1":1.16072},B:{"17":0.07914,"18":0.08969,"89":0.04221,"90":1.99433,"91":0.26908,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88"},P:{"4":0.02139,"5.0-5.4":0.01022,"6.2-6.4":0.02044,"7.2-7.4":0.02139,"8.2":0.05372,"9.2":0.08557,"10.1":0.01074,"11.1-11.2":0.03209,"12.0":0.04298,"13.0":0.08557,"14.0":0.6846},I:{"0":0,"3":0,"4":0.00046,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00073,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00826},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.27963,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.08503},Q:{"10.4":0},O:{"0":0.10865},H:{"0":0.00894},L:{"0":39.56965}}; +module.exports={C:{"68":0.00515,"78":0.02058,"89":1.65187,"90":0.42197,"91":0.00515,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 92 3.5 3.6"},D:{"36":0.00515,"41":0.00515,"65":0.01544,"69":0.02058,"73":0.31391,"74":0.02058,"77":0.01544,"80":0.00515,"83":0.00515,"84":0.71529,"88":0.06175,"89":0.04117,"90":0.24186,"91":32.21396,"92":5.5371,_:"4 5 6 7 8 9 10 11 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 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 70 71 72 75 76 78 79 81 85 86 87 93 94 95"},F:{"76":0.00515,"77":0.0669,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.04601,"10.0-10.2":0.00719,"10.3":1.62319,"11.0-11.2":0.0992,"11.3-11.4":0.00719,"12.0-12.1":0.22285,"12.2-12.4":0.36662,"13.0-13.1":0.02013,"13.2":0.04601,"13.3":0.02588,"13.4-13.7":0.785,"14.0-14.4":4.67835,"14.5-14.7":6.08589},E:{"4":0,"13":0.09263,"14":1.88858,_:"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.02058,"13.1":0.08234,"14.1":0.59694},B:{"13":0.00515,"14":0.00515,"17":0.03602,"18":0.05661,"90":0.02058,"91":2.87147,"92":0.49916,_:"12 15 16 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.1922,"5.0-5.4":0.03248,"6.2-6.4":0.0304,"7.2-7.4":0.05414,"8.2":0.0304,"9.2":0.02166,"10.1":0.01068,"11.1-11.2":0.02166,"12.0":0.02136,"13.0":0.14949,"14.0":1.70002},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.01456},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02422,"9":0.03027,"11":0.04843,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":35.04922},S:{"2.5":0},R:{_:"0"},M:{"0":0.56306},Q:{"10.4":0},O:{"0":0.6019},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js index a544cb08634851..8c1c4db1955812 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js @@ -1 +1 @@ -module.exports={C:{"40":0.00795,"47":0.00398,"49":0.0159,"51":0.00795,"52":0.17888,"54":0.0159,"56":0.0159,"60":0.00398,"62":0.00398,"65":0.00398,"68":0.01193,"71":0.00795,"72":0.00795,"77":0.01988,"78":0.0795,"79":0.02385,"80":0.01988,"81":0.0477,"82":0.01193,"83":0.02385,"84":0.0318,"85":0.01988,"86":0.0159,"87":0.0795,"88":2.75865,"89":0.02783,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 48 50 53 55 57 58 59 61 63 64 66 67 69 70 73 74 75 76 90 91 3.5","3.6":0.00795},D:{"5":0.00398,"22":0.00795,"34":0.01193,"37":0.00398,"38":0.0159,"41":0.00398,"47":0.02783,"48":0.0159,"49":0.47303,"53":0.0636,"56":0.00398,"58":0.01193,"61":0.00398,"62":0.01988,"63":0.0159,"65":0.00795,"68":0.01988,"69":0.01988,"70":0.00795,"71":0.0159,"72":0.0636,"73":0.00795,"74":0.00795,"75":0.0159,"76":0.0159,"77":0.0159,"78":0.02783,"79":0.05963,"80":0.0636,"81":0.0477,"83":0.19478,"84":0.23453,"85":0.1749,"86":0.37763,"87":0.30608,"88":0.21465,"89":0.7473,"90":25.38435,"91":1.07325,"92":0.00398,_:"4 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 39 40 42 43 44 45 46 50 51 52 54 55 57 59 60 64 66 67 93 94"},F:{"36":0.00795,"37":0.01988,"40":0.00398,"46":0.0159,"52":0.00398,"70":0.02385,"71":0.02385,"72":0.00795,"73":0.16695,"74":0.00398,"75":0.64793,"76":0.55253,_:"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 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00223,"6.0-6.1":0,"7.0-7.1":0.02563,"8.1-8.4":0.00111,"9.0-9.2":0.00334,"9.3":0.08024,"10.0-10.2":0.01114,"10.3":0.06575,"11.0-11.2":0.04569,"11.3-11.4":0.06798,"12.0-12.1":0.05572,"12.2-12.4":0.17719,"13.0-13.1":0.02786,"13.2":0.02006,"13.3":0.18165,"13.4-13.7":0.44465,"14.0-14.4":8.03824,"14.5-14.6":1.25483},E:{"4":0,"13":0.01193,"14":0.32595,_:"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.03578,"12.1":0.00795,"13.1":0.05168,"14.1":0.19478},B:{"18":0.0636,"84":0.0159,"85":0.01193,"86":0.02783,"87":0.01193,"88":0.00795,"89":0.04373,"90":1.42305,"91":0.15503,_:"12 13 14 15 16 17 79 80 81 83"},P:{"4":0.1237,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.04231,"8.2":0.0303,"9.2":0.03092,"10.1":0.02062,"11.1-11.2":0.17524,"12.0":0.05154,"13.0":0.3711,"14.0":2.04103},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.00726,"4.4":0,"4.4.3-4.4.4":0.03388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00815,"8":0.02038,"9":0.0163,"10":0.01223,"11":0.26492,_:"6 5.5"},J:{"7":0,"10":0.01205},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.1386},Q:{"10.4":0},O:{"0":0.0241},H:{"0":0.18827},L:{"0":48.29179}}; +module.exports={C:{"43":0.00346,"47":0.00693,"48":0.00346,"49":0.01385,"51":0.01385,"52":0.187,"53":0.00346,"56":0.01732,"57":0.00346,"60":0.00346,"68":0.01385,"72":0.01732,"78":0.08311,"79":0.00693,"80":0.01732,"81":0.01039,"82":0.00693,"83":0.00693,"84":0.00693,"85":0.03463,"86":0.00693,"87":0.00693,"88":0.16622,"89":1.52372,"90":0.99042,"91":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 44 45 46 50 54 55 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 92 3.5 3.6"},D:{"22":0.00693,"34":0.00346,"38":0.01039,"47":0.0658,"49":0.2805,"53":0.02078,"56":0.01039,"58":0.03463,"62":0.00693,"63":0.01039,"64":0.01039,"66":0.00693,"68":0.0277,"69":0.01039,"70":0.00693,"71":0.00346,"72":0.03809,"73":0.00693,"74":0.00693,"75":0.01039,"76":0.00693,"77":0.02424,"78":0.01039,"79":0.08658,"80":0.02424,"81":0.03117,"83":0.05541,"84":0.11774,"85":0.10735,"86":0.14198,"87":0.17661,"88":0.05541,"89":0.15584,"90":0.21817,"91":19.37895,"92":4.46034,"93":0.00693,_:"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 59 60 61 65 67 94 95"},F:{"36":0.01732,"37":0.00693,"40":0.00346,"46":0.00693,"68":0.00346,"71":0.00693,"72":0.00693,"73":0.00346,"76":0.21817,"77":0.73069,_:"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 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 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02901,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06684,"10.0-10.2":0.01387,"10.3":0.05928,"11.0-11.2":0.03784,"11.3-11.4":0.08072,"12.0-12.1":0.04666,"12.2-12.4":0.14251,"13.0-13.1":0.02648,"13.2":0.01261,"13.3":0.1753,"13.4-13.7":0.44519,"14.0-14.4":1.94473,"14.5-14.7":8.86858},E:{"4":0,"9":0.00346,"13":0.01039,"14":0.13159,"15":0.00693,_:"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.02078,"12.1":0.01039,"13.1":0.03809,"14.1":0.39132},B:{"15":0.00693,"17":0.00346,"18":0.0277,"84":0.00693,"85":0.01039,"86":0.00346,"89":0.01039,"90":0.00693,"91":1.02159,"92":0.25626,_:"12 13 14 16 79 80 81 83 87 88"},P:{"4":0.10443,"5.0-5.4":0.02078,"6.2-6.4":0.02106,"7.2-7.4":0.01044,"8.2":0.01053,"9.2":0.01044,"10.1":0.01044,"11.1-11.2":0.13576,"12.0":0.03133,"13.0":0.17754,"14.0":2.08865},I:{"0":0,"3":0,"4":0.00075,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00299,"4.2-4.3":0.00411,"4.4":0,"4.4.3-4.4.4":0.03138},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01732,"9":0.02078,"11":0.15237,_:"6 7 10 5.5"},J:{"7":0,"10":0.01307},N:{"11":0.01864,_:"10"},L:{"0":52.6555},S:{"2.5":0},R:{_:"0"},M:{"0":0.1242},Q:{"10.4":0},O:{"0":0.01961},H:{"0":0.17948}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js index f09f3cf135f955..a52fcc4ebfd60f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js @@ -1 +1 @@ -module.exports={C:{"35":0.00202,"37":0.00606,"40":0.00606,"42":0.00202,"43":0.00808,"45":0.00202,"47":0.00808,"49":0.00606,"52":0.00808,"67":0.00808,"71":0.00202,"72":0.01211,"78":0.05249,"81":0.00404,"82":0.00404,"85":0.00606,"86":0.01211,"87":0.02827,"88":2.16033,"89":0.04038,_:"2 3 4 5 6 7 8 9 10 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 38 39 41 44 46 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 73 74 75 76 77 79 80 83 84 90 91 3.5 3.6"},D:{"4":0.00202,"11":0.00606,"22":0.00202,"28":0.00404,"37":0.00404,"40":0.00202,"43":0.00404,"49":0.02221,"50":0.00404,"58":0.01211,"60":0.00202,"62":0.00202,"63":0.02221,"65":0.06865,"66":0.01413,"70":0.0101,"73":0.01413,"74":0.01615,"75":0.00202,"76":0.0101,"77":0.00404,"79":0.02423,"80":0.00808,"81":0.02221,"83":0.01413,"84":0.06865,"85":0.01211,"86":0.0101,"87":0.0848,"88":0.15546,"89":0.26651,"90":6.79595,"91":0.22815,"92":0.00606,_:"5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 29 30 31 32 33 34 35 36 38 39 41 42 44 45 46 47 48 51 52 53 54 55 56 57 59 61 64 67 68 69 71 72 78 93 94"},F:{"47":0.00202,"51":0.00404,"73":0.00606,"75":0.09086,"76":0.20594,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0066,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00283,"6.0-6.1":0.00189,"7.0-7.1":0.07925,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06038,"10.0-10.2":0,"10.3":0.23775,"11.0-11.2":0.18869,"11.3-11.4":0.04057,"12.0-12.1":0.06321,"12.2-12.4":0.25945,"13.0-13.1":0.02925,"13.2":0.03019,"13.3":0.25002,"13.4-13.7":1.06517,"14.0-14.4":4.81354,"14.5-14.6":1.56143},E:{"4":0,"9":0.00404,"13":0.00808,"14":0.14941,_:"0 5 6 7 8 10 11 12 3.1 3.2 6.1 9.1 10.1","5.1":0.06865,"7.1":0.02019,"11.1":0.00202,"12.1":0.02019,"13.1":0.08682,"14.1":0.05653},B:{"12":0.02625,"13":0.03634,"14":0.00808,"15":0.00404,"16":0.00808,"17":0.02019,"18":0.18979,"84":0.0101,"85":0.01413,"86":0.00202,"87":0.00202,"88":0.00404,"89":0.0323,"90":1.90392,"91":0.09691,_:"79 80 81 83"},P:{"4":0.30657,"5.0-5.4":0.01022,"6.2-6.4":0.02044,"7.2-7.4":0.31679,"8.2":0.01019,"9.2":0.18394,"10.1":0.04168,"11.1-11.2":0.36788,"12.0":0.10219,"13.0":0.60292,"14.0":0.92993},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00508,"4.2-4.3":0.00677,"4.4":0,"4.4.3-4.4.4":0.30735},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00353,"11":0.36392,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.03192},N:{"10":0.02735,"11":0.01885},S:{"2.5":0.2793},R:{_:"0"},M:{"0":0.09576},Q:{"10.4":0.01596},O:{"0":0.84588},H:{"0":0.99725},L:{"0":71.79806}}; +module.exports={C:{"30":0.00398,"34":0.00398,"38":0.00398,"40":0.00398,"41":0.00596,"44":0.00596,"47":0.00994,"48":0.00596,"50":0.00994,"52":0.00994,"56":0.00199,"57":0.00199,"61":0.00795,"67":0.01193,"72":0.00596,"75":0.00398,"78":0.03578,"84":0.00398,"85":0.00795,"86":0.00398,"87":0.00398,"88":0.01789,"89":1.37967,"90":0.6123,"91":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 35 36 37 39 42 43 45 46 49 51 53 54 55 58 59 60 62 63 64 65 66 68 69 70 71 73 74 76 77 79 80 81 82 83 92 3.5 3.6"},D:{"11":0.00795,"30":0.01392,"32":0.00199,"33":0.00596,"37":0.00398,"38":0.00199,"39":0.00199,"40":0.00596,"43":0.00398,"48":0.00199,"49":0.03578,"50":0.00199,"55":0.00199,"58":0.00398,"60":0.00199,"62":0.00199,"63":0.01789,"65":0.01193,"66":0.00398,"70":0.00994,"71":0.00398,"72":0.00199,"73":0.00596,"74":0.00596,"76":0.02187,"78":0.02584,"79":0.00994,"80":0.00795,"81":0.01988,"83":0.02982,"84":0.0159,"85":0.00596,"86":0.00994,"87":0.06163,"88":0.05169,"89":0.11928,"90":0.21073,"91":5.67773,"92":1.51088,"93":0.00199,_:"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 34 35 36 41 42 44 45 46 47 51 52 53 54 56 57 59 61 64 67 68 69 75 77 94 95"},F:{"64":0.00398,"67":0.00199,"73":0.00199,"76":0.00994,"77":0.45525,_:"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 68 69 70 71 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00565,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00188,"6.0-6.1":0.00188,"7.0-7.1":0.01884,"8.1-8.4":0.00094,"9.0-9.2":0.00471,"9.3":0.14318,"10.0-10.2":0.00471,"10.3":0.18839,"11.0-11.2":0.19593,"11.3-11.4":0.01884,"12.0-12.1":0.05746,"12.2-12.4":0.1931,"13.0-13.1":0.03297,"13.2":0.02638,"13.3":0.10644,"13.4-13.7":0.62359,"14.0-14.4":2.45007,"14.5-14.7":4.56197},E:{"4":0,"6":0.00398,"12":0.00795,"13":0.00398,"14":0.08151,"15":0.00398,_:"0 5 7 8 9 10 11 3.1 3.2 6.1 9.1 10.1","5.1":0.00795,"7.1":0.0159,"11.1":0.00795,"12.1":0.01193,"13.1":0.0338,"14.1":0.35585},B:{"12":0.00994,"13":0.01988,"14":0.01193,"15":0.00596,"16":0.00994,"17":0.02783,"18":0.17097,"84":0.00596,"85":0.01392,"87":0.00199,"88":0.00398,"89":0.01193,"90":0.01193,"91":1.97607,"92":0.59441,_:"79 80 81 83 86"},P:{"4":0.26345,"5.0-5.4":0.02027,"6.2-6.4":0.0304,"7.2-7.4":0.22292,"8.2":0.0304,"9.2":0.27359,"10.1":0.01013,"11.1-11.2":0.24319,"12.0":0.18239,"13.0":0.29385,"14.0":1.53006},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.00751,"4.4":0,"4.4.3-4.4.4":0.26208},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.42146,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.09614},N:{"11":0.01864,_:"10"},L:{"0":70.29576},S:{"2.5":0.07211},R:{_:"0"},M:{"0":0.05608},Q:{"10.4":0.02404},O:{"0":1.08162},H:{"0":0.91781}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js index 4284365f41810a..c87fd1d73fc6e2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js @@ -1 +1 @@ -module.exports={C:{"4":0.00778,"5":0.00519,"15":0.01556,"17":0.02334,"23":0.00259,"26":0.00259,"30":0.00259,"36":0.01297,"37":0.00519,"39":0.00778,"41":0.00778,"42":0.00519,"43":0.01297,"44":0.00519,"45":0.00519,"47":0.01037,"48":0.00259,"49":0.00519,"50":0.00259,"52":0.01037,"56":0.04667,"57":0.01037,"58":0.01297,"60":0.01037,"61":0.00778,"62":0.01297,"63":0.00519,"64":0.00259,"65":0.00519,"66":0.00519,"67":0.01037,"68":0.01037,"69":0.00519,"70":0.01037,"71":0.01037,"72":0.0363,"73":0.00778,"74":0.00519,"75":0.00778,"76":0.01037,"77":0.00519,"78":0.05964,"79":0.00519,"80":0.13224,"81":0.01297,"82":0.01815,"83":0.01037,"84":0.06483,"85":0.05186,"86":0.07001,"87":0.08557,"88":2.44779,"89":0.27486,"90":0.00519,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 24 25 27 28 29 31 32 33 34 35 38 40 46 51 53 54 55 59 91 3.5 3.6"},D:{"11":0.00259,"23":0.01556,"24":0.02852,"25":0.01037,"31":0.00778,"32":0.01037,"37":0.01556,"38":0.01297,"43":0.00519,"47":0.00259,"49":0.14262,"50":0.00259,"53":0.02593,"55":0.00519,"57":0.00519,"58":0.00259,"61":0.02593,"62":0.00259,"63":0.02074,"65":0.00519,"67":0.00778,"68":0.00778,"69":0.01297,"70":0.00778,"71":0.03112,"72":0.00519,"73":0.00778,"74":0.01556,"75":0.00778,"76":0.00259,"77":0.00778,"78":0.00778,"79":0.10891,"80":0.01815,"81":0.02074,"83":0.10891,"84":0.02852,"85":0.02593,"86":0.05186,"87":0.17632,"88":0.15039,"89":0.42266,"90":12.40751,"91":0.71308,"92":0.0726,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 33 34 35 36 39 40 41 42 44 45 46 48 51 52 54 56 59 60 64 66 93 94"},F:{"36":0.00259,"37":0.00519,"46":0.00519,"73":0.03112,"74":0.01815,"75":0.15039,"76":0.23078,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0058,"6.0-6.1":0.01064,"7.0-7.1":0.01257,"8.1-8.4":0.00774,"9.0-9.2":0.02031,"9.3":0.11798,"10.0-10.2":0.0087,"10.3":0.08413,"11.0-11.2":0.07156,"11.3-11.4":0.02998,"12.0-12.1":0.08413,"12.2-12.4":0.20404,"13.0-13.1":0.0822,"13.2":0.01547,"13.3":0.15762,"13.4-13.7":0.43226,"14.0-14.4":5.88816,"14.5-14.6":1.96498},E:{"4":0,"8":0.00778,"11":0.00778,"12":0.01297,"13":0.02074,"14":1.19278,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01297,"11.1":0.05705,"12.1":0.1115,"13.1":0.24634,"14.1":0.39932},B:{"12":0.01297,"13":0.00519,"14":0.00259,"15":0.00259,"16":0.01037,"17":0.01556,"18":0.05445,"81":0.00519,"84":0.02074,"85":0.01297,"86":0.01556,"87":0.00519,"88":0.02074,"89":0.0752,"90":1.54802,"91":0.1478,_:"79 80 83"},P:{"4":0.41769,"5.0-5.4":0.03056,"6.2-6.4":0.02038,"7.2-7.4":0.0815,"8.2":0.02021,"9.2":0.06113,"10.1":0.05094,"11.1-11.2":0.13244,"12.0":0.10188,"13.0":0.2445,"14.0":1.02895},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00201,"4.2-4.3":0.0584,"4.4":0,"4.4.3-4.4.4":0.83571},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03605,"10":0.03004,"11":0.18025,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.33327},Q:{"10.4":0.08147},O:{"0":3.56229},H:{"0":0.80633},L:{"0":59.41847}}; +module.exports={C:{"15":0.00279,"17":0.00279,"19":0.00558,"26":0.00279,"29":0.00558,"30":0.00558,"35":0.00558,"36":0.00837,"37":0.00279,"39":0.00558,"40":0.00279,"41":0.01116,"43":0.01675,"44":0.00558,"45":0.00558,"47":0.01116,"48":0.00558,"49":0.00558,"50":0.01116,"52":0.03907,"56":0.03628,"57":0.01116,"58":0.01675,"59":0.00279,"60":0.0307,"61":0.00558,"62":0.00837,"63":0.00279,"64":0.00279,"66":0.00279,"67":0.00558,"68":0.00558,"69":0.00558,"70":0.06698,"71":0.00558,"72":0.03628,"75":0.00279,"76":0.00558,"77":0.00558,"78":0.03628,"79":0.00837,"80":0.00558,"81":0.01116,"82":0.00558,"83":0.0307,"84":0.0307,"85":0.01396,"86":0.02512,"87":0.00837,"88":0.09769,"89":1.79461,"90":0.94894,"91":0.13955,"92":0.01116,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 20 21 22 23 24 25 27 28 31 32 33 34 38 42 46 51 53 54 55 65 73 74 3.5 3.6"},D:{"11":0.00279,"24":0.00558,"25":0.00279,"26":0.00558,"31":0.00558,"32":0.00837,"35":0.04466,"37":0.01116,"38":0.02233,"39":0.00279,"43":0.00558,"47":0.01116,"49":0.08652,"53":0.03628,"55":0.00558,"56":0.00558,"57":0.00837,"58":0.00279,"61":0.00558,"62":0.00279,"63":0.01954,"65":0.00558,"67":0.00837,"68":0.00558,"69":0.00279,"70":0.00837,"71":0.02233,"72":0.00558,"73":0.01116,"74":0.00837,"75":0.01116,"76":0.00558,"77":0.00558,"78":0.00837,"79":0.11443,"80":0.01396,"81":0.01954,"83":0.06419,"84":0.02791,"85":0.05303,"86":0.05024,"87":0.1256,"88":0.07815,"89":0.14513,"90":0.28189,"91":11.7836,"92":2.62354,"93":0.04466,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 27 28 29 30 33 34 36 40 41 42 44 45 46 48 50 51 52 54 59 60 64 66 94 95"},F:{"28":0.00279,"36":0.01116,"46":0.01396,"66":0.00558,"72":0.00837,"73":0.01116,"74":0.00558,"75":0.00837,"76":0.06978,"77":0.41586,_:"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 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0264,"6.0-6.1":0.01148,"7.0-7.1":0.03099,"8.1-8.4":0.01492,"9.0-9.2":0.02181,"9.3":0.132,"10.0-10.2":0.02869,"10.3":0.10101,"11.0-11.2":0.05165,"11.3-11.4":0.02869,"12.0-12.1":0.02984,"12.2-12.4":0.12511,"13.0-13.1":0.08035,"13.2":0.01377,"13.3":0.14118,"13.4-13.7":0.39943,"14.0-14.4":2.01782,"14.5-14.7":7.66497},E:{"4":0,"11":0.00837,"12":0.01116,"13":0.03628,"14":0.51634,"15":0.01675,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00279,"10.1":0.0307,"11.1":0.05582,"12.1":0.08931,"13.1":0.28189,"14.1":1.34805},B:{"12":0.01396,"14":0.00279,"15":0.00279,"16":0.00837,"17":0.01116,"18":0.03907,"83":0.00279,"84":0.00558,"85":0.01116,"86":0.00279,"87":0.00558,"88":0.00558,"89":0.02791,"90":0.01954,"91":1.59366,"92":0.44935,_:"13 79 80 81"},P:{"4":0.29324,"5.0-5.4":0.01047,"6.2-6.4":0.01076,"7.2-7.4":0.03142,"8.2":0.07177,"9.2":0.03142,"10.1":0.01047,"11.1-11.2":0.10473,"12.0":0.08378,"13.0":0.12567,"14.0":1.08917},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00358,"4.2-4.3":0.01163,"4.4":0,"4.4.3-4.4.4":0.38123},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00765,"11":0.22958,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":57.82641},S:{"2.5":0},R:{_:"0"},M:{"0":0.2667},Q:{"10.4":0.0937},O:{"0":2.80391},H:{"0":0.68923}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js index 06254f6960c8d3..f218c986eeb245 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js @@ -1 +1 @@ -module.exports={C:{"17":0.00915,"42":0.00457,"52":0.01372,"56":0.00915,"78":0.08689,"86":0.00915,"87":0.03658,"88":1.91609,"89":0.10518,_:"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 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 90 91 3.5 3.6"},D:{"24":0.00915,"25":0.00915,"48":0.00457,"49":0.20579,"55":0.00915,"58":0.00457,"60":0.00457,"63":0.07317,"65":0.01372,"67":0.00915,"69":0.00915,"70":0.02287,"71":0.00915,"72":0.01372,"73":0.01372,"74":0.07317,"75":0.01372,"76":0.00915,"77":0.00915,"78":0.01372,"79":0.05945,"80":0.0503,"81":0.04116,"83":0.01829,"84":0.16463,"85":0.02744,"86":0.10061,"87":1.45879,"88":0.25609,"89":0.70424,"90":30.74428,"91":1.21642,"92":0.01829,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 56 57 59 61 62 64 66 68 93 94"},F:{"28":0.00457,"73":0.10061,"74":0.00915,"75":0.61278,"76":0.66766,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00136,"7.0-7.1":0.01225,"8.1-8.4":0,"9.0-9.2":0.00136,"9.3":0.09116,"10.0-10.2":0.00816,"10.3":0.2177,"11.0-11.2":0.02993,"11.3-11.4":0.10477,"12.0-12.1":0.05987,"12.2-12.4":0.47349,"13.0-13.1":0.09252,"13.2":0.02177,"13.3":0.27212,"13.4-13.7":0.62588,"14.0-14.4":8.99086,"14.5-14.6":1.45448},E:{"4":0,"11":0.01372,"13":0.03658,"14":0.85515,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00915,"11.1":0.01372,"12.1":0.04116,"13.1":0.16463,"14.1":0.2378},B:{"18":0.02744,"84":0.01829,"85":0.00457,"87":0.00457,"88":0.03201,"89":0.07774,"90":2.29107,"91":0.1189,_:"12 13 14 15 16 17 79 80 81 83 86"},P:{"4":0.3561,"5.0-5.4":0.09157,"6.2-6.4":0.03052,"7.2-7.4":0.11192,"8.2":0.01017,"9.2":0.13227,"10.1":0.01017,"11.1-11.2":0.25436,"12.0":0.17296,"13.0":0.8343,"14.0":3.35753},I:{"0":0,"3":0,"4":0.00041,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00104,"4.2-4.3":0.00249,"4.4":0,"4.4.3-4.4.4":0.0232},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01688,"10":0.00844,"11":0.19418,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.19537},Q:{"10.4":0.02714},O:{"0":0.18995},H:{"0":0.11817},L:{"0":37.97726}}; +module.exports={C:{"4":0.01537,"5":0.00384,"15":0.00768,"17":0.01921,"42":0.02689,"52":0.01537,"72":0.00384,"77":0.01153,"78":0.03074,"82":0.01153,"84":0.00384,"86":0.00384,"87":0.00384,"88":0.02689,"89":1.10265,"90":0.56093,"91":0.08068,_:"2 3 6 7 8 9 10 11 12 13 14 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 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 83 85 92 3.5 3.6"},D:{"24":0.02689,"25":0.00768,"38":0.01537,"48":0.00384,"49":0.14215,"50":0.01153,"53":0.00768,"63":0.02305,"65":0.01153,"67":0.02689,"68":0.00768,"69":0.01537,"70":0.01921,"71":0.00768,"72":0.01153,"73":0.03074,"74":0.05379,"75":0.01153,"76":0.00768,"77":0.00768,"78":0.03842,"79":0.06531,"80":0.03458,"81":0.02689,"83":0.01153,"84":0.02689,"85":0.01537,"86":0.06916,"87":0.76456,"88":0.06916,"89":0.18826,"90":0.49946,"91":20.42407,"92":5.08297,"93":0.01153,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 51 52 54 55 56 57 58 59 60 61 62 64 66 94 95"},F:{"29":0.00384,"36":0.00768,"46":0.00768,"69":0.01153,"73":0.02305,"76":0.23436,"77":0.79914,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 70 71 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00731,"6.0-6.1":0.01279,"7.0-7.1":0.0274,"8.1-8.4":0,"9.0-9.2":0.00365,"9.3":0.1589,"10.0-10.2":0.00913,"10.3":0.09132,"11.0-11.2":0.04931,"11.3-11.4":0.09863,"12.0-12.1":0.05297,"12.2-12.4":0.40182,"13.0-13.1":0.10045,"13.2":0.03653,"13.3":0.29406,"13.4-13.7":0.75433,"14.0-14.4":4.20084,"14.5-14.7":10.69388},E:{"4":0,"7":0.00768,"11":0.00768,"12":0.00384,"13":0.15368,"14":0.45336,_:"0 5 6 8 9 10 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01921,"12.1":0.05379,"13.1":0.18442,"14.1":0.91824},B:{"16":0.00384,"18":0.01921,"84":0.01153,"85":0.00768,"88":0.073,"89":0.02305,"90":0.02305,"91":1.64822,"92":0.41109,_:"12 13 14 15 17 79 80 81 83 86 87"},P:{"4":0.52844,"5.0-5.4":0.06097,"6.2-6.4":0.03049,"7.2-7.4":0.1626,"8.2":0.07177,"9.2":0.15243,"10.1":0.02196,"11.1-11.2":0.18292,"12.0":0.15243,"13.0":0.47763,"14.0":4.12587},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.00298,"4.4":0,"4.4.3-4.4.4":0.03876},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02736,"9":0.00684,"10":0.02736,"11":0.2189,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":40.8032},S:{"2.5":0},R:{_:"0"},M:{"0":0.15393},Q:{"10.4":0.08004},O:{"0":0.23397},H:{"0":0.21567}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js index e3146b2738c20c..063394809d8b20 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js @@ -1 +1 @@ -module.exports={C:{"11":0.07779,"34":0.06864,"43":0.01373,"52":0.01373,"56":0.02288,"57":0.00458,"72":0.00458,"73":0.01373,"75":0.0183,"77":0.02288,"78":0.01373,"84":0.02288,"85":0.00915,"86":0.00458,"87":0.03203,"88":1.3911,_:"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 44 45 46 47 48 49 50 51 53 54 55 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 76 79 80 81 82 83 89 90 91 3.5 3.6"},D:{"22":0.02288,"26":0.04118,"30":0.02746,"34":0.09152,"38":0.18762,"43":0.00458,"48":0.00458,"49":0.2105,"53":0.2288,"55":0.0183,"57":0.01373,"58":0.03203,"59":0.00915,"61":0.05949,"62":0.02288,"63":0.0961,"64":0.00915,"65":0.0183,"66":0.03203,"67":0.03661,"68":0.06864,"69":0.35693,"70":0.02746,"71":0.07779,"72":0.02746,"73":0.07779,"74":0.05949,"75":0.03203,"76":0.03203,"77":0.02288,"78":0.03661,"79":0.12355,"80":0.08237,"81":0.10067,"83":0.15558,"84":0.02746,"85":0.06406,"86":0.32947,"87":0.30659,"88":0.39811,"89":1.53754,"90":22.76102,"91":0.86486,"92":0.02746,_:"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 44 45 46 47 50 51 52 54 56 60 93 94"},F:{"36":0.03203,"40":0.00458,"46":0.04576,"72":0.00915,"73":0.03203,"75":0.08694,"76":0.08237,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00308,"6.0-6.1":0.09537,"7.0-7.1":0.06153,"8.1-8.4":0.14767,"9.0-9.2":0.04307,"9.3":0.24304,"10.0-10.2":0.12613,"10.3":0.44608,"11.0-11.2":0.27688,"11.3-11.4":0.29534,"12.0-12.1":0.33226,"12.2-12.4":0.69528,"13.0-13.1":0.19997,"13.2":0.08614,"13.3":0.45531,"13.4-13.7":1.52592,"14.0-14.4":21.96889,"14.5-14.6":2.55345},E:{"4":0,"8":0.00458,"10":0.03203,"11":0.02746,"12":0.01373,"13":0.2288,"14":7.06534,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.0183,"10.1":0.03661,"11.1":0.06864,"12.1":0.20592,"13.1":0.79165,"14.1":0.94266},B:{"14":0.00458,"16":0.00915,"17":0.01373,"18":0.08237,"89":0.05034,"90":2.12784,"91":0.15101,_:"12 13 15 79 80 81 83 84 85 86 87 88"},P:{"4":0.71864,"5.0-5.4":0.0202,"6.2-6.4":0.0909,"7.2-7.4":0.04231,"8.2":0.0303,"9.2":0.04355,"10.1":0.02115,"11.1-11.2":0.01089,"12.0":0.02178,"13.0":0.22866,"14.0":2.04703},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00172,"4.4":0,"4.4.3-4.4.4":0.04168},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.18061,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.1953},Q:{"10.4":0.33093},O:{"0":0.72153},H:{"0":0.09245},L:{"0":21.48837}}; +module.exports={C:{"11":0.05659,"17":0.00435,"34":0.05224,"43":0.01306,"47":0.00435,"52":0.00871,"56":0.09577,"57":0.00435,"75":0.02177,"77":0.02612,"78":0.00871,"81":0.00435,"88":0.04353,"89":0.80966,"90":0.43095,_:"2 3 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 31 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 79 80 82 83 84 85 86 87 91 92 3.5 3.6"},D:{"22":0.03047,"26":0.03918,"30":0.01306,"34":0.0653,"38":0.222,"49":0.148,"53":0.16106,"55":0.05224,"57":0.01306,"58":0.03482,"59":0.00871,"60":0.00435,"61":0.05659,"62":0.01741,"63":0.05659,"64":0.00871,"65":0.01306,"66":0.03918,"67":0.03482,"68":0.03482,"69":0.03918,"70":0.01306,"71":0.05659,"72":0.08271,"73":0.05224,"74":0.05224,"75":0.03918,"76":0.02612,"77":0.02177,"78":0.02612,"79":0.33083,"80":0.06965,"81":0.10447,"83":0.08271,"84":0.01741,"85":0.03918,"86":0.09577,"87":0.22636,"88":0.14365,"89":0.40048,"90":1.33202,"91":18.01707,"92":3.6217,"93":0.01741,_:"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 45 46 47 48 50 51 52 54 56 94 95"},F:{"28":0.00435,"36":0.05659,"46":0.05224,"72":0.00871,"75":0.00435,"76":0.03047,"77":0.11753,_:"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 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00661,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0033,"5.0-5.1":0,"6.0-6.1":0.08922,"7.0-7.1":0.09252,"8.1-8.4":0.19165,"9.0-9.2":0.03304,"9.3":0.30399,"10.0-10.2":0.12887,"10.3":0.36347,"11.0-11.2":0.26104,"11.3-11.4":0.29739,"12.0-12.1":0.26104,"12.2-12.4":0.59147,"13.0-13.1":0.13217,"13.2":0.09582,"13.3":0.52869,"13.4-13.7":1.28206,"14.0-14.4":5.35624,"14.5-14.7":21.68932},E:{"4":0,"8":0.00435,"10":0.00871,"11":0.02612,"12":0.01741,"13":0.2133,"14":2.22874,"15":0.01306,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.00435,"10.1":0.04353,"11.1":0.0653,"12.1":0.16106,"13.1":0.71825,"14.1":6.36844},B:{"13":0.00435,"16":0.00435,"18":0.074,"89":0.01741,"90":0.00871,"91":1.92403,"92":0.58766,_:"12 14 15 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.72267,"5.0-5.4":0.02078,"6.2-6.4":0.02106,"7.2-7.4":0.06318,"8.2":0.01053,"9.2":0.05393,"10.1":0.01053,"11.1-11.2":0.01079,"12.0":0.02157,"13.0":0.17258,"14.0":2.01701},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.02694},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.05778,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":21.61087},S:{"2.5":0},R:{_:"0"},M:{"0":0.21459},Q:{"10.4":0.3727},O:{"0":0.88093},H:{"0":0.08554}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js index b1cfd5a7d27645..33f09a62e39dae 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js @@ -1 +1 @@ -module.exports={C:{"48":0.01177,"52":0.03532,"80":0.00589,"85":0.01177,"88":1.38321,"89":0.02354,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 78 79 81 82 83 84 86 87 90 91 3.5 3.6"},D:{"49":0.07652,"53":0.01177,"55":0.01766,"66":0.00589,"67":0.02354,"68":0.07063,"69":0.00589,"71":0.0412,"76":0.01177,"79":0.01177,"80":0.00589,"83":0.06475,"84":0.00589,"86":0.02354,"87":0.40613,"88":0.16481,"89":1.91295,"90":33.32065,"91":1.53625,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 56 57 58 59 60 61 62 63 64 65 70 72 73 74 75 77 78 81 85 92 93 94"},F:{"73":0.05297,"75":0.38848,"76":0.48265,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.17051,"9.3":0.3458,"10.0-10.2":0,"10.3":0.23425,"11.0-11.2":0.10677,"11.3-11.4":0.00478,"12.0-12.1":0.15776,"12.2-12.4":0.22947,"13.0-13.1":0.00478,"13.2":0.01753,"13.3":0.13545,"13.4-13.7":0.30597,"14.0-14.4":11.92469,"14.5-14.6":1.40712},E:{"4":0,"11":0.01177,"13":0.10595,"14":6.91016,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01177,"11.1":0.06475,"12.1":0.6298,"13.1":1.00062,"14.1":0.66512},B:{"18":0.17069,"87":0.01766,"89":0.02354,"90":3.68464,"91":0.40613,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 88"},P:{"4":0.04291,"5.0-5.4":0.01097,"6.2-6.4":0.0521,"7.2-7.4":0.05484,"8.2":0.01023,"9.2":0.58995,"10.1":0.02145,"11.1-11.2":0.10726,"12.0":0.02145,"13.0":0.32179,"14.0":4.49434},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01296,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01584},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":3.70818,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.05348},Q:{"10.4":0},O:{"0":0.02468},H:{"0":0.12853},L:{"0":21.17796}}; +module.exports={C:{"48":0.01066,"52":0.06395,"78":0.05862,"85":0.00533,"88":0.1279,"89":0.82067,"90":0.33573,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 83 84 86 87 91 92 3.5 3.6"},D:{"38":0.02132,"47":0.0373,"49":0.01599,"53":0.04796,"65":0.0373,"67":0.01066,"69":0.00533,"71":0.03197,"75":0.01066,"76":0.08526,"79":0.61816,"80":0.09592,"81":0.0373,"83":0.02132,"84":0.02132,"85":0.00533,"87":0.19717,"88":0.28244,"89":0.06928,"90":0.3677,"91":25.91493,"92":5.4942,"93":0.06928,_:"4 5 6 7 8 9 10 11 12 13 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 62 63 64 66 68 70 72 73 74 77 78 86 94 95"},F:{"28":0.02132,"76":0.1652,"77":1.27363,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00844,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.38842,"10.0-10.2":0.00563,"10.3":0.17873,"11.0-11.2":0.62766,"11.3-11.4":0.00563,"12.0-12.1":0.07599,"12.2-12.4":0.25191,"13.0-13.1":0.00422,"13.2":0.00563,"13.3":0.14214,"13.4-13.7":0.13651,"14.0-14.4":2.4079,"14.5-14.7":8.89137},E:{"4":0,"12":0.01066,"13":0.05862,"14":1.14574,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01066,"11.1":0.04263,"12.1":0.02665,"13.1":0.70876,"14.1":3.89017},B:{"16":0.01066,"17":0.02665,"18":0.12257,"89":0.01599,"90":0.01066,"91":3.5278,"92":0.84198,_:"12 13 14 15 79 80 81 83 84 85 86 87 88"},P:{"4":0.34626,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.05545,"8.2":0.01075,"9.2":0.15149,"10.1":1.46111,"11.1-11.2":0.15149,"12.0":0.02164,"13.0":0.45447,"14.0":6.81706},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.55259,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":28.98258},S:{"2.5":0},R:{_:"0"},M:{"0":0.06539},Q:{"10.4":0},O:{"0":0.08408},H:{"0":0.04422}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js index f584503a5bc173..71ce7071522c4b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js @@ -1 +1 @@ -module.exports={C:{"34":0.0088,"52":0.15833,"60":0.0088,"72":0.0088,"78":0.09236,"79":0.0088,"82":0.32985,"83":0.02199,"84":0.16273,"85":0.0088,"86":0.0088,"87":0.05717,"88":4.66628,_:"2 3 4 5 6 7 8 9 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 73 74 75 76 77 80 81 89 90 91 3.5 3.6"},D:{"49":0.25069,"58":0.01759,"63":0.01759,"64":0.0088,"65":0.0088,"70":0.02199,"75":0.0044,"76":0.0088,"79":0.01319,"80":0.02639,"81":0.0088,"83":0.02639,"85":0.0088,"86":0.02639,"87":0.10555,"88":0.2287,"89":0.62012,"90":20.05488,"91":0.59373,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 66 67 68 69 71 72 73 74 77 78 84 92 93 94"},F:{"73":0.07477,"75":0.33865,"76":0.61572,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.02785,"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.00879,"8.1-8.4":0,"9.0-9.2":0,"9.3":1.01282,"10.0-10.2":0.00147,"10.3":0.18468,"11.0-11.2":0.02199,"11.3-11.4":0.13485,"12.0-12.1":0.03957,"12.2-12.4":0.17735,"13.0-13.1":0.03225,"13.2":0.06009,"13.3":0.16709,"13.4-13.7":0.44265,"14.0-14.4":10.04172,"14.5-14.6":1.84536},E:{"4":0,"10":0.02199,"11":0.0044,"12":0.01759,"13":0.15393,"14":2.97745,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02199,"11.1":0.10115,"12.1":0.6597,"13.1":0.73447,"14.1":1.20505},B:{"13":0.0088,"15":0.01319,"16":0.03079,"17":0.02639,"18":0.06157,"80":0.0044,"81":0.03079,"85":0.0088,"86":0.01319,"87":0.01319,"88":0.09676,"89":0.15393,"90":4.59151,"91":0.32985,_:"12 14 79 83 84"},P:{"4":0.10457,"5.0-5.4":0.01022,"6.2-6.4":0.02044,"7.2-7.4":0.0732,"8.2":0.05372,"9.2":0.17777,"10.1":0.03137,"11.1-11.2":0.31372,"12.0":0.15686,"13.0":0.65881,"14.0":4.06789},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00831,"4.4":0,"4.4.3-4.4.4":0.02529},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.85761,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.50409},Q:{"10.4":0},O:{"0":0.0168},H:{"0":0.10075},L:{"0":38.15151}}; +module.exports={C:{"43":0.00402,"52":0.02814,"60":0.01206,"72":0.00402,"76":0.00402,"78":0.10854,"81":0.01608,"82":0.27738,"84":0.00402,"85":0.00804,"86":0.00402,"87":0.00402,"88":0.03618,"89":2.42808,"90":1.35072,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 61 62 63 64 65 66 67 68 69 70 71 73 74 75 77 79 80 83 91 92 3.5 3.6"},D:{"47":0.00402,"49":0.24522,"53":0.00402,"58":0.02814,"63":0.00804,"65":0.01206,"66":0.00402,"67":0.0201,"69":0.00402,"72":0.00402,"76":0.04422,"79":0.0201,"80":0.01206,"81":0.00402,"83":0.03216,"84":0.02412,"85":0.03216,"86":0.03216,"87":0.04422,"88":0.1005,"89":0.10452,"90":0.32562,"91":14.15844,"92":4.11246,"93":0.02412,"94":0.01206,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 59 60 61 62 64 68 70 71 73 74 75 77 78 95"},F:{"73":0.00402,"76":0.08442,"77":0.76782,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.02455,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01074,"7.0-7.1":0,"8.1-8.4":0.01074,"9.0-9.2":0.0046,"9.3":0.35441,"10.0-10.2":0,"10.3":0.20866,"11.0-11.2":0.0537,"11.3-11.4":0.15956,"12.0-12.1":0.02762,"12.2-12.4":0.13348,"13.0-13.1":0.06751,"13.2":0.01688,"13.3":0.16723,"13.4-13.7":0.25929,"14.0-14.4":2.98719,"14.5-14.7":10.58942},E:{"4":0,"7":0.02412,"9":0.00804,"10":0.01206,"12":0.01608,"13":0.06834,"14":1.22208,"15":0.02412,_:"0 5 6 8 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01608,"11.1":0.04422,"12.1":0.65526,"13.1":0.49848,"14.1":3.44514},B:{"12":0.02412,"15":0.00402,"16":0.01206,"17":0.03216,"18":0.09648,"80":0.00402,"85":0.01206,"86":0.00804,"88":0.0201,"89":0.02814,"90":0.02412,"91":4.04814,"92":1.005,_:"13 14 79 81 83 84 87"},P:{"4":0.06259,"5.0-5.4":0.03248,"6.2-6.4":0.01043,"7.2-7.4":0.06259,"8.2":0.0304,"9.2":0.14604,"10.1":0.01068,"11.1-11.2":0.33381,"12.0":0.10432,"13.0":0.31295,"14.0":5.04893},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00056,"4.2-4.3":0.00299,"4.4":0,"4.4.3-4.4.4":0.01439},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.0251,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":40.65398},S:{"2.5":0},R:{_:"0"},M:{"0":0.40066},Q:{"10.4":0},O:{"0":0.04784},H:{"0":0.27741}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js index f4ca526a4eb26b..e8a2eb09bcfe13 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js @@ -1 +1 @@ -module.exports={C:{"15":0.00521,"32":0.00174,"34":0.00347,"37":0.01041,"43":0.02603,"46":0.00347,"47":0.00868,"49":0.10237,"52":0.00868,"56":0.05205,"60":0.00694,"68":0.00174,"69":0.00174,"70":0.00347,"71":0.00694,"72":0.00868,"78":0.04164,"84":0.07808,"85":0.00694,"86":0.04511,"87":0.04685,"88":1.36198,"89":0.00347,_:"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 33 35 36 38 39 40 41 42 44 45 48 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 73 74 75 76 77 79 80 81 82 83 90 91 3.5 3.6"},D:{"11":0.00174,"18":0.00174,"19":0.00347,"25":0.00174,"33":0.0295,"39":0.00347,"40":0.01909,"43":0.02256,"47":0.00347,"48":0.00868,"49":0.0347,"53":0.00174,"57":0.16656,"63":0.00347,"65":0.01215,"69":0.00347,"70":0.00347,"72":0.02082,"74":0.00174,"75":0.00347,"76":0.02776,"77":0.00694,"78":0.00347,"79":0.01041,"80":0.01388,"81":0.02429,"83":0.02082,"84":0.02603,"85":0.01735,"86":0.11451,"87":0.32445,"88":0.18218,"89":0.18912,"90":7.80056,"91":0.31577,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 20 21 22 23 24 26 27 28 29 30 31 32 34 35 36 37 38 41 42 44 45 46 50 51 52 54 55 56 58 59 60 61 62 64 66 67 68 71 73 92 93 94"},F:{"73":0.02429,"75":0.17524,"76":0.18218,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00443,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00089,"7.0-7.1":0.02482,"8.1-8.4":0,"9.0-9.2":0.04432,"9.3":0.03634,"10.0-10.2":0.00266,"10.3":0.09661,"11.0-11.2":0.21007,"11.3-11.4":0.28718,"12.0-12.1":0.10636,"12.2-12.4":0.45382,"13.0-13.1":0.05584,"13.2":0.02659,"13.3":0.36607,"13.4-13.7":0.47952,"14.0-14.4":5.16395,"14.5-14.6":0.76404},E:{"4":0,"9":0.00347,"10":0.00174,"11":0.00694,"13":0.01041,"14":0.13707,_:"0 5 6 7 8 12 3.1 3.2 6.1 7.1 9.1","5.1":0.74432,"10.1":0.00521,"11.1":0.02082,"12.1":0.00521,"13.1":0.05205,"14.1":0.10237},B:{"12":0.02603,"13":0.01909,"15":0.00174,"16":0.00521,"17":0.01735,"18":0.03817,"84":0.00347,"85":0.00694,"86":0.00347,"88":0.00347,"89":0.02256,"90":0.5205,"91":0.03123,_:"14 79 80 81 83 87"},P:{"4":1.0715,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":1.36191,"8.2":0.02003,"9.2":0.33046,"10.1":0.09013,"11.1-11.2":0.81114,"12.0":0.22031,"13.0":0.87122,"14.0":1.91268},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.00391,"4.4":0,"4.4.3-4.4.4":0.06948},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00638,"7":0.01276,"8":0.0319,"9":0.02552,"10":0.01914,"11":0.67636,_:"5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.22313},Q:{"10.4":0.13222},O:{"0":0.47105},H:{"0":1.42394},L:{"0":68.29144}}; +module.exports={C:{"3":0.00167,"32":0.00167,"34":0.01,"47":0.00333,"49":0.09163,"52":0.01666,"69":0.00167,"72":0.00833,"78":0.01333,"82":0.00167,"84":0.00333,"86":0.06664,"87":0.00666,"88":0.05664,"89":0.828,"90":0.39318,_:"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 33 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 63 64 65 66 67 68 70 71 73 74 75 76 77 79 80 81 83 85 91 92 3.5 3.6"},D:{"19":0.00666,"22":0.00167,"25":0.005,"33":0.01,"35":0.00333,"36":0.00333,"37":0.00333,"38":0.00167,"39":0.005,"40":0.03665,"42":0.00167,"43":0.03998,"48":0.01,"49":0.05331,"50":0.00666,"55":0.005,"57":0.18326,"63":0.00333,"65":0.00333,"68":0.00167,"69":0.005,"70":0.00666,"72":0.00333,"74":0.01,"76":0.02332,"78":0.00333,"79":0.00833,"80":0.00833,"81":0.00167,"83":0.05498,"84":0.01166,"85":0.02999,"86":0.08996,"87":0.27489,"88":0.02166,"89":0.01666,"90":0.14494,"91":6.50573,"92":1.26116,"93":0.00666,"94":0.005,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 24 26 27 28 29 30 31 32 34 41 44 45 46 47 51 52 53 54 56 58 59 60 61 62 64 66 67 71 73 75 77 95"},F:{"46":0.00333,"73":0.05165,"76":0.00833,"77":0.28988,_:"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 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00697,"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.00784,"8.1-8.4":0.03135,"9.0-9.2":0.04005,"9.3":0.04702,"10.0-10.2":0.0061,"10.3":0.09404,"11.0-11.2":0.20724,"11.3-11.4":0.31956,"12.0-12.1":0.10623,"12.2-12.4":0.52245,"13.0-13.1":0.0714,"13.2":0.03657,"13.3":0.17589,"13.4-13.7":0.49894,"14.0-14.4":2.4555,"14.5-14.7":3.34017},E:{"4":0,"12":0.00167,"13":0.005,"14":0.14328,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 10.1","5.1":0.03665,"9.1":0.00167,"11.1":0.00167,"12.1":0.005,"13.1":0.23657,"14.1":0.16827},B:{"12":0.01666,"13":0.01,"14":0.005,"16":0.005,"17":0.01666,"18":0.02499,"84":0.00666,"89":0.00833,"90":0.00666,"91":0.82134,"92":0.14161,_:"15 79 80 81 83 85 86 87 88"},P:{"4":1.10958,"5.0-5.4":0.03026,"6.2-6.4":0.10087,"7.2-7.4":1.14993,"8.2":0.0304,"9.2":0.21183,"10.1":0.04035,"11.1-11.2":0.63549,"12.0":0.17148,"13.0":0.53462,"14.0":2.24942},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.01364,"4.4":0,"4.4.3-4.4.4":0.24231},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01364,"8":0.04093,"9":0.01364,"10":0.02729,"11":0.55257,_:"7 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":71.25235},S:{"2.5":0},R:{_:"0"},M:{"0":0.17501},Q:{"10.4":0.05},O:{"0":0.26669},H:{"0":0.57598}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js index 4d31f1fb650db7..b739a801d56c67 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js @@ -1 +1 @@ -module.exports={C:{"49":0.16245,"51":0.21868,"52":1.03717,"78":0.05623,"81":0.05623,"82":0.05623,"87":0.21868,"88":2.67414,"89":0.81849,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 83 84 85 86 90 91 3.5 3.6"},D:{"49":2.40548,"68":0.27491,"81":0.81849,"89":0.05623,"90":37.30056,"91":1.58074,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 73 74 75 76 77 78 79 80 83 84 85 86 87 88 92 93 94"},F:{"75":0.54358,"76":0.21868,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0451,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.02228,"12.2-12.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":4.78723,"14.0-14.4":0.28173,"14.5-14.6":0.0902},E:{"4":0,"14":0.71227,_:"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.05623,"14.1":0.98094},B:{"13":0.16245,"18":0.27491,"84":0.65604,"90":8.74095,"91":0.05623,_:"12 14 15 16 17 79 80 81 83 85 86 87 88 89"},P:{"4":0.76658,"5.0-5.4":0.09157,"6.2-6.4":0.01011,"7.2-7.4":0.10107,"8.2":0.02021,"9.2":0.08086,"10.1":0.11118,"11.1-11.2":0.29312,"12.0":0.10107,"13.0":0.60645,"14.0":4.15229},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.0181,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.15383},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":26.77274}}; +module.exports={C:{"85":0.05174,"88":0.02587,"89":0.67904,"90":0.17461,"91":0.02587,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 87 92 3.5 3.6"},D:{"11":0.05174,"41":0.05174,"56":0.17461,"68":0.0776,"75":0.37509,"78":0.27808,"81":0.93125,"84":13.71004,"85":5.36761,"86":0.05174,"87":5.61982,"90":0.17461,"91":12.75292,"92":3.8026,_:"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 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 69 70 71 72 73 74 76 77 79 80 83 88 89 93 94 95"},F:{"77":0.20048,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02575,"10.3":0.08554,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":0.07682,"13.0-13.1":0,"13.2":0.01703,"13.3":0,"13.4-13.7":2.8594,"14.0-14.4":0.17108,"14.5-14.7":0.87327},E:{"4":0,"10":0.10347,"12":0.55616,"14":4.53337,_:"0 5 6 7 8 9 11 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.08646},B:{"18":0.02587,"90":0.10347,"91":6.88089,"92":1.28693,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.1844,"5.0-5.4":0.27074,"6.2-6.4":0.03049,"7.2-7.4":0.20921,"8.2":0.07177,"9.2":0.05122,"10.1":0.12293,"11.1-11.2":0.20921,"12.0":0.0922,"13.0":0.29709,"14.0":7.76531},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.05174,"11":4.91492,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.03533},N:{"10":0.03533,"11":0.01864},L:{"0":22.49963},S:{"2.5":0},R:{_:"0"},M:{"0":0.20491},Q:{"10.4":0},O:{"0":0.20491},H:{"0":0.16055}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js index 26fe13e9a1b915..e6ff6a2eda8089 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js @@ -1 +1 @@ -module.exports={C:{"48":0.03142,"52":0.04398,"77":0.01885,"78":0.04398,"84":0.03142,"86":0.01257,"87":0.0377,"88":1.92888,"89":0.01257,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 79 80 81 82 83 85 90 91 3.5 3.6"},D:{"49":0.34557,"53":0.01257,"61":0.3707,"65":0.01257,"69":0.5529,"70":0.01257,"71":0.01885,"72":0.00628,"73":0.10053,"74":0.06283,"75":0.02513,"76":0.03142,"77":0.48379,"78":0.10053,"79":0.05655,"80":0.05655,"81":0.02513,"83":0.0377,"84":0.10681,"85":0.01885,"86":0.06283,"87":0.21362,"88":0.83564,"89":1.38854,"90":40.58818,"91":1.25032,"93":0.00628,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 62 63 64 66 67 68 92 94"},F:{"72":0.01885,"73":0.16964,"75":0.63458,"76":0.32672,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01917,"6.0-6.1":0.00101,"7.0-7.1":0.00605,"8.1-8.4":0.0222,"9.0-9.2":0,"9.3":0.09484,"10.0-10.2":0.00908,"10.3":0.39549,"11.0-11.2":0.02623,"11.3-11.4":0.06154,"12.0-12.1":0.04439,"12.2-12.4":0.12813,"13.0-13.1":0.01211,"13.2":0.00504,"13.3":0.07466,"13.4-13.7":0.4086,"14.0-14.4":6.97453,"14.5-14.6":1.41347},E:{"4":0,"11":0.01257,"12":0.02513,"13":0.10681,"14":2.89018,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01885,"10.1":0.05026,"11.1":0.0754,"12.1":0.06283,"13.1":0.67856,"14.1":0.80422},B:{"14":0.01885,"15":0.00628,"16":0.01257,"17":0.01257,"18":0.10681,"81":0.01257,"85":0.01257,"86":0.01257,"88":0.01257,"89":0.05026,"90":5.47249,"91":0.39583,_:"12 13 79 80 83 84 87"},P:{"4":0.11819,"5.0-5.4":0.01022,"6.2-6.4":0.02044,"7.2-7.4":0.31679,"8.2":0.05372,"9.2":0.02149,"10.1":0.01074,"11.1-11.2":0.07521,"12.0":0.04298,"13.0":0.3116,"14.0":2.68622},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00446,"4.2-4.3":0.00521,"4.4":0,"4.4.3-4.4.4":0.087},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.62202,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.22308},Q:{"10.4":0},O:{"0":0.13385},H:{"0":0.12672},L:{"0":24.26685}}; +module.exports={C:{"48":0.05273,"52":0.03515,"72":0.00586,"77":0.01758,"78":0.01758,"87":0.01758,"88":0.07617,"89":1.20695,"90":0.58004,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 79 80 81 82 83 84 85 86 91 92 3.5 3.6"},D:{"38":0.01758,"49":0.19921,"65":0.01172,"67":0.01172,"69":0.70308,"70":0.01758,"72":0.00586,"73":0.02344,"74":0.04101,"75":0.01172,"76":0.02344,"77":0.04687,"78":0.01758,"79":0.05859,"80":0.04687,"81":0.03515,"83":0.02344,"84":0.0293,"85":0.01172,"86":0.04101,"87":0.13476,"88":0.47458,"89":0.16991,"90":0.69722,"91":31.14644,"92":7.85692,"93":0.00586,_:"4 5 6 7 8 9 10 11 12 13 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 71 94 95"},F:{"28":0.01172,"68":0.01172,"72":0.0293,"75":0.01172,"76":0.39255,"77":0.7148,_:"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 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00821,"6.0-6.1":0,"7.0-7.1":0.01642,"8.1-8.4":0.02228,"9.0-9.2":0.00586,"9.3":0.0598,"10.0-10.2":0.00469,"10.3":0.42445,"11.0-11.2":0.034,"11.3-11.4":0.10084,"12.0-12.1":0.05394,"12.2-12.4":0.09849,"13.0-13.1":0.01642,"13.2":0.00352,"13.3":0.07504,"13.4-13.7":0.28961,"14.0-14.4":1.77634,"14.5-14.7":8.28607},E:{"4":0,"12":0.01172,"13":0.07617,"14":0.87299,"15":0.00586,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01172,"10.1":0.05859,"11.1":0.10546,"12.1":0.05859,"13.1":0.37498,"14.1":2.6014},B:{"14":0.02344,"16":0.00586,"18":0.79097,"81":0.01758,"85":0.00586,"86":0.00586,"88":0.01758,"89":0.01172,"90":0.00586,"91":4.85711,"92":1.22453,_:"12 13 15 17 79 80 83 84 87"},P:{"4":0.1922,"5.0-5.4":0.02027,"6.2-6.4":0.0304,"7.2-7.4":0.22292,"8.2":0.0304,"9.2":0.01068,"10.1":0.01068,"11.1-11.2":0.13881,"12.0":0.02136,"13.0":0.14949,"14.0":3.14987},I:{"0":0,"3":0,"4":0.00358,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00179,"4.2-4.3":0.01252,"4.4":0,"4.4.3-4.4.4":0.09392},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46872,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":26.90803},S:{"2.5":0},R:{_:"0"},M:{"0":0.21119},Q:{"10.4":0},O:{"0":0.19049},H:{"0":0.10977}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js index 62927330b51db7..ce25400458b57a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js @@ -1 +1 @@ -module.exports={C:{"52":0.02588,"56":0.00518,"57":0.00518,"69":0.01035,"72":0.00518,"78":0.0621,"82":0.00518,"83":0.01035,"84":0.01553,"85":0.01035,"86":0.01553,"87":0.05693,"88":1.9665,"89":0.03623,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 80 81 90 91 3.5 3.6"},D:{"20":0.01553,"34":0.01035,"38":0.03623,"39":0.0207,"49":0.22253,"53":0.0414,"55":0.03623,"61":0.36743,"63":0.00518,"65":0.0207,"69":0.01035,"71":0.00518,"73":0.0207,"74":0.03623,"75":0.01553,"76":0.04658,"77":0.01553,"78":0.01553,"79":0.06728,"80":0.0414,"81":0.0414,"83":0.0621,"84":0.09315,"85":0.0621,"86":0.24323,"87":0.26393,"88":0.13973,"89":1.01948,"90":34.31543,"91":1.6146,"92":0.01035,_:"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 31 32 33 35 36 37 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 62 64 66 67 68 70 72 93 94"},F:{"73":0.03623,"74":0.00518,"75":0.27428,"76":0.8487,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0111,"6.0-6.1":0.00713,"7.0-7.1":0.04121,"8.1-8.4":0.0103,"9.0-9.2":0.00159,"9.3":0.0848,"10.0-10.2":0.00515,"10.3":0.06301,"11.0-11.2":0.00753,"11.3-11.4":0.01862,"12.0-12.1":0.02378,"12.2-12.4":0.05746,"13.0-13.1":0.01466,"13.2":0.00555,"13.3":0.03804,"13.4-13.7":0.19061,"14.0-14.4":2.56623,"14.5-14.6":0.60708},E:{"4":0,"12":0.02588,"13":0.1863,"14":1.19543,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.05175,"10.1":0.00518,"11.1":0.08798,"12.1":0.10868,"13.1":0.28463,"14.1":0.3519},B:{"12":0.01035,"15":0.01035,"16":0.01035,"17":0.01553,"18":0.06728,"84":0.00518,"85":0.00518,"87":0.01035,"88":0.01553,"89":0.0621,"90":3.25508,"91":0.27428,_:"13 14 79 80 81 83 86"},P:{"4":0.31913,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.21619,"8.2":0.02003,"9.2":0.05147,"10.1":0.05147,"11.1-11.2":0.31913,"12.0":0.16471,"13.0":0.51473,"14.0":3.75751},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00124,"4.2-4.3":0.00711,"4.4":0,"4.4.3-4.4.4":0.06402},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.2834,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.193},Q:{"10.4":0},O:{"0":0.68033},H:{"0":0.58927},L:{"0":39.13388}}; +module.exports={C:{"52":0.04805,"69":0.00534,"78":0.05339,"84":0.01068,"86":0.00534,"87":0.00534,"88":0.01068,"89":1.23331,"90":0.64602,"91":0.00534,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 92 3.5 3.6"},D:{"34":0.01068,"38":0.11746,"39":0.01068,"49":0.16017,"50":0.01602,"53":0.03737,"55":0.03203,"58":0.01068,"61":0.30966,"62":0.0267,"65":0.01068,"71":0.01068,"73":0.01602,"74":0.00534,"75":0.01068,"76":0.01068,"77":0.01602,"78":0.03737,"79":0.12814,"80":0.06941,"81":0.0267,"83":0.05339,"84":0.03203,"85":0.12814,"86":0.07475,"87":0.14949,"88":0.07475,"89":0.11746,"90":0.34704,"91":31.27586,"92":6.90333,"93":0.0267,_:"4 5 6 7 8 9 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 51 52 54 56 57 59 60 63 64 66 67 68 69 70 72 94 95"},F:{"28":0.01602,"76":0.07475,"77":0.69941,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02364,"6.0-6.1":0.00253,"7.0-7.1":0.05614,"8.1-8.4":0.0076,"9.0-9.2":0.00211,"9.3":0.09034,"10.0-10.2":0.00718,"10.3":0.05361,"11.0-11.2":0.00718,"11.3-11.4":0.00844,"12.0-12.1":0.02659,"12.2-12.4":0.05192,"13.0-13.1":0.02406,"13.2":0.00253,"13.3":0.02913,"13.4-13.7":0.09794,"14.0-14.4":0.52218,"14.5-14.7":2.91694},E:{"4":0,"12":0.01068,"13":0.13881,"14":0.41644,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02136,"11.1":0.03203,"12.1":0.04271,"13.1":0.37373,"14.1":0.99839},B:{"14":0.0267,"15":0.01068,"16":0.01068,"17":0.01068,"18":0.05339,"88":0.00534,"89":0.02136,"90":0.0267,"91":3.2995,"92":0.64068,_:"12 13 79 80 81 83 84 85 86 87"},P:{"4":0.20505,"5.0-5.4":0.03026,"6.2-6.4":0.10087,"7.2-7.4":0.1948,"8.2":0.07177,"9.2":0.05126,"10.1":0.03076,"11.1-11.2":0.25632,"12.0":0.14354,"13.0":0.27682,"14.0":3.81397},I:{"0":0,"3":0,"4":0.00048,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00048,"4.2-4.3":0.00312,"4.4":0,"4.4.3-4.4.4":0.03788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.24399,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":38.77774},S:{"2.5":0},R:{_:"0"},M:{"0":0.16317},Q:{"10.4":0},O:{"0":0.68065},H:{"0":0.40164}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js index 05e52147b9ea1c..dc28c6463429ec 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js @@ -1 +1 @@ -module.exports={C:{"52":0.00549,"69":0.00275,"72":0.02196,"78":0.0302,"80":0.00275,"82":0.00824,"84":0.04118,"85":0.02745,"86":0.02471,"87":0.01922,"88":1.2929,"89":0.08235,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 73 74 75 76 77 79 81 83 90 91 3.5 3.6"},D:{"44":0.00549,"49":0.02471,"63":0.01373,"69":0.01922,"70":0.01098,"71":0.00275,"72":0.00275,"73":0.02471,"74":0.01647,"76":0.02745,"77":0.00824,"79":0.03569,"80":0.02196,"81":0.06588,"83":0.04118,"84":0.06039,"85":0.00549,"86":0.04667,"87":0.14,"88":0.12627,"89":0.59567,"90":18.17465,"91":0.69723,"92":0.01373,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 55 56 57 58 59 60 61 62 64 65 66 67 68 75 78 93 94"},F:{"63":0.00549,"71":0.00275,"73":0.01647,"74":0.00275,"75":0.10157,"76":0.06863,_:"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 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00184,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0461,"10.0-10.2":0.00369,"10.3":0.02582,"11.0-11.2":0.05348,"11.3-11.4":0.05717,"12.0-12.1":0.06454,"12.2-12.4":0.21576,"13.0-13.1":0.09221,"13.2":0.02029,"13.3":0.18626,"13.4-13.7":0.62331,"14.0-14.4":12.97702,"14.5-14.6":3.58864},E:{"4":0,"11":0.00824,"12":0.01647,"13":0.06314,"14":1.13918,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01098,"9.1":0.00275,"10.1":0.00549,"11.1":0.00549,"12.1":0.09333,"13.1":0.14823,"14.1":0.45567},B:{"12":0.00275,"13":0.00549,"15":0.00549,"16":0.00824,"17":0.00549,"18":0.0851,"80":0.00275,"84":0.00549,"85":0.01098,"87":0.00549,"88":0.02471,"89":0.02471,"90":1.10075,"91":0.09059,_:"14 79 81 83 86"},P:{"4":0.04168,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.03126,"8.2":0.01019,"9.2":0.01042,"10.1":0.04168,"11.1-11.2":0.17715,"12.0":0.09378,"13.0":0.32303,"14.0":1.97986},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02134,"4.4":0,"4.4.3-4.4.4":0.34141},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09333,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.31197},Q:{"10.4":0},O:{"0":1.13904},H:{"0":0.65251},L:{"0":51.22354}}; +module.exports={C:{"52":0.00803,"57":0.00268,"59":0.00268,"68":0.00268,"72":0.01607,"78":0.01875,"82":0.00803,"85":0.00268,"86":0.00268,"88":0.01875,"89":0.64272,"90":0.27583,"91":0.02678,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 83 84 87 92 3.5 3.6"},D:{"23":0.00268,"38":0.00268,"47":0.00803,"49":0.03749,"50":0.00536,"58":0.00536,"63":0.00268,"67":0.00268,"69":0.01071,"70":0.01875,"71":0.00536,"73":0.04017,"74":0.04553,"75":0.00268,"76":0.01875,"77":0.00803,"78":0.02142,"79":0.04017,"80":0.01071,"81":0.0482,"83":0.04285,"84":0.04285,"85":0.00536,"86":0.0241,"87":0.07498,"88":0.05356,"89":0.05624,"90":0.25709,"91":15.48152,"92":3.16272,"93":0.00536,_:"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 43 44 45 46 48 51 52 53 54 55 56 57 59 60 61 62 64 65 66 68 72 94 95"},F:{"28":0.00803,"76":0.09105,"77":0.16336,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00181,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04895,"10.0-10.2":0,"10.3":0.02357,"11.0-11.2":0.01632,"11.3-11.4":0.05076,"12.0-12.1":0.07795,"12.2-12.4":0.12871,"13.0-13.1":0.08702,"13.2":0.01813,"13.3":0.19035,"13.4-13.7":0.50036,"14.0-14.4":3.52061,"14.5-14.7":13.04005},E:{"4":0,"11":0.00536,"12":0.00536,"13":0.03749,"14":0.27583,"15":0.01875,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00268,"11.1":0.00536,"12.1":0.03481,"13.1":0.14997,"14.1":0.97479},B:{"12":0.00268,"13":0.01071,"14":0.00268,"15":0.00268,"16":0.00803,"17":0.04285,"18":0.03481,"83":0.00268,"84":0.01071,"86":0.00268,"87":0.00536,"89":0.01607,"90":0.03749,"91":1.09262,"92":0.23566,_:"79 80 81 85 88"},P:{"4":0.03108,"5.0-5.4":0.01021,"6.2-6.4":0.01021,"7.2-7.4":0.08288,"8.2":0.01036,"9.2":0.02072,"10.1":0.01063,"11.1-11.2":0.1554,"12.0":0.04144,"13.0":0.22792,"14.0":1.92699},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,"4.4":0,"4.4.3-4.4.4":0.11292},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11248,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":53.31861},S:{"2.5":0},R:{_:"0"},M:{"0":0.31485},Q:{"10.4":0.01464},O:{"0":1.32528},H:{"0":0.35353}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js index 7ee2d83d699800..07a321cc8e6ccf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js @@ -1 +1 @@ -module.exports={C:{"15":0.01557,"17":0.00311,"27":0.02803,"29":0.01868,"30":0.00311,"31":0.01246,"43":0.00623,"44":0.00311,"46":0.00623,"47":0.03114,"52":0.0218,"56":0.01246,"57":0.00623,"59":0.01246,"61":0.0218,"63":0.02491,"64":0.01868,"67":0.01246,"68":0.0218,"69":0.02491,"70":0.00311,"71":0.01557,"72":0.02803,"78":0.05294,"80":0.00623,"81":0.04982,"82":0.01557,"83":0.00623,"84":0.00934,"85":0.02803,"86":0.0218,"87":0.07785,"88":3.19808,"89":0.1557,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 28 32 33 34 35 36 37 38 39 40 41 42 45 48 49 50 51 53 54 55 58 60 62 65 66 73 74 75 76 77 79 90 91 3.5 3.6"},D:{"11":0.00311,"24":0.00311,"25":0.00623,"28":0.00934,"33":0.00311,"39":0.00311,"40":0.00623,"43":0.01868,"48":0.00311,"49":0.02491,"50":0.00623,"53":0.00311,"58":0.00934,"60":0.0218,"61":0.00311,"62":0.00934,"63":0.0218,"64":0.00311,"65":0.01246,"67":0.00934,"69":0.01557,"70":0.02803,"71":0.00623,"72":0.01868,"73":0.00934,"74":0.03737,"75":0.00934,"76":0.0218,"77":0.00934,"79":0.04671,"80":0.07474,"81":0.03114,"83":0.08719,"84":0.05294,"85":0.02491,"86":0.10899,"87":0.18061,"88":0.11522,"89":0.62903,"90":12.02315,"91":0.40482,_:"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 34 35 36 37 38 41 42 44 45 46 47 51 52 54 55 56 57 59 66 68 78 92 93 94"},F:{"33":0.01246,"34":0.00311,"36":0.00623,"40":0.00623,"42":0.01246,"48":0.12456,"50":0.00311,"63":0.00934,"64":0.00311,"68":0.00623,"72":0.00623,"73":0.00934,"74":0.00934,"75":0.44842,"76":1.01205,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 37 38 39 41 43 44 45 46 47 49 51 52 53 54 55 56 57 58 60 62 65 66 67 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00027,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0.0041,"6.0-6.1":0.00546,"7.0-7.1":0.02512,"8.1-8.4":0.00027,"9.0-9.2":0.00191,"9.3":0.03522,"10.0-10.2":0.00082,"10.3":0.03085,"11.0-11.2":0.01993,"11.3-11.4":0.03085,"12.0-12.1":0.01911,"12.2-12.4":0.09965,"13.0-13.1":0.01092,"13.2":0.00464,"13.3":0.04041,"13.4-13.7":0.21951,"14.0-14.4":1.74376,"14.5-14.6":0.28203},E:{"4":0,"12":0.00623,"13":0.01557,"14":0.14947,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.38925,"10.1":0.00623,"11.1":0.00623,"12.1":0.02491,"13.1":0.04048,"14.1":0.11522},B:{"12":0.07785,"13":0.02803,"14":0.03114,"15":0.04048,"16":0.05605,"17":0.09965,"18":0.41728,"80":0.00934,"81":0.01246,"83":0.00311,"84":0.03425,"85":0.02803,"86":0.01868,"87":0.03114,"88":0.02803,"89":0.23666,"90":2.42581,"91":0.10276,_:"79"},P:{"4":0.64169,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.1426,"8.2":0.01019,"9.2":0.08148,"10.1":0.06111,"11.1-11.2":0.11204,"12.0":0.10186,"13.0":0.61113,"14.0":1.15097},I:{"0":0,"3":0,"4":0.00154,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00231,"4.2-4.3":0.00732,"4.4":0,"4.4.3-4.4.4":0.14031},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02538,"9":0.01269,"10":0.01269,"11":0.6281,_:"6 7 5.5"},J:{"7":0,"10":0.38562},N:{"10":0.02735,"11":0.01885},S:{"2.5":0.03443},R:{_:"0"},M:{"0":0.2961},Q:{"10.4":0.0964},O:{"0":5.85999},H:{"0":14.0424},L:{"0":46.73015}}; +module.exports={C:{"4":0.00352,"5":0.00352,"10":0.01408,"21":0.00352,"27":0.06334,"29":0.02463,"30":0.00704,"37":0.00352,"39":0.00352,"40":0.00704,"43":0.00704,"47":0.02463,"52":0.05279,"56":0.00704,"57":0.00704,"59":0.02111,"61":0.01408,"62":0.00352,"63":0.0563,"64":0.00704,"65":0.06334,"66":0.01056,"69":0.02463,"72":0.02463,"76":0.00352,"77":0.01056,"78":0.03167,"79":0.01056,"80":0.01408,"81":0.07742,"82":0.00704,"83":0.00704,"84":0.00704,"85":0.00704,"86":0.0176,"87":0.01056,"88":0.12317,"89":2.15011,"90":1.22461,"91":0.11261,_:"2 3 6 7 8 9 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 28 31 32 33 34 35 36 38 41 42 44 45 46 48 49 50 51 53 54 55 58 60 67 68 70 71 73 74 75 92 3.5 3.6"},D:{"24":0.00352,"25":0.00704,"33":0.01056,"38":0.00352,"40":0.00704,"43":0.00352,"48":0.00704,"49":0.01408,"50":0.00704,"56":0.00352,"60":0.01056,"63":0.01056,"64":0.00704,"65":0.00704,"67":0.00704,"68":0.00704,"69":0.05982,"70":0.0176,"71":0.01408,"72":0.01056,"73":0.02111,"74":0.03871,"75":0.00352,"76":0.04927,"77":0.0176,"78":0.02815,"79":0.06334,"80":0.06686,"81":0.04223,"83":0.07742,"84":0.0176,"85":0.03871,"86":0.05982,"87":0.1302,"88":0.10205,"89":0.18651,"90":0.46451,"91":11.60214,"92":2.8891,"93":0.0176,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 34 35 36 37 39 41 42 44 45 46 47 51 52 53 54 55 57 58 59 61 62 66 94 95"},F:{"34":0.00704,"36":0.00704,"38":0.00352,"40":0.00352,"42":0.01408,"44":0.00352,"45":0.03167,"48":0.01056,"51":0.00352,"56":0.00704,"60":0.01056,"62":0.00352,"64":0.28856,"65":0.03871,"74":0.00704,"75":0.03871,"76":0.04927,"77":1.22109,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 39 41 43 46 47 49 50 52 53 54 55 57 58 63 66 67 68 69 70 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00704},G:{"8":0,"3.2":0.00031,"4.0-4.1":0.00094,"4.2-4.3":0.00126,"5.0-5.1":0.00063,"6.0-6.1":0.0044,"7.0-7.1":0.0198,"8.1-8.4":0.00189,"9.0-9.2":0.0088,"9.3":0.05281,"10.0-10.2":0.00314,"10.3":0.02326,"11.0-11.2":0.01195,"11.3-11.4":0.0198,"12.0-12.1":0.02075,"12.2-12.4":0.19647,"13.0-13.1":0.00597,"13.2":0.0088,"13.3":0.05784,"13.4-13.7":0.11882,"14.0-14.4":1.24733,"14.5-14.7":1.12442},E:{"4":0,"12":0.00352,"13":0.02815,"14":0.10909,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1","5.1":0.08446,"10.1":0.01056,"11.1":0.00352,"12.1":0.01408,"13.1":0.03519,"14.1":0.15132},B:{"12":0.09149,"13":0.02111,"14":0.02463,"15":0.06334,"16":0.05982,"17":0.08094,"18":0.34486,"80":0.00704,"81":0.00704,"84":0.05279,"85":0.03871,"86":0.01056,"87":0.02815,"88":0.01408,"89":0.07742,"90":0.24633,"91":2.78353,"92":0.43636,_:"79 83"},P:{"4":0.51073,"5.0-5.4":0.01021,"6.2-6.4":0.01021,"7.2-7.4":0.20429,"8.2":0.01053,"9.2":0.26558,"10.1":0.02043,"11.1-11.2":0.0715,"12.0":0.143,"13.0":0.27579,"14.0":1.30747},I:{"0":0,"3":0,"4":0.00145,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00434,"4.2-4.3":0.01085,"4.4":0,"4.4.3-4.4.4":0.15836},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00952,"11":0.57112,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.29165},N:{"11":0.01864,_:"10"},L:{"0":46.7505},S:{"2.5":0.03241},R:{_:"0"},M:{"0":0.15554},Q:{"10.4":0.01944},O:{"0":6.59766},H:{"0":10.36949}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js index 196072b87e0a47..b29bedd25b0a34 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js @@ -1 +1 @@ -module.exports={C:{"4":0.86385,"38":0.00483,"52":0.03378,"56":0.00483,"66":0.0193,"68":0.00483,"72":0.00483,"73":0.00483,"78":0.08204,"81":0.00965,"82":0.00483,"84":0.01448,"85":0.01448,"86":0.01448,"87":0.03378,"88":1.86766,"89":0.0193,_:"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 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 74 75 76 77 79 80 83 90 91 3.5 3.6"},D:{"22":0.00965,"35":0.00483,"38":0.01448,"49":0.15926,"53":0.02413,"58":0.00483,"61":0.05791,"63":0.00965,"65":0.0193,"66":0.01448,"67":0.02413,"68":0.00965,"69":0.00965,"70":0.01448,"71":0.00965,"72":0.00965,"73":0.00965,"74":0.01448,"75":0.0193,"76":0.04343,"77":0.02413,"78":0.0193,"79":0.03861,"80":0.03861,"81":0.03378,"83":0.06756,"84":0.03861,"85":0.04343,"86":0.08204,"87":0.27026,"88":0.222,"89":0.79146,"90":31.21939,"91":1.17272,"92":0.00965,_:"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 47 48 50 51 52 54 55 56 57 59 60 62 64 93 94"},F:{"73":0.14961,"74":0.00483,"75":0.65151,"76":0.52603,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00187,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00749,"6.0-6.1":0.00468,"7.0-7.1":0.01217,"8.1-8.4":0.00655,"9.0-9.2":0.00281,"9.3":0.11701,"10.0-10.2":0.00562,"10.3":0.0908,"11.0-11.2":0.01779,"11.3-11.4":0.04212,"12.0-12.1":0.02434,"12.2-12.4":0.13574,"13.0-13.1":0.02527,"13.2":0.0103,"13.3":0.0777,"13.4-13.7":0.2696,"14.0-14.4":6.36275,"14.5-14.6":1.5605},E:{"4":0,"12":0.00965,"13":0.05309,"14":1.40437,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.29439,"10.1":0.01448,"11.1":0.03861,"12.1":0.07722,"13.1":0.3523,"14.1":0.5936},B:{"12":0.00483,"14":0.00483,"15":0.00965,"16":0.00965,"17":0.0193,"18":0.12548,"84":0.00965,"85":0.00965,"86":0.00965,"87":0.00965,"88":0.01448,"89":0.05309,"90":3.15138,"91":0.19787,_:"13 79 80 81 83"},P:{"4":0.1489,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.05318,"8.2":0.02003,"9.2":0.02127,"10.1":0.02065,"11.1-11.2":0.06381,"12.0":0.03191,"13.0":0.17017,"14.0":1.04227},I:{"0":0,"3":0,"4":0.00178,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00799,"4.2-4.3":0.01243,"4.4":0,"4.4.3-4.4.4":0.0968},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01013,"9":0.00506,"11":0.29367,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.00517},R:{_:"0"},M:{"0":0.17592},Q:{"10.4":0},O:{"0":0.06209},H:{"0":0.18614},L:{"0":42.93004}}; +module.exports={C:{"4":0.86089,"48":0.00437,"52":0.03059,"56":0.00437,"66":0.02185,"68":0.00437,"72":0.00437,"73":0.00437,"78":0.06992,"81":0.00437,"84":0.01311,"85":0.00874,"86":0.00437,"87":0.00874,"88":0.03933,"89":1.14931,"90":0.63802,"91":0.01311,_:"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 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 69 70 71 74 75 76 77 79 80 82 83 92 3.5 3.6"},D:{"22":0.00874,"38":0.01311,"49":0.14858,"52":0.00874,"53":0.00874,"58":0.00874,"61":0.05244,"63":0.01311,"65":0.01748,"66":0.02622,"67":0.02185,"68":0.00437,"69":0.00874,"70":0.00874,"71":0.00437,"72":0.00437,"73":0.00874,"74":0.01311,"75":0.01748,"76":0.0437,"77":0.03059,"78":0.02185,"79":0.06118,"80":0.02622,"81":0.03059,"83":0.03933,"84":0.06555,"85":0.03059,"86":0.05681,"87":0.21413,"88":0.1311,"89":0.16606,"90":0.35834,"91":23.33143,"92":4.95995,"93":0.01311,_:"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 54 55 56 57 59 60 62 64 94 95"},F:{"75":0.00874,"76":0.35397,"77":0.87837,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0011,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00659,"6.0-6.1":0.00439,"7.0-7.1":0.01208,"8.1-8.4":0.01098,"9.0-9.2":0.00988,"9.3":0.12186,"10.0-10.2":0.00439,"10.3":0.09771,"11.0-11.2":0.02196,"11.3-11.4":0.05599,"12.0-12.1":0.02415,"12.2-12.4":0.11966,"13.0-13.1":0.02415,"13.2":0.00988,"13.3":0.07575,"13.4-13.7":0.25909,"14.0-14.4":1.51831,"14.5-14.7":7.93625},E:{"4":0,"12":0.00874,"13":0.0437,"14":0.4807,"15":0.00874,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.14421,"9.1":0.00437,"10.1":0.00874,"11.1":0.03496,"12.1":0.06118,"13.1":0.26657,"14.1":1.40714},B:{"12":0.00874,"14":0.00437,"15":0.00874,"16":0.00874,"17":0.01748,"18":0.14421,"84":0.00874,"85":0.00874,"86":0.00874,"87":0.00874,"88":0.00437,"89":0.02185,"90":0.02622,"91":2.53023,"92":0.59432,_:"13 79 80 81 83"},P:{"4":0.13681,"5.0-5.4":0.03026,"6.2-6.4":0.04058,"7.2-7.4":0.07367,"8.2":0.07177,"9.2":0.02105,"10.1":0.01052,"11.1-11.2":0.07367,"12.0":0.03157,"13.0":0.11576,"14.0":1.14712},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.0061,"4.4":0,"4.4.3-4.4.4":0.04598},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01865,"9":0.00932,"10":0.00932,"11":0.31231,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":46.6404},S:{"2.5":0.00563},R:{_:"0"},M:{"0":0.20268},Q:{"10.4":0},O:{"0":0.07319},H:{"0":0.18655}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js index e5b7fc6ab66931..1b31ec88bf294d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js @@ -1 +1 @@ -module.exports={C:{"34":0.02075,"52":0.02489,"56":0.0083,"60":0.02075,"72":0.0083,"78":0.03319,"80":0.0083,"81":0.0083,"82":0.01245,"83":0.00415,"84":0.01245,"85":0.01245,"86":0.01245,"87":0.02489,"88":1.6679,"89":0.04149,_:"2 3 4 5 6 7 8 9 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 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 90 91 3.5 3.6"},D:{"22":0.01245,"25":0.0083,"26":0.00415,"34":0.03319,"38":0.12032,"47":0.01245,"49":0.09543,"53":0.29043,"54":0.00415,"55":0.09543,"56":0.02904,"57":0.0083,"58":0.01245,"59":0.02904,"60":0.0083,"61":0.0083,"62":0.0166,"63":0.01245,"64":0.00415,"65":0.02489,"66":0.0083,"67":0.02075,"68":0.06638,"69":0.02489,"70":0.02904,"71":0.02904,"72":0.02489,"73":0.04564,"74":0.02075,"75":0.04979,"76":0.02489,"77":0.02075,"78":0.03734,"79":0.09958,"80":0.04564,"81":0.09128,"83":0.18671,"84":0.04564,"85":0.05809,"86":0.17841,"87":0.21575,"88":0.2116,"89":0.79246,"90":27.05563,"91":0.8381,"92":0.02489,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 93 94"},F:{"28":0.00415,"29":0.00415,"36":0.06224,"40":0.01245,"46":0.04564,"73":0.02904,"75":0.14936,"76":0.17426,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0037,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00247,"5.0-5.1":0.01851,"6.0-6.1":0.01851,"7.0-7.1":0.0469,"8.1-8.4":0.05184,"9.0-9.2":0.02839,"9.3":0.32708,"10.0-10.2":0.03086,"10.3":0.2234,"11.0-11.2":0.04814,"11.3-11.4":0.06295,"12.0-12.1":0.09627,"12.2-12.4":0.29622,"13.0-13.1":0.06912,"13.2":0.03086,"13.3":0.1765,"13.4-13.7":0.48877,"14.0-14.4":7.99435,"14.5-14.6":1.64034},E:{"4":0,"8":0.01245,"12":0.0083,"13":0.07053,"14":2.07035,_:"0 5 6 7 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.02489,"10.1":0.01245,"11.1":0.02904,"12.1":0.03734,"13.1":0.26554,"14.1":0.4315},B:{"17":0.00415,"18":0.02075,"84":0.0083,"86":0.0083,"88":0.0083,"89":0.02489,"90":1.40651,"91":0.06224,_:"12 13 14 15 16 79 80 81 83 85 87"},P:{"4":0.87091,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.03148,"8.2":0.01019,"9.2":0.05246,"10.1":0.02099,"11.1-11.2":0.11542,"12.0":0.08394,"13.0":0.27282,"14.0":1.39556},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00205,"4.2-4.3":0.00684,"4.4":0,"4.4.3-4.4.4":0.04377},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.01233,"9":0.00617,"11":0.20969,_:"6 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.15798},Q:{"10.4":0.0234},O:{"0":1.39839},H:{"0":0.76997},L:{"0":44.34864}}; +module.exports={C:{"34":0.02165,"52":0.01732,"53":0.00433,"56":0.00866,"60":0.01732,"63":0.00433,"72":0.00433,"78":0.03463,"80":0.00866,"82":0.00433,"84":0.0303,"85":0.00433,"87":0.00433,"88":0.0303,"89":1.00866,"90":0.45022,"91":0.01732,_:"2 3 4 5 6 7 8 9 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 55 57 58 59 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 81 83 86 92 3.5 3.6"},D:{"22":0.00866,"25":0.0303,"34":0.02597,"38":0.11688,"47":0.01299,"49":0.07792,"53":0.11255,"55":0.09091,"56":0.0303,"57":0.00433,"58":0.00866,"59":0.03463,"60":0.00866,"62":0.01732,"63":0.00866,"64":0.00866,"65":0.02165,"66":0.00866,"67":0.01732,"68":0.02165,"69":0.02165,"70":0.0303,"71":0.02597,"72":0.01732,"73":0.0303,"74":0.02165,"75":0.05628,"76":0.02165,"77":0.01732,"78":0.0303,"79":0.32035,"80":0.03896,"81":0.08225,"83":0.1342,"84":0.03896,"85":0.04762,"86":0.09091,"87":0.26407,"88":0.1645,"89":0.19048,"90":0.55844,"91":25.14716,"92":3.62337,"93":0.02597,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 61 94 95"},F:{"28":0.01299,"29":0.00433,"36":0.06061,"40":0.01299,"46":0.04762,"76":0.08658,"77":0.28571,_:"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 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00515,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00129,"5.0-5.1":0.01673,"6.0-6.1":0.01801,"7.0-7.1":0.04246,"8.1-8.4":0.05404,"9.0-9.2":0.02573,"9.3":0.32808,"10.0-10.2":0.03088,"10.3":0.23802,"11.0-11.2":0.04374,"11.3-11.4":0.05404,"12.0-12.1":0.08106,"12.2-12.4":0.23545,"13.0-13.1":0.06304,"13.2":0.02702,"13.3":0.15053,"13.4-13.7":0.50048,"14.0-14.4":2.33902,"14.5-14.7":7.8585},E:{"4":0,"8":0.01299,"12":0.00866,"13":0.15584,"14":0.66667,"15":0.00866,_:"0 5 6 7 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00433,"10.1":0.01299,"11.1":0.0303,"12.1":0.03896,"13.1":0.24675,"14.1":2.30736},B:{"18":0.01299,"84":0.00866,"89":0.00866,"90":0.00866,"91":1.32035,"92":0.25108,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.88233,"5.0-5.4":0.01021,"6.2-6.4":0.01021,"7.2-7.4":0.05315,"8.2":0.01053,"9.2":0.03189,"10.1":0.01063,"11.1-11.2":0.11694,"12.0":0.06378,"13.0":0.1382,"14.0":1.58395},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.00534,"4.4":0,"4.4.3-4.4.4":0.03736},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00703,"9":0.00703,"11":0.15476,_:"6 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":43.207},S:{"2.5":0},R:{_:"0"},M:{"0":0.14745},Q:{"10.4":0.02836},O:{"0":1.21359},H:{"0":0.7087}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js index 9882b878a0ba8d..5669eff380cd7f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.10262,"57":0.00789,"66":0.00395,"68":0.02368,"78":0.04736,"80":0.00789,"81":0.01184,"83":0.00395,"84":0.00395,"85":0.01974,"86":0.00789,"87":0.04342,"88":1.79589,"89":0.02763,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 67 69 70 71 72 73 74 75 76 77 79 82 90 91 3.5 3.6"},D:{"30":0.00789,"33":0.01184,"40":0.03552,"42":0.00789,"43":0.11052,"49":0.16577,"56":0.17367,"57":0.00395,"58":0.01184,"60":0.03158,"61":0.01974,"63":0.03158,"65":0.01974,"67":0.00395,"69":0.00789,"70":0.02763,"71":0.00789,"72":0.01184,"74":0.05131,"75":0.00789,"77":0.00789,"78":0.00395,"79":0.03158,"80":0.06315,"81":0.04736,"83":0.04342,"84":0.02368,"85":0.01974,"86":0.09473,"87":0.18551,"88":0.28024,"89":0.56837,"90":15.5275,"91":0.52495,"92":0.01974,"93":0.00395,_:"4 5 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 34 35 36 37 38 39 41 44 45 46 47 48 50 51 52 53 54 55 59 62 64 66 68 73 76 94"},F:{"36":0.00395,"42":0.00395,"53":0.01184,"68":0.01579,"73":0.22498,"74":0.01974,"75":0.74598,"76":1.3183,_:"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 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0.00165,"6.0-6.1":0.00385,"7.0-7.1":0.02088,"8.1-8.4":0.00275,"9.0-9.2":0.00055,"9.3":0.16212,"10.0-10.2":0.01154,"10.3":0.17311,"11.0-11.2":0.1863,"11.3-11.4":0.04671,"12.0-12.1":0.16816,"12.2-12.4":0.31984,"13.0-13.1":0.02418,"13.2":0.00714,"13.3":0.1253,"13.4-13.7":0.24895,"14.0-14.4":2.77303,"14.5-14.6":0.51053},E:{"4":0,"12":0.00789,"13":0.01184,"14":0.24077,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 9.1 10.1","5.1":0.05526,"7.1":0.01974,"11.1":0.01184,"12.1":0.01974,"13.1":0.08683,"14.1":0.07105},B:{"12":0.16972,"13":0.03552,"14":0.03158,"15":0.01579,"16":0.01974,"17":0.03947,"18":0.20524,"84":0.01579,"85":0.05921,"86":0.00395,"87":0.02368,"88":0.01184,"89":0.0671,"90":1.98139,"91":0.0671,_:"79 80 81 83"},P:{"4":2.23458,"5.0-5.4":0.09157,"6.2-6.4":0.02125,"7.2-7.4":0.35876,"8.2":0.02021,"9.2":0.0615,"10.1":0.01025,"11.1-11.2":0.14351,"12.0":0.11275,"13.0":0.30751,"14.0":0.68678},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00088,"4.2-4.3":0.0022,"4.4":0,"4.4.3-4.4.4":0.06349},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.55258,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.14525},N:{_:"10 11"},S:{"2.5":0.15735},R:{_:"0"},M:{"0":0.07262},Q:{"10.4":0.00605},O:{"0":0.39338},H:{"0":6.64639},L:{"0":56.43057}}; +module.exports={C:{"34":0.00806,"41":0.00806,"43":0.00806,"47":0.00403,"48":0.00403,"52":0.05239,"56":0.00403,"59":0.00403,"65":0.00806,"66":0.00403,"68":0.01612,"72":0.00806,"78":0.0403,"80":0.00403,"81":0.00806,"84":0.00806,"85":0.00806,"86":0.01209,"87":0.0403,"88":0.04433,"89":1.18885,"90":0.57629,"91":0.03224,_:"2 3 4 5 6 7 8 9 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 44 45 46 49 50 51 53 54 55 57 58 60 61 62 63 64 67 69 70 71 73 74 75 76 77 79 82 83 92 3.5 3.6"},D:{"25":0.00403,"30":0.00403,"33":0.00806,"38":0.01209,"40":0.02821,"42":0.02015,"43":0.0806,"49":0.05642,"51":0.00403,"55":0.01612,"56":0.02821,"58":0.00806,"60":0.08866,"61":0.01612,"63":0.02821,"65":0.01612,"66":0.00403,"68":0.00403,"69":0.00806,"70":0.01612,"71":0.00806,"72":0.00806,"74":0.06045,"75":0.00403,"76":0.00806,"77":0.00806,"78":0.00403,"79":0.02821,"80":0.02015,"81":0.34255,"83":0.03627,"84":0.01612,"85":0.02821,"86":0.08866,"87":0.38688,"88":0.14911,"89":0.13702,"90":0.33449,"91":13.31512,"92":3.55446,"93":0.02015,"94":0.00403,_:"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 31 32 34 35 36 37 39 41 44 45 46 47 48 50 52 53 54 57 59 62 64 67 73 95"},F:{"42":0.00403,"53":0.02821,"64":0.02015,"72":0.01612,"75":0.01209,"76":0.12493,"77":1.96261,_:"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 65 66 67 68 69 70 71 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00381,"7.0-7.1":0.03432,"8.1-8.4":0.00127,"9.0-9.2":0,"9.3":0.05021,"10.0-10.2":0.01589,"10.3":0.2676,"11.0-11.2":0.13285,"11.3-11.4":0.05339,"12.0-12.1":0.05276,"12.2-12.4":0.26251,"13.0-13.1":0.01589,"13.2":0.01526,"13.3":0.10488,"13.4-13.7":0.56063,"14.0-14.4":1.34372,"14.5-14.7":2.59782},E:{"4":0,"12":0.00806,"13":0.03224,"14":0.06851,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 9.1","5.1":0.00806,"7.1":0.02821,"10.1":0.01209,"11.1":0.00806,"12.1":0.01612,"13.1":0.07657,"14.1":0.23777},B:{"12":0.03627,"13":0.02015,"14":0.02015,"15":0.03224,"16":0.02418,"17":0.02015,"18":0.15717,"84":0.01209,"85":0.01612,"87":0.00806,"88":0.00403,"89":0.0806,"90":0.02418,"91":1.87395,"92":0.43524,_:"79 80 81 83 86"},P:{"4":1.40926,"5.0-5.4":0.27074,"6.2-6.4":0.01076,"7.2-7.4":0.17487,"8.2":0.07177,"9.2":0.04115,"10.1":0.02057,"11.1-11.2":0.20573,"12.0":0.14401,"13.0":0.14401,"14.0":0.94637},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00274,"4.2-4.3":0.00943,"4.4":0,"4.4.3-4.4.4":0.05349},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00675,"11":0.72268,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.04178},N:{"10":0.03533,"11":0.01864},L:{"0":55.45235},S:{"2.5":0.08954},R:{_:"0"},M:{"0":0.05372},Q:{"10.4":0.01194},O:{"0":0.50737},H:{"0":6.8943}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js index 5f788c946f8883..b641a874626e78 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js @@ -1 +1 @@ -module.exports={C:{"34":0.02336,"35":0.01001,"36":0.00334,"52":0.03337,"56":0.00667,"60":0.00667,"66":0.01001,"68":0.00667,"72":0.00334,"74":0.01669,"78":0.03671,"80":0.00667,"82":0.00667,"84":0.01335,"85":0.00667,"86":0.01669,"87":0.03003,"88":2.55614,"89":0.05673,"90":0.00334,_:"2 3 4 5 6 7 8 9 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 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 67 69 70 71 73 75 76 77 79 81 83 91 3.5 3.6"},D:{"39":0.02002,"40":0.00334,"42":0.00667,"48":0.00334,"49":0.11346,"53":0.00667,"56":0.00334,"57":0.00667,"58":0.00334,"60":0.00334,"63":0.01669,"65":0.01335,"67":0.00334,"68":0.00334,"69":0.01335,"70":0.0267,"71":0.01001,"74":0.0267,"75":0.01335,"76":0.01001,"77":0.01335,"78":0.00667,"79":0.03337,"80":0.02336,"81":0.01669,"83":0.1168,"84":0.02336,"85":0.01335,"86":0.06674,"87":0.26362,"88":0.07341,"89":0.62736,"90":15.1967,"91":0.64404,"92":0.00667,_:"4 5 6 7 8 9 10 11 12 13 14 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 43 44 45 46 47 50 51 52 54 55 59 61 62 64 66 72 73 93 94"},F:{"42":0.00667,"63":0.00667,"73":0.03337,"74":0.0267,"75":0.41713,"76":0.73748,_:"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 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0012,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04147,"6.0-6.1":0.0024,"7.0-7.1":0.00721,"8.1-8.4":0.04447,"9.0-9.2":0.00361,"9.3":0.07091,"10.0-10.2":0.00421,"10.3":0.27885,"11.0-11.2":0.01022,"11.3-11.4":0.02344,"12.0-12.1":0.04147,"12.2-12.4":0.13041,"13.0-13.1":0.01142,"13.2":0.01863,"13.3":0.125,"13.4-13.7":0.28125,"14.0-14.4":3.71034,"14.5-14.6":0.61719},E:{"4":0,"12":0.00334,"13":0.01335,"14":0.79421,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.0901,"10.1":0.01335,"11.1":0.01669,"12.1":0.05339,"13.1":0.22692,"14.1":0.20022},B:{"12":0.0267,"13":0.05339,"14":0.01669,"15":0.02336,"16":0.02336,"17":0.04338,"18":0.19688,"80":0.01335,"84":0.02002,"85":0.02002,"86":0.00667,"87":0.00667,"88":0.0267,"89":0.12013,"90":3.03667,"91":0.25361,_:"79 81 83"},P:{"4":0.57692,"5.0-5.4":0.01012,"6.2-6.4":0.03036,"7.2-7.4":2.02428,"8.2":0.02021,"9.2":0.21255,"10.1":0.11134,"11.1-11.2":1.00202,"12.0":0.37449,"13.0":1.52833,"14.0":3.43115},I:{"0":0,"3":0,"4":0.00029,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00132,"4.2-4.3":0.00454,"4.4":0,"4.4.3-4.4.4":0.03383},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00728,"11":0.79694,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.29317},Q:{"10.4":0.01999},O:{"0":0.92616},H:{"0":1.33732},L:{"0":54.56555}}; +module.exports={C:{"34":0.00899,"36":0.003,"43":0.003,"47":0.003,"52":0.13786,"56":0.00899,"60":0.003,"66":0.00599,"68":0.003,"72":0.00599,"76":0.00599,"78":0.04496,"80":0.00599,"82":0.003,"83":0.02697,"84":0.00599,"85":0.003,"86":0.00899,"87":0.00899,"88":0.03896,"89":1.07293,"90":0.70729,"91":0.01798,_:"2 3 4 5 6 7 8 9 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 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 77 79 81 92 3.5 3.6"},D:{"11":0.01798,"37":0.003,"38":0.00599,"46":0.00599,"49":0.0989,"56":0.00599,"57":0.01499,"58":0.003,"59":0.003,"62":0.003,"63":0.01199,"64":0.003,"65":0.00599,"68":0.00599,"69":0.01798,"70":0.02098,"71":0.01199,"72":0.003,"73":0.003,"74":0.00899,"75":0.02697,"76":0.00599,"77":0.00599,"78":0.02398,"79":0.03596,"80":0.01199,"81":0.02997,"83":0.02398,"84":0.02098,"85":0.01199,"86":0.04196,"87":0.30569,"88":0.05395,"89":0.14086,"90":0.28172,"91":11.02896,"92":3.07193,"93":0.00599,_:"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 39 40 41 42 43 44 45 47 48 50 51 52 53 54 55 60 61 66 67 94 95"},F:{"51":0.003,"73":0.02697,"75":0.003,"76":0.08691,"77":0.8032,_:"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 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00736,"6.0-6.1":0.00905,"7.0-7.1":0.00849,"8.1-8.4":0.01641,"9.0-9.2":0,"9.3":0.0764,"10.0-10.2":0.01019,"10.3":0.19014,"11.0-11.2":0.03112,"11.3-11.4":0.04584,"12.0-12.1":0.0215,"12.2-12.4":0.09111,"13.0-13.1":0.01075,"13.2":0.01019,"13.3":0.07244,"13.4-13.7":0.15279,"14.0-14.4":1.25971,"14.5-14.7":3.1057},E:{"4":0,"13":0.02398,"14":0.32068,"15":0.00899,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00899,"10.1":0.01798,"11.1":0.01199,"12.1":0.02997,"13.1":0.13786,"14.1":0.78521},B:{"12":0.02098,"13":0.10789,"14":0.00899,"15":0.05395,"16":0.03297,"17":0.03297,"18":0.13786,"80":0.01199,"84":0.01499,"85":0.00899,"86":0.003,"87":0.00899,"88":0.01199,"89":0.06294,"90":0.03297,"91":2.55045,"92":0.68032,_:"79 81 83"},P:{"4":0.57542,"5.0-5.4":0.01047,"6.2-6.4":0.05048,"7.2-7.4":2.64491,"8.2":0.07177,"9.2":0.24228,"10.1":0.11105,"11.1-11.2":1.39312,"12.0":0.42399,"13.0":1.18112,"14.0":4.94659},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.0095,"4.4":0,"4.4.3-4.4.4":0.05905},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.56344,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01401},N:{"10":0.03533,"11":0.01864},L:{"0":56.38623},S:{"2.5":0},R:{_:"0"},M:{"0":0.32914},Q:{"10.4":0},O:{"0":0.65828},H:{"0":1.31937}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js index 47506aba3ce69d..2762851d460394 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js @@ -1 +1 @@ -module.exports={C:{"30":0.00489,"45":0.01957,"48":0.04403,"52":0.07338,"60":0.02446,"66":0.00978,"68":0.22014,"71":0.00489,"78":0.48431,"79":0.00978,"80":0.01468,"81":0.00978,"83":0.00978,"84":0.04403,"85":0.04892,"86":0.03424,"87":0.06849,"88":6.73628,"89":0.02935,_:"2 3 4 5 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 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 72 73 74 75 76 77 82 90 91 3.5 3.6"},D:{"49":0.15654,"55":0.00978,"56":0.01957,"60":0.00978,"62":0.00978,"63":0.00978,"65":0.09784,"67":0.01468,"68":0.05381,"70":0.01957,"74":0.00978,"75":0.00978,"77":0.02446,"78":0.03914,"79":0.02446,"80":0.02935,"81":0.02446,"83":0.05381,"85":0.04403,"86":0.15165,"87":0.12719,"88":0.22992,"89":0.75826,"90":21.98465,"91":1.19854,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 58 59 61 64 66 69 71 72 73 76 84 92 93 94"},F:{"29":0.04892,"55":0.01468,"73":0.03424,"75":0.38158,"76":0.71423,_:"9 11 12 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 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00423,"5.0-5.1":0.00423,"6.0-6.1":0.00282,"7.0-7.1":0.00705,"8.1-8.4":0.00423,"9.0-9.2":0.00282,"9.3":0.16084,"10.0-10.2":0.01693,"10.3":0.4811,"11.0-11.2":0.05502,"11.3-11.4":0.48956,"12.0-12.1":0.03104,"12.2-12.4":0.58832,"13.0-13.1":0.03386,"13.2":0.02822,"13.3":0.17495,"13.4-13.7":0.35836,"14.0-14.4":9.337,"14.5-14.6":1.16818},E:{"4":0,"10":0.00978,"12":0.03914,"13":0.09295,"14":3.78152,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01957,"10.1":0.14187,"11.1":0.14676,"12.1":0.3033,"13.1":0.87567,"14.1":1.25724},B:{"14":0.00489,"15":0.01957,"16":0.02446,"17":0.01957,"18":0.10273,"80":0.00489,"86":0.00489,"87":0.00978,"88":0.07827,"89":0.08806,"90":4.0995,"91":0.22503,_:"12 13 79 81 83 84 85"},P:{"4":0.09615,"5.0-5.4":0.01021,"6.2-6.4":0.02137,"7.2-7.4":0.87603,"8.2":0.02137,"9.2":0.43801,"10.1":0.09615,"11.1-11.2":0.89739,"12.0":0.18162,"13.0":0.91876,"14.0":4.97841},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.00047,"4.4":0,"4.4.3-4.4.4":0.01377},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36201,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.64361},Q:{"10.4":0},O:{"0":0.01532},H:{"0":0.06287},L:{"0":30.75103}}; +module.exports={C:{"17":0.01013,"45":0.01519,"52":0.13673,"58":0.02532,"60":0.03038,"68":0.11141,"72":0.05064,"78":0.7039,"79":0.00506,"80":0.03545,"81":0.02532,"83":0.06077,"85":0.01013,"86":0.01013,"87":0.03038,"88":0.06077,"89":5.35771,"90":2.85103,"91":0.00506,_:"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 46 47 48 49 50 51 53 54 55 56 57 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 82 84 92 3.5 3.6"},D:{"38":0.01519,"49":0.10128,"56":0.02026,"57":0.04051,"58":0.00506,"63":0.00506,"65":0.11647,"67":0.03038,"72":0.04558,"74":0.01013,"75":0.00506,"77":0.01519,"78":0.06583,"79":0.02026,"80":0.03038,"81":0.07596,"83":0.03038,"85":0.06583,"86":0.16205,"87":0.06583,"88":0.05064,"89":0.13166,"90":0.66845,"91":18.42283,"92":4.88676,_:"4 5 6 7 8 9 10 11 12 13 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 59 60 61 62 64 66 68 69 70 71 73 76 84 93 94 95"},F:{"29":0.02026,"75":0.02026,"76":0.05064,"77":0.67858,_:"9 11 12 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 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00291,"5.0-5.1":0.00437,"6.0-6.1":0,"7.0-7.1":0.03932,"8.1-8.4":0,"9.0-9.2":0.00291,"9.3":0.26939,"10.0-10.2":0.01602,"10.3":0.33783,"11.0-11.2":0.03349,"11.3-11.4":0.37277,"12.0-12.1":0.10484,"12.2-12.4":0.3553,"13.0-13.1":0.02184,"13.2":0.01893,"13.3":0.18493,"13.4-13.7":0.3087,"14.0-14.4":1.909,"14.5-14.7":9.06594},E:{"4":0,"12":0.04051,"13":0.08102,"14":1.38754,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1","9.1":0.01013,"10.1":0.0709,"11.1":0.09115,"12.1":0.41018,"13.1":0.51146,"14.1":4.02082},B:{"14":0.01013,"15":0.04051,"16":0.01013,"17":0.03545,"18":0.17724,"83":0.05064,"84":0.00506,"86":0.00506,"87":0.01013,"89":0.02532,"90":0.01519,"91":3.8689,"92":0.99761,_:"12 13 79 80 81 85 88"},P:{"4":0.06447,"5.0-5.4":0.01066,"6.2-6.4":0.02149,"7.2-7.4":0.87036,"8.2":0.01075,"9.2":0.20416,"10.1":0.09671,"11.1-11.2":0.88111,"12.0":0.19341,"13.0":0.61248,"14.0":5.0825},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00325,"4.2-4.3":0.00027,"4.4":0,"4.4.3-4.4.4":0.01623},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.3798,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":29.96675},S:{"2.5":0.00494},R:{_:"0"},M:{"0":0.32584},Q:{"10.4":0},O:{"0":0.02469},H:{"0":0.04207}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js index 4e13102334a8bf..6f34eac34d7588 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js @@ -1 +1 @@ -module.exports={C:{"15":0.00398,"20":0.00597,"30":0.00995,"31":0.00199,"32":0.00199,"33":0.00199,"40":0.00398,"43":0.00199,"45":0.00199,"47":0.0179,"48":0.00199,"51":0.00398,"52":0.00199,"56":0.00597,"60":0.02984,"65":0.00199,"72":0.01392,"76":0.00398,"77":0.00796,"78":0.00796,"80":0.00398,"81":0.00199,"82":0.01591,"84":0.01193,"85":0.00796,"86":0.07956,"87":0.03182,"88":1.68071,"89":0.00796,"90":0.00199,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 21 22 23 24 25 26 27 28 29 34 35 36 37 38 39 41 42 44 46 49 50 53 54 55 57 58 59 61 62 63 64 66 67 68 69 70 71 73 74 75 79 83 91 3.5 3.6"},D:{"11":0.00398,"30":0.0358,"37":0.00597,"38":0.00199,"43":0.00995,"49":0.01591,"50":0.00398,"53":0.00199,"55":0.0179,"57":0.00597,"58":0.01989,"60":0.00199,"63":0.00199,"64":0.00199,"69":0.05171,"70":0.01193,"71":0.00398,"73":0.00398,"77":0.00199,"79":0.11934,"80":0.00398,"81":0.00995,"83":0.17304,"84":0.04376,"85":0.00796,"86":0.00597,"87":0.03182,"88":0.14321,"89":0.53504,"90":6.329,"91":0.18299,_:"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 33 34 35 36 39 40 41 42 44 45 46 47 48 51 52 54 56 59 61 62 65 66 67 68 72 74 75 76 78 92 93 94"},F:{"37":0.01193,"42":0.00597,"55":0.00398,"66":0.00199,"73":0.00796,"75":0.08951,"76":0.27846,_:"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 56 57 58 60 62 63 64 65 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00713,"8.1-8.4":0.00525,"9.0-9.2":0.0015,"9.3":0.03415,"10.0-10.2":0.00075,"10.3":0.07131,"11.0-11.2":0.06005,"11.3-11.4":0.06643,"12.0-12.1":0.1017,"12.2-12.4":0.44172,"13.0-13.1":0.02102,"13.2":0.00563,"13.3":0.13248,"13.4-13.7":0.36591,"14.0-14.4":1.49179,"14.5-14.6":0.57307},E:{"4":0,"9":0.00199,"13":0.00796,"14":0.24465,_:"0 5 6 7 8 10 11 12 3.1 3.2 6.1 9.1 11.1","5.1":0.48134,"7.1":0.00199,"10.1":0.00199,"12.1":0.00995,"13.1":0.03381,"14.1":0.11536},B:{"12":0.01989,"13":0.02586,"14":0.00199,"15":0.00398,"16":0.00995,"17":0.02586,"18":0.04973,"84":0.01392,"85":0.00796,"87":0.00199,"88":0.00398,"89":0.04774,"90":1.00246,"91":0.0716,_:"79 80 81 83 86"},P:{"4":0.11463,"5.0-5.4":0.04168,"6.2-6.4":0.0521,"7.2-7.4":0.13547,"8.2":0.01023,"9.2":0.13547,"10.1":0.09211,"11.1-11.2":0.04168,"12.0":0.11463,"13.0":0.31262,"14.0":0.33347},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00372,"4.2-4.3":0.01675,"4.4":0,"4.4.3-4.4.4":0.79665},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0215,"11":2.7631,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.03204},N:{_:"10 11"},S:{"2.5":0.04006},R:{_:"0"},M:{"0":0.15221},Q:{"10.4":0.48066},O:{"0":1.79446},H:{"0":5.55171},L:{"0":70.53097}}; +module.exports={C:{"3":0.02056,"20":0.00617,"25":0.00411,"30":0.0185,"31":0.00411,"33":0.00206,"34":0.00206,"47":0.01234,"48":0.00411,"49":0.01028,"51":0.00411,"52":0.01234,"55":0.00822,"56":0.00411,"59":0.00206,"63":0.00206,"65":0.00411,"67":0.00822,"68":0.00206,"71":0.00206,"72":0.00822,"76":0.00206,"78":0.01028,"80":0.00822,"85":0.00411,"87":0.00822,"88":0.02673,"89":0.88819,"90":0.45438,"91":0.00411,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 26 27 28 29 32 35 36 37 38 39 40 41 42 43 44 45 46 50 53 54 57 58 60 61 62 64 66 69 70 73 74 75 77 79 81 82 83 84 86 92 3.5 3.6"},D:{"11":0.01234,"29":0.0329,"33":0.00822,"37":0.00411,"40":0.00822,"43":0.00411,"49":0.02262,"50":0.00206,"55":0.01028,"58":0.01645,"60":0.00206,"61":0.00206,"63":0.00822,"64":0.00206,"65":0.09869,"67":0.00411,"68":0.00822,"69":0.02467,"70":0.01234,"71":0.00411,"72":0.00206,"74":0.00206,"76":0.00617,"77":0.01234,"78":0.00411,"79":0.05551,"80":0.02262,"81":0.01234,"83":0.00411,"84":0.09869,"85":0.01028,"86":0.04934,"87":0.04523,"88":0.12336,"89":0.02262,"90":0.11719,"91":5.01664,"92":0.81829,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 34 35 36 38 39 41 42 44 45 46 47 48 51 52 53 54 56 57 59 62 66 73 75 93 94 95"},F:{"21":0.00822,"26":0.00206,"36":0.00206,"42":0.00617,"53":0.00206,"63":0.00617,"64":0.00411,"68":0.00411,"72":0.00411,"76":0.00617,"77":0.34746,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 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 65 66 67 69 70 71 73 74 75 10.5 10.6 11.1 11.5 11.6 12.1","9.5-9.6":0.00411,"10.0-10.1":0},G:{"8":0.0021,"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.01263,"8.1-8.4":0.01768,"9.0-9.2":0,"9.3":0.04252,"10.0-10.2":0,"10.3":0.02484,"11.0-11.2":0.08251,"11.3-11.4":0.14692,"12.0-12.1":0.04126,"12.2-12.4":0.51359,"13.0-13.1":0.04168,"13.2":0.01095,"13.3":0.1023,"13.4-13.7":0.23533,"14.0-14.4":1.0777,"14.5-14.7":1.50036},E:{"4":0.02467,"14":0.0699,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.04934,"10.1":0.01234,"12.1":0.00411,"13.1":0.0329,"14.1":0.62914},B:{"12":0.01028,"13":0.01234,"14":0.01028,"15":0.00822,"16":0.00411,"17":0.02878,"18":0.02878,"84":0.01439,"85":0.0329,"89":0.05346,"90":0.0185,"91":1.0609,"92":0.40092,_:"79 80 81 83 86 87 88"},P:{"4":0.18276,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.07525,"8.2":0.01075,"9.2":0.07525,"10.1":0.05114,"11.1-11.2":0.0645,"12.0":0.043,"13.0":0.12901,"14.0":0.61278},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.01117,"4.4":0,"4.4.3-4.4.4":0.4144},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":1.29817,"9":0.28221,"10":0.42896,"11":2.7318,_:"6 7 5.5"},J:{"7":0,"10":0.00794},N:{"10":0.03533,"11":0.01864},L:{"0":71.39155},S:{"2.5":0.09532},R:{_:"0"},M:{"0":0.1668},Q:{"10.4":0.36538},O:{"0":1.96192},H:{"0":3.75244}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js index 732061d7537cd1..8c64de20ed2843 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js @@ -1 +1 @@ -module.exports={C:{"82":0.10851,"84":0.10851,"86":0.10851,"87":0.97658,"88":2.71273,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 89 90 91 3.5 3.6"},D:{"79":0.10851,"81":2.06167,"88":0.32553,"89":1.41062,"90":32.35282,"91":1.51913,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 80 83 84 85 86 87 92 93 94"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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":3.9729,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.22795,"11.3-11.4":0,"12.0-12.1":0.11398,"12.2-12.4":0.79512,"13.0-13.1":0.11398,"13.2":0,"13.3":0.11398,"13.4-13.7":1.36501,"14.0-14.4":13.96756,"14.5-14.6":2.27139},E:{"4":0,"12":1.62764,"14":2.49571,_:"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 12.1 13.1 14.1"},B:{"18":0.32553,"90":4.88862,"91":0.21702,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.05484,"5.0-5.4":0.01097,"6.2-6.4":0.0521,"7.2-7.4":0.05484,"8.2":0.01023,"9.2":0.63259,"10.1":0.24863,"11.1-11.2":0.07678,"12.0":0.06581,"13.0":0.49726,"14.0":3.49164},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":3.14676,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12438},Q:{"10.4":0},O:{"0":1.87},H:{"0":0},L:{"0":14.89395}}; +module.exports={C:{"45":0.28598,"78":0.09326,"82":0.09326,"89":5.75694,"90":2.64223,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 83 84 85 86 87 88 91 92 3.5 3.6"},D:{"49":0.94498,"74":0.28598,"81":1.51073,"89":0.18651,"91":29.71726,"92":4.43272,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 75 76 77 78 79 80 83 84 85 86 87 88 90 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.67046,"10.0-10.2":0,"10.3":0.29781,"11.0-11.2":0.37266,"11.3-11.4":0,"12.0-12.1":0.07485,"12.2-12.4":4.1677,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.52076,"14.0-14.4":1.11478,"14.5-14.7":7.81463},E:{"4":0,"14":2.54897,_:"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 13.1","12.1":0.18651,"14.1":1.51073},B:{"16":0.28598,"85":0.18651,"91":4.62545,"92":3.39448,_:"12 13 14 15 17 18 79 80 81 83 84 86 87 88 89 90"},P:{"4":0.11783,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.05545,"8.2":0.01075,"9.2":0.04436,"10.1":1.46111,"11.1-11.2":0.11783,"12.0":0.05545,"13.0":0.14091,"14.0":8.36601},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.13149,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":13.23994},S:{"2.5":0},R:{_:"0"},M:{"0":0.24211},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js index 587d49208f5e97..801a072956b85e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js @@ -1 +1 @@ -module.exports={C:{"4":0.00168,"5":0.00337,"15":0.00337,"17":0.00505,"28":0.00337,"39":0.00168,"43":0.04042,"47":0.01516,"48":0.0101,"52":0.02694,"56":0.00674,"57":0.00505,"58":0.00168,"60":0.00168,"61":0.00168,"65":0.00337,"66":0.00168,"68":0.00168,"69":0.00168,"70":0.00337,"71":0.00168,"72":0.0101,"76":0.00337,"77":0.00168,"78":0.04042,"79":0.00674,"80":0.01516,"81":0.00505,"82":0.00337,"83":0.00674,"84":0.01347,"85":0.02863,"86":0.02189,"87":0.03536,"88":1.21248,"89":0.09094,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 40 41 42 44 45 46 49 50 51 53 54 55 59 62 63 64 67 73 74 75 90 91 3.5 3.6"},D:{"11":0.00168,"23":0.00337,"24":0.00505,"25":0.00337,"34":0.00505,"35":0.00505,"37":0.00842,"38":0.00337,"41":0.00337,"47":0.02021,"48":0.00337,"49":0.03031,"50":0.0101,"53":0.00842,"55":0.01347,"56":0.00505,"57":0.00337,"58":0.02021,"60":0.00168,"61":0.00505,"62":0.01347,"63":0.0101,"64":0.02021,"65":0.00505,"66":0.00337,"67":0.00337,"68":0.00842,"69":0.01179,"70":0.01347,"71":0.00674,"72":0.00674,"73":0.00505,"74":0.01347,"75":0.0101,"76":0.01179,"77":0.01516,"78":0.00674,"79":0.04715,"80":0.04884,"81":0.04042,"83":0.032,"84":0.01684,"85":0.02358,"86":0.06736,"87":0.19198,"88":0.12462,"89":0.33006,"90":6.17523,"91":0.17682,"92":0.02189,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 36 39 40 42 43 44 45 46 51 52 54 59 93 94"},F:{"32":0.00168,"33":0.00168,"36":0.02189,"53":0.00337,"62":0.00337,"63":0.00674,"64":0.00842,"73":0.0101,"74":0.00674,"75":0.14482,"76":0.24755,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00103,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0.00103,"6.0-6.1":0.0036,"7.0-7.1":0.00412,"8.1-8.4":0.00103,"9.0-9.2":0.00103,"9.3":0.04633,"10.0-10.2":0.00566,"10.3":0.04016,"11.0-11.2":0.11223,"11.3-11.4":0.04891,"12.0-12.1":0.0798,"12.2-12.4":0.30633,"13.0-13.1":0.08701,"13.2":0.03707,"13.3":0.2327,"13.4-13.7":0.54984,"14.0-14.4":2.81253,"14.5-14.6":0.36811},E:{"4":0,"11":0.00337,"12":0.00337,"13":0.01852,"14":0.14482,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.08588,"10.1":0.00337,"11.1":0.00337,"12.1":0.00842,"13.1":0.0421,"14.1":0.04884},B:{"12":0.01347,"13":0.00168,"14":0.00337,"15":0.00505,"16":0.00505,"17":0.00505,"18":0.04884,"83":0.00168,"84":0.00674,"85":0.00842,"86":0.00337,"87":0.00505,"88":0.01684,"89":0.04042,"90":0.58603,"91":0.01516,_:"79 80 81"},P:{"4":0.05484,"5.0-5.4":0.01097,"6.2-6.4":0.0521,"7.2-7.4":0.05484,"8.2":0.01023,"9.2":0.04387,"10.1":0.01097,"11.1-11.2":0.07678,"12.0":0.06581,"13.0":0.25228,"14.0":0.46069},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01231,"4.2-4.3":0.02871,"4.4":0,"4.4.3-4.4.4":0.57429},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02701,"9":0.04051,"10":0.0054,"11":0.07022,_:"6 7 5.5"},J:{"7":0,"10":0.02495},N:{_:"10 11"},S:{"2.5":0.01663},R:{_:"0"},M:{"0":0.26608},Q:{"10.4":0.00832},O:{"0":1.3304},H:{"0":36.64465},L:{"0":41.70325}}; +module.exports={C:{"4":0.0022,"15":0.0022,"17":0.0022,"43":0.05049,"47":0.01756,"48":0.00659,"52":0.02634,"56":0.00878,"65":0.0022,"68":0.0022,"72":0.01098,"77":0.0022,"78":0.03293,"79":0.00659,"80":0.00439,"81":0.00659,"82":0.00439,"83":0.00878,"84":0.00878,"85":0.03293,"86":0.01537,"87":0.00659,"88":0.02854,"89":1.10628,"90":0.56192,"91":0.03951,_:"2 3 5 6 7 8 9 10 11 12 13 14 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 44 45 46 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 67 69 70 71 73 74 75 76 92 3.5 3.6"},D:{"23":0.00439,"24":0.0022,"37":0.0022,"38":0.0022,"39":0.00439,"47":0.02634,"49":0.02195,"50":0.00439,"53":0.0022,"55":0.00659,"56":0.00439,"57":0.01098,"58":0.01756,"60":0.0022,"61":0.00659,"62":0.01098,"63":0.00878,"64":0.02415,"65":0.00439,"66":0.00439,"67":0.0022,"68":0.00659,"69":0.00439,"70":0.02634,"71":0.01098,"72":0.00659,"73":0.00659,"74":0.01537,"75":0.01317,"76":0.01098,"77":0.02195,"78":0.00878,"79":0.0461,"80":0.05927,"81":0.05049,"83":0.03732,"84":0.02195,"85":0.02634,"86":0.09219,"87":0.15365,"88":0.06805,"89":0.09658,"90":0.23706,"91":7.19302,"92":1.47065,"93":0.01537,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 30 31 32 33 34 35 36 40 41 42 43 44 45 46 48 51 52 54 59 94 95"},F:{"36":0.01976,"53":0.00439,"62":0.0022,"63":0.00439,"64":0.03512,"65":0.0022,"75":0.00439,"76":0.02854,"77":0.42583,_:"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 54 55 56 57 58 60 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00122,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00122,"5.0-5.1":0.00183,"6.0-6.1":0.00548,"7.0-7.1":0.00609,"8.1-8.4":0,"9.0-9.2":0.00061,"9.3":0.04204,"10.0-10.2":0.00305,"10.3":0.04447,"11.0-11.2":0.1657,"11.3-11.4":0.03899,"12.0-12.1":0.06275,"12.2-12.4":0.28328,"13.0-13.1":0.08773,"13.2":0.03229,"13.3":0.22845,"13.4-13.7":0.51478,"14.0-14.4":2.25651,"14.5-14.7":1.81118},E:{"4":0,"8":0.0022,"12":0.00878,"13":0.02634,"14":0.10756,"15":0.0022,_:"0 5 6 7 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.02195,"10.1":0.0022,"11.1":0.00439,"12.1":0.01537,"13.1":0.06146,"14.1":0.14926},B:{"12":0.01756,"13":0.00439,"14":0.00439,"15":0.00659,"16":0.00659,"17":0.00659,"18":0.05488,"84":0.00659,"85":0.01098,"88":0.01756,"89":0.01976,"90":0.02195,"91":0.75289,"92":0.1756,_:"79 80 81 83 86 87"},P:{"4":0.01109,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.05545,"8.2":0.01075,"9.2":0.04436,"10.1":0.05114,"11.1-11.2":0.07763,"12.0":0.05545,"13.0":0.14417,"14.0":0.66539},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.00295,"4.4":0,"4.4.3-4.4.4":0.05821},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01219,"10":0.00406,"11":0.09349,_:"6 7 9 5.5"},J:{"7":0,"10":0.01561},N:{"10":0.03533,"11":0.01864},L:{"0":45.45116},S:{"2.5":0.01561},R:{_:"0"},M:{"0":0.30436},Q:{"10.4":0.01561},O:{"0":1.49056},H:{"0":29.58285}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js index 874522bb1ea019..c025fc1cf6dd65 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js @@ -1 +1 @@ -module.exports={C:{"36":0.03658,"43":0.00914,"52":0.01372,"72":0.00914,"75":0.032,"78":0.032,"79":0.01372,"81":0.01372,"83":0.00914,"84":0.00914,"85":0.01372,"86":0.01829,"87":0.04572,"88":2.1717,"89":0.01372,_:"2 3 4 5 6 7 8 9 10 11 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 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 80 82 90 91 3.5 3.6"},D:{"31":0.01372,"38":0.00457,"49":0.07772,"53":0.01372,"55":0.00457,"63":0.00914,"65":0.00457,"69":0.01372,"70":0.01829,"71":0.00457,"72":0.00914,"73":0.00457,"74":0.00914,"75":0.04115,"76":0.05029,"77":0.01372,"78":0.00914,"79":0.05486,"80":0.032,"81":0.032,"83":0.02286,"84":0.01829,"85":0.02743,"86":0.05486,"87":0.22403,"88":0.2286,"89":3.55244,"90":27.14854,"91":0.89154,"92":0.02286,_:"4 5 6 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 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 62 64 66 67 68 93 94"},F:{"29":0.00457,"73":0.15545,"74":0.01829,"75":0.61722,"76":0.53492,_:"9 11 12 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 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00442,"7.0-7.1":0.02696,"8.1-8.4":0,"9.0-9.2":0.00133,"9.3":0.06365,"10.0-10.2":0.01238,"10.3":0.04332,"11.0-11.2":0.01989,"11.3-11.4":0.01282,"12.0-12.1":0.01459,"12.2-12.4":0.10122,"13.0-13.1":0.01414,"13.2":0.00663,"13.3":0.05304,"13.4-13.7":0.15205,"14.0-14.4":2.65918,"14.5-14.6":0.91144},E:{"4":0,"13":0.07315,"14":0.62179,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.143,"11.1":0.02286,"12.1":0.02286,"13.1":0.09601,"14.1":0.17831},B:{"12":0.00914,"13":0.01372,"14":0.00914,"15":0.00457,"16":0.01829,"17":0.00914,"18":0.0823,"80":0.00457,"84":0.01372,"85":0.02743,"87":0.01372,"88":0.02286,"89":0.05944,"90":2.45059,"91":0.14173,_:"79 81 83 86"},P:{"4":0.40937,"5.0-5.4":0.01023,"6.2-6.4":0.05117,"7.2-7.4":0.25585,"8.2":0.01023,"9.2":0.18422,"10.1":0.09211,"11.1-11.2":0.47077,"12.0":0.17398,"13.0":0.68569,"14.0":1.94449},I:{"0":0,"3":0,"4":0.00099,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00395,"4.2-4.3":0.00691,"4.4":0,"4.4.3-4.4.4":0.09672},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11887,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01086},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12484},Q:{"10.4":0},O:{"0":0.20084},H:{"0":0.35972},L:{"0":48.79488}}; +module.exports={C:{"36":0.01395,"52":0.01395,"65":0.00465,"72":0.00465,"78":0.02789,"81":0.00465,"84":0.0093,"85":0.0093,"86":0.0093,"87":0.01395,"88":0.08368,"89":1.32961,"90":0.77173,"91":0.0186,_:"2 3 4 5 6 7 8 9 10 11 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 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 82 83 92 3.5 3.6"},D:{"38":0.02789,"49":0.06044,"53":0.00465,"56":0.0093,"63":0.0093,"65":0.00465,"66":0.0093,"67":0.00465,"69":0.0093,"70":0.01395,"71":0.0093,"72":0.00465,"73":0.0093,"74":0.0093,"75":0.07438,"76":0.04649,"77":0.01395,"78":0.0093,"79":0.05579,"80":0.03254,"81":0.02325,"83":0.0186,"84":0.0186,"85":0.04649,"86":0.04184,"87":0.18131,"88":0.07903,"89":2.78475,"90":0.33938,"91":22.59879,"92":6.86192,"93":0.01395,_:"4 5 6 7 8 9 10 11 12 13 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 58 59 60 61 62 64 68 94 95"},F:{"29":0.0093,"46":0.01395,"74":0.00465,"75":0.01395,"76":0.34868,"77":0.98559,_:"9 11 12 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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0,"3.2":0.0005,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01403,"6.0-6.1":0.00351,"7.0-7.1":0.02907,"8.1-8.4":0.0015,"9.0-9.2":0,"9.3":0.05713,"10.0-10.2":0.0015,"10.3":0.0451,"11.0-11.2":0.02055,"11.3-11.4":0.01253,"12.0-12.1":0.01253,"12.2-12.4":0.0867,"13.0-13.1":0.01804,"13.2":0.00802,"13.3":0.04109,"13.4-13.7":0.11777,"14.0-14.4":0.80535,"14.5-14.7":3.36974},E:{"4":0,"13":0.0093,"14":0.2371,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.53928,"11.1":0.0186,"12.1":0.01395,"13.1":0.08833,"14.1":0.59972},B:{"12":0.00465,"13":0.0093,"15":0.00465,"16":0.0186,"17":0.0093,"18":0.05579,"84":0.0093,"85":0.02325,"87":0.00465,"88":0.0093,"89":0.02325,"90":0.02789,"91":1.98512,"92":0.4835,_:"14 79 80 81 83 86"},P:{"4":0.36821,"5.0-5.4":0.02046,"6.2-6.4":0.0716,"7.2-7.4":0.31707,"8.2":0.01075,"9.2":0.13296,"10.1":0.05114,"11.1-11.2":0.47049,"12.0":0.11251,"13.0":0.49094,"14.0":2.35244},I:{"0":0,"3":0,"4":0.0014,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00328,"4.2-4.3":0.00702,"4.4":0,"4.4.3-4.4.4":0.06321},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23245,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":48.14992},S:{"2.5":0.00535},R:{_:"0"},M:{"0":0.17123},Q:{"10.4":0},O:{"0":0.18193},H:{"0":0.35968}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js index 64d100c9409c36..9a5a0f2e4b78fc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js @@ -1 +1 @@ -module.exports={C:{"48":0.01027,"52":0.04108,"56":0.00514,"60":0.01027,"66":0.00514,"68":0.01027,"78":0.12838,"79":0.01027,"80":0.01027,"81":0.02054,"82":0.01541,"83":0.01027,"84":0.02568,"85":0.01541,"86":0.06676,"87":0.07703,"88":2.77804,"89":0.02568,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 90 91 3.5 3.6"},D:{"38":0.00514,"47":0.02054,"48":0.01027,"49":0.35432,"52":0.02568,"53":0.01027,"58":0.00514,"59":0.03081,"61":0.23621,"63":0.01027,"64":0.13865,"65":0.01027,"66":0.01541,"67":0.01541,"68":0.01027,"69":0.02568,"70":0.15405,"71":0.01027,"72":0.25675,"73":0.02054,"74":0.01541,"75":0.02568,"76":0.07189,"77":0.02568,"78":0.02054,"79":0.31324,"80":0.20027,"81":0.04108,"83":0.12838,"84":0.11297,"85":0.1027,"86":0.44675,"87":0.32351,"88":0.36459,"89":1.47375,"90":25.22312,"91":0.52377,"92":0.03081,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 54 55 56 57 60 62 93 94"},F:{"69":0.00514,"73":0.05649,"74":0.01027,"75":0.28756,"76":0.32351,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00372,"6.0-6.1":0.00558,"7.0-7.1":0.00558,"8.1-8.4":0.00744,"9.0-9.2":0.04277,"9.3":0.18225,"10.0-10.2":0.00744,"10.3":0.18969,"11.0-11.2":0.0279,"11.3-11.4":0.05207,"12.0-12.1":0.03719,"12.2-12.4":0.21014,"13.0-13.1":0.04649,"13.2":0.02604,"13.3":0.15435,"13.4-13.7":0.54861,"14.0-14.4":13.81557,"14.5-14.6":2.35064},E:{"4":0,"11":0.00514,"12":0.01541,"13":0.11811,"14":4.42124,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02054,"11.1":0.07703,"12.1":0.12324,"13.1":0.66755,"14.1":1.53537},B:{"17":0.01541,"18":0.07189,"84":0.01027,"85":0.01541,"86":0.02054,"87":0.02054,"88":0.02054,"89":0.14892,"90":5.88985,"91":0.09243,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.02125,"5.0-5.4":0.01021,"6.2-6.4":0.03036,"7.2-7.4":0.06356,"8.2":0.02021,"9.2":0.02125,"10.1":0.02125,"11.1-11.2":0.07439,"12.0":0.07439,"13.0":0.36131,"14.0":5.13279},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.0103,"4.4":0,"4.4.3-4.4.4":0.05465},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02544,"9":0.05087,"10":0.01272,"11":1.27175,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.39407},Q:{"10.4":0.0146},O:{"0":0.45731},H:{"0":0.33623},L:{"0":24.75901}}; +module.exports={C:{"44":0.00498,"48":0.00995,"52":0.03483,"56":0.00995,"60":0.01493,"66":0.00995,"68":0.00995,"69":0.00498,"70":0.00498,"74":0.00995,"77":0.00498,"78":0.15423,"79":0.01493,"80":0.01493,"81":0.0199,"82":0.00995,"83":0.00995,"84":0.02488,"85":0.00995,"86":0.00995,"87":0.01493,"88":0.10448,"89":1.93528,"90":1.1343,"91":0.00995,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 55 57 58 59 61 62 63 64 65 67 71 72 73 75 76 92 3.5 3.6"},D:{"38":0.00498,"47":0.0199,"48":0.02985,"49":0.41293,"52":0.0796,"53":0.00498,"58":0.00498,"59":0.00498,"61":0.24378,"63":0.00995,"64":0.08955,"65":0.00995,"66":0.01493,"67":0.01493,"68":0.00498,"69":0.03483,"70":0.12935,"71":0.01493,"72":0.1194,"73":0.01493,"74":0.0199,"75":0.02985,"76":0.10945,"77":0.02488,"78":0.02488,"79":0.24875,"80":0.16418,"81":0.02488,"83":0.10448,"84":0.13433,"85":0.13433,"86":0.14925,"87":0.44278,"88":0.16418,"89":0.27363,"90":0.60198,"91":19.8602,"92":4.32328,"93":0.00995,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 54 55 56 57 60 62 94 95"},F:{"67":0.00995,"68":0.00498,"74":0.00995,"76":0.12438,"77":0.5771,_:"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 69 70 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00749,"6.0-6.1":0,"7.0-7.1":0.00562,"8.1-8.4":0.00749,"9.0-9.2":0.09181,"9.3":0.15551,"10.0-10.2":0.00937,"10.3":0.18174,"11.0-11.2":0.02436,"11.3-11.4":0.05621,"12.0-12.1":0.0356,"12.2-12.4":0.17799,"13.0-13.1":0.04122,"13.2":0.02061,"13.3":0.13115,"13.4-13.7":0.47777,"14.0-14.4":2.43009,"14.5-14.7":13.98471},E:{"4":0,"11":0.00995,"12":0.01493,"13":0.08955,"14":1.0348,"15":0.0199,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01493,"11.1":0.06468,"12.1":0.10448,"13.1":1.13928,"14.1":4.52725},B:{"17":0.01493,"18":0.0597,"84":0.01493,"85":0.00995,"86":0.01493,"87":0.00995,"88":0.00995,"89":0.0398,"90":0.04975,"91":4.6964,"92":1.26863,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.03199,"5.0-5.4":0.01066,"6.2-6.4":0.06139,"7.2-7.4":0.0549,"8.2":0.07177,"9.2":0.01066,"10.1":0.11105,"11.1-11.2":0.04265,"12.0":0.06398,"13.0":0.19195,"14.0":5.2359},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00286,"4.2-4.3":0.01145,"4.4":0,"4.4.3-4.4.4":0.06106},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01382,"8":0.06912,"9":0.0553,"10":0.02765,"11":1.27188,_:"7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":26.7971},S:{"2.5":0},R:{_:"0"},M:{"0":0.46733},Q:{"10.4":0.01508},O:{"0":0.47738},H:{"0":0.34729}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js index 47c8acbdfbc653..ab862d23eaf31d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js @@ -1 +1 @@ -module.exports={C:{"52":0.01405,"59":0.01405,"78":0.07726,"84":0.00702,"85":0.00702,"86":0.03512,"87":0.07024,"88":1.48909,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 89 90 91 3.5 3.6"},D:{"38":0.00702,"49":0.07726,"59":0.00702,"63":0.00702,"65":0.01405,"66":0.07726,"67":0.0281,"69":0.13346,"70":0.00702,"72":0.01405,"73":0.02107,"75":0.01405,"76":0.01405,"77":0.02107,"78":0.01405,"79":0.04214,"80":0.0281,"81":0.02107,"83":0.03512,"84":0.03512,"85":15.15779,"86":0.06322,"87":0.19667,"88":0.44954,"89":1.31349,"90":37.67674,"91":0.33715,_:"4 5 6 7 8 9 10 11 12 13 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 60 61 62 64 68 71 74 92 93 94"},F:{"73":0.11941,"75":0.50573,"76":0.34418,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00169,"6.0-6.1":0,"7.0-7.1":0.02024,"8.1-8.4":0.00843,"9.0-9.2":0.00337,"9.3":0.09951,"10.0-10.2":0.00506,"10.3":0.14336,"11.0-11.2":0.0253,"11.3-11.4":0.07084,"12.0-12.1":0.04723,"12.2-12.4":0.14168,"13.0-13.1":0.03373,"13.2":0.01855,"13.3":0.13324,"13.4-13.7":0.37443,"14.0-14.4":13.25506,"14.5-14.6":1.99863},E:{"4":0,"12":0.02107,"13":0.12643,"14":4.27059,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02107,"11.1":0.05619,"12.1":0.11238,"13.1":0.64621,"14.1":1.51016},B:{"17":0.01405,"18":0.04917,"83":0.00702,"84":0.00702,"85":0.0281,"86":0.01405,"87":0.01405,"88":0.01405,"89":0.11941,"90":3.44878,"91":0.04917,_:"12 13 14 15 16 79 80 81"},P:{"4":0.0429,"5.0-5.4":0.01097,"6.2-6.4":0.0521,"7.2-7.4":0.05484,"8.2":0.01023,"9.2":0.58995,"10.1":0.02145,"11.1-11.2":0.01073,"12.0":0.02145,"13.0":0.11799,"14.0":2.19883},I:{"0":0,"3":0,"4":0.00039,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00235,"4.4":0,"4.4.3-4.4.4":0.01213},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34418,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.1547},Q:{"10.4":0},O:{"0":0.03273},H:{"0":0.14083},L:{"0":11.01566}}; +module.exports={C:{"52":0.01399,"59":0.02098,"78":0.06294,"87":0.01399,"88":0.11888,"89":0.93706,"90":0.48951,"91":0.00699,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 92 3.5 3.6"},D:{"38":0.00699,"49":0.02797,"65":0.00699,"66":0.0979,"67":0.01399,"69":0.15385,"70":0.00699,"74":0.00699,"75":0.01399,"76":0.00699,"79":0.03497,"80":0.02098,"81":0.01399,"83":0.01399,"84":0.01399,"85":13.70628,"86":0.02797,"87":0.16084,"88":0.14685,"89":0.07692,"90":0.32867,"91":41.32863,"92":2.39161,_:"4 5 6 7 8 9 10 11 12 13 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 68 71 72 73 77 78 93 94 95"},F:{"76":0.24476,"77":0.62937,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00336,"6.0-6.1":0,"7.0-7.1":0.01513,"8.1-8.4":0.01009,"9.0-9.2":0.00168,"9.3":0.08238,"10.0-10.2":0.00504,"10.3":0.17652,"11.0-11.2":0.01681,"11.3-11.4":0.08238,"12.0-12.1":0.03699,"12.2-12.4":0.11264,"13.0-13.1":0.02354,"13.2":0.01345,"13.3":0.10928,"13.4-13.7":0.28076,"14.0-14.4":2.35534,"14.5-14.7":13.00564},E:{"4":0,"12":0.00699,"13":0.06993,"14":0.76224,"15":0.01399,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02098,"11.1":0.04895,"12.1":0.06993,"13.1":0.34965,"14.1":2.78321},B:{"17":0.01399,"18":0.02797,"84":0.01399,"85":0.00699,"86":0.00699,"89":0.01399,"90":0.02098,"91":2.62238,"92":0.62238,_:"12 13 14 15 16 79 80 81 83 87 88"},P:{"4":0.04305,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.01076,"12.0":0.02152,"13.0":0.06457,"14.0":2.31381},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00075,"4.2-4.3":0.00226,"4.4":0,"4.4.3-4.4.4":0.01203},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23776,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":11.42135},S:{"2.5":0},R:{_:"0"},M:{"0":0.19546},Q:{"10.4":0},O:{"0":0.03308},H:{"0":0.17366}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js index d29c2f487efc7b..f7ea9652407ca4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js @@ -1 +1 @@ -module.exports={C:{"52":0.04768,"70":0.00207,"71":0.00415,"76":0.00415,"78":0.03731,"83":0.00207,"84":0.00622,"85":0.00622,"86":0.00622,"87":0.16791,"88":0.98468,"89":0.0767,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 72 73 74 75 77 79 80 81 82 90 91 3.5 3.6"},D:{"11":0.00207,"32":0.00207,"33":0.00207,"38":0.00415,"43":0.00207,"47":0.00207,"49":0.01658,"53":0.00622,"58":0.00207,"60":0.00415,"61":0.00415,"63":0.01244,"64":0.00829,"65":0.00622,"67":0.00415,"69":0.00415,"70":0.00415,"71":0.00622,"72":0.00207,"73":0.00415,"74":0.00415,"75":0.00415,"76":0.00622,"77":0.00415,"78":0.00622,"79":0.03317,"80":0.01244,"81":0.01451,"83":0.01658,"84":0.03317,"85":0.02073,"86":0.03524,"87":0.08085,"88":0.07256,"89":0.65714,"90":14.16066,"91":0.70482,"92":0.01866,_:"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 40 41 42 44 45 46 48 50 51 52 54 55 56 57 59 62 66 68 93 94"},F:{"73":0.01451,"74":0.00207,"75":0.16169,"76":0.3379,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00136,"7.0-7.1":0.02778,"8.1-8.4":0.00339,"9.0-9.2":0.00678,"9.3":0.07182,"10.0-10.2":0.01355,"10.3":0.10299,"11.0-11.2":0.02507,"11.3-11.4":0.03998,"12.0-12.1":0.03049,"12.2-12.4":0.21478,"13.0-13.1":0.01626,"13.2":0.00678,"13.3":0.06911,"13.4-13.7":0.2595,"14.0-14.4":4.21776,"14.5-14.6":0.85101},E:{"4":0,"12":0.00207,"13":0.00829,"14":0.14718,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00207,"10.1":0.02073,"11.1":0.00622,"12.1":0.01037,"13.1":0.04146,"14.1":0.0767},B:{"12":0.00415,"15":0.00207,"16":0.00207,"17":0.00415,"18":0.01037,"84":0.00207,"85":0.00207,"87":0.00207,"88":0.00207,"89":0.16584,"90":1.04065,"91":0.07877,_:"13 14 79 80 81 83 86"},P:{"4":0.19068,"5.0-5.4":0.01021,"6.2-6.4":0.03036,"7.2-7.4":0.06356,"8.2":0.02021,"9.2":0.02119,"10.1":0.01021,"11.1-11.2":0.06356,"12.0":0.03178,"13.0":0.18009,"14.0":0.61441},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.00779,"4.4":0,"4.4.3-4.4.4":0.08455},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0767,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.10305},Q:{"10.4":0},O:{"0":1.5854},H:{"0":1.02065},L:{"0":70.14921}}; +module.exports={C:{"47":0.0022,"52":0.01099,"71":0.02638,"72":0.01099,"73":0.00659,"74":0.00659,"75":0.01319,"76":0.03737,"78":0.02198,"84":0.0044,"85":0.0044,"86":0.0022,"87":0.08792,"88":0.02198,"89":0.72314,"90":0.41542,"91":0.04396,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 77 79 80 81 82 83 92 3.5 3.6"},D:{"32":0.0022,"38":0.0022,"49":0.01319,"53":0.0022,"58":0.0022,"63":0.01978,"64":0.00659,"65":0.00659,"67":0.0044,"69":0.0044,"70":0.0044,"71":0.0044,"72":0.0044,"73":0.0044,"74":0.0044,"75":0.00659,"76":0.01099,"77":0.0044,"78":0.01099,"79":0.04616,"80":0.01099,"81":0.01319,"83":0.02198,"84":0.01758,"85":0.05275,"86":0.02198,"87":0.06814,"88":0.02857,"89":0.19782,"90":0.16045,"91":12.97479,"92":2.89477,"93":0.02198,_:"4 5 6 7 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 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 66 68 94 95"},F:{"29":0.0022,"76":0.04176,"77":0.47257,_:"9 11 12 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 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00052,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00155,"6.0-6.1":0.00155,"7.0-7.1":0.03766,"8.1-8.4":0.0031,"9.0-9.2":0.01032,"9.3":0.07584,"10.0-10.2":0.01238,"10.3":0.09957,"11.0-11.2":0.01599,"11.3-11.4":0.02683,"12.0-12.1":0.0227,"12.2-12.4":0.12794,"13.0-13.1":0.01135,"13.2":0.00567,"13.3":0.04488,"13.4-13.7":0.15735,"14.0-14.4":0.65828,"14.5-14.7":3.18771},E:{"4":0,"13":0.00659,"14":0.05275,"15":0.0022,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01099,"11.1":0.0044,"12.1":0.00659,"13.1":0.03956,"14.1":0.19123},B:{"12":0.0044,"15":0.0022,"16":0.0022,"17":0.0044,"18":0.01319,"84":0.0022,"85":0.0022,"88":0.0022,"89":0.04836,"90":0.00659,"91":0.83304,"92":0.23958,_:"13 14 79 80 81 83 86 87"},P:{"4":0.24154,"5.0-5.4":0.01047,"6.2-6.4":0.06139,"7.2-7.4":0.0549,"8.2":0.07177,"9.2":0.01098,"10.1":0.11105,"11.1-11.2":0.04392,"12.0":0.04392,"13.0":0.13175,"14.0":0.65875},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00276,"4.2-4.3":0.00965,"4.4":0,"4.4.3-4.4.4":0.1124},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02619,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":71.53624},S:{"2.5":0},R:{_:"0"},M:{"0":0.05461},Q:{"10.4":0},O:{"0":1.40418},H:{"0":0.79025}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js index af8c95d081da02..0f81bcadfaada4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js @@ -1 +1 @@ -module.exports={C:{"84":0.05032,"88":0.00888,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 87 89 90 91 3.5 3.6"},D:{"68":0.00888,"70":0.07104,"76":0.00888,"77":0.1036,"79":0.05032,"81":0.15392,"83":0.06216,"86":0.00888,"88":0.02072,"89":0.32856,"90":9.62,"91":0.07104,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 71 72 73 74 75 78 80 84 85 87 92 93 94"},F:{"54":0.09176,"76":0.09176,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00964,"11.0-11.2":0,"11.3-11.4":0.00964,"12.0-12.1":0.54923,"12.2-12.4":0.01929,"13.0-13.1":0.02893,"13.2":0.04822,"13.3":0.18325,"13.4-13.7":0.27005,"14.0-14.4":3.59286,"14.5-14.6":0.23096},E:{"4":0,"13":0.2368,"14":4.50808,_:"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.00888,"14.1":0.68672},B:{"16":0.00888,"17":0.0296,"18":0.02072,"89":0.00888,"90":1.04488,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 91"},P:{"4":0.04085,"5.0-5.4":0.01021,"6.2-6.4":0.03036,"7.2-7.4":0.09192,"8.2":0.02021,"9.2":0.02043,"10.1":0.01021,"11.1-11.2":0.17363,"12.0":0.06128,"13.0":0.54132,"14.0":2.26742},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.12672},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28712,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.02112},Q:{"10.4":0},O:{"0":1.45728},H:{"0":0.87978},L:{"0":63.68336}}; +module.exports={C:{"90":0.06964,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"44":0.01045,"77":0.0975,"78":0.0383,"79":0.03134,"81":0.20892,"89":1.16995,"90":0.02089,"91":7.53505,"92":1.28834,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 80 83 84 85 86 87 88 93 94 95"},F:{"77":0.22633,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00907,"9.3":0.111,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00907,"11.3-11.4":0,"12.0-12.1":0.00907,"12.2-12.4":0.10149,"13.0-13.1":0.01857,"13.2":0.00907,"13.3":0.14814,"13.4-13.7":0.74933,"14.0-14.4":2.02514,"14.5-14.7":1.07282},E:{"4":0,"13":0.08009,"14":17.38911,_:"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","14.1":0.86354},B:{"14":0.03134,"16":0.02089,"17":0.0383,"89":0.03134,"91":1.02023,"92":0.16017,_:"12 13 15 18 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.57542,"5.0-5.4":0.01047,"6.2-6.4":0.06139,"7.2-7.4":2.64491,"8.2":0.07177,"9.2":0.07162,"10.1":0.11105,"11.1-11.2":0.15348,"12.0":0.04093,"13.0":1.18112,"14.0":0.55251},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.0975,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":57.99298},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":4.0933},H:{"0":1.8821}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js index cd5d95d092ae59..461eed855212f4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js @@ -1 +1 @@ -module.exports={C:{"52":0.1567,"56":0.1567,"88":0.78031,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 78 79 80 81 82 83 84 85 86 87 89 90 91 3.5 3.6"},D:{"64":0.1567,"81":0.93701,"87":0.1567,"88":0.1567,"89":2.80784,"90":10.14086,"91":1.09052,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 92 93 94"},F:{"75":0.3134,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.1351,"12.2-12.4":0.4053,"13.0-13.1":0,"13.2":0,"13.3":0.2702,"13.4-13.7":0,"14.0-14.4":3.646,"14.5-14.6":1.08024},E:{"4":0,"14":1.24722,_:"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"},B:{"13":0.46691,"14":0.1567,"16":0.3134,"18":0.3134,"85":2.96455,"86":0.93701,"89":4.36847,"90":2.34094,_:"12 15 17 79 80 81 83 84 87 88 91"},P:{"4":0.05484,"5.0-5.4":0.01097,"6.2-6.4":0.0521,"7.2-7.4":0.05484,"8.2":0.01023,"9.2":0.63259,"10.1":0.01097,"11.1-11.2":0.07678,"12.0":0.06581,"13.0":1.10452,"14.0":2.05841},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.93701,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.63259},H:{"0":0.14811},L:{"0":58.51569}}; +module.exports={C:{"89":0.13838,"90":0.55038,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"81":3.31169,"86":0.55038,"91":12.5517,"92":1.38066,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 87 88 89 90 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.15852,"12.2-12.4":0,"13.0-13.1":0,"13.2":0,"13.3":0.05284,"13.4-13.7":0,"14.0-14.4":0.15852,"14.5-14.7":0.89829},E:{"4":0,"14":0.13838,"15":1.1039,_:"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":1.51589},B:{"13":0.41514,"16":0.13838,"87":0.27676,"89":0.82714,"91":1.65427,"92":2.06941,_:"12 14 15 17 18 79 80 81 83 84 85 86 88 90"},P:{"4":0.01109,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.05545,"8.2":0.01075,"9.2":0.04436,"10.1":0.05114,"11.1-11.2":0.07763,"12.0":0.05545,"13.0":0.14091,"14.0":1.12727},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.65427,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":67.24977},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.14396},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js index 0be249250b8eae..fe7544d3928f77 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js @@ -1 +1 @@ -module.exports={C:{"34":0.0053,"52":0.04772,"56":0.02121,"60":0.0106,"66":0.0053,"68":0.0053,"72":0.01591,"77":0.0106,"78":0.13785,"81":0.0053,"84":0.02651,"85":0.02121,"86":0.06893,"87":0.07423,"88":2.61919,"89":0.01591,_:"2 3 4 5 6 7 8 9 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 61 62 63 64 65 67 69 70 71 73 74 75 76 79 80 82 83 90 91 3.5 3.6"},D:{"20":0.0053,"34":0.02121,"38":0.08483,"42":0.0106,"49":0.20678,"53":0.13255,"57":0.0106,"58":0.0053,"61":0.01591,"62":0.0053,"63":0.02121,"64":0.0053,"65":0.08483,"66":0.0106,"67":0.05302,"68":0.04772,"69":0.09544,"70":0.04242,"71":0.02651,"72":0.02651,"73":0.04772,"74":0.04772,"75":0.03711,"76":0.06362,"77":0.04242,"78":0.03711,"79":0.12195,"80":0.06362,"81":0.03711,"83":0.08483,"84":0.04772,"85":0.04242,"86":0.21208,"87":0.37644,"88":0.62564,"89":2.07838,"90":27.80369,"91":0.56731,"92":0.03181,_:"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 31 32 33 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 54 55 56 59 60 93 94"},F:{"36":0.0053,"46":0.02121,"73":0.04242,"75":0.18027,"76":0.19617,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0471,"7.0-7.1":0.04121,"8.1-8.4":0.05887,"9.0-9.2":0.03336,"9.3":0.3552,"10.0-10.2":0.04121,"10.3":0.43173,"11.0-11.2":0.18839,"11.3-11.4":0.12363,"12.0-12.1":0.09027,"12.2-12.4":0.42388,"13.0-13.1":0.04121,"13.2":0.02159,"13.3":0.18643,"13.4-13.7":0.62209,"14.0-14.4":13.56423,"14.5-14.6":2.16455},E:{"4":0,"11":0.02651,"12":0.02651,"13":0.17497,"14":4.99979,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.0053,"10.1":0.06362,"11.1":0.11134,"12.1":0.18027,"13.1":0.82181,"14.1":1.38382},B:{"15":0.02121,"16":0.0053,"17":0.01591,"18":0.20678,"85":0.01591,"86":0.0106,"87":0.0053,"88":0.02651,"89":0.10604,"90":4.48549,"91":0.07953,_:"12 13 14 79 80 81 83 84"},P:{"4":0.19639,"5.0-5.4":0.01021,"6.2-6.4":0.02137,"7.2-7.4":0.87603,"8.2":0.02137,"9.2":0.02182,"10.1":0.02182,"11.1-11.2":0.09819,"12.0":0.05455,"13.0":0.30549,"14.0":2.79309},I:{"0":0,"3":0,"4":0.0019,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.01045,"4.4":0,"4.4.3-4.4.4":0.07033},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01344,"9":0.01344,"11":1.35695,_:"7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.42761},Q:{"10.4":0.07049},O:{"0":0.30074},H:{"0":0.24468},L:{"0":25.04485}}; +module.exports={C:{"34":0.01049,"52":0.04194,"56":0.01573,"58":0.00524,"60":0.01049,"68":0.00524,"72":0.01573,"77":0.00524,"78":0.1468,"84":0.01573,"85":0.01049,"86":0.01573,"87":0.01049,"88":0.06816,"89":1.60436,"90":1.0119,_:"2 3 4 5 6 7 8 9 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 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 79 80 81 82 83 91 92 3.5 3.6"},D:{"20":0.01049,"26":0.01049,"34":0.02097,"38":0.11535,"47":0.01049,"49":0.17302,"53":0.05767,"57":0.01049,"58":0.00524,"61":0.02097,"62":0.00524,"63":0.02622,"65":0.04719,"66":0.01049,"67":0.05767,"68":0.02622,"69":0.07865,"70":0.04194,"71":0.02097,"72":0.02097,"73":0.04194,"74":0.04719,"75":0.04194,"76":0.05243,"77":0.0367,"78":0.0367,"79":0.30409,"80":0.10486,"81":0.0367,"83":0.05243,"84":0.0367,"85":0.03146,"86":0.08389,"87":0.21496,"88":0.15205,"89":0.34604,"90":1.64106,"91":23.03774,"92":5.23776,"93":0.02622,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 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 59 60 64 94 95"},F:{"36":0.01049,"46":0.05243,"75":0.00524,"76":0.09962,"77":0.32507,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00202,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00404,"6.0-6.1":0.05251,"7.0-7.1":0.02625,"8.1-8.4":0.04847,"9.0-9.2":0.02625,"9.3":0.3514,"10.0-10.2":0.03433,"10.3":0.39987,"11.0-11.2":0.15954,"11.3-11.4":0.103,"12.0-12.1":0.08684,"12.2-12.4":0.31101,"13.0-13.1":0.03837,"13.2":0.02827,"13.3":0.14945,"13.4-13.7":0.57557,"14.0-14.4":2.30026,"14.5-14.7":14.34481},E:{"4":0,"11":0.03146,"12":0.02622,"13":0.15205,"14":1.50998,"15":0.01573,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00524,"10.1":0.04719,"11.1":0.09962,"12.1":0.17302,"13.1":0.76024,"14.1":5.19581},B:{"15":0.00524,"17":0.01049,"18":0.16253,"84":0.01049,"85":0.01049,"86":0.01049,"89":0.02097,"90":0.03146,"91":3.60718,"92":1.122,_:"12 13 14 16 79 80 81 83 87 88"},P:{"4":0.43484,"5.0-5.4":0.01066,"6.2-6.4":0.02149,"7.2-7.4":0.87036,"8.2":0.01075,"9.2":0.02174,"10.1":0.02174,"11.1-11.2":0.06523,"12.0":0.04348,"13.0":0.17394,"14.0":2.8591},I:{"0":0,"3":0,"4":0.0019,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00285,"4.2-4.3":0.00951,"4.4":0,"4.4.3-4.4.4":0.05708},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.24259,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":25.16918},S:{"2.5":0},R:{_:"0"},M:{"0":0.48046},Q:{"10.4":0.07611},O:{"0":0.27591},H:{"0":0.27472}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js index 07ca802f54d275..9adf9d3b213cba 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js @@ -1 +1 @@ -module.exports={C:{"41":0.00689,"52":0.00344,"56":0.0482,"76":0.00689,"78":0.01377,"79":0.00344,"81":0.01033,"84":0.01033,"86":0.02066,"87":0.01377,"88":0.54399,"89":0.01377,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 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 77 80 82 83 85 90 91 3.5 3.6"},D:{"22":0.00344,"26":0.00344,"38":0.02066,"43":0.00344,"49":0.0482,"53":0.03099,"55":0.00344,"56":0.00689,"62":0.00689,"63":0.00689,"64":0.00344,"65":0.00689,"66":0.00344,"67":0.00689,"68":0.01033,"69":0.00689,"70":0.01722,"71":0.00689,"72":0.00689,"73":0.00344,"74":0.00689,"75":0.01033,"76":0.02066,"77":0.02066,"78":0.0241,"79":0.03787,"80":0.02066,"81":0.02066,"83":0.18592,"84":0.01722,"85":0.0241,"86":0.08608,"87":0.09296,"88":0.0964,"89":0.49579,"90":22.08685,"91":0.89862,"92":0.0241,_:"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 44 45 46 47 48 50 51 52 54 57 58 59 60 61 93 94"},F:{"36":0.00689,"46":0.00689,"73":0.0723,"74":0.00344,"75":0.23757,"76":0.26167,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00617,"6.0-6.1":0.00309,"7.0-7.1":0.03704,"8.1-8.4":0,"9.0-9.2":0.00154,"9.3":0.10187,"10.0-10.2":0.00926,"10.3":0.06483,"11.0-11.2":0.04631,"11.3-11.4":0.04322,"12.0-12.1":0.05248,"12.2-12.4":0.23307,"13.0-13.1":0.05094,"13.2":0.03241,"13.3":0.15435,"13.4-13.7":0.52325,"14.0-14.4":10.00658,"14.5-14.6":3.35405},E:{"4":0,"12":0.00689,"13":0.03443,"14":1.38409,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.0964,"10.1":0.00689,"11.1":0.01722,"12.1":0.0241,"13.1":0.20314,"14.1":0.4166},B:{"12":0.01377,"13":0.00344,"14":0.00689,"15":0.01033,"16":0.01377,"17":0.01377,"18":0.08608,"84":0.01377,"85":0.00689,"86":0.00344,"87":0.01033,"88":0.01722,"89":0.04476,"90":2.23451,"91":0.22035,_:"79 80 81 83"},P:{"4":0.75231,"5.0-5.4":0.01031,"6.2-6.4":0.01031,"7.2-7.4":0.13397,"8.2":0.06183,"9.2":0.10306,"10.1":0.03092,"11.1-11.2":0.3607,"12.0":0.19581,"13.0":0.72139,"14.0":3.08138},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00238,"4.2-4.3":0.00715,"4.4":0,"4.4.3-4.4.4":0.06259},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.02448,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.08524},Q:{"10.4":0},O:{"0":0.79995},H:{"0":0.49662},L:{"0":45.35847}}; +module.exports={C:{"76":0.01301,"78":0.07805,"84":0.04228,"86":0.00325,"87":0.00976,"88":0.00976,"89":0.35772,"90":0.26016,"91":0.01951,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 77 79 80 81 82 83 85 92 3.5 3.6"},D:{"11":0.0065,"22":0.00976,"34":0.02276,"38":0.02927,"49":0.03252,"53":0.0065,"56":0.0065,"62":0.01301,"63":0.0065,"65":0.01301,"67":0.0065,"69":0.0065,"70":0.0065,"72":0.00325,"75":0.0065,"76":0.00976,"77":0.01301,"78":0.00976,"79":0.09106,"80":0.01301,"81":0.02602,"83":0.0748,"84":0.03252,"85":0.03577,"86":0.03577,"87":0.09756,"88":0.10081,"89":0.07805,"90":0.2439,"91":17.00471,"92":4.02923,"93":0.01301,_:"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 41 42 43 44 45 46 47 48 50 51 52 54 55 57 58 59 60 61 64 66 68 71 73 74 94 95"},F:{"36":0.00976,"46":0.00325,"76":0.14309,"77":0.43577,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01012,"6.0-6.1":0,"7.0-7.1":0.03616,"8.1-8.4":0,"9.0-9.2":0.01736,"9.3":0.08533,"10.0-10.2":0.02169,"10.3":0.06508,"11.0-11.2":0.07955,"11.3-11.4":0.0376,"12.0-12.1":0.04773,"12.2-12.4":0.18368,"13.0-13.1":0.04773,"13.2":0.02025,"13.3":0.11136,"13.4-13.7":0.61033,"14.0-14.4":2.39939,"14.5-14.7":10.06473},E:{"4":0,"13":0.02927,"14":0.54634,"15":0.00325,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02602,"11.1":0.02602,"12.1":0.02276,"13.1":0.18862,"14.1":1.22275},B:{"14":0.00325,"15":0.02927,"16":0.00976,"17":0.0065,"18":0.05203,"84":0.01626,"87":0.0065,"89":0.01951,"90":0.01626,"91":1.68128,"92":0.49105,_:"12 13 79 80 81 83 85 86 88"},P:{"4":0.37635,"5.0-5.4":0.03225,"6.2-6.4":0.03225,"7.2-7.4":0.15257,"8.2":0.13223,"9.2":0.06103,"10.1":0.06103,"11.1-11.2":0.26446,"12.0":0.17292,"13.0":0.45772,"14.0":3.6923},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.00945,"4.4":0,"4.4.3-4.4.4":0.07624},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.73332,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":48.83472},S:{"2.5":0},R:{_:"0"},M:{"0":0.08096},Q:{"10.4":0},O:{"0":1.03904},H:{"0":0.66431}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js index dc6d0bb52a23a9..ad3858f0ad58c2 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js @@ -1 +1 @@ -module.exports={C:{"52":0.0134,"57":0.00893,"61":0.00893,"66":0.03572,"73":0.05358,"78":0.06698,"84":0.02233,"86":0.0134,"87":0.02233,"88":1.32164,"89":0.00893,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 90 91 3.5 3.6"},D:{"38":0.0134,"49":0.15181,"53":0.04465,"56":0.00893,"58":0.03126,"62":0.00447,"63":0.00893,"65":0.01786,"67":0.02679,"68":0.01786,"69":0.00893,"70":0.02679,"71":0.00447,"72":0.0134,"73":0.02233,"74":0.02233,"75":0.05805,"76":0.03572,"77":0.03126,"78":0.03572,"79":0.16074,"80":0.04019,"81":0.05358,"83":0.07144,"84":0.02679,"85":0.08484,"86":0.11609,"87":0.19646,"88":0.192,"89":0.74119,"90":27.16506,"91":0.99123,"92":0.02233,_:"4 5 6 7 8 9 10 11 12 13 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 61 64 66 93 94"},F:{"73":0.14288,"74":0.00447,"75":0.91979,"76":0.40632,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00081,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00081,"6.0-6.1":0.013,"7.0-7.1":0.03087,"8.1-8.4":0.00162,"9.0-9.2":0.00081,"9.3":0.05686,"10.0-10.2":0.013,"10.3":0.05118,"11.0-11.2":0.01787,"11.3-11.4":0.01543,"12.0-12.1":0.01381,"12.2-12.4":0.0861,"13.0-13.1":0.01462,"13.2":0.0065,"13.3":0.11453,"13.4-13.7":0.25506,"14.0-14.4":5.55289,"14.5-14.6":1.51982},E:{"4":0,"12":0.04912,"13":0.03572,"14":1.73242,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":1.08946,"10.1":0.00893,"11.1":0.03572,"12.1":0.09823,"13.1":0.33041,"14.1":0.7144},B:{"13":0.00447,"14":0.00893,"15":0.0134,"16":0.0134,"17":0.01786,"18":0.05358,"80":0.00447,"84":0.00893,"85":0.00893,"86":0.01786,"87":0.00447,"88":0.01786,"89":0.06698,"90":3.25052,"91":0.20986,_:"12 79 81 83"},P:{"4":0.37727,"5.0-5.4":0.01029,"6.2-6.4":0.03088,"7.2-7.4":0.41806,"8.2":0.0102,"9.2":0.12236,"10.1":0.10197,"11.1-11.2":0.48944,"12.0":0.16315,"13.0":0.70356,"14.0":3.36487},I:{"0":0,"3":0,"4":0.0006,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0018,"4.2-4.3":0.00301,"4.4":0,"4.4.3-4.4.4":0.04994},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34381,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.27122},Q:{"10.4":0},O:{"0":0.28229},H:{"0":0.19913},L:{"0":43.5714}}; +module.exports={C:{"3":0.04708,"48":0.00856,"52":0.00856,"57":0.01284,"66":0.02996,"73":0.05136,"78":0.0642,"80":0.00856,"82":0.00856,"86":0.00428,"87":0.00856,"88":0.02568,"89":0.80036,"90":0.54784,"91":0.00428,_:"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 45 46 47 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 81 83 84 85 92 3.5 3.6"},D:{"4":0.0214,"38":0.01712,"49":0.11556,"56":0.00428,"58":0.01284,"62":0.00856,"63":0.00428,"65":0.01712,"67":0.01284,"69":0.01284,"70":0.01712,"72":0.01712,"73":0.05564,"74":0.01712,"75":0.0428,"76":0.03424,"77":0.01712,"78":0.01284,"79":0.16264,"80":0.02568,"81":0.02996,"83":0.05136,"84":0.04708,"85":0.05136,"86":0.0428,"87":0.14124,"88":0.0856,"89":0.16692,"90":0.39376,"91":21.94356,"92":5.40992,"93":0.02996,_:"5 6 7 8 9 10 11 12 13 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 59 60 61 64 66 68 71 94 95"},F:{"75":0.00428,"76":0.43656,"77":0.75328,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00099,"4.0-4.1":0.00297,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00989,"7.0-7.1":0.03857,"8.1-8.4":0.01088,"9.0-9.2":0,"9.3":0.06033,"10.0-10.2":0.00495,"10.3":0.0544,"11.0-11.2":0.02374,"11.3-11.4":0.01582,"12.0-12.1":0.0178,"12.2-12.4":0.05539,"13.0-13.1":0.00692,"13.2":0.00791,"13.3":0.07616,"13.4-13.7":0.26011,"14.0-14.4":1.35398,"14.5-14.7":7.53443},E:{"4":0,"11":0.00428,"12":0.05992,"13":0.03852,"14":0.55212,"15":0.01712,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.44084,"10.1":0.00856,"11.1":0.0214,"12.1":0.04708,"13.1":0.2354,"14.1":1.6478},B:{"14":0.00428,"15":0.01284,"16":0.01284,"17":0.01284,"18":0.05136,"84":0.00428,"85":0.00428,"86":0.00856,"88":0.00428,"89":0.02568,"90":0.0214,"91":2.81624,"92":0.82604,_:"12 13 79 80 81 83 87"},P:{"4":0.27787,"5.0-5.4":0.01069,"6.2-6.4":0.05097,"7.2-7.4":0.3602,"8.2":0.13223,"9.2":0.08233,"10.1":0.05146,"11.1-11.2":0.3602,"12.0":0.09262,"13.0":0.32932,"14.0":3.46817},I:{"0":0,"3":0,"4":0.00201,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00201,"4.2-4.3":0.00301,"4.4":0,"4.4.3-4.4.4":0.06733},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.37664,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":45.0058},S:{"2.5":0},R:{_:"0"},M:{"0":0.32604},Q:{"10.4":0},O:{"0":0.2002},H:{"0":0.22744}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js index c44fe99b3abd76..74a8a84a960367 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js @@ -1 +1 @@ -module.exports={C:{"52":0.02426,"66":0.02426,"73":0.00607,"78":0.0182,"84":0.01213,"86":0.00607,"87":0.0182,"88":1.19481,"89":0.01213,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 90 91 3.5 3.6"},D:{"22":0.0182,"38":0.04246,"42":0.01213,"49":0.12737,"53":0.07278,"63":0.00607,"65":0.01213,"66":0.00607,"67":0.01213,"68":0.0182,"69":0.01213,"70":0.01213,"71":0.01213,"72":0.01213,"73":0.01213,"74":0.01213,"75":0.03033,"76":0.0182,"77":0.0182,"78":0.0182,"79":0.06065,"80":0.06672,"81":0.15769,"83":0.09098,"84":0.04246,"85":0.04246,"86":0.08491,"87":0.2426,"88":0.18802,"89":0.86123,"90":46.72476,"91":1.91654,"92":0.01213,_:"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 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 93 94"},F:{"73":0.30932,"75":1.14629,"76":0.61257,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00056,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0031,"6.0-6.1":0.00282,"7.0-7.1":0.00282,"8.1-8.4":0.00141,"9.0-9.2":0,"9.3":0.02932,"10.0-10.2":0.0031,"10.3":0.02284,"11.0-11.2":0.00902,"11.3-11.4":0.00874,"12.0-12.1":0.01099,"12.2-12.4":0.06315,"13.0-13.1":0.01128,"13.2":0.00536,"13.3":0.0358,"13.4-13.7":0.11164,"14.0-14.4":1.8057,"14.5-14.6":0.52522},E:{"4":0,"13":0.02426,"14":0.60044,_:"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.01213,"12.1":0.02426,"13.1":0.1395,"14.1":0.29112},B:{"18":0.03033,"84":0.01213,"85":0.00607,"87":0.00607,"88":0.00607,"89":0.04852,"90":2.37748,"91":0.17589,_:"12 13 14 15 16 17 79 80 81 83 86"},P:{"4":0.17344,"5.0-5.4":0.06023,"6.2-6.4":0.05019,"7.2-7.4":0.06504,"8.2":0.04015,"9.2":0.02168,"10.1":0.07027,"11.1-11.2":0.14092,"12.0":0.04336,"13.0":0.18428,"14.0":0.69377},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00217,"4.2-4.3":0.00507,"4.4":0,"4.4.3-4.4.4":0.05574},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.30932,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.0984},Q:{"10.4":0},O:{"0":0.03542},H:{"0":0.17886},L:{"0":36.81215}}; +module.exports={C:{"17":0.00597,"52":0.01194,"66":0.01791,"73":0.00597,"76":0.01194,"78":0.02388,"84":0.01194,"85":0.00597,"87":0.00597,"88":0.02986,"89":0.71652,"90":0.43588,"91":0.01194,_:"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 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 77 79 80 81 82 83 86 92 3.5 3.6"},D:{"22":0.01194,"34":0.00597,"38":0.0418,"47":0.00597,"49":0.09554,"53":0.02388,"63":0.00597,"65":0.01194,"66":0.01194,"67":0.00597,"68":0.00597,"69":0.01194,"70":0.01194,"71":0.01194,"72":0.01194,"73":0.01194,"74":0.01194,"75":0.01791,"76":0.01791,"77":0.01791,"78":0.01194,"79":0.11345,"80":0.07165,"81":0.16122,"83":0.05374,"84":0.02986,"85":0.02986,"86":0.05374,"87":0.17913,"88":0.07762,"89":0.19107,"90":0.52545,"91":40.96106,"92":6.56213,"93":0.01194,_:"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 56 57 58 59 60 61 62 64 94 95"},F:{"76":0.82997,"77":1.32556,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00028,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00307,"6.0-6.1":0.00363,"7.0-7.1":0.00419,"8.1-8.4":0.00056,"9.0-9.2":0.00084,"9.3":0.04189,"10.0-10.2":0.00531,"10.3":0.02346,"11.0-11.2":0.00726,"11.3-11.4":0.00782,"12.0-12.1":0.01117,"12.2-12.4":0.03743,"13.0-13.1":0.00922,"13.2":0.00447,"13.3":0.03519,"13.4-13.7":0.08491,"14.0-14.4":0.50525,"14.5-14.7":1.84031},E:{"4":0,"13":0.01791,"14":0.19107,_:"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.00597,"12.1":0.01791,"13.1":0.10748,"14.1":0.54933},B:{"18":0.02388,"84":0.00597,"89":0.02388,"90":0.02388,"91":2.33466,"92":0.43588,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.14056,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.07568,"8.2":0.02018,"9.2":0.02162,"10.1":0.01081,"11.1-11.2":0.15137,"12.0":0.03244,"13.0":0.12974,"14.0":0.82171},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00182,"4.2-4.3":0.00454,"4.4":0,"4.4.3-4.4.4":0.05809},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2269,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":38.38019},S:{"2.5":0},R:{_:"0"},M:{"0":0.09264},Q:{"10.4":0},O:{"0":0.04028},H:{"0":0.14872}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js index f0cf491e3bd840..1cada08f710621 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js @@ -1 +1 @@ -module.exports={C:{"29":0.01009,"43":0.00504,"45":0.00504,"47":0.01009,"48":0.0353,"50":0.02522,"52":0.19668,"56":0.00504,"59":0.0353,"60":0.05043,"61":0.00504,"66":0.00504,"68":0.06556,"69":0.0706,"70":0.00504,"72":0.00504,"78":0.66568,"80":0.01009,"81":0.01009,"82":0.00504,"83":0.04034,"84":0.05043,"85":0.03026,"86":0.0353,"87":0.1059,"88":6.34914,"89":0.03026,_:"2 3 4 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 44 46 49 51 53 54 55 57 58 62 63 64 65 67 71 73 74 75 76 77 79 90 91 3.5 3.6"},D:{"49":0.13616,"53":0.01009,"62":0.00504,"65":0.00504,"67":0.01513,"73":0.00504,"75":0.02017,"79":0.01009,"80":0.01009,"81":0.01009,"83":0.05043,"84":0.01513,"86":0.03026,"87":0.47404,"88":0.13112,"89":0.44883,"90":21.07974,"91":0.67072,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 63 64 66 68 69 70 71 72 74 76 77 78 85 92 93 94"},F:{"73":0.06052,"75":0.36814,"76":0.59003,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00285,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00571,"6.0-6.1":0.07278,"7.0-7.1":0.00143,"8.1-8.4":0,"9.0-9.2":0.00285,"9.3":0.25831,"10.0-10.2":0.00143,"10.3":0.3154,"11.0-11.2":0.147,"11.3-11.4":0.06565,"12.0-12.1":0.32111,"12.2-12.4":0.30541,"13.0-13.1":0.05994,"13.2":0.01142,"13.3":0.46667,"13.4-13.7":0.45668,"14.0-14.4":9.22217,"14.5-14.6":1.22591},E:{"4":0,"10":0.00504,"11":0.00504,"12":0.0706,"13":0.23702,"14":5.57756,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1","9.1":0.02017,"10.1":0.04539,"11.1":0.28745,"12.1":0.48917,"13.1":1.11955,"14.1":1.23049},B:{"13":0.00504,"16":0.00504,"17":0.01009,"18":0.09582,"84":0.04539,"85":0.01513,"86":0.01513,"87":0.00504,"88":0.01009,"89":0.11599,"90":4.94718,"91":0.24206,_:"12 14 15 79 80 81 83"},P:{"4":0.09536,"5.0-5.4":0.06167,"6.2-6.4":0.0106,"7.2-7.4":0.13774,"8.2":0.0105,"9.2":0.11655,"10.1":0.02119,"11.1-11.2":0.4768,"12.0":0.07417,"13.0":1.27146,"14.0":3.42234},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00097,"4.4":0,"4.4.3-4.4.4":0.02877},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46396,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.95174},Q:{"10.4":0.02479},O:{"0":0.61963},H:{"0":0.07039},L:{"0":31.75327}}; +module.exports={C:{"12":0.08831,"43":0.01472,"48":0.04906,"50":0.01472,"52":0.26983,"60":0.06378,"68":0.09321,"78":0.80949,"80":0.00491,"83":0.01472,"84":0.03925,"85":0.00491,"86":0.05887,"87":0.02453,"88":0.04415,"89":3.72365,"90":2.16355,_:"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 47 49 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 81 82 91 92 3.5 3.6"},D:{"43":0.00981,"49":0.03434,"53":0.01472,"63":0.00491,"65":0.04415,"66":0.00491,"67":0.02944,"68":0.00981,"70":0.04415,"71":0.00981,"75":0.00491,"79":0.05397,"80":0.00981,"81":0.00491,"83":0.00981,"84":0.00491,"85":0.01472,"86":0.01962,"87":0.17662,"88":0.0785,"89":0.0785,"90":0.12265,"91":16.76871,"92":4.0033,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 54 55 56 57 58 59 60 61 62 64 69 72 73 74 76 77 78 93 94 95"},F:{"75":0.00981,"76":0.0834,"77":0.85855,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00937,"6.0-6.1":0.17339,"7.0-7.1":0.00469,"8.1-8.4":0.00312,"9.0-9.2":0.00312,"9.3":0.35771,"10.0-10.2":0.00312,"10.3":0.214,"11.0-11.2":0.20151,"11.3-11.4":0.0453,"12.0-12.1":0.24681,"12.2-12.4":0.19526,"13.0-13.1":0.02187,"13.2":0.00625,"13.3":0.45143,"13.4-13.7":0.29835,"14.0-14.4":2.28842,"14.5-14.7":10.07059},E:{"4":0,"11":0.00491,"12":0.01472,"13":0.15699,"14":1.78578,"15":0.02453,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04415,"11.1":0.13737,"12.1":0.2453,"13.1":0.73099,"14.1":4.77354},B:{"17":0.0785,"18":0.04415,"80":0.00491,"85":0.00491,"86":0.00981,"89":0.01962,"90":0.06378,"91":4.73429,"92":1.17253,_:"12 13 14 15 16 79 81 83 84 87 88"},P:{"4":0.09414,"5.0-5.4":0.04129,"6.2-6.4":0.0819,"7.2-7.4":0.13597,"8.2":0.03071,"9.2":0.14643,"10.1":0.08368,"11.1-11.2":0.41838,"12.0":0.15689,"13.0":0.46022,"14.0":5.17744},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02386,"4.4":0,"4.4.3-4.4.4":0.06274},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.64269,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.8546},S:{"2.5":0},R:{_:"0"},M:{"0":0.73863},Q:{"10.4":0},O:{"0":0.49921},H:{"0":0.06752}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js index f4e8d9956be443..8d996dc4eba8a1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js @@ -1 +1 @@ -module.exports={C:{"30":0.00736,"33":0.00736,"35":0.01104,"43":0.01104,"44":0.04049,"45":0.00736,"47":0.01472,"49":0.00736,"51":0.00368,"52":0.01104,"54":0.00368,"56":0.01472,"57":0.01472,"59":0.01472,"61":0.01104,"62":0.00368,"63":0.00368,"64":0.00736,"69":0.00736,"70":0.00736,"72":0.01472,"73":0.00368,"75":0.00736,"77":0.01841,"78":0.02945,"79":0.00368,"80":0.00736,"81":0.00368,"82":0.03313,"83":0.01104,"84":0.01841,"85":0.09203,"86":0.04049,"87":0.08834,"88":1.41719,"89":0.02945,_:"2 3 4 5 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 34 36 37 38 39 40 41 42 46 48 50 53 55 58 60 65 66 67 68 71 74 76 90 91 3.5 3.6"},D:{"11":0.00736,"29":0.00368,"37":0.00736,"38":0.00368,"40":0.01472,"44":0.00368,"46":0.00368,"48":0.00736,"49":0.01104,"53":0.01104,"55":0.0589,"57":0.00736,"58":0.00368,"59":0.01472,"60":0.00368,"61":0.00368,"63":0.01104,"65":0.00736,"66":0.01104,"67":0.03681,"68":0.01841,"69":0.11779,"70":0.20246,"71":0.00736,"72":0.00736,"74":0.04049,"75":0.00736,"76":0.01472,"77":0.00736,"78":0.01104,"79":0.03313,"80":0.05153,"81":0.06994,"83":0.03313,"84":0.02945,"85":0.05153,"86":0.09939,"87":0.26135,"88":0.11411,"89":0.61841,"90":15.56695,"91":1.30307,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 39 41 42 43 45 47 50 51 52 54 56 62 64 73 92 93 94"},F:{"62":0.00736,"70":0.00736,"73":0.00368,"75":0.61841,"76":1.88099,_:"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 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00039,"6.0-6.1":0.00058,"7.0-7.1":0.00369,"8.1-8.4":0.00525,"9.0-9.2":0,"9.3":0.0871,"10.0-10.2":0.01555,"10.3":0.01828,"11.0-11.2":0.0103,"11.3-11.4":0.0175,"12.0-12.1":0.02664,"12.2-12.4":0.20414,"13.0-13.1":0.02197,"13.2":0.01089,"13.3":0.0803,"13.4-13.7":0.21406,"14.0-14.4":0.85603,"14.5-14.6":0.23486},E:{"4":0,"11":0.00736,"12":0.00736,"13":0.04417,"14":0.17669,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01472,"10.1":0.00368,"11.1":0.02577,"12.1":0.01104,"13.1":0.09203,"14.1":0.0589},B:{"12":0.06994,"13":0.0589,"14":0.02209,"15":0.06626,"16":0.16196,"17":0.41963,"18":0.58528,"80":0.02945,"83":0.00736,"84":0.0773,"85":0.07362,"86":0.02209,"87":0.01472,"88":0.02577,"89":0.21718,"90":2.93744,"91":0.10675,_:"79 81"},P:{"4":0.47999,"5.0-5.4":0.01021,"6.2-6.4":0.04085,"7.2-7.4":1.00083,"8.2":0.01021,"9.2":0.22468,"10.1":0.09191,"11.1-11.2":0.58212,"12.0":0.18383,"13.0":0.52084,"14.0":1.34806},I:{"0":0,"3":0,"4":0.01222,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0336,"4.2-4.3":0.12218,"4.4":0,"4.4.3-4.4.4":1.02017},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01366,"9":0.03642,"10":0.01366,"11":0.53259,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.25912},R:{_:"0"},M:{"0":0.0948},Q:{"10.4":0.39184},O:{"0":2.00976},H:{"0":1.72919},L:{"0":57.98005}}; +module.exports={C:{"31":0.01044,"44":0.03829,"47":0.00696,"52":0.01044,"56":0.00348,"61":0.01044,"66":0.00696,"68":0.01044,"71":0.00348,"72":0.01392,"76":0.00348,"77":0.00696,"78":0.01392,"81":0.01044,"82":0.01392,"83":0.00348,"84":0.04177,"85":0.05918,"86":0.02785,"87":0.02089,"88":0.17405,"89":0.80063,"90":0.52911,"91":0.02785,_:"2 3 4 5 6 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 45 46 48 49 50 51 53 54 55 57 58 59 60 62 63 64 65 67 69 70 73 74 75 79 80 92 3.5 3.6"},D:{"11":0.01044,"24":0.00348,"25":0.00348,"29":0.00696,"37":0.02437,"38":0.01044,"39":0.00348,"40":0.32373,"45":0.00348,"49":0.03481,"55":0.04525,"56":0.00696,"58":0.00696,"59":0.00696,"60":0.00696,"61":0.01392,"62":0.01044,"63":0.02437,"64":0.00348,"65":0.01392,"67":0.01392,"68":0.02437,"69":0.14272,"70":0.19146,"71":0.00696,"72":0.01044,"73":0.01044,"74":0.03481,"75":0.01044,"76":0.01044,"78":0.01392,"79":0.02785,"80":0.03829,"81":0.04525,"83":0.06266,"84":0.03481,"85":0.01392,"86":0.04873,"87":0.12184,"88":0.06266,"89":0.16361,"90":0.41772,"91":12.73002,"92":3.47752,"93":0.00696,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 30 31 32 33 34 35 36 41 42 43 44 46 47 48 50 51 52 53 54 57 66 77 94 95"},F:{"69":0.00348,"76":0.02785,"77":0.88069,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00084,"6.0-6.1":0.0044,"7.0-7.1":0.00901,"8.1-8.4":0.00754,"9.0-9.2":0.00251,"9.3":0.06997,"10.0-10.2":0.00209,"10.3":0.01864,"11.0-11.2":0.00796,"11.3-11.4":0.01236,"12.0-12.1":0.01823,"12.2-12.4":0.29078,"13.0-13.1":0.02074,"13.2":0.0132,"13.3":0.04588,"13.4-13.7":0.13051,"14.0-14.4":0.39678,"14.5-14.7":0.82603},E:{"4":0,"13":0.06614,"14":0.13576,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00348,"12.1":0.03481,"13.1":0.06614,"14.1":0.17405},B:{"12":0.09399,"13":0.05918,"14":0.03481,"15":0.03133,"16":0.13924,"17":0.08354,"18":0.51519,"80":0.08354,"83":0.01044,"84":0.0557,"85":0.06614,"86":0.01392,"87":0.00696,"88":0.04525,"89":0.13924,"90":0.09399,"91":2.94493,"92":0.5674,_:"79 81"},P:{"4":0.34548,"5.0-5.4":0.02032,"6.2-6.4":0.04064,"7.2-7.4":1.33111,"8.2":0.13223,"9.2":0.19306,"10.1":0.06097,"11.1-11.2":0.50806,"12.0":0.15242,"13.0":0.96531,"14.0":3.22107},I:{"0":0,"3":0,"4":0.00942,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00807,"4.2-4.3":0.04037,"4.4":0,"4.4.3-4.4.4":0.32024},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01251,"9":0.00417,"11":0.46717,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":58.38526},S:{"2.5":0.24772},R:{_:"0"},M:{"0":0.11082},Q:{"10.4":0.48241},O:{"0":1.90355},H:{"0":1.84536}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js index 62d1d0adc3e57d..f8783bdfda00fd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js @@ -1 +1 @@ -module.exports={C:{"36":0.00505,"52":0.01011,"56":0.05559,"60":0.00505,"68":0.00505,"72":0.00505,"78":0.02527,"84":0.01011,"85":0.00505,"86":0.01011,"87":0.01516,"88":0.89961,"89":0.02022,_:"2 3 4 5 6 7 8 9 10 11 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 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 90 91 3.5 3.6"},D:{"34":0.01011,"38":0.04043,"39":0.00505,"47":0.02527,"49":0.05559,"53":0.04043,"55":0.01516,"58":0.01011,"63":0.01516,"64":0.00505,"65":0.01516,"66":0.01516,"67":0.02022,"68":0.01516,"69":0.02022,"70":0.01516,"71":0.02022,"72":0.02022,"73":0.02527,"74":0.04549,"75":0.04549,"76":0.08086,"77":0.04549,"78":0.06065,"79":0.08592,"80":0.08086,"81":0.07076,"83":0.16173,"84":0.07581,"85":0.09097,"86":0.32346,"87":0.60648,"88":0.47002,"89":1.33931,"90":35.89856,"91":1.20791,"92":0.03032,_:"4 5 6 7 8 9 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 48 50 51 52 54 56 57 59 60 61 62 93 94"},F:{"29":0.00505,"36":0.01011,"46":0.00505,"73":0.1314,"75":0.44981,"76":0.26281,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00266,"3.2":0.00053,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0.03513,"6.0-6.1":0.00586,"7.0-7.1":0.07771,"8.1-8.4":0.00905,"9.0-9.2":0.0165,"9.3":0.26082,"10.0-10.2":0.0165,"10.3":0.08623,"11.0-11.2":0.03779,"11.3-11.4":0.03726,"12.0-12.1":0.03886,"12.2-12.4":0.19907,"13.0-13.1":0.03194,"13.2":0.01757,"13.3":0.07984,"13.4-13.7":0.24166,"14.0-14.4":2.93449,"14.5-14.6":0.69676},E:{"4":0,"13":0.04043,"14":0.81875,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01011,"11.1":0.01516,"12.1":0.02527,"13.1":0.14657,"14.1":0.26786},B:{"16":0.00505,"17":0.00505,"18":0.03538,"84":0.01011,"85":0.01011,"88":0.01011,"89":0.04043,"90":2.41076,"91":0.08086,_:"12 13 14 15 79 80 81 83 86 87"},P:{"4":0.26359,"5.0-5.4":0.06023,"6.2-6.4":0.05019,"7.2-7.4":0.06504,"8.2":0.04015,"9.2":0.02197,"10.1":0.07027,"11.1-11.2":0.07688,"12.0":0.05492,"13.0":0.18671,"14.0":0.88963},I:{"0":0,"3":0,"4":0.00061,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00082,"4.2-4.3":0.00205,"4.4":0,"4.4.3-4.4.4":0.05587},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11624,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.08903},Q:{"10.4":0.00989},O:{"0":1.37993},H:{"0":0.84754},L:{"0":43.5366}}; +module.exports={C:{"36":0.00501,"52":0.01003,"56":0.08021,"68":0.00501,"78":0.02507,"84":0.01003,"85":0.00501,"86":0.00501,"87":0.01003,"88":0.03008,"89":0.60657,"90":0.29075,"91":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 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 72 73 74 75 76 77 79 80 81 82 83 92 3.5 3.6"},D:{"34":0.00501,"38":0.00501,"47":0.01003,"49":0.05013,"53":0.01003,"55":0.01504,"58":0.01003,"61":0.03008,"63":0.01504,"65":0.01504,"66":0.02507,"67":0.01504,"68":0.01003,"69":0.02005,"70":0.01003,"71":0.01504,"72":0.01504,"73":0.01504,"74":0.03509,"75":0.0401,"76":0.08021,"77":0.04512,"78":0.0401,"79":0.09525,"80":0.06517,"81":0.05013,"83":0.10527,"84":0.08021,"85":0.07018,"86":0.12031,"87":0.46621,"88":0.18047,"89":0.32083,"90":0.66172,"91":30.39883,"92":5.39399,"93":0.03008,_:"4 5 6 7 8 9 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 56 57 59 60 62 64 94 95"},F:{"28":0.01003,"36":0.00501,"46":0.00501,"75":0.01003,"76":0.3459,"77":0.60156,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00207,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0.01911,"6.0-6.1":0.00361,"7.0-7.1":0.04957,"8.1-8.4":0.00465,"9.0-9.2":0.01291,"9.3":0.19054,"10.0-10.2":0.01446,"10.3":0.08107,"11.0-11.2":0.03305,"11.3-11.4":0.04389,"12.0-12.1":0.03563,"12.2-12.4":0.14562,"13.0-13.1":0.0253,"13.2":0.01343,"13.3":0.06558,"13.4-13.7":0.205,"14.0-14.4":0.82723,"14.5-14.7":2.90407},E:{"4":0,"13":0.0401,"14":0.29075,"15":0.00501,_:"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.01504,"12.1":0.02507,"13.1":0.12533,"14.1":0.80709},B:{"16":0.00501,"17":0.01003,"18":0.03008,"84":0.01003,"85":0.00501,"89":0.02507,"90":0.01504,"91":2.22577,"92":0.52637,_:"12 13 14 15 79 80 81 83 86 87 88"},P:{"4":0.36876,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.07568,"8.2":0.02018,"9.2":0.02107,"10.1":0.01081,"11.1-11.2":0.09482,"12.0":0.03161,"13.0":0.09482,"14.0":0.88502},I:{"0":0,"3":0,"4":0.00147,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00147,"4.2-4.3":0.00342,"4.4":0,"4.4.3-4.4.4":0.04351},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.59153,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":44.96554},S:{"2.5":0},R:{_:"0"},M:{"0":0.09974},Q:{"10.4":0.00499},O:{"0":1.53101},H:{"0":0.93011}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js index a17dafdba92b1f..14724a4250306e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js @@ -1 +1 @@ -module.exports={C:{"4":0.0046,"43":0.0046,"47":0.0092,"50":0.0046,"51":0.0023,"52":0.03219,"56":0.0023,"68":0.0023,"72":0.0046,"78":0.01379,"79":0.0023,"80":0.0046,"81":0.0023,"82":0.0023,"83":0.0046,"84":0.02759,"85":0.0069,"86":0.0092,"87":0.01609,"88":0.97478,"89":0.04828,_:"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 48 49 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 90 91 3.5 3.6"},D:{"25":0.0023,"36":0.0046,"38":0.0046,"40":0.0069,"42":0.0046,"43":0.02989,"47":0.0023,"49":0.04828,"50":0.0023,"55":0.0023,"56":0.0115,"57":0.0023,"58":0.0046,"60":0.0023,"61":0.04138,"62":0.0046,"63":0.01609,"64":0.0092,"65":0.0069,"67":0.0069,"68":0.0069,"69":0.0092,"70":0.0069,"71":0.0069,"72":0.0069,"73":0.0069,"74":0.01609,"75":0.0115,"76":0.0115,"77":0.01379,"78":0.0115,"79":0.03219,"80":0.03219,"81":0.02989,"83":0.03908,"84":0.09656,"85":0.04368,"86":0.08047,"87":0.18852,"88":0.11725,"89":0.39543,"90":13.15488,"91":0.43221,"92":0.03449,_:"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 37 39 41 44 45 46 48 51 52 53 54 59 66 93 94"},F:{"73":0.02299,"74":0.0023,"75":0.24369,"76":0.39313,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00035,"4.0-4.1":0,"4.2-4.3":0.0007,"5.0-5.1":0.01514,"6.0-6.1":0.00387,"7.0-7.1":0.03591,"8.1-8.4":0.00246,"9.0-9.2":0.00282,"9.3":0.07428,"10.0-10.2":0.00915,"10.3":0.07146,"11.0-11.2":0.03168,"11.3-11.4":0.02992,"12.0-12.1":0.02182,"12.2-12.4":0.11018,"13.0-13.1":0.01866,"13.2":0.00845,"13.3":0.04787,"13.4-13.7":0.15489,"14.0-14.4":2.05225,"14.5-14.6":0.48824},E:{"4":0,"13":0.0092,"14":0.16783,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.10116,"11.1":0.0046,"12.1":0.0092,"13.1":0.03908,"14.1":0.05288},B:{"12":0.0069,"13":0.0046,"14":0.0023,"15":0.0046,"16":0.0069,"17":0.0046,"18":0.02299,"84":0.0069,"85":0.0023,"88":0.0069,"89":0.01379,"90":0.65522,"91":0.0092,_:"79 80 81 83 86 87"},P:{"4":0.31732,"5.0-5.4":0.01058,"6.2-6.4":0.01058,"7.2-7.4":0.04231,"8.2":0.06183,"9.2":0.03173,"10.1":0.02115,"11.1-11.2":0.10577,"12.0":0.07404,"13.0":0.34905,"14.0":1.04716},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00595,"4.2-4.3":0.01444,"4.4":0,"4.4.3-4.4.4":0.22601},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01035,"9":0.00776,"10":0.00259,"11":0.10346,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.1463},R:{_:"0"},M:{"0":0.0539},Q:{"10.4":0.0077},O:{"0":4.6354},H:{"0":1.79331},L:{"0":69.12123}}; +module.exports={C:{"4":0.00412,"37":0.00206,"43":0.00412,"47":0.00824,"50":0.00206,"52":0.02679,"60":0.00206,"66":0.00412,"68":0.00206,"72":0.00412,"77":0.00206,"78":0.01237,"80":0.00412,"81":0.00206,"82":0.00206,"83":0.00412,"84":0.02061,"85":0.00618,"86":0.00206,"87":0.00412,"88":0.02267,"89":0.40396,"90":0.22671,"91":0.01649,_:"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 38 39 40 41 42 44 45 46 48 49 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 79 92 3.5 3.6"},D:{"29":0.00206,"38":0.00206,"40":0.00618,"42":0.00412,"43":0.02267,"47":0.00206,"48":0.00206,"49":0.05771,"50":0.00206,"55":0.00412,"56":0.01031,"58":0.00412,"60":0.00412,"61":0.02061,"62":0.00206,"63":0.01031,"64":0.00618,"65":0.00618,"67":0.00412,"68":0.00412,"69":0.00824,"70":0.00618,"71":0.00618,"72":0.00824,"73":0.00618,"74":0.01649,"75":0.02267,"76":0.01031,"77":0.00824,"78":0.00824,"79":0.02473,"80":0.02267,"81":0.02473,"83":0.03092,"84":0.16282,"85":0.02885,"86":0.05359,"87":0.15664,"88":0.04946,"89":0.09687,"90":0.17931,"91":9.65991,"92":2.55152,"93":0.02885,"94":0.00206,_:"4 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 39 41 44 45 46 51 52 53 54 57 59 66 95"},F:{"64":0.00206,"73":0.00206,"75":0.00206,"76":0.04534,"77":0.47403,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0007,"4.0-4.1":0,"4.2-4.3":0.0007,"5.0-5.1":0.00598,"6.0-6.1":0.00246,"7.0-7.1":0.03028,"8.1-8.4":0.00563,"9.0-9.2":0.00246,"9.3":0.07499,"10.0-10.2":0.00704,"10.3":0.0595,"11.0-11.2":0.02148,"11.3-11.4":0.02394,"12.0-12.1":0.0169,"12.2-12.4":0.0859,"13.0-13.1":0.01267,"13.2":0.00563,"13.3":0.03697,"13.4-13.7":0.12885,"14.0-14.4":0.61961,"14.5-14.7":2.01762},E:{"4":0,"13":0.00618,"14":0.05977,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01443,"11.1":0.00412,"12.1":0.00412,"13.1":0.02267,"14.1":0.11748},B:{"12":0.00824,"13":0.00206,"14":0.00206,"15":0.00412,"16":0.01031,"17":0.00412,"18":0.02061,"84":0.00412,"85":0.00206,"89":0.00618,"90":0.03916,"91":0.4019,"92":0.12366,_:"79 80 81 83 86 87 88"},P:{"4":0.26719,"5.0-5.4":0.01069,"6.2-6.4":0.01069,"7.2-7.4":0.04275,"8.2":0.13223,"9.2":0.02138,"10.1":0.01069,"11.1-11.2":0.06413,"12.0":0.04275,"13.0":0.171,"14.0":0.99396},I:{"0":0,"3":0,"4":0.00089,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00356,"4.2-4.3":0.00979,"4.4":0,"4.4.3-4.4.4":0.19215},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00947,"9":0.0071,"10":0.00237,"11":0.09235,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":72.56951},S:{"2.5":0.20639},R:{_:"0"},M:{"0":0.04763},Q:{"10.4":0},O:{"0":4.16745},H:{"0":1.70595}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js index e07d5fc155f523..30e46ed264551b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js @@ -1 +1 @@ -module.exports={C:{"45":0.0046,"48":0.023,"51":0.0046,"52":0.29434,"56":0.0092,"57":0.0046,"60":0.023,"66":0.0092,"68":0.02759,"69":0.0046,"70":0.0092,"71":0.0046,"72":0.02759,"74":0.0046,"75":0.0046,"76":0.0046,"77":0.0092,"78":0.19316,"79":0.0046,"80":0.0138,"81":0.0184,"82":0.04139,"83":0.02759,"84":0.05059,"85":0.05519,"86":0.06899,"87":0.17016,"88":7.8321,"89":0.023,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 53 54 55 58 59 61 62 63 64 65 67 73 90 91 3.5 3.6"},D:{"34":0.0092,"38":0.0046,"49":0.29894,"50":0.0092,"53":0.0092,"58":0.0138,"59":0.0046,"61":0.04139,"63":0.02759,"65":0.0092,"66":0.0092,"67":0.0092,"68":0.0046,"69":0.0092,"70":0.0092,"71":0.0138,"72":0.0092,"73":0.0092,"74":0.0092,"75":0.0184,"76":0.03219,"77":0.0092,"78":0.0138,"79":0.22995,"80":0.03219,"81":0.06899,"83":0.08738,"84":0.05979,"85":0.023,"86":0.04599,"87":0.11957,"88":0.15637,"89":0.68525,"90":21.06802,"91":0.51049,"92":0.0138,_:"4 5 6 7 8 9 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 51 52 54 55 56 57 60 62 64 93 94"},F:{"36":0.03679,"52":0.0092,"72":0.0046,"73":0.66226,"74":0.02759,"75":2.60303,"76":1.8442,_:"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 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.0046},G:{"8":0,"3.2":0.00033,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00098,"6.0-6.1":0.0013,"7.0-7.1":0.00163,"8.1-8.4":0,"9.0-9.2":0.00195,"9.3":0.04298,"10.0-10.2":0.00391,"10.3":0.03842,"11.0-11.2":0.01661,"11.3-11.4":0.01954,"12.0-12.1":0.01758,"12.2-12.4":0.0661,"13.0-13.1":0.01303,"13.2":0.00684,"13.3":0.04591,"13.4-13.7":0.11332,"14.0-14.4":2.27097,"14.5-14.6":0.44417},E:{"4":0,"13":0.023,"14":0.61167,_:"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.02759,"12.1":0.03219,"13.1":0.13337,"14.1":0.28054},B:{"14":0.0046,"15":0.0046,"16":0.0092,"17":0.023,"18":0.05059,"83":0.0046,"84":0.0046,"85":0.0092,"86":0.023,"87":0.0138,"88":0.0184,"89":0.09198,"90":3.75738,"91":0.06899,_:"12 13 79 80 81"},P:{"4":0.21489,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.0307,"8.2":0.04015,"9.2":0.10233,"10.1":0.05116,"11.1-11.2":0.30698,"12.0":0.14326,"13.0":0.5014,"14.0":2.61958},I:{"0":0,"3":0,"4":0.00271,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01864,"4.2-4.3":0.01593,"4.4":0,"4.4.3-4.4.4":0.04914},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21615,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0054},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.26465},Q:{"10.4":0},O:{"0":0.02701},H:{"0":1.29367},L:{"0":47.25143}}; +module.exports={C:{"45":0.00872,"48":0.04362,"51":0.00436,"52":0.26608,"56":0.00436,"60":0.00872,"65":0.00436,"66":0.00872,"68":0.03053,"70":0.00436,"71":0.00872,"72":0.02617,"74":0.00436,"75":0.00436,"76":0.00436,"77":0.00872,"78":0.19629,"79":0.00436,"80":0.00872,"81":0.01309,"82":0.0349,"83":0.02181,"84":0.04362,"85":0.04798,"86":0.03926,"87":0.03053,"88":0.17884,"89":4.78075,"90":2.37729,"91":0.01309,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 53 54 55 57 58 59 61 62 63 64 67 69 73 92 3.5 3.6"},D:{"34":0.00872,"38":0.00872,"49":0.23119,"58":0.01745,"59":0.00436,"61":0.02617,"63":0.0349,"65":0.00872,"67":0.00436,"68":0.00436,"69":0.00872,"70":0.00872,"71":0.01745,"72":0.00872,"73":0.00872,"74":0.00872,"75":0.01309,"76":0.03053,"77":0.00872,"78":0.01309,"79":0.23991,"80":0.0349,"81":0.06979,"83":0.06979,"84":0.06107,"85":0.01745,"86":0.0349,"87":0.1265,"88":0.10033,"89":0.14395,"90":0.40567,"91":16.59305,"92":3.2366,"93":0.00872,_:"4 5 6 7 8 9 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 53 54 55 56 57 60 62 64 66 94 95"},F:{"36":0.02617,"73":0.00872,"74":0.00872,"75":0.0349,"76":1.35658,"77":3.28459,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00134,"7.0-7.1":0.00269,"8.1-8.4":0.00067,"9.0-9.2":0.00201,"9.3":0.04869,"10.0-10.2":0.00302,"10.3":0.02955,"11.0-11.2":0.01209,"11.3-11.4":0.01377,"12.0-12.1":0.01108,"12.2-12.4":0.04601,"13.0-13.1":0.0094,"13.2":0.00705,"13.3":0.04198,"13.4-13.7":0.09571,"14.0-14.4":0.53732,"14.5-14.7":2.35445},E:{"4":0,"13":0.01745,"14":0.20938,"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.02181,"12.1":0.02181,"13.1":0.11341,"14.1":0.63249},B:{"14":0.00436,"15":0.00436,"16":0.00436,"17":0.01745,"18":0.03926,"83":0.00872,"85":0.00436,"86":0.01309,"87":0.00872,"88":0.00872,"89":0.03053,"90":0.0349,"91":3.00978,"92":0.68047,_:"12 13 79 80 81 84"},P:{"4":0.24504,_:"5.0-5.4 6.2-6.4 8.2","7.2-7.4":0.04084,"9.2":0.09189,"10.1":0.04084,"11.1-11.2":0.27567,"12.0":0.1021,"13.0":0.29609,"14.0":2.92006},I:{"0":0,"3":0,"4":0.0018,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01931,"4.2-4.3":0.01931,"4.4":0,"4.4.3-4.4.4":0.06108},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20065,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":50.30916},S:{"2.5":0},R:{_:"0"},M:{"0":0.54134},Q:{"10.4":0},O:{"0":0.0282},H:{"0":1.34}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js index 821fc77c423465..cbe66417dd0841 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js @@ -1 +1 @@ -module.exports={C:{"29":0.02307,"31":0.20188,"40":0.03461,"52":0.05768,"56":0.17881,"64":0.01154,"75":0.03461,"78":0.05768,"84":0.02307,"86":0.15574,"87":0.15574,"88":4.85666,"89":0.01154,_:"2 3 4 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 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 85 90 91 3.5 3.6"},D:{"49":0.36915,"55":0.02307,"65":0.08075,"67":0.38069,"75":0.01154,"76":0.17881,"78":0.01154,"79":0.02307,"81":0.29994,"85":0.34608,"87":0.01154,"88":0.19034,"89":0.99786,"90":20.98975,"91":0.21342,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 77 80 83 84 86 92 93 94"},F:{"73":0.90558,"75":0.74984,"76":0.2884,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01134,"9.3":0.04538,"10.0-10.2":0.15315,"10.3":0.19853,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.03403,"12.2-12.4":1.45777,"13.0-13.1":0.05672,"13.2":0.02269,"13.3":0.23256,"13.4-13.7":0.15031,"14.0-14.4":20.42007,"14.5-14.6":4.54347},E:{"4":0,"12":0.02307,"13":0.32301,"14":6.39094,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01154,"11.1":0.47874,"12.1":0.09806,"13.1":0.66909,"14.1":2.95322},B:{"17":0.02307,"18":0.02307,"86":0.49028,"88":0.01154,"89":0.12113,"90":10.89575,"91":0.71523,_:"12 13 14 15 16 79 80 81 83 84 85 87"},P:{"4":0.05222,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.69977,"8.2":0.03133,"9.2":0.0111,"10.1":0.03133,"11.1-11.2":0.50133,"12.0":0.19844,"13.0":0.0111,"14.0":0.97656},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.39222,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.36818},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":14.28459}}; +module.exports={C:{"77":0.01182,"78":0.31318,"80":0.01182,"81":0.01182,"84":0.09454,"88":0.05909,"89":2.5586,"90":3.81131,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 79 82 83 85 86 87 91 92 3.5 3.6"},D:{"49":0.08273,"73":0.01182,"75":0.03545,"76":0.03545,"78":0.01182,"79":0.05909,"81":0.16545,"86":0.03545,"87":0.59681,"88":0.08273,"89":0.13,"90":0.10636,"91":19.7597,"92":4.57357,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 74 77 80 83 84 85 93 94 95"},F:{"76":0.08273,"77":0.16545,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.04479,"9.3":0.47028,"10.0-10.2":0.02239,"10.3":0.3779,"11.0-11.2":0.03359,"11.3-11.4":0.05878,"12.0-12.1":0.0112,"12.2-12.4":3.03161,"13.0-13.1":0.04479,"13.2":0,"13.3":0.08118,"13.4-13.7":0.45908,"14.0-14.4":1.85032,"14.5-14.7":15.37639},E:{"4":0,"13":0.94544,"14":1.43589,"15":0.30136,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03545,"11.1":0.05909,"12.1":0.10636,"13.1":1.69588,"14.1":12.1489},B:{"18":0.05909,"89":0.04727,"90":0.03545,"91":5.649,"92":0.47863,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.24914,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.79933,"8.2":0.02076,"9.2":0.01386,"10.1":0.03114,"11.1-11.2":0.45676,"12.0":0.14533,"13.0":0.38409,"14.0":1.4139},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.02046},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04727,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":17.81671},S:{"2.5":0},R:{_:"0"},M:{"0":0.17591},Q:{"10.4":0},O:{"0":0},H:{"0":0.96053}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js index 653ef49f8a7513..93cc7f3b24e31e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js @@ -1 +1 @@ -module.exports={C:{"85":2.17238,"87":2.17238,"88":1.08619,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 89 90 91 3.5 3.6"},D:{"81":17.39143,"89":4.34889,"90":3.25857,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 88 91 92 93 94"},F:{"75":2.17238,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":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.6":0},E:{"4":0,_:"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 11.1 12.1 13.1 14.1"},B:{"90":6.52127,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91"},P:{"4":0.26359,"5.0-5.4":0.06023,"6.2-6.4":0.05019,"7.2-7.4":0.06504,"8.2":0.04015,"9.2":0.02197,"10.1":0.07027,"11.1-11.2":0.07688,"12.0":0.05492,"13.0":0.18671,"14.0":0.88963},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"},S:{"2.5":0},R:{_:"0"},M:{"0":22.26112},Q:{"10.4":0},O:{"0":0},H:{"0":7.66226},L:{"0":20.38389}}; +module.exports={C:{"89":6.44885,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 90 91 92 3.5 3.6"},D:{"81":41.93558,"91":19.35558,"92":22.58,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 88 89 90 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":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.7":0},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"},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92"},P:{"4":0.36876,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.07568,"8.2":0.02018,"9.2":0.02107,"10.1":0.01081,"11.1-11.2":0.09482,"12.0":0.03161,"13.0":0.09482,"14.0":0.88502},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.03533,"11":0.01864},L:{"0":0},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":9.68},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js index cf8b4f0d054cb0..91da9741766a33 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js @@ -1 +1 @@ -module.exports={C:{"4":0.00453,"17":0.00906,"45":0.00906,"46":0.00453,"47":0.00906,"48":0.00906,"49":0.01359,"50":0.00906,"51":0.00453,"52":0.06343,"53":0.00453,"54":0.00453,"55":0.00906,"56":0.00906,"66":0.08156,"73":0.04984,"77":0.00906,"78":0.06797,"81":0.00906,"82":0.00453,"84":0.00906,"85":0.01359,"86":0.01359,"87":0.03172,"88":1.63116,"89":0.01812,_:"2 3 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 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 79 80 83 90 91 3.5 3.6"},D:{"24":0.00453,"25":0.00906,"46":0.00906,"49":0.08609,"53":0.01812,"58":0.03625,"59":0.00906,"63":0.00453,"65":0.01812,"67":0.00453,"68":0.01359,"70":0.00453,"72":0.02266,"74":0.0589,"75":0.02266,"76":0.02266,"77":0.00906,"78":0.00453,"79":0.04078,"80":0.01812,"81":0.02719,"83":0.88355,"84":0.04531,"85":0.02266,"86":0.04078,"87":0.66606,"88":0.15859,"89":0.80652,"90":21.83942,"91":0.62528,"92":0.00453,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 50 51 52 54 55 56 57 60 61 62 64 66 69 71 73 93 94"},F:{"73":0.09515,"74":0.00453,"75":0.3806,"76":0.24014,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00724,"7.0-7.1":0.00724,"8.1-8.4":0.00482,"9.0-9.2":0,"9.3":0.10372,"10.0-10.2":0.00965,"10.3":0.0989,"11.0-11.2":0.12061,"11.3-11.4":0.07236,"12.0-12.1":0.03859,"12.2-12.4":0.17367,"13.0-13.1":0.08201,"13.2":0.05548,"13.3":0.26292,"13.4-13.7":0.70676,"14.0-14.4":18.16099,"14.5-14.6":3.74846},E:{"4":0,"11":0.00906,"12":0.00906,"13":0.14952,"14":4.03712,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.02719,"9.1":0.00906,"10.1":0.03625,"11.1":0.09062,"12.1":0.11781,"13.1":0.68871,"14.1":1.72178},B:{"14":0.00453,"15":0.00453,"16":0.00453,"17":0.02719,"18":0.14952,"80":0.00453,"84":0.00906,"85":0.02266,"86":0.00906,"87":0.01812,"88":0.02266,"89":0.14499,"90":6.25278,"91":0.37154,_:"12 13 79 81 83"},P:{"4":0.14491,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.0414,"8.2":0.04015,"9.2":0.12421,"10.1":0.05116,"11.1-11.2":0.17597,"12.0":0.09316,"13.0":0.51755,"14.0":2.85688},I:{"0":0,"3":0,"4":0.00075,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00075,"4.4":0,"4.4.3-4.4.4":0.02037},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36701,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.33908},Q:{"10.4":0},O:{"0":0.03828},H:{"0":0.18122},L:{"0":28.32079}}; +module.exports={C:{"17":0.0046,"45":0.0092,"46":0.0092,"47":0.0092,"48":0.0092,"49":0.01381,"50":0.0092,"51":0.0092,"52":0.07823,"53":0.0092,"54":0.0092,"55":0.0092,"56":0.0092,"66":0.14266,"73":0.05522,"77":0.0092,"78":0.05522,"80":0.0046,"84":0.0046,"85":0.01381,"86":0.0046,"87":0.0046,"88":0.03221,"89":1.1597,"90":0.74092,"91":0.0046,_:"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 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 79 81 82 83 92 3.5 3.6"},D:{"24":0.0092,"25":0.0046,"37":0.01381,"41":0.03682,"49":0.08284,"54":0.03221,"56":0.0092,"58":0.0092,"59":0.0092,"65":0.01381,"68":0.0046,"69":0.0092,"71":0.02301,"72":0.0046,"74":0.14266,"75":0.04142,"76":0.01381,"77":0.0092,"78":0.0092,"79":0.03682,"80":0.01841,"81":0.01841,"83":2.16294,"84":0.03682,"85":0.01381,"86":0.03221,"87":0.6995,"88":0.10585,"89":0.11505,"90":0.35896,"91":17.73611,"92":3.98533,"93":0.02301,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 38 39 40 42 43 44 45 46 47 48 50 51 52 53 55 57 60 61 62 63 64 66 67 70 73 94 95"},F:{"74":0.0092,"76":0.2301,"77":0.52923,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00485,"7.0-7.1":0.00485,"8.1-8.4":0,"9.0-9.2":0.00243,"9.3":0.09215,"10.0-10.2":0.0194,"10.3":0.12611,"11.0-11.2":0.15521,"11.3-11.4":0.0582,"12.0-12.1":0.02668,"12.2-12.4":0.13823,"13.0-13.1":0.11398,"13.2":0.04365,"13.3":0.11155,"13.4-13.7":0.47047,"14.0-14.4":3.25691,"14.5-14.7":19.10494},E:{"4":0,"11":0.0046,"12":0.01381,"13":0.10124,"14":1.24254,"15":0.04602,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.0046,"10.1":0.08744,"11.1":0.08284,"12.1":0.09204,"13.1":0.43719,"14.1":4.03595},B:{"12":0.0046,"14":0.0046,"15":0.0046,"16":0.0092,"17":0.01841,"18":0.12425,"84":0.0092,"85":0.01381,"86":0.01381,"87":0.0046,"88":0.02761,"89":0.03682,"90":0.07363,"91":5.26009,"92":1.36679,_:"13 79 80 81 83"},P:{"4":0.12526,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.05219,"8.2":0.02018,"9.2":0.06263,"10.1":0.01081,"11.1-11.2":0.11482,"12.0":0.06263,"13.0":0.18788,"14.0":3.32974},I:{"0":0,"3":0,"4":0.00077,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00231,"4.4":0,"4.4.3-4.4.4":0.01851},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.29913,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":28.66277},S:{"2.5":0},R:{_:"0"},M:{"0":0.2807},Q:{"10.4":0},O:{"0":0.04318},H:{"0":0.11243}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js index 1b1c8616b194a3..d83e4261b016e8 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js @@ -1 +1 @@ -module.exports={C:{"17":0.01138,"52":0.02655,"58":0.00379,"78":0.01897,"79":0.00379,"80":0.00379,"81":0.00759,"82":0.00379,"84":0.00759,"85":0.01138,"86":0.01138,"87":0.01897,"88":1.36169,"89":0.01897,_:"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 48 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 83 90 91 3.5 3.6"},D:{"23":0.00759,"24":0.00759,"25":0.00379,"38":0.03034,"43":0.00759,"49":0.03034,"51":0.00379,"53":0.04552,"58":0.00379,"63":0.01517,"65":0.01897,"68":0.00759,"69":0.03414,"70":0.00379,"71":0.01897,"72":0.01138,"74":0.00759,"75":0.01138,"76":0.00379,"77":0.20103,"78":0.01897,"79":0.21999,"80":0.03793,"81":0.03414,"83":0.03414,"84":0.06448,"85":0.06069,"86":0.06448,"87":0.20482,"88":0.14793,"89":1.191,"90":25.31828,"91":1.25548,"92":0.03414,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 52 54 55 56 57 59 60 61 62 64 66 67 73 93 94"},F:{"73":0.0531,"75":0.40964,"76":0.60688,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.34093,"6.0-6.1":0.0044,"7.0-7.1":0.05726,"8.1-8.4":0.00352,"9.0-9.2":0.00176,"9.3":0.05814,"10.0-10.2":0.02819,"10.3":0.03612,"11.0-11.2":0.02467,"11.3-11.4":0.04229,"12.0-12.1":0.02907,"12.2-12.4":0.14183,"13.0-13.1":0.02467,"13.2":0.00705,"13.3":0.10924,"13.4-13.7":0.30833,"14.0-14.4":5.62043,"14.5-14.6":1.48703},E:{"4":0,"13":0.03793,"14":0.63722,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.08345,"10.1":0.00379,"11.1":0.02276,"12.1":0.01138,"13.1":0.09103,"14.1":0.2162},B:{"13":0.00759,"15":0.00759,"16":0.01138,"17":0.01517,"18":0.0531,"84":0.01138,"85":0.01517,"86":0.00759,"87":0.00759,"88":0.00379,"89":0.04552,"90":1.84719,"91":0.16689,_:"12 14 79 80 81 83"},P:{"4":0.08235,"5.0-5.4":0.01029,"6.2-6.4":0.03088,"7.2-7.4":0.06176,"8.2":0.06183,"9.2":0.06176,"10.1":0.03088,"11.1-11.2":0.25733,"12.0":0.21616,"13.0":0.42202,"14.0":2.01748},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00134,"4.2-4.3":0.00468,"4.4":0,"4.4.3-4.4.4":0.10572},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01138,"8":0.00759,"11":0.17069,_:"7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.13658},Q:{"10.4":0},O:{"0":0.09933},H:{"0":0.41141},L:{"0":52.15843}}; +module.exports={C:{"17":0.00752,"52":0.01128,"58":0.00376,"59":0.00376,"76":0.00376,"78":0.0188,"81":0.00376,"82":0.00376,"83":0.00376,"86":0.0188,"87":0.00376,"88":0.02631,"89":0.89464,"90":0.51498,"91":0.00752,_:"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 48 49 50 51 53 54 55 56 57 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 84 85 92 3.5 3.6"},D:{"18":0.00752,"34":0.00752,"38":0.03007,"43":0.00752,"49":0.03007,"53":0.00752,"56":0.00376,"58":0.00752,"60":0.01128,"63":0.0188,"64":0.00752,"65":0.00376,"68":0.00376,"69":0.01504,"71":0.01128,"72":0.01504,"74":0.00752,"75":0.00752,"76":0.01128,"77":0.19923,"78":0.02631,"79":0.22554,"80":0.03383,"81":0.02255,"83":0.03759,"84":0.05263,"85":0.03007,"86":0.07518,"87":0.12781,"88":0.06014,"89":0.2105,"90":0.48867,"91":22.05781,"92":5.31523,"93":0.0188,_:"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 44 45 46 47 48 50 51 52 54 55 57 59 61 62 66 67 70 73 94 95"},F:{"72":0.00752,"76":0.11277,"77":0.94351,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00153,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02609,"6.0-6.1":0.00077,"7.0-7.1":0.05679,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08289,"10.0-10.2":0.00767,"10.3":0.03223,"11.0-11.2":0.01458,"11.3-11.4":0.03684,"12.0-12.1":0.02149,"12.2-12.4":0.09594,"13.0-13.1":0.01612,"13.2":0.00767,"13.3":0.04912,"13.4-13.7":0.25788,"14.0-14.4":1.2441,"14.5-14.7":5.27419},E:{"4":0,"11":0.00376,"13":0.02255,"14":0.18795,"15":0.01128,_:"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.01128,"12.1":0.00752,"13.1":0.07894,"14.1":0.49243},B:{"13":0.00376,"15":0.00752,"16":0.00376,"17":0.00376,"18":0.04887,"84":0.00376,"85":0.00376,"86":0.02255,"89":0.01504,"90":0.0188,"91":1.39835,"92":0.42101,_:"12 14 79 80 81 83 87 88"},P:{"4":0.13366,"5.0-5.4":0.01069,"6.2-6.4":0.05097,"7.2-7.4":0.12338,"8.2":0.13223,"9.2":0.06169,"10.1":0.04113,"11.1-11.2":0.20563,"12.0":0.10281,"13.0":0.2776,"14.0":2.11796},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00396,"4.2-4.3":0.00991,"4.4":0,"4.4.3-4.4.4":0.15461},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00376,"9":0.00752,"11":0.13532,_:"7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":53.4867},S:{"2.5":0},R:{_:"0"},M:{"0":0.07488},Q:{"10.4":0},O:{"0":0.09984},H:{"0":0.37809}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js index e2279cc94c0ddd..be002d9763d136 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js @@ -1 +1 @@ -module.exports={C:{"40":0.0065,"52":0.05199,"56":0.026,"60":0.0065,"68":0.0065,"72":0.013,"78":0.11698,"80":0.0065,"82":0.0065,"83":0.0195,"84":0.0195,"85":0.026,"86":0.0195,"87":0.05849,"88":3.45747,"89":0.026,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 81 90 91 3.5 3.6"},D:{"23":0.03899,"38":0.013,"43":0.69539,"49":0.26646,"53":0.026,"61":0.06499,"62":0.013,"63":0.0195,"65":0.0195,"67":0.013,"68":0.013,"69":0.013,"70":0.0065,"71":0.0195,"72":0.0065,"73":0.013,"74":0.013,"75":0.0195,"76":0.026,"77":0.013,"78":0.013,"79":0.05849,"80":0.03899,"81":0.0325,"83":0.05199,"84":0.05199,"85":0.08449,"86":0.09099,"87":0.26646,"88":0.22747,"89":0.87737,"90":40.07933,"91":1.47527,"92":0.013,_:"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 54 55 56 57 58 59 60 64 66 93 94"},F:{"36":0.0065,"73":0.40294,"75":1.38429,"76":0.74089,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00085,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0051,"6.0-6.1":0.00085,"7.0-7.1":0.00425,"8.1-8.4":0.0051,"9.0-9.2":0.00255,"9.3":0.09772,"10.0-10.2":0.00255,"10.3":0.10027,"11.0-11.2":0.03739,"11.3-11.4":0.02634,"12.0-12.1":0.01954,"12.2-12.4":0.10197,"13.0-13.1":0.02889,"13.2":0.0119,"13.3":0.07138,"13.4-13.7":0.28211,"14.0-14.4":5.96944,"14.5-14.6":1.3086},E:{"4":0,"12":0.026,"13":0.07149,"14":2.00819,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.0195,"10.1":0.05849,"11.1":0.07799,"12.1":0.07799,"13.1":0.40944,"14.1":0.91636},B:{"14":0.0065,"15":0.0065,"16":0.0065,"17":0.013,"18":0.04549,"84":0.013,"85":0.0065,"86":0.013,"87":0.03899,"88":0.0065,"89":0.08449,"90":5.38117,"91":0.53292,_:"12 13 79 80 81 83"},P:{"4":0.05353,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.0307,"8.2":0.04015,"9.2":0.01071,"10.1":0.05116,"11.1-11.2":0.04283,"12.0":0.03212,"13.0":0.1606,"14.0":1.54174},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.00679,"4.4":0,"4.4.3-4.4.4":0.05429},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00688,"11":0.81199,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.21006},Q:{"10.4":0},O:{"0":0.22406},H:{"0":0.19224},L:{"0":25.87219}}; +module.exports={C:{"3":0.02428,"49":0.01214,"52":0.05463,"53":0.00607,"60":0.01821,"72":0.00607,"78":0.1214,"79":0.00607,"81":0.00607,"82":0.00607,"83":0.01214,"84":0.01214,"85":0.00607,"86":0.00607,"87":0.01214,"88":0.03642,"89":2.04559,"90":1.16544,"91":0.01214,_:"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 45 46 47 48 50 51 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 80 92 3.5 3.6"},D:{"23":0.03642,"38":0.01214,"43":0.8498,"49":0.2428,"53":0.00607,"61":0.09712,"62":0.02428,"63":0.01821,"65":0.02428,"67":0.01214,"68":0.01214,"69":0.01214,"70":0.01214,"71":0.01821,"73":0.01214,"74":0.00607,"75":0.03642,"76":0.03035,"77":0.01214,"78":0.00607,"79":0.08498,"80":0.03035,"81":0.02428,"83":0.03642,"84":0.04249,"85":0.04249,"86":0.0607,"87":0.17603,"88":0.09712,"89":0.21245,"90":0.39455,"91":33.73099,"92":6.45848,"93":0.01214,_:"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 54 55 56 57 58 59 60 64 66 72 94 95"},F:{"75":0.01821,"76":0.83159,"77":1.42645,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00191,"5.0-5.1":0.00191,"6.0-6.1":0,"7.0-7.1":0.00478,"8.1-8.4":0.00574,"9.0-9.2":0.00574,"9.3":0.11292,"10.0-10.2":0.00478,"10.3":0.11101,"11.0-11.2":0.04402,"11.3-11.4":0.02392,"12.0-12.1":0.01818,"12.2-12.4":0.08708,"13.0-13.1":0.02871,"13.2":0.00766,"13.3":0.06507,"13.4-13.7":0.23828,"14.0-14.4":1.24212,"14.5-14.7":7.09963},E:{"4":0,"7":0.01214,"12":0.01214,"13":0.05463,"14":0.67377,"15":0.01821,_:"0 5 6 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03642,"11.1":0.0607,"12.1":0.06677,"13.1":0.32778,"14.1":1.97275},B:{"14":0.02428,"15":0.00607,"16":0.01214,"17":0.01214,"18":0.04856,"84":0.00607,"85":0.01214,"86":0.01214,"88":0.00607,"89":0.02428,"90":0.04249,"91":4.01834,"92":1.04404,_:"12 13 79 80 81 83 87"},P:{"4":0.07434,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.07568,"8.2":0.02018,"9.2":0.02124,"10.1":0.01081,"11.1-11.2":0.04248,"12.0":0.03186,"13.0":0.1062,"14.0":1.58231},I:{"0":0,"3":0,"4":0.00144,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00431,"4.2-4.3":0.00718,"4.4":0,"4.4.3-4.4.4":0.06173},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.62521,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":29.56962},S:{"2.5":0},R:{_:"0"},M:{"0":0.25146},Q:{"10.4":0},O:{"0":0.2161},H:{"0":0.22318}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js index dd41a03ec3ac3d..5a2cc2d6b0361b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js @@ -1 +1 @@ -module.exports={C:{"72":0.0729,"79":0.09862,"87":0.06432,"88":1.5737,"89":0.03859,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 78 80 81 82 83 84 85 86 90 91 3.5 3.6"},D:{"48":0.22298,"53":0.05574,"65":0.1415,"67":0.06432,"68":0.01715,"70":0.20154,"75":0.01286,"76":0.26157,"78":0.06432,"79":0.06003,"81":0.03002,"83":0.04717,"84":0.02144,"86":0.01715,"87":0.52742,"88":0.35162,"89":0.75898,"90":26.9072,"91":0.48026,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 54 55 56 57 58 59 60 61 62 63 64 66 69 71 72 73 74 77 80 85 92 93 94"},F:{"76":0.29158,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.06526,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00332,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.1648,"11.3-11.4":0.43688,"12.0-12.1":0.00995,"12.2-12.4":0.06083,"13.0-13.1":0.00995,"13.2":0.00664,"13.3":0.00332,"13.4-13.7":0.31632,"14.0-14.4":8.28634,"14.5-14.6":1.33497},E:{"4":0,"12":0.09005,"13":0.0729,"14":1.94246,_:"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.02573,"12.1":0.24013,"13.1":0.11578,"14.1":0.3216},B:{"17":0.00858,"18":0.04717,"80":0.01715,"88":0.00858,"89":0.07718,"90":2.55136,"91":0.1072,_:"12 13 14 15 16 79 81 83 84 85 86 87"},P:{"4":0.31732,"5.0-5.4":0.01058,"6.2-6.4":0.05078,"7.2-7.4":0.3656,"8.2":0.06183,"9.2":0.07109,"10.1":0.02115,"11.1-11.2":0.15233,"12.0":0.44684,"13.0":0.62964,"14.0":6.7432},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.00571},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.38592,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.05141},Q:{"10.4":2.46758},O:{"0":0.94819},H:{"0":0.11356},L:{"0":38.59851}}; +module.exports={C:{"78":0.00807,"86":0.00807,"87":0.06453,"88":0.00807,"89":0.66141,"90":0.27021,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"33":0.02017,"48":0.05646,"49":0.06856,"65":0.07663,"68":0.03226,"69":0.00807,"79":0.17745,"80":0.00807,"81":0.0605,"83":0.02017,"85":0.02823,"87":0.0121,"88":0.00807,"89":0.22585,"90":0.50413,"91":17.07976,"92":5.41632,_:"4 5 6 7 8 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 70 71 72 73 74 75 76 77 78 84 86 93 94 95"},F:{"77":0.08066,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00357,"10.3":0,"11.0-11.2":0.13912,"11.3-11.4":0.25803,"12.0-12.1":0.09632,"12.2-12.4":0.02378,"13.0-13.1":0.00951,"13.2":0,"13.3":0.02616,"13.4-13.7":0.50774,"14.0-14.4":1.01905,"14.5-14.7":9.43899},E:{"4":0,"13":0.03226,"14":0.22988,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00807,"12.1":0.15325,"13.1":0.10889,"14.1":1.00825},B:{"13":0.0121,"17":0.14116,"18":0.02017,"90":0.02823,"91":4.55729,"92":2.24638,_:"12 14 15 16 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.02039,"5.0-5.4":0.01069,"6.2-6.4":0.05097,"7.2-7.4":0.47915,"8.2":0.13223,"9.2":0.01019,"10.1":0.01069,"11.1-11.2":0.05097,"12.0":0.03058,"13.0":0.45877,"14.0":5.4746},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.05967},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.08103,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":42.30342},S:{"2.5":0},R:{_:"0"},M:{"0":0.23868},Q:{"10.4":3.0014},O:{"0":0.5072},H:{"0":0.06779}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js index ed978bfc51dd29..896cd890716950 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js @@ -1 +1 @@ -module.exports={C:{"17":0.00551,"38":0.00551,"52":0.03028,"60":0.00275,"65":0.00551,"68":0.00826,"73":0.05781,"77":0.00275,"78":0.02478,"80":0.01101,"81":0.00275,"82":0.02202,"84":0.01101,"85":0.01377,"86":0.00551,"87":0.02478,"88":1.34897,"89":0.01101,_:"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 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 66 67 69 70 71 72 74 75 76 79 83 90 91 3.5 3.6"},D:{"38":0.00275,"39":0.00275,"41":0.00275,"44":0.00275,"47":0.01652,"49":0.17344,"53":0.01652,"54":0.00551,"58":0.00551,"63":0.00275,"64":0.00275,"65":0.01927,"66":0.00551,"67":0.00551,"68":0.00551,"69":0.01927,"70":0.00551,"71":0.00551,"72":0.00551,"73":0.00551,"74":0.01101,"75":0.01652,"76":0.00826,"77":0.00826,"78":0.01927,"79":0.05781,"80":0.01652,"81":0.03854,"83":0.0413,"84":0.02753,"85":0.01927,"86":0.03579,"87":0.12389,"88":0.40744,"89":0.44599,"90":18.08446,"91":0.78461,"92":0.00551,_:"4 5 6 7 8 9 10 11 12 13 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 42 43 45 46 48 50 51 52 55 56 57 59 60 61 62 93 94"},F:{"73":0.19271,"75":0.53133,"76":0.26704,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00272,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00453,"6.0-6.1":0.00317,"7.0-7.1":0.01677,"8.1-8.4":0,"9.0-9.2":0.00181,"9.3":0.0272,"10.0-10.2":0.00227,"10.3":0.02267,"11.0-11.2":0.01541,"11.3-11.4":0.02312,"12.0-12.1":0.01133,"12.2-12.4":0.06574,"13.0-13.1":0.00997,"13.2":0.00544,"13.3":0.03038,"13.4-13.7":0.13828,"14.0-14.4":3.04432,"14.5-14.6":0.79202},E:{"4":0,"13":0.01101,"14":0.33311,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.60841,"11.1":0.00551,"12.1":0.00826,"13.1":0.0468,"14.1":0.17069},B:{"14":0.00551,"15":0.00275,"17":0.00826,"18":0.03579,"80":0.00275,"84":0.00551,"85":0.00551,"88":0.00551,"89":0.03028,"90":1.35998,"91":0.11287,_:"12 13 16 79 81 83 86 87"},P:{"4":0.58222,"5.0-5.4":0.06023,"6.2-6.4":0.05019,"7.2-7.4":0.53203,"8.2":0.04015,"9.2":0.16061,"10.1":0.07027,"11.1-11.2":0.51195,"12.0":0.26099,"13.0":1.11425,"14.0":2.92113},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00852,"4.2-4.3":0.01193,"4.4":0,"4.4.3-4.4.4":0.12446},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00282,"9":0.01129,"11":0.32451,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.07246},Q:{"10.4":0},O:{"0":0.0942},H:{"0":0.2744},L:{"0":62.34439}}; +module.exports={C:{"4":0.00222,"5":0.00222,"17":0.00445,"24":0.00445,"38":0.00445,"47":0.00445,"52":0.02668,"66":0.00445,"68":0.00889,"73":0.04668,"76":0.00222,"77":0.00222,"78":0.0289,"79":0.00222,"81":0.00445,"82":0.00222,"84":0.00667,"85":0.00445,"86":0.00445,"87":0.00445,"88":0.04224,"89":0.73581,"90":0.39125,"91":0.00667,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 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 74 75 80 83 92 3.5 3.6"},D:{"24":0.00667,"25":0.00445,"38":0.00667,"47":0.01112,"49":0.08003,"50":0.00445,"53":0.00222,"54":0.00445,"55":0.00222,"58":0.00222,"60":0.00445,"63":0.00667,"65":0.02445,"66":0.00445,"67":0.00222,"68":0.00445,"69":0.00889,"70":0.00445,"71":0.00445,"72":0.00222,"73":0.00667,"74":0.00889,"75":0.00445,"76":0.00667,"77":0.00889,"78":0.01112,"79":0.04668,"80":0.02001,"81":0.03335,"83":0.01778,"84":0.01556,"85":0.02001,"86":0.06447,"87":0.09781,"88":0.14894,"89":0.12004,"90":0.2223,"91":12.37322,"92":2.9477,"93":0.01334,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 51 52 56 57 59 61 62 64 94 95"},F:{"36":0.00222,"76":0.34234,"77":0.53352,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00187,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0014,"6.0-6.1":0.00234,"7.0-7.1":0.01171,"8.1-8.4":0.0014,"9.0-9.2":0,"9.3":0.01592,"10.0-10.2":0.00328,"10.3":0.03137,"11.0-11.2":0.00983,"11.3-11.4":0.0206,"12.0-12.1":0.00983,"12.2-12.4":0.07538,"13.0-13.1":0.00609,"13.2":0.00281,"13.3":0.02575,"13.4-13.7":0.10394,"14.0-14.4":0.54733,"14.5-14.7":3.48482},E:{"4":0,"13":0.00667,"14":0.08225,"15":0.00889,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.07558,"11.1":0.00445,"12.1":0.00889,"13.1":0.04446,"14.1":0.32456},B:{"12":0.00667,"14":0.00445,"15":0.00222,"18":0.01334,"79":0.00222,"85":0.00222,"86":0.00222,"89":0.00889,"90":0.00667,"91":0.98034,"92":0.23119,_:"13 16 17 80 81 83 84 87 88"},P:{"4":0.49441,"5.0-5.4":0.02018,"6.2-6.4":0.03027,"7.2-7.4":0.59531,"8.2":0.02018,"9.2":0.12108,"10.1":0.06054,"11.1-11.2":0.43387,"12.0":0.17153,"13.0":0.5045,"14.0":3.04718},I:{"0":0,"3":0,"4":0.00294,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00294,"4.2-4.3":0.0103,"4.4":0,"4.4.3-4.4.4":0.09271},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00448,"10":0.00448,"11":0.27781,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":68.6246},S:{"2.5":0},R:{_:"0"},M:{"0":0.07778},Q:{"10.4":0},O:{"0":0.08556},H:{"0":0.21355}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js index fdda995c09004e..7b368a13ea5310 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js @@ -1 +1 @@ -module.exports={C:{"38":0.08372,"52":0.00966,"56":0.00322,"60":0.00644,"74":0.00322,"78":0.04508,"82":0.00644,"84":0.01288,"85":0.00322,"86":0.00644,"87":0.02254,"88":0.77602,"89":0.01932,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 79 80 81 83 90 91 3.5 3.6"},D:{"34":0.00644,"38":0.02898,"41":0.00644,"49":0.06118,"53":0.02898,"56":0.00966,"58":0.00322,"60":0.00322,"63":0.00322,"65":0.01288,"66":0.00322,"67":0.00966,"68":0.01288,"69":0.00966,"70":0.00644,"71":0.00322,"73":0.00966,"74":0.01932,"75":0.01932,"76":0.00966,"77":0.00644,"78":0.00644,"79":0.0322,"80":0.0161,"81":0.02254,"83":0.04186,"84":0.0644,"85":0.0322,"86":0.10304,"87":0.14168,"88":0.11914,"89":0.62468,"90":19.63234,"91":0.80178,"92":0.02254,_:"4 5 6 7 8 9 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 48 50 51 52 54 55 57 59 61 62 64 72 93 94"},F:{"46":0.00966,"73":0.07406,"75":0.29302,"76":0.24794,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00136,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01092,"6.0-6.1":0,"7.0-7.1":0.0191,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06687,"10.0-10.2":0.00273,"10.3":0.03685,"11.0-11.2":0.03821,"11.3-11.4":0.02729,"12.0-12.1":0.02047,"12.2-12.4":0.06823,"13.0-13.1":0.03002,"13.2":0.01228,"13.3":0.14329,"13.4-13.7":0.4244,"14.0-14.4":8.84284,"14.5-14.6":3.44707},E:{"4":0,"10":0.00322,"11":0.00322,"12":0.00644,"13":0.05796,"14":1.7388,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 9.1","5.1":0.00966,"10.1":0.0161,"11.1":0.02898,"12.1":0.06118,"13.1":0.21896,"14.1":0.57316},B:{"14":0.00644,"15":0.00322,"16":0.00966,"17":0.0161,"18":0.05152,"80":0.00322,"84":0.01288,"85":0.01288,"86":0.00322,"87":0.01288,"88":0.00644,"89":0.07084,"90":2.23468,"91":0.19642,_:"12 13 79 81 83"},P:{"4":0.09251,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.05139,"8.2":0.04015,"9.2":0.03084,"10.1":0.01028,"11.1-11.2":0.19529,"12.0":0.09251,"13.0":0.30836,"14.0":2.38462},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,"4.4":0,"4.4.3-4.4.4":0.02169},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.39606,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.11524},Q:{"10.4":0},O:{"0":6.28413},H:{"0":1.05896},L:{"0":46.40478}}; +module.exports={C:{"34":0.00302,"38":0.04533,"52":0.00604,"78":0.03324,"82":0.00604,"84":0.00604,"87":0.00604,"88":0.00907,"89":0.52281,"90":0.25385,"91":0.00604,_:"2 3 4 5 6 7 8 9 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 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 83 85 86 92 3.5 3.6"},D:{"34":0.00604,"38":0.03324,"49":0.04835,"51":0.00302,"53":0.00604,"55":0.00302,"56":0.00907,"61":0.00302,"62":0.00604,"63":0.00302,"65":0.00604,"67":0.01209,"68":0.00604,"69":0.00604,"71":0.00604,"73":0.00604,"74":0.00604,"75":0.01209,"76":0.01209,"78":0.01209,"79":0.07857,"80":0.01813,"81":0.00907,"83":0.03022,"84":0.03626,"85":0.01511,"86":0.06346,"87":0.16319,"88":0.07253,"89":0.0967,"90":0.25083,"91":15.47566,"92":3.64755,"93":0.00907,_:"4 5 6 7 8 9 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 52 54 57 58 59 60 64 66 70 72 77 94 95"},F:{"28":0.00907,"46":0.00604,"76":0.12995,"77":0.3566,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00816,"6.0-6.1":0.00408,"7.0-7.1":0.0068,"8.1-8.4":0,"9.0-9.2":0.00408,"9.3":0.06668,"10.0-10.2":0.0068,"10.3":0.04899,"11.0-11.2":0.03266,"11.3-11.4":0.02041,"12.0-12.1":0.02721,"12.2-12.4":0.05851,"13.0-13.1":0.02313,"13.2":0.01225,"13.3":0.08709,"13.4-13.7":0.34835,"14.0-14.4":1.94723,"14.5-14.7":10.43015},E:{"4":0,"13":0.07857,"14":0.42912,"15":0.01511,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00302,"11.1":0.01209,"12.1":0.03324,"13.1":0.2055,"14.1":1.30248},B:{"12":0.00302,"14":0.00302,"16":0.00604,"17":0.00604,"18":0.04533,"84":0.01209,"85":0.00907,"87":0.03626,"88":0.00604,"89":0.02115,"90":0.01813,"91":1.61375,"92":0.4805,_:"13 15 79 80 81 83 86"},P:{"4":0.14474,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.05169,"8.2":0.02018,"9.2":0.03102,"10.1":0.01081,"11.1-11.2":0.1344,"12.0":0.07237,"13.0":0.19643,"14.0":2.4606},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00268,"4.2-4.3":0.00537,"4.4":0,"4.4.3-4.4.4":0.02684},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28407,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":49.36203},S:{"2.5":0},R:{_:"0"},M:{"0":0.1256},Q:{"10.4":0},O:{"0":6.48256},H:{"0":1.10986}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js index d82827c57ea873..a63c21977516da 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js @@ -1 +1 @@ -module.exports={C:{"47":0.0051,"48":0.0153,"49":0.08158,"52":0.07139,"54":0.0153,"55":0.0153,"56":0.0153,"57":0.0051,"59":0.0204,"60":0.03569,"61":0.03059,"66":0.0051,"67":0.04079,"68":0.03569,"72":0.03059,"77":0.03059,"78":0.68837,"80":0.0051,"82":0.0102,"84":0.03569,"85":0.0255,"86":0.03569,"87":0.13257,"88":5.67519,"89":0.0102,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 53 58 62 63 64 65 69 70 71 73 74 75 76 79 81 83 90 91 3.5 3.6"},D:{"48":0.0153,"49":0.21926,"50":0.0255,"53":0.0153,"54":0.0255,"56":0.07649,"60":0.0153,"61":0.0153,"62":0.0102,"63":0.0153,"65":0.08158,"67":0.0102,"68":0.05099,"69":0.0051,"70":0.0255,"71":0.0051,"75":0.0204,"76":0.0051,"77":0.0051,"78":0.0102,"79":0.03569,"80":0.0204,"81":0.0255,"83":0.0255,"84":0.03569,"85":0.03059,"86":0.03569,"87":0.40282,"88":0.11218,"89":0.64757,"90":24.71485,"91":0.92802,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 51 52 55 57 58 59 64 66 72 73 74 92 93 94"},F:{"73":0.19376,"75":0.60678,"76":0.54559,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00617,"8.1-8.4":0,"9.0-9.2":0.00988,"9.3":0.22963,"10.0-10.2":0.01481,"10.3":0.16543,"11.0-11.2":0.04321,"11.3-11.4":0.02963,"12.0-12.1":0.05679,"12.2-12.4":0.14568,"13.0-13.1":0.02716,"13.2":0.01111,"13.3":0.11111,"13.4-13.7":0.40618,"14.0-14.4":8.62727,"14.5-14.6":1.78521},E:{"4":0,"10":0.0153,"11":0.0102,"12":0.0153,"13":0.13767,"14":2.87584,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04079,"11.1":0.19376,"12.1":0.22946,"13.1":0.80564,"14.1":1.05039},B:{"14":0.03569,"15":0.0204,"16":0.0255,"17":0.10708,"18":0.11218,"84":0.0051,"85":0.0153,"86":0.0102,"87":0.0102,"88":0.0153,"89":0.13257,"90":4.87464,"91":0.35693,_:"12 13 79 80 81 83"},P:{"4":0.17825,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.06291,"8.2":0.04015,"9.2":0.0734,"10.1":0.01049,"11.1-11.2":0.4928,"12.0":0.08388,"13.0":0.39843,"14.0":2.98823},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00326,"4.2-4.3":0.00109,"4.4":0,"4.4.3-4.4.4":0.04957},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0102,"11":0.23455,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.35287},Q:{"10.4":0},O:{"0":0.45579},H:{"0":0.22272},L:{"0":34.65546}}; +module.exports={C:{"32":0.00459,"41":0.00919,"48":0.00919,"49":0.0781,"52":0.02756,"54":0.00919,"55":0.01378,"56":0.01838,"57":0.01378,"58":0.00459,"60":0.03216,"61":0.02756,"67":0.01838,"68":0.01838,"72":0.03675,"73":0.00459,"74":0.00459,"78":0.47318,"79":0.00459,"80":0.00919,"82":0.00919,"84":0.00919,"85":0.04135,"86":0.02756,"87":0.00919,"88":0.05513,"89":3.25255,"90":1.95704,"91":0.00459,_:"2 3 4 5 6 7 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 42 43 44 45 46 47 50 51 53 59 62 63 64 65 66 69 70 71 75 76 77 81 83 92 3.5 3.6"},D:{"47":0.08269,"49":0.14241,"54":0.01378,"56":0.34455,"61":0.00919,"63":0.01378,"65":0.03216,"67":0.01378,"70":0.01378,"71":0.03216,"72":0.00459,"73":0.00919,"74":0.00919,"75":0.01378,"76":0.00919,"77":0.02756,"79":0.14241,"80":0.03216,"81":0.01838,"83":0.04135,"84":0.00919,"85":0.00919,"86":0.02297,"87":0.08269,"88":0.03675,"89":0.1516,"90":0.27564,"91":17.0713,"92":4.86045,"93":0.00459,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 57 58 59 60 62 64 66 68 69 78 94 95"},F:{"75":0.03216,"76":0.32158,"77":0.95555,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02315,"8.1-8.4":0,"9.0-9.2":0.00154,"9.3":0.30559,"10.0-10.2":0.01543,"10.3":0.09878,"11.0-11.2":0.05402,"11.3-11.4":0.03087,"12.0-12.1":0.03087,"12.2-12.4":0.13427,"13.0-13.1":0.02778,"13.2":0.02932,"13.3":0.09878,"13.4-13.7":0.40436,"14.0-14.4":2.18696,"14.5-14.7":11.46262},E:{"4":0,"11":0.01378,"12":0.00459,"13":0.11026,"14":0.90042,"15":0.00919,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00919,"10.1":0.02297,"11.1":0.14241,"12.1":0.33077,"13.1":0.71666,"14.1":3.15608},B:{"14":0.00459,"15":0.01838,"16":0.03675,"17":0.0735,"18":0.08269,"80":0.00459,"84":0.00459,"85":0.00459,"86":0.00919,"87":0.00459,"88":0.00459,"89":0.02756,"90":0.02297,"91":3.94165,"92":1.11175,_:"12 13 79 81 83"},P:{"4":0.0314,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.17791,"8.2":0.02018,"9.2":0.09419,"10.1":0.01047,"11.1-11.2":0.36629,"12.0":0.06279,"13.0":0.28256,"14.0":3.38029},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00177,"4.2-4.3":0.00101,"4.4":0,"4.4.3-4.4.4":0.02425},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00459,"11":0.25726,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":36.85541},S:{"2.5":0},R:{_:"0"},M:{"0":0.39464},Q:{"10.4":0},O:{"0":0.51898},H:{"0":0.22519}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js index 30dcff2d17af6c..fa3f576970cb8a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js @@ -1 +1 @@ -module.exports={C:{"29":0.0045,"38":0.009,"43":0.009,"44":0.03598,"45":0.009,"48":0.0045,"52":0.12594,"56":0.0045,"59":0.0045,"60":0.009,"61":0.009,"62":0.0045,"65":0.01349,"66":0.0045,"68":0.009,"70":0.01349,"72":0.009,"77":0.0045,"78":0.11695,"80":0.0045,"81":0.009,"82":0.009,"83":0.009,"84":0.02249,"85":0.01799,"86":0.02699,"87":0.06747,"88":3.29254,"89":0.02699,_:"2 3 4 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 39 40 41 42 46 47 49 50 51 53 54 55 57 58 63 64 67 69 71 73 74 75 76 79 90 91 3.5 3.6"},D:{"38":0.009,"47":0.009,"48":0.06747,"49":0.35534,"51":0.0045,"53":0.02699,"60":0.34185,"61":0.16643,"63":0.0045,"65":0.009,"66":0.0045,"67":0.06747,"68":0.01349,"69":0.12145,"70":0.01799,"71":0.03149,"72":0.009,"73":0.009,"74":0.01349,"75":0.01799,"76":0.02699,"77":0.01799,"78":0.01799,"79":0.04948,"80":0.03598,"81":0.06297,"83":0.05398,"84":0.04048,"85":0.04048,"86":0.06297,"87":0.2249,"88":0.15743,"89":0.6837,"90":28.90865,"91":0.93109,"92":0.01349,_:"4 5 6 7 8 9 10 11 12 13 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 50 52 54 55 56 57 58 59 62 64 93 94"},F:{"36":0.009,"68":0.0045,"73":0.2339,"74":0.009,"75":1.05253,"76":1.20097,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0191,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.07539,"6.0-6.1":0,"7.0-7.1":0.00503,"8.1-8.4":0.00704,"9.0-9.2":0.00302,"9.3":0.04423,"10.0-10.2":0.00603,"10.3":0.04925,"11.0-11.2":0.03217,"11.3-11.4":0.03418,"12.0-12.1":0.03317,"12.2-12.4":0.13067,"13.0-13.1":0.04423,"13.2":0.0201,"13.3":0.11057,"13.4-13.7":0.35483,"14.0-14.4":7.04431,"14.5-14.6":1.74902},E:{"4":0,"9":0.009,"13":0.03598,"14":0.59823,_:"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.02249,"12.1":0.04048,"13.1":0.11695,"14.1":0.28337},B:{"15":0.0045,"16":0.0045,"17":0.009,"18":0.04048,"84":0.02699,"85":0.009,"86":0.0045,"87":0.0045,"88":0.009,"89":0.04948,"90":2.20402,"91":0.08996,_:"12 13 14 79 80 81 83"},P:{"4":0.15347,"5.0-5.4":0.01023,"6.2-6.4":0.05019,"7.2-7.4":0.02046,"8.2":0.04015,"9.2":0.07162,"10.1":0.04093,"11.1-11.2":0.27624,"12.0":0.17393,"13.0":0.56272,"14.0":3.63209},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.01944,"4.4":0,"4.4.3-4.4.4":0.11514},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00934,"9":0.00934,"11":0.47611,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.23663},Q:{"10.4":0},O:{"0":0.25314},H:{"0":0.45326},L:{"0":40.58818}}; +module.exports={C:{"29":0.00436,"35":0.00872,"44":0.00872,"47":0.00436,"48":0.00872,"52":0.13074,"53":0.00436,"56":0.00436,"63":0.00436,"65":0.00436,"66":0.00872,"68":0.00872,"72":0.00872,"78":0.0828,"79":0.00436,"80":0.00436,"81":0.00872,"82":0.00872,"83":0.00436,"84":0.01743,"85":0.01307,"86":0.01307,"87":0.01307,"88":0.06537,"89":2.20515,"90":1.1723,"91":0.01307,_:"2 3 4 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 36 37 38 39 40 41 42 43 45 46 49 50 51 54 55 57 58 59 60 61 62 64 67 69 70 71 73 74 75 76 77 92 3.5 3.6"},D:{"38":0.01307,"39":0.00436,"49":0.39222,"53":0.00872,"58":0.00436,"60":0.44016,"61":0.31378,"62":0.00436,"63":0.00436,"64":0.00436,"65":0.00436,"66":0.00436,"67":0.08716,"68":0.00436,"69":0.12638,"70":0.01743,"71":0.02179,"72":0.01307,"73":0.01307,"74":0.01743,"75":0.01743,"76":0.03486,"77":0.01743,"78":0.01743,"79":0.07409,"80":0.03486,"81":0.04358,"83":0.03922,"84":0.03486,"85":0.03486,"86":0.06973,"87":0.16996,"88":0.08716,"89":0.14817,"90":0.26584,"91":23.59421,"92":4.76765,"93":0.01307,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 57 59 94 95"},F:{"36":0.00872,"75":0.00436,"76":0.46195,"77":1.79985,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0236,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.09236,"6.0-6.1":0.00103,"7.0-7.1":0.0041,"8.1-8.4":0.00924,"9.0-9.2":0.00205,"9.3":0.05131,"10.0-10.2":0.00718,"10.3":0.05439,"11.0-11.2":0.02771,"11.3-11.4":0.04823,"12.0-12.1":0.03181,"12.2-12.4":0.10262,"13.0-13.1":0.04105,"13.2":0.0195,"13.3":0.10775,"13.4-13.7":0.30786,"14.0-14.4":1.58341,"14.5-14.7":7.44294},E:{"4":0,"12":0.00436,"13":0.03051,"14":0.19611,"15":0.00872,_:"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.01743,"12.1":0.02179,"13.1":0.09588,"14.1":0.63191},B:{"15":0.00436,"16":0.00436,"17":0.01307,"18":0.03922,"84":0.00872,"85":0.00872,"86":0.00872,"87":0.00436,"89":0.02615,"90":0.02615,"91":1.83908,"92":0.50117,_:"12 13 14 79 80 81 83 88"},P:{"4":0.20478,"5.0-5.4":0.02018,"6.2-6.4":0.05406,"7.2-7.4":0.01024,"8.2":0.02018,"9.2":0.08191,"10.1":0.03072,"11.1-11.2":0.2867,"12.0":0.13311,"13.0":0.30718,"14.0":3.92161},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00462,"4.2-4.3":0.02154,"4.4":0,"4.4.3-4.4.4":0.12618},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01845,"9":0.01384,"10":0.00461,"11":0.51657,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":42.47961},S:{"2.5":0},R:{_:"0"},M:{"0":0.25953},Q:{"10.4":0},O:{"0":0.07335},H:{"0":0.42198}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js index 120698964db49b..ff6a6ea7d9acad 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js @@ -1 +1 @@ -module.exports={C:{"48":0.01619,"49":0.00809,"50":0.10522,"51":0.00405,"52":0.23877,"54":0.00405,"56":0.01214,"57":0.00405,"58":0.01214,"59":0.00405,"60":0.02024,"61":0.00809,"65":0.00809,"66":0.01214,"67":0.00809,"68":0.02428,"69":0.00809,"70":0.01214,"71":0.00405,"72":0.02024,"73":0.02024,"74":0.00405,"75":0.00405,"76":0.00809,"78":0.08499,"79":0.00809,"80":0.01214,"81":0.01619,"82":0.02024,"83":0.02024,"84":0.04047,"85":0.02024,"86":0.05666,"87":0.07285,"88":5.14778,"89":0.07689,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 53 55 62 63 64 77 90 91 3.5 3.6"},D:{"22":0.00809,"26":0.00405,"34":0.01214,"38":0.03238,"47":0.00809,"48":0.00405,"49":0.4735,"52":0.00405,"53":0.05666,"55":0.00405,"56":0.00809,"57":0.01214,"58":0.00809,"59":0.00405,"61":0.10927,"62":0.00405,"63":0.01214,"64":0.00405,"65":0.00809,"66":0.00405,"67":0.02024,"68":0.02428,"69":0.01214,"70":0.02428,"71":0.01214,"72":0.00809,"73":0.02024,"74":0.02833,"75":0.02428,"76":0.01214,"77":0.02833,"78":0.02428,"79":0.0688,"80":0.04452,"81":0.03642,"83":0.05261,"84":0.05261,"85":0.05666,"86":0.10118,"87":0.16593,"88":0.18212,"89":0.73251,"90":23.65472,"91":0.73251,"92":0.01214,_:"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 50 51 54 60 93 94"},F:{"36":0.03642,"73":0.09308,"74":0.00809,"75":0.84582,"76":1.4205,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00405},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01187,"6.0-6.1":0.00519,"7.0-7.1":0.02449,"8.1-8.4":0.01929,"9.0-9.2":0.00816,"9.3":0.08014,"10.0-10.2":0.01187,"10.3":0.08682,"11.0-11.2":0.03265,"11.3-11.4":0.07272,"12.0-12.1":0.03265,"12.2-12.4":0.1729,"13.0-13.1":0.02746,"13.2":0.01113,"13.3":0.09647,"13.4-13.7":0.33244,"14.0-14.4":5.07046,"14.5-14.6":0.83852},E:{"4":0,"11":0.00405,"13":0.02024,"14":0.36018,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00809,"11.1":0.01214,"12.1":0.02428,"13.1":0.10522,"14.1":0.19021},B:{"14":0.01214,"15":0.00405,"17":0.01214,"18":0.04452,"84":0.00809,"85":0.00405,"86":0.00809,"88":0.00405,"89":0.02833,"90":1.28695,"91":0.06071,_:"12 13 16 79 80 81 83 87"},P:{"4":0.09265,"5.0-5.4":0.02072,"6.2-6.4":0.0305,"7.2-7.4":0.01029,"8.2":0.01036,"9.2":0.05147,"10.1":0.04118,"11.1-11.2":0.21618,"12.0":0.11324,"13.0":0.43236,"14.0":3.2633},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00265,"4.2-4.3":0.01194,"4.4":0,"4.4.3-4.4.4":0.0628},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02186,"9":0.00437,"10":0.00875,"11":0.34544,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.24407},Q:{"10.4":0},O:{"0":0.05953},H:{"0":0.52414},L:{"0":49.03533}}; +module.exports={C:{"40":0.01228,"43":0.00818,"45":0.00409,"47":0.00409,"48":0.00818,"49":0.00818,"50":0.14322,"52":0.21688,"56":0.01637,"60":0.01637,"61":0.00818,"63":0.00818,"64":0.00409,"65":0.00409,"66":0.01228,"67":0.00409,"68":0.02455,"69":0.00818,"70":0.00818,"72":0.02046,"73":0.01228,"76":0.00818,"77":0.00409,"78":0.07775,"79":0.00818,"80":0.00818,"81":0.01228,"82":0.01228,"83":0.01228,"84":0.03274,"85":0.01228,"86":0.02046,"87":0.01228,"88":0.11458,"89":3.23268,"90":1.56724,"91":0.02046,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 46 51 53 54 55 57 58 59 62 71 74 75 92 3.5 3.6"},D:{"22":0.00409,"29":0.00409,"34":0.00818,"38":0.02455,"43":0.00409,"47":0.01228,"48":0.00409,"49":0.35191,"51":0.00818,"52":0.00818,"53":0.01637,"56":0.00409,"58":0.00409,"61":0.17186,"63":0.00818,"64":0.00409,"65":0.00818,"66":0.00818,"67":0.01637,"68":0.01637,"69":0.01228,"70":0.02455,"71":0.01637,"72":0.00818,"73":0.01637,"74":0.01637,"75":0.02864,"76":0.01228,"77":0.03274,"78":0.11048,"79":0.1023,"80":0.03274,"81":0.02864,"83":0.0491,"84":0.0491,"85":0.05729,"86":0.07366,"87":0.15959,"88":0.08184,"89":0.18005,"90":0.42966,"91":20.54184,"92":4.20658,"93":0.01228,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 30 31 32 33 35 36 37 39 40 41 42 44 45 46 50 54 55 57 59 60 62 94 95"},F:{"28":0.00409,"36":0.02455,"57":0.00818,"75":0.00409,"76":0.24961,"77":2.00508,_:"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 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01021,"6.0-6.1":0.00204,"7.0-7.1":0.02962,"8.1-8.4":0.01532,"9.0-9.2":0.00102,"9.3":0.07149,"10.0-10.2":0.01226,"10.3":0.09293,"11.0-11.2":0.03881,"11.3-11.4":0.07047,"12.0-12.1":0.02553,"12.2-12.4":0.1583,"13.0-13.1":0.02962,"13.2":0.0143,"13.3":0.11234,"13.4-13.7":0.37072,"14.0-14.4":1.64219,"14.5-14.7":6.92108},E:{"4":0,"12":0.00818,"13":0.04092,"14":0.16368,"15":0.00409,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00818,"11.1":0.01228,"12.1":0.01637,"13.1":0.08184,"14.1":0.45421},B:{"14":0.00818,"15":0.00409,"16":0.00409,"17":0.00818,"18":0.03683,"84":0.00818,"89":0.01637,"90":0.01228,"91":1.2276,"92":0.30281,_:"12 13 79 80 81 83 85 86 87 88"},P:{"4":0.0925,"5.0-5.4":0.0102,"6.2-6.4":0.0306,"7.2-7.4":0.42845,"8.2":0.01024,"9.2":0.04111,"10.1":0.02056,"11.1-11.2":0.22612,"12.0":0.08223,"13.0":0.21584,"14.0":3.07321},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00338,"4.2-4.3":0.00641,"4.4":0,"4.4.3-4.4.4":0.03747},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04125,"9":0.01375,"10":0.01375,"11":0.38956,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":47.23423},S:{"2.5":0},R:{_:"0"},M:{"0":0.23041},Q:{"10.4":0},O:{"0":0.04136},H:{"0":0.4195}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js index 1459d02f037d68..817684054cda65 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js @@ -1 +1 @@ -module.exports={C:{"9":0.00733,"45":0.044,"48":0.01467,"50":0.01467,"51":0.01467,"52":0.28603,"53":0.00733,"54":0.022,"56":0.08067,"60":0.022,"61":0.01467,"65":0.01467,"66":0.03667,"67":0.022,"68":0.044,"69":0.03667,"70":0.044,"71":0.044,"72":0.07334,"73":0.02934,"74":0.02934,"75":0.022,"76":0.01467,"77":0.00733,"78":0.11001,"79":0.022,"80":0.02934,"81":0.02934,"82":0.03667,"83":0.044,"84":0.08801,"85":0.02934,"86":0.02934,"87":0.06601,"88":2.23687,"89":0.022,_:"2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 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 55 57 58 59 62 63 64 90 91 3.5 3.6"},D:{"38":0.01467,"47":0.01467,"48":0.01467,"49":0.35937,"51":0.08801,"53":0.01467,"55":0.00733,"56":0.044,"57":0.01467,"58":0.00733,"59":0.03667,"60":0.00733,"61":0.24936,"62":0.01467,"63":0.00733,"64":0.022,"65":0.00733,"66":0.01467,"67":0.01467,"68":0.01467,"69":0.66739,"70":0.05134,"71":0.06601,"72":0.02934,"73":0.03667,"74":1.74549,"75":0.05134,"76":0.05867,"77":0.05134,"78":1.22478,"79":2.50823,"80":1.08543,"81":1.4888,"83":1.43013,"84":1.69415,"85":8.94015,"86":0.46938,"87":0.89475,"88":2.39088,"89":0.92408,"90":21.42995,"91":0.60139,"92":0.03667,_:"4 5 6 7 8 9 10 11 12 13 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 50 52 54 93 94"},F:{"36":0.044,"47":0.00733,"66":0.01467,"67":0.01467,"68":0.01467,"69":0.00733,"70":0.01467,"71":0.01467,"72":0.01467,"73":0.35937,"74":0.05867,"75":1.87017,"76":2.13419,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01467},G:{"8":0.0011,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0.0044,"6.0-6.1":0.00769,"7.0-7.1":0.00659,"8.1-8.4":0.00989,"9.0-9.2":0.00824,"9.3":0.06648,"10.0-10.2":0.01703,"10.3":0.08241,"11.0-11.2":0.03132,"11.3-11.4":0.03516,"12.0-12.1":0.03956,"12.2-12.4":0.13076,"13.0-13.1":0.03406,"13.2":0.01648,"13.3":0.08516,"13.4-13.7":0.29612,"14.0-14.4":3.55841,"14.5-14.6":0.81475},E:{"4":0,"10":0.00733,"12":0.00733,"13":0.11001,"14":0.97542,_:"0 5 6 7 8 9 11 3.1 3.2 6.1 7.1 9.1","5.1":0.27136,"10.1":0.00733,"11.1":0.022,"12.1":0.05134,"13.1":0.23469,"14.1":0.39604},B:{"12":0.01467,"13":0.00733,"14":0.02934,"15":0.01467,"16":0.03667,"17":0.08067,"18":0.40337,"80":0.00733,"81":0.00733,"83":0.00733,"84":0.02934,"85":0.01467,"86":0.022,"87":0.022,"88":0.00733,"89":0.044,"90":1.34946,"91":0.06601,_:"79"},P:{"4":0.03498,"5.0-5.4":0.01166,"6.2-6.4":0.05019,"7.2-7.4":0.04664,"8.2":0.01166,"9.2":0.07162,"10.1":0.04093,"11.1-11.2":0.08162,"12.0":0.04664,"13.0":0.19823,"14.0":0.81624},I:{"0":0,"3":0,"4":0.00048,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0024,"4.2-4.3":0.01247,"4.4":0,"4.4.3-4.4.4":0.05131},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04125,"9":0.02475,"10":0.0165,"11":0.44554,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.12264},Q:{"10.4":0.01066},O:{"0":0.29859},H:{"0":0.54266},L:{"0":17.69741}}; +module.exports={C:{"3":0.00705,"4":0.02114,"5":0.01409,"15":0.01409,"17":0.02819,"21":0.01409,"40":0.00705,"45":0.07047,"48":0.01409,"50":0.02819,"51":0.01409,"52":0.25369,"53":0.02114,"54":0.02819,"55":0.02819,"56":0.05638,"57":0.01409,"58":0.01409,"59":0.01409,"60":0.02114,"61":0.01409,"62":0.00705,"63":0.01409,"65":0.02114,"66":0.02819,"67":0.02114,"68":0.04228,"69":0.03524,"70":0.04933,"71":0.04228,"72":0.07047,"73":0.02819,"74":0.02819,"75":0.02114,"76":0.01409,"77":0.01409,"78":0.09866,"79":0.02819,"80":0.02819,"81":0.02819,"82":0.02114,"83":0.02819,"84":0.06342,"85":0.01409,"86":0.02114,"87":0.02114,"88":0.14094,"89":1.34598,"90":0.69061,"91":0.01409,_:"2 6 7 8 9 10 11 12 13 14 16 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 46 47 49 64 92 3.5","3.6":0.00705},D:{"23":0.01409,"24":0.02819,"25":0.02114,"36":0.01409,"37":0.01409,"38":0.02114,"39":0.01409,"41":0.02114,"42":0.00705,"43":0.02114,"44":0.01409,"45":0.01409,"46":0.01409,"47":0.03524,"48":0.04228,"49":0.40168,"50":0.02114,"51":0.09866,"53":0.01409,"54":0.00705,"55":0.01409,"56":0.07752,"57":0.02114,"58":0.02114,"59":0.03524,"60":0.02819,"61":0.29597,"62":0.01409,"63":0.01409,"64":0.02819,"65":0.01409,"66":0.01409,"67":0.02114,"68":0.01409,"69":0.8245,"70":0.06342,"71":0.03524,"72":0.02819,"73":0.03524,"74":0.97249,"75":0.04228,"76":0.09866,"77":0.05638,"78":0.81041,"79":1.54329,"80":0.64832,"81":0.95135,"83":0.91611,"84":1.12047,"85":11.81782,"86":0.31712,"87":0.97953,"88":0.42987,"89":0.42987,"90":3.13592,"91":16.17991,"92":3.19934,"93":0.03524,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 40 52 94 95"},F:{"28":0.00705,"34":0.02114,"35":0.02114,"36":0.04228,"54":0.01409,"55":0.00705,"60":0.01409,"68":0.02114,"69":0.01409,"70":0.01409,"71":0.01409,"72":0.01409,"73":0.01409,"74":0.01409,"75":0.02114,"76":0.77517,"77":3.5235,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 62 63 64 65 66 67 10.5 10.6 11.1 11.5 11.6","9.5-9.6":0.02114,"10.0-10.1":0,"12.1":0.03524},G:{"8":0.00056,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00056,"5.0-5.1":0.0039,"6.0-6.1":0.01726,"7.0-7.1":0.00724,"8.1-8.4":0.01058,"9.0-9.2":0.00668,"9.3":0.06794,"10.0-10.2":0.01894,"10.3":0.06961,"11.0-11.2":0.0245,"11.3-11.4":0.03731,"12.0-12.1":0.03063,"12.2-12.4":0.1047,"13.0-13.1":0.03063,"13.2":0.01671,"13.3":0.0763,"13.4-13.7":0.27066,"14.0-14.4":1.09601,"14.5-14.7":3.43059},E:{"4":0,"10":0.01409,"11":0.01409,"12":0.02114,"13":0.11275,"14":0.42282,"15":0.01409,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 9.1","5.1":0.2255,"10.1":0.00705,"11.1":0.02114,"12.1":0.04933,"13.1":0.21141,"14.1":0.96544},B:{"12":0.02114,"13":0.01409,"14":0.02819,"15":0.02114,"16":0.04228,"17":0.08456,"18":0.26074,"80":0.01409,"81":0.01409,"83":0.01409,"84":0.03524,"85":0.02819,"86":0.02114,"87":0.01409,"88":0.00705,"89":0.02819,"90":0.02114,"91":1.12047,"92":0.27483,_:"79"},P:{"4":0.06376,"5.0-5.4":0.02125,"6.2-6.4":0.05406,"7.2-7.4":0.23378,"8.2":0.02125,"9.2":0.06376,"10.1":0.03188,"11.1-11.2":0.27629,"12.0":0.09564,"13.0":0.24441,"14.0":1.91278},I:{"0":0,"3":0,"4":0.00093,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00233,"4.2-4.3":0.00933,"4.4":0,"4.4.3-4.4.4":0.06714},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06285,"9":0.02357,"10":0.03142,"11":0.36136,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":19.11398},S:{"2.5":0},R:{_:"0"},M:{"0":0.11812},Q:{"10.4":0.01181},O:{"0":0.26872},H:{"0":0.59269}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js index f601b3c68d56f1..59ae434df3ce94 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js @@ -1 +1 @@ -module.exports={C:{"20":0.00429,"21":0.00858,"31":0.01716,"34":0.00858,"37":0.00858,"40":0.01287,"43":0.00858,"44":0.03002,"47":0.01287,"48":0.00429,"49":0.00429,"50":0.01287,"52":0.03002,"56":0.00429,"60":0.00429,"68":0.00429,"72":0.01716,"77":0.00858,"78":0.06005,"79":0.01287,"81":0.00858,"82":0.00429,"83":0.00858,"84":0.01716,"85":0.02145,"86":0.02145,"87":0.04718,"88":2.96799,"89":0.25305,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24 25 26 27 28 29 30 32 33 35 36 38 39 41 42 45 46 51 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 80 90 91 3.5 3.6"},D:{"25":0.00429,"38":0.00858,"41":0.01287,"43":0.00429,"46":0.00429,"49":0.03002,"58":0.00429,"60":0.00858,"61":0.00858,"63":0.03002,"65":0.00858,"66":0.01716,"67":0.00429,"68":0.02145,"69":0.05576,"70":0.02573,"71":0.03431,"73":0.01287,"74":0.02573,"75":0.00858,"76":0.00858,"77":0.03002,"78":0.03002,"79":0.05576,"80":0.12009,"81":0.05576,"83":0.02573,"84":0.04289,"85":0.05147,"86":0.1158,"87":0.20587,"88":0.25734,"89":0.66051,"90":23.91975,"91":1.0937,"92":0.08149,_:"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 39 40 42 44 45 47 48 50 51 52 53 54 55 56 57 59 62 64 72 93 94"},F:{"73":0.01716,"74":0.01287,"75":0.45463,"76":0.92642,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00252,"7.0-7.1":0.01261,"8.1-8.4":0.00168,"9.0-9.2":0.0042,"9.3":0.05715,"10.0-10.2":0.01345,"10.3":0.05715,"11.0-11.2":0.03866,"11.3-11.4":0.07648,"12.0-12.1":0.03782,"12.2-12.4":0.33113,"13.0-13.1":0.05379,"13.2":0.0311,"13.3":0.2286,"13.4-13.7":0.68411,"14.0-14.4":4.58789,"14.5-14.6":1.2161},E:{"4":0,"11":0.00858,"12":0.00429,"13":0.01716,"14":0.43319,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.07291,"10.1":0.00858,"11.1":0.04289,"12.1":0.06005,"13.1":0.12438,"14.1":0.17156},B:{"12":0.08578,"13":0.3131,"14":0.08578,"15":0.02573,"16":0.05576,"17":0.04718,"18":0.14154,"80":0.03002,"84":0.01287,"85":0.01716,"86":0.00858,"87":0.02573,"88":0.01716,"89":0.08149,"90":2.91223,"91":0.12438,_:"79 81 83"},P:{"4":0.24927,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.10386,"8.2":0.01166,"9.2":0.09347,"10.1":0.18695,"11.1-11.2":0.16618,"12.0":0.14541,"13.0":0.40506,"14.0":1.15286},I:{"0":0,"3":0,"4":0.00085,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00106,"4.2-4.3":0.00405,"4.4":0,"4.4.3-4.4.4":0.05685},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03511,"9":0.01003,"10":0.01003,"11":0.53671,_:"6 7 5.5"},J:{"7":0,"10":0.01142},N:{_:"10 11"},S:{"2.5":0.13133},R:{_:"0"},M:{"0":0.18272},Q:{"10.4":0.06852},O:{"0":0.46251},H:{"0":9.92516},L:{"0":40.5126}}; +module.exports={C:{"21":0.00425,"31":0.03821,"37":0.00849,"40":0.00425,"47":0.00849,"48":0.01274,"50":0.01698,"52":0.01274,"57":0.00425,"72":0.00849,"77":0.00425,"78":0.08067,"84":0.02123,"85":0.00425,"86":0.01274,"87":0.03397,"88":0.0552,"89":1.91919,"90":0.94686,"91":0.07218,_:"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 34 35 36 38 39 41 42 43 44 45 46 49 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 80 81 82 83 92 3.5 3.6"},D:{"34":0.01274,"37":0.00425,"38":0.00425,"41":0.00425,"43":0.00425,"49":0.02548,"53":0.03397,"58":0.00849,"60":0.00425,"63":0.02972,"64":0.01698,"65":0.03821,"66":0.00425,"67":0.01274,"68":0.01274,"69":0.02123,"70":0.00849,"71":0.02972,"73":0.00849,"74":0.03397,"75":0.00849,"76":0.00425,"77":0.02548,"78":0.02123,"79":0.08067,"80":0.02972,"81":0.04671,"83":0.03397,"84":0.01698,"85":0.03397,"86":0.06794,"87":0.11464,"88":0.09341,"89":0.22928,"90":0.48404,"91":20.21945,"92":5.34571,"93":0.05095,_:"4 5 6 7 8 9 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 39 40 42 44 45 46 47 48 50 51 52 54 55 56 57 59 61 62 72 94 95"},F:{"42":0.00849,"75":0.00425,"76":0.02548,"77":1.08273,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00087,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00174,"6.0-6.1":0.00174,"7.0-7.1":0.0113,"8.1-8.4":0,"9.0-9.2":0.00521,"9.3":0.10515,"10.0-10.2":0.00608,"10.3":0.073,"11.0-11.2":0.03737,"11.3-11.4":0.03215,"12.0-12.1":0.05388,"12.2-12.4":0.23551,"13.0-13.1":0.04606,"13.2":0.02694,"13.3":0.16512,"13.4-13.7":0.45886,"14.0-14.4":2.01098,"14.5-14.7":4.54772},E:{"4":0,"11":0.01274,"12":0.00425,"13":0.01698,"14":0.27599,"15":0.01274,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01698,"11.1":0.02123,"12.1":0.03821,"13.1":0.09341,"14.1":0.44158},B:{"12":0.05095,"13":0.04671,"14":0.01698,"15":0.01274,"16":0.03821,"17":0.03397,"18":0.11889,"84":0.02972,"85":0.02123,"87":0.00425,"88":0.01698,"89":0.04246,"90":0.03821,"91":2.62403,"92":0.47131,_:"79 80 81 83 86"},P:{"4":0.26416,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.1524,"8.2":0.02032,"9.2":0.09144,"10.1":0.08128,"11.1-11.2":0.18288,"12.0":0.06096,"13.0":0.21336,"14.0":1.78817},I:{"0":0,"3":0,"4":0.00032,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00145,"4.2-4.3":0.00354,"4.4":0,"4.4.3-4.4.4":0.03496},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34393,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01726},N:{"10":0.03533,"11":0.01864},L:{"0":42.34814},S:{"2.5":0.06329},R:{_:"0"},M:{"0":0.18988},Q:{"10.4":0.05754},O:{"0":0.42004},H:{"0":8.67244}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js index 69dd5436bcb583..d270a79b161a3e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js @@ -1 +1 @@ -module.exports={C:{"52":0.00543,"65":0.00272,"72":0.00272,"78":0.02445,"81":0.00543,"84":0.01359,"85":0.00815,"86":0.0163,"87":0.02717,"88":0.91563,"89":0.02989,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 73 74 75 76 77 79 80 82 83 90 91 3.5 3.6"},D:{"34":0.01902,"38":0.00543,"43":0.00543,"49":0.10325,"50":0.00543,"53":0.01902,"56":0.00815,"60":0.00543,"61":0.00272,"63":0.00815,"64":0.00272,"65":0.00543,"66":0.00272,"67":0.01087,"68":0.01087,"69":0.01902,"70":0.00543,"71":0.0163,"72":0.00543,"73":0.00543,"74":0.01359,"75":0.0163,"76":0.01087,"77":0.01087,"78":0.00543,"79":0.02989,"80":0.02445,"81":0.01902,"83":0.11683,"84":0.04076,"85":0.04619,"86":0.06249,"87":0.47548,"88":0.144,"89":0.53525,"90":15.87271,"91":0.71185,"92":0.01359,_:"4 5 6 7 8 9 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 47 48 51 52 54 55 57 58 59 62 93 94"},F:{"71":0.01902,"72":0.0163,"73":0.05977,"74":0.01359,"75":0.07608,"76":0.03532,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00307,"6.0-6.1":0.00614,"7.0-7.1":0.02455,"8.1-8.4":0.01228,"9.0-9.2":0,"9.3":0.11356,"10.0-10.2":0.01535,"10.3":0.06752,"11.0-11.2":0.05218,"11.3-11.4":0.08287,"12.0-12.1":0.14425,"12.2-12.4":0.42354,"13.0-13.1":0.20563,"13.2":0.13811,"13.3":0.59848,"13.4-13.7":1.69724,"14.0-14.4":20.89472,"14.5-14.6":5.34031},E:{"4":0,"7":0.00815,"12":0.00543,"13":0.05977,"14":1.7905,_:"0 5 6 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.05434,"10.1":0.00815,"11.1":0.0163,"12.1":0.03532,"13.1":0.24181,"14.1":0.47819},B:{"12":0.00815,"13":0.00272,"14":0.00815,"15":0.01087,"16":0.00543,"17":0.01087,"18":0.07064,"84":0.00815,"85":0.00815,"86":0.00543,"87":0.00543,"88":0.00815,"89":0.07336,"90":1.75247,"91":0.15487,_:"79 80 81 83"},P:{"4":0.08287,"5.0-5.4":0.02072,"6.2-6.4":0.03149,"7.2-7.4":0.08287,"8.2":0.01036,"9.2":0.0518,"10.1":0.02072,"11.1-11.2":0.26934,"12.0":0.09323,"13.0":0.41437,"14.0":2.16508},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.00323,"4.4":0,"4.4.3-4.4.4":0.04581},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0058,"11":0.72507,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.10923},Q:{"10.4":0},O:{"0":2.11178},H:{"0":0.13099},L:{"0":38.70646}}; +module.exports={C:{"48":0.00256,"52":0.00767,"78":0.01789,"81":0.00256,"82":0.00511,"83":0.00256,"84":0.00511,"85":0.00511,"86":0.00256,"87":0.00256,"88":0.02556,"89":0.5521,"90":0.2786,"91":0.01278,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 92 3.5 3.6"},D:{"34":0.01534,"38":0.00767,"43":0.00511,"47":0.00256,"49":0.04601,"50":0.00511,"53":0.00256,"56":0.01022,"60":0.00511,"63":0.00767,"64":0.00256,"65":0.00767,"66":0.00256,"67":0.00767,"68":0.00511,"69":0.02045,"70":0.00256,"71":0.01022,"72":0.01022,"73":0.00256,"74":0.01789,"75":0.01278,"76":0.00767,"77":0.01534,"78":0.00767,"79":0.04601,"80":0.01789,"81":0.01534,"83":0.0639,"84":0.02812,"85":0.03834,"86":0.05623,"87":0.18148,"88":0.08179,"89":0.0869,"90":0.19426,"91":13.30909,"92":2.90362,"93":0.01278,_:"4 5 6 7 8 9 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 51 52 54 55 57 58 59 61 62 94 95"},F:{"28":0.00256,"46":0.00256,"65":0.00256,"68":0.00256,"70":0.01022,"71":0.00256,"72":0.01022,"73":0.03834,"74":0.00767,"75":0.023,"76":0.04601,"77":0.0869,_:"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 66 67 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00623,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00312,"6.0-6.1":0.00623,"7.0-7.1":0.0187,"8.1-8.4":0.00623,"9.0-9.2":0,"9.3":0.12153,"10.0-10.2":0.0187,"10.3":0.08102,"11.0-11.2":0.04051,"11.3-11.4":0.06856,"12.0-12.1":0.134,"12.2-12.4":0.34589,"13.0-13.1":0.18074,"13.2":0.12153,"13.3":0.5017,"13.4-13.7":1.47395,"14.0-14.4":8.52583,"14.5-14.7":18.61285},E:{"4":0,"7":0.00511,"12":0.00511,"13":0.03578,"14":0.67223,"15":0.01278,_:"0 5 6 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00511,"10.1":0.00511,"11.1":0.01789,"12.1":0.02812,"13.1":0.1687,"14.1":1.24733},B:{"12":0.00767,"14":0.01022,"15":0.00767,"16":0.00511,"17":0.00511,"18":0.04856,"84":0.00511,"85":0.00511,"86":0.00256,"87":0.00511,"88":0.01534,"89":0.03067,"90":0.01789,"91":1.50548,"92":0.43708,_:"13 79 80 81 83"},P:{"4":0.05122,"5.0-5.4":0.01024,"6.2-6.4":0.02038,"7.2-7.4":0.10245,"8.2":0.01024,"9.2":0.04098,"10.1":0.02049,"11.1-11.2":0.24587,"12.0":0.07171,"13.0":0.26636,"14.0":2.28457},I:{"0":0,"3":0,"4":0.00122,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00122,"4.2-4.3":0.00367,"4.4":0,"4.4.3-4.4.4":0.03855},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00272,"11":0.74618,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":40.06033},S:{"2.5":0},R:{_:"0"},M:{"0":0.11166},Q:{"10.4":0},O:{"0":2.24809},H:{"0":0.148}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js index 16739e088bf8a6..1c0268b4a3f37d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js @@ -1 +1 @@ -module.exports={C:{"29":0.01958,"33":0.03916,"38":0.00783,"45":0.01958,"47":0.00783,"49":0.00392,"57":0.00392,"67":0.01175,"74":0.01566,"76":0.01175,"80":0.00783,"81":0.00783,"82":0.00783,"85":0.01175,"86":0.00783,"87":0.3916,"88":1.72304,"89":0.15664,_:"2 3 4 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 34 35 36 37 39 40 41 42 43 44 46 48 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 75 77 78 79 83 84 90 91 3.5 3.6"},D:{"11":0.01566,"30":0.01175,"49":0.00783,"53":0.63831,"63":0.02741,"65":0.01958,"69":0.0744,"73":0.01958,"74":0.01175,"75":0.20755,"76":0.01175,"77":0.0235,"78":0.02741,"79":0.03133,"80":0.02741,"81":0.0235,"83":0.03524,"84":0.01566,"85":0.01175,"86":0.00783,"87":0.05482,"88":0.0744,"89":0.30153,"90":12.42547,"91":0.52866,"92":0.01958,_:"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 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 66 67 68 70 71 72 93 94"},F:{"19":0.00392,"38":0.01175,"53":0.00392,"57":0.01175,"75":0.10965,"76":0.38377,_:"9 11 12 15 16 17 18 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 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01139,"8.1-8.4":0.00804,"9.0-9.2":0.33759,"9.3":0.01407,"10.0-10.2":0.00335,"10.3":0.01407,"11.0-11.2":0.02612,"11.3-11.4":0.01239,"12.0-12.1":0.03785,"12.2-12.4":0.06899,"13.0-13.1":0.19659,"13.2":0.03349,"13.3":0.07134,"13.4-13.7":1.31051,"14.0-14.4":0.63968,"14.5-14.6":0.18353},E:{"4":0,"10":0.02741,"12":0.00783,"13":0.00783,"14":0.14489,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.10965,"11.1":0.00392,"12.1":0.03133,"13.1":0.03133,"14.1":0.05091},B:{"12":0.14489,"13":0.05482,"14":0.13314,"15":0.26237,"16":0.28195,"17":0.14489,"18":0.68922,"80":0.01958,"83":0.0235,"84":0.01958,"85":0.02741,"86":0.03916,"87":0.03524,"88":0.07832,"89":0.34461,"90":5.36884,"91":0.22713,_:"79 81"},P:{"4":1.01816,"5.0-5.4":0.04073,"6.2-6.4":0.04073,"7.2-7.4":0.28509,"8.2":0.0406,"9.2":0.26472,"10.1":0.02036,"11.1-11.2":0.6109,"12.0":0.09163,"13.0":0.51926,"14.0":2.06687},I:{"0":0,"3":0,"4":0.00059,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00088,"4.2-4.3":0.00936,"4.4":0,"4.4.3-4.4.4":0.10477},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03133,"11":1.18655,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.0365},Q:{"10.4":0.00608},O:{"0":3.64432},H:{"0":1.95262},L:{"0":57.69314}}; +module.exports={C:{"29":0.00768,"33":0.05379,"42":0.04226,"47":0.01537,"56":0.00384,"57":0.03458,"74":0.00768,"78":0.01153,"79":0.00384,"81":0.01537,"82":0.01921,"83":0.00768,"85":0.01921,"87":0.00768,"88":0.05379,"89":0.69156,"90":0.27278,"91":0.01537,_:"2 3 4 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 34 35 36 37 38 39 40 41 43 44 45 46 48 49 50 51 52 53 54 55 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 80 84 86 92 3.5 3.6"},D:{"36":0.00768,"49":0.02689,"51":0.01921,"53":0.10373,"55":0.01153,"63":0.10373,"67":0.01153,"69":0.03842,"70":0.00768,"73":0.00768,"74":0.00768,"75":0.04226,"78":0.00384,"79":0.01153,"80":0.01153,"81":0.05763,"83":0.01537,"84":0.09605,"85":0.01537,"87":0.02689,"88":0.01153,"89":0.06147,"90":0.15368,"91":10.27351,"92":2.48962,_:"4 5 6 7 8 9 10 11 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 50 52 54 56 57 58 59 60 61 62 64 65 66 68 71 72 76 77 86 93 94 95"},F:{"27":0.00384,"48":0.00384,"64":0.01537,"76":0.00384,"77":0.38036,_:"9 11 12 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 47 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00424,"9.0-9.2":0.21061,"9.3":0,"10.0-10.2":0.00238,"10.3":0.00556,"11.0-11.2":0.02278,"11.3-11.4":0.03073,"12.0-12.1":0.01298,"12.2-12.4":0.43234,"13.0-13.1":0.02411,"13.2":0.0196,"13.3":0.02331,"13.4-13.7":0.90734,"14.0-14.4":0.475,"14.5-14.7":0.30412},E:{"4":0,"6":0.00384,"8":0.00768,"11":0.00384,"14":0.03458,_:"0 5 7 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1","9.1":0.01537,"10.1":0.00384,"11.1":0.00384,"12.1":0.01921,"13.1":0.01537,"14.1":5.14828},B:{"12":0.00768,"13":0.05763,"14":0.18442,"15":0.25357,"16":0.15752,"17":0.34578,"18":3.02365,"80":0.05379,"81":0.02689,"83":0.00384,"84":0.0461,"85":0.03842,"86":0.00768,"87":0.00384,"88":0.04226,"89":0.11526,"90":0.22284,"91":2.3052,"92":0.3842,_:"79"},P:{"4":0.51247,"5.0-5.4":0.03075,"6.2-6.4":0.05125,"7.2-7.4":0.15374,"8.2":0.01025,"9.2":0.16399,"10.1":0.041,"11.1-11.2":0.62521,"12.0":0.01025,"13.0":0.46122,"14.0":1.36317},I:{"0":0,"3":0,"4":0.00045,"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.08216},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.15635,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":58.39296},S:{"2.5":0.00616},R:{_:"0"},M:{"0":0.04926},Q:{"10.4":0.01231},O:{"0":4.48845},H:{"0":1.24159}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js index d10a09c6a3a211..317dc2e0e58bdd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js @@ -1 +1 @@ -module.exports={C:{"4":0.00703,"36":0.00703,"39":0.01054,"40":0.00703,"45":0.01406,"49":0.01757,"50":0.00351,"52":0.01757,"56":0.01054,"57":0.00351,"59":0.10191,"60":0.08434,"61":0.0492,"62":0.08434,"63":0.03163,"68":0.01757,"69":0.00703,"72":0.00703,"76":0.08434,"77":0.00703,"78":1.01906,"79":0.01054,"80":0.00703,"81":0.00703,"82":0.08082,"83":0.03163,"84":0.05622,"85":0.05974,"86":0.11245,"87":0.11948,"88":2.54765,"89":0.13353,"90":0.02811,_:"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 41 42 43 44 46 47 48 51 53 54 55 58 64 65 66 67 70 71 73 74 75 91 3.5 3.6"},D:{"35":0.01406,"43":0.03514,"46":0.00703,"49":0.43574,"51":0.01406,"56":0.01406,"59":0.00351,"60":0.00703,"62":0.00703,"63":0.03163,"64":0.00703,"65":0.04568,"66":0.03163,"67":0.10191,"68":0.07731,"69":0.05974,"70":0.07379,"71":0.10893,"72":4.67713,"73":0.00351,"74":0.03514,"75":0.03865,"76":0.05271,"77":0.02108,"78":0.01406,"79":0.05622,"80":0.04568,"81":0.08785,"83":0.03865,"84":0.06325,"85":0.09488,"86":0.41114,"87":0.43574,"88":0.29869,"89":1.12097,"90":12.42199,"91":0.60792,"92":0.00703,_:"4 5 6 7 8 9 10 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 47 48 50 52 53 54 55 57 58 61 93 94"},F:{"43":0.00351,"52":0.01406,"53":0.05622,"68":0.00351,"71":0.01054,"72":0.0492,"73":0.07028,"74":0.03514,"75":0.23544,"76":0.19678,_:"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 54 55 56 57 58 60 62 63 64 65 66 67 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01656,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00114,"5.0-5.1":0.00286,"6.0-6.1":0.00628,"7.0-7.1":0.00343,"8.1-8.4":0.00571,"9.0-9.2":0.00457,"9.3":0.02284,"10.0-10.2":0.00628,"10.3":0.04797,"11.0-11.2":0.03541,"11.3-11.4":0.02513,"12.0-12.1":0.01142,"12.2-12.4":0.09537,"13.0-13.1":0.0257,"13.2":0.11079,"13.3":0.08452,"13.4-13.7":0.20445,"14.0-14.4":3.90851,"14.5-14.6":0.97199},E:{"4":0,"8":0.0246,"11":0.00351,"12":0.01054,"13":0.0492,"14":1.17368,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01054,"11.1":0.02811,"12.1":0.14407,"13.1":0.17219,"14.1":0.69929},B:{"12":0.03163,"13":0.03163,"14":0.02811,"15":0.01406,"16":0.03163,"17":0.02811,"18":0.11596,"80":0.00703,"84":0.03865,"85":0.03163,"86":0.01054,"87":0.02108,"88":0.0246,"89":0.09488,"90":2.18219,"91":0.10542,_:"79 81 83"},P:{"4":0.29432,"5.0-5.4":0.01015,"6.2-6.4":0.0305,"7.2-7.4":0.65968,"8.2":0.0406,"9.2":0.16238,"10.1":0.16238,"11.1-11.2":0.38566,"12.0":1.20772,"13.0":1.05549,"14.0":2.52708},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.00834,"4.4":0,"4.4.3-4.4.4":0.05467},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01496,"11":0.33292,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.01946},N:{"10":0.01297,_:"11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.59023},Q:{"10.4":0},O:{"0":5.35744},H:{"0":2.12462},L:{"0":46.09827}}; +module.exports={C:{"29":0.00857,"38":0.01285,"40":0.00857,"45":0.01285,"47":0.04712,"48":0.00428,"49":0.00857,"50":0.01285,"51":0.00428,"52":0.15851,"54":0.00857,"55":0.00857,"56":0.00857,"57":0.00857,"59":0.52693,"60":0.81396,"61":0.40698,"62":0.36414,"63":0.45839,"65":0.00428,"68":0.06854,"72":0.02142,"76":0.00857,"78":4.07837,"79":0.00428,"80":0.00857,"81":0.00857,"82":0.01285,"83":0.01285,"84":0.00857,"85":0.05569,"86":0.08996,"87":0.05998,"88":0.14994,"89":1.38802,"90":0.79682,"91":0.01714,_:"2 3 4 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 39 41 42 43 44 46 53 58 64 66 67 69 70 71 73 74 75 77 92 3.5 3.6"},D:{"17":0.02142,"20":0.00857,"24":0.00428,"29":0.00428,"32":0.03427,"43":0.01714,"49":0.02999,"54":0.00857,"56":0.02142,"57":0.01285,"58":0.01714,"59":0.08568,"60":0.00857,"61":0.00857,"62":0.01285,"63":0.0257,"64":0.02142,"65":0.00857,"66":0.06426,"67":0.0257,"68":0.43268,"69":0.36414,"70":0.32987,"71":0.69401,"72":0.96818,"73":0.1071,"74":0.01285,"75":0.00857,"76":0.02142,"78":0.00857,"79":0.22277,"80":0.05569,"81":0.06426,"83":0.4027,"84":0.01714,"85":0.22277,"86":0.52693,"87":0.48409,"88":1.28948,"89":0.74113,"90":0.19706,"91":11.24122,"92":2.89598,"93":0.01285,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 21 22 23 25 26 27 28 30 31 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 55 77 94 95"},F:{"28":0.00857,"29":0.00428,"51":0.00857,"52":0.0257,"53":0.22705,"55":0.00857,"76":0.04712,"77":1.08385,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 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.00428},G:{"8":0.00257,"3.2":0.00171,"4.0-4.1":0.00086,"4.2-4.3":0,"5.0-5.1":0.00257,"6.0-6.1":0,"7.0-7.1":0.02568,"8.1-8.4":0.00428,"9.0-9.2":0.00599,"9.3":0.07363,"10.0-10.2":0.00428,"10.3":0.17208,"11.0-11.2":0.03852,"11.3-11.4":0.01627,"12.0-12.1":0.03681,"12.2-12.4":0.10616,"13.0-13.1":0.01541,"13.2":0.0077,"13.3":0.09674,"13.4-13.7":0.20461,"14.0-14.4":1.66684,"14.5-14.7":5.8455},E:{"4":0,"8":0.01285,"12":0.0257,"13":0.03427,"14":0.60404,"15":0.08568,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00428,"11.1":0.01714,"12.1":0.2142,"13.1":0.18421,"14.1":1.45228},B:{"12":0.0257,"13":0.02142,"14":0.02142,"15":0.01285,"16":0.02142,"17":0.02142,"18":0.14137,"79":0.00428,"80":0.00428,"81":0.01285,"83":0.00857,"84":0.01714,"85":0.01285,"86":0.04284,"87":0.00428,"88":0.01285,"89":0.03427,"90":0.00857,"91":2.02205,"92":0.4541},P:{"4":0.17337,"5.0-5.4":0.0204,"6.2-6.4":0.0306,"7.2-7.4":0.79545,"8.2":0.01024,"9.2":0.13257,"10.1":0.04079,"11.1-11.2":0.36713,"12.0":1.44813,"13.0":0.56089,"14.0":2.88605},I:{"0":0,"3":0,"4":0.00251,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00565,"4.4":0,"4.4.3-4.4.4":0.04329},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01115,"9":0.03344,"10":0.00557,"11":0.93087,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":37.54687},S:{"2.5":0},R:{_:"0"},M:{"0":1.21751},Q:{"10.4":0.01715},O:{"0":4.4299},H:{"0":1.10937}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js index cb5018a63f04e9..7706d38fa2df5f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js @@ -1 +1 @@ -module.exports={C:{"19":0.00154,"29":0.00154,"30":0.00463,"33":0.00463,"34":0.01544,"35":0.00309,"37":0.00309,"38":0.01081,"40":0.00154,"41":0.00309,"42":0.00154,"43":0.00463,"44":0.00309,"45":0.00309,"46":0.00154,"47":0.01235,"48":0.00618,"49":0.00463,"50":0.00309,"52":0.0386,"56":0.01235,"60":0.00463,"61":0.00309,"62":0.00154,"64":0.01081,"66":0.00309,"67":0.00154,"68":0.00463,"69":0.00154,"71":0.00309,"72":0.0386,"73":0.00463,"74":0.00154,"75":0.00309,"76":0.00618,"77":0.00309,"78":0.03551,"79":0.0247,"80":0.00463,"81":0.00463,"82":0.00618,"83":0.00772,"84":0.01698,"85":0.01853,"86":0.01698,"87":0.06485,"88":1.64127,"89":0.0525,_:"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 31 32 36 39 51 53 54 55 57 58 59 63 65 70 90 91 3.5 3.6"},D:{"11":0.00154,"22":0.00309,"26":0.00309,"28":0.00309,"29":0.00309,"32":0.01081,"33":0.02162,"37":0.00926,"40":0.00618,"43":0.03706,"44":0.00154,"45":0.00618,"47":0.00309,"48":0.07102,"50":0.00463,"52":0.00309,"53":0.00463,"55":0.00618,"56":0.00309,"57":0.00463,"58":0.00309,"61":0.38754,"63":0.01544,"64":0.00309,"65":0.01235,"67":0.00309,"68":0.0139,"69":0.0386,"70":0.01698,"71":0.00463,"72":0.00309,"73":0.01235,"74":0.0139,"75":0.00772,"76":0.00926,"77":0.00309,"78":0.00772,"79":0.03242,"80":0.01853,"81":0.06794,"83":0.03397,"84":0.00463,"85":0.04014,"86":0.0525,"87":0.16366,"88":0.1297,"89":0.30726,"90":5.14306,"91":0.21616,"93":0.00309,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 30 31 34 35 36 38 39 41 42 46 49 51 54 59 60 62 66 92 94"},F:{"18":0.00772,"53":0.00154,"58":0.00309,"60":0.00154,"64":0.00154,"70":0.00309,"71":0.00309,"73":0.00772,"74":0.00926,"75":0.25939,"76":0.4107,_:"9 11 12 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 62 63 65 66 67 68 69 72 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.00309},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00467,"5.0-5.1":0,"6.0-6.1":0.00187,"7.0-7.1":0.00982,"8.1-8.4":0,"9.0-9.2":0.00234,"9.3":0.05048,"10.0-10.2":0.00701,"10.3":0.05048,"11.0-11.2":0.1005,"11.3-11.4":0.06965,"12.0-12.1":0.15004,"12.2-12.4":0.33841,"13.0-13.1":0.09115,"13.2":0.01916,"13.3":0.14443,"13.4-13.7":0.31457,"14.0-14.4":2.52361,"14.5-14.6":0.40899},E:{"4":0,"10":0.00309,"11":0.00463,"12":0.00154,"13":0.03088,"14":0.17138,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 10.1","5.1":1.5826,"9.1":0.04632,"11.1":0.00154,"12.1":0.01235,"13.1":0.06176,"14.1":0.04169},B:{"12":0.01235,"13":0.00772,"14":0.01235,"15":0.00926,"16":0.01853,"17":0.03242,"18":0.05713,"80":0.00309,"83":0.00154,"84":0.01544,"85":0.00772,"86":0.00309,"87":0.01544,"88":0.00926,"89":0.04323,"90":0.74266,"91":0.05867,_:"79 81"},P:{"4":1.51727,"5.0-5.4":0.08039,"6.2-6.4":0.12058,"7.2-7.4":0.45217,"8.2":0.0201,"9.2":0.19091,"10.1":0.08039,"11.1-11.2":0.51245,"12.0":0.2713,"13.0":0.73351,"14.0":0.82395},I:{"0":0,"3":0,"4":0.00082,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00367,"4.2-4.3":0.02367,"4.4":0,"4.4.3-4.4.4":0.18324},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00321,"9":0.00643,"11":0.45973,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.02537},R:{_:"0"},M:{"0":0.18603},Q:{"10.4":0.03382},O:{"0":2.08863},H:{"0":7.5813},L:{"0":66.53834}}; +module.exports={C:{"3":0.0013,"16":0.0013,"23":0.0026,"30":0.0013,"33":0.0013,"34":0.01168,"35":0.00519,"36":0.00389,"38":0.00389,"40":0.0013,"41":0.00519,"43":0.00779,"44":0.00389,"45":0.0026,"47":0.01428,"48":0.00519,"49":0.00649,"50":0.0013,"51":0.0013,"52":0.03505,"54":0.0013,"56":0.0026,"57":0.00389,"61":0.0013,"65":0.0026,"66":0.00519,"68":0.00649,"69":0.0013,"70":0.00519,"71":0.0026,"72":0.01687,"75":0.0026,"76":0.0026,"77":0.01558,"78":0.02726,"79":0.00389,"80":0.0026,"81":0.00389,"82":0.00909,"83":0.00389,"84":0.00519,"85":0.00909,"86":0.00779,"87":0.00649,"88":0.04932,"89":1.09032,"90":0.60227,"91":0.01817,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 24 25 26 27 28 29 31 32 37 39 42 46 53 55 58 59 60 62 63 64 67 73 74 92 3.5 3.6"},D:{"26":0.0026,"27":0.0013,"28":0.00389,"29":0.00389,"31":0.0026,"33":0.00909,"36":0.0026,"37":0.0026,"40":0.00389,"41":0.0013,"42":0.0013,"43":0.02985,"47":0.0026,"48":0.02077,"49":0.00909,"50":0.0026,"52":0.0026,"53":0.00389,"55":0.00389,"56":0.0013,"57":0.00389,"58":0.00519,"60":0.00389,"61":0.34916,"63":0.01558,"64":0.01038,"65":0.01298,"66":0.00389,"67":0.00519,"68":0.0013,"69":0.09086,"70":0.01168,"71":0.00649,"72":0.00519,"73":0.0026,"74":0.00779,"75":0.0026,"76":0.00519,"77":0.00389,"78":0.00909,"79":0.07139,"80":0.02596,"81":0.03505,"83":0.02077,"84":0.01038,"85":0.02207,"86":0.04024,"87":0.05841,"88":0.03505,"89":0.09475,"90":0.14278,"91":3.73175,"92":0.92677,"93":0.00779,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 30 32 34 35 38 39 44 45 46 51 54 59 62 94 95"},F:{"18":0.00519,"35":0.0026,"51":0.0013,"60":0.13369,"62":0.0026,"63":0.0013,"64":0.00519,"71":0.00779,"73":0.0013,"74":0.00389,"75":0.01558,"76":0.02985,"77":0.49843,_:"9 11 12 15 16 17 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 52 53 54 55 56 57 58 65 66 67 68 69 70 72 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.00519},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0023,"5.0-5.1":0.00322,"6.0-6.1":0.00138,"7.0-7.1":0.0092,"8.1-8.4":0.00092,"9.0-9.2":0.00138,"9.3":0.05012,"10.0-10.2":0.0069,"10.3":0.04506,"11.0-11.2":0.09565,"11.3-11.4":0.05656,"12.0-12.1":0.06392,"12.2-12.4":0.21981,"13.0-13.1":0.06024,"13.2":0.03081,"13.3":0.126,"13.4-13.7":0.27591,"14.0-14.4":1.73224,"14.5-14.7":1.44805},E:{"4":0,"7":0.0013,"11":0.0026,"12":0.00389,"13":0.01298,"14":0.08567,_:"0 5 6 8 9 10 15 3.1 3.2 6.1 7.1 10.1","5.1":0.05452,"9.1":0.01947,"11.1":0.01298,"12.1":0.00909,"13.1":0.05711,"14.1":0.09216},B:{"12":0.01687,"13":0.01038,"14":0.01558,"15":0.00909,"16":0.01947,"17":0.02077,"18":0.04932,"80":0.0026,"84":0.01038,"85":0.00649,"86":0.0026,"87":0.0026,"88":0.00779,"89":0.01558,"90":0.01687,"91":0.57761,"92":0.14538,_:"79 81 83"},P:{"4":1.43053,"5.0-5.4":0.09067,"6.2-6.4":0.12089,"7.2-7.4":0.41304,"8.2":0.03022,"9.2":0.16119,"10.1":0.05037,"11.1-11.2":0.45334,"12.0":0.13096,"13.0":0.47349,"14.0":1.24919},I:{"0":0,"3":0,"4":0.00053,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00264,"4.2-4.3":0.0116,"4.4":0,"4.4.3-4.4.4":0.09837},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00535,"9":0.01071,"11":0.37204,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":70.99726},S:{"2.5":0.02611},R:{_:"0"},M:{"0":0.17406},Q:{"10.4":0.01741},O:{"0":1.76671},H:{"0":6.92113}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js index c10e8285de5ec5..942b1f6e778704 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js @@ -1 +1 @@ -module.exports={C:{"48":0.00523,"52":0.03658,"59":0.01045,"68":0.01045,"78":0.13063,"84":0.1254,"85":0.01568,"86":0.03658,"87":0.0627,"88":2.30423,"89":0.03135,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 80 81 82 83 90 91 3.5 3.6"},D:{"38":0.01568,"49":0.07315,"53":0.0209,"61":0.01045,"63":0.00523,"65":0.0209,"66":0.04703,"67":0.0418,"68":0.01568,"69":0.24558,"70":0.00523,"71":0.01045,"72":0.01045,"73":0.01568,"74":0.01045,"75":0.04703,"76":0.06793,"77":0.02613,"78":0.01568,"79":0.0418,"80":0.03135,"81":0.03135,"83":0.03658,"84":0.0418,"85":0.05225,"86":0.1045,"87":0.26125,"88":0.8987,"89":2.55503,"90":27.81268,"91":0.64268,"92":0.00523,_:"4 5 6 7 8 9 10 11 12 13 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 60 62 64 93 94"},F:{"36":0.00523,"64":0.01045,"73":0.09405,"75":0.33963,"76":0.28215,_:"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 65 66 67 68 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},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.00257,"7.0-7.1":0.018,"8.1-8.4":0.02057,"9.0-9.2":0.01028,"9.3":0.13882,"10.0-10.2":0.02314,"10.3":0.23137,"11.0-11.2":0.05399,"11.3-11.4":0.12082,"12.0-12.1":0.09769,"12.2-12.4":0.35733,"13.0-13.1":0.06427,"13.2":0.03342,"13.3":0.24165,"13.4-13.7":0.70695,"14.0-14.4":19.92573,"14.5-14.6":2.56816},E:{"4":0,"11":0.00523,"12":0.01568,"13":0.19855,"14":5.08393,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03658,"11.1":0.10973,"12.1":0.17243,"13.1":0.82555,"14.1":1.37418},B:{"14":0.00523,"15":0.00523,"16":0.01045,"17":0.0209,"18":0.09405,"84":0.01045,"85":0.0209,"86":0.0209,"87":0.01568,"88":0.0627,"89":0.3135,"90":5.0787,"91":0.1881,_:"12 13 79 80 81 83"},P:{"4":0.03199,"5.0-5.4":0.01012,"6.2-6.4":0.01012,"7.2-7.4":0.51623,"8.2":0.02024,"9.2":0.01066,"10.1":0.02133,"11.1-11.2":0.06398,"12.0":0.07465,"13.0":0.33058,"14.0":3.89231},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00344,"4.2-4.3":0.00689,"4.4":0,"4.4.3-4.4.4":0.04218},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01077,"11":0.51173,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.36282},Q:{"10.4":0},O:{"0":0.03342},H:{"0":0.14011},L:{"0":18.84669}}; +module.exports={C:{"48":0.00816,"52":0.0449,"59":0.01225,"68":0.00816,"72":0.00408,"78":0.15512,"79":0.00408,"84":0.11021,"85":0.00408,"86":0.00408,"87":0.02041,"88":0.13879,"89":1.65729,"90":0.90212,"91":0.01225,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 73 74 75 76 77 80 81 82 83 92 3.5 3.6"},D:{"38":0.01633,"46":0.00408,"49":0.08572,"53":0.00408,"58":0.00408,"61":0.05307,"62":0.00408,"63":0.00816,"65":0.01633,"66":0.05307,"67":0.02449,"68":0.00408,"69":0.28982,"70":0.00408,"71":0.00816,"72":0.00816,"73":0.01225,"74":0.00816,"75":0.03266,"76":0.02857,"77":0.01633,"78":0.02041,"79":0.06531,"80":0.03266,"81":0.02041,"83":0.02449,"84":0.03674,"85":0.02041,"86":0.03266,"87":0.22451,"88":0.32248,"89":0.1592,"90":0.50617,"91":17.37299,"92":3.40439,"93":0.00408,_:"4 5 6 7 8 9 10 11 12 13 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 47 48 50 51 52 54 55 56 57 59 60 64 94 95"},F:{"36":0.00816,"46":0.00408,"64":0.00408,"68":0.10613,"69":0.00408,"75":0.01225,"76":0.22451,"77":0.62046,_:"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 65 66 67 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00311,"7.0-7.1":0.01557,"8.1-8.4":0.02492,"9.0-9.2":0.01246,"9.3":0.15572,"10.0-10.2":0.01246,"10.3":0.23358,"11.0-11.2":0.05606,"11.3-11.4":0.09032,"12.0-12.1":0.08409,"12.2-12.4":0.26784,"13.0-13.1":0.06852,"13.2":0.0436,"13.3":0.23358,"13.4-13.7":0.70074,"14.0-14.4":4.08295,"14.5-14.7":23.8655},E:{"4":0,"12":0.01225,"13":0.11838,"14":1.03683,"15":0.01633,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02449,"11.1":0.08572,"12.1":0.14287,"13.1":0.53882,"14.1":4.00444},B:{"14":0.00408,"16":0.00816,"17":0.01633,"18":0.0449,"83":0.00408,"84":0.00816,"85":0.01633,"86":0.01633,"87":0.01633,"88":0.03266,"89":0.03674,"90":0.07756,"91":4.22079,"92":0.95927,_:"12 13 15 79 80 81"},P:{"4":0.08375,"5.0-5.4":0.09067,"6.2-6.4":0.03038,"7.2-7.4":0.79992,"8.2":0.03022,"9.2":0.0405,"10.1":0.02094,"11.1-11.2":0.06281,"12.0":0.06281,"13.0":0.1989,"14.0":4.96209},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.00748,"4.4":0,"4.4.3-4.4.4":0.04205},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.42861,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":24.43607},S:{"2.5":0},R:{_:"0"},M:{"0":0.48528},Q:{"10.4":0},O:{"0":0.05326},H:{"0":0.19049}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js index 3d017af1099ebe..11fb0ec8835d7a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js @@ -1 +1 @@ -module.exports={C:{"34":0.00312,"48":0.00312,"52":0.00935,"56":0.00312,"63":0.00623,"67":0.00623,"72":0.00312,"78":0.04987,"79":0.00312,"80":0.00623,"82":0.00623,"83":0.00623,"84":0.00935,"85":0.00623,"86":0.01559,"87":0.03429,"88":1.29356,"89":0.00623,_:"2 3 4 5 6 7 8 9 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 57 58 59 60 61 62 64 65 66 68 69 70 71 73 74 75 76 77 81 90 91 3.5 3.6"},D:{"22":0.00935,"24":0.00312,"26":0.00623,"27":0.00935,"28":0.00312,"29":0.00312,"32":0.00312,"34":0.06857,"35":0.00312,"36":0.00623,"37":0.00312,"38":0.14962,"41":0.01247,"47":0.02805,"49":0.13715,"53":0.18702,"55":0.01247,"56":0.00935,"57":0.00312,"58":0.02182,"60":0.01247,"61":0.04364,"62":0.01247,"63":0.00312,"64":0.03429,"65":0.03429,"66":0.01247,"67":0.02182,"68":0.0374,"69":0.01559,"70":0.04364,"71":0.00935,"72":0.04676,"73":0.01559,"74":0.01559,"75":0.01559,"76":0.01559,"77":0.01559,"78":0.02182,"79":0.13091,"80":0.06546,"81":0.08104,"83":0.10286,"84":0.07793,"85":0.06234,"86":0.12156,"87":0.27741,"88":0.35222,"89":0.73561,"90":16.70089,"91":0.66704,"92":0.01247,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 30 31 33 39 40 42 43 44 45 46 48 50 51 52 54 59 93 94"},F:{"28":0.00623,"36":0.0187,"40":0.00935,"46":0.02805,"71":0.00623,"72":0.00623,"73":0.02494,"74":0.00623,"75":0.27118,"76":0.46132,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00614,"6.0-6.1":0.01534,"7.0-7.1":0.02455,"8.1-8.4":0.02762,"9.0-9.2":0.01381,"9.3":0.18105,"10.0-10.2":0.03069,"10.3":0.12121,"11.0-11.2":0.0583,"11.3-11.4":0.07058,"12.0-12.1":0.07672,"12.2-12.4":0.24396,"13.0-13.1":0.05524,"13.2":0.02608,"13.3":0.15497,"13.4-13.7":0.5232,"14.0-14.4":10.46248,"14.5-14.6":2.75256},E:{"4":0,"8":0.00623,"11":0.01559,"12":0.01247,"13":0.09351,"14":2.57776,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00312,"10.1":0.0187,"11.1":0.0374,"12.1":0.05611,"13.1":0.39898,"14.1":0.80107},B:{"17":0.00935,"18":0.03117,"84":0.00623,"85":0.00312,"86":0.01247,"87":0.00312,"88":0.00623,"89":0.04676,"90":1.78292,"91":0.13715,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.49783,"5.0-5.4":0.04154,"6.2-6.4":0.02077,"7.2-7.4":0.10384,"8.2":0.0406,"9.2":0.02074,"10.1":0.01037,"11.1-11.2":0.04149,"12.0":0.05186,"13.0":0.23854,"14.0":2.82104},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":3.64185,"4.4":0,"4.4.3-4.4.4":20.94065},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01045,"9":0.01045,"11":0.48093,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,_:"11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.39227},Q:{"10.4":0.04817},O:{"0":0.66067},H:{"0":0.68412},L:{"0":21.33629}}; +module.exports={C:{"17":0.00318,"21":0.00318,"48":0.00318,"52":0.00955,"56":0.00318,"63":0.00637,"72":0.00318,"78":0.05413,"79":0.00318,"82":0.00637,"83":0.00318,"84":0.00637,"86":0.00637,"87":0.00955,"88":0.02866,"89":0.86923,"90":0.46168,"91":0.00318,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 49 50 51 53 54 55 57 58 59 60 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 80 81 85 92 3.5 3.6"},D:{"11":0.00318,"22":0.00637,"24":0.00955,"26":0.00318,"27":0.01592,"28":0.00637,"29":0.00637,"32":0.00318,"34":0.05094,"35":0.00637,"36":0.00637,"37":0.00318,"38":0.13691,"41":0.01274,"47":0.02547,"49":0.12736,"53":0.04139,"55":0.00637,"56":0.00637,"57":0.00637,"61":0.07005,"62":0.00955,"63":0.00637,"64":0.04776,"65":0.02866,"66":0.01274,"67":0.0191,"68":0.01274,"69":0.00955,"70":0.05731,"71":0.00955,"72":0.05413,"73":0.01592,"74":0.01274,"75":0.02229,"76":0.01274,"77":0.0191,"78":0.0191,"79":0.35024,"80":0.08597,"81":0.07323,"83":0.07005,"84":0.05094,"85":0.07005,"86":0.06368,"87":0.24835,"88":0.07642,"89":0.18467,"90":0.4585,"91":15.06669,"92":2.8847,"93":0.01274,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 25 30 31 33 39 40 42 43 44 45 46 48 50 51 52 54 58 59 60 94 95"},F:{"28":0.00955,"36":0.0191,"40":0.00637,"46":0.02866,"72":0.00637,"74":0.00318,"75":0.00637,"76":0.07642,"77":0.6973,_:"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 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00152,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00761,"6.0-6.1":0.0137,"7.0-7.1":0.0213,"8.1-8.4":0.02739,"9.0-9.2":0.01065,"9.3":0.16282,"10.0-10.2":0.02283,"10.3":0.11413,"11.0-11.2":0.0563,"11.3-11.4":0.05783,"12.0-12.1":0.06848,"12.2-12.4":0.18565,"13.0-13.1":0.04565,"13.2":0.0213,"13.3":0.12478,"13.4-13.7":0.41543,"14.0-14.4":1.93866,"14.5-14.7":11.42653},E:{"4":0,"5":0.00318,"8":0.00318,"11":0.01274,"12":0.00955,"13":0.07323,"14":0.72277,"15":0.01274,_:"0 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00318,"10.1":0.01592,"11.1":0.03184,"12.1":0.05094,"13.1":0.35342,"14.1":2.83376},B:{"17":0.00955,"18":0.03184,"84":0.00955,"86":0.00637,"87":0.00637,"89":0.00637,"90":0.01592,"91":1.67797,"92":0.40437,_:"12 13 14 15 16 79 80 81 83 85 88"},P:{"4":0.50731,"5.0-5.4":0.04163,"6.2-6.4":0.03122,"7.2-7.4":0.07284,"8.2":0.01024,"9.2":0.02071,"10.1":0.08325,"11.1-11.2":0.03106,"12.0":0.05177,"13.0":0.11388,"14.0":2.82641},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":4.20888,"4.4":0,"4.4.3-4.4.4":21.0444},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01049,"9":0.01049,"11":0.42478,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":20.9759},S:{"2.5":0},R:{_:"0"},M:{"0":0.35443},Q:{"10.4":0.03408},O:{"0":0.62707},H:{"0":0.70337}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js index 39fc2e8ab53f00..60165ad4741874 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js @@ -1 +1 @@ -module.exports={C:{"88":1.89544,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 3.5 3.6"},D:{"78":1.89544,"81":3.08269,"88":3.79088,"89":3.79088,"90":50.71167,"91":1.42332,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 92 93 94"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.59,"10.0-10.2":0,"10.3":0.39333,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.78667,"14.0-14.4":0,"14.5-14.6":0},E:{"4":0,_:"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 11.1 12.1 13.1 14.1"},B:{"14":0.47212,"18":0.95119,"90":0.70819,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 91"},P:{"4":0.24927,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.10386,"8.2":0.01166,"9.2":0.09347,"10.1":0.18695,"11.1-11.2":0.16618,"12.0":0.50255,"13.0":1.01557,"14.0":0.50255},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"},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":27.01538}}; +module.exports={C:{"89":0.38732,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 90 91 92 3.5 3.6"},D:{"77":0.38732,"81":6.61525,"90":0.7808,"91":42.02158,"92":4.66633,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 78 79 80 83 84 85 86 87 88 89 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.51472,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.02576,"12.0-12.1":0,"12.2-12.4":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.7":0.02576},E:{"4":0,"14":0.38732,_:"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 14.1"},B:{"16":0.38732,"18":1.16812,"91":0.7808,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 92"},P:{"4":0.26416,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.1524,"8.2":0.02032,"9.2":0.09144,"10.1":0.08128,"11.1-11.2":0.18288,"12.0":0.06096,"13.0":1.13249,"14.0":1.13249},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:{"9":0.38732,"11":0.7808,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":38.41234},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js index 25e6a9113fb6d2..766fe99b4582ac 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js @@ -1 +1 @@ -module.exports={C:{"50":0.00599,"52":0.38961,"53":0.00599,"56":0.01199,"57":0.01199,"59":0.00599,"60":0.02997,"66":0.01199,"67":0.00599,"68":0.02997,"69":0.00599,"72":0.04196,"75":0.01798,"76":0.00599,"77":0.01199,"78":0.25175,"80":0.02398,"81":0.01199,"82":0.01199,"83":0.02398,"84":0.07193,"85":0.08392,"86":0.03596,"87":0.21578,"88":7.96003,"89":0.04196,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 58 61 62 63 64 65 70 71 73 74 79 90 91 3.5 3.6"},D:{"46":0.12587,"49":0.34765,"53":0.00599,"56":0.00599,"58":0.05395,"61":0.02997,"62":0.02997,"63":0.01798,"65":0.00599,"67":0.01798,"68":0.02398,"69":0.02997,"70":0.01199,"71":0.00599,"74":0.00599,"75":0.01199,"76":0.01199,"77":0.01798,"78":0.02398,"79":0.05395,"80":0.07792,"81":0.02398,"83":0.05395,"84":0.06593,"85":0.04795,"86":0.08392,"87":0.24575,"88":0.17982,"89":0.995,"90":33.42854,"91":1.11488,"92":1.06094,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 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 50 51 52 54 55 57 59 60 64 66 72 73 93 94"},F:{"46":0.01199,"70":0.01199,"73":0.16783,"74":0.00599,"75":0.70729,"76":0.61139,_:"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 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00149,"6.0-6.1":0,"7.0-7.1":0.00224,"8.1-8.4":0.00298,"9.0-9.2":0.00075,"9.3":0.09097,"10.0-10.2":0.00671,"10.3":0.06413,"11.0-11.2":0.02163,"11.3-11.4":0.03206,"12.0-12.1":0.06637,"12.2-12.4":0.06488,"13.0-13.1":0.01566,"13.2":0.00969,"13.3":0.07084,"13.4-13.7":0.3803,"14.0-14.4":5.2661,"14.5-14.6":1.15806},E:{"4":0,"5":0.01199,"12":0.01199,"13":0.06593,"14":1.3966,_:"0 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01199,"10.1":0.02398,"11.1":0.05994,"12.1":0.05994,"13.1":0.30569,"14.1":0.70729},B:{"15":0.00599,"16":0.01199,"17":0.01199,"18":0.05994,"84":0.01199,"86":0.01199,"87":0.01798,"88":0.01798,"89":0.10789,"90":4.35764,"91":0.29371,_:"12 13 14 79 80 81 83 85"},P:{"4":0.09403,"5.0-5.4":0.01045,"6.2-6.4":0.02077,"7.2-7.4":0.10384,"8.2":0.0406,"9.2":0.07314,"10.1":0.01045,"11.1-11.2":0.08358,"12.0":0.07314,"13.0":0.48061,"14.0":3.04039},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00132,"4.2-4.3":0.00395,"4.4":0,"4.4.3-4.4.4":0.0388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.60639,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,_:"11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.4006},Q:{"10.4":0},O:{"0":0.01202},H:{"0":0.19342},L:{"0":29.44682}}; +module.exports={C:{"48":0.00569,"52":0.44405,"57":0.01708,"60":0.02277,"66":0.02277,"67":0.00569,"68":0.03985,"69":0.00569,"71":0.01139,"72":0.06262,"76":0.01139,"77":0.01139,"78":0.26757,"81":0.01139,"83":0.01708,"84":0.02277,"85":0.02277,"86":0.01139,"87":0.06262,"88":0.12525,"89":5.55068,"90":2.28289,"91":0.02277,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 58 59 61 62 63 64 65 70 73 74 75 79 80 82 92 3.5 3.6"},D:{"38":0.01139,"49":0.31881,"56":0.00569,"58":0.03985,"63":0.02847,"65":0.00569,"67":0.01708,"69":0.01139,"70":0.01708,"73":0.01139,"75":0.00569,"76":0.00569,"77":0.01139,"78":0.01708,"79":0.06262,"80":0.10247,"81":0.01708,"83":0.05124,"84":0.03985,"85":0.03985,"86":0.09109,"87":0.17648,"88":0.09678,"89":0.13094,"90":0.29034,"91":27.92417,"92":5.044,"93":1.53142,_:"4 5 6 7 8 9 10 11 12 13 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 59 60 61 62 64 66 68 71 72 74 94 95"},F:{"46":0.01139,"76":0.33589,"77":1.08167,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00167,"6.0-6.1":0.00084,"7.0-7.1":0.00335,"8.1-8.4":0.00502,"9.0-9.2":0.00335,"9.3":0.05522,"10.0-10.2":0.00418,"10.3":0.06693,"11.0-11.2":0.03179,"11.3-11.4":0.04769,"12.0-12.1":0.05856,"12.2-12.4":0.06274,"13.0-13.1":0.02426,"13.2":0.01506,"13.3":0.06693,"13.4-13.7":0.32292,"14.0-14.4":1.43057,"14.5-14.7":5.96741},E:{"4":0.01139,"5":0.01708,"13":0.03416,"14":0.4099,"15":0.02277,_:"0 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01139,"10.1":0.02847,"11.1":0.03985,"12.1":0.03985,"13.1":0.23341,"14.1":1.19553},B:{"15":0.00569,"16":0.01708,"18":0.02847,"84":0.00569,"85":0.01139,"86":0.01139,"87":0.00569,"88":0.01708,"89":0.01708,"90":0.01708,"91":3.64921,"92":0.77425,_:"12 13 14 17 79 80 81 83"},P:{"4":0.05224,"5.0-5.4":0.04163,"6.2-6.4":0.03122,"7.2-7.4":0.07284,"8.2":0.01024,"9.2":0.05224,"10.1":0.08325,"11.1-11.2":0.09403,"12.0":0.06269,"13.0":0.2821,"14.0":3.57324},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00923,"4.2-4.3":0.00369,"4.4":0,"4.4.3-4.4.4":0.02584},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.12152,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":32.0753},S:{"2.5":0},R:{_:"0"},M:{"0":0.44782},Q:{"10.4":0},O:{"0":0.00861},H:{"0":0.21606}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js index 4c8136e66d453f..8cbde3ce366916 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js @@ -1 +1 @@ -module.exports={C:{"48":0.01068,"52":0.17619,"56":0.01602,"64":0.00534,"65":0.00534,"66":0.01068,"68":0.08542,"69":0.00534,"70":0.00534,"71":0.0267,"72":0.01068,"73":0.00534,"76":0.01068,"77":0.00534,"78":0.18687,"79":0.00534,"80":0.00534,"81":0.0267,"82":0.02136,"83":0.01068,"84":0.04271,"85":0.03737,"86":0.05873,"87":0.11746,"88":6.8179,"89":0.03203,"90":0.00534,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 67 74 75 91 3.5 3.6"},D:{"26":0.00534,"34":0.01068,"38":0.04805,"39":0.00534,"43":0.01068,"45":0.00534,"47":0.01068,"49":0.43246,"53":0.11212,"56":0.00534,"58":0.00534,"59":0.01068,"63":0.07475,"65":0.00534,"67":0.00534,"68":0.02136,"69":0.01068,"70":0.01068,"71":0.01602,"72":0.00534,"73":0.01602,"74":0.00534,"75":0.01602,"76":0.01068,"77":0.01068,"78":0.0267,"79":0.06407,"80":0.0267,"81":0.06407,"83":0.03203,"84":0.03203,"85":0.03203,"86":0.08009,"87":0.17619,"88":0.41644,"89":0.85424,"90":29.51933,"91":1.08916,"92":0.00534,_:"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 44 46 48 50 51 52 54 55 57 60 61 62 64 66 93 94"},F:{"36":0.01068,"40":0.00534,"46":0.01068,"64":0.01068,"73":0.18153,"74":0.01068,"75":1.22263,"76":1.68179,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01602},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00857,"6.0-6.1":0,"7.0-7.1":0.00381,"8.1-8.4":0,"9.0-9.2":0.00095,"9.3":0.09518,"10.0-10.2":0.01047,"10.3":0.10565,"11.0-11.2":0.01237,"11.3-11.4":0.04378,"12.0-12.1":0.02284,"12.2-12.4":0.07614,"13.0-13.1":0.03807,"13.2":0.02284,"13.3":0.1066,"13.4-13.7":0.27982,"14.0-14.4":6.60342,"14.5-14.6":1.7703},E:{"4":0,"12":0.01602,"13":0.04805,"14":1.43085,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01602,"11.1":0.0267,"12.1":0.06407,"13.1":0.26161,"14.1":0.73144},B:{"14":0.01068,"15":0.02136,"16":0.00534,"17":0.01602,"18":0.08009,"84":0.01068,"85":0.00534,"86":0.00534,"87":0.00534,"88":0.01068,"89":0.08542,"90":3.67323,"91":0.26695,_:"12 13 79 80 81 83"},P:{"4":0.32687,"5.0-5.4":0.04154,"6.2-6.4":0.02077,"7.2-7.4":0.10384,"8.2":0.0406,"9.2":0.02074,"10.1":0.01037,"11.1-11.2":0.0949,"12.0":0.05272,"13.0":0.25306,"14.0":2.28811},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00347,"4.2-4.3":0.01389,"4.4":0,"4.4.3-4.4.4":0.10849},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00534,"11":0.52856,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,_:"11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.26102},Q:{"10.4":0},O:{"0":0.04661},H:{"0":0.46775},L:{"0":34.75751}}; +module.exports={C:{"33":0.00494,"48":0.00494,"52":0.17777,"56":0.00988,"57":0.00494,"66":0.00494,"68":0.03457,"72":0.00494,"78":0.19752,"79":0.00494,"80":0.00988,"81":0.01481,"82":0.00988,"83":0.00494,"84":0.01481,"85":0.03457,"86":0.02469,"87":0.02469,"88":0.10864,"89":3.82695,"90":2.24185,"91":0.01975,_:"2 3 4 5 6 7 8 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 49 50 51 53 54 55 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 92 3.5 3.6"},D:{"34":0.00988,"38":0.0395,"43":0.00988,"47":0.01481,"49":0.33085,"53":0.06419,"56":0.00494,"58":0.00494,"59":0.03457,"63":0.08395,"65":0.00494,"67":0.00988,"68":0.05432,"69":0.01481,"70":0.00988,"71":0.00988,"72":0.00494,"73":0.00494,"74":0.00494,"75":0.02469,"76":0.00988,"77":0.01481,"78":0.01481,"79":0.22221,"80":0.01481,"81":0.07407,"83":0.05432,"84":0.01975,"85":0.02469,"86":0.10864,"87":0.11357,"88":0.07407,"89":0.17777,"90":0.47899,"91":22.76912,"92":5.12071,"93":0.00988,_:"4 5 6 7 8 9 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 57 60 61 62 64 66 94 95"},F:{"28":0.00494,"36":0.01481,"46":0.01481,"64":0.00988,"65":0.00494,"75":0.00988,"76":0.38516,"77":2.87392,_:"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 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02469},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01684,"6.0-6.1":0,"7.0-7.1":0.01052,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.16629,"10.0-10.2":0.01158,"10.3":0.09367,"11.0-11.2":0.02105,"11.3-11.4":0.04526,"12.0-12.1":0.02947,"12.2-12.4":0.06736,"13.0-13.1":0.01579,"13.2":0.02315,"13.3":0.07578,"13.4-13.7":0.22944,"14.0-14.4":1.40821,"14.5-14.7":7.99565},E:{"4":0,"12":0.00494,"13":0.03457,"14":0.47899,"15":0.01975,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00494,"11.1":0.01975,"12.1":0.04444,"13.1":0.16789,"14.1":1.51597},B:{"15":0.02469,"16":0.00494,"17":0.00988,"18":0.10864,"84":0.00494,"85":0.00988,"86":0.00494,"89":0.02469,"90":0.01481,"91":2.8196,"92":0.75058,_:"12 13 14 79 80 81 83 87 88"},P:{"4":0.34489,"5.0-5.4":0.04163,"6.2-6.4":0.03122,"7.2-7.4":0.07284,"8.2":0.01024,"9.2":0.02071,"10.1":0.08325,"11.1-11.2":0.07316,"12.0":0.0418,"13.0":0.13586,"14.0":2.47692},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.01072,"4.4":0,"4.4.3-4.4.4":0.07705},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46911,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00506},N:{"10":0.01143,"11":0.01864},L:{"0":38.29689},S:{"2.5":0},R:{_:"0"},M:{"0":0.31384},Q:{"10.4":0},O:{"0":0.07087},H:{"0":0.55592}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js index d529d81b19c5a8..8d997468886cdb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js @@ -1 +1 @@ -module.exports={C:{"17":0.00954,"23":0.00477,"30":0.00954,"35":0.00716,"41":0.00716,"43":0.02862,"44":0.02385,"45":0.00239,"47":0.00954,"48":0.00477,"56":0.00477,"62":0.00477,"70":0.00477,"72":0.01193,"76":0.00716,"78":0.01908,"81":0.00239,"82":0.01431,"84":0.00477,"85":0.00477,"86":0.02624,"87":0.03101,"88":0.9707,"89":0.14072,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 24 25 26 27 28 29 31 32 33 34 36 37 38 39 40 42 46 49 50 51 52 53 54 55 57 58 59 60 61 63 64 65 66 67 68 69 71 73 74 75 77 79 80 83 90 91 3.5 3.6"},D:{"23":0.00477,"24":0.00477,"30":0.00477,"33":0.09779,"39":0.00239,"42":0.00477,"43":0.00477,"46":0.00477,"48":0.0167,"49":0.00239,"50":0.00954,"55":0.00477,"56":0.00477,"57":0.00716,"60":0.02624,"61":0.00239,"62":0.00716,"63":0.01431,"64":0.00716,"65":0.01193,"67":0.00716,"69":0.00477,"70":0.00716,"71":0.00239,"72":0.01193,"74":0.01908,"75":0.0167,"76":0.02862,"77":0.00477,"78":0.01193,"79":0.04293,"80":0.02385,"81":0.01908,"83":0.06917,"84":0.00954,"85":0.0167,"86":0.03339,"87":0.10017,"88":0.06201,"89":0.30051,"90":7.7274,"91":0.20511,"92":0.00477,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 31 32 34 35 36 37 38 40 41 44 45 47 51 52 53 54 58 59 66 68 73 93 94"},F:{"16":0.00239,"18":0.00239,"36":0.00477,"37":0.01431,"42":0.00954,"43":0.00477,"45":0.00477,"51":0.00477,"62":0.00716,"63":0.00239,"68":0.00477,"73":0.02385,"74":0.03578,"75":0.41261,"76":0.80852,_:"9 11 12 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 44 46 47 48 49 50 52 53 54 55 56 57 58 60 64 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00239},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.02229,"5.0-5.1":0.00057,"6.0-6.1":0,"7.0-7.1":0.10287,"8.1-8.4":0.00114,"9.0-9.2":0.00171,"9.3":0.10687,"10.0-10.2":0.00572,"10.3":0.06287,"11.0-11.2":0.05201,"11.3-11.4":0.04858,"12.0-12.1":0.05315,"12.2-12.4":0.1886,"13.0-13.1":0.0703,"13.2":0.04058,"13.3":0.15088,"13.4-13.7":0.4132,"14.0-14.4":3.50909,"14.5-14.6":0.50007},E:{"4":0,"8":0.00239,"11":0.00239,"13":0.00954,"14":0.35537,_:"0 5 6 7 9 10 12 3.1 3.2 6.1 9.1","5.1":0.30528,"7.1":0.00239,"10.1":0.01431,"11.1":0.01431,"12.1":0.31959,"13.1":0.04532,"14.1":0.15503},B:{"12":0.06917,"13":0.05486,"14":0.02385,"15":0.02385,"16":0.03339,"17":0.01908,"18":0.1431,"80":0.00716,"84":0.01431,"85":0.02385,"86":0.00239,"87":0.00954,"88":0.02147,"89":0.19796,"90":1.97717,"91":0.12879,_:"79 81 83"},P:{"4":0.15576,"5.0-5.4":0.04154,"6.2-6.4":0.02077,"7.2-7.4":0.10384,"8.2":0.0406,"9.2":0.18691,"10.1":0.16238,"11.1-11.2":0.14538,"12.0":0.07269,"13.0":0.2596,"14.0":0.72689},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.00245,"4.4":0,"4.4.3-4.4.4":0.08811},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.07623,"10":0.01525,"11":0.76235,_:"6 7 9 5.5"},J:{"7":0,"10":0.03808},N:{"10":0.01297,_:"11"},S:{"2.5":0.03808},R:{_:"0"},M:{"0":0.22084},Q:{"10.4":0.01523},O:{"0":1.88091},H:{"0":20.28001},L:{"0":51.95679}}; +module.exports={C:{"4":0.00619,"23":0.00619,"27":0.00928,"29":0.00309,"30":0.01238,"33":0.00928,"35":0.00619,"41":0.00619,"43":0.01238,"44":0.01547,"45":0.00619,"47":0.01856,"48":0.00619,"56":0.01547,"68":0.00309,"70":0.00619,"72":0.01547,"77":0.00619,"78":0.02166,"84":0.00619,"85":0.00619,"87":0.01856,"88":0.02785,"89":0.84157,"90":0.60024,"91":0.08973,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 31 32 34 36 37 38 39 40 42 46 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 71 73 74 75 76 79 80 81 82 83 86 92 3.5 3.6"},D:{"11":0.01547,"22":0.01547,"26":0.00619,"30":0.00309,"33":0.08973,"37":0.00619,"38":0.01547,"42":0.04332,"43":0.01238,"48":0.02166,"49":0.02166,"51":0.01238,"55":0.00619,"56":0.00309,"57":0.01238,"58":0.00619,"60":0.01856,"63":0.01856,"64":0.01238,"65":0.01856,"66":0.00309,"67":0.00928,"68":0.00309,"69":0.01238,"71":0.01238,"72":0.00619,"73":0.00619,"74":0.01238,"75":0.01238,"76":0.04641,"77":0.02475,"78":0.00928,"79":0.03713,"80":0.01856,"81":0.01856,"83":0.01856,"84":0.0526,"85":0.02785,"86":0.04022,"87":0.08973,"88":0.04641,"89":0.09901,"90":0.33725,"91":9.62543,"92":2.09154,"93":0.00619,_:"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 34 35 36 39 40 41 44 45 46 47 50 52 53 54 59 61 62 70 94 95"},F:{"18":0.00309,"22":0.00309,"27":0.01547,"36":0.00309,"37":0.01238,"42":0.01547,"45":0.00619,"51":0.00309,"63":0.00309,"64":0.01856,"65":0.01238,"73":0.00928,"74":0.01238,"75":0.01547,"76":0.07426,"77":1.4449,_:"9 11 12 15 16 17 19 20 21 23 24 25 26 28 29 30 31 32 33 34 35 38 39 40 41 43 44 46 47 48 49 50 52 53 54 55 56 57 58 60 62 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.01238},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00284,"6.0-6.1":0,"7.0-7.1":0.03124,"8.1-8.4":0.00639,"9.0-9.2":0.00284,"9.3":0.08165,"10.0-10.2":0.01065,"10.3":0.05964,"11.0-11.2":0.01846,"11.3-11.4":0.05112,"12.0-12.1":0.03195,"12.2-12.4":0.21228,"13.0-13.1":0.05964,"13.2":0.02414,"13.3":0.15832,"13.4-13.7":0.44161,"14.0-14.4":3.16153,"14.5-14.7":2.27547},E:{"4":0,"11":0.00309,"13":0.03403,"14":0.24133,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1","5.1":0.03094,"10.1":0.00928,"11.1":0.17326,"12.1":0.02785,"13.1":0.12376,"14.1":0.40222},B:{"12":0.08973,"13":0.05569,"14":0.04022,"15":0.03094,"16":0.02475,"17":0.01547,"18":0.22896,"80":0.00309,"84":0.02785,"85":0.01238,"87":0.01547,"88":0.01547,"89":0.08044,"90":0.03713,"91":2.45045,"92":0.52907,_:"79 81 83 86"},P:{"4":0.11447,"5.0-5.4":0.04163,"6.2-6.4":0.03122,"7.2-7.4":0.07284,"8.2":0.01024,"9.2":0.02081,"10.1":0.08325,"11.1-11.2":0.15609,"12.0":0.03122,"13.0":0.1665,"14.0":0.80129},I:{"0":0,"3":0,"4":0.00057,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00085,"4.2-4.3":0.00255,"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.01948,"9":0.03896,"10":0.01948,"11":0.44806,_:"6 7 5.5"},J:{"7":0,"10":0.02072},N:{"10":0.01143,"11":0.01864},L:{"0":52.00536},S:{"2.5":0.03453},R:{_:"0"},M:{"0":0.16574},Q:{"10.4":0.00691},O:{"0":2.89361},H:{"0":13.3836}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js index 4c177be902cb5d..eb45bb09b5821a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js @@ -1 +1 @@ -module.exports={C:{"47":0.00678,"48":0.02034,"52":0.09493,"56":0.04069,"60":0.15596,"78":0.1424,"83":0.08815,"84":0.05425,"85":0.01356,"86":0.23734,"87":0.05425,"88":6.48264,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 89 90 91 3.5 3.6"},D:{"49":0.19665,"53":0.02034,"62":0.01356,"63":0.08815,"65":0.00678,"66":0.01356,"68":0.03391,"71":0.01356,"73":0.02712,"76":0.08137,"77":0.08815,"79":0.04747,"81":0.03391,"83":0.00678,"86":0.08137,"87":0.1085,"88":0.26446,"89":0.65098,"90":38.23806,"91":1.47148,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 64 67 69 70 72 74 75 78 80 84 85 92 93 94"},F:{"73":0.02034,"75":0.1424,"76":0.18987,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.10233,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1891,"10.0-10.2":0.01064,"10.3":0.13507,"11.0-11.2":0.00655,"11.3-11.4":0.01555,"12.0-12.1":0.00655,"12.2-12.4":0.06958,"13.0-13.1":0.06713,"13.2":0,"13.3":0.06058,"13.4-13.7":0.18582,"14.0-14.4":5.41588,"14.5-14.6":0.86854},E:{"4":0,"10":0.03391,"12":0.02034,"13":0.1085,"14":2.16314,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04747,"11.1":0.43398,"12.1":0.16274,"13.1":0.71201,"14.1":1.24092},B:{"18":0.08815,"85":0.01356,"89":0.03391,"90":11.55482,"91":0.56282,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88"},P:{"4":0.16089,"5.0-5.4":0.02077,"6.2-6.4":0.04055,"7.2-7.4":0.76023,"8.2":0.10461,"9.2":0.16218,"10.1":0.59805,"11.1-11.2":0.06435,"12.0":0.13177,"13.0":0.07508,"14.0":5.1591},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.05794},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.50179,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.10623},Q:{"10.4":0},O:{"0":0},H:{"0":0.08838},L:{"0":19.95073}}; +module.exports={C:{"52":0.14458,"56":0.08544,"68":0.01972,"78":0.19716,"80":0.01314,"84":0.02629,"88":0.046,"89":4.02206,"90":2.17533,"91":0.09201,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 72 73 74 75 76 77 79 81 82 83 85 86 87 92 3.5 3.6"},D:{"49":0.12487,"53":0.02629,"65":0.09858,"66":0.01314,"67":0.02629,"76":0.03286,"77":0.09858,"81":0.02629,"85":0.01314,"86":0.00657,"87":0.17087,"88":0.05915,"89":0.046,"90":0.06572,"91":29.34398,"92":8.12956,"93":0.01314,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 68 69 70 71 72 73 74 75 78 79 80 83 84 94 95"},F:{"76":0.09201,"77":0.19716,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.99702,"8.1-8.4":0,"9.0-9.2":0.00727,"9.3":0.21086,"10.0-10.2":0.01545,"10.3":0.10725,"11.0-11.2":0.03272,"11.3-11.4":0.0409,"12.0-12.1":0.01999,"12.2-12.4":0.01818,"13.0-13.1":0.00273,"13.2":0,"13.3":0.11724,"13.4-13.7":0.16996,"14.0-14.4":1.5905,"14.5-14.7":4.75424},E:{"4":0,"13":0.02629,"14":0.51919,"15":0.01972,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.03943,"10.1":0.21688,"11.1":0.27602,"12.1":0.18402,"13.1":0.72292,"14.1":8.67504},B:{"89":0.01314,"91":6.65086,"92":1.82044,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.09941,"5.0-5.4":0.03057,"6.2-6.4":0.02038,"7.2-7.4":0.50948,"8.2":0.02076,"9.2":0.1019,"10.1":0.1936,"11.1-11.2":0.11045,"12.0":0.34645,"13.0":0.03314,"14.0":2.62883},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,"4.4":0,"4.4.3-4.4.4":0.0871},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00657,"11":0.24974,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":23.60149},S:{"2.5":0},R:{_:"0"},M:{"0":0.11652},Q:{"10.4":0},O:{"0":0},H:{"0":0.02596}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js index 354593eda4b0f1..aec7af314ccf2a 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js @@ -1 +1 @@ -module.exports={C:{"15":0.0051,"34":0.0051,"35":0.01275,"41":0.0051,"42":0.0153,"43":0.00765,"45":0.00765,"47":0.0051,"48":0.0051,"51":0.00765,"52":0.01785,"53":0.0051,"56":0.00255,"64":0.00765,"66":0.00765,"67":0.0051,"68":0.0102,"70":0.0153,"72":0.0153,"75":0.0561,"77":0.0051,"78":0.11475,"80":0.0306,"81":0.01275,"82":0.0102,"83":0.00765,"84":0.03315,"85":0.0408,"86":0.02295,"87":0.0306,"88":2.1165,"89":0.01785,_:"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 36 37 38 39 40 44 46 49 50 54 55 57 58 59 60 61 62 63 65 69 71 73 74 76 79 90 91 3.5 3.6"},D:{"11":0.00255,"38":0.00765,"43":0.00765,"49":0.102,"53":0.0051,"55":0.00765,"56":0.00765,"58":0.00255,"59":0.0051,"60":0.00765,"62":0.00255,"63":0.0153,"64":0.0153,"65":0.0306,"67":0.07905,"68":0.0102,"69":0.0459,"70":0.03315,"71":0.00765,"72":0.0102,"73":0.0153,"74":0.0255,"75":0.0153,"76":0.0204,"77":0.00765,"78":0.0051,"79":0.0408,"80":0.03315,"81":0.0408,"83":0.02295,"84":0.0255,"85":0.07395,"86":0.03825,"87":0.14025,"88":0.32895,"89":0.2856,"90":11.4291,"91":0.47685,"92":0.0051,_:"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 51 52 54 57 61 66 93 94"},F:{"36":0.00255,"70":0.0102,"72":0.00765,"73":0.0051,"74":0.02295,"75":0.2091,"76":0.4641,_:"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 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00389,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00259,"7.0-7.1":0.01943,"8.1-8.4":0.01036,"9.0-9.2":0.0013,"9.3":0.12692,"10.0-10.2":0.01684,"10.3":0.33026,"11.0-11.2":0.1321,"11.3-11.4":0.13081,"12.0-12.1":0.12304,"12.2-12.4":0.40667,"13.0-13.1":0.05699,"13.2":0.03367,"13.3":0.27457,"13.4-13.7":0.75636,"14.0-14.4":8.29663,"14.5-14.6":1.44925},E:{"4":0,"10":0.0051,"11":0.00255,"12":0.00765,"13":0.02295,"14":0.34935,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1","5.1":0.0204,"9.1":0.00765,"10.1":0.0153,"11.1":0.03315,"12.1":0.0306,"13.1":0.09435,"14.1":0.1275},B:{"12":0.02295,"13":0.00765,"14":0.0051,"15":0.0153,"16":0.0153,"17":0.02295,"18":0.0816,"84":0.00765,"85":0.0102,"86":0.0153,"87":0.00765,"88":0.0102,"89":0.0561,"90":1.51725,"91":0.0867,_:"79 80 81 83"},P:{"4":0.47785,"5.0-5.4":0.02072,"6.2-6.4":0.0305,"7.2-7.4":0.47785,"8.2":0.01036,"9.2":0.16267,"10.1":0.05084,"11.1-11.2":0.51852,"12.0":0.21351,"13.0":0.70153,"14.0":1.76908},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00454,"4.2-4.3":0.00738,"4.4":0,"4.4.3-4.4.4":0.08491},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34935,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0149},N:{_:"10 11"},S:{"2.5":0.02235},R:{_:"0"},M:{"0":0.19367},Q:{"10.4":0},O:{"0":0.10429},H:{"0":0.43724},L:{"0":62.4297}}; +module.exports={C:{"35":0.00783,"40":0.00522,"42":0.01044,"43":0.00783,"45":0.01044,"47":0.00522,"48":0.00783,"49":0.00261,"51":0.00783,"52":0.01044,"53":0.00522,"56":0.00261,"64":0.01306,"66":0.00261,"68":0.01567,"70":0.047,"72":0.01306,"75":0.00261,"76":0.00261,"78":0.15144,"80":0.0235,"81":0.00522,"83":0.01567,"84":0.02872,"85":0.0235,"86":0.01306,"87":0.00261,"88":0.05744,"89":1.45955,"90":0.62403,"91":0.00522,_:"2 3 4 5 6 7 8 9 10 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 41 44 46 50 54 55 57 58 59 60 61 62 63 65 67 69 71 73 74 77 79 82 92 3.5 3.6"},D:{"18":0.00783,"32":0.00522,"33":0.01306,"38":0.01044,"43":0.00522,"45":0.00261,"49":0.06005,"50":0.13838,"55":0.01044,"57":0.00522,"58":0.00261,"59":0.01567,"60":0.00522,"61":0.00261,"63":0.01044,"64":0.00261,"65":0.02089,"67":0.03655,"69":0.04439,"70":0.00783,"71":0.00261,"72":0.01306,"73":0.01306,"74":0.17494,"75":0.02089,"76":0.01567,"77":0.01044,"78":0.00783,"79":0.047,"80":0.02089,"81":0.02089,"83":0.01044,"84":0.01044,"85":0.13838,"86":0.02611,"87":0.10966,"88":0.04961,"89":0.06266,"90":0.15144,"91":9.60065,"92":2.27418,_:"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 34 35 36 37 39 40 41 42 44 46 47 48 51 52 53 54 56 62 66 68 93 94 95"},F:{"36":0.00261,"71":0.00261,"74":0.0705,"76":0.02089,"77":0.54048,_:"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 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00554,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00138,"6.0-6.1":0.01108,"7.0-7.1":0.02077,"8.1-8.4":0.00277,"9.0-9.2":0,"9.3":0.1108,"10.0-10.2":0.00692,"10.3":0.15927,"11.0-11.2":0.19389,"11.3-11.4":0.09141,"12.0-12.1":0.07617,"12.2-12.4":0.29638,"13.0-13.1":0.05401,"13.2":0.03601,"13.3":0.21744,"13.4-13.7":0.5886,"14.0-14.4":3.23525,"14.5-14.7":8.05211},E:{"4":0,"10":0.00783,"11":0.00522,"12":0.00783,"13":0.02089,"14":0.14099,"15":0.00522,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1","5.1":0.00261,"9.1":0.00783,"10.1":0.02089,"11.1":0.03133,"12.1":0.03394,"13.1":0.08616,"14.1":0.31593},B:{"12":0.03133,"13":0.00522,"14":0.00522,"15":0.01306,"16":0.01306,"17":0.01828,"18":0.10183,"84":0.00783,"85":0.00783,"86":0.01306,"87":0.00783,"89":0.0235,"90":0.0235,"91":1.34728,"92":0.37337,_:"79 80 81 83 88"},P:{"4":0.32644,"5.0-5.4":0.0102,"6.2-6.4":0.0306,"7.2-7.4":0.42845,"8.2":0.01024,"9.2":0.14282,"10.1":0.0408,"11.1-11.2":0.56107,"12.0":0.12241,"13.0":0.35704,"14.0":2.08105},I:{"0":0,"3":0,"4":0.00282,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00517,"4.2-4.3":0.00704,"4.4":0,"4.4.3-4.4.4":0.09581},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34726,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00739},N:{"10":0.03533,"11":0.01864},L:{"0":62.0909},S:{"2.5":0.01478},R:{_:"0"},M:{"0":0.21428},Q:{"10.4":0},O:{"0":0.10345},H:{"0":0.38475}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js index 08abf470669e70..e3e4654f833677 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js @@ -1 +1 @@ -module.exports={C:{"78":0.00242,"84":0.00726,"87":0.00726,"88":0.61201,"89":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 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 90 91 3.5 3.6"},D:{"11":0.03387,"21":0.00484,"22":0.00726,"33":0.00968,"37":0.00726,"38":0.00484,"43":0.04354,"45":0.00726,"49":0.01451,"53":0.00242,"57":0.00726,"62":0.04596,"63":0.03145,"64":0.00968,"65":0.00484,"67":0.00242,"68":0.01693,"70":0.01451,"71":0.00968,"72":0.00726,"73":0.00242,"75":0.00968,"76":0.00726,"77":0.00242,"78":0.00726,"79":0.04596,"80":0.02177,"81":0.04838,"83":0.00968,"84":0.0121,"85":0.02419,"86":0.05322,"87":0.09434,"88":0.91922,"89":0.39914,"90":14.8575,"91":0.52976,"92":0.01935,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 23 24 25 26 27 28 29 30 31 32 34 35 36 39 40 41 42 44 46 47 48 50 51 52 54 55 56 58 59 60 61 66 69 74 93 94"},F:{"28":0.00726,"62":0.00484,"64":0.00242,"73":0.00484,"74":0.00968,"75":0.23464,"76":0.36527,_:"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 63 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01278,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07031,"10.0-10.2":0.00852,"10.3":0.08576,"11.0-11.2":0.01758,"11.3-11.4":0.01864,"12.0-12.1":0.0229,"12.2-12.4":0.18324,"13.0-13.1":0.0538,"13.2":0.01864,"13.3":0.1353,"13.4-13.7":0.57688,"14.0-14.4":2.96323,"14.5-14.6":0.63813},E:{"4":0,"11":0.00726,"13":0.00726,"14":0.24916,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.24674,"10.1":0.04112,"11.1":0.00484,"12.1":0.00726,"13.1":0.04838,"14.1":0.04112},B:{"12":0.02661,"13":0.0508,"14":0.00726,"15":0.00726,"16":0.0121,"17":0.0121,"18":0.09918,"80":0.00242,"81":0.00242,"84":0.0121,"85":0.02177,"86":0.00242,"87":0.00484,"88":0.01693,"89":0.04838,"90":1.15628,"91":0.05806,_:"79 83"},P:{"4":0.8402,"5.0-5.4":0.08098,"6.2-6.4":0.20246,"7.2-7.4":0.89081,"8.2":0.0406,"9.2":0.11135,"10.1":0.04049,"11.1-11.2":0.85032,"12.0":0.2227,"13.0":1.20462,"14.0":1.86261},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01775,"4.4":0,"4.4.3-4.4.4":0.25513},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07741,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.01516},R:{_:"0"},M:{"0":0.06822},Q:{"10.4":0},O:{"0":2.28916},H:{"0":7.57812},L:{"0":56.94884}}; +module.exports={C:{"5":0.00508,"15":0.00254,"48":0.00254,"76":0.00254,"78":0.00762,"84":0.00508,"88":0.00508,"89":0.45194,"90":0.20566,"91":0.01523,_:"2 3 4 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 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 77 79 80 81 82 83 85 86 87 92 3.5 3.6"},D:{"21":0.00254,"23":0.13203,"26":0.00254,"33":0.00762,"38":0.00254,"43":0.0127,"45":0.00508,"49":0.01523,"53":0.00254,"57":0.00762,"62":0.21835,"63":0.02031,"64":0.01016,"65":0.00254,"68":0.01523,"69":0.00508,"70":0.01016,"71":0.01016,"72":0.00254,"73":0.00508,"74":0.00254,"75":0.00762,"77":0.00762,"78":0.00762,"79":0.05078,"80":0.01016,"81":0.05078,"83":0.00762,"84":0.00508,"85":0.02031,"86":0.03809,"87":0.06094,"88":0.04824,"89":0.11426,"90":0.26152,"91":13.25866,"92":2.81321,"93":0.03809,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 25 27 28 29 30 31 32 34 35 36 37 39 40 41 42 44 46 47 48 50 51 52 54 55 56 58 59 60 61 66 67 76 94 95"},F:{"34":0.00254,"64":0.00254,"76":0.02793,"77":0.56112,_:"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 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00269,"5.0-5.1":0,"6.0-6.1":0.00336,"7.0-7.1":0.00269,"8.1-8.4":0,"9.0-9.2":0.00067,"9.3":0.03692,"10.0-10.2":0.00537,"10.3":0.07721,"11.0-11.2":0.02148,"11.3-11.4":0.0188,"12.0-12.1":0.02753,"12.2-12.4":0.1477,"13.0-13.1":0.06512,"13.2":0.01343,"13.3":0.17053,"13.4-13.7":0.38402,"14.0-14.4":2.09598,"14.5-14.7":3.052},E:{"4":0,"13":0.00508,"14":0.23105,"15":0.00508,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0127,"11.1":0.00508,"12.1":0.02793,"13.1":0.07871,"14.1":0.18789},B:{"12":0.03555,"13":0.0127,"14":0.0127,"15":0.01016,"16":0.01523,"17":0.01016,"18":0.1498,"80":0.00254,"84":0.0127,"85":0.0127,"86":0.01016,"87":0.00762,"88":0.00254,"89":0.04062,"90":0.03047,"91":1.48024,"92":0.31484,_:"79 81 83"},P:{"4":0.53437,"5.0-5.4":0.09074,"6.2-6.4":0.2319,"7.2-7.4":0.98808,"8.2":0.01025,"9.2":0.14115,"10.1":0.04033,"11.1-11.2":0.77635,"12.0":0.20165,"13.0":0.56462,"14.0":2.39962},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00517,"4.2-4.3":0.02324,"4.4":0,"4.4.3-4.4.4":0.24019},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00508,"11":0.11679,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":57.00708},S:{"2.5":0},R:{_:"0"},M:{"0":0.10445},Q:{"10.4":0},O:{"0":2.55912},H:{"0":5.77096}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js index 1eeeea66231ed1..ba2c50bc9f9100 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js @@ -1 +1 @@ -module.exports={C:{"52":0.01071,"78":0.01071,"80":0.01428,"86":0.01786,"87":0.025,"88":1.58552,"89":0.01071,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 90 91 3.5 3.6"},D:{"22":0.00357,"38":0.01786,"39":0.01071,"49":3.44959,"53":0.01428,"55":0.00714,"62":0.00357,"63":0.07499,"65":0.00714,"66":0.00357,"67":0.00714,"68":0.01786,"69":0.00714,"70":0.00357,"71":0.00714,"73":0.00714,"74":0.01428,"75":0.04285,"76":0.06785,"79":0.06071,"80":0.03214,"81":0.04285,"83":0.025,"84":0.00714,"85":0.01786,"86":0.02143,"87":0.56065,"88":0.16784,"89":0.51065,"90":19.95118,"91":0.62493,"92":0.00357,_:"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 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 64 72 77 78 93 94"},F:{"56":0.00357,"63":0.04285,"68":0.01786,"73":0.02143,"74":0.02143,"75":0.33925,"76":0.39281,_:"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 64 65 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0677,"6.0-6.1":0,"7.0-7.1":0.07616,"8.1-8.4":0.02962,"9.0-9.2":0.00106,"9.3":0.14492,"10.0-10.2":0.00106,"10.3":0.18618,"11.0-11.2":0.01375,"11.3-11.4":0.02116,"12.0-12.1":0.03068,"12.2-12.4":0.17031,"13.0-13.1":0.08145,"13.2":0.00635,"13.3":0.17031,"13.4-13.7":0.34379,"14.0-14.4":6.31312,"14.5-14.6":1.87659},E:{"4":0,"12":0.00357,"13":0.00714,"14":1.06416,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.13927,"10.1":0.00357,"11.1":0.06071,"12.1":0.02143,"13.1":0.08928,"14.1":0.25711},B:{"12":0.01071,"13":0.00357,"14":0.01428,"15":0.00357,"16":0.01428,"17":0.01428,"18":0.06071,"84":0.01071,"87":0.01071,"88":0.00714,"89":0.08928,"90":2.99607,"91":0.17855,_:"79 80 81 83 85 86"},P:{"4":1.01626,"5.0-5.4":0.08039,"6.2-6.4":0.12058,"7.2-7.4":0.74937,"8.2":0.04106,"9.2":0.15398,"10.1":0.07186,"11.1-11.2":0.4722,"12.0":0.2669,"13.0":2.17624,"14.0":6.30288},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00333,"4.2-4.3":0.00524,"4.4":0,"4.4.3-4.4.4":0.04286},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19283,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.12215},Q:{"10.4":0.07715},O:{"0":0.46289},H:{"0":0.48692},L:{"0":44.03187}}; +module.exports={C:{"52":0.00662,"74":0.00993,"78":0.00331,"80":0.00662,"82":0.00993,"85":0.00331,"87":0.00331,"88":0.00662,"89":1.35751,"90":0.75822,"91":0.01987,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 81 83 84 86 92 3.5 3.6"},D:{"38":0.00662,"39":0.00993,"49":0.32448,"53":0.04635,"62":0.00662,"63":0.01987,"68":0.01324,"69":0.00331,"70":0.00331,"73":0.00662,"74":0.02649,"75":0.02649,"76":0.09933,"77":0.00331,"78":0.01324,"79":0.02318,"80":0.01987,"81":0.03973,"83":0.00331,"86":0.02318,"87":0.29799,"88":0.04635,"89":0.04635,"90":0.19866,"91":15.7736,"92":4.00631,"93":0.00331,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 56 57 58 59 60 61 64 65 66 67 71 72 84 85 94 95"},F:{"28":0.00662,"63":0.05298,"70":0.07284,"74":0.00662,"76":0.08609,"77":0.44699,_:"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 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.10136,"6.0-6.1":0,"7.0-7.1":0.04807,"8.1-8.4":0,"9.0-9.2":0.00104,"9.3":0.18391,"10.0-10.2":0.00104,"10.3":0.32392,"11.0-11.2":0.01463,"11.3-11.4":0.02612,"12.0-12.1":0.04702,"12.2-12.4":0.16823,"13.0-13.1":0.12121,"13.2":0.00313,"13.3":0.13166,"13.4-13.7":0.27168,"14.0-14.4":1.87354,"14.5-14.7":5.84736},E:{"4":0,"13":0.00993,"14":0.16886,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00993,"11.1":0.27481,"12.1":0.0298,"13.1":0.09602,"14.1":1.0231},B:{"12":0.14237,"15":0.00662,"16":0.00662,"17":0.02318,"18":0.23508,"84":0.00331,"87":0.00993,"88":0.00993,"89":0.02318,"90":0.01656,"91":3.0097,"92":0.75491,_:"13 14 79 80 81 83 85 86"},P:{"4":1.05279,"5.0-5.4":0.09067,"6.2-6.4":0.01022,"7.2-7.4":0.78703,"8.2":0.03022,"9.2":0.42929,"10.1":0.07155,"11.1-11.2":0.8177,"12.0":0.79725,"13.0":1.32876,"14.0":7.63525},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.00136,"4.4":0,"4.4.3-4.4.4":0.02449},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24501,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":46.0692},S:{"2.5":0},R:{_:"0"},M:{"0":0.33445},Q:{"10.4":0},O:{"0":0.78261},H:{"0":0.17732}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js index 7fa0ca36ae8e8e..7f4791ea65bc69 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js @@ -1 +1 @@ -module.exports={C:{"42":0.04359,"49":0.01453,"68":0.01453,"72":0.00484,"74":0.00484,"77":0.05812,"78":0.00484,"81":0.0339,"87":0.01937,"88":1.12358,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 65 66 67 69 70 71 73 75 76 79 80 82 83 84 85 86 89 90 91 3.5 3.6"},D:{"36":0.07749,"43":0.21794,"49":0.01937,"53":0.07265,"54":0.01937,"55":0.01453,"57":0.00484,"60":0.00484,"62":0.01453,"64":0.08717,"65":0.02422,"66":0.01453,"67":0.01453,"68":0.02422,"69":0.05812,"70":0.05812,"72":0.01937,"75":0.00484,"77":0.0339,"78":0.02422,"79":0.26637,"80":0.00484,"81":0.12592,"83":0.00484,"84":0.05327,"85":0.00484,"86":0.04359,"87":0.43103,"88":0.03874,"89":3.10436,"90":24.21016,"91":0.63928,"92":0.02422,_:"4 5 6 7 8 9 10 11 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 50 51 52 56 58 59 61 63 71 73 74 76 93 94"},F:{"73":0.01937,"75":1.32214,"76":1.72411,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.07956,"8.1-8.4":0,"9.0-9.2":0,"9.3":1.93799,"10.0-10.2":0,"10.3":0.05344,"11.0-11.2":0.27312,"11.3-11.4":0.02612,"12.0-12.1":0,"12.2-12.4":0,"13.0-13.1":0.00831,"13.2":0,"13.3":0,"13.4-13.7":0.19356,"14.0-14.4":3.73585,"14.5-14.6":0.49281},E:{"4":0,"14":0.31964,_:"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.05327,"14.1":0.57632},B:{"13":0.00484,"14":0.00484,"15":0.01937,"17":0.01453,"18":0.06296,"83":0.00484,"84":0.04359,"87":0.01453,"89":0.08717,"90":3.7049,"91":0.22762,_:"12 16 79 80 81 85 86 88"},P:{"4":0.5353,"5.0-5.4":0.02077,"6.2-6.4":0.03149,"7.2-7.4":0.0105,"8.2":0.10461,"9.2":0.0105,"10.1":0.59805,"11.1-11.2":0.2834,"12.0":0.23092,"13.0":0.18893,"14.0":1.06011},I:{"0":0,"3":0,"4":0.00074,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03116,"4.2-4.3":0.02857,"4.4":0,"4.4.3-4.4.4":0.19217},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.586,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.05672},Q:{"10.4":0.02062},O:{"0":3.0936},H:{"0":0.47349},L:{"0":44.7367}}; +module.exports={C:{"24":0.01213,"29":0.05257,"52":0.01213,"56":0.02022,"77":0.04044,"78":0.00404,"82":0.00404,"85":0.00404,"86":0.03235,"89":0.19007,"90":0.2022,_:"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 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 79 80 81 83 84 87 88 91 92 3.5 3.6"},D:{"26":0.01213,"35":0.05257,"40":0.0364,"43":0.31948,"47":0.10514,"49":0.01213,"63":0.02426,"64":0.07684,"65":0.01618,"66":0.01213,"68":0.0364,"69":0.02426,"70":0.07279,"73":0.00404,"75":0.01213,"77":0.00404,"79":0.12536,"80":0.01213,"81":0.09706,"83":0.01618,"84":0.01618,"86":0.01618,"87":0.02426,"88":0.05662,"89":0.16985,"90":0.41249,"91":16.90796,"92":4.58185,_:"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 36 37 38 39 41 42 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 67 71 72 74 76 78 85 93 94 95"},F:{"76":0.03235,"77":1.66613,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.10953,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.31217,"11.0-11.2":0.08215,"11.3-11.4":0.02738,"12.0-12.1":0.33956,"12.2-12.4":0.05477,"13.0-13.1":0.02738,"13.2":0,"13.3":0,"13.4-13.7":0.37242,"14.0-14.4":3.18199,"14.5-14.7":6.31469},E:{"4":0,"14":0.04044,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1","5.1":0.0364,"11.1":0.00404,"13.1":0.10514,"14.1":0.28308},B:{"14":0.00404,"18":0.04448,"80":0.01213,"83":0.23051,"85":0.01213,"88":0.00404,"89":0.12941,"90":0.04044,"91":3.02491,"92":1.16467,_:"12 13 15 16 17 79 81 84 86 87"},P:{"4":0.10114,"5.0-5.4":0.03034,"6.2-6.4":0.02038,"7.2-7.4":0.08092,"8.2":0.02076,"9.2":0.01011,"10.1":0.1936,"11.1-11.2":0.12137,"12.0":0.08092,"13.0":0.08092,"14.0":1.72957},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00327,"4.2-4.3":0.01035,"4.4":0,"4.4.3-4.4.4":0.11741},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02013,"11":1.75114,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":47.93808},S:{"2.5":0},R:{_:"0"},M:{"0":0.02382},Q:{"10.4":0},O:{"0":3.73441},H:{"0":0.54696}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js index 10ba4bd0bd673a..c000689a7ed6be 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js @@ -1 +1 @@ -module.exports={C:{"52":0.04026,"56":0.01007,"60":0.0151,"62":0.0151,"64":0.01007,"66":0.34224,"67":0.00503,"68":0.01007,"70":0.0453,"72":0.01007,"73":0.08053,"75":0.01007,"78":0.08556,"80":0.01007,"82":0.00503,"84":0.01007,"85":0.02013,"86":0.02013,"87":0.06543,"88":2.58696,"89":0.04026,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 65 69 71 74 76 77 79 81 83 90 91 3.5 3.6"},D:{"38":0.01007,"43":0.01007,"49":0.14092,"53":0.0453,"55":0.00503,"63":0.01007,"65":0.01007,"66":0.00503,"67":0.02013,"68":0.01007,"69":0.01007,"70":0.02013,"71":0.0151,"72":0.01007,"73":0.01007,"74":0.02013,"75":0.0302,"76":0.05033,"77":0.02517,"78":0.02013,"79":0.0755,"80":0.04026,"81":0.0604,"83":0.06543,"84":0.05536,"85":0.04026,"86":0.07046,"87":0.31205,"88":0.19125,"89":0.75495,"90":32.26153,"91":1.24818,"92":0.02013,_:"4 5 6 7 8 9 10 11 12 13 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 54 56 57 58 59 60 61 62 64 93 94"},F:{"36":0.00503,"73":0.21139,"75":0.86064,"76":0.68952,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00049,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00443,"6.0-6.1":0,"7.0-7.1":0.01131,"8.1-8.4":0.00148,"9.0-9.2":0.00344,"9.3":0.07427,"10.0-10.2":0.00344,"10.3":0.03148,"11.0-11.2":0.00935,"11.3-11.4":0.01918,"12.0-12.1":0.0123,"12.2-12.4":0.07378,"13.0-13.1":0.01426,"13.2":0.02017,"13.3":0.04919,"13.4-13.7":0.151,"14.0-14.4":3.1705,"14.5-14.6":0.98322},E:{"4":0,"12":0.01007,"13":0.06543,"14":0.81031,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.80025,"11.1":0.02013,"12.1":0.0604,"13.1":0.17616,"14.1":0.38754},B:{"12":0.00503,"13":0.01007,"15":0.01007,"16":0.00503,"17":0.02013,"18":0.05536,"81":0.00503,"84":0.00503,"85":0.01007,"88":0.02517,"89":0.05033,"90":2.35041,"91":0.16609,_:"14 79 80 83 86 87"},P:{"4":0.18679,"5.0-5.4":0.02014,"6.2-6.4":0.02156,"7.2-7.4":0.12452,"8.2":0.02014,"9.2":0.09339,"10.1":0.02075,"11.1-11.2":0.23867,"12.0":0.11415,"13.0":0.42546,"14.0":1.69145},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.00721,"4.4":0,"4.4.3-4.4.4":0.0793},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14092,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0149},N:{"10":0.02735,"11":0.35567},S:{"2.5":0},R:{_:"0"},M:{"0":0.92368},Q:{"10.4":0},O:{"0":0.17878},H:{"0":0.22097},L:{"0":44.48776}}; +module.exports={C:{"35":0.00496,"52":0.04956,"64":0.00496,"66":0.35188,"67":0.00496,"68":0.01487,"70":0.05452,"72":0.00991,"73":0.07434,"78":0.06938,"84":0.00496,"85":0.00991,"86":0.01487,"87":0.01982,"88":0.05452,"89":1.47689,"90":0.87721,"91":0.01487,_:"2 3 4 5 6 7 8 9 10 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 57 58 59 60 61 62 63 65 69 71 74 75 76 77 79 80 81 82 83 92 3.5 3.6"},D:{"38":0.00991,"43":0.00991,"49":0.13381,"55":0.01487,"63":0.00496,"65":0.00496,"66":0.00496,"67":0.01982,"68":0.00496,"69":0.01487,"70":0.01487,"71":0.01487,"72":0.01487,"73":0.01487,"74":0.01487,"75":0.03965,"76":0.03965,"77":0.02974,"78":0.02974,"79":0.10408,"80":0.03965,"81":0.02974,"83":0.0793,"84":0.04956,"85":0.05452,"86":0.08921,"87":0.23789,"88":0.09912,"89":0.18337,"90":0.33701,"91":26.64841,"92":6.56174,"93":0.01487,"94":0.00496,_:"4 5 6 7 8 9 10 11 12 13 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 56 57 58 59 60 61 62 64 95"},F:{"76":0.45595,"77":1.2836,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00224,"6.0-6.1":0.00393,"7.0-7.1":0.01065,"8.1-8.4":0.0028,"9.0-9.2":0.00112,"9.3":0.08748,"10.0-10.2":0.00336,"10.3":0.02579,"11.0-11.2":0.00336,"11.3-11.4":0.01794,"12.0-12.1":0.01009,"12.2-12.4":0.05439,"13.0-13.1":0.01682,"13.2":0.01009,"13.3":0.05439,"13.4-13.7":0.13682,"14.0-14.4":0.9841,"14.5-14.7":3.86575},E:{"4":0,"13":0.02974,"14":0.27258,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.25771,"11.1":0.01982,"12.1":0.03469,"13.1":0.14868,"14.1":0.87226},B:{"12":0.00496,"14":0.00496,"15":0.04956,"16":0.00496,"17":0.01487,"18":0.0793,"80":0.01982,"84":0.00991,"85":0.00496,"86":0.00496,"89":0.01982,"90":0.00991,"91":2.08648,"92":0.56498,_:"13 79 81 83 87 88"},P:{"4":0.16583,"5.0-5.4":0.05031,"6.2-6.4":0.01077,"7.2-7.4":0.12437,"8.2":0.02034,"9.2":0.06218,"10.1":0.02073,"11.1-11.2":0.26947,"12.0":0.11401,"13.0":0.26947,"14.0":1.81372},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.00571,"4.4":0,"4.4.3-4.4.4":0.04378},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15859,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02522},N:{"11":0.01518,_:"10"},L:{"0":45.50354},S:{"2.5":0},R:{_:"0"},M:{"0":0.9281},Q:{"10.4":0},O:{"0":0.15636},H:{"0":0.24832}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js index 0da6f908a245f6..da4cc693305199 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js @@ -1 +1 @@ -module.exports={C:{"30":0.0037,"31":0.00185,"33":0.00185,"38":0.00185,"41":0.0037,"43":0.0037,"47":0.0074,"48":0.0037,"50":0.00926,"52":0.07219,"56":0.01851,"58":0.00555,"60":0.00185,"61":0.00185,"62":0.0037,"64":0.00185,"66":0.0037,"67":0.0037,"68":0.00185,"72":0.01481,"74":0.0037,"76":0.0037,"78":0.01666,"79":0.00185,"80":0.00926,"81":0.0074,"82":0.00926,"83":0.00555,"84":0.03332,"85":0.02221,"86":0.03332,"87":0.05553,"88":1.53263,"89":0.02777,_:"2 3 4 5 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 34 35 36 37 39 40 42 44 45 46 49 51 53 54 55 57 59 63 65 69 70 71 73 75 77 90 91 3.5 3.6"},D:{"11":0.00185,"25":0.00185,"28":0.00185,"32":0.0037,"33":0.00555,"34":0.0037,"36":0.00185,"38":0.01296,"40":0.00555,"42":0.0037,"43":0.01666,"44":0.0074,"47":0.0037,"49":0.02221,"50":0.0037,"52":0.00555,"53":0.02406,"55":0.00555,"56":0.0037,"57":0.0037,"58":0.01481,"59":0.0074,"60":0.00555,"61":0.01851,"62":0.00926,"63":0.03702,"64":0.0037,"65":0.0037,"66":0.00555,"67":0.00555,"68":0.00926,"69":0.01296,"70":0.25359,"71":0.01666,"72":0.01296,"73":0.01296,"74":0.01111,"75":0.01296,"76":0.01111,"77":0.01296,"78":0.02221,"79":0.07959,"80":0.03702,"81":0.14808,"83":0.02591,"84":0.02591,"85":0.04998,"86":0.06479,"87":0.08515,"88":0.15734,"89":0.48681,"90":9.01437,"91":0.30542,"92":0.0074,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 35 37 39 41 45 46 48 51 54 93 94"},F:{"54":0.00185,"66":0.00185,"71":0.01851,"73":0.02036,"74":0.03332,"75":0.29431,"76":0.39056,_:"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 67 68 69 70 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00028,"5.0-5.1":0.00987,"6.0-6.1":0.00226,"7.0-7.1":0.03553,"8.1-8.4":0.00451,"9.0-9.2":0.00197,"9.3":0.07756,"10.0-10.2":0.01749,"10.3":0.0612,"11.0-11.2":0.02172,"11.3-11.4":0.05894,"12.0-12.1":0.09138,"12.2-12.4":0.26538,"13.0-13.1":0.03215,"13.2":0.00761,"13.3":0.0612,"13.4-13.7":0.19685,"14.0-14.4":1.36132,"14.5-14.6":0.2431},E:{"4":0,"13":0.01111,"14":0.11661,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":2.55808,"11.1":0.0037,"12.1":0.01481,"13.1":0.02962,"14.1":0.01666},B:{"12":0.0037,"15":0.00555,"16":0.00555,"17":0.00926,"18":0.04628,"84":0.00926,"85":0.0037,"87":0.0037,"88":0.0037,"89":0.03332,"90":0.61638,"91":0.03332,_:"13 14 79 80 81 83 86"},P:{"4":2.17519,"5.0-5.4":0.08019,"6.2-6.4":0.18043,"7.2-7.4":0.40096,"8.2":0.05012,"9.2":0.41098,"10.1":0.31074,"11.1-11.2":0.48115,"12.0":0.44105,"13.0":1.53366,"14.0":2.5561},I:{"0":0,"3":0,"4":0.00226,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02873,"4.2-4.3":0.0452,"4.4":0,"4.4.3-4.4.4":0.23343},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00555,"9":0.00185,"11":0.0833,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.14666},Q:{"10.4":0},O:{"0":1.13257},H:{"0":1.47337},L:{"0":67.83065}}; +module.exports={C:{"27":0.00155,"30":0.00622,"31":0.00622,"38":0.00311,"39":0.00155,"41":0.00155,"43":0.00311,"47":0.00311,"48":0.00311,"49":0.00155,"50":0.00777,"52":0.04507,"54":0.00155,"55":0.00155,"56":0.00311,"57":0.00466,"58":0.00622,"60":0.00155,"61":0.01399,"62":0.00622,"65":0.01399,"66":0.00155,"68":0.00155,"71":0.01399,"72":0.00777,"74":0.00311,"76":0.00155,"78":0.02953,"79":0.00466,"80":0.01243,"81":0.00311,"82":0.00932,"83":0.00777,"84":0.0404,"85":0.00777,"86":0.01399,"87":0.01709,"88":0.0373,"89":1.01942,"90":0.46309,"91":0.00777,_:"2 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 32 33 34 35 36 37 40 42 44 45 46 51 53 59 63 64 67 69 70 73 75 77 92 3.5 3.6"},D:{"11":0.00466,"23":0.00155,"24":0.00155,"26":0.00311,"27":0.00155,"30":0.00155,"32":0.00311,"33":0.00622,"36":0.00466,"38":0.01554,"39":0.00622,"40":0.00622,"42":0.00311,"43":0.01554,"44":0.00311,"48":0.00155,"49":0.02486,"50":0.00311,"52":0.01709,"53":0.00466,"55":0.00777,"56":0.00311,"57":0.0575,"58":0.01088,"59":0.00777,"60":0.02797,"61":0.05594,"62":0.00155,"63":0.01709,"64":0.00622,"65":0.00622,"66":0.00311,"67":0.00466,"68":0.00311,"69":0.01399,"70":0.1352,"71":0.01399,"72":0.03574,"73":0.00311,"74":0.01243,"75":0.01088,"76":0.01088,"77":0.00622,"78":0.01243,"79":0.0777,"80":0.04662,"81":0.26418,"83":0.03263,"84":0.01088,"85":0.02176,"86":0.04351,"87":0.11033,"88":0.0373,"89":0.11033,"90":0.20513,"91":7.25096,"92":1.49495,"93":0.00155,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 25 28 29 31 34 35 37 41 45 46 47 51 54 94 95"},F:{"74":0.06527,"75":0.00466,"76":0.0575,"77":0.56721,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00032,"5.0-5.1":0.00291,"6.0-6.1":0.00226,"7.0-7.1":0.0297,"8.1-8.4":0.00323,"9.0-9.2":0.00291,"9.3":0.11685,"10.0-10.2":0.00936,"10.3":0.08651,"11.0-11.2":0.02808,"11.3-11.4":0.06262,"12.0-12.1":0.09426,"12.2-12.4":0.25113,"13.0-13.1":0.03583,"13.2":0.01775,"13.3":0.06811,"13.4-13.7":0.17721,"14.0-14.4":0.68432,"14.5-14.7":1.24017},E:{"4":0,"13":0.01243,"14":0.09013,"15":0.00155,_:"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.24864,"12.1":0.00466,"13.1":0.01865,"14.1":0.11655},B:{"12":0.00311,"14":0.00311,"15":0.00777,"16":0.00932,"17":0.00932,"18":0.03885,"80":0.00155,"84":0.00777,"85":0.00777,"87":0.00155,"88":0.01088,"89":0.00932,"90":0.04351,"91":0.47708,"92":0.13209,_:"13 79 81 83 86"},P:{"4":2.31081,"5.0-5.4":0.08038,"6.2-6.4":0.22103,"7.2-7.4":0.47221,"8.2":0.05023,"9.2":0.38179,"10.1":0.28132,"11.1-11.2":0.38179,"12.0":0.31146,"13.0":1.02479,"14.0":3.06433},I:{"0":0,"3":0,"4":0.00196,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01955,"4.2-4.3":0.03812,"4.4":0,"4.4.3-4.4.4":0.16838},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00311,"9":0.00311,"11":0.07459,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":70.29863},S:{"2.5":0},R:{_:"0"},M:{"0":0.19424},Q:{"10.4":0},O:{"0":1.31742},H:{"0":1.75894}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js index c2e7913cc357e9..af64234e970110 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js @@ -1 +1 @@ -module.exports={C:{"10":0.0152,"52":0.01823,"60":0.04255,"67":0.00304,"68":0.0152,"72":0.00608,"77":0.00912,"78":0.03343,"80":0.00912,"83":0.01216,"84":0.01216,"85":0.01823,"86":0.02431,"87":0.06078,"88":1.04542,"89":0.01823,_:"2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 69 70 71 73 74 75 76 79 81 82 90 91 3.5 3.6"},D:{"11":0.00608,"25":0.0152,"40":0.0152,"43":0.00912,"47":0.00304,"49":0.01216,"56":0.00608,"57":0.01216,"58":0.00608,"60":0.00304,"63":0.01216,"64":0.00912,"66":0.00912,"69":0.02431,"70":0.08509,"72":0.00608,"73":0.00304,"74":0.00912,"76":0.00608,"78":0.00912,"79":0.01823,"80":0.01216,"81":0.04862,"83":0.02735,"84":0.00608,"85":0.01216,"86":0.22489,"87":0.31302,"88":0.13372,"89":0.50144,"90":12.63616,"91":0.38595,"92":0.00912,_:"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 42 44 45 46 48 50 51 52 53 54 55 59 61 62 65 67 68 71 75 77 93 94"},F:{"29":0.00304,"42":0.00608,"63":0.01216,"69":0.00608,"70":0.00608,"72":0.00304,"73":0.02127,"74":0.01823,"75":0.51967,"76":0.90258,_:"9 11 12 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00029,"4.0-4.1":0,"4.2-4.3":0.00972,"5.0-5.1":0.00206,"6.0-6.1":0.00854,"7.0-7.1":0.00559,"8.1-8.4":0.00206,"9.0-9.2":0.00206,"9.3":0.03651,"10.0-10.2":0.00412,"10.3":0.23375,"11.0-11.2":0.01384,"11.3-11.4":0.00942,"12.0-12.1":0.04769,"12.2-12.4":0.10981,"13.0-13.1":0.01972,"13.2":0.00265,"13.3":0.0421,"13.4-13.7":0.17222,"14.0-14.4":1.75226,"14.5-14.6":0.18429},E:{"4":0,"7":0.00304,"13":0.01216,"14":0.19146,_:"0 5 6 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.12156,"10.1":0.00304,"12.1":0.01216,"13.1":0.14283,"14.1":0.17018},B:{"12":0.04862,"13":0.0152,"14":0.02127,"15":0.0547,"16":0.03039,"17":0.03343,"18":0.3039,"80":0.01216,"84":0.0152,"85":0.01216,"86":0.00912,"87":0.00608,"88":0.11244,"89":0.09421,"90":1.96623,"91":0.08205,_:"79 81 83"},P:{"4":0.86038,"5.0-5.4":0.01012,"6.2-6.4":0.01012,"7.2-7.4":0.51623,"8.2":0.02024,"9.2":0.04049,"10.1":0.03037,"11.1-11.2":0.23281,"12.0":0.07085,"13.0":0.35427,"14.0":1.95356},I:{"0":0,"3":0,"4":0.00118,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00166,"4.2-4.3":0.00426,"4.4":0,"4.4.3-4.4.4":0.11818},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01199,"11":0.49552,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.02088},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.2088},R:{_:"0"},M:{"0":0.0348},Q:{"10.4":0},O:{"0":0.68208},H:{"0":19.1155},L:{"0":50.07158}}; +module.exports={C:{"52":0.01312,"54":0.00328,"57":0.00328,"58":0.00328,"59":0.00328,"60":0.04922,"61":0.00328,"63":0.00984,"68":0.00656,"72":0.01641,"75":0.00656,"77":0.00656,"78":0.01312,"83":0.00984,"84":0.00328,"87":0.00656,"88":0.02297,"89":0.59058,"90":0.41341,"91":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 48 49 50 51 53 55 56 62 64 65 66 67 69 70 71 73 74 76 79 80 81 82 85 86 92 3.5 3.6"},D:{"29":0.00984,"40":0.00984,"43":0.00328,"46":0.00656,"49":0.00656,"51":0.00656,"53":0.00656,"57":0.00328,"60":0.00984,"64":0.00656,"65":0.03609,"66":0.00328,"67":0.01312,"68":0.00328,"69":0.00656,"70":0.06562,"74":0.07874,"76":0.00656,"78":0.00984,"79":0.00656,"80":0.01969,"81":0.06234,"83":0.02297,"84":0.01312,"85":0.00656,"86":0.01641,"87":0.41669,"88":0.03609,"89":0.06562,"90":0.2756,"91":9.67239,"92":3.58613,"93":0.03281,_:"4 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 41 42 44 45 47 48 50 52 54 55 56 58 59 61 62 63 71 72 73 75 77 94 95"},F:{"36":0.00656,"51":0.00656,"64":0.02297,"65":0.00328,"73":0.00656,"74":0.00656,"75":0.00656,"76":0.03281,"77":3.14976,_:"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 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0.00098,"6.0-6.1":0.00098,"7.0-7.1":0.01319,"8.1-8.4":0.00513,"9.0-9.2":0.00855,"9.3":0.02418,"10.0-10.2":0.00464,"10.3":0.01368,"11.0-11.2":0.0083,"11.3-11.4":0.01123,"12.0-12.1":0.00684,"12.2-12.4":0.23666,"13.0-13.1":0.01465,"13.2":0.00366,"13.3":0.04494,"13.4-13.7":0.12041,"14.0-14.4":0.43742,"14.5-14.7":1.25462},E:{"4":0,"12":0.00656,"13":0.00656,"14":0.17061,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 9.1","5.1":0.02297,"7.1":0.01312,"10.1":0.00656,"11.1":0.00328,"12.1":0.00656,"13.1":0.03937,"14.1":0.43965},B:{"12":0.03281,"13":0.02297,"14":0.01969,"15":0.02297,"16":0.04265,"17":0.02625,"18":0.11812,"80":0.01312,"81":0.00656,"84":0.01969,"85":0.01312,"86":0.00328,"87":0.00656,"88":0.02297,"89":0.01969,"90":0.01641,"91":1.50598,"92":0.81697,_:"79 83"},P:{"4":0.56703,"5.0-5.4":0.09067,"6.2-6.4":0.03038,"7.2-7.4":0.79992,"8.2":0.03022,"9.2":0.0405,"10.1":0.03038,"11.1-11.2":0.30377,"12.0":0.10126,"13.0":0.37465,"14.0":2.08587},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00245,"4.2-4.3":0.00326,"4.4":0,"4.4.3-4.4.4":0.08836},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.39044,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.04703},N:{"10":0.01143,"11":0.01864},L:{"0":49.66264},S:{"2.5":0.17469},R:{_:"0"},M:{"0":0.06719},Q:{"10.4":0},O:{"0":1.40427},H:{"0":17.73479}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js index 8fa09bb43a8d12..b643748459efea 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js @@ -1 +1 @@ -module.exports={C:{"52":0.01557,"70":0.01038,"78":0.01038,"87":0.05709,"88":0.9342,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 89 90 91 3.5 3.6"},D:{"49":0.07266,"52":0.01038,"53":0.25431,"58":0.00519,"67":0.02076,"74":0.29064,"76":0.13494,"77":0.1038,"79":0.08823,"80":0.03633,"81":0.16089,"83":0.02076,"84":0.00519,"85":0.01557,"86":0.00519,"87":0.0519,"88":0.22836,"89":0.80964,"90":24.66288,"91":0.45672,"92":0.26469,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 55 56 57 59 60 61 62 63 64 65 66 68 69 70 71 72 73 75 78 93 94"},F:{"73":0.03114,"75":0.08304,"76":0.20241,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01576,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.04729,"9.0-9.2":0,"9.3":0.11259,"10.0-10.2":0,"10.3":0.02027,"11.0-11.2":0,"11.3-11.4":0.02927,"12.0-12.1":0.01576,"12.2-12.4":0.96155,"13.0-13.1":0.02252,"13.2":0.02252,"13.3":0.04954,"13.4-13.7":0.40083,"14.0-14.4":17.09619,"14.5-14.6":3.23593},E:{"4":0,"13":0.15051,"14":6.0723,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 11.1","9.1":0.00519,"10.1":0.06747,"12.1":0.10899,"13.1":0.9342,"14.1":0.9342},B:{"15":0.01038,"17":0.01557,"18":0.21279,"80":0.01038,"84":0.01038,"86":0.38406,"88":0.01038,"89":0.20241,"90":9.43542,"91":0.21279,_:"12 13 14 16 79 81 83 85 87"},P:{"4":0.08563,"5.0-5.4":0.19323,"6.2-6.4":0.09153,"7.2-7.4":0.05352,"8.2":0.02034,"9.2":0.05352,"10.1":0.06423,"11.1-11.2":0.51381,"12.0":0.2034,"13.0":0.62085,"14.0":2.82593},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00506,"4.4":0,"4.4.3-4.4.4":0.09112},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.02076,"11":0.34773,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.07214},Q:{"10.4":0},O:{"0":0.01924},H:{"0":0.26862},L:{"0":24.57724}}; +module.exports={C:{"78":0.0344,"88":0.14742,"89":2.57985,"90":0.60442,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"49":0.06388,"65":0.06388,"74":0.84029,"75":0.00491,"76":0.13268,"77":0.00983,"79":0.19656,"81":0.04914,"83":0.00983,"85":0.00983,"86":0.00491,"87":0.10319,"89":0.12285,"90":0.20639,"91":19.59703,"92":2.88943,"93":0.36364,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 78 80 84 88 94 95"},F:{"73":0.00491,"76":0.16216,"77":0.70762,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0058,"8.1-8.4":0.02319,"9.0-9.2":0,"9.3":0.03478,"10.0-10.2":0,"10.3":0.16231,"11.0-11.2":0.09275,"11.3-11.4":0.04348,"12.0-12.1":0.03768,"12.2-12.4":0.75938,"13.0-13.1":0.04058,"13.2":0,"13.3":0.10724,"13.4-13.7":0.39128,"14.0-14.4":2.76508,"14.5-14.7":23.86547},E:{"4":0,"10":0.00983,"13":0.05405,"14":1.64619,"15":0.02948,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.16708,"11.1":0.05405,"12.1":0.43243,"13.1":0.85995,"14.1":6.13267},B:{"14":0.01474,"18":0.15725,"90":0.05405,"91":6.12776,"92":0.76167,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.07317,"5.0-5.4":0.06102,"6.2-6.4":0.04068,"7.2-7.4":0.0209,"8.2":0.01012,"9.2":0.03136,"10.1":0.08136,"11.1-11.2":0.38674,"12.0":0.04181,"13.0":0.0209,"14.0":3.59564},I:{"0":0,"3":0,"4":0.00076,"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.01958},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23587,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":19.80888},S:{"2.5":0},R:{_:"0"},M:{"0":0.27464},Q:{"10.4":0},O:{"0":0.01017},H:{"0":0.61633}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js index 57c0309fd9423d..84d6b0a25494c3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js @@ -1 +1 @@ -module.exports={C:{"17":0.0068,"19":0.00906,"25":0.00453,"26":0.00227,"30":0.00227,"35":0.00453,"44":0.00227,"47":0.0068,"48":0.00453,"49":0.00227,"55":0.00453,"57":0.00453,"60":0.02039,"66":0.00453,"68":0.00227,"72":0.00453,"76":0.00227,"78":0.01813,"82":0.00453,"83":0.00227,"84":0.00227,"86":0.01813,"87":0.03399,"88":1.03103,"89":0.0068,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 21 22 23 24 27 28 29 31 32 33 34 36 37 38 39 40 41 42 43 45 46 50 51 52 53 54 56 58 59 61 62 63 64 65 67 69 70 71 73 74 75 77 79 80 81 85 90 91 3.5 3.6"},D:{"23":0.02266,"24":0.02039,"32":0.01133,"33":0.00227,"37":0.01133,"40":0.00453,"50":0.01586,"55":0.04305,"57":0.00227,"58":0.0068,"59":0.00453,"60":0.00227,"63":0.00227,"68":0.14276,"70":0.00453,"71":0.00453,"72":0.00227,"74":0.01133,"75":0.00453,"76":0.0068,"77":0.01813,"79":0.0068,"80":0.02493,"81":0.03172,"83":0.09064,"84":0.04532,"85":0.0068,"86":0.61862,"87":0.00453,"88":0.15409,"89":1.21004,"90":6.02983,"91":0.11103,"92":0.0068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 29 30 31 34 35 36 38 39 41 42 43 44 45 46 47 48 49 51 52 53 54 56 61 62 64 65 66 67 69 73 78 93 94"},F:{"30":0.00227,"37":0.00453,"39":0.00227,"42":0.0136,"43":0.00227,"45":0.04532,"51":0.02493,"53":0.00453,"58":0.00227,"63":0.04305,"67":0.01813,"68":0.00227,"70":0.00906,"72":0.00227,"73":0.01813,"74":0.02039,"75":0.16315,"76":0.10424,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 38 40 41 44 46 47 48 49 50 52 54 55 56 57 60 62 64 65 66 69 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00043,"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.01751,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00726,"10.0-10.2":0,"10.3":0.12345,"11.0-11.2":0.10978,"11.3-11.4":0.07646,"12.0-12.1":0.0991,"12.2-12.4":0.32636,"13.0-13.1":0.02136,"13.2":0.0581,"13.3":0.07903,"13.4-13.7":0.2405,"14.0-14.4":2.41055,"14.5-14.6":0.27339},E:{"4":0,"10":0.01133,"13":0.0068,"14":0.06798,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 9.1 10.1 11.1","5.1":0.36709,"7.1":0.00453,"12.1":0.0136,"13.1":0.02946,"14.1":0.0136},B:{"12":0.02493,"13":0.0136,"14":0.04079,"15":0.0068,"16":0.14729,"17":0.0136,"18":0.04985,"85":0.01586,"87":0.00453,"89":0.04079,"90":1.28256,"91":0.08158,_:"79 80 81 83 84 86 88"},P:{"4":0.50748,"5.0-5.4":0.0406,"6.2-6.4":0.11165,"7.2-7.4":0.50748,"8.2":0.02053,"9.2":0.28419,"10.1":0.0406,"11.1-11.2":1.2078,"12.0":0.0812,"13.0":0.53793,"14.0":0.74092},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00133,"4.2-4.3":0.00928,"4.4":0,"4.4.3-4.4.4":0.19819},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":5.23446,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.35567},S:{"2.5":0.08506},R:{_:"0"},M:{"0":0.03093},Q:{"10.4":0.7733},O:{"0":1.09809},H:{"0":2.64292},L:{"0":68.96962}}; +module.exports={C:{"15":0.00249,"16":0.04228,"20":0.00995,"30":0.00497,"35":0.00249,"36":0.00995,"40":0.00249,"44":0.0199,"52":0.00249,"53":0.00746,"57":0.00746,"60":0.07461,"61":0.00746,"71":0.00249,"72":0.00746,"78":0.00497,"80":0.01492,"81":0.00249,"82":0.00249,"84":0.00249,"85":0.00746,"86":0.00249,"88":0.03482,"89":0.84807,"90":0.45015,"91":0.00497,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 19 21 22 23 24 25 26 27 28 29 31 32 33 34 37 38 39 41 42 43 45 46 47 48 49 50 51 54 55 56 58 59 62 63 64 65 66 67 68 69 70 73 74 75 76 77 79 83 87 92 3.5 3.6"},D:{"11":0.00995,"37":0.00746,"38":0.00249,"43":0.00995,"49":0.00497,"55":0.00249,"60":0.00249,"63":0.00497,"68":0.00746,"70":0.02984,"71":0.0199,"72":0.00995,"74":0.00995,"75":0.00995,"77":0.0199,"78":0.00249,"79":0.0199,"80":0.00746,"81":0.02487,"83":0.00497,"84":0.00746,"85":0.00249,"86":0.75605,"87":0.00746,"88":0.16912,"89":0.4974,"90":0.17906,"91":4.70043,"92":1.88266,_:"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 39 40 41 42 44 45 46 47 48 50 51 52 53 54 56 57 58 59 61 62 64 65 66 67 69 73 76 93 94 95"},F:{"28":0.01492,"29":0.00249,"33":0.00249,"36":0.00995,"38":0.00249,"40":0.00497,"42":0.00995,"43":0.00249,"45":0.02238,"46":0.00497,"47":0.00249,"48":0.00497,"51":0.0199,"63":0.00249,"64":0.01492,"65":0.0199,"68":0.00497,"73":0.00746,"74":0.02238,"75":0.01244,"76":0.05471,"77":0.2114,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 34 35 37 39 41 44 49 50 52 53 54 55 56 57 58 60 62 66 67 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00347,"7.0-7.1":0,"8.1-8.4":0.0005,"9.0-9.2":0.00248,"9.3":0.02481,"10.0-10.2":0.00943,"10.3":0.06747,"11.0-11.2":0.06598,"11.3-11.4":0.05557,"12.0-12.1":0.12056,"12.2-12.4":0.23218,"13.0-13.1":0.10468,"13.2":0.00645,"13.3":0.09922,"13.4-13.7":0.26642,"14.0-14.4":1.43676,"14.5-14.7":1.95173},E:{"4":0,"11":0.00746,"14":0.05223,"15":0.00995,_:"0 5 6 7 8 9 10 12 13 3.1 3.2 6.1 9.1 10.1","5.1":0.00746,"7.1":0.01244,"11.1":0.04974,"12.1":0.01741,"13.1":0.02984,"14.1":0.53719},B:{"12":0.02736,"13":0.00995,"14":0.03731,"15":0.00249,"16":0.08207,"17":0.01492,"18":0.04228,"84":0.00497,"85":0.01244,"87":0.00746,"89":0.01741,"90":0.669,"91":1.33303,"92":0.33575,_:"79 80 81 83 86 88"},P:{"4":0.3324,"5.0-5.4":0.07051,"6.2-6.4":0.1108,"7.2-7.4":0.35254,"8.2":0.01007,"9.2":0.78566,"10.1":0.06044,"11.1-11.2":0.63457,"12.0":0.06044,"13.0":0.31225,"14.0":1.34973},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00238,"4.4":0,"4.4.3-4.4.4":0.1028},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.10099,"9":0.02525,"11":5.5292,_:"6 7 10 5.5"},J:{"7":0,"10":0.02254},N:{"11":0.01319,_:"10"},L:{"0":66.01134},S:{"2.5":0.02254},R:{_:"0"},M:{"0":0.12772},Q:{"10.4":1.27721},O:{"0":1.24716},H:{"0":1.99159}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js index 6b83a80716dfb6..e8ef61d0b0b7b3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js @@ -1 +1 @@ -module.exports={C:{"21":0.00905,"30":0.00453,"32":0.00453,"39":0.00453,"40":0.00453,"41":0.00453,"43":0.02715,"45":0.00905,"47":0.0181,"48":0.00453,"50":0.00905,"51":0.0181,"52":0.04978,"56":0.02263,"60":0.04525,"62":0.00453,"65":0.00905,"68":0.01358,"69":0.00905,"71":0.02715,"72":0.07693,"73":0.02263,"74":0.00905,"75":0.00905,"76":0.00453,"77":0.02263,"78":0.1267,"79":0.01358,"80":0.01358,"81":0.26245,"82":0.06335,"83":0.02263,"84":0.0362,"85":0.0362,"86":0.08145,"87":0.11765,"88":8.06808,"89":0.11313,_:"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 31 33 34 35 36 37 38 42 44 46 49 53 54 55 57 58 59 61 63 64 66 67 70 90 91 3.5 3.6"},D:{"29":0.01358,"33":0.01358,"38":0.07693,"42":0.00453,"43":0.04525,"44":0.00453,"47":0.00905,"49":0.05883,"50":0.00905,"53":0.00453,"55":0.01358,"58":0.00453,"62":0.05883,"63":0.00453,"65":0.0181,"67":0.00453,"68":0.00905,"70":0.00905,"72":0.10408,"73":0.04525,"74":0.0362,"75":0.02715,"76":0.02715,"77":0.0362,"78":0.03168,"79":0.1629,"80":0.04978,"81":0.0543,"83":0.0362,"84":0.1448,"85":0.08598,"86":0.24435,"87":0.91405,"88":0.31675,"89":0.44345,"90":17.51628,"91":0.7421,"92":0.0181,_:"4 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 34 35 36 37 39 40 41 45 46 48 51 52 54 56 57 59 60 61 64 66 69 71 93 94"},F:{"12":0.00453,"64":0.00453,"65":0.00453,"71":0.01358,"72":0.00453,"73":0.04978,"74":0.00905,"75":0.6335,"76":1.54755,_:"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 66 67 68 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00265,"3.2":0,"4.0-4.1":0.00106,"4.2-4.3":0,"5.0-5.1":0.00265,"6.0-6.1":0.07792,"7.0-7.1":0.12722,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.27087,"10.0-10.2":0.05354,"10.3":0.60747,"11.0-11.2":0.10177,"11.3-11.4":0.01484,"12.0-12.1":0.01007,"12.2-12.4":0.16167,"13.0-13.1":0.01378,"13.2":0.14365,"13.3":0.01961,"13.4-13.7":0.14789,"14.0-14.4":2.15053,"14.5-14.6":0.79035},E:{"4":0,"10":0.00905,"13":0.00453,"14":0.14028,_:"0 5 6 7 8 9 11 12 3.1 3.2 9.1 10.1 11.1","5.1":0.27603,"6.1":0.00453,"7.1":0.00905,"12.1":0.00905,"13.1":0.05883,"14.1":0.13123},B:{"12":0.02715,"15":0.02715,"17":0.01358,"18":0.1629,"84":0.0181,"85":0.02263,"87":0.00905,"88":0.02263,"89":0.0543,"90":2.58378,"91":0.12218,_:"13 14 16 79 80 81 83 86"},P:{"4":0.08407,"5.0-5.4":0.02039,"6.2-6.4":0.06118,"7.2-7.4":0.01051,"8.2":0.02039,"9.2":0.01051,"10.1":0.10197,"11.1-11.2":0.01051,"12.0":0.01051,"13.0":0.09458,"14.0":1.08237},I:{"0":0,"3":0,"4":0.00201,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00717,"4.2-4.3":0.01636,"4.4":0,"4.4.3-4.4.4":0.11134},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01625,"9":0.04875,"11":0.29248,_:"7 8 10 5.5"},J:{"7":0,"10":0.1095},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.01095},R:{_:"0"},M:{"0":0.38873},Q:{"10.4":0.03285},O:{"0":0.79388},H:{"0":2.84567},L:{"0":51.78335}}; +module.exports={C:{"21":0.00894,"40":0.00447,"41":0.00894,"42":0.01341,"43":0.01788,"45":0.00447,"47":0.02236,"50":0.01341,"52":0.14307,"56":0.02236,"60":0.00894,"61":0.00447,"66":0.05365,"68":0.01341,"71":0.02236,"72":0.11178,"73":0.01788,"74":0.00447,"75":0.00894,"76":0.00447,"77":0.07154,"78":0.10283,"79":0.00894,"80":0.06707,"81":0.26379,"82":0.06707,"83":0.01341,"84":0.01341,"85":0.01788,"86":0.0313,"87":0.01341,"88":0.53652,"89":4.11779,"90":1.81523,"91":0.08942,_:"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 32 33 34 35 36 37 38 39 44 46 48 49 51 53 54 55 57 58 59 62 63 64 65 67 69 70 92 3.5 3.6"},D:{"19":0.00894,"26":0.01341,"31":0.00447,"33":0.02236,"36":0.01341,"38":0.05812,"39":0.00894,"42":0.01341,"43":0.03577,"46":0.01788,"47":0.00894,"49":0.04918,"50":0.01341,"53":0.01788,"55":0.00447,"58":0.01788,"62":0.01788,"63":0.01341,"64":0.00894,"65":0.03577,"68":0.00894,"69":0.00894,"70":0.01788,"72":0.04471,"73":0.01788,"74":0.02236,"75":0.02236,"76":0.02683,"77":0.00894,"78":0.06707,"79":0.11178,"80":0.04471,"81":0.02683,"83":0.01788,"84":0.04024,"85":0.06259,"86":0.18331,"87":0.35768,"88":0.09389,"89":0.20567,"90":1.10434,"91":15.90335,"92":3.50526,"93":0.02236,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 27 28 29 30 32 34 35 37 40 41 44 45 48 51 52 54 56 57 59 60 61 66 67 71 94 95"},F:{"36":0.01341,"72":0.00447,"73":0.00447,"74":0.00447,"75":0.01341,"76":0.07154,"77":1.85099,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0.00265,"4.2-4.3":0,"5.0-5.1":0.01679,"6.0-6.1":0.01369,"7.0-7.1":0.12016,"8.1-8.4":0.00044,"9.0-9.2":0.00353,"9.3":0.10558,"10.0-10.2":0.00177,"10.3":0.07907,"11.0-11.2":0.0804,"11.3-11.4":0.00707,"12.0-12.1":0.01546,"12.2-12.4":0.06582,"13.0-13.1":0.01104,"13.2":0.00177,"13.3":0.04417,"13.4-13.7":0.2487,"14.0-14.4":0.70945,"14.5-14.7":2.40355},E:{"4":0,"11":0.00447,"13":0.00894,"14":0.05812,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0313,"11.1":0.00894,"12.1":0.00894,"13.1":0.04471,"14.1":0.28614},B:{"12":0.02236,"13":0.02236,"14":0.00447,"15":0.01788,"17":0.01341,"18":0.19225,"83":0.00894,"84":0.02683,"85":0.00894,"86":0.00447,"89":0.04471,"90":0.02236,"91":2.49482,"92":0.51417,_:"16 79 80 81 87 88"},P:{"4":0.08898,"5.0-5.4":0.02225,"6.2-6.4":0.062,"7.2-7.4":0.01112,"8.2":0.031,"9.2":0.01112,"10.1":0.08266,"11.1-11.2":0.06674,"12.0":0.02225,"13.0":0.04449,"14.0":0.67851},I:{"0":0,"3":0,"4":0.0036,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01595,"4.2-4.3":0.03448,"4.4":0,"4.4.3-4.4.4":0.20583},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.03449,"11":0.32766,_:"7 8 9 10 5.5"},J:{"7":0,"10":0.03317},N:{"10":0.01143,"11":0.01864},L:{"0":52.97137},S:{"2.5":0.01659},R:{_:"0"},M:{"0":0.14928},Q:{"10.4":0.03317},O:{"0":0.65795},H:{"0":3.72696}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js index 6751eda8e8b259..0908d24f0c0313 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js @@ -1 +1 @@ -module.exports={C:{"4":0.00366,"15":0.06588,"17":0.00732,"48":0.00366,"51":0.00366,"52":0.02928,"53":0.00732,"54":0.00732,"55":0.04026,"56":0.1464,"58":0.00732,"72":0.00366,"78":0.02196,"82":0.00366,"84":0.00732,"85":0.00366,"86":0.00732,"87":0.0183,"88":1.098,"89":0.01464,_:"2 3 5 6 7 8 9 10 11 12 13 14 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 57 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 83 90 91 3.5 3.6"},D:{"24":0.00732,"38":0.01098,"43":0.0183,"46":0.00366,"47":0.00732,"48":0.00366,"49":0.15372,"51":0.00366,"53":0.02928,"54":0.00366,"55":0.00732,"56":0.01098,"57":0.00732,"58":0.01464,"59":0.00366,"60":0.00366,"61":0.02196,"62":0.00366,"63":0.01098,"64":0.00366,"65":0.00732,"66":0.01098,"67":0.00732,"68":0.01098,"69":0.01098,"70":0.01098,"71":0.01098,"72":0.00732,"73":0.01098,"74":0.0183,"75":0.02928,"76":0.0183,"77":0.01098,"78":0.0183,"79":0.03294,"80":0.02928,"81":0.02196,"83":0.06588,"84":0.0366,"85":0.03294,"86":0.08784,"87":0.19398,"88":0.0915,"89":0.37698,"90":23.03238,"91":0.66246,"92":0.02562,_:"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 44 45 50 52 93 94"},F:{"46":0.00366,"73":0.0183,"75":0.1098,"76":0.15738,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00496,"6.0-6.1":0.00662,"7.0-7.1":0.00992,"8.1-8.4":0.00496,"9.0-9.2":0.00496,"9.3":0.08435,"10.0-10.2":0.01819,"10.3":0.09923,"11.0-11.2":0.03473,"11.3-11.4":0.06119,"12.0-12.1":0.06119,"12.2-12.4":0.26296,"13.0-13.1":0.0645,"13.2":0.02646,"13.3":0.15877,"13.4-13.7":0.51599,"14.0-14.4":11.26256,"14.5-14.6":2.98846},E:{"4":0,"12":0.00732,"13":0.05856,"14":2.25822,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00732,"11.1":0.0183,"12.1":0.0366,"13.1":0.20496,"14.1":0.61854},B:{"14":0.00366,"15":0.00732,"16":0.00366,"17":0.01098,"18":0.0366,"84":0.00732,"85":0.00732,"86":0.00732,"87":0.00732,"88":0.00732,"89":0.03294,"90":1.86294,"91":0.06954,_:"12 13 79 80 81 83"},P:{"4":0.14458,"5.0-5.4":0.04174,"6.2-6.4":0.01043,"7.2-7.4":0.10327,"8.2":0.01033,"9.2":0.08262,"10.1":0.04131,"11.1-11.2":0.24786,"12.0":0.10327,"13.0":0.43375,"14.0":2.23071},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00086,"4.2-4.3":0.00301,"4.4":0,"4.4.3-4.4.4":0.02149},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01173,"9":0.00782,"10":0.00782,"11":0.37156,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.09509},Q:{"10.4":0},O:{"0":0.30427},H:{"0":0.23405},L:{"0":47.19403}}; +module.exports={C:{"51":0.00405,"52":0.03238,"53":0.00405,"54":0.00809,"55":0.04452,"56":0.15783,"58":0.00809,"68":0.00405,"72":0.00405,"78":0.01619,"79":0.00809,"84":0.00405,"87":0.00405,"88":0.02833,"89":0.80535,"90":0.39256,"91":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 57 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 80 81 82 83 85 86 92 3.5 3.6"},D:{"38":0.00809,"43":0.01214,"49":0.14569,"53":0.00809,"56":0.01214,"57":0.00405,"58":0.01214,"61":0.02833,"63":0.01214,"65":0.00405,"66":0.01214,"67":0.00809,"68":0.00405,"69":0.01214,"70":0.01214,"71":0.01214,"72":0.00809,"73":0.01214,"74":0.01619,"75":0.02833,"76":0.02428,"77":0.01214,"78":0.01619,"79":0.04856,"80":0.04047,"81":0.02024,"83":0.05261,"84":0.04452,"85":0.03642,"86":0.12546,"87":0.14165,"88":0.0688,"89":0.10522,"90":0.23473,"91":22.69558,"92":3.46423,"93":0.02428,_:"4 5 6 7 8 9 10 11 12 13 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 54 55 59 60 62 64 94 95"},F:{"76":0.05666,"77":0.28734,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00332,"6.0-6.1":0.00663,"7.0-7.1":0.01161,"8.1-8.4":0.00829,"9.0-9.2":0.00663,"9.3":0.09288,"10.0-10.2":0.01493,"10.3":0.09288,"11.0-11.2":0.03151,"11.3-11.4":0.04644,"12.0-12.1":0.0481,"12.2-12.4":0.19902,"13.0-13.1":0.05473,"13.2":0.02156,"13.3":0.14263,"13.4-13.7":0.40136,"14.0-14.4":2.71166,"14.5-14.7":11.89317},E:{"4":0,"12":0.00405,"13":0.04856,"14":0.53825,"15":0.01214,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00809,"11.1":0.01619,"12.1":0.03238,"13.1":0.18212,"14.1":2.73173},B:{"15":0.00405,"16":0.00405,"17":0.00809,"18":0.03642,"84":0.00809,"85":0.00405,"86":0.00405,"87":0.00405,"88":0.00809,"89":0.02024,"90":0.01619,"91":1.93042,"92":0.36828,_:"12 13 14 79 80 81 83"},P:{"4":0.07374,"5.0-5.4":0.03147,"6.2-6.4":0.21209,"7.2-7.4":0.0948,"8.2":0.0303,"9.2":0.05267,"10.1":0.0316,"11.1-11.2":0.18961,"12.0":0.07374,"13.0":0.20014,"14.0":2.25424},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.00501,"4.4":0,"4.4.3-4.4.4":0.02945},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0173,"9":0.01297,"10":0.00865,"11":0.4022,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":44.32662},S:{"2.5":0},R:{_:"0"},M:{"0":0.0893},Q:{"10.4":0.00595},O:{"0":0.25003},H:{"0":0.20853}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js index 78728ac768d459..e3c63074538c71 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js @@ -1 +1 @@ -module.exports={C:{"30":0.00764,"35":0.00764,"36":0.00764,"40":0.00764,"52":0.05348,"68":0.02674,"69":0.00764,"70":0.00764,"77":0.00764,"78":0.03438,"79":0.00382,"80":0.00382,"81":0.00764,"85":0.00764,"87":0.01146,"88":0.90152,_:"2 3 4 5 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 37 38 39 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 71 72 73 74 75 76 82 83 84 86 89 90 91 3.5 3.6"},D:{"28":0.00764,"31":0.00382,"35":0.00764,"44":0.07258,"47":0.00764,"48":0.22156,"49":0.30942,"53":0.00382,"54":0.00382,"63":0.01146,"64":0.03056,"68":0.01528,"69":0.0382,"70":0.02674,"71":0.01146,"72":0.00764,"73":0.01146,"74":0.0191,"75":0.00382,"76":0.00764,"78":0.03438,"79":0.13752,"80":0.04202,"81":0.02292,"83":0.58828,"84":0.16426,"85":0.13752,"86":0.3438,"87":2.57468,"88":0.21392,"89":1.2033,"90":17.381,"91":0.69524,"92":0.01146,_:"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 32 33 34 36 37 38 39 40 41 42 43 45 46 50 51 52 55 56 57 58 59 60 61 62 65 66 67 77 93 94"},F:{"32":0.00382,"36":0.0382,"60":0.00382,"63":0.01146,"66":0.01146,"68":0.06494,"72":0.0955,"73":0.07258,"74":0.01528,"75":0.96264,"76":1.24914,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 64 65 67 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01528},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00229,"6.0-6.1":0.00974,"7.0-7.1":0.04528,"8.1-8.4":0.01204,"9.0-9.2":0.0063,"9.3":0.08998,"10.0-10.2":0.01719,"10.3":0.10717,"11.0-11.2":0.0384,"11.3-11.4":0.05903,"12.0-12.1":0.18627,"12.2-12.4":0.42526,"13.0-13.1":0.10259,"13.2":0.04872,"13.3":0.17308,"13.4-13.7":0.2837,"14.0-14.4":2.73611,"14.5-14.6":1.05111},E:{"4":0,"13":0.01528,"14":0.33234,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":2.74276,"11.1":0.02292,"12.1":0.01146,"13.1":0.1146,"14.1":0.29032},B:{"12":0.00764,"14":0.00764,"15":0.00764,"17":0.01146,"18":0.09168,"84":0.00764,"89":0.05348,"90":0.53098,"91":0.03438,_:"13 16 79 80 81 83 85 86 87 88"},P:{"4":1.27938,"5.0-5.4":0.13096,"6.2-6.4":0.13096,"7.2-7.4":0.47347,"8.2":0.0403,"9.2":0.20148,"10.1":0.09066,"11.1-11.2":0.38281,"12.0":0.17125,"13.0":0.63465,"14.0":0.71524},I:{"0":0,"3":0,"4":0.00041,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00411,"4.2-4.3":0.00596,"4.4":0,"4.4.3-4.4.4":0.06985},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01175,"9":0.01762,"11":0.3641,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.0309},Q:{"10.4":0.21009},O:{"0":4.72076},H:{"0":2.299},L:{"0":45.89854}}; +module.exports={C:{"4":0.00419,"5":0.00838,"15":0.00419,"17":0.00838,"28":0.00419,"35":0.00419,"51":0.00419,"52":0.09214,"57":0.00419,"68":0.00838,"75":0.01256,"77":0.00419,"78":0.03769,"79":0.01675,"80":0.00838,"81":0.00419,"82":0.01256,"83":0.00838,"84":0.01256,"87":0.00419,"88":0.1382,"89":0.74128,"90":0.40624,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 76 85 86 91 92 3.5 3.6"},D:{"23":0.02094,"24":0.0335,"28":0.05026,"31":0.00419,"38":0.00419,"40":0.00419,"44":0.03769,"49":0.44393,"55":0.00419,"56":0.00838,"59":0.01675,"62":0.01256,"63":0.00419,"64":0.01256,"65":0.00419,"68":0.01675,"69":0.02094,"70":0.00419,"71":0.02932,"73":0.00419,"74":0.01256,"75":0.00419,"76":0.00419,"77":0.00838,"78":0.20521,"79":0.23034,"80":0.05026,"81":0.04607,"83":0.02094,"84":0.40205,"85":0.38111,"86":0.58213,"87":3.1075,"88":0.33085,"89":0.26803,"90":0.55282,"91":17.53516,"92":4.14193,"94":0.00419,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 26 27 29 30 32 33 34 35 36 37 39 41 42 43 45 46 47 48 50 51 52 53 54 57 58 60 61 66 67 72 93 95"},F:{"36":0.00419,"64":0.00419,"68":0.13402,"75":0.01675,"76":0.21778,"77":1.58306,_:"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 65 66 67 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00414,"6.0-6.1":0.00296,"7.0-7.1":0.01064,"8.1-8.4":0.00473,"9.0-9.2":0.013,"9.3":0.07683,"10.0-10.2":0.03132,"10.3":0.07329,"11.0-11.2":0.03192,"11.3-11.4":0.03251,"12.0-12.1":0.28783,"12.2-12.4":0.36821,"13.0-13.1":0.02364,"13.2":0.03251,"13.3":0.11111,"13.4-13.7":0.46277,"14.0-14.4":1.34576,"14.5-14.7":2.69447},E:{"4":0,"10":0.00419,"11":0.00419,"13":0.0712,"14":0.17171,"15":0.00838,_:"0 5 6 7 8 9 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.12657,"11.1":0.02513,"12.1":0.02094,"13.1":0.16333,"14.1":0.79153},B:{"12":0.00838,"13":0.00838,"14":0.01256,"16":0.00419,"17":0.01256,"18":0.09632,"80":0.00419,"81":0.00838,"83":0.00838,"84":0.01675,"85":0.01256,"86":0.00419,"87":0.00838,"89":0.01675,"90":0.01256,"91":0.59888,"92":0.47324,_:"15 79 88"},P:{"4":1.15134,"5.0-5.4":0.16159,"6.2-6.4":0.21209,"7.2-7.4":0.29288,"8.2":0.0303,"9.2":0.86855,"10.1":0.0505,"11.1-11.2":0.33328,"12.0":0.18179,"13.0":0.25249,"14.0":1.09074},I:{"0":0,"3":0,"4":0.00013,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00175,"4.2-4.3":0.00552,"4.4":0,"4.4.3-4.4.4":0.03908},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03433,"9":0.05149,"10":0.01716,"11":0.53778,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":43.07397},S:{"2.5":0},R:{_:"0"},M:{"0":0.03487},Q:{"10.4":0.02906},O:{"0":2.57427},H:{"0":2.9708}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js index f65d04ff08674e..e5a7494d98037e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js @@ -1 +1 @@ -module.exports={C:{"88":5.68008,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 3.5 3.6"},D:{"81":4.54503,"89":1.13505,"90":9.09006,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 87 88 91 92 93 94"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":1.21622,"14.0-14.4":1.82433,"14.5-14.6":0},E:{"4":0,"10":1.13505,_:"0 5 6 7 8 9 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 14.1","12.1":1.70499},B:{"17":3.40998,"85":0.56994,"90":11.93493,"91":1.70499,_:"12 13 14 15 16 18 79 80 81 83 84 86 87 88 89"},P:{"4":0.08407,"5.0-5.4":0.02039,"6.2-6.4":0.06118,"7.2-7.4":0.01051,"8.2":0.02039,"9.2":0.01051,"10.1":0.10197,"11.1-11.2":0.60759,"12.0":0.01051,"13.0":0.60759,"14.0":1.08237},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.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":49.72403}}; +module.exports={C:{"90":5.88229,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"58":1.17714,"74":0.39238,"81":7.45181,"89":4.31277,"90":0.39238,"91":6.66705,"92":0.39238,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 83 84 85 86 87 88 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":2.64245,"13.0-13.1":0,"13.2":0,"13.3":0.18875,"13.4-13.7":0,"14.0-14.4":0.18875,"14.5-14.7":0.75498},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"},B:{"87":2.35428,"89":0.39238,"91":4.70515,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 88 90 92"},P:{"4":0.08898,"5.0-5.4":0.02225,"6.2-6.4":0.062,"7.2-7.4":0.01112,"8.2":0.031,"9.2":0.01112,"10.1":0.08266,"11.1-11.2":0.06674,"12.0":0.02225,"13.0":0.04449,"14.0":3.77492},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.01143,"11":0.01864},L:{"0":58.33015},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js index 2e7ef857ebb078..47e4414ee45ec5 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js @@ -1 +1 @@ -module.exports={C:{"5":0.01833,"7":0.00524,"8":0.00524,"12":0.00524,"15":0.00786,"16":0.01571,"17":0.03667,"18":0.00262,"19":0.01048,"20":0.00524,"21":0.01048,"27":0.00262,"29":0.01571,"30":0.00524,"31":0.01571,"35":0.01048,"36":0.00524,"37":0.00786,"40":0.02357,"41":0.03143,"43":0.01833,"44":0.00262,"45":0.00786,"46":0.00786,"47":0.05238,"48":0.01571,"49":0.01571,"52":0.00786,"56":0.01048,"57":0.00524,"58":0.00262,"67":0.00524,"68":0.00524,"69":0.00786,"72":0.0131,"74":0.0131,"75":0.00524,"76":0.00262,"77":0.00786,"78":0.06809,"79":0.24881,"80":0.00524,"81":0.01048,"83":0.00786,"84":0.03143,"85":0.055,"86":0.07333,"87":0.12571,"88":3.69279,"89":0.48975,_:"2 3 4 6 9 10 11 13 14 22 23 24 25 26 28 32 33 34 38 39 42 50 51 53 54 55 59 60 61 62 63 64 65 66 70 71 73 82 90 91 3.5 3.6"},D:{"24":0.01048,"25":0.02357,"31":0.02095,"32":0.00524,"38":0.00524,"40":0.02619,"43":0.04714,"49":0.05762,"53":0.00786,"58":0.0131,"59":0.00262,"62":0.00524,"63":0.02881,"64":0.01571,"65":0.05238,"66":0.00524,"67":0.00524,"68":0.00786,"69":0.00524,"70":0.00786,"71":0.0131,"74":0.01048,"75":0.00262,"76":0.00786,"79":0.02619,"80":0.03667,"81":0.02619,"83":0.01048,"84":0.36142,"85":0.10738,"86":0.04452,"87":0.44261,"88":0.11262,"89":0.42952,"90":11.97669,"91":0.51856,"92":0.00524,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 33 34 35 36 37 39 41 42 44 45 46 47 48 50 51 52 54 55 56 57 60 61 72 73 77 78 93 94"},F:{"37":0.00262,"56":0.01833,"73":0.01048,"74":0.01571,"75":0.17547,"76":0.25928,_:"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 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00108,"5.0-5.1":0,"6.0-6.1":0.00359,"7.0-7.1":0.01757,"8.1-8.4":0.00287,"9.0-9.2":0.01399,"9.3":0.0789,"10.0-10.2":0.03156,"10.3":0.08643,"11.0-11.2":0.06456,"11.3-11.4":0.09648,"12.0-12.1":0.11764,"12.2-12.4":0.31023,"13.0-13.1":0.14274,"13.2":0.02331,"13.3":0.24639,"13.4-13.7":0.31274,"14.0-14.4":1.50953,"14.5-14.6":0.15852},E:{"4":0,"8":0.00786,"11":0.00524,"12":0.03667,"13":0.02619,"14":0.12047,_:"0 5 6 7 9 10 3.1 3.2 7.1","5.1":0.01571,"6.1":0.03667,"9.1":0.00786,"10.1":0.01571,"11.1":0.00786,"12.1":0.03405,"13.1":0.23571,"14.1":0.03143},B:{"12":0.01571,"13":0.00786,"14":0.00262,"15":0.01048,"16":0.0131,"17":0.01833,"18":0.13619,"80":0.01048,"81":0.00262,"84":0.0131,"85":0.00524,"86":0.07333,"87":0.00524,"88":0.00786,"89":0.0969,"90":1.3514,"91":0.05762,_:"79 83"},P:{"4":1.59075,"5.0-5.4":0.02039,"6.2-6.4":0.06118,"7.2-7.4":0.3569,"8.2":0.02039,"9.2":0.26513,"10.1":0.10197,"11.1-11.2":0.28552,"12.0":0.06118,"13.0":0.27532,"14.0":0.27532},I:{"0":0,"3":0,"4":0.00147,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00294,"4.2-4.3":0.00245,"4.4":0,"4.4.3-4.4.4":0.03744},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01006,"11":0.94587,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.05167},Q:{"10.4":0.01476},O:{"0":0.5831},H:{"0":3.26333},L:{"0":65.39918}}; +module.exports={C:{"3":0.00285,"7":0.0057,"19":0.00285,"20":0.0057,"21":0.10253,"27":0.00285,"29":0.01139,"30":0.0057,"32":0.00285,"34":0.00285,"35":0.0057,"36":0.00285,"37":0.00854,"38":0.0057,"39":0.0057,"40":0.00854,"41":0.08829,"43":0.03133,"44":0.01424,"45":0.00854,"46":0.01424,"47":0.05696,"48":0.03987,"49":0.0057,"52":0.01139,"56":0.00854,"57":0.03133,"58":0.02278,"61":0.00285,"64":0.0057,"65":0.01139,"66":0.04842,"67":0.01994,"68":0.0057,"69":0.01994,"70":0.02278,"71":0.0057,"72":0.05696,"74":0.0057,"75":0.00854,"77":0.01424,"78":0.15664,"79":0.35885,"80":0.00854,"81":0.02278,"82":0.01139,"84":0.02848,"85":0.03133,"86":0.01709,"87":0.0057,"88":0.19366,"89":2.99894,"90":1.69456,"91":0.33037,_:"2 4 5 6 8 9 10 11 12 13 14 15 16 17 18 22 23 24 25 26 28 31 33 42 50 51 53 54 55 59 60 62 63 73 76 83 92 3.5 3.6"},D:{"29":0.0057,"31":0.01424,"32":0.0057,"33":0.0057,"40":0.02278,"42":0.00854,"43":0.02848,"46":0.00285,"47":0.01139,"48":0.0057,"49":0.04272,"53":0.0057,"55":0.0712,"56":0.00285,"58":0.02278,"59":0.01139,"61":0.00285,"62":0.01994,"63":0.03702,"64":0.01424,"65":0.01709,"66":0.00854,"67":0.02278,"68":0.01139,"69":0.02278,"70":0.00854,"71":0.0057,"72":0.01139,"73":0.00285,"74":0.00854,"75":0.00285,"76":0.00854,"78":0.00854,"79":0.02563,"80":0.02563,"83":0.01424,"84":0.11677,"85":0.01424,"86":0.06835,"87":0.32182,"88":0.07974,"89":0.11677,"90":0.2193,"91":10.93632,"92":2.22714,_:"4 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 34 35 36 37 38 39 41 44 45 50 51 52 54 57 60 77 81 93 94 95"},F:{"37":0.01139,"56":0.00854,"74":0.00285,"75":0.10253,"76":0.0057,"77":0.38448,_:"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 53 54 55 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0389,"5.0-5.1":0,"6.0-6.1":0.00027,"7.0-7.1":0.00164,"8.1-8.4":0,"9.0-9.2":0.00384,"9.3":0.03671,"10.0-10.2":0.02904,"10.3":0.07945,"11.0-11.2":0.02521,"11.3-11.4":0.07507,"12.0-12.1":0.10959,"12.2-12.4":0.28575,"13.0-13.1":0.08466,"13.2":0.03945,"13.3":0.17945,"13.4-13.7":0.19205,"14.0-14.4":0.74795,"14.5-14.7":0.61671},E:{"4":0,"8":0.02563,"11":0.0057,"12":0.01709,"13":0.00285,"14":0.16803,_:"0 5 6 7 9 10 15 3.1 3.2 5.1 7.1","6.1":0.28765,"9.1":0.0057,"10.1":0.03987,"11.1":0.01709,"12.1":0.00854,"13.1":0.23923,"14.1":0.11677},B:{"12":0.03702,"13":0.01139,"14":0.01994,"15":0.02563,"16":0.01424,"17":0.01994,"18":0.12816,"80":0.00285,"84":0.0057,"85":0.00285,"86":0.01139,"88":0.0057,"89":0.11107,"90":0.05411,"91":1.38698,"92":0.30189,_:"79 81 83 87"},P:{"4":0.73364,"5.0-5.4":0.031,"6.2-6.4":0.062,"7.2-7.4":0.23766,"8.2":0.031,"9.2":0.11366,"10.1":0.08266,"11.1-11.2":0.21699,"12.0":0.05167,"13.0":0.124,"14.0":0.47532},I:{"0":0,"3":0,"4":0.00043,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00217,"4.2-4.3":0.00433,"4.4":0,"4.4.3-4.4.4":0.06458},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.93699,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":63.81384},S:{"2.5":0},R:{_:"0"},M:{"0":0.02145},Q:{"10.4":0.06436},O:{"0":0.49342},H:{"0":4.43442}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js index 1a655b0fc3bcc7..20d8f88002075f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js @@ -1 +1 @@ -module.exports={C:{"15":0.01474,"43":0.01474,"45":0.00737,"48":0.00737,"51":0.00368,"52":0.01842,"59":0.04421,"63":0.01842,"64":0.01842,"65":0.06263,"68":0.0921,"69":0.00368,"70":0.01105,"72":0.07368,"73":0.00368,"75":0.07,"76":0.00737,"77":0.01842,"78":0.01105,"81":0.01474,"84":0.02579,"86":0.02947,"87":0.02579,"88":0.31314,_:"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 34 35 36 37 38 39 40 41 42 44 46 47 49 50 53 54 55 56 57 58 60 61 62 66 67 71 74 79 80 82 83 85 89 90 91 3.5 3.6"},D:{"11":0.05158,"18":0.01105,"23":0.00368,"29":0.00737,"31":0.0221,"35":0.01105,"39":0.00737,"47":0.00368,"48":0.01105,"49":0.0921,"50":0.01105,"52":0.07,"54":0.01105,"55":0.09578,"56":0.02947,"57":0.01105,"59":0.00368,"62":0.04789,"63":0.00737,"64":0.00737,"67":0.00368,"68":0.00737,"69":0.01105,"70":0.01842,"71":0.29104,"73":0.01842,"74":0.03684,"75":0.00737,"76":0.01842,"78":0.03316,"79":0.10315,"80":0.10684,"81":0.05158,"83":0.0921,"84":0.02579,"85":0.04421,"86":0.48997,"87":0.30946,"88":0.53786,"89":0.55628,"90":20.27674,"91":1.16046,"92":0.06263,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 24 25 26 27 28 30 32 33 34 36 37 38 40 41 42 43 44 45 46 51 53 58 60 61 65 66 72 77 93 94"},F:{"18":0.01474,"34":0.00368,"36":0.04421,"37":0.03316,"44":0.01842,"45":0.00737,"47":0.00368,"49":0.00737,"50":0.00368,"51":0.00368,"53":0.01474,"54":0.00368,"58":0.00737,"64":0.01105,"69":0.01842,"72":0.00737,"73":0.07368,"74":0.10684,"75":0.22841,"76":0.22104,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 42 43 46 48 52 55 56 57 60 62 63 65 66 67 68 70 71 9.5-9.6 10.5 10.6 11.1 11.5","10.0-10.1":0,"11.6":0.01105,"12.1":0.00737},G:{"8":0.00094,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.25537,"6.0-6.1":0.03795,"7.0-7.1":0.24319,"8.1-8.4":0.10543,"9.0-9.2":0.07966,"9.3":0.2446,"10.0-10.2":0.04826,"10.3":0.2221,"11.0-11.2":0.11714,"11.3-11.4":0.27505,"12.0-12.1":0.08481,"12.2-12.4":0.28349,"13.0-13.1":0.06794,"13.2":0.0239,"13.3":0.04967,"13.4-13.7":0.27458,"14.0-14.4":1.07023,"14.5-14.6":0.45686},E:{"4":0,"13":0.02947,"14":0.1621,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00368,"10.1":0.01105,"11.1":0.01105,"12.1":0.01842,"13.1":0.01105,"14.1":0.03316},B:{"13":0.01842,"15":0.0221,"16":0.00737,"18":0.03316,"88":0.00368,"89":0.03316,"90":0.32051,"91":0.01842,_:"12 14 17 79 80 81 83 84 85 86 87"},P:{"4":2.89843,"5.0-5.4":0.19323,"6.2-6.4":0.09153,"7.2-7.4":0.85428,"8.2":0.02034,"9.2":0.35595,"10.1":0.09153,"11.1-11.2":0.32544,"12.0":0.2034,"13.0":1.58651,"14.0":3.16285},I:{"0":0,"3":0,"4":0.00264,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02769,"4.2-4.3":0.14414,"4.4":0,"4.4.3-4.4.4":0.6403},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.02437,"10":0.00406,"11":2.07514,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.05053},Q:{"10.4":0},O:{"0":1.47794},H:{"0":0.31692},L:{"0":49.67711}}; +module.exports={C:{"4":0.0199,"12":0.02387,"21":0.03581,"42":0.04775,"46":0.0199,"48":0.00796,"49":0.00398,"51":0.03979,"52":0.0199,"53":0.02387,"55":0.00796,"59":0.02785,"62":0.03581,"68":0.00398,"70":0.00796,"72":0.03581,"78":0.00398,"79":0.00796,"84":0.02785,"85":0.00796,"86":0.27057,"88":0.07958,"89":0.08754,"90":0.05969,_:"2 3 5 6 7 8 9 10 11 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 43 44 45 47 50 54 56 57 58 60 61 63 64 65 66 67 69 71 73 74 75 76 77 80 81 82 83 87 91 92 3.5 3.6"},D:{"11":0.00398,"23":0.00796,"28":0.00398,"31":0.00398,"33":0.00398,"34":0.01194,"37":0.13131,"39":0.0199,"40":0.05571,"41":0.00796,"42":0.00398,"43":0.01592,"44":0.01194,"45":0.05571,"47":0.01194,"48":0.13529,"49":0.07162,"52":0.0955,"54":0.03183,"55":0.03183,"57":0.00796,"60":0.08754,"61":0.00398,"62":0.00398,"63":0.01592,"64":0.01194,"66":0.00398,"67":0.0955,"68":0.00796,"69":0.04775,"70":0.01194,"71":0.10345,"72":0.01592,"73":0.01194,"74":0.01194,"75":0.00796,"76":0.00796,"77":0.05173,"78":0.00796,"79":0.19497,"80":0.02785,"81":0.03183,"83":0.04377,"84":0.04775,"85":0.02785,"86":0.10743,"87":0.28251,"88":0.13529,"89":0.17508,"90":0.97883,"91":18.73313,"92":4.88223,"93":0.01592,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 29 30 32 35 36 38 46 50 51 53 56 58 59 65 94 95"},F:{"37":0.03581,"40":0.00398,"42":0.05969,"49":0.00398,"51":0.08754,"52":0.00796,"53":0.05571,"58":0.01592,"62":0.00796,"66":0.01194,"68":0.00796,"71":0.03979,"72":0.00796,"73":0.02785,"74":0.14324,"75":0.04775,"76":0.03581,"77":0.17508,_:"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 41 43 44 45 46 47 48 50 54 55 56 57 60 63 64 65 67 69 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03183},G:{"8":0.00178,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00355,"5.0-5.1":0.00414,"6.0-6.1":0.00059,"7.0-7.1":0.08998,"8.1-8.4":0.02309,"9.0-9.2":0.06985,"9.3":0.2137,"10.0-10.2":0.04203,"10.3":0.32085,"11.0-11.2":0.09472,"11.3-11.4":0.20423,"12.0-12.1":0.12254,"12.2-12.4":0.37531,"13.0-13.1":0.08406,"13.2":0.01006,"13.3":0.12313,"13.4-13.7":0.62927,"14.0-14.4":1.31241,"14.5-14.7":1.10877},E:{"4":0,"11":0.00796,"13":0.02387,"14":0.0955,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 5.1 6.1 9.1 11.1","7.1":0.00398,"10.1":0.01194,"12.1":0.00796,"13.1":0.00796,"14.1":0.04377},B:{"13":0.00796,"14":0.01592,"16":0.01194,"17":0.01194,"18":0.09152,"84":0.02387,"88":0.00398,"89":0.00796,"91":0.59287,"92":0.19099,_:"12 15 79 80 81 83 85 86 87 90"},P:{"4":2.75616,"5.0-5.4":0.06102,"6.2-6.4":0.04068,"7.2-7.4":0.55937,"8.2":0.01012,"9.2":0.15256,"10.1":0.08136,"11.1-11.2":0.41698,"12.0":0.26443,"13.0":0.52886,"14.0":2.71548},I:{"0":0,"3":0,"4":0.00051,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00841,"4.2-4.3":0.02114,"4.4":0,"4.4.3-4.4.4":0.16859},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01278,"9":0.07667,"11":1.23954,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":46.91701},S:{"2.5":0},R:{_:"0"},M:{"0":0.0903},Q:{"10.4":0.00602},O:{"0":1.8662},H:{"0":0.76371}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js index fedfafed3fb0ec..cf358c923aed7f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js @@ -1 +1 @@ -module.exports={C:{"52":0.05226,"55":0.00436,"64":0.01307,"68":0.00871,"72":0.00436,"78":0.06097,"80":0.00436,"81":0.00871,"83":0.00436,"84":0.20469,"85":0.00436,"86":0.05662,"87":0.05226,"88":1.49812,"89":0.03049,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 65 66 67 69 70 71 73 74 75 76 77 79 82 90 91 3.5 3.6"},D:{"39":0.00436,"43":0.00871,"49":0.20469,"50":0.00871,"54":0.00436,"56":0.01307,"58":0.01307,"60":0.00871,"62":0.00871,"63":0.02178,"65":0.02613,"66":0.00436,"67":0.00871,"68":0.01307,"69":0.01307,"70":0.02178,"71":0.01307,"72":0.01307,"73":0.01307,"74":0.01307,"75":0.01307,"76":0.02178,"77":0.02178,"78":0.05226,"79":0.05662,"80":0.06097,"81":0.05226,"83":0.07839,"84":0.09581,"85":0.11759,"86":0.17856,"87":0.89713,"88":0.2134,"89":0.78826,"90":28.01136,"91":1.07133,"92":0.02613,_:"4 5 6 7 8 9 10 11 12 13 14 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 44 45 46 47 48 51 52 53 55 57 59 61 64 93 94"},F:{"36":0.00871,"71":0.00436,"73":0.44421,"74":0.00871,"75":1.45022,"76":1.07133,_:"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 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00829,"6.0-6.1":0.00223,"7.0-7.1":0.02232,"8.1-8.4":0.00446,"9.0-9.2":0.00351,"9.3":0.10937,"10.0-10.2":0.01148,"10.3":0.07365,"11.0-11.2":0.0153,"11.3-11.4":0.022,"12.0-12.1":0.02902,"12.2-12.4":0.08992,"13.0-13.1":0.01244,"13.2":0.00988,"13.3":0.04974,"13.4-13.7":0.30801,"14.0-14.4":1.7065,"14.5-14.6":0.3839},E:{"4":0,"13":0.15678,"14":0.23082,_:"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.00871,"12.1":0.01742,"13.1":0.05226,"14.1":0.06097},B:{"17":0.00871,"18":0.03049,"83":0.01307,"84":0.03049,"85":0.00436,"86":0.00871,"87":0.01742,"88":0.01307,"89":0.04791,"90":1.79862,"91":0.12194,_:"12 13 14 15 16 79 80 81"},P:{"4":0.23758,"5.0-5.4":0.04104,"6.2-6.4":0.01033,"7.2-7.4":0.13428,"8.2":0.02052,"9.2":0.06198,"10.1":0.03099,"11.1-11.2":0.1756,"12.0":0.11363,"13.0":0.67142,"14.0":1.53911},I:{"0":0,"3":0,"4":0.00238,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00953,"4.2-4.3":0.01548,"4.4":0,"4.4.3-4.4.4":0.10244},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00607,"11":0.16378,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.10161},Q:{"10.4":0},O:{"0":0.20322},H:{"0":0.32066},L:{"0":52.92241}}; +module.exports={C:{"38":0.0079,"52":0.03556,"78":0.05531,"79":0.00395,"80":0.00395,"81":0.01185,"82":0.00395,"83":0.00395,"84":0.04346,"86":0.01976,"87":0.01185,"88":0.04741,"89":0.7902,"90":0.48992,"91":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 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 85 92 3.5 3.6"},D:{"34":0.00395,"39":0.0079,"40":0.0079,"43":0.00395,"46":0.00395,"47":0.0079,"48":0.0079,"49":0.32793,"50":0.0079,"56":0.0158,"58":0.0079,"60":0.00395,"61":0.02766,"62":0.00395,"63":0.03161,"65":0.0158,"66":0.00395,"67":0.0079,"68":0.0079,"69":0.01185,"70":0.02371,"71":0.01976,"72":0.00395,"73":0.00395,"74":0.01185,"75":0.0079,"76":0.01185,"77":0.02766,"78":0.03161,"79":0.05927,"80":0.05136,"81":0.04346,"83":0.05927,"84":0.08692,"85":0.06322,"86":0.09087,"87":0.82971,"88":0.11853,"89":0.18175,"90":0.40695,"91":20.69929,"92":4.58711,"93":0.0158,_:"4 5 6 7 8 9 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 41 42 44 45 51 52 53 54 55 57 59 64 94 95"},F:{"40":0.00395,"71":0.00395,"73":0.00395,"74":0.01185,"75":0.0079,"76":0.80205,"77":1.98735,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00074,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00855,"6.0-6.1":0.00074,"7.0-7.1":0.02752,"8.1-8.4":0.00335,"9.0-9.2":0.00298,"9.3":0.0915,"10.0-10.2":0.00521,"10.3":0.06323,"11.0-11.2":0.0186,"11.3-11.4":0.01971,"12.0-12.1":0.02343,"12.2-12.4":0.08629,"13.0-13.1":0.01153,"13.2":0.01041,"13.3":0.04352,"13.4-13.7":0.25255,"14.0-14.4":0.85883,"14.5-14.7":1.84114},E:{"4":0,"13":0.13038,"14":0.11853,_:"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.00395,"12.1":0.01185,"13.1":0.04741,"14.1":0.21731},B:{"17":0.01185,"18":0.03951,"84":0.0158,"85":0.0079,"86":0.00395,"87":0.0079,"89":0.01976,"90":0.01976,"91":1.60016,"92":0.33188,_:"12 13 14 15 16 79 80 81 83 88"},P:{"4":0.27382,"5.0-5.4":0.02225,"6.2-6.4":0.02028,"7.2-7.4":0.16226,"8.2":0.09299,"9.2":0.04057,"10.1":0.02028,"11.1-11.2":0.20283,"12.0":0.09127,"13.0":0.26368,"14.0":1.71389},I:{"0":0,"3":0,"4":0.00355,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0071,"4.2-4.3":0.01207,"4.4":0,"4.4.3-4.4.4":0.11643},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00939,"9":0.0047,"11":0.23482,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":57.48189},S:{"2.5":0},R:{_:"0"},M:{"0":0.07865},Q:{"10.4":0},O:{"0":0.18755},H:{"0":0.26348}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js index 947f1f8a17267d..4269b2b2faea04 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js @@ -1 +1 @@ -module.exports={C:{"46":0.00586,"47":0.01172,"52":0.47458,"58":0.00586,"61":0.02344,"78":0.03515,"84":0.04101,"87":0.0293,"88":2.37875,"89":0.02344,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 49 50 51 53 54 55 56 57 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 90 91 3.5 3.6"},D:{"49":0.05273,"56":0.18749,"58":0.01758,"63":0.01172,"65":0.00586,"67":0.01758,"72":0.01758,"74":0.00586,"75":0.00586,"76":0.02344,"78":0.03515,"79":0.02344,"81":0.11132,"83":0.0293,"84":0.01172,"85":0.00586,"86":0.01172,"87":0.0996,"88":0.14062,"89":0.97259,"90":23.82269,"91":0.5859,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 59 60 61 62 64 66 68 69 70 71 73 77 80 92 93 94"},F:{"74":0.03515,"75":0.38669,"76":0.23436,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.0111,"9.3":0.023,"10.0-10.2":0.00555,"10.3":0.04283,"11.0-11.2":0.05631,"11.3-11.4":0.08724,"12.0-12.1":0.14434,"12.2-12.4":0.39972,"13.0-13.1":0.07931,"13.2":0.16734,"13.3":0.67492,"13.4-13.7":0.53613,"14.0-14.4":3.03357,"14.5-14.6":2.07472},E:{"4":0,"8":0.01758,"10":0.00586,"13":0.09374,"14":1.58193,_:"0 5 6 7 9 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01172,"11.1":0.01758,"12.1":0.11132,"13.1":0.18163,"14.1":0.09374},B:{"12":0.05273,"13":0.16405,"14":0.03515,"15":0.03515,"16":0.0293,"17":0.07617,"18":0.52731,"80":0.02344,"84":0.01758,"85":0.19335,"86":0.03515,"88":0.03515,"89":0.18163,"90":3.99584,"91":0.21678,_:"79 81 83 87"},P:{"4":0.04104,"5.0-5.4":0.04104,"6.2-6.4":0.03078,"7.2-7.4":0.53352,"8.2":0.02052,"9.2":0.11286,"10.1":0.03078,"11.1-11.2":0.69768,"12.0":0.38988,"13.0":0.33858,"14.0":1.30302},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00828,"4.4":0,"4.4.3-4.4.4":0.01656},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":4.69306,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.0414},Q:{"10.4":0.01656},O:{"0":0.25668},H:{"0":0.21165},L:{"0":45.64877}}; +module.exports={C:{"38":0.00528,"46":0.07385,"52":0.69103,"62":0.00528,"76":0.00528,"78":0.05275,"85":0.00528,"88":0.01583,"89":1.78823,"90":0.49585,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 47 48 49 50 51 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 86 87 91 92 3.5 3.6"},D:{"49":0.24265,"61":0.01055,"68":0.01055,"69":0.0211,"70":0.01583,"73":0.01055,"74":0.0211,"75":0.00528,"76":0.15298,"79":0.0211,"80":0.0211,"81":0.11078,"83":0.0211,"86":0.0422,"87":0.13715,"88":0.0211,"89":0.1899,"90":0.40618,"91":17.75038,"92":4.23055,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 62 63 64 65 66 67 71 72 77 78 84 85 93 94 95"},F:{"63":0.01055,"77":1.04445,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00296,"9.0-9.2":0,"9.3":0.09414,"10.0-10.2":0.00889,"10.3":0.16233,"11.0-11.2":0.05707,"11.3-11.4":0.06819,"12.0-12.1":0.04596,"12.2-12.4":0.27351,"13.0-13.1":0.45882,"13.2":0.05114,"13.3":0.55222,"13.4-13.7":0.27351,"14.0-14.4":1.30604,"14.5-14.7":3.21767},E:{"4":0,"10":0.03165,"11":0.0211,"13":0.07385,"14":1.27655,_:"0 5 6 7 8 9 12 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00528,"12.1":0.05803,"13.1":0.03693,"14.1":0.35343},B:{"13":0.03693,"15":0.01055,"16":0.04748,"17":0.1477,"18":0.3587,"83":0.02638,"85":0.03693,"86":0.01055,"87":0.02638,"88":0.02638,"89":0.3165,"90":0.22683,"91":3.75053,"92":0.62773,_:"12 14 79 80 81 84"},P:{"4":0.04133,"5.0-5.4":0.02225,"6.2-6.4":0.062,"7.2-7.4":0.44429,"8.2":0.09299,"9.2":0.06199,"10.1":0.08266,"11.1-11.2":0.37197,"12.0":0.15499,"13.0":1.00224,"14.0":1.22955},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":4.66838,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":46.69703},S:{"2.5":0},R:{_:"0"},M:{"0":2.86335},Q:{"10.4":0.00473},O:{"0":0.14175},H:{"0":0.07157}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js index dcfe7ba4d66090..5d4ff6d62f75b6 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js @@ -1 +1 @@ -module.exports={C:{"52":0.01188,"57":0.00594,"78":0.01486,"79":0.00594,"80":0.00594,"81":0.00594,"82":0.01188,"83":0.00297,"84":0.00594,"85":0.00297,"86":0.0208,"87":0.0208,"88":0.65065,"89":0.00297,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 75 76 77 90 91 3.5 3.6"},D:{"22":0.11884,"26":0.04159,"34":0.06536,"38":0.10696,"39":0.00594,"42":0.00891,"43":0.00891,"47":0.06536,"48":0.00297,"49":0.20797,"50":0.00297,"51":0.3179,"53":0.08319,"56":0.00891,"58":0.00891,"59":0.00891,"60":0.00297,"61":0.02377,"62":0.00594,"63":0.01783,"64":0.00297,"65":0.00594,"66":0.00297,"67":0.00594,"68":0.02971,"69":0.00891,"70":0.00891,"71":0.03268,"72":0.00891,"73":0.00891,"74":0.00891,"75":0.01486,"76":0.01188,"77":0.01486,"78":0.01783,"79":0.08022,"80":0.04754,"81":0.07725,"83":0.0713,"84":0.06239,"85":0.06833,"86":0.09507,"87":0.14558,"88":0.12181,"89":0.49913,"90":19.05302,"91":0.66848,"92":0.00594,_:"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 40 41 44 45 46 52 54 55 57 93 94"},F:{"31":0.01783,"32":0.01486,"36":0.01486,"40":0.05051,"46":0.02377,"70":0.00297,"73":0.15746,"74":0.00594,"75":0.59717,"76":0.56152,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 71 72 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00297},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00528,"6.0-6.1":0.00528,"7.0-7.1":0.0971,"8.1-8.4":0.019,"9.0-9.2":0.0095,"9.3":0.21425,"10.0-10.2":0.03061,"10.3":0.17942,"11.0-11.2":0.07071,"11.3-11.4":0.09393,"12.0-12.1":0.06016,"12.2-12.4":0.34407,"13.0-13.1":0.03377,"13.2":0.01372,"13.3":0.12349,"13.4-13.7":0.42429,"14.0-14.4":5.81441,"14.5-14.6":1.32457},E:{"4":0,"13":0.01783,"14":0.35949,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.31493,"10.1":0.00594,"11.1":0.00594,"12.1":0.01486,"13.1":0.06536,"14.1":0.15449},B:{"12":0.00594,"13":0.00594,"14":0.00891,"15":0.00594,"16":0.00594,"17":0.00891,"18":0.03268,"84":0.00594,"85":0.00594,"86":0.00594,"87":0.00297,"88":0.00594,"89":0.02377,"90":1.28347,"91":0.06833,_:"79 80 81 83"},P:{"4":0.8625,"5.0-5.4":0.06088,"6.2-6.4":0.02029,"7.2-7.4":0.23338,"8.2":0.02029,"9.2":0.14206,"10.1":0.07103,"11.1-11.2":0.32471,"12.0":0.23338,"13.0":1.06544,"14.0":3.6225},I:{"0":0,"3":0,"4":0.00061,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00488,"4.2-4.3":0.01997,"4.4":0,"4.4.3-4.4.4":0.04483},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.003,"9":0.009,"11":0.63271,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.22493},Q:{"10.4":0},O:{"0":0.12652},H:{"0":0.61888},L:{"0":53.97242}}; +module.exports={C:{"52":0.01551,"72":0.0031,"78":0.01551,"79":0.0062,"80":0.0062,"81":0.0062,"82":0.01241,"84":0.0031,"88":0.01551,"89":0.48081,"90":0.22334,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 83 85 86 87 91 92 3.5 3.6"},D:{"22":0.17992,"26":0.05584,"34":0.08065,"38":0.12098,"39":0.00931,"42":0.00931,"43":0.00931,"47":0.08686,"48":0.0031,"49":0.21714,"51":0.01551,"53":0.03722,"56":0.00931,"57":0.0031,"58":0.00931,"59":0.01241,"60":0.0031,"61":0.04033,"62":0.0062,"63":0.01861,"64":0.0062,"65":0.00931,"66":0.0031,"67":0.0062,"68":0.02482,"69":0.01241,"70":0.01861,"71":0.04033,"72":0.01241,"73":0.01551,"74":0.01551,"75":0.02792,"76":0.02482,"77":0.01551,"78":0.02171,"79":0.19232,"80":0.04033,"81":0.03722,"83":0.07445,"84":0.08065,"85":0.07755,"86":0.10857,"87":0.1489,"88":0.08996,"89":0.16441,"90":0.27608,"91":16.79423,"92":4.04191,"93":0.0031,_:"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 40 41 44 45 46 50 52 54 55 94 95"},F:{"31":0.01551,"32":0.01241,"36":0.01551,"40":0.04963,"46":0.02792,"74":0.0031,"75":0.0031,"76":0.21404,"77":0.7817,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00201,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00503,"6.0-6.1":0.00804,"7.0-7.1":0.09146,"8.1-8.4":0.01307,"9.0-9.2":0.00905,"9.3":0.198,"10.0-10.2":0.02211,"10.3":0.16885,"11.0-11.2":0.06834,"11.3-11.4":0.08643,"12.0-12.1":0.05226,"12.2-12.4":0.27136,"13.0-13.1":0.02814,"13.2":0.01206,"13.3":0.10855,"13.4-13.7":0.36584,"14.0-14.4":1.49954,"14.5-14.7":5.35593},E:{"4":0,"13":0.01241,"14":0.10547,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1","5.1":0.02482,"10.1":0.0062,"11.1":0.0062,"12.1":0.00931,"13.1":0.05584,"14.1":0.32571},B:{"12":0.00931,"13":0.0062,"14":0.0062,"15":0.0062,"16":0.0062,"17":0.00931,"18":0.04033,"84":0.0062,"85":0.0031,"86":0.0062,"87":0.0031,"88":0.0031,"89":0.00931,"90":0.00931,"91":1.12292,"92":0.3133,_:"79 80 81 83"},P:{"4":0.78926,"5.0-5.4":0.03036,"6.2-6.4":0.01012,"7.2-7.4":0.27321,"8.2":0.01012,"9.2":0.12143,"10.1":0.05059,"11.1-11.2":0.27321,"12.0":0.1619,"13.0":0.57677,"14.0":3.55169},I:{"0":0,"3":0,"4":0.0003,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00386,"4.2-4.3":0.01589,"4.4":0,"4.4.3-4.4.4":0.04203},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00312,"9":0.01247,"11":0.62032,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":54.81313},S:{"2.5":0},R:{_:"0"},M:{"0":0.24829},Q:{"10.4":0},O:{"0":0.13104},H:{"0":0.58767}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js index 4aa4d055a52940..9548b0b6f85230 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js @@ -1 +1 @@ -module.exports={C:{"48":0.0046,"52":0.03219,"68":0.0092,"78":0.03219,"84":0.0092,"85":0.0092,"86":0.0092,"87":0.10116,"88":1.42538,"89":0.0092,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 90 91 3.5 3.6"},D:{"38":0.01839,"41":0.0092,"42":0.0092,"47":0.0092,"48":0.0046,"49":0.19312,"53":0.02299,"56":0.0092,"58":0.0092,"59":0.0046,"63":0.01379,"65":0.01379,"67":0.0092,"68":0.0092,"69":0.05058,"70":0.0046,"74":0.18852,"75":0.02759,"76":0.05977,"77":0.0092,"78":0.02299,"79":0.05058,"80":0.01839,"81":0.05518,"83":0.01379,"84":0.05058,"85":0.05058,"86":0.05977,"87":0.28508,"88":0.19771,"89":0.78166,"90":27.53742,"91":1.04834,"92":0.01839,_:"4 5 6 7 8 9 10 11 12 13 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 50 51 52 54 55 57 60 61 62 64 66 71 72 73 93 94"},F:{"28":0.0092,"73":0.06897,"74":0.0046,"75":0.50578,"76":0.51038,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.0019,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02277,"6.0-6.1":0.0019,"7.0-7.1":0.07021,"8.1-8.4":0.00569,"9.0-9.2":0,"9.3":0.19262,"10.0-10.2":0.00474,"10.3":0.1262,"11.0-11.2":0.01803,"11.3-11.4":0.01898,"12.0-12.1":0.03036,"12.2-12.4":0.10722,"13.0-13.1":0.05598,"13.2":0.0038,"13.3":0.15656,"13.4-13.7":0.34538,"14.0-14.4":6.23581,"14.5-14.6":1.54757},E:{"4":0,"13":0.05058,"14":1.69666,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.17472,"10.1":0.01379,"11.1":0.12874,"12.1":0.04138,"13.1":0.31266,"14.1":0.66671},B:{"13":0.01379,"14":0.0046,"15":0.0092,"16":0.01839,"17":0.01379,"18":0.08736,"80":0.0046,"84":0.0092,"85":0.02299,"87":0.02759,"88":0.01379,"89":0.11495,"90":5.43943,"91":0.27128,_:"12 79 81 83 86"},P:{"4":0.23955,"5.0-5.4":0.04104,"6.2-6.4":0.03078,"7.2-7.4":0.19599,"8.2":0.02052,"9.2":0.07622,"10.1":0.01089,"11.1-11.2":0.39199,"12.0":0.18511,"13.0":0.58798,"14.0":4.57319},I:{"0":0,"3":0,"4":0.00129,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00065,"4.2-4.3":0.00421,"4.4":0,"4.4.3-4.4.4":0.04787},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0092,"11":0.21151,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.0054},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.17827},Q:{"10.4":0.0108},O:{"0":0.10264},H:{"0":0.34266},L:{"0":40.43001}}; +module.exports={C:{"48":0.00898,"52":0.04041,"68":0.00449,"78":0.04041,"84":0.02694,"86":0.00449,"87":0.01347,"88":0.01347,"89":1.02821,"90":0.54329,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 85 91 92 3.5 3.6"},D:{"38":0.03592,"43":0.00449,"47":0.01347,"49":0.1347,"50":0.01347,"53":0.00898,"56":0.03143,"58":0.00898,"61":0.00449,"62":0.00449,"63":0.00449,"64":0.00898,"65":0.03143,"67":0.01796,"68":0.00898,"69":0.02694,"70":0.00898,"74":0.43104,"75":0.05388,"76":0.0449,"77":0.00898,"78":0.00898,"79":0.17511,"80":0.01796,"81":0.0898,"83":0.01796,"84":0.02245,"85":0.02694,"86":0.02245,"87":0.36818,"88":0.08082,"89":0.12123,"90":0.53431,"91":22.49939,"92":5.06921,"93":0.03592,_:"4 5 6 7 8 9 10 11 12 13 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 55 57 59 60 66 71 72 73 94 95"},F:{"28":0.01347,"74":0.00898,"76":0.2245,"77":0.65105,_:"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 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00187,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03547,"6.0-6.1":0.00187,"7.0-7.1":0.13816,"8.1-8.4":0.00933,"9.0-9.2":0,"9.3":0.25484,"10.0-10.2":0.00467,"10.3":0.1895,"11.0-11.2":0.01307,"11.3-11.4":0.01214,"12.0-12.1":0.0196,"12.2-12.4":0.10268,"13.0-13.1":0.02054,"13.2":0.0056,"13.3":0.05414,"13.4-13.7":0.19883,"14.0-14.4":1.16966,"14.5-14.7":6.53443},E:{"4":0,"11":0.0449,"13":0.04939,"14":0.61064,"15":0.00898,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00449,"10.1":0.01796,"11.1":0.09878,"12.1":0.04939,"13.1":0.35471,"14.1":1.82294},B:{"12":0.00898,"13":0.00898,"15":0.00449,"16":0.00898,"17":0.00898,"18":0.11225,"80":0.00449,"84":0.02245,"85":0.00898,"87":0.00898,"88":0.01347,"89":0.02694,"90":0.0449,"91":4.27897,"92":1.17189,_:"14 79 81 83 86"},P:{"4":0.55696,"5.0-5.4":0.02225,"6.2-6.4":0.062,"7.2-7.4":0.24026,"8.2":0.09299,"9.2":0.06553,"10.1":0.01092,"11.1-11.2":0.33855,"12.0":0.06553,"13.0":0.34947,"14.0":5.65701},I:{"0":0,"3":0,"4":0.00167,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00056,"4.2-4.3":0.01115,"4.4":0,"4.4.3-4.4.4":0.08029},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00449,"11":0.18409,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00551},N:{"10":0.01143,"11":0.01864},L:{"0":40.94789},S:{"2.5":0},R:{_:"0"},M:{"0":0.18734},Q:{"10.4":0.01102},O:{"0":0.06061},H:{"0":0.32342}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js index 7c7fdac17998f1..d91ffaf6e028a4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js @@ -1 +1 @@ -module.exports={C:{"85":0.0479,"88":0.48585,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 87 89 90 91 3.5 3.6"},D:{"70":0.23951,"71":0.0958,"77":0.0479,"81":0.58166,"83":0.0958,"84":8.79326,"87":0.1437,"88":0.39005,"89":1.89551,"90":28.36424,"91":1.01961,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 72 73 74 75 76 78 79 80 85 86 92 93 94"},F:{"76":0.58166,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":0.07631,"13.0-13.1":0,"13.2":0,"13.3":0.03816,"13.4-13.7":0.11447,"14.0-14.4":0.57295,"14.5-14.6":0},E:{"4":0,_:"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","11.1":0.1437,"12.1":0.23951,"13.1":0.34215,"14.1":0.29425},B:{"17":0.48585,"18":16.85431,"80":0.0479,"85":0.1437,"86":0.0479,"89":0.0479,"90":5.34438,"91":0.39005,_:"12 13 14 15 16 79 81 83 84 87 88"},P:{"4":0.08563,"5.0-5.4":0.19323,"6.2-6.4":0.09153,"7.2-7.4":0.20064,"8.2":0.02034,"9.2":0.05352,"10.1":0.06423,"11.1-11.2":0.51381,"12.0":0.2034,"13.0":0.62085,"14.0":0.25081},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.05051,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.23951,_:"6 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.29992},H:{"0":0.47523},L:{"0":30.48389}}; +module.exports={C:{"89":0.5791,"90":0.12333,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 91 92 3.5 3.6"},D:{"60":0.0429,"77":0.20912,"81":0.94907,"86":0.0429,"87":0.08043,"90":0.36998,"91":35.00314,"92":4.84189,"93":0.0429,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 78 79 80 83 84 85 88 89 94 95"},F:{"77":0.20912,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.04057,"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.4":0.08114,"13.0-13.1":0,"13.2":0,"13.3":0.08114,"13.4-13.7":0,"14.0-14.4":0.73049,"14.5-14.7":0.20298},E:{"4":0,"14":0.0429,_:"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":2.35928,"12.1":0.36998,"13.1":0.16622,"14.1":0.16622},B:{"17":0.45577,"18":0.24665,"85":0.16622,"89":0.16622,"91":4.84189,"92":0.74532,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 90"},P:{"4":0.07317,"5.0-5.4":0.06102,"6.2-6.4":0.04068,"7.2-7.4":0.04086,"8.2":0.01012,"9.2":0.03136,"10.1":0.08136,"11.1-11.2":0.38674,"12.0":0.04181,"13.0":0.0209,"14.0":0.6334},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.01143,"11":0.01864},L:{"0":45.0243},S:{"2.5":0},R:{_:"0"},M:{"0":0.04174},Q:{"10.4":0},O:{"0":0.12523},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js index f727338a963dd2..a7b7d3b911752d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js @@ -1 +1 @@ -module.exports={C:{"34":0.02254,"48":0.00451,"49":0.00451,"51":0.00451,"52":0.02704,"72":0.00901,"78":0.01803,"83":0.00451,"84":0.00901,"85":0.00901,"86":0.01352,"87":0.02704,"88":1.23492,"89":0.00901,_:"2 3 4 5 6 7 8 9 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 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 90 91 3.5 3.6"},D:{"11":0.01803,"22":0.00901,"26":0.00901,"30":0.00901,"34":0.02704,"35":0.00901,"38":0.1262,"45":0.00451,"47":0.00451,"49":0.3876,"50":0.00451,"51":0.00451,"52":0.00451,"53":0.34253,"55":0.01803,"56":0.01803,"58":0.00901,"59":0.00451,"60":0.00451,"61":0.09465,"62":0.00901,"63":0.01352,"64":0.00901,"65":0.01352,"66":0.01352,"67":0.03155,"68":0.07662,"69":0.02254,"70":0.01803,"71":0.02704,"72":0.01803,"73":0.02254,"74":0.02254,"75":0.02254,"76":0.02254,"77":0.01803,"78":0.01803,"79":0.11718,"80":0.04056,"81":0.08563,"83":0.04056,"84":0.03155,"85":0.03606,"86":0.12169,"87":0.1938,"88":0.20732,"89":0.82027,"90":29.18733,"91":1.30703,"92":0.01803,_:"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 36 37 39 40 41 42 43 44 46 48 54 57 93 94"},F:{"28":0.00451,"36":0.01352,"40":0.00451,"46":0.04507,"75":0.04958,"76":0.09915,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00247,"3.2":0.00247,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0296,"6.0-6.1":0.0148,"7.0-7.1":0.1554,"8.1-8.4":0.0592,"9.0-9.2":0.02713,"9.3":0.29353,"10.0-10.2":0.04933,"10.3":0.32066,"11.0-11.2":0.13073,"11.3-11.4":0.148,"12.0-12.1":0.29846,"12.2-12.4":0.64133,"13.0-13.1":0.2738,"13.2":0.11593,"13.3":0.52786,"13.4-13.7":1.32459,"14.0-14.4":17.06428,"14.5-14.6":2.48638},E:{"4":0,"8":0.00451,"11":0.00451,"12":0.01803,"13":0.22535,"14":3.25405,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01352,"10.1":0.02704,"11.1":0.05408,"12.1":0.10366,"13.1":0.52281,"14.1":0.5138},B:{"14":0.00451,"16":0.00901,"17":0.01803,"18":0.04958,"84":0.00451,"85":0.00451,"86":0.00451,"87":0.00451,"88":0.00901,"89":0.03606,"90":2.23097,"91":0.21634,_:"12 13 15 79 80 81 83"},P:{"4":0.55103,"5.0-5.4":0.08019,"6.2-6.4":0.18043,"7.2-7.4":0.02161,"8.2":0.02161,"9.2":0.14046,"10.1":0.06483,"11.1-11.2":0.22689,"12.0":0.19448,"13.0":0.59424,"14.0":2.10686},I:{"0":0,"3":0,"4":0.00043,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00128,"4.2-4.3":0.00555,"4.4":0,"4.4.3-4.4.4":0.03119},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.37859,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.10437},Q:{"10.4":0.01099},O:{"0":0.10437},H:{"0":0.42123},L:{"0":27.97117}}; +module.exports={C:{"34":0.02236,"45":0.00894,"46":0.00447,"47":0.00447,"49":0.00894,"50":0.00894,"51":0.00894,"52":0.02683,"72":0.00447,"78":0.01341,"84":0.00447,"87":0.00447,"88":0.02236,"89":0.76007,"90":0.41133,_:"2 3 4 5 6 7 8 9 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 48 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 91 92 3.5 3.6"},D:{"11":0.01341,"22":0.00447,"26":0.00447,"30":0.00894,"34":0.02236,"38":0.10283,"45":0.00447,"47":0.00447,"49":0.2012,"50":0.00894,"51":0.00894,"52":0.00447,"53":0.12519,"54":0.00447,"55":0.01788,"56":0.02683,"58":0.00894,"61":0.10283,"62":0.00894,"63":0.01341,"64":0.00894,"65":0.01341,"66":0.01341,"67":0.02683,"68":0.02236,"69":0.01788,"70":0.01788,"71":0.02236,"72":0.01341,"73":0.01788,"74":0.01788,"75":0.01788,"76":0.01788,"77":0.01788,"78":0.01341,"79":0.36215,"80":0.02683,"81":0.06707,"83":0.02683,"84":0.01788,"85":0.01788,"86":0.06259,"87":0.14307,"88":0.04471,"89":0.13413,"90":0.4471,"91":25.31033,"92":4.70796,"93":0.01788,_:"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 48 57 59 60 94 95"},F:{"28":0.00894,"36":0.01341,"40":0.00447,"46":0.04918,"76":0.00894,"77":0.13413,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00261,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02609,"6.0-6.1":0.01305,"7.0-7.1":0.1435,"8.1-8.4":0.05479,"9.0-9.2":0.02348,"9.3":0.27135,"10.0-10.2":0.04436,"10.3":0.30527,"11.0-11.2":0.10698,"11.3-11.4":0.1148,"12.0-12.1":0.24526,"12.2-12.4":0.4853,"13.0-13.1":0.21395,"13.2":0.09654,"13.3":0.4279,"13.4-13.7":1.01235,"14.0-14.4":6.59856,"14.5-14.7":15.12008},E:{"4":0,"11":0.00447,"12":0.01341,"13":0.19225,"14":0.96127,"15":0.00447,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00894,"10.1":0.02683,"11.1":0.04471,"12.1":0.08942,"13.1":0.45604,"14.1":3.41137},B:{"14":0.00447,"16":0.00447,"17":0.01341,"18":0.03577,"84":0.00447,"86":0.00447,"89":0.00894,"90":0.01341,"91":2.16396,"92":0.49628,_:"12 13 15 79 80 81 83 85 87 88"},P:{"4":0.55791,"5.0-5.4":0.08038,"6.2-6.4":0.22103,"7.2-7.4":0.01073,"8.2":0.02146,"9.2":0.11802,"10.1":0.04292,"11.1-11.2":0.18239,"12.0":0.13948,"13.0":0.35406,"14.0":2.3604},I:{"0":0,"3":0,"4":0.00082,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00123,"4.2-4.3":0.0041,"4.4":0,"4.4.3-4.4.4":0.02703},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.33085,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":27.64713},S:{"2.5":0},R:{_:"0"},M:{"0":0.09952},Q:{"10.4":0.01106},O:{"0":0.09399},H:{"0":0.38212}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js index 42a1b54935f11d..32f630a934b56d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js @@ -1 +1 @@ -module.exports={C:{"17":0.00455,"23":0.00455,"24":0.00228,"27":0.00228,"30":0.00911,"32":0.00228,"34":0.00455,"36":0.00683,"37":0.00455,"38":0.00228,"40":0.00455,"41":0.00455,"43":0.01366,"44":0.00683,"45":0.00455,"46":0.00228,"47":0.01594,"48":0.00683,"49":0.00683,"52":0.01594,"56":0.00683,"57":0.00683,"58":0.00228,"60":0.00228,"66":0.01139,"67":0.00683,"68":0.00911,"72":0.01822,"77":0.01139,"78":0.05693,"80":0.00455,"81":0.00455,"82":0.00455,"83":0.00683,"84":0.01139,"85":0.01594,"86":0.05009,"87":0.05693,"88":2.01287,"89":0.12751,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 25 26 28 29 31 33 35 39 42 50 51 53 54 55 59 61 62 63 64 65 69 70 71 73 74 75 76 79 90 91 3.5 3.6"},D:{"21":0.00228,"24":0.00455,"32":0.00228,"33":0.00455,"37":0.00228,"39":0.00455,"40":0.00455,"43":0.00455,"49":0.03188,"50":0.00683,"55":0.00683,"56":0.00228,"57":0.01366,"58":0.00455,"60":0.01366,"61":0.00455,"62":0.00228,"63":0.01594,"64":0.00455,"65":0.00683,"66":0.00228,"67":0.00911,"68":0.00455,"69":0.00683,"70":0.01366,"71":0.01139,"72":0.02732,"73":0.01594,"74":0.02049,"75":0.00683,"76":0.00683,"77":0.01139,"78":0.01139,"79":0.03871,"80":0.02505,"81":0.01594,"83":0.04326,"84":0.04099,"85":0.01822,"86":0.04099,"87":0.11613,"88":0.18216,"89":0.3165,"90":8.12661,"91":0.36432,"92":0.02049,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 25 26 27 28 29 30 31 34 35 36 38 41 42 44 45 46 47 48 51 52 53 54 59 93 94"},F:{"36":0.00455,"42":0.00455,"63":0.00911,"64":0.01822,"72":0.00228,"73":0.02049,"74":0.01139,"75":0.40075,"76":0.66261,_:"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 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00183,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00092,"5.0-5.1":0.00183,"6.0-6.1":0.00137,"7.0-7.1":0.03753,"8.1-8.4":0,"9.0-9.2":0.00549,"9.3":0.08375,"10.0-10.2":0.03707,"10.3":0.06453,"11.0-11.2":0.05766,"11.3-11.4":0.05217,"12.0-12.1":0.08283,"12.2-12.4":0.37023,"13.0-13.1":0.04759,"13.2":0.02151,"13.3":0.15056,"13.4-13.7":0.34826,"14.0-14.4":2.14267,"14.5-14.6":0.39952},E:{"4":0,"10":0.00228,"11":0.00228,"12":0.00455,"13":0.01366,"14":0.20038,_:"0 5 6 7 8 9 3.1 3.2 5.1 7.1","6.1":0.00228,"9.1":0.00455,"10.1":0.00683,"11.1":0.02505,"12.1":0.02505,"13.1":0.07514,"14.1":0.06148},B:{"12":0.04782,"13":0.02732,"14":0.00683,"15":0.01822,"16":0.02049,"17":0.01822,"18":0.13662,"80":0.00455,"84":0.01822,"85":0.02505,"86":0.01366,"87":0.00911,"88":0.01366,"89":0.06376,"90":0.96089,"91":0.03871,_:"79 81 83"},P:{"4":0.35476,"5.0-5.4":0.04174,"6.2-6.4":0.01043,"7.2-7.4":0.11478,"8.2":0.0403,"9.2":0.16695,"10.1":0.01043,"11.1-11.2":0.25042,"12.0":0.08347,"13.0":0.36519,"14.0":0.74082},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00395,"4.2-4.3":0.00988,"4.4":0,"4.4.3-4.4.4":0.10971},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00983,"9":0.00492,"11":0.20157,_:"6 7 10 5.5"},J:{"7":0,"10":0.00772},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.39382},R:{_:"0"},M:{"0":0.12355},Q:{"10.4":0.01544},O:{"0":1.49035},H:{"0":25.8506},L:{"0":48.35051}}; +module.exports={C:{"23":0.00199,"30":0.00598,"32":0.00199,"33":0.00199,"34":0.00199,"35":0.01195,"36":0.00398,"38":0.00598,"40":0.00398,"41":0.00398,"43":0.00996,"44":0.00797,"45":0.00199,"46":0.00199,"47":0.00797,"48":0.00398,"49":0.00598,"52":0.07171,"56":0.00598,"60":0.00398,"61":0.00199,"64":0.00199,"65":0.00199,"66":0.00598,"67":0.00398,"68":0.00797,"70":0.00199,"72":0.00797,"74":0.00398,"76":0.00199,"77":0.00598,"78":0.03187,"79":0.00199,"81":0.00398,"84":0.00797,"85":0.00797,"86":0.00797,"87":0.00797,"88":0.03586,"89":0.9721,"90":0.46613,"91":0.04382,_:"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 31 37 39 42 50 51 53 54 55 57 58 59 62 63 69 71 73 75 80 82 83 92 3.5 3.6"},D:{"11":0.00199,"21":0.00398,"29":0.00398,"38":0.00199,"43":0.00598,"49":0.01992,"50":0.00199,"55":0.01992,"57":0.00598,"58":0.00199,"60":0.00996,"61":0.00199,"63":0.00996,"64":0.00199,"65":0.00598,"67":0.00598,"68":0.00398,"69":0.00199,"70":0.00598,"71":0.00996,"72":0.00598,"73":0.00598,"74":0.00996,"75":0.00598,"76":0.00199,"77":0.01195,"78":0.00797,"79":0.03187,"80":0.0239,"81":0.01195,"83":0.01992,"84":0.02789,"85":0.01195,"86":0.03984,"87":0.08167,"88":0.05578,"89":0.06574,"90":0.17928,"91":5.91425,"92":1.44022,"93":0.01195,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 51 52 53 54 56 59 62 66 94 95"},F:{"19":0.00797,"38":0.00199,"42":0.00199,"62":0.00199,"64":0.01394,"65":0.00398,"73":0.00199,"74":0.00598,"75":0.00598,"76":0.0239,"77":0.78485,_:"9 11 12 15 16 17 18 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 49 50 51 52 53 54 55 56 57 58 60 63 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01014,"6.0-6.1":0.00088,"7.0-7.1":0.02293,"8.1-8.4":0.00176,"9.0-9.2":0.00353,"9.3":0.04056,"10.0-10.2":0.00573,"10.3":0.04806,"11.0-11.2":0.04629,"11.3-11.4":0.04894,"12.0-12.1":0.06966,"12.2-12.4":0.22794,"13.0-13.1":0.04365,"13.2":0.01235,"13.3":0.13183,"13.4-13.7":0.24205,"14.0-14.4":1.21776,"14.5-14.7":1.46157},E:{"4":0.00199,"11":0.00797,"12":0.00199,"13":0.00797,"14":0.07769,"15":0.00199,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1 9.1","6.1":0.00398,"10.1":0.00598,"11.1":0.00996,"12.1":0.01195,"13.1":0.05976,"14.1":0.22908},B:{"12":0.02988,"13":0.01594,"14":0.00996,"15":0.01594,"16":0.01394,"17":0.00996,"18":0.07968,"84":0.01793,"85":0.01195,"86":0.00598,"87":0.00398,"88":0.00797,"89":0.0239,"90":0.02988,"91":0.88644,"92":0.18326,_:"79 80 81 83"},P:{"4":0.33564,"5.0-5.4":0.03147,"6.2-6.4":0.21209,"7.2-7.4":0.10489,"8.2":0.0303,"9.2":0.12586,"10.1":0.03147,"11.1-11.2":0.14684,"12.0":0.05244,"13.0":0.1888,"14.0":0.91252},I:{"0":0,"3":0,"4":0.00146,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00292,"4.2-4.3":0.00924,"4.4":0,"4.4.3-4.4.4":0.09048},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06972,"9":0.0164,"10":0.02461,"11":0.16815,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":40.70402},S:{"2.5":0.32833},R:{_:"0"},M:{"0":0.1041},Q:{"10.4":0.00801},O:{"0":1.22522},H:{"0":36.39099}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js index c39ef17966d4fc..e291c83b51ba0f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js @@ -1 +1 @@ -module.exports={C:{"4":0.00657,"5":0.00657,"15":0.00657,"17":0.01313,"20":0.09194,"45":0.02627,"52":0.26925,"56":0.03284,"57":0.02627,"58":0.01313,"60":0.13791,"61":0.00657,"62":0.00657,"66":0.01313,"68":0.26268,"70":0.00657,"72":0.01313,"74":0.00657,"75":0.01313,"77":0.0197,"78":0.22985,"79":0.0197,"80":0.0197,"81":0.02627,"82":0.0394,"83":0.03284,"84":0.15761,"85":0.03284,"86":0.03284,"87":0.07224,"88":2.56113,"89":0.03284,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 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 59 63 64 65 67 69 71 73 76 90 91 3.5 3.6"},D:{"23":0.00657,"24":0.0197,"25":0.01313,"41":0.00657,"42":0.00657,"49":0.90625,"51":0.01313,"53":0.01313,"56":0.00657,"57":0.01313,"58":0.01313,"59":0.0197,"60":0.01313,"61":0.31522,"63":0.02627,"64":0.00657,"65":0.00657,"66":0.00657,"67":0.0197,"68":0.02627,"69":0.03284,"70":0.02627,"71":0.02627,"72":0.06567,"73":0.04597,"74":0.97848,"75":0.02627,"76":0.0197,"77":0.03284,"78":0.49909,"79":0.58446,"80":0.57133,"81":0.5582,"83":0.61073,"84":0.637,"85":0.17074,"86":0.40059,"87":0.80117,"88":0.51879,"89":1.22803,"90":31.85652,"91":0.95878,"92":0.03284,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 43 44 45 46 47 48 50 52 54 55 62 93 94"},F:{"36":0.07224,"47":0.00657,"58":0.02627,"63":0.00657,"66":0.02627,"67":0.00657,"68":0.01313,"69":0.01313,"70":0.0197,"71":0.0197,"72":0.0197,"73":0.48596,"74":0.06567,"75":4.03214,"76":6.44223,_:"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 48 49 50 51 52 53 54 55 56 57 60 62 64 65 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03284},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00164,"6.0-6.1":0.01093,"7.0-7.1":0.01749,"8.1-8.4":0.00601,"9.0-9.2":0.00547,"9.3":0.05357,"10.0-10.2":0.00929,"10.3":0.06231,"11.0-11.2":0.02788,"11.3-11.4":0.02952,"12.0-12.1":0.03443,"12.2-12.4":0.1197,"13.0-13.1":0.02514,"13.2":0.01858,"13.3":0.08089,"13.4-13.7":0.26509,"14.0-14.4":3.64463,"14.5-14.6":0.82808},E:{"4":0,"12":0.01313,"13":0.06567,"14":1.08356,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.30865,"11.1":0.0197,"12.1":0.0591,"13.1":0.24955,"14.1":0.44656},B:{"17":0.00657,"18":0.0394,"84":0.0197,"86":0.00657,"87":0.03284,"88":0.04597,"89":0.0197,"90":1.02445,"91":0.0394,_:"12 13 14 15 16 79 80 81 83 85"},P:{"4":0.04365,"5.0-5.4":0.01052,"6.2-6.4":0.09153,"7.2-7.4":0.03274,"8.2":0.02034,"9.2":0.02183,"10.1":0.03274,"11.1-11.2":0.09821,"12.0":0.06548,"13.0":0.1746,"14.0":0.92758},I:{"0":0,"3":0,"4":0.00025,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00175,"4.2-4.3":0.00525,"4.4":0,"4.4.3-4.4.4":0.0305},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02818,"9":0.01409,"10":0.00704,"11":0.33814,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.16474},Q:{"10.4":0.01373},O:{"0":0.55942},H:{"0":3.52863},L:{"0":23.90923}}; +module.exports={C:{"4":0.01163,"5":0.00581,"15":0.00581,"17":0.01744,"20":0.09884,"21":0.01163,"38":0.00581,"43":0.00581,"45":0.02326,"50":0.01163,"52":0.20349,"53":0.01163,"54":0.00581,"55":0.0407,"56":0.03488,"57":0.01163,"58":0.01744,"59":0.00581,"60":0.16279,"61":0.00581,"63":0.00581,"66":0.01163,"68":0.23837,"72":0.01163,"77":0.00581,"78":0.17442,"79":0.01744,"80":0.01163,"81":0.02907,"82":0.01744,"83":0.02326,"84":0.02907,"85":0.01163,"86":0.01163,"87":0.02326,"88":0.13372,"89":1.47676,"90":0.72094,"91":0.01163,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 46 47 48 49 51 62 64 65 67 69 70 71 73 74 75 76 92 3.5","3.6":0.00581},D:{"11":0.01163,"23":0.00581,"24":0.01744,"25":0.01163,"34":0.00581,"36":0.01163,"37":0.00581,"38":0.00581,"39":0.01163,"40":0.00581,"41":0.01163,"42":0.00581,"43":0.01163,"44":0.01163,"45":0.01163,"46":0.00581,"47":0.02326,"48":0.03488,"49":0.73256,"50":0.01744,"51":0.00581,"53":0.00581,"56":0.02326,"57":0.06395,"58":0.00581,"59":0.03488,"60":0.01163,"61":0.19186,"63":0.02326,"64":0.01163,"65":0.01163,"66":0.01163,"67":0.01744,"68":0.01744,"69":0.01744,"70":0.02326,"71":0.0407,"72":0.01744,"73":0.02907,"74":1.72676,"75":0.02326,"76":0.01744,"77":0.01744,"78":0.86629,"79":0.95931,"80":0.88954,"81":0.90117,"83":0.94768,"84":0.91861,"85":0.09884,"86":0.22093,"87":0.52907,"88":0.40698,"89":0.27907,"90":0.67442,"91":22.44785,"92":4.47678,"93":0.02326,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 35 52 54 55 62 94 95"},F:{"22":0.00581,"28":0.00581,"34":0.02326,"35":0.02326,"36":0.08721,"54":0.00581,"58":0.01744,"66":0.00581,"68":0.01163,"69":0.01163,"71":0.01163,"72":0.01163,"73":0.02326,"74":0.02326,"75":0.02907,"76":0.80815,"77":7.31983,_:"9 11 12 15 16 17 18 19 20 21 23 24 25 26 27 29 30 31 32 33 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 60 62 63 64 65 67 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.04651},G:{"8":0.00102,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00102,"5.0-5.1":0.02446,"6.0-6.1":0.0107,"7.0-7.1":0.03261,"8.1-8.4":0.00713,"9.0-9.2":0.00459,"9.3":0.0479,"10.0-10.2":0.01019,"10.3":0.10447,"11.0-11.2":0.02242,"11.3-11.4":0.02446,"12.0-12.1":0.02242,"12.2-12.4":0.08153,"13.0-13.1":0.0214,"13.2":0.0158,"13.3":0.05758,"13.4-13.7":0.18906,"14.0-14.4":0.88159,"14.5-14.7":3.32354},E:{"4":0,"11":0.00581,"12":0.01163,"13":0.06977,"14":0.41279,"15":0.01163,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.21512,"11.1":0.01744,"12.1":0.03488,"13.1":0.16861,"14.1":0.92443},B:{"12":0.00581,"13":0.00581,"15":0.00581,"16":0.01163,"17":0.00581,"18":0.02326,"81":0.00581,"83":0.00581,"84":0.01744,"85":0.01163,"86":0.01163,"87":0.00581,"88":0.01163,"89":0.00581,"90":0.00581,"91":0.66861,"92":0.15698,_:"14 79 80"},P:{"4":0.16459,"5.0-5.4":0.01029,"6.2-6.4":0.02057,"7.2-7.4":0.29832,"8.2":0.06172,"9.2":0.27775,"10.1":0.10287,"11.1-11.2":0.78181,"12.0":0.19545,"13.0":0.54521,"14.0":5.51383},I:{"0":0,"3":0,"4":0.00052,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00364,"4.2-4.3":0.01457,"4.4":0,"4.4.3-4.4.4":0.08171},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03977,"9":0.01988,"10":0.01326,"11":0.25849,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":27.19099},S:{"2.5":0},R:{_:"0"},M:{"0":0.12974},Q:{"10.4":0},O:{"0":0.25529},H:{"0":2.93987}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js index 47386d502b54fb..fe70fa448cd172 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js @@ -1 +1 @@ -module.exports={C:{"17":0.01107,"21":0.00369,"24":0.00369,"32":0.00369,"34":0.00369,"35":0.00738,"36":0.00738,"37":0.00369,"38":0.00369,"39":0.00738,"40":0.00738,"41":0.00369,"42":0.02213,"43":0.02582,"44":0.01107,"45":0.00738,"46":0.00738,"47":0.01845,"48":0.01845,"49":0.00738,"50":0.01107,"52":0.05165,"55":0.00369,"56":0.0332,"57":0.00738,"58":0.01107,"59":0.00369,"60":0.02582,"61":0.00369,"62":0.00369,"64":0.00738,"66":0.00738,"67":0.00738,"68":0.01107,"69":0.00369,"71":0.01476,"72":0.02951,"76":0.04058,"77":0.00738,"78":0.08854,"79":0.00369,"80":0.01107,"81":0.00738,"82":0.01476,"83":0.01107,"84":0.01476,"85":0.03689,"86":0.05165,"87":0.09591,"88":3.689,"89":0.60869,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 22 23 25 26 27 28 29 30 31 33 51 53 54 63 65 70 73 74 75 90 91 3.5 3.6"},D:{"19":0.01845,"24":0.00738,"38":0.01476,"39":0.00738,"43":0.00738,"47":0.00369,"49":0.02582,"50":0.00369,"51":0.00369,"53":0.00369,"55":0.00369,"56":0.00738,"57":0.01845,"58":0.00738,"59":0.00369,"62":0.00738,"63":0.02582,"64":0.05165,"65":0.01107,"67":0.00369,"68":0.01107,"69":0.00738,"70":0.01107,"71":0.00738,"72":0.02951,"73":0.00738,"74":0.02213,"75":0.01107,"76":0.04427,"77":0.00738,"78":0.05165,"79":0.16601,"80":0.1328,"81":0.02213,"83":0.05165,"84":0.02582,"85":0.0332,"86":0.08485,"87":0.21396,"88":0.16969,"89":0.7378,"90":16.50828,"91":0.81896,"92":0.0332,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 44 45 46 48 52 54 60 61 66 93 94"},F:{"28":0.00738,"34":0.00738,"63":0.02213,"72":0.00369,"73":0.01476,"74":0.01107,"75":0.45006,"76":0.83003,_:"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 64 65 66 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00364,"6.0-6.1":0.0085,"7.0-7.1":0.02104,"8.1-8.4":0.00364,"9.0-9.2":0.00526,"9.3":0.05827,"10.0-10.2":0.00647,"10.3":0.08295,"11.0-11.2":0.09994,"11.3-11.4":0.05746,"12.0-12.1":0.03358,"12.2-12.4":0.17723,"13.0-13.1":0.07324,"13.2":0.01942,"13.3":0.08861,"13.4-13.7":0.46331,"14.0-14.4":1.98716,"14.5-14.6":0.4018},E:{"4":0,"12":0.01476,"13":0.01476,"14":0.32094,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.05534,"10.1":0.00738,"11.1":0.01107,"12.1":0.01476,"13.1":0.07378,"14.1":0.09223},B:{"12":0.04796,"13":0.01845,"14":0.01476,"15":0.0332,"16":0.0332,"17":0.02213,"18":0.21027,"84":0.01845,"85":0.02951,"86":0.00369,"87":0.00738,"88":0.01107,"89":0.10329,"90":3.0508,"91":0.09223,_:"79 80 81 83"},P:{"4":0.19988,"5.0-5.4":0.01052,"6.2-6.4":0.09153,"7.2-7.4":0.07364,"8.2":0.02034,"9.2":0.08416,"10.1":0.06423,"11.1-11.2":0.1578,"12.0":0.07364,"13.0":0.3682,"14.0":0.61016},I:{"0":0,"3":0,"4":0.00063,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.00696,"4.4":0,"4.4.3-4.4.4":0.12306},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02085,"10":0.00521,"11":0.21372,_:"6 7 9 5.5"},J:{"7":0,"10":0.04418},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.22723},R:{_:"0"},M:{"0":0.16411},Q:{"10.4":0},O:{"0":0.9468},H:{"0":18.14849},L:{"0":43.17181}}; +module.exports={C:{"18":0.00376,"21":0.00376,"30":0.00376,"31":0.00376,"35":0.00376,"36":0.00376,"37":0.00376,"38":0.00376,"39":0.00752,"40":0.00376,"41":0.0301,"42":0.00752,"43":0.01129,"44":0.01505,"45":0.00752,"46":0.00752,"47":0.05267,"48":0.00376,"49":0.01129,"50":0.00752,"52":0.04138,"55":0.00376,"56":0.00752,"57":0.01129,"58":0.00752,"60":0.01129,"61":0.00376,"62":0.00376,"64":0.02257,"66":0.00752,"67":0.00376,"68":0.01505,"69":0.00376,"70":0.00752,"71":0.00752,"72":0.01881,"78":0.09781,"79":0.00752,"80":0.01129,"81":0.00376,"82":0.00376,"83":0.00752,"84":0.02633,"85":0.01505,"86":0.01505,"87":0.02633,"88":0.08276,"89":2.29106,"90":1.5048,"91":0.26334,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 22 23 24 25 26 27 28 29 32 33 34 51 53 54 59 63 65 73 74 75 76 77 92 3.5 3.6"},D:{"11":0.01129,"19":0.01505,"23":0.01129,"24":0.00376,"33":0.00752,"37":0.00376,"38":0.01881,"39":0.00376,"40":0.00376,"43":0.00376,"47":0.01129,"49":0.06395,"50":0.00376,"51":0.00752,"55":0.00752,"57":0.01129,"58":0.00376,"59":0.00752,"62":0.00376,"63":0.01881,"64":0.04891,"65":0.04138,"67":0.00376,"68":0.00376,"69":0.00752,"70":0.00376,"71":0.00752,"72":0.01881,"73":0.01129,"74":0.01881,"75":0.01505,"76":0.04138,"77":0.01505,"78":0.04514,"79":0.07524,"80":0.09781,"81":0.0301,"83":0.05643,"84":0.03386,"85":0.01881,"86":0.09029,"87":0.20691,"88":0.06772,"89":0.28591,"90":0.50411,"91":14.57399,"92":3.88238,"93":0.02633,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 25 26 27 28 29 30 31 32 34 35 36 41 42 44 45 46 48 52 53 54 56 60 61 66 94 95"},F:{"28":0.02257,"42":0.00376,"63":0.00376,"64":0.00752,"75":0.00752,"76":0.04138,"77":1.38442,_:"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 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00095,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00142,"5.0-5.1":0.01799,"6.0-6.1":0.00142,"7.0-7.1":0.03693,"8.1-8.4":0.00426,"9.0-9.2":0.00189,"9.3":0.15482,"10.0-10.2":0.00615,"10.3":0.0928,"11.0-11.2":0.09185,"11.3-11.4":0.08096,"12.0-12.1":0.04687,"12.2-12.4":0.16098,"13.0-13.1":0.07954,"13.2":0.01704,"13.3":0.18086,"13.4-13.7":0.21211,"14.0-14.4":1.3612,"14.5-14.7":1.64812},E:{"4":0,"9":0.00376,"12":0.01129,"13":0.01505,"14":0.12038,_:"0 5 6 7 8 10 11 15 3.1 3.2 6.1 7.1 9.1","5.1":0.04138,"10.1":0.00752,"11.1":0.01129,"12.1":0.02633,"13.1":0.09029,"14.1":0.23701},B:{"12":0.05267,"13":0.01881,"14":0.01505,"15":0.03762,"16":0.03386,"17":0.01505,"18":0.11662,"84":0.01505,"85":0.02633,"86":0.00376,"87":0.01129,"88":0.00752,"89":0.04138,"90":0.04138,"91":1.6139,"92":0.41006,_:"79 80 81 83"},P:{"4":0.18893,"5.0-5.4":0.02099,"6.2-6.4":0.04068,"7.2-7.4":0.07347,"8.2":0.01012,"9.2":0.14695,"10.1":0.02099,"11.1-11.2":0.13645,"12.0":0.03149,"13.0":0.16794,"14.0":0.96566},I:{"0":0,"3":0,"4":0.00067,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00156,"4.2-4.3":0.00468,"4.4":0,"4.4.3-4.4.4":0.08043},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01275,"10":0.01275,"11":0.20398,_:"6 7 9 5.5"},J:{"7":0,"10":0.02495},N:{"10":0.01143,"11":0.01864},L:{"0":45.91064},S:{"2.5":0.28071},R:{_:"0"},M:{"0":0.14347},Q:{"10.4":0.00624},O:{"0":1.39731},H:{"0":14.74072}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js index 315214e5bb3865..a9c197014840b4 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js @@ -1 +1 @@ -module.exports={C:{"2":0.00983,"3":0.00983,"4":0.04913,"11":0.01474,"17":0.00491,"38":0.00491,"44":0.01474,"45":0.00491,"48":0.01474,"52":0.0393,"54":0.01965,"55":0.00491,"56":0.02948,"58":0.01965,"59":0.00491,"60":0.00491,"63":0.00983,"66":0.00491,"68":0.00983,"72":0.00983,"76":0.00491,"77":0.00491,"78":0.14739,"79":0.00983,"80":0.00983,"81":0.00983,"82":0.02457,"83":0.00983,"84":0.01965,"85":0.02457,"86":0.03439,"87":0.08352,"88":2.1175,"89":0.00983,_:"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 43 46 47 49 50 51 53 57 61 62 64 65 67 69 70 71 73 74 75 90 91 3.5","3.6":0.00491},D:{"33":0.00983,"35":0.02457,"38":0.00491,"40":0.02457,"43":0.00983,"47":0.00491,"48":0.04913,"49":0.26039,"51":0.00983,"52":0.00491,"53":0.02948,"56":0.10809,"58":0.00491,"59":0.00983,"60":0.03439,"61":0.31443,"62":0.00491,"63":0.01474,"64":0.06387,"65":0.01965,"66":0.04913,"67":0.03439,"68":0.01474,"69":0.01965,"70":0.07861,"71":0.00983,"72":0.08843,"73":0.01965,"74":0.07861,"75":0.14739,"76":0.18669,"77":0.0737,"78":0.14248,"79":0.22109,"80":0.18178,"81":0.10809,"83":0.09826,"84":0.16704,"85":0.20143,"86":0.28495,"87":0.52078,"88":0.79591,"89":2.20594,"90":21.39612,"91":0.40287,"92":0.05404,"93":0.01965,_:"4 5 6 7 8 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 46 50 54 55 57 94"},F:{"73":0.04422,"74":0.00491,"75":0.21126,"76":0.21617,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00282,"6.0-6.1":0.01129,"7.0-7.1":0.02259,"8.1-8.4":0.02259,"9.0-9.2":0.01977,"9.3":0.14965,"10.0-10.2":0.03106,"10.3":0.17507,"11.0-11.2":0.07906,"11.3-11.4":0.10165,"12.0-12.1":0.10447,"12.2-12.4":0.31907,"13.0-13.1":0.09883,"13.2":0.048,"13.3":0.26542,"13.4-13.7":0.91768,"14.0-14.4":21.26768,"14.5-14.6":3.8938},E:{"4":0,"8":1.1349,"9":0.00983,"11":0.01474,"12":0.02457,"13":0.14248,"14":4.36766,_:"0 5 6 7 10 3.1 3.2 6.1 7.1","5.1":0.00491,"9.1":0.09826,"10.1":0.0393,"11.1":0.12283,"12.1":0.18669,"13.1":0.76643,"14.1":1.50829},B:{"12":0.01474,"14":0.00491,"15":0.00983,"16":0.00983,"17":0.01965,"18":0.17196,"80":0.00491,"84":0.00983,"85":0.00983,"86":0.01474,"87":0.01965,"88":0.02457,"89":0.14248,"90":5.04074,"91":0.09335,_:"13 79 81 83"},P:{"4":0.06474,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.03237,"11.1-11.2":0.07553,"12.0":0.04316,"13.0":0.24817,"14.0":1.84508},I:{"0":0,"3":0,"4":0.05839,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01168,"4.2-4.3":0.11677,"4.4":0,"4.4.3-4.4.4":0.19462},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00545,"8":0.01634,"9":0.27772,"11":0.80593,_:"6 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.42214},Q:{"10.4":0.02034},O:{"0":0.22887},H:{"0":0.24075},L:{"0":20.79745}}; +module.exports={C:{"4":0.04195,"11":0.01398,"17":0.00466,"38":0.00466,"43":0.02331,"44":0.01864,"45":0.00932,"48":0.01398,"52":0.04195,"54":0.01398,"55":0.00932,"56":0.00932,"58":0.02331,"59":0.00466,"63":0.00932,"68":0.00932,"70":0.02331,"72":0.00466,"73":0.00466,"76":0.00932,"77":0.00466,"78":0.1678,"79":0.01398,"80":0.00932,"81":0.00932,"82":0.02331,"83":0.00932,"84":0.01398,"85":0.00932,"86":0.01864,"87":0.00932,"88":0.05593,"89":1.47754,"90":0.78305,"91":0.00466,_:"2 3 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 51 53 57 60 61 62 64 65 66 67 69 71 74 75 92 3.5 3.6"},D:{"33":0.00466,"35":0.01398,"38":0.00932,"40":0.02331,"43":0.00466,"46":0.00466,"47":0.00466,"48":0.05593,"49":0.21907,"52":0.00466,"53":0.00466,"56":0.11653,"58":0.00466,"59":0.01398,"60":0.02331,"61":0.06992,"62":0.00466,"63":0.01398,"64":0.04661,"65":0.01864,"66":0.05127,"67":0.02797,"68":0.00466,"69":0.01864,"70":0.06525,"71":0.02331,"72":0.06059,"73":0.00932,"74":0.08856,"75":0.0839,"76":0.14449,"77":0.03729,"78":0.07458,"79":0.20042,"80":0.11653,"81":0.08856,"83":0.09322,"84":0.13983,"85":0.12585,"86":0.13051,"87":0.42415,"88":0.22373,"89":0.34025,"90":1.15593,"91":18.04739,"92":2.74067,"93":0.05127,"94":0.03263,_:"4 5 6 7 8 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 51 54 55 57 95"},F:{"75":0.00466,"76":0.11653,"77":0.39619,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00292,"6.0-6.1":0.01461,"7.0-7.1":0.02045,"8.1-8.4":0.02045,"9.0-9.2":0.02045,"9.3":0.149,"10.0-10.2":0.02629,"10.3":0.16945,"11.0-11.2":0.07304,"11.3-11.4":0.09057,"12.0-12.1":0.10518,"12.2-12.4":0.26294,"13.0-13.1":0.08473,"13.2":0.0409,"13.3":0.22788,"13.4-13.7":0.7859,"14.0-14.4":4.13987,"14.5-14.7":22.29163},E:{"4":0,"8":0.00932,"9":0.00932,"11":0.01398,"12":0.02331,"13":0.13051,"14":1.27711,"15":0.02797,_:"0 5 6 7 10 3.1 3.2 5.1 6.1 7.1","9.1":0.07458,"10.1":0.03729,"11.1":0.12119,"12.1":0.18644,"13.1":1.73855,"14.1":4.86142},B:{"12":0.00466,"14":0.00466,"15":0.00466,"16":0.00466,"17":0.01864,"18":0.13517,"84":0.00932,"85":0.00932,"86":0.01398,"87":0.01864,"88":0.00932,"89":0.02797,"90":0.03729,"91":4.51185,"92":0.9089,_:"13 79 80 81 83"},P:{"4":0.07541,"5.0-5.4":0.02099,"6.2-6.4":0.04068,"7.2-7.4":0.06168,"8.2":0.01077,"9.2":0.01077,"10.1":0.02056,"11.1-11.2":0.07541,"12.0":0.03232,"13.0":0.14005,"14.0":2.06848},I:{"0":0,"3":0,"4":0.01306,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00261,"4.2-4.3":0.02437,"4.4":0,"4.4.3-4.4.4":0.04004},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01549,"9":0.33047,"11":0.70742,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":23.05286},S:{"2.5":0},R:{_:"0"},M:{"0":0.45915},Q:{"10.4":0.02136},O:{"0":0.24559},H:{"0":0.24768}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js index f520e7f4429fb0..49e990e456ce13 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js @@ -1 +1 @@ -module.exports={C:{"43":0.00519,"45":0.00519,"47":0.01038,"51":0.00519,"52":0.08823,"53":0.00519,"55":0.01038,"57":0.02595,"59":0.00519,"61":0.01557,"63":0.00519,"66":0.03633,"68":0.03114,"71":0.00519,"73":0.04671,"78":0.08823,"79":0.01038,"80":0.00519,"81":0.00519,"82":0.00519,"83":0.01557,"84":0.03114,"85":0.01038,"86":0.02595,"87":0.04671,"88":2.65209,"89":0.01557,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 54 56 58 60 62 64 65 67 69 70 72 74 75 76 77 90 91 3.5 3.6"},D:{"36":0.06228,"38":0.02076,"43":0.01557,"46":0.00519,"47":0.02076,"48":0.01557,"49":0.24912,"52":0.00519,"53":0.01038,"54":0.00519,"55":0.01038,"57":0.00519,"58":0.00519,"60":0.01038,"62":0.02595,"63":0.01557,"65":0.02595,"66":0.01038,"67":0.01038,"68":0.00519,"69":0.01557,"70":0.01557,"71":0.04152,"72":0.02076,"73":0.01557,"74":0.03114,"75":0.01557,"76":0.03114,"77":0.03114,"78":0.01557,"79":0.06228,"80":0.3114,"81":0.08823,"83":0.07266,"84":0.04152,"85":0.07266,"86":1.83207,"87":0.22317,"88":0.40482,"89":0.91863,"90":34.28514,"91":1.20408,"92":0.01038,_:"4 5 6 7 8 9 10 11 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 44 45 50 51 56 59 61 64 93 94"},F:{"73":0.35292,"74":0.00519,"75":1.27674,"76":0.55533,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00268,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02347,"6.0-6.1":0.00201,"7.0-7.1":0.01341,"8.1-8.4":0.00067,"9.0-9.2":0.00134,"9.3":0.03889,"10.0-10.2":0.00469,"10.3":0.03956,"11.0-11.2":0.01274,"11.3-11.4":0.02146,"12.0-12.1":0.02079,"12.2-12.4":0.10796,"13.0-13.1":0.00805,"13.2":0.00402,"13.3":0.08181,"13.4-13.7":0.29908,"14.0-14.4":4.58943,"14.5-14.6":0.8751},E:{"4":0,"12":0.00519,"13":0.04152,"14":0.56571,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.20241,"10.1":0.00519,"11.1":0.02595,"12.1":0.13494,"13.1":0.21279,"14.1":0.33216},B:{"12":0.01557,"13":0.01038,"15":0.01038,"17":0.00519,"18":0.04152,"80":0.01038,"84":0.01038,"89":0.04152,"90":2.22132,"91":0.16608,_:"14 16 79 81 83 85 86 87 88"},P:{"4":0.08232,"5.0-5.4":0.01052,"6.2-6.4":0.09153,"7.2-7.4":0.14406,"8.2":0.02034,"9.2":0.12348,"10.1":0.02058,"11.1-11.2":0.2058,"12.0":0.19551,"13.0":0.27784,"14.0":1.46121},I:{"0":0,"3":0,"4":0.00976,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00781,"4.2-4.3":0.01757,"4.4":0,"4.4.3-4.4.4":0.16206},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.22317,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.21164},Q:{"10.4":0},O:{"0":0.00962},H:{"0":0.15938},L:{"0":40.27003}}; +module.exports={C:{"33":0.00496,"40":0.00991,"41":0.00496,"45":0.00496,"47":0.00496,"48":0.00991,"50":0.00496,"51":0.00496,"52":0.10406,"55":0.00991,"57":0.01487,"59":0.00496,"60":0.00496,"61":0.02478,"62":0.00991,"65":0.00991,"66":0.0446,"67":0.00496,"68":0.01487,"69":0.00991,"72":0.00496,"73":0.05451,"78":0.09415,"79":0.01487,"81":0.00991,"82":0.00991,"83":0.00496,"84":0.00991,"85":0.00991,"86":0.00991,"87":0.00991,"88":0.05946,"89":1.56578,"90":0.91172,"91":0.00991,_:"2 3 4 5 6 7 8 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 42 43 44 46 49 53 54 56 58 63 64 70 71 74 75 76 77 80 92 3.5 3.6"},D:{"36":0.01487,"38":0.01487,"43":0.01487,"46":0.00496,"47":0.01487,"48":0.01487,"49":0.20316,"50":0.00496,"53":0.00496,"55":0.00991,"57":0.01487,"58":0.01487,"60":0.01487,"62":0.02478,"63":0.00991,"65":0.04955,"66":0.00991,"68":0.00496,"69":0.00991,"70":0.01487,"71":0.03964,"72":0.00991,"73":0.00991,"74":0.04955,"75":0.01982,"76":0.03469,"77":0.02478,"78":0.01487,"79":0.06442,"80":0.23784,"81":0.06937,"83":0.05451,"84":0.03469,"85":0.04955,"86":1.69461,"87":0.14865,"88":0.13379,"89":0.28244,"90":0.6392,"91":27.03944,"92":6.48114,"93":0.00991,_:"4 5 6 7 8 9 10 11 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 44 45 51 52 54 56 59 61 64 67 94 95"},F:{"75":0.01982,"76":0.86217,"77":1.36758,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.01455,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02356,"6.0-6.1":0.00485,"7.0-7.1":0.01663,"8.1-8.4":0,"9.0-9.2":0.00069,"9.3":0.03049,"10.0-10.2":0.00277,"10.3":0.07899,"11.0-11.2":0.00832,"11.3-11.4":0.02217,"12.0-12.1":0.01802,"12.2-12.4":0.06306,"13.0-13.1":0.00832,"13.2":0.00277,"13.3":0.07414,"13.4-13.7":0.23352,"14.0-14.4":0.97011,"14.5-14.7":4.80896},E:{"4":0,"12":0.00496,"13":0.02478,"14":0.20811,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02478,"11.1":0.01487,"12.1":0.10406,"13.1":0.17343,"14.1":0.81262},B:{"12":0.00991,"13":0.00991,"14":0.00496,"15":0.00991,"17":0.00496,"18":0.02973,"80":0.01487,"84":0.00496,"89":0.01982,"90":0.01982,"91":1.87795,"92":0.5401,_:"16 79 81 83 85 86 87 88"},P:{"4":0.09279,"5.0-5.4":0.02099,"6.2-6.4":0.04068,"7.2-7.4":0.13403,"8.2":0.02062,"9.2":0.08248,"10.1":0.04124,"11.1-11.2":0.17528,"12.0":0.1031,"13.0":0.20621,"14.0":1.5053},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.00685,"4.4":0,"4.4.3-4.4.4":0.08558},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00496,"11":0.23289,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":43.13722},S:{"2.5":0},R:{_:"0"},M:{"0":0.28757},Q:{"10.4":0},O:{"0":0.01009},H:{"0":0.15762}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js index b09469c693e7c1..397dafba0b32a1 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.04095,"57":0.01638,"68":0.01229,"72":0.20475,"77":0.00819,"78":0.04095,"79":0.33579,"80":0.01638,"81":0.00819,"83":0.00819,"84":0.02048,"85":0.00819,"86":0.00819,"87":0.02048,"88":1.1507,"89":0.03276,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 69 70 71 73 74 75 76 82 90 91 3.5 3.6"},D:{"34":0.01229,"49":0.30303,"53":0.0041,"55":0.0041,"56":0.03276,"59":0.0041,"63":0.00819,"66":0.05733,"67":0.01638,"68":0.00819,"70":0.01229,"71":0.05324,"72":0.02867,"73":0.01229,"74":0.01229,"75":0.0041,"76":0.01638,"77":0.00819,"78":0.0041,"79":0.09419,"80":0.03276,"81":0.02048,"83":0.06143,"84":0.06552,"85":0.06143,"86":0.19656,"87":0.29075,"88":0.34398,"89":0.47502,"90":24.04584,"91":1.10156,"92":0.02867,_:"4 5 6 7 8 9 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 50 51 52 54 57 58 60 61 62 64 65 69 93 94"},F:{"36":0.00819,"40":0.01229,"42":0.00819,"45":0.03276,"46":0.00819,"48":0.00819,"49":0.00819,"50":0.01638,"51":0.01229,"53":0.07371,"54":0.01638,"55":0.01229,"56":0.01229,"57":0.10647,"58":0.02457,"60":0.04095,"62":0.04095,"63":0.02457,"64":0.05733,"65":0.01638,"66":0.02048,"67":0.05324,"68":0.02048,"69":0.01229,"70":0.24161,"71":0.02867,"72":0.06552,"73":0.14742,"74":0.03276,"75":0.05733,"76":0.04505,_:"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 47 52 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00237,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00047,"5.0-5.1":0.00379,"6.0-6.1":0.00189,"7.0-7.1":0.04449,"8.1-8.4":0.00331,"9.0-9.2":0.00899,"9.3":0.06437,"10.0-10.2":0.00757,"10.3":0.08851,"11.0-11.2":0.03503,"11.3-11.4":0.08425,"12.0-12.1":0.02698,"12.2-12.4":0.1633,"13.0-13.1":0.03219,"13.2":0.01041,"13.3":0.0497,"13.4-13.7":0.23856,"14.0-14.4":2.72497,"14.5-14.6":0.7313},E:{"4":0,"11":0.00819,"13":0.00819,"14":0.36446,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.77314,"11.1":0.0041,"12.1":0.00819,"13.1":0.11057,"14.1":0.18428},B:{"12":0.0041,"14":0.0041,"15":0.00819,"16":0.00819,"17":0.02867,"18":0.07371,"83":0.0041,"84":0.02457,"85":0.0041,"88":0.00819,"89":0.02867,"90":0.77396,"91":0.06143,_:"13 79 80 81 86 87"},P:{"4":1.25801,"5.0-5.4":0.16232,"6.2-6.4":0.24349,"7.2-7.4":0.47683,"8.2":0.02029,"9.2":0.24349,"10.1":0.12174,"11.1-11.2":0.55799,"12.0":0.29421,"13.0":1.06525,"14.0":1.67396},I:{"0":0,"3":0,"4":0.00193,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00358,"4.2-4.3":0.01266,"4.4":0,"4.4.3-4.4.4":0.05861},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01588,"11":0.50033,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.06496},Q:{"10.4":0.01772},O:{"0":4.724},H:{"0":0.50314},L:{"0":44.47511}}; +module.exports={C:{"52":0.04714,"57":0.01571,"72":0.54206,"73":0.01178,"78":0.04321,"79":0.00786,"81":0.00786,"82":0.01178,"83":0.01964,"84":0.01178,"85":0.00393,"87":0.00393,"88":0.01571,"89":0.6874,"90":0.32602,"91":0.00393,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 74 75 76 77 80 86 92 3.5 3.6"},D:{"28":0.01178,"34":0.00786,"38":0.00786,"47":0.00393,"49":0.24746,"53":0.00786,"56":0.0275,"57":0.05106,"59":0.00393,"61":0.00393,"62":0.01178,"63":0.00393,"64":0.00786,"66":0.05106,"67":0.01571,"68":0.00786,"70":0.00786,"71":0.05106,"72":0.01178,"74":0.01571,"75":0.01178,"76":0.01178,"77":0.00786,"78":0.00786,"79":0.10998,"80":0.03142,"81":0.01964,"83":0.0275,"84":0.05892,"85":0.03142,"86":0.11784,"87":0.36923,"88":0.16498,"89":0.13355,"90":0.41244,"91":18.8544,"92":5.46385,"93":0.01964,_:"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 48 50 51 52 54 55 58 60 65 69 73 94 95"},F:{"28":0.01964,"36":0.00786,"40":0.00393,"42":0.00393,"45":0.01571,"49":0.00393,"50":0.00393,"51":0.01964,"53":0.06285,"54":0.00786,"55":0.00786,"56":0.01178,"57":0.10998,"58":0.01964,"60":0.04321,"62":0.03142,"63":0.03535,"64":0.03928,"65":0.01178,"66":0.01571,"67":0.02357,"68":0.01964,"69":0.01571,"70":0.03535,"71":0.01964,"72":0.05892,"73":0.0707,"74":0.01571,"75":0.06285,"76":0.1257,"77":0.09427,_:"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 46 47 48 52 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00108,"5.0-5.1":0.00594,"6.0-6.1":0.00216,"7.0-7.1":0.03673,"8.1-8.4":0.00486,"9.0-9.2":0.0054,"9.3":0.10964,"10.0-10.2":0.00918,"10.3":0.11558,"11.0-11.2":0.0324,"11.3-11.4":0.05779,"12.0-12.1":0.02538,"12.2-12.4":0.1091,"13.0-13.1":0.02052,"13.2":0.00972,"13.3":0.05725,"13.4-13.7":0.20091,"14.0-14.4":1.05585,"14.5-14.7":2.99204},E:{"4":0,"11":0.01571,"13":0.01571,"14":0.15712,"15":0.00393,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.68118,"11.1":0.00393,"12.1":0.01178,"13.1":0.15712,"14.1":0.40066},B:{"16":0.05499,"17":0.00786,"18":0.05106,"83":0.01964,"84":0.01178,"85":0.01178,"86":0.00786,"89":0.01178,"90":0.00786,"91":0.90344,"92":0.21997,_:"12 13 14 15 79 80 81 87 88"},P:{"4":1.14544,"5.0-5.4":0.1115,"6.2-6.4":0.22301,"7.2-7.4":0.54738,"8.2":0.02027,"9.2":0.20273,"10.1":0.06082,"11.1-11.2":0.51697,"12.0":0.23314,"13.0":0.73998,"14.0":2.36184},I:{"0":0,"3":0,"4":0.00094,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00189,"4.2-4.3":0.00582,"4.4":0,"4.4.3-4.4.4":0.03385},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01222,"11":0.31773,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":46.30014},S:{"2.5":0},R:{_:"0"},M:{"0":0.07286},Q:{"10.4":0.01214},O:{"0":4.63901},H:{"0":0.3909}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js index a291e9e9d81fca..ae9984eae1cf6d 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js @@ -1 +1 @@ -module.exports={C:{"63":0.02639,"70":0.0088,"86":0.01759,"87":0.14075,"88":11.93753,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 89 90 91 3.5 3.6"},D:{"67":0.54541,"74":0.02639,"77":0.23752,"81":0.02639,"84":0.46624,"88":0.03519,"89":1.03805,"90":52.34215,"91":1.90895,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 75 76 78 79 80 83 85 86 87 92 93 94"},F:{"75":0.04399,"76":0.31669,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.07222,"8.1-8.4":0.02167,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.06087,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.00516,"14.0-14.4":0.73459,"14.5-14.6":8.227},E:{"4":0,"13":0.01759,"14":1.21399,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.40466,"11.1":0.25511,"12.1":0.08797,"13.1":0.15835,"14.1":1.30196},B:{"17":0.0088,"18":0.36947,"89":0.0088,"90":12.20144,"91":0.78293,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88"},P:{"4":0.49551,"5.0-5.4":0.15169,"6.2-6.4":0.05056,"7.2-7.4":0.30337,"8.2":0.01011,"9.2":0.17191,"10.1":0.03034,"11.1-11.2":0.4045,"12.0":0.13146,"13.0":0.01135,"14.0":1.62248},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.71542,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.02361},S:{"2.5":0},R:{_:"0"},M:{"0":0.00602},Q:{"10.4":0},O:{"0":0.00602},H:{"0":0},L:{"0":1.43097}}; +module.exports={C:{"33":0.01908,"52":0.01908,"65":0.00954,"70":0.05723,"78":0.03815,"84":0.00954,"88":0.01908,"89":8.27898,"90":5.29359,_:"2 3 4 5 6 7 8 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 56 57 58 59 60 61 62 63 64 66 67 68 69 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 91 92 3.5 3.6"},D:{"49":0.01908,"67":0.63905,"75":0.15261,"77":0.28614,"81":0.11446,"84":0.61997,"87":0.01908,"88":0.02861,"89":0.10492,"91":45.54395,"92":13.60119,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 72 73 74 76 78 79 80 83 85 86 90 93 94 95"},F:{"77":0.28614,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.02723,"10.0-10.2":0.01361,"10.3":0.01361,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":0.09484,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.054,"14.0-14.4":0.17606,"14.5-14.7":1.32774},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":0.14307,"11.1":0.10492,"12.1":0.59136,"13.1":0.09538,"14.1":2.3082},B:{"17":0.30522,"18":2.26051,"91":10.4155,"92":2.31773,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90"},P:{"4":0.57467,"5.0-5.4":0.17139,"6.2-6.4":0.05041,"7.2-7.4":0.11434,"8.2":0.04033,"9.2":0.23189,"10.1":0.03025,"11.1-11.2":0.55451,"12.0":0.16131,"13.0":0.40328,"14.0":0.89837},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.57377,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01472,_:"10"},L:{"0":1.74521},S:{"2.5":0},R:{_:"0"},M:{"0":0.0097},Q:{"10.4":0},O:{"0":0},H:{"0":0.18283}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js index e3b699df30269b..335fbe7e77583f 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js @@ -1 +1 @@ -module.exports={C:{"34":0.0085,"52":0.00425,"56":0.0085,"60":0.00425,"63":0.01275,"73":0.00425,"78":0.00425,"87":0.04676,"88":1.37307,"89":0.01275,_:"2 3 4 5 6 7 8 9 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 61 62 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 90 91 3.5 3.6"},D:{"35":0.00425,"49":0.06802,"53":0.15729,"56":0.00425,"57":0.00425,"58":0.01275,"63":0.03826,"65":0.01275,"68":0.01275,"69":0.02551,"72":0.01275,"74":0.21255,"75":0.17854,"76":0.05101,"77":0.05526,"78":0.01275,"79":0.03826,"80":0.0085,"81":0.10202,"83":0.00425,"85":0.01275,"86":0.01275,"87":0.02976,"88":0.14879,"89":1.92145,"90":17.82019,"91":0.83745,"92":0.01275,_:"4 5 6 7 8 9 10 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 50 51 52 54 55 59 60 61 62 64 66 67 70 71 73 84 93 94"},F:{"55":0.00425,"73":0.4081,"75":0.39959,"76":0.48461,_:"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 56 57 58 60 62 63 64 65 66 67 68 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},G:{"8":0.00075,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.046,"6.0-6.1":0.00377,"7.0-7.1":0.07465,"8.1-8.4":0.00603,"9.0-9.2":0.00226,"9.3":0.09426,"10.0-10.2":0.00302,"10.3":0.14403,"11.0-11.2":0.01659,"11.3-11.4":0.02866,"12.0-12.1":0.00528,"12.2-12.4":0.04525,"13.0-13.1":0.03092,"13.2":0.00075,"13.3":0.02036,"13.4-13.7":0.18701,"14.0-14.4":5.581,"14.5-14.6":0.81517},E:{"4":0,"12":0.01275,"13":0.03826,"14":2.9757,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02126,"11.1":0.02551,"12.1":0.04676,"13.1":0.14879,"14.1":1.15202},B:{"15":0.03401,"16":0.00425,"17":0.03826,"18":0.16154,"80":0.00425,"81":0.0085,"83":0.00425,"84":0.00425,"85":0.00425,"86":0.01275,"88":0.00425,"89":0.12753,"90":6.74634,"91":0.2253,_:"12 13 14 79 87"},P:{"4":0.20923,"5.0-5.4":0.02077,"6.2-6.4":0.05019,"7.2-7.4":0.20923,"8.2":0.10461,"9.2":0.49982,"10.1":0.02325,"11.1-11.2":0.20923,"12.0":0.09299,"13.0":0.45333,"14.0":5.10286},I:{"0":0,"3":0,"4":0.00131,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00263,"4.2-4.3":0.00329,"4.4":0,"4.4.3-4.4.4":0.06176},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.50162,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01725},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.08049},Q:{"10.4":0},O:{"0":0.03449},H:{"0":0.02177},L:{"0":48.34769}}; +module.exports={C:{"50":0.00848,"52":0.01272,"53":0.00848,"54":0.00848,"56":0.00424,"57":0.00848,"58":0.00424,"59":0.00848,"60":0.00848,"61":0.00848,"63":0.01272,"68":0.00424,"78":0.01272,"79":0.00848,"83":0.00848,"86":0.00424,"87":0.01272,"88":0.06786,"89":1.44194,"90":0.65736,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 55 62 64 65 66 67 69 70 71 72 73 74 75 76 77 80 81 82 84 85 91 92 3.5 3.6"},D:{"38":0.00424,"46":0.00848,"47":0.00848,"48":0.04241,"49":0.7761,"53":0.26718,"55":0.00848,"56":0.00424,"57":0.00848,"58":0.00848,"60":0.00424,"61":0.00424,"63":0.00848,"64":0.00424,"65":0.05089,"67":0.00848,"68":0.00424,"69":0.02545,"70":0.01272,"74":0.7761,"75":0.06362,"76":0.02545,"77":0.01272,"78":0.01696,"79":0.02121,"80":0.01696,"81":0.34352,"83":0.00848,"84":0.07634,"85":0.00848,"86":0.01272,"87":0.0721,"88":0.02121,"89":0.46651,"90":0.14844,"91":15.3609,"92":3.11289,"93":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 39 40 41 42 43 44 45 50 51 52 54 59 62 66 71 72 73 94 95"},F:{"43":0.00424,"48":0.00424,"54":0.00424,"55":0.00848,"56":0.00424,"74":0.00848,"76":0.14419,"77":0.44106,_:"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 49 50 51 52 53 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00848},G:{"8":0,"3.2":0,"4.0-4.1":0.00079,"4.2-4.3":0,"5.0-5.1":0.02918,"6.0-6.1":0,"7.0-7.1":0.14355,"8.1-8.4":0.00631,"9.0-9.2":0.00315,"9.3":0.12541,"10.0-10.2":0.00158,"10.3":0.07177,"11.0-11.2":0.00315,"11.3-11.4":0.0142,"12.0-12.1":0.00631,"12.2-12.4":0.03786,"13.0-13.1":0.00552,"13.2":0.00552,"13.3":0.0347,"13.4-13.7":0.07572,"14.0-14.4":1.06477,"14.5-14.7":5.95642},E:{"4":0,"10":0.00424,"11":0.00848,"12":0.01272,"13":0.03817,"14":0.30111,"15":0.02121,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00848,"11.1":0.02969,"12.1":0.02969,"13.1":0.1654,"14.1":1.12811},B:{"12":0.00848,"13":0.01696,"14":0.00848,"15":0.00424,"16":0.01696,"17":0.02121,"18":0.32232,"80":0.00848,"81":0.01272,"83":0.01272,"84":0.02121,"85":0.00848,"86":0.00848,"87":0.00848,"89":0.02121,"91":7.10792,"92":1.71761,_:"79 88 90"},P:{"4":0.16809,"5.0-5.4":0.0508,"6.2-6.4":0.05406,"7.2-7.4":0.08405,"8.2":0.02076,"9.2":0.48027,"10.1":0.03114,"11.1-11.2":0.85248,"12.0":0.02401,"13.0":0.30017,"14.0":4.05829},I:{"0":0,"3":0,"4":0.0152,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0024,"4.2-4.3":0.004,"4.4":0,"4.4.3-4.4.4":0.0648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.63191,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":49.05251},S:{"2.5":0},R:{_:"0"},M:{"0":0.13824},Q:{"10.4":0},O:{"0":0.17856},H:{"0":0.07089}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js index c17f4a46e5689b..709985730d3a14 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js @@ -1 +1 @@ -module.exports={C:{"8":0.0179,"27":0.07757,"29":0.00597,"43":0.01193,"45":0.01193,"47":0.01193,"48":0.02387,"51":0.01193,"52":0.41172,"54":0.01193,"56":0.00597,"57":0.00597,"58":0.00597,"60":0.0179,"61":0.00597,"62":0.0179,"64":0.00597,"65":0.0179,"66":0.01193,"68":0.02984,"69":0.00597,"70":0.01193,"71":0.0179,"72":0.04774,"75":0.00597,"77":0.01193,"78":0.13724,"79":0.00597,"80":0.0179,"81":0.0179,"82":0.01193,"83":0.01193,"84":0.02984,"85":0.04774,"86":0.04177,"87":0.06564,"88":3.18041,"89":0.02387,_:"2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 49 50 53 55 59 63 67 73 74 76 90 91 3.5 3.6"},D:{"22":0.00597,"25":0.00597,"37":0.00597,"42":0.01193,"43":0.00597,"45":0.00597,"47":0.01193,"48":0.00597,"49":0.76378,"50":0.00597,"51":0.01193,"52":0.00597,"53":0.0179,"55":0.01193,"56":0.01193,"57":0.00597,"58":0.0179,"60":0.00597,"61":0.02984,"62":0.01193,"63":0.04774,"64":0.0179,"65":0.02984,"66":0.0179,"67":0.0537,"68":0.02387,"69":0.0537,"70":0.0358,"71":0.0716,"72":0.02387,"73":0.0358,"74":0.02984,"75":0.05967,"76":0.0716,"77":0.02984,"78":0.0537,"79":0.13127,"80":0.08354,"81":0.08951,"83":0.10144,"84":0.08951,"85":0.10741,"86":0.26255,"87":0.89505,"88":0.543,"89":1.42015,"90":35.22917,"91":1.48578,"92":0.0179,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 44 46 54 59 93 94"},F:{"36":0.00597,"68":0.0179,"72":0.00597,"73":0.26255,"74":0.0179,"75":1.1576,"76":1.1218,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00026,"3.2":0.00053,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00715,"6.0-6.1":0.00556,"7.0-7.1":0.02544,"8.1-8.4":0.00159,"9.0-9.2":0.00079,"9.3":0.14707,"10.0-10.2":0.00291,"10.3":0.08453,"11.0-11.2":0.01113,"11.3-11.4":0.02544,"12.0-12.1":0.01961,"12.2-12.4":0.08427,"13.0-13.1":0.01086,"13.2":0.00583,"13.3":0.03895,"13.4-13.7":0.13091,"14.0-14.4":1.39096,"14.5-14.6":0.36145},E:{"4":0,"13":0.01193,"14":0.22078,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.33415,"11.1":0.0179,"12.1":0.01193,"13.1":0.05967,"14.1":0.0716},B:{"12":0.00597,"17":0.01193,"18":0.0179,"84":0.01193,"85":0.01193,"87":0.01193,"88":0.00597,"89":0.0358,"90":1.59319,"91":0.13127,_:"13 14 15 16 79 80 81 83 86"},P:{"4":0.12841,"5.0-5.4":0.16232,"6.2-6.4":0.07173,"7.2-7.4":0.18191,"8.2":0.02029,"9.2":0.0749,"10.1":0.0535,"11.1-11.2":0.17121,"12.0":0.0963,"13.0":0.40662,"14.0":1.54087},I:{"0":0,"3":0,"4":0.00064,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00577,"4.2-4.3":0.00816,"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.01899,"11":0.18986,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.04033},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.00403},R:{_:"0"},M:{"0":0.18955},Q:{"10.4":0},O:{"0":0.05243},H:{"0":0.46582},L:{"0":41.60913}}; +module.exports={C:{"8":0.01864,"27":0.06213,"40":0.00621,"43":0.01243,"45":0.01243,"47":0.01243,"48":0.02485,"51":0.01243,"52":0.44112,"54":0.01243,"56":0.00621,"57":0.00621,"58":0.00621,"59":0.00621,"60":0.03107,"61":0.00621,"62":0.00621,"63":0.00621,"65":0.01864,"66":0.02485,"67":0.00621,"68":0.03107,"69":0.00621,"70":0.01864,"71":0.01864,"72":0.03107,"78":0.13047,"79":0.01864,"80":0.01243,"81":0.01243,"82":0.01243,"83":0.01243,"84":0.02485,"85":0.03107,"86":0.01864,"87":0.02485,"88":0.08698,"89":2.17455,"90":1.29852,"91":0.01243,_:"2 3 4 5 6 7 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 41 42 44 46 49 50 53 55 64 73 74 75 76 77 92 3.5 3.6"},D:{"22":0.00621,"25":0.00621,"37":0.00621,"42":0.01243,"45":0.00621,"47":0.00621,"48":0.01243,"49":0.7642,"50":0.00621,"51":0.01243,"53":0.00621,"55":0.00621,"57":0.01243,"58":0.01243,"61":0.0497,"62":0.00621,"63":0.03728,"64":0.01243,"65":0.04349,"66":0.02485,"67":0.04349,"68":0.02485,"69":0.06834,"70":0.03728,"71":0.06213,"72":0.04349,"73":0.02485,"74":0.03107,"75":0.06834,"76":0.08698,"77":0.02485,"78":0.03728,"79":0.17396,"80":0.07456,"81":0.08077,"83":0.08698,"84":0.0932,"85":0.12426,"86":0.16154,"87":0.96923,"88":0.24852,"89":0.49704,"90":1.4352,"91":31.29488,"92":7.43696,"93":0.01864,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 46 52 54 56 59 60 94 95"},F:{"57":0.01243,"68":0.01243,"75":0.01243,"76":0.6213,"77":2.03165,_:"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 67 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00079,"3.2":0.00026,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00785,"6.0-6.1":0.00576,"7.0-7.1":0.01649,"8.1-8.4":0.00262,"9.0-9.2":0.00131,"9.3":0.13921,"10.0-10.2":0.00471,"10.3":0.07746,"11.0-11.2":0.00864,"11.3-11.4":0.01178,"12.0-12.1":0.01518,"12.2-12.4":0.06594,"13.0-13.1":0.00785,"13.2":0.00236,"13.3":0.03192,"13.4-13.7":0.10336,"14.0-14.4":0.41187,"14.5-14.7":1.40231},E:{"4":0,"13":0.01243,"14":0.08077,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.10562,"11.1":0.01864,"12.1":0.01243,"13.1":0.06834,"14.1":0.21124},B:{"12":0.01243,"18":0.01864,"84":0.01243,"89":0.01864,"90":0.01243,"91":1.47248,"92":0.4287,_:"13 14 15 16 17 79 80 81 83 85 86 87 88"},P:{"4":0.1434,"5.0-5.4":0.02036,"6.2-6.4":0.22301,"7.2-7.4":0.15443,"8.2":0.02027,"9.2":0.02206,"10.1":0.01103,"11.1-11.2":0.09928,"12.0":0.04412,"13.0":0.16546,"14.0":1.2575},I:{"0":0,"3":0,"4":0.00044,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00359,"4.2-4.3":0.00551,"4.4":0,"4.4.3-4.4.4":0.03969},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0134,"9":0.0134,"11":0.31491,_:"6 7 10 5.5"},J:{"7":0,"10":0.02651},N:{"10":0.01143,"11":0.01864},L:{"0":39.79854},S:{"2.5":0.00379},R:{_:"0"},M:{"0":0.19314},Q:{"10.4":0},O:{"0":0.05681},H:{"0":0.41948}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js index da23a178383f58..5332b4d5354033 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js @@ -1 +1 @@ -module.exports={C:{"78":0.01934,"86":0.01451,"87":0.01451,"88":1.09294,"89":0.00484,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 90 91 3.5 3.6"},D:{"49":0.57548,"50":0.02418,"53":0.00484,"65":0.00484,"73":0.01934,"74":0.44975,"77":0.24664,"80":0.00484,"81":0.03385,"83":0.04352,"85":0.01451,"86":0.04352,"87":0.05803,"88":0.18377,"89":0.87532,"90":22.69051,"91":0.73024,"92":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 47 48 51 52 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 75 76 78 79 84 93 94"},F:{"73":0.10156,"75":0.38688,"76":0.16442,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00481,"9.0-9.2":0.0016,"9.3":0.14439,"10.0-10.2":0.0016,"10.3":0.13155,"11.0-11.2":0.01444,"11.3-11.4":0.11872,"12.0-12.1":0.01283,"12.2-12.4":0.06257,"13.0-13.1":0.00642,"13.2":0.01765,"13.3":0.11711,"13.4-13.7":0.29198,"14.0-14.4":12.38029,"14.5-14.6":2.45456},E:{"4":0,"8":0.00484,"12":0.13057,"13":0.12574,"14":7.70375,_:"0 5 6 7 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.44491,"11.1":0.01451,"12.1":0.04836,"13.1":0.8463,"14.1":0.81245},B:{"12":0.01451,"13":0.00967,"15":0.14508,"16":0.01451,"17":0.03385,"18":0.51262,"89":0.07738,"90":6.90097,"91":0.35786,_:"14 79 80 81 83 84 85 86 87 88"},P:{"4":0.13592,"5.0-5.4":0.01021,"6.2-6.4":0.02044,"7.2-7.4":0.01046,"8.2":0.04115,"9.2":0.03137,"10.1":0.05144,"11.1-11.2":0.37641,"12.0":0.10456,"13.0":0.41823,"14.0":4.841},I:{"0":0,"3":0,"4":0.04678,"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.01002},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.73507,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0},R:{_:"0"},M:{"0":0.13943},Q:{"10.4":0},O:{"0":0.0568},H:{"0":0.59156},L:{"0":29.89183}}; +module.exports={C:{"22":0.00428,"86":0.01283,"87":0.00428,"88":0.06416,"89":0.73992,"90":0.25662,_:"2 3 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 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 91 92 3.5 3.6"},D:{"49":0.08982,"50":0.04277,"53":0.02139,"70":0.00855,"74":0.66294,"79":0.01711,"80":0.04277,"81":0.04705,"83":0.0556,"84":0.00855,"86":0.03422,"87":0.02994,"88":0.0556,"89":0.05132,"90":0.15825,"91":15.1748,"92":6.02202,"93":0.02994,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 75 76 77 78 85 94 95"},F:{"76":0.17536,"77":0.26945,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.01346,"9.0-9.2":0.00449,"9.3":0.50016,"10.0-10.2":0,"10.3":0.01794,"11.0-11.2":0.04037,"11.3-11.4":0.03813,"12.0-12.1":0.01121,"12.2-12.4":0.02467,"13.0-13.1":0.02916,"13.2":0.00673,"13.3":0.16149,"13.4-13.7":0.26466,"14.0-14.4":3.34637,"14.5-14.7":17.67386},E:{"4":0,"11":0.01283,"12":0.00428,"13":0.08126,"14":0.95805,"15":0.02139,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04277,"11.1":0.00428,"12.1":0.06843,"13.1":0.44053,"14.1":5.24788},B:{"12":0.00428,"15":0.05988,"16":0.00855,"18":0.12831,"89":0.02139,"91":8.20329,"92":1.59532,_:"13 14 17 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.60025,"5.0-5.4":0.01019,"6.2-6.4":0.02048,"7.2-7.4":0.16559,"8.2":0.01024,"9.2":0.0414,"10.1":0.01035,"11.1-11.2":0.45536,"12.0":0.05175,"13.0":0.23803,"14.0":7.52382},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.10693,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.2331},S:{"2.5":0},R:{_:"0"},M:{"0":0.22316},Q:{"10.4":0},O:{"0":0.38337},H:{"0":0.17335}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js index 76541f34445d5f..98fe1eb2129396 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js @@ -1 +1 @@ -module.exports={C:{"17":0.0102,"67":0.0102,"78":0.09176,"85":0.0102,"86":0.01529,"87":0.02549,"88":0.98901,_:"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 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 79 80 81 82 83 84 89 90 91 3.5 3.6"},D:{"37":0.06118,"38":0.0051,"47":0.03569,"49":0.01529,"50":0.02549,"53":0.03059,"58":0.01529,"63":0.0051,"65":0.0102,"68":0.03569,"72":0.02039,"74":0.28549,"75":0.0102,"76":0.01529,"77":0.10196,"78":0.0102,"79":0.02549,"80":0.04588,"81":0.01529,"83":0.09176,"84":0.01529,"85":0.03059,"86":0.0102,"87":0.09176,"88":0.35686,"89":1.94744,"90":20.88141,"91":0.44353,"92":0.01529,_:"4 5 6 7 8 9 10 11 12 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 54 55 56 57 59 60 61 62 64 66 67 69 70 71 73 93 94"},F:{"44":0.0102,"68":0.0051,"73":0.05098,"75":0.14274,"76":0.04588,_:"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 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},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.00266,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05857,"10.0-10.2":0.00266,"10.3":0.13844,"11.0-11.2":0.00532,"11.3-11.4":0.10383,"12.0-12.1":0.01331,"12.2-12.4":0.42066,"13.0-13.1":0.1278,"13.2":0.03994,"13.3":0.08786,"13.4-13.7":0.61501,"14.0-14.4":20.68682,"14.5-14.6":3.87379},E:{"4":0,"12":0.03059,"13":0.08157,"14":7.01485,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01529,"11.1":0.07647,"12.1":0.12235,"13.1":1.18274,"14.1":1.71803},B:{"13":0.0051,"15":0.0102,"16":0.0102,"17":0.02549,"18":0.16314,"83":0.0051,"84":0.0051,"85":0.02549,"86":0.04078,"87":0.02039,"89":0.15294,"90":10.01757,"91":0.63725,_:"12 14 79 80 81 88"},P:{"4":0.08554,"5.0-5.4":0.02091,"6.2-6.4":0.07173,"7.2-7.4":0.06273,"8.2":0.02029,"9.2":0.04277,"10.1":0.03136,"11.1-11.2":0.33147,"12.0":0.10454,"13.0":0.34216,"14.0":4.33046},I:{"0":0,"3":0,"4":0.00294,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00221,"4.4":0,"4.4.3-4.4.4":0.00956},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0102,"10":0.02549,"11":1.23881,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.25},Q:{"10.4":0},O:{"0":0.0098},H:{"0":0.1253},L:{"0":18.73032}}; +module.exports={C:{"50":0.00469,"54":0.00469,"56":0.00469,"59":0.00469,"61":0.00939,"63":0.00469,"68":0.00469,"78":0.02347,"87":0.00939,"88":0.05162,"89":0.97614,"90":0.85413,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 55 57 58 60 62 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 91 92 3.5 3.6"},D:{"34":0.00469,"47":0.00939,"49":0.02347,"53":0.02816,"65":0.04224,"67":0.00939,"68":0.01877,"70":0.00469,"72":0.02347,"73":0.00939,"74":0.34728,"75":0.01408,"76":0.03285,"78":0.00939,"79":0.05162,"80":0.00939,"81":0.00469,"83":0.05632,"84":0.02347,"85":0.01408,"86":0.01408,"87":0.06101,"88":0.07978,"89":0.15956,"90":0.35198,"91":16.96989,"92":2.83927,"93":0.00469,_:"4 5 6 7 8 9 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 54 55 56 57 58 59 60 61 62 63 64 66 69 71 77 94 95"},F:{"54":0.00469,"75":0.00939,"76":0.05632,"77":0.23465,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.14734,"10.0-10.2":0,"10.3":0.14107,"11.0-11.2":0.01881,"11.3-11.4":0.05329,"12.0-12.1":0.01254,"12.2-12.4":0.27274,"13.0-13.1":0.01567,"13.2":0.00627,"13.3":0.05016,"13.4-13.7":0.59564,"14.0-14.4":3.32307,"14.5-14.7":26.07981},E:{"4":0,"8":0.00469,"12":0.02816,"13":0.17833,"14":1.4783,"15":0.01408,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00939,"11.1":0.01408,"12.1":0.15487,"13.1":0.38952,"14.1":7.88424},B:{"12":0.00469,"13":0.0704,"14":0.00939,"15":0.01877,"16":0.01408,"17":0.02347,"18":0.07509,"81":0.00469,"84":0.02816,"85":0.03285,"86":0.00469,"87":0.00939,"89":0.03754,"90":0.03754,"91":7.85608,"92":1.86312,_:"79 80 83 88"},P:{"4":0.19142,"5.0-5.4":0.02079,"6.2-6.4":0.22301,"7.2-7.4":0.02127,"8.2":0.0104,"9.2":0.04254,"10.1":0.03119,"11.1-11.2":0.13825,"12.0":0.09358,"13.0":0.05317,"14.0":4.5516},I:{"0":0,"3":0,"4":0.00884,"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.01238},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.84474,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":18.1426},S:{"2.5":0},R:{_:"0"},M:{"0":0.51468},Q:{"10.4":0},O:{"0":0.04775},H:{"0":0.04019}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js index 8c52452d05977d..a54b4efafe6431 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js @@ -1 +1 @@ -module.exports={C:{"43":0.00505,"51":0.00505,"52":0.06058,"55":0.02019,"56":0.01514,"60":0.01514,"65":0.00505,"66":0.00505,"67":0.00505,"68":0.00505,"72":0.0101,"76":0.0101,"78":0.05553,"79":0.02524,"80":0.04038,"81":0.03534,"82":0.02019,"83":0.01514,"84":0.02524,"85":0.0101,"86":0.01514,"87":0.02019,"88":1.05503,"89":0.02524,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 53 54 57 58 59 61 62 63 64 69 70 71 73 74 75 77 90 91 3.5 3.6"},D:{"22":0.0101,"34":0.01514,"38":0.03029,"41":0.0101,"48":0.0101,"49":0.67643,"53":0.03534,"54":0.01514,"55":0.01514,"56":0.01514,"57":0.06562,"58":0.0101,"61":0.95912,"62":0.0101,"63":0.02019,"64":0.00505,"65":0.0101,"66":0.0101,"67":0.01514,"68":0.0101,"69":0.0101,"70":0.01514,"71":0.02524,"72":0.02019,"73":0.01514,"74":0.02524,"75":0.02524,"76":0.01514,"77":0.03029,"78":0.03534,"79":0.04543,"80":0.09086,"81":0.04038,"83":0.16154,"84":0.26754,"85":0.26754,"86":0.33317,"87":0.63605,"88":0.17668,"89":0.68148,"90":27.45607,"91":0.84806,"92":0.01514,_:"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 42 43 44 45 46 47 50 51 52 59 60 93 94"},F:{"36":0.01514,"43":0.02524,"44":0.00505,"45":0.00505,"46":0.01514,"52":0.00505,"57":0.0101,"68":0.0101,"70":0.0101,"71":0.01514,"72":0.0101,"73":0.05048,"74":0.0101,"75":0.23726,"76":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 37 38 39 40 41 42 47 48 49 50 51 53 54 55 56 58 60 62 63 64 65 66 67 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01307,"6.0-6.1":0.01307,"7.0-7.1":0.04901,"8.1-8.4":0.03594,"9.0-9.2":0.05391,"9.3":0.18786,"10.0-10.2":0.06861,"10.3":0.27444,"11.0-11.2":0.16172,"11.3-11.4":0.2385,"12.0-12.1":0.20093,"12.2-12.4":0.79719,"13.0-13.1":0.14212,"13.2":0.07351,"13.3":0.39696,"13.4-13.7":1.3281,"14.0-14.4":9.46495,"14.5-14.6":1.48982},E:{"4":0,"11":0.0101,"12":0.01514,"13":0.07572,"14":0.90864,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0101,"11.1":0.02524,"12.1":0.05048,"13.1":0.20697,"14.1":0.30288},B:{"14":0.0101,"16":0.0101,"17":0.01514,"18":0.08077,"83":0.00505,"84":0.02019,"85":0.02019,"86":0.02019,"87":0.01514,"88":0.0101,"89":0.04543,"90":1.95358,"91":0.09086,_:"12 13 15 79 80 81"},P:{"4":0.32408,"5.0-5.4":0.02091,"6.2-6.4":0.07173,"7.2-7.4":0.06273,"8.2":0.02029,"9.2":0.06273,"10.1":0.03136,"11.1-11.2":0.20908,"12.0":0.10454,"13.0":0.28226,"14.0":1.63086},I:{"0":0,"3":0,"4":0.00074,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00149,"4.2-4.3":0.00633,"4.4":0,"4.4.3-4.4.4":0.04096},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.018,"9":0.018,"10":0.006,"11":0.37194,_:"6 7 5.5"},J:{"7":0,"10":0.01486},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.07923},Q:{"10.4":0.01486},O:{"0":1.19838},H:{"0":0.28598},L:{"0":32.29846}}; +module.exports={C:{"52":0.09625,"56":0.00507,"68":0.00507,"72":2.85722,"77":0.00507,"78":0.05573,"79":0.02533,"80":0.0152,"81":0.02026,"82":0.0152,"83":0.0152,"84":0.0152,"87":0.00507,"88":0.04053,"89":0.65858,"90":0.34449,"91":0.01013,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 85 86 92 3.5 3.6"},D:{"34":0.00507,"38":0.04559,"41":0.01013,"48":0.01013,"49":0.56739,"53":0.0152,"54":0.00507,"56":0.0152,"57":0.05573,"58":0.00507,"59":0.01013,"61":1.07399,"62":0.00507,"63":0.0152,"65":0.00507,"66":0.01013,"67":0.00507,"68":0.00507,"69":0.00507,"70":0.01013,"71":0.01013,"72":0.01013,"73":0.0152,"74":0.01013,"75":0.02026,"76":0.0152,"77":0.02533,"78":0.0152,"79":0.07599,"80":0.06079,"81":0.04559,"83":0.12665,"84":0.18744,"85":0.18744,"86":0.2533,"87":0.91188,"88":0.05573,"89":0.18744,"90":0.36982,"91":20.47677,"92":5.31423,"93":0.0152,_:"4 5 6 7 8 9 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 51 52 55 60 64 94 95"},F:{"36":0.0152,"40":0.00507,"43":0.02026,"46":0.01013,"57":0.01013,"68":0.01013,"70":0.01013,"71":0.0152,"72":0.01013,"74":0.00507,"76":0.13172,"77":0.60285,_:"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 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 69 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00157,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01097,"6.0-6.1":0.01723,"7.0-7.1":0.047,"8.1-8.4":0.04073,"9.0-9.2":0.047,"9.3":0.20209,"10.0-10.2":0.06423,"10.3":0.27102,"11.0-11.2":0.13003,"11.3-11.4":0.20836,"12.0-12.1":0.15353,"12.2-12.4":0.65484,"13.0-13.1":0.13473,"13.2":0.06266,"13.3":0.33682,"13.4-13.7":1.09976,"14.0-14.4":3.12069,"14.5-14.7":7.55732},E:{"4":0,"12":0.01013,"13":0.05573,"14":0.34449,"15":0.02026,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01013,"11.1":0.0304,"12.1":0.04053,"13.1":0.17731,"14.1":0.84602},B:{"16":0.00507,"17":0.00507,"18":0.04053,"84":0.0152,"85":0.0152,"86":0.02026,"87":0.00507,"89":0.0152,"90":0.02533,"91":1.52993,"92":0.45087,_:"12 13 14 15 79 80 81 83 88"},P:{"4":0.40549,"5.0-5.4":0.02079,"6.2-6.4":0.22301,"7.2-7.4":0.09358,"8.2":0.0104,"9.2":0.06238,"10.1":0.03119,"11.1-11.2":0.22874,"12.0":0.09358,"13.0":0.21834,"14.0":1.84031},I:{"0":0,"3":0,"4":0.00105,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00105,"4.2-4.3":0.00447,"4.4":0,"4.4.3-4.4.4":0.03289},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02324,"9":0.02324,"10":0.00581,"11":0.38339,_:"6 7 5.5"},J:{"7":0,"10":0.00987},N:{"10":0.01143,"11":0.01864},L:{"0":33.05929},S:{"2.5":0},R:{_:"0"},M:{"0":0.09375},Q:{"10.4":0.01974},O:{"0":1.42099},H:{"0":0.30363}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js index c600af6a35be5e..acdcbdf6d56a37 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js @@ -1 +1 @@ -module.exports={C:{"34":0.02201,"38":0.02934,"72":0.00734,"78":0.011,"79":0.03301,"84":0.00367,"86":0.011,"87":0.07336,"88":1.67994,"89":0.06969,_:"2 3 4 5 6 7 8 9 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 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 80 81 82 83 85 90 91 3.5 3.6"},D:{"55":0.02201,"56":0.03301,"59":0.00734,"63":0.00734,"66":0.00734,"69":0.09904,"70":0.00734,"72":0.011,"73":0.01467,"74":0.02201,"76":0.01467,"79":0.06602,"80":0.03668,"81":0.05135,"83":0.011,"84":0.08436,"85":0.03668,"86":0.04035,"87":0.01834,"88":0.07703,"89":1.33882,"90":16.78844,"91":0.45483,"92":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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 57 58 60 61 62 64 65 67 68 71 75 77 78 93 94"},F:{"75":0.13938,"76":0.11738,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00792,"3.2":0.00183,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.02316,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1231,"10.0-10.2":0.00305,"10.3":0.00792,"11.0-11.2":0.01341,"11.3-11.4":0.0067,"12.0-12.1":0.02925,"12.2-12.4":0.09811,"13.0-13.1":0.01645,"13.2":0.00183,"13.3":0.30348,"13.4-13.7":0.16088,"14.0-14.4":4.41868,"14.5-14.6":0.66667},E:{"4":0,"10":0.00734,"13":0.02568,"14":0.8363,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00367,"11.1":0.01467,"12.1":0.01467,"13.1":0.7226,"14.1":0.91333},B:{"12":0.04035,"13":0.03668,"14":0.00734,"16":0.02568,"17":0.05135,"18":0.20908,"85":0.02201,"87":0.02934,"89":0.22008,"90":6.73445,"91":0.23108,_:"15 79 80 81 83 84 86 88"},P:{"4":0.28694,"5.0-5.4":0.16232,"6.2-6.4":0.07173,"7.2-7.4":1.07602,"8.2":0.02029,"9.2":0.11273,"10.1":0.05124,"11.1-11.2":0.16397,"12.0":0.10248,"13.0":0.48165,"14.0":1.54742},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00106,"4.4":0,"4.4.3-4.4.4":0.0496},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.33012,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.06332},Q:{"10.4":0.03166},O:{"0":1.51335},H:{"0":0.16785},L:{"0":56.27578}}; +module.exports={C:{"29":0.00745,"34":0.06701,"38":0.01489,"45":0.00372,"47":0.01489,"50":0.00372,"62":0.00745,"67":0.00372,"72":0.00372,"78":0.02978,"79":0.01489,"81":0.00372,"82":0.02978,"84":0.01117,"85":0.00745,"87":0.00372,"88":0.03723,"89":0.76322,"90":0.28295,_:"2 3 4 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 39 40 41 42 43 44 46 48 49 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 68 69 70 71 73 74 75 76 77 80 83 86 91 92 3.5 3.6"},D:{"49":0.01117,"55":0.04095,"59":0.01117,"60":0.01862,"62":0.00745,"63":0.00372,"65":0.00745,"69":0.06329,"70":0.01862,"74":0.00745,"76":0.01862,"78":0.00745,"79":0.36858,"80":0.01862,"81":0.0968,"83":0.00745,"84":0.02978,"85":0.04095,"86":0.01489,"87":0.08563,"88":0.08935,"89":0.11169,"90":0.16381,"91":15.61426,"92":1.85778,"93":0.02606,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 61 64 66 67 68 71 72 73 75 77 94 95"},F:{"65":0.00372,"76":0.04095,"77":0.23083,_:"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 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.03914,"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.00408,"8.1-8.4":0.01875,"9.0-9.2":0,"9.3":0.15492,"10.0-10.2":0.00571,"10.3":0.00163,"11.0-11.2":0.01875,"11.3-11.4":0.02446,"12.0-12.1":0.02446,"12.2-12.4":0.09377,"13.0-13.1":0.03669,"13.2":0,"13.3":0.22749,"13.4-13.7":0.17531,"14.0-14.4":0.64253,"14.5-14.7":6.57941},E:{"4":0,"8":0.05212,"10":0.0484,"13":0.01117,"14":0.10797,_:"0 5 6 7 9 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00372,"12.1":0.01489,"13.1":0.52867,"14.1":1.22487},B:{"12":0.05585,"13":0.03723,"14":0.00745,"15":0.12658,"16":0.03723,"17":0.16381,"18":0.31646,"84":0.01862,"85":0.00745,"86":0.00745,"87":0.01489,"89":0.38719,"90":0.02606,"91":4.83245,"92":1.88384,_:"79 80 81 83 88"},P:{"4":0.23413,"5.0-5.4":0.02036,"6.2-6.4":0.22301,"7.2-7.4":0.8449,"8.2":0.02027,"9.2":0.14251,"10.1":0.1018,"11.1-11.2":0.15269,"12.0":0.03054,"13.0":0.0509,"14.0":1.14011},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.05022},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0385,"11":0.26307,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":56.47059},S:{"2.5":0},R:{_:"0"},M:{"0":0.03766},Q:{"10.4":0.05022},O:{"0":1.16125},H:{"0":0.14857}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js index bdbc2b279bb4dd..049df4e7c21448 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js @@ -1 +1 @@ -module.exports={C:{"70":0.44378,"77":0.11194,"78":1.55922,"88":17.70714,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 89 90 91 3.5 3.6"},D:{"67":0.11194,"85":0.22389,"88":1.44728,"90":8.7996,"91":0.11194,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 87 89 92 93 94"},F:{"75":0.11194,"76":0.33583,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.11785,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.4":0.47141,"13.0-13.1":0,"13.2":0,"13.3":0.2357,"13.4-13.7":0.2357,"14.0-14.4":21.33117,"14.5-14.6":0.2357},E:{"4":0,"14":2.003,_:"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.11194,"14.1":0.33583},B:{"13":0.11194,"18":0.55572,"89":0.33583,"90":1.67116,"91":0.33583,_:"12 14 15 16 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.08554,"5.0-5.4":0.02091,"6.2-6.4":0.07173,"7.2-7.4":0.06273,"8.2":0.02029,"9.2":0.04277,"10.1":0.03136,"11.1-11.2":0.33147,"12.0":0.10454,"13.0":0.12385,"14.0":2.415},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.22389,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.72624},Q:{"10.4":0},O:{"0":0},H:{"0":0.46027},L:{"0":36.87159}}; +module.exports={C:{"60":0.6169,"68":0.4975,"78":1.48753,"88":0.6169,"89":11.38778,"90":5.94015,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 79 80 81 82 83 84 85 86 87 91 92 3.5 3.6"},D:{"78":0.12438,"87":10.51715,"88":0.12438,"89":0.4975,"91":9.90025,"92":0.37313,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 83 84 85 86 90 93 94 95"},F:{"77":0.24875,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.09982,"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.4":0.09982,"13.0-13.1":0,"13.2":0,"13.3":0.09982,"13.4-13.7":1.19994,"14.0-14.4":1.0996,"14.5-14.7":2.39988},E:{"4":0,"14":1.1144,_:"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.12438,"14.1":1.23878},B:{"15":0.12438,"18":0.12438,"90":0.12438,"91":2.2288,"92":0.24875,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.19142,"5.0-5.4":0.02079,"6.2-6.4":0.22301,"7.2-7.4":0.02127,"8.2":0.0104,"9.2":0.04254,"10.1":0.03119,"11.1-11.2":0.13825,"12.0":0.09358,"13.0":0.05317,"14.0":6.53622},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.13062},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.4975,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":36.72469},S:{"2.5":0},R:{_:"0"},M:{"0":2.69286},Q:{"10.4":0},O:{"0":0.76867},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js index 54e2d0dfe4a697..e25f1d7ebbbc82 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js @@ -1 +1 @@ -module.exports={C:{"29":0.00692,"30":0.00346,"37":0.01037,"43":0.01383,"47":0.01037,"58":0.00692,"67":0.00692,"70":0.00692,"71":0.00346,"78":0.00692,"81":0.01383,"84":0.01037,"87":0.01383,"88":1.76358,"89":0.04495,_:"2 3 4 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 38 39 40 41 42 44 45 46 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 68 69 72 73 74 75 76 77 79 80 82 83 85 86 90 91 3.5 3.6"},D:{"29":0.03112,"46":0.00346,"49":0.05187,"56":0.00692,"58":0.02421,"59":0.00692,"63":0.01729,"64":1.4904,"65":0.02421,"66":0.00692,"68":0.00346,"69":0.01037,"70":0.01383,"73":0.00346,"74":0.03458,"75":0.00692,"78":0.02766,"79":0.07608,"80":0.02421,"81":0.04841,"83":0.00346,"84":0.00692,"85":0.49795,"86":0.01383,"87":0.02766,"88":0.0657,"89":0.31814,"90":14.76566,"91":0.63281,"92":0.02421,_:"4 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 47 48 50 51 52 53 54 55 57 60 61 62 67 71 72 76 77 93 94"},F:{"75":0.06224,"76":0.12103,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.00356,"9.3":0.03428,"10.0-10.2":0.02537,"10.3":0.01558,"11.0-11.2":0.04585,"11.3-11.4":0.03071,"12.0-12.1":0.04629,"12.2-12.4":0.27509,"13.0-13.1":0.06855,"13.2":0.12464,"13.3":0.11796,"13.4-13.7":1.0158,"14.0-14.4":1.80324,"14.5-14.6":0.31827},E:{"4":0,"11":0.00692,"12":0.00692,"13":0.02421,"14":0.2144,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00692,"11.1":0.00692,"12.1":0.01037,"13.1":0.0415,"14.1":0.06916},B:{"12":0.04495,"13":0.04841,"14":0.01383,"15":0.06224,"16":0.0415,"17":0.04841,"18":0.29739,"84":0.01037,"85":0.03112,"86":0.02421,"87":0.01037,"88":0.01037,"89":0.16944,"90":2.41023,"91":0.11066,_:"79 80 81 83"},P:{"4":0.24327,"5.0-5.4":0.02077,"6.2-6.4":0.04055,"7.2-7.4":0.76023,"8.2":0.10461,"9.2":0.16218,"10.1":0.59805,"11.1-11.2":0.41559,"12.0":0.13177,"13.0":0.63859,"14.0":2.3415},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00178,"4.2-4.3":0.01606,"4.4":0,"4.4.3-4.4.4":0.02795},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.22131,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},S:{"2.5":0.15701},R:{_:"0"},M:{"0":0.02617},Q:{"10.4":0.01308},O:{"0":2.99624},H:{"0":1.06529},L:{"0":61.81617}}; +module.exports={C:{"27":0.01665,"67":0.00833,"68":0.04163,"78":0.00833,"81":0.05412,"88":0.01665,"89":1.75679,"90":0.34137,"91":0.00833,_:"2 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 92 3.5 3.6"},D:{"49":0.00833,"58":0.00833,"63":0.00833,"64":1.51117,"67":0.02914,"69":0.01249,"70":0.00833,"71":0.00833,"72":0.06245,"74":0.01249,"75":0.01249,"76":0.01249,"79":0.02914,"80":0.02082,"81":0.02914,"83":0.00833,"84":0.00833,"86":0.02082,"87":0.20399,"88":0.02498,"89":0.01665,"90":0.32055,"91":13.58803,"92":4.15884,"93":0.02498,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 65 66 68 73 77 78 85 94 95"},F:{"76":0.01665,"77":0.07077,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.23649,"10.0-10.2":0.00389,"10.3":0.01265,"11.0-11.2":0.018,"11.3-11.4":0.04282,"12.0-12.1":0.08078,"12.2-12.4":0.23114,"13.0-13.1":0.05401,"13.2":0.6253,"13.3":0.42822,"13.4-13.7":0.29732,"14.0-14.4":0.89634,"14.5-14.7":1.33137},E:{"4":0,"13":0.01665,"14":0.17068,_:"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.02082,"13.1":0.0333,"14.1":0.15403},B:{"12":0.20815,"13":0.01249,"14":0.02082,"15":0.04996,"16":0.02082,"17":0.14987,"18":0.13738,"80":0.00833,"84":0.00833,"85":0.01249,"88":0.02082,"89":0.02498,"90":0.12489,"91":2.98903,"92":0.73269,_:"79 81 83 86 87"},P:{"4":0.51967,"5.0-5.4":0.03057,"6.2-6.4":0.02038,"7.2-7.4":0.50948,"8.2":0.02076,"9.2":0.1019,"10.1":0.1936,"11.1-11.2":0.45853,"12.0":0.34645,"13.0":0.34645,"14.0":1.92584},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00442,"4.2-4.3":0.04472,"4.4":0,"4.4.3-4.4.4":0.03257},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36218,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03533,"11":0.01864},L:{"0":58.98464},S:{"2.5":0.08754},R:{_:"0"},M:{"0":0.07003},Q:{"10.4":0.07587},O:{"0":3.26232},H:{"0":0.60777}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js index c0cb4795c1a97b..3532306ab67657 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js @@ -1 +1 @@ -module.exports={C:{"3":0.0718,"30":0.00463,"38":0.00463,"42":0.00463,"43":0.044,"44":0.00695,"45":0.00463,"47":0.0139,"48":0.02779,"49":0.02084,"50":0.00463,"52":0.03937,"56":0.01621,"57":0.00463,"59":0.01158,"60":0.00695,"61":0.00232,"62":0.00463,"64":0.00232,"66":0.00463,"67":0.0139,"68":0.00695,"70":0.01621,"71":0.00463,"72":0.02779,"73":0.00232,"76":0.00463,"77":0.01158,"78":0.12275,"79":0.00695,"80":0.00926,"81":0.0139,"82":0.00926,"83":0.00926,"84":0.01158,"85":0.03011,"86":0.06716,"87":0.15749,"88":1.5054,"89":0.01621,_:"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 31 32 33 34 35 36 37 39 40 41 46 51 53 54 55 58 63 65 69 74 75 90 91 3.5 3.6"},D:{"11":0.00695,"40":0.00463,"43":0.00695,"44":0.00232,"46":0.00463,"47":0.00463,"48":0.00463,"49":0.04169,"50":0.00463,"53":0.00926,"54":0.00232,"55":0.01158,"56":0.00695,"57":0.01621,"58":0.00695,"59":0.00463,"60":0.0139,"61":0.00926,"62":0.00463,"63":0.03242,"64":0.00695,"65":0.00926,"66":0.01158,"67":0.00926,"68":0.0139,"69":0.01158,"70":0.00926,"71":0.04632,"72":0.01621,"73":0.0139,"74":0.02548,"75":0.01853,"76":0.0139,"77":0.02316,"78":0.02779,"79":0.10885,"80":0.03937,"81":0.03242,"83":0.05558,"84":0.03706,"85":0.05095,"86":0.1158,"87":0.2177,"88":0.28024,"89":0.61606,"90":8.19401,"91":0.40762,"92":0.00695,_:"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 41 42 45 51 52 93 94"},F:{"50":0.00232,"65":0.00463,"67":0.00232,"73":0.00463,"75":0.07874,"76":0.10422,_:"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 51 52 53 54 55 56 57 58 60 62 63 64 66 68 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},G:{"8":0.00087,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.10413,"5.0-5.1":0.00157,"6.0-6.1":0.05521,"7.0-7.1":0.01345,"8.1-8.4":0.0014,"9.0-9.2":0.00227,"9.3":0.01957,"10.0-10.2":0.00402,"10.3":0.01677,"11.0-11.2":0.02062,"11.3-11.4":0.0124,"12.0-12.1":0.08875,"12.2-12.4":0.14151,"13.0-13.1":0.01555,"13.2":0.01118,"13.3":0.09015,"13.4-13.7":0.14448,"14.0-14.4":0.74269,"14.5-14.6":0.11146},E:{"4":0,"14":0.03011,_:"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.535,"13.1":0.01621,"14.1":0.00695},B:{"12":0.00232,"18":0.00926,"84":0.01621,"85":0.01621,"86":0.00232,"87":0.00695,"88":0.00463,"89":0.03937,"90":0.65543,"91":0.05558,_:"13 14 15 16 17 79 80 81 83"},P:{"4":0.34451,"5.0-5.4":0.10133,"6.2-6.4":0.0304,"7.2-7.4":0.19252,"8.2":0.02027,"9.2":0.33438,"10.1":0.10133,"11.1-11.2":0.27358,"12.0":0.38504,"13.0":1.04366,"14.0":2.06706},I:{"0":0,"3":0,"4":0.00131,"2.1":0,"2.2":0,"2.3":0.00131,"4.1":0.01309,"4.2-4.3":0.01637,"4.4":0,"4.4.3-4.4.4":0.40586},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03433,"11":0.11158,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.4072},Q:{"10.4":0.03842},O:{"0":3.4343},H:{"0":5.96449},L:{"0":67.62631}}; +module.exports={C:{"3":0.05024,"36":0.00754,"43":0.01005,"44":0.00251,"47":0.01256,"48":0.00251,"49":0.00754,"50":0.00251,"52":0.03014,"56":0.00251,"58":0.00251,"59":0.00251,"60":0.00502,"62":0.00502,"64":0.00502,"65":0.00251,"66":0.00251,"67":0.00251,"68":0.00754,"69":0.00502,"70":0.00251,"72":0.01507,"74":0.01005,"76":0.00251,"78":0.03266,"81":0.00502,"83":0.00754,"84":0.02763,"85":0.00502,"86":0.02261,"87":0.00502,"88":0.02512,"89":0.84403,"90":0.36675,"91":0.00251,_:"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 37 38 39 40 41 42 45 46 51 53 54 55 57 61 63 71 73 75 77 79 80 82 92 3.5 3.6"},D:{"17":0.00502,"27":0.00502,"33":0.00754,"37":0.01005,"42":0.00502,"43":0.03014,"44":0.00251,"46":0.0427,"47":0.00502,"48":0.00502,"49":0.01758,"52":0.00251,"53":0.00502,"54":0.00251,"55":0.01256,"56":0.00502,"57":0.01256,"58":0.00502,"60":0.00251,"62":0.00502,"63":0.02512,"64":0.00754,"65":0.00754,"66":0.04019,"67":0.00502,"68":0.00754,"69":0.00754,"70":0.03517,"71":0.01507,"72":0.01005,"73":0.00502,"74":0.0201,"75":0.01256,"76":0.01507,"77":0.00754,"78":0.02261,"79":0.04522,"80":0.02512,"81":0.01758,"83":0.05275,"84":0.02763,"85":0.03014,"86":0.06782,"87":0.25622,"88":0.09546,"89":0.13816,"90":0.24366,"91":5.89818,"92":1.3389,"93":0.00502,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 28 29 30 31 32 34 35 36 38 39 40 41 45 50 51 59 61 94 95"},F:{"36":0.00502,"40":0.00251,"64":0.0201,"76":0.00502,"77":0.14067,_:"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 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00066,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.05533,"5.0-5.1":0.0022,"6.0-6.1":0.00285,"7.0-7.1":0.03887,"8.1-8.4":0.00044,"9.0-9.2":0.00351,"9.3":0.02393,"10.0-10.2":0.01559,"10.3":0.04611,"11.0-11.2":0.03008,"11.3-11.4":0.03074,"12.0-12.1":0.04853,"12.2-12.4":0.15524,"13.0-13.1":0.02306,"13.2":0.01142,"13.3":0.06631,"13.4-13.7":0.13768,"14.0-14.4":0.71254,"14.5-14.7":0.59419},E:{"4":0,"7":0.00502,"14":0.0201,_:"0 5 6 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.03014,"12.1":0.00502,"13.1":0.03266,"14.1":0.03517},B:{"12":0.01005,"13":0.00502,"16":0.00502,"17":0.00502,"18":0.01758,"84":0.01758,"85":0.01005,"86":0.00251,"87":0.00251,"88":0.00502,"89":0.01507,"90":0.0201,"91":0.50491,"92":0.13816,_:"14 15 79 80 81 83"},P:{"4":0.44572,"5.0-5.4":0.11143,"6.2-6.4":0.02026,"7.2-7.4":0.17221,"8.2":0.01013,"9.2":0.28364,"10.1":0.08104,"11.1-11.2":0.2026,"12.0":0.11143,"13.0":0.64831,"14.0":2.73507},I:{"0":0,"3":0,"4":0.00133,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00734,"4.2-4.3":0.00956,"4.4":0,"4.4.3-4.4.4":0.11655},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":4.24779,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":66.28021},S:{"2.5":0},R:{_:"0"},M:{"0":0.44179},Q:{"10.4":0.00749},O:{"0":3.84134},H:{"0":6.03996}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js index f4cb1efc251a2e..21481e76c777fd 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js @@ -1 +1 @@ -module.exports={C:{"41":0.01556,"60":0.22818,"68":0.08298,"70":0.01037,"78":0.76234,"81":0.09335,"83":0.01556,"84":0.06223,"85":0.10372,"86":0.08298,"87":0.10372,"88":7.7064,"89":0.01556,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 71 72 73 74 75 76 77 79 80 82 90 91 3.5 3.6"},D:{"43":0.04149,"49":0.12446,"50":0.00519,"56":0.01556,"63":0.02074,"65":0.01037,"70":0.02074,"73":0.02074,"74":0.01037,"77":0.01037,"81":0.03112,"83":0.01037,"85":0.01556,"86":0.01556,"87":0.03112,"88":0.12446,"89":0.92311,"90":26.27746,"91":1.01646,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 57 58 59 60 61 62 64 66 67 68 69 71 72 75 76 78 79 80 84 92 93 94"},F:{"72":0.08298,"73":0.02074,"75":0.1867,"76":0.24893,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.02997,"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.09846,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05244,"10.0-10.2":0.06529,"10.3":0.17766,"11.0-11.2":0.17445,"11.3-11.4":0.01926,"12.0-12.1":0.01284,"12.2-12.4":0.21726,"13.0-13.1":0.01284,"13.2":0.00963,"13.3":0.16803,"13.4-13.7":0.43667,"14.0-14.4":6.29419,"14.5-14.6":1.76272},E:{"4":0,"10":0.03112,"12":0.06742,"13":0.1867,"14":1.70619,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05186,"11.1":0.05186,"12.1":0.23856,"13.1":0.27486,"14.1":1.1098},B:{"15":0.04149,"17":0.07779,"18":0.04149,"84":0.0363,"85":0.01556,"86":0.12965,"87":0.01037,"88":0.02593,"89":0.18151,"90":4.60517,"91":0.4823,_:"12 13 14 16 79 80 81 83"},P:{"4":0.02065,"5.0-5.4":0.04006,"6.2-6.4":0.08011,"7.2-7.4":0.55753,"8.2":0.02003,"9.2":0.0413,"10.1":0.02065,"11.1-11.2":0.0826,"12.0":0.06195,"13.0":0.29941,"14.0":2.91154},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00294,"4.4":0,"4.4.3-4.4.4":0.0452},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14521,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02735,"11":0.01885},S:{"2.5":0},R:{_:"0"},M:{"0":0.22626},Q:{"10.4":0},O:{"0":0.02407},H:{"0":2.68897},L:{"0":34.51851}}; +module.exports={C:{"38":0.01668,"68":0.02781,"78":0.04449,"85":0.02224,"86":0.01112,"88":0.00556,"89":3.16421,"90":1.91855,_:"2 3 4 5 6 7 8 9 10 11 12 13 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 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 87 91 92 3.5 3.6"},D:{"46":0.01668,"47":0.06673,"49":0.02224,"55":0.02224,"60":0.01112,"63":0.00556,"79":0.00556,"81":0.07785,"83":0.02781,"84":0.01112,"87":0.01112,"88":0.11678,"89":0.05561,"90":0.16683,"91":31.06931,"92":4.09846,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 50 51 52 53 54 56 57 58 59 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 85 86 93 94 95"},F:{"76":0.05005,"77":0.6562,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00334,"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,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.00669,"10.3":0.01115,"11.0-11.2":0.11035,"11.3-11.4":0.01449,"12.0-12.1":0,"12.2-12.4":0.05908,"13.0-13.1":0.01003,"13.2":0.00669,"13.3":0.23296,"13.4-13.7":0.14825,"14.0-14.4":3.00624,"14.5-14.7":6.68462},E:{"4":0,"13":0.01112,"14":0.73961,"15":0.03893,_:"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.01112,"12.1":0.03337,"13.1":0.14459,"14.1":1.61825},B:{"14":0.01112,"15":0.01112,"16":0.02224,"17":0.00556,"18":0.1279,"80":0.00556,"84":0.01112,"85":0.02224,"88":0.07229,"89":0.03893,"90":0.08898,"91":4.877,"92":1.15113,_:"12 13 79 81 83 86 87"},P:{"4":0.20505,"5.0-5.4":0.03026,"6.2-6.4":0.04058,"7.2-7.4":0.08116,"8.2":0.07177,"9.2":0.04058,"10.1":0.04058,"11.1-11.2":0.24349,"12.0":0.14354,"13.0":0.1116,"14.0":3.43936},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00173,"4.4":0,"4.4.3-4.4.4":0.01602},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05561,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01864,_:"10"},L:{"0":31.60689},S:{"2.5":0},R:{_:"0"},M:{"0":0.31954},Q:{"10.4":0.00888},O:{"0":0.01331},H:{"0":1.68905}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js index ff92b7d04da4c8..0ee588c26160bf 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js @@ -1 +1 @@ -module.exports={C:{"34":0.00477,"41":0.00238,"52":0.02621,"60":0.00953,"65":0.00477,"72":0.00238,"78":0.02145,"80":0.01192,"81":0.00238,"82":0.01668,"84":0.10724,"85":0.00477,"86":0.00953,"87":0.02145,"88":0.90792,"89":0.01668,_:"2 3 4 5 6 7 8 9 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 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 83 90 91 3.5 3.6"},D:{"22":0.00477,"26":0.00238,"28":0.00953,"34":0.00477,"38":0.00477,"41":0.00238,"49":0.08102,"50":0.00477,"53":0.00477,"55":0.00238,"56":0.00477,"58":0.01192,"61":0.01668,"63":0.00715,"64":0.00953,"65":0.00715,"66":0.00238,"67":0.01192,"68":0.00477,"69":0.00715,"70":0.02621,"71":0.00715,"72":0.01192,"73":0.00477,"74":0.01192,"75":0.00715,"76":0.01192,"77":0.00715,"78":0.01906,"79":0.03336,"80":0.03336,"81":0.0286,"83":0.04766,"84":0.01906,"85":0.01906,"86":0.06434,"87":0.15251,"88":0.06911,"89":0.36222,"90":11.09763,"91":0.29788,"92":0.00953,_:"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 35 36 37 39 40 42 43 44 45 46 47 48 51 52 54 57 59 60 62 93 94"},F:{"36":0.00238,"63":0.00477,"73":0.0286,"74":0.00477,"75":0.15013,"76":0.23592,_:"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 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00238},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00215,"6.0-6.1":0.00323,"7.0-7.1":0.01399,"8.1-8.4":0.00968,"9.0-9.2":0.00861,"9.3":0.13341,"10.0-10.2":0.01399,"10.3":0.11835,"11.0-11.2":0.03551,"11.3-11.4":0.0624,"12.0-12.1":0.04089,"12.2-12.4":0.23886,"13.0-13.1":0.06348,"13.2":0.02582,"13.3":0.13772,"13.4-13.7":0.40455,"14.0-14.4":7.31415,"14.5-14.6":1.4568},E:{"4":0,"11":0.00477,"12":0.00715,"13":0.13107,"14":0.83882,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 9.1","5.1":0.01906,"7.1":0.00238,"10.1":0.00715,"11.1":0.02383,"12.1":0.03098,"13.1":0.16681,"14.1":0.28596},B:{"12":0.0143,"13":0.00953,"14":0.00953,"15":0.0143,"16":0.02145,"17":0.03575,"18":0.10247,"80":0.00477,"84":0.00715,"85":0.00715,"86":0.02145,"87":0.00953,"88":0.01906,"89":0.06196,"90":1.8087,"91":0.05481,_:"79 81 83"},P:{"4":0.46481,"5.0-5.4":0.0101,"6.2-6.4":0.03031,"7.2-7.4":0.57596,"8.2":0.02021,"9.2":0.15157,"10.1":0.09094,"11.1-11.2":0.4446,"12.0":0.39408,"13.0":1.27317,"14.0":5.7596},I:{"0":0,"3":0,"4":0.00063,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.00413,"4.4":0,"4.4.3-4.4.4":0.03903},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00247,"9":0.01727,"11":0.61415,_:"6 7 10 5.5"},J:{"7":0,"10":0.01523},N:{"10":0.01297,"11":0.01825},S:{"2.5":0},R:{_:"0"},M:{"0":0.41888},Q:{"10.4":0.00762},O:{"0":0.62451},H:{"0":4.00174},L:{"0":56.44945}}; +module.exports={C:{"34":0.01225,"52":0.0245,"60":0.0098,"73":0.00245,"78":0.0196,"80":0.00735,"82":0.0147,"84":0.02695,"85":0.0049,"86":0.00245,"87":0.0049,"88":0.01715,"89":0.62475,"90":0.29155,"91":0.0098,_:"2 3 4 5 6 7 8 9 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 74 75 76 77 79 81 83 92 3.5 3.6"},D:{"11":0.0049,"19":0.0049,"28":0.01225,"34":0.00245,"38":0.00735,"40":0.00245,"49":0.06615,"50":0.00735,"53":0.0049,"55":0.00245,"56":0.00245,"57":0.0049,"58":0.0147,"61":0.00735,"63":0.0049,"64":0.0098,"65":0.0098,"67":0.0098,"68":0.00245,"69":0.00735,"70":0.02695,"71":0.00735,"72":0.0098,"73":0.0049,"74":0.0147,"75":0.0049,"76":0.0049,"77":0.0049,"78":0.0098,"79":0.03675,"80":0.0196,"81":0.0245,"83":0.0294,"84":0.01715,"85":0.0147,"86":0.03675,"87":0.1666,"88":0.04165,"89":0.0686,"90":0.16905,"91":9.78285,"92":1.7689,"93":0.01225,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 29 30 31 32 33 35 36 37 39 41 42 43 44 45 46 47 48 51 52 54 59 60 62 66 94 95"},F:{"28":0.00245,"36":0.00245,"64":0.00245,"75":0.0049,"76":0.06615,"77":0.3724,_:"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 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00245},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00451,"6.0-6.1":0.00338,"7.0-7.1":0.01464,"8.1-8.4":0.00563,"9.0-9.2":0.00676,"9.3":0.14419,"10.0-10.2":0.01127,"10.3":0.09801,"11.0-11.2":0.0338,"11.3-11.4":0.04506,"12.0-12.1":0.03267,"12.2-12.4":0.18475,"13.0-13.1":0.05407,"13.2":0.02253,"13.3":0.11716,"13.4-13.7":0.43822,"14.0-14.4":1.84637,"14.5-14.7":7.48574},E:{"4":0,"11":0.00245,"12":0.00245,"13":0.0245,"14":0.25725,"15":0.00735,_:"0 5 6 7 8 9 10 3.1 3.2 9.1","5.1":0.0049,"6.1":0.00245,"7.1":0.00245,"10.1":0.0049,"11.1":0.02695,"12.1":0.0343,"13.1":0.1323,"14.1":0.86485},B:{"12":0.01225,"13":0.0098,"14":0.0049,"15":0.0098,"16":0.0147,"17":0.02205,"18":0.08085,"80":0.0049,"84":0.0098,"85":0.0049,"86":0.00245,"87":0.0049,"88":0.0049,"89":0.0196,"90":0.0147,"91":1.6268,"92":0.33075,_:"79 81 83"},P:{"4":0.4225,"5.0-5.4":0.01006,"6.2-6.4":0.03018,"7.2-7.4":0.59351,"8.2":0.02012,"9.2":0.13077,"10.1":0.07042,"11.1-11.2":0.41244,"12.0":0.31185,"13.0":0.70417,"14.0":6.25702},I:{"0":0,"3":0,"4":0.00074,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00222,"4.2-4.3":0.00481,"4.4":0,"4.4.3-4.4.4":0.04509},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00513,"11":0.53387,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.0151},N:{_:"10 11"},L:{"0":56.76566},S:{"2.5":0.00755},R:{_:"0"},M:{"0":0.40775},Q:{"10.4":0.0151},O:{"0":0.70224},H:{"0":3.80316}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js index d229364296ccfd..1c365468570c96 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js @@ -1 +1 @@ -module.exports={C:{"4":0.00599,"5":0.003,"15":0.00899,"30":0.003,"34":0.00599,"35":0.003,"37":0.01198,"41":0.003,"43":0.003,"47":0.01498,"48":0.003,"52":0.01498,"60":0.003,"72":0.00599,"76":0.003,"78":0.02696,"79":0.00599,"81":0.003,"83":0.00599,"84":0.00899,"85":0.00599,"86":0.00899,"87":0.03594,"88":1.53045,"89":0.0629,_:"2 3 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 36 38 39 40 42 44 45 46 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 77 80 82 90 91 3.5 3.6"},D:{"11":0.01797,"21":0.003,"24":0.003,"39":0.00599,"42":0.00599,"43":0.01198,"49":0.01198,"50":0.00899,"51":0.00899,"53":0.00899,"55":0.01797,"56":0.003,"57":0.02097,"58":0.00899,"60":0.00599,"63":0.02097,"64":0.00899,"65":0.00599,"66":0.003,"67":0.00599,"68":0.01198,"69":0.00599,"70":0.00899,"71":0.04193,"72":0.003,"73":0.00899,"74":0.01198,"75":0.0599,"76":0.01498,"77":0.02097,"78":0.01198,"79":0.03594,"80":0.0599,"81":0.03594,"83":0.14676,"84":0.02696,"85":0.02097,"86":0.07488,"87":0.24859,"88":0.20366,"89":0.54809,"90":10.33874,"91":0.42529,"92":0.01198,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 44 45 46 47 48 52 54 59 61 62 93 94"},F:{"35":0.003,"36":0.003,"42":0.01797,"62":0.00599,"63":0.01198,"64":0.01198,"68":0.00599,"70":0.003,"72":0.003,"73":0.02696,"74":0.02696,"75":0.73378,"76":1.34775,_:"9 11 12 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 65 66 67 69 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0.00206,"6.0-6.1":0.01337,"7.0-7.1":0.05398,"8.1-8.4":0.00206,"9.0-9.2":0.00103,"9.3":0.1599,"10.0-10.2":0.00463,"10.3":0.20771,"11.0-11.2":0.09512,"11.3-11.4":0.109,"12.0-12.1":0.0653,"12.2-12.4":0.29512,"13.0-13.1":0.01748,"13.2":0.00823,"13.3":0.10231,"13.4-13.7":0.2725,"14.0-14.4":2.56763,"14.5-14.6":0.44936},E:{"4":0,"12":0.00599,"13":0.00899,"14":0.20666,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.13777,"10.1":0.003,"11.1":0.01198,"12.1":0.02097,"13.1":0.12879,"14.1":0.10483},B:{"12":0.09584,"13":0.03894,"14":0.01797,"15":0.05391,"16":0.04493,"17":0.09884,"18":0.19468,"80":0.003,"81":0.003,"84":0.04193,"85":0.03894,"86":0.00899,"87":0.01498,"88":0.02097,"89":0.11381,"90":2.15041,"91":0.11381,_:"79 83"},P:{"4":0.26768,"5.0-5.4":0.0103,"6.2-6.4":0.0304,"7.2-7.4":0.12354,"8.2":0.02027,"9.2":0.05148,"10.1":0.02059,"11.1-11.2":0.15443,"12.0":0.10295,"13.0":0.51476,"14.0":0.94716},I:{"0":0,"3":0,"4":0.00347,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00631,"4.2-4.3":0.00946,"4.4":0,"4.4.3-4.4.4":0.1489},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01522,"10":0.0203,"11":0.32987,_:"6 7 9 5.5"},J:{"7":0,"10":0.04204},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.04204},R:{_:"0"},M:{"0":0.09108},Q:{"10.4":0.09808},O:{"0":2.90749},H:{"0":18.97652},L:{"0":47.4984}}; +module.exports={C:{"5":0.00587,"6":0.00294,"15":0.01174,"17":0.01761,"33":0.01468,"34":0.01174,"37":0.02055,"42":0.00294,"47":0.00881,"48":0.00294,"49":0.00294,"52":0.01174,"54":0.00294,"55":0.00294,"56":0.00294,"71":0.00587,"72":0.00294,"78":0.03229,"79":0.00587,"80":0.00294,"82":0.01174,"83":0.00587,"84":0.00881,"85":0.00587,"86":0.00881,"87":0.00587,"88":0.03229,"89":0.84528,"90":0.48428,"91":0.02642,_:"2 3 4 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 38 39 40 41 43 44 45 46 50 51 53 57 58 59 60 61 62 63 64 65 66 67 68 69 70 73 74 75 76 77 81 92 3.5 3.6"},D:{"11":0.00294,"23":0.02642,"24":0.02642,"25":0.00294,"37":0.00294,"39":0.00587,"40":0.00294,"42":0.00294,"43":0.00294,"48":0.00587,"49":0.00881,"50":0.00587,"51":0.00881,"55":0.02642,"57":0.04403,"58":0.00587,"60":0.00881,"63":0.01174,"65":0.01174,"66":0.00294,"68":0.02055,"69":0.01468,"70":0.00294,"71":0.02348,"72":0.00587,"73":0.00881,"74":0.00881,"75":0.00881,"76":0.01174,"77":0.02055,"78":0.00587,"79":0.04403,"80":0.02055,"81":0.02642,"83":0.05283,"84":0.04109,"85":0.03229,"86":0.04696,"87":0.15262,"88":0.07044,"89":0.17904,"90":0.31405,"91":7.90689,"92":2.20419,"93":0.00587,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 38 41 44 45 46 47 52 53 54 56 59 61 62 64 67 94 95"},F:{"12":0.00294,"34":0.00587,"36":0.00587,"38":0.00294,"42":0.01174,"58":0.00294,"63":0.00587,"64":0.03522,"65":0.00587,"66":0.00881,"72":0.00294,"73":0.01174,"74":0.01174,"75":0.02055,"76":0.09686,"77":1.93417,_:"9 11 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 62 67 68 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0.00517,"6.0-6.1":0.01913,"7.0-7.1":0.03517,"8.1-8.4":0.00103,"9.0-9.2":0.00103,"9.3":0.14273,"10.0-10.2":0.00517,"10.3":0.19755,"11.0-11.2":0.07809,"11.3-11.4":0.10136,"12.0-12.1":0.03465,"12.2-12.4":0.22702,"13.0-13.1":0.01965,"13.2":0.00569,"13.3":0.07809,"13.4-13.7":0.25185,"14.0-14.4":1.31301,"14.5-14.7":1.80688},E:{"4":0,"11":0.00294,"12":0.00294,"13":0.00294,"14":0.07925,_:"0 5 6 7 8 9 10 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.03816,"11.1":0.01174,"12.1":0.01761,"13.1":0.1761,"14.1":0.21132},B:{"12":0.09979,"13":0.02935,"14":0.02348,"15":0.04403,"16":0.03522,"17":0.0587,"18":0.16143,"80":0.00881,"81":0.00587,"84":0.02055,"85":0.02348,"86":0.01761,"87":0.01468,"88":0.00881,"89":0.0587,"90":0.0499,"91":1.86373,"92":0.43438,_:"79 83"},P:{"4":0.2826,"5.0-5.4":0.11143,"6.2-6.4":0.02026,"7.2-7.4":0.1256,"8.2":0.01013,"9.2":0.05233,"10.1":0.01047,"11.1-11.2":0.2198,"12.0":0.07327,"13.0":0.23027,"14.0":1.26647},I:{"0":0,"3":0,"4":0.0022,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00366,"4.2-4.3":0.01537,"4.4":0,"4.4.3-4.4.4":0.1342},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02839,"9":0.00946,"10":0.02366,"11":0.25548,_:"6 7 5.5"},J:{"7":0,"10":0.03533},N:{"10":0.01143,"11":0.01864},L:{"0":48.18965},S:{"2.5":0.04946},R:{_:"0"},M:{"0":0.09185},Q:{"10.4":0.09891},O:{"0":2.80481},H:{"0":20.07275}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js index dbf4db5897c234..4de040d678f197 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js @@ -1 +1 @@ -module.exports={C:{"34":0.00407,"41":0.00407,"45":0.00407,"47":0.00813,"48":0.0122,"52":0.02033,"56":0.00813,"57":0.00407,"60":0.00813,"64":0.00407,"65":0.00407,"66":0.00407,"68":0.00813,"69":0.00407,"70":0.00407,"71":0.00407,"72":0.0244,"73":0.0122,"76":0.00813,"77":0.00407,"78":0.05286,"81":0.00407,"82":0.0122,"83":0.00813,"84":0.01626,"85":0.0244,"86":0.02846,"87":0.07725,"88":2.50466,"89":0.18704,_:"2 3 4 5 6 7 8 9 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 46 49 50 51 53 54 55 58 59 61 62 63 67 74 75 79 80 90 91 3.5 3.6"},D:{"34":0.00407,"40":0.00813,"42":0.00407,"46":0.00407,"48":0.00813,"49":0.02033,"51":0.00407,"53":0.00813,"55":0.00407,"56":0.00407,"57":0.00813,"58":0.02033,"60":0.00813,"61":0.00813,"62":0.00407,"63":0.03659,"64":0.00407,"65":0.01626,"67":0.00407,"68":0.00813,"69":0.04879,"70":0.02033,"71":0.0122,"72":0.0122,"73":0.0122,"74":0.0244,"75":0.02846,"76":0.0244,"77":0.01626,"78":0.02033,"79":0.10165,"80":0.08132,"81":0.03253,"83":0.04066,"84":0.03253,"85":0.04473,"86":0.10572,"87":0.1911,"88":0.13011,"89":0.66682,"90":18.07744,"91":0.66682,"92":0.00813,_:"4 5 6 7 8 9 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 43 44 45 47 50 52 54 59 66 93 94"},F:{"36":0.0122,"37":0.00813,"42":0.0122,"58":0.00407,"60":0.00407,"62":0.0122,"64":0.00813,"66":0.00813,"67":0.00407,"68":0.00813,"72":0.02846,"73":0.04473,"74":0.04473,"75":0.87012,"76":1.67519,_:"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 63 65 69 70 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00061,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00061,"5.0-5.1":0.00427,"6.0-6.1":0.00183,"7.0-7.1":0.00915,"8.1-8.4":0.00671,"9.0-9.2":0.00244,"9.3":0.34037,"10.0-10.2":0.00305,"10.3":0.25558,"11.0-11.2":0.15737,"11.3-11.4":0.03599,"12.0-12.1":0.0366,"12.2-12.4":0.24033,"13.0-13.1":0.02684,"13.2":0.01769,"13.3":0.13114,"13.4-13.7":0.23972,"14.0-14.4":3.36402,"14.5-14.6":0.65023},E:{"4":0,"7":0.00407,"11":0.00813,"12":0.00813,"13":0.04473,"14":0.59364,_:"0 5 6 8 9 10 3.1 3.2 7.1 9.1","5.1":0.49605,"6.1":0.00407,"10.1":0.00813,"11.1":0.0244,"12.1":0.03253,"13.1":0.13824,"14.1":0.24803},B:{"12":0.10572,"13":0.04066,"14":0.03659,"15":0.06912,"16":0.04473,"17":0.05286,"18":0.29275,"80":0.0122,"84":0.03253,"85":0.09352,"86":0.00813,"87":0.0122,"88":0.03253,"89":0.16264,"90":3.40731,"91":0.18704,_:"79 81 83"},P:{"4":0.42622,"5.0-5.4":0.0103,"6.2-6.4":0.0104,"7.2-7.4":0.20791,"8.2":0.02027,"9.2":0.04158,"10.1":0.05198,"11.1-11.2":0.18712,"12.0":0.10395,"13.0":0.49898,"14.0":1.27865},I:{"0":0,"3":0,"4":0.00102,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0041,"4.2-4.3":0.014,"4.4":0,"4.4.3-4.4.4":0.18264},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.21433,"8":0.02624,"9":0.00437,"10":0.01312,"11":0.3193,_:"7 5.5"},J:{"7":0,"10":0.01187},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.0178},R:{_:"0"},M:{"0":0.16615},Q:{"10.4":0.05934},O:{"0":1.93448},H:{"0":10.4662},L:{"0":44.17552}}; +module.exports={C:{"44":0.00402,"45":0.00804,"47":0.04022,"48":0.00804,"52":0.03218,"53":0.00402,"56":0.00804,"57":0.01207,"64":0.00804,"68":0.00402,"72":0.01207,"78":0.06837,"80":0.00804,"81":0.01609,"82":0.01609,"83":0.00804,"84":0.01609,"85":0.01207,"86":0.01207,"87":0.0362,"88":0.06435,"89":1.50423,"90":0.9331,"91":0.11664,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 54 55 58 59 60 61 62 63 65 66 67 69 70 71 73 74 75 76 77 79 92 3.5 3.6"},D:{"11":0.00804,"24":0.00402,"39":0.00804,"40":0.00804,"42":0.00402,"43":0.00402,"49":0.02815,"54":0.00402,"55":0.00402,"57":0.00804,"58":0.01207,"60":0.01207,"62":0.00804,"63":0.04022,"64":0.00402,"65":0.01609,"66":0.00804,"67":0.01207,"69":0.02413,"70":0.02413,"71":0.00402,"72":0.00402,"73":0.02011,"74":0.04022,"75":0.00804,"76":0.02413,"77":0.01609,"78":0.00804,"79":0.08848,"80":0.04022,"81":0.06435,"83":0.04022,"84":0.01609,"85":0.0362,"86":0.04022,"87":0.10055,"88":0.06435,"89":0.16892,"90":0.28154,"91":15.36806,"92":3.8933,"93":0.02413,_:"4 5 6 7 8 9 10 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 41 44 45 46 47 48 50 51 52 53 56 59 61 68 94 95"},F:{"34":0.00804,"36":0.00804,"42":0.00804,"64":0.01207,"67":0.01609,"73":0.00804,"74":0.02815,"75":0.01609,"76":0.11262,"77":2.25634,_:"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 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0007,"5.0-5.1":0.0014,"6.0-6.1":0.00702,"7.0-7.1":0.00421,"8.1-8.4":0.0014,"9.0-9.2":0.0014,"9.3":0.09261,"10.0-10.2":0.0014,"10.3":0.14523,"11.0-11.2":0.12348,"11.3-11.4":0.02806,"12.0-12.1":0.03017,"12.2-12.4":0.15715,"13.0-13.1":0.02385,"13.2":0.01052,"13.3":0.13961,"13.4-13.7":0.21258,"14.0-14.4":1.54278,"14.5-14.7":3.94569},E:{"4":0,"11":0.00402,"12":0.00402,"13":0.0724,"14":0.25339,"15":0.02011,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.08848,"10.1":0.00402,"11.1":0.02011,"12.1":0.03218,"13.1":0.12468,"14.1":0.87277},B:{"12":0.10859,"13":0.04826,"14":0.02413,"15":0.09251,"16":0.05229,"17":0.11262,"18":0.21719,"80":0.01207,"81":0.00402,"84":0.02413,"85":0.06033,"86":0.01207,"87":0.01207,"88":0.01207,"89":0.08446,"90":0.04424,"91":3.04868,"92":0.7682,_:"79 83"},P:{"4":0.3209,"5.0-5.4":0.11143,"6.2-6.4":0.05176,"7.2-7.4":0.20703,"8.2":0.01013,"9.2":0.03106,"10.1":0.05176,"11.1-11.2":0.12422,"12.0":0.14492,"13.0":0.34161,"14.0":1.501},I:{"0":0,"3":0,"4":0.00086,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00286,"4.2-4.3":0.01232,"4.4":0,"4.4.3-4.4.4":0.12746},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00444,"10":0.00887,"11":0.28834,_:"6 7 9 5.5"},J:{"7":0,"10":0.01196},N:{"10":0.01143,"11":0.01864},L:{"0":45.48848},S:{"2.5":0.01794},R:{_:"0"},M:{"0":0.1435},Q:{"10.4":0.04783},O:{"0":2.22419},H:{"0":8.83043}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js index 6a4dc17c97114a..ad7f2afaf465ed 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js @@ -1 +1 @@ -module.exports={C:{"2":0.04633,"15":0.04633,"18":0.04118,"21":0.04376,"23":0.04376,"25":0.08494,"30":0.04118,"34":0.00257,"43":0.00772,"47":0.00772,"48":0.00515,"51":0.04376,"52":0.06178,"55":0.00257,"56":0.00515,"60":0.00515,"65":0.00515,"66":0.00257,"67":0.0103,"68":0.00515,"72":0.0103,"75":0.00257,"76":0.00257,"77":0.00515,"78":0.04891,"79":0.00515,"80":0.00772,"81":0.00515,"82":0.00772,"83":0.00515,"84":0.04633,"85":0.01544,"86":0.01802,"87":0.03861,"88":1.46718,"89":0.05405,_:"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 35 36 37 38 39 40 41 42 44 45 46 49 50 53 54 57 58 59 61 62 63 64 69 70 71 73 74 90 91 3.5 3.6"},D:{"11":0.00257,"19":0.04633,"24":0.12355,"26":0.00515,"28":0.00257,"30":0.04633,"33":0.05148,"34":0.00257,"35":0.08752,"38":0.00515,"39":0.00257,"40":0.0103,"43":0.06435,"47":0.00515,"48":0.00257,"49":0.09524,"50":0.00515,"53":0.01287,"54":0.04118,"55":0.05148,"56":0.22136,"57":0.00515,"58":0.0103,"60":0.00515,"61":0.02831,"62":0.00515,"63":0.01544,"64":0.00772,"65":0.0103,"66":0.00515,"67":0.01287,"68":0.0103,"69":0.01544,"70":0.01544,"71":0.01287,"72":0.01544,"73":0.00772,"74":0.01544,"75":0.01287,"76":0.01544,"77":0.01544,"78":0.01544,"79":0.05148,"80":0.03861,"81":0.03604,"83":0.04891,"84":0.03346,"85":0.03604,"86":0.08494,"87":0.23166,"88":0.13385,"89":0.44788,"90":12.02058,"91":0.5045,"92":0.01287,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 25 27 29 31 32 36 37 41 42 44 45 46 51 52 59 93 94"},F:{"36":0.00515,"43":0.04118,"63":0.00515,"64":0.00772,"68":0.00257,"69":0.00257,"70":0.00515,"71":0.00772,"72":0.01802,"73":0.05148,"74":0.01287,"75":0.27542,"76":0.41956,_:"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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 65 66 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.04118},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00352,"6.0-6.1":0.8853,"7.0-7.1":0.02697,"8.1-8.4":0.00586,"9.0-9.2":0.00821,"9.3":0.1067,"10.0-10.2":0.1325,"10.3":0.13836,"11.0-11.2":0.07505,"11.3-11.4":0.06801,"12.0-12.1":0.0598,"12.2-12.4":0.29197,"13.0-13.1":0.05511,"13.2":0.0258,"13.3":0.15595,"13.4-13.7":0.4362,"14.0-14.4":7.56431,"14.5-14.6":0.84543},E:{"4":0,"5":0.03861,"11":0.00257,"12":0.00515,"13":0.05405,"14":0.38867,_:"0 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.15444,"10.1":0.00515,"11.1":0.01544,"12.1":0.02059,"13.1":0.09781,"14.1":0.13385},B:{"12":0.01544,"13":0.00772,"14":0.00772,"15":0.0103,"16":0.01287,"17":0.01802,"18":0.07207,"80":0.00257,"84":0.0103,"85":0.0103,"86":0.00772,"87":0.00772,"88":0.01287,"89":0.04891,"90":1.28957,"91":0.08752,_:"79 81 83"},P:{"4":0.32814,"5.0-5.4":0.0103,"6.2-6.4":0.02051,"7.2-7.4":0.25636,"8.2":0.01025,"9.2":0.09229,"10.1":0.05127,"11.1-11.2":0.27687,"12.0":0.18458,"13.0":0.63577,"14.0":2.36877},I:{"0":0,"3":0,"4":0.00085,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00678,"4.2-4.3":0.04834,"4.4":0,"4.4.3-4.4.4":0.27815},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05434,"9":0.10582,"10":0.09724,"11":0.28314,_:"6 7 5.5"},J:{"7":0,"10":0.01485},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.02228},R:{_:"0"},M:{"0":0.23018},Q:{"10.4":0.01485},O:{"0":0.72765},H:{"0":8.70956},L:{"0":52.62078}}; +module.exports={C:{"2":0.05178,"15":0.05178,"18":0.05178,"21":0.05178,"23":0.05178,"25":0.10356,"30":0.05178,"34":0.00609,"43":0.00914,"47":0.00914,"48":0.00609,"51":0.05178,"52":0.05787,"56":0.00305,"60":0.00609,"68":0.00305,"72":0.00914,"77":0.00305,"78":0.04569,"79":0.00305,"80":0.00609,"81":0.00609,"82":0.00609,"83":0.00609,"84":0.01828,"85":0.00914,"86":0.00914,"87":0.00914,"88":0.0396,"89":2.56473,"90":1.99208,"91":0.02741,_:"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 35 36 37 38 39 40 41 42 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 92 3.5 3.6"},D:{"11":0.00305,"19":0.05483,"24":0.1523,"26":0.00305,"28":0.00305,"30":0.05178,"33":0.05787,"34":0.00305,"35":0.10661,"38":0.00914,"39":0.00305,"40":0.00914,"43":0.05483,"47":0.00609,"49":0.08833,"50":0.00914,"53":0.00914,"54":0.05483,"55":0.05483,"56":0.265,"57":0.00609,"58":0.00914,"60":0.00305,"61":0.03046,"62":0.00305,"63":0.01523,"64":0.00914,"65":0.00914,"66":0.00305,"67":0.00914,"68":0.00914,"69":0.01523,"70":0.01828,"71":0.00914,"72":0.01218,"73":0.00609,"74":0.01828,"75":0.01218,"76":0.01218,"77":0.01218,"78":0.01218,"79":0.06397,"80":0.03351,"81":0.03655,"83":0.0396,"84":0.02741,"85":0.03046,"86":0.07006,"87":0.21931,"88":0.06701,"89":0.11575,"90":0.24368,"91":10.7402,"92":2.516,"93":0.01218,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 25 27 29 31 32 36 37 41 42 44 45 46 48 51 52 59 94 95"},F:{"36":0.00609,"43":0.05178,"64":0.01218,"70":0.00609,"71":0.00609,"72":0.01218,"73":0.01218,"74":0.00914,"75":0.01218,"76":0.09747,"77":0.65794,_:"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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.04874},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0.00659,"6.0-6.1":1.07785,"7.0-7.1":0.02747,"8.1-8.4":0.00549,"9.0-9.2":0.00769,"9.3":0.11647,"10.0-10.2":0.1725,"10.3":0.16151,"11.0-11.2":0.12086,"11.3-11.4":0.06922,"12.0-12.1":0.06922,"12.2-12.4":0.31094,"13.0-13.1":0.06702,"13.2":0.02637,"13.3":0.1725,"13.4-13.7":0.52409,"14.0-14.4":2.70287,"14.5-14.7":4.22241},E:{"4":0,"5":0.05178,"12":0.00305,"13":0.03655,"14":0.16144,"15":0.00609,_:"0 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.02132,"10.1":0.00609,"11.1":0.01523,"12.1":0.03351,"13.1":0.08529,"14.1":0.42035},B:{"12":0.01828,"13":0.00914,"14":0.00609,"15":0.00914,"16":0.01218,"17":0.01523,"18":0.06701,"84":0.01218,"85":0.00914,"86":0.00305,"87":0.00609,"88":0.00609,"89":0.02437,"90":0.02132,"91":1.27018,"92":0.32288,_:"79 80 81 83"},P:{"4":0.34406,_:"5.0-5.4 8.2","6.2-6.4":0.02024,"7.2-7.4":0.28334,"9.2":0.09107,"10.1":0.04048,"11.1-11.2":0.24286,"12.0":0.15179,"13.0":0.3643,"14.0":2.73223},I:{"0":0,"3":0,"4":0.0022,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00659,"4.2-4.3":0.04539,"4.4":0,"4.4.3-4.4.4":0.25184},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06532,"9":0.12376,"10":0.12033,"11":0.27847,_:"6 7 5.5"},J:{"7":0,"10":0.01391},N:{_:"10 11"},L:{"0":50.73487},S:{"2.5":0.02087},R:{_:"0"},M:{"0":0.25038},Q:{"10.4":0.01391},O:{"0":0.80678},H:{"0":7.61832}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js index 97fb763c317929..fd27775ba28154 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js @@ -1 +1 @@ -module.exports={C:{"54":0.14335,"88":0.99354,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 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 78 79 80 81 82 83 84 85 86 87 89 90 91 3.5 3.6"},D:{"68":0.14335,"72":0.14335,"88":0.4251,"89":0.56845,"90":23.8648,"91":0.56845,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 73 74 75 76 77 78 79 80 81 83 84 85 86 87 92 93 94"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.14149,"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.14149,"12.2-12.4":0,"13.0-13.1":0,"13.2":0,"13.3":0.14149,"13.4-13.7":0.14149,"14.0-14.4":17.66959,"14.5-14.6":0},E:{"4":0,"14":7.38484,_:"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.14335,"13.1":0.8502,"14.1":3.69242},B:{"14":0.14335,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91"},P:{"4":0.32814,"5.0-5.4":0.0103,"6.2-6.4":0.02051,"7.2-7.4":0.25636,"8.2":0.01025,"9.2":0.09229,"10.1":0.05127,"11.1-11.2":0.27687,"12.0":0.18458,"13.0":0.63577,"14.0":2.36877},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":8.66508,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.1416},S:{"2.5":0},R:{_:"0"},M:{"0":0.42985},Q:{"10.4":0},O:{"0":7.40851},H:{"0":0},L:{"0":25.77821}}; +module.exports={C:{"85":0.15889,"89":0.47258,"90":0.15889,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 86 87 88 91 92 3.5 3.6"},D:{"68":0.54999,"72":0.07741,"84":1.72738,"89":0.23629,"91":12.48274,"92":2.59106,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 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 73 74 75 76 77 78 79 80 81 83 85 86 87 88 90 93 94 95"},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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},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.4":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":16.90654,"14.5-14.7":14.37024},E:{"4":0,"14":0.07741,"15":12.32385,_:"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":4.94584},B:{"18":0.23629,"91":0.07741,"92":0.15889,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90"},P:{"4":0.081,"5.0-5.4":0.11143,"6.2-6.4":0.05176,"7.2-7.4":0.08343,"8.2":0.01013,"9.2":0.05214,"10.1":0.02086,"11.1-11.2":0.146,"12.0":0.073,"13.0":0.23985,"14.0":0.162},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":3.05957,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":26.44419},S:{"2.5":0},R:{_:"0"},M:{"0":0.24301},Q:{"10.4":0},O:{"0":1.44619},H:{"0":0.15151}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js index d42b26b884ff27..61ed149888440b 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js @@ -1 +1 @@ -module.exports={C:{"15":0.00331,"34":0.00661,"36":0.00661,"43":0.12559,"47":0.00331,"48":0.00331,"52":0.05288,"56":0.01322,"60":0.00331,"66":0.00331,"68":0.00331,"72":0.00661,"78":0.03305,"79":0.00661,"80":0.00992,"81":0.00661,"82":0.00661,"83":0.00661,"84":0.00992,"85":0.00992,"86":0.01322,"87":0.02975,"88":1.20302,"89":0.04297,_:"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 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 90 91 3.5 3.6"},D:{"11":0.00331,"22":0.01653,"26":0.00661,"34":0.01653,"35":0.00661,"38":0.04297,"42":0.00661,"43":0.00331,"45":0.00331,"47":0.01322,"48":0.00992,"49":0.1322,"51":0.03636,"53":0.07932,"54":0.00331,"55":0.01983,"56":0.00992,"57":0.01322,"58":0.00661,"59":0.00661,"60":0.00331,"61":0.04627,"62":0.01653,"63":0.02644,"64":0.00661,"65":0.01322,"66":0.00661,"67":0.04627,"68":0.02644,"69":0.07932,"70":0.05949,"71":0.02975,"72":0.05949,"73":0.01983,"74":0.16195,"75":0.03305,"76":0.01983,"77":0.01983,"78":0.04297,"79":0.07602,"80":0.05288,"81":0.05288,"83":0.07932,"84":0.05619,"85":0.05288,"86":0.11568,"87":0.20161,"88":0.17186,"89":0.63456,"90":18.77571,"91":0.62465,"92":0.01983,_:"4 5 6 7 8 9 10 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 50 52 93 94"},F:{"36":0.00992,"40":0.00661,"46":0.01322,"73":0.03305,"74":0.00331,"75":0.19169,"76":0.24127,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00098,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00684,"5.0-5.1":0.00977,"6.0-6.1":0.00879,"7.0-7.1":0.04102,"8.1-8.4":0.02051,"9.0-9.2":0.03028,"9.3":0.1172,"10.0-10.2":0.03614,"10.3":0.1133,"11.0-11.2":0.11134,"11.3-11.4":0.06642,"12.0-12.1":0.08595,"12.2-12.4":0.24418,"13.0-13.1":0.07032,"13.2":0.03711,"13.3":0.16213,"13.4-13.7":0.52352,"14.0-14.4":6.26069,"14.5-14.6":1.31269},E:{"4":0,"8":0.00331,"11":0.00331,"12":0.00661,"13":0.05619,"14":1.09726,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.195,"10.1":0.00992,"11.1":0.01983,"12.1":0.03636,"13.1":0.18178,"14.1":0.28423},B:{"12":0.00331,"14":0.00331,"15":0.00331,"16":0.00661,"17":0.00992,"18":0.04297,"84":0.00661,"85":0.00661,"86":0.00661,"87":0.00661,"88":0.00992,"89":0.03966,"90":1.76487,"91":0.08263,_:"13 79 80 81 83"},P:{"4":0.48141,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.11267,"8.2":0.01024,"9.2":0.09219,"10.1":0.05121,"11.1-11.2":0.2151,"12.0":0.1434,"13.0":0.52238,"14.0":1.94613},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.05451,"4.2-4.3":0.19468,"4.4":0,"4.4.3-4.4.4":0.84879},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02245,"9":0.01496,"11":1.18214,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.1416},S:{"2.5":0.22094},R:{_:"0"},M:{"0":0.17407},Q:{"10.4":0.4084},O:{"0":2.77843},H:{"0":1.43248},L:{"0":50.23909}}; +module.exports={C:{"34":0.00694,"36":0.00694,"43":0.07291,"47":0.00694,"48":0.00347,"52":0.0625,"56":0.01389,"60":0.00347,"66":0.00347,"68":0.00347,"72":0.04514,"75":0.00694,"78":0.03472,"79":0.00694,"80":0.00347,"81":0.00347,"82":0.00694,"83":0.00347,"84":0.01042,"85":0.00694,"86":0.00694,"87":0.00694,"88":0.03125,"89":0.85411,"90":0.45483,"91":0.0243,_:"2 3 4 5 6 7 8 9 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 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 76 77 92 3.5 3.6"},D:{"11":0.00347,"22":0.01736,"26":0.00694,"34":0.01389,"35":0.00694,"38":0.04166,"42":0.00694,"43":0.00347,"47":0.01389,"48":0.01042,"49":0.10416,"50":0.00347,"51":0.00347,"53":0.03125,"55":0.01389,"56":0.01042,"57":0.01042,"58":0.00694,"59":0.00694,"61":0.05555,"62":0.01389,"63":0.02083,"64":0.00694,"65":0.01389,"66":0.00694,"67":0.0243,"68":0.01389,"69":0.07291,"70":0.05902,"71":0.02778,"72":0.03819,"73":0.02083,"74":0.1493,"75":0.03819,"76":0.02083,"77":0.01736,"78":0.03125,"79":0.14582,"80":0.04861,"81":0.04514,"83":0.06597,"84":0.05208,"85":0.04861,"86":0.08333,"87":0.19096,"88":0.08333,"89":0.16666,"90":0.35762,"91":17.09613,"92":3.45464,"93":0.02083,_:"4 5 6 7 8 9 10 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 45 46 52 54 60 94 95"},F:{"36":0.01042,"40":0.00694,"46":0.01389,"76":0.0625,"77":0.36456,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00098,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0049,"5.0-5.1":0.00881,"6.0-6.1":0.00979,"7.0-7.1":0.03722,"8.1-8.4":0.01665,"9.0-9.2":0.02547,"9.3":0.10676,"10.0-10.2":0.03918,"10.3":0.1048,"11.0-11.2":0.10186,"11.3-11.4":0.05191,"12.0-12.1":0.07052,"12.2-12.4":0.18511,"13.0-13.1":0.05779,"13.2":0.02547,"13.3":0.13222,"13.4-13.7":0.41822,"14.0-14.4":1.96574,"14.5-14.7":5.93247},E:{"4":0,"8":0.00347,"11":0.00347,"12":0.00694,"13":0.05208,"14":0.35067,"15":0.00694,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.0243,"10.1":0.00694,"11.1":0.01736,"12.1":0.03125,"13.1":0.15971,"14.1":1.14923},B:{"12":0.00347,"14":0.00347,"15":0.00347,"16":0.00694,"17":0.01042,"18":0.03472,"84":0.00694,"85":0.00347,"86":0.00347,"87":0.00347,"88":0.00347,"89":0.01736,"90":0.01736,"91":1.56587,"92":0.38539,_:"13 79 80 81 83"},P:{"4":0.40973,_:"5.0-5.4 8.2","6.2-6.4":0.01024,"7.2-7.4":0.10243,"9.2":0.0717,"10.1":0.04097,"11.1-11.2":0.17414,"12.0":0.10243,"13.0":0.28681,"14.0":1.9872},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03379,"4.2-4.3":0.12838,"4.4":0,"4.4.3-4.4.4":0.60813},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01661,"9":0.01661,"10":0.00831,"11":1.03826,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":51.01496},S:{"2.5":0.23501},R:{_:"0"},M:{"0":0.16973},Q:{"10.4":0.36557},O:{"0":2.29133},H:{"0":1.29168}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js index 7a6919bfa83142..ccfb778e1aa813 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js @@ -1 +1 @@ -module.exports={C:{"45":0.01038,"48":0.01557,"50":0.00519,"52":0.13491,"56":0.02595,"59":0.01038,"60":0.01557,"66":0.01038,"68":0.03113,"69":0.00519,"70":0.00519,"72":0.01557,"75":0.00519,"76":0.00519,"77":0.01557,"78":0.23869,"79":0.02595,"80":0.01557,"81":0.02076,"82":0.0467,"83":0.02595,"84":0.05708,"85":0.07784,"86":0.15567,"87":3.51295,"88":1.45292,"89":0.00519,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 51 53 54 55 57 58 61 62 63 64 65 67 71 73 74 90 3.5 3.6"},D:{"22":0.01038,"38":0.01557,"40":0.03632,"43":0.01038,"47":0.00519,"48":0.00519,"49":0.31134,"50":0.01557,"51":0.01038,"52":0.01038,"53":0.05708,"54":0.02076,"56":0.01038,"57":0.00519,"58":0.01038,"59":0.01038,"60":0.03113,"61":0.08302,"63":0.01557,"64":0.01557,"65":0.04151,"66":0.03632,"67":0.02076,"68":0.02595,"69":0.08821,"70":0.02595,"71":0.02595,"72":0.02595,"73":0.02076,"74":0.11416,"75":0.19718,"76":0.04151,"77":0.02595,"78":0.11416,"79":0.22832,"80":0.15567,"81":0.12973,"83":0.17124,"84":0.20756,"85":0.47739,"86":0.23869,"87":0.46701,"88":0.80948,"89":19.16817,"90":7.38395,"91":0.01557,"92":0.00519,_:"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 41 42 44 45 46 55 62 93"},F:{"31":0.00519,"36":0.01557,"40":0.01038,"68":0.00519,"71":0.01038,"72":0.00519,"73":0.7057,"74":0.31134,"75":1.05337,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00519},G:{"8":0.00287,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0086,"6.0-6.1":0.00717,"7.0-7.1":0.01863,"8.1-8.4":0.0172,"9.0-9.2":0.02867,"9.3":0.19923,"10.0-10.2":0.0215,"10.3":0.1892,"11.0-11.2":0.04873,"11.3-11.4":0.07023,"12.0-12.1":0.05447,"12.2-12.4":0.2236,"13.0-13.1":0.04873,"13.2":0.02293,"13.3":0.14907,"13.4-13.7":0.53177,"14.0-14.4":11.83933,"14.5":0.14763},E:{"4":0,"11":0.01038,"12":0.01557,"13":0.11935,"14":3.90213,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.02595,"9.1":0.00519,"10.1":0.02595,"11.1":0.08821,"12.1":0.12454,"13.1":0.5656,"14.1":0.07784},B:{"12":0.00519,"14":0.00519,"15":0.00519,"16":0.01038,"17":0.02076,"18":0.15048,"83":0.00519,"84":0.01038,"85":0.02076,"86":0.02076,"87":0.02076,"88":0.04151,"89":3.13416,"90":1.39065,_:"13 79 80 81"},P:{"4":0.17967,"5.0-5.4":0.01057,"6.2-6.4":0.01024,"7.2-7.4":0.11267,"8.2":0.01024,"9.2":0.03171,"10.1":0.03171,"11.1-11.2":0.14797,"12.0":0.11626,"13.0":2.40974,"14.0":1.09918},I:{"0":0,"3":0,"4":0.00508,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0062,"4.2-4.3":0.00959,"4.4":0,"4.4.3-4.4.4":0.06092},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.03533,"8":0.01178,"9":0.01178,"10":0.00589,"11":0.67725,_:"7 5.5"},J:{"7":0,"10":0},N:{"10":0,"11":0},L:{"0":30.19889},S:{"2.5":0},R:{_:"0"},M:{"0":0.37045},Q:{"10.4":0.00962},O:{"0":0.17801},H:{"0":0.41448}}; +module.exports={C:{"45":0.00994,"48":0.0149,"50":0.02484,"51":0.00497,"52":0.1391,"55":0.00497,"56":0.00994,"59":0.00994,"60":0.0149,"63":0.00497,"66":0.00994,"68":0.02981,"69":0.00497,"70":0.00497,"71":0.00497,"72":0.0149,"74":0.00497,"75":0.00497,"76":0.00497,"77":0.0149,"78":0.22853,"79":0.01987,"80":0.00994,"81":0.01987,"82":0.02981,"83":0.0149,"84":0.03974,"85":0.01987,"86":0.01987,"87":0.04968,"88":0.1391,"89":3.13481,"90":1.7239,"91":0.00994,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 53 54 57 58 61 62 64 65 67 73 92 3.5 3.6"},D:{"22":0.02484,"34":0.00497,"38":0.01987,"40":0.04471,"43":0.0149,"47":0.00994,"48":0.00994,"49":0.32292,"50":0.0149,"51":0.00994,"52":0.01987,"53":0.0149,"54":0.02484,"55":0.01987,"56":0.01987,"57":0.00497,"58":0.00994,"59":0.00994,"60":0.02981,"61":0.11426,"62":0.00497,"63":0.0149,"64":0.02484,"65":0.03974,"66":0.03974,"67":0.0149,"68":0.00994,"69":0.11923,"70":0.03478,"71":0.02484,"72":0.03478,"73":0.0149,"74":0.10433,"75":0.22356,"76":0.03974,"77":0.02484,"78":0.08942,"79":0.25834,"80":0.15898,"81":0.11923,"83":0.12917,"84":0.15401,"85":0.92902,"86":0.11923,"87":0.3577,"88":0.15898,"89":0.27324,"90":0.66074,"91":20.03098,"92":3.8353,"93":0.0149,_:"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 94 95"},F:{"31":0.02484,"36":0.0149,"40":0.01987,"46":0.00497,"68":0.0149,"71":0.00497,"74":0.00497,"75":0.00994,"76":0.43718,"77":1.49537,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00497},G:{"8":0.00303,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00908,"6.0-6.1":0.00757,"7.0-7.1":0.02271,"8.1-8.4":0.01514,"9.0-9.2":0.02119,"9.3":0.18316,"10.0-10.2":0.01816,"10.3":0.17559,"11.0-11.2":0.0439,"11.3-11.4":0.06509,"12.0-12.1":0.04541,"12.2-12.4":0.15591,"13.0-13.1":0.04087,"13.2":0.02119,"13.3":0.12261,"13.4-13.7":0.42687,"14.0-14.4":2.13435,"14.5-14.7":10.90485},E:{"4":0,"11":0.00994,"12":0.0149,"13":0.09439,"14":0.81475,"15":0.01987,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01987,"9.1":0.00497,"10.1":0.01987,"11.1":0.06955,"12.1":0.09936,"13.1":0.43718,"14.1":2.83673},B:{"12":0.0149,"14":0.00497,"15":0.00994,"16":0.00994,"17":0.01987,"18":0.1093,"83":0.00497,"84":0.0149,"85":0.0149,"86":0.0149,"87":0.00994,"88":0.00994,"89":0.02981,"90":0.03974,"91":3.52728,"92":0.84953,_:"13 79 80 81"},P:{"4":0.17837,"5.0-5.4":0.01049,"6.2-6.4":0.05176,"7.2-7.4":0.03148,"8.2":0.01013,"9.2":0.04197,"10.1":0.02099,"11.1-11.2":0.16788,"12.0":0.08394,"13.0":0.24133,"14.0":3.53598},I:{"0":0,"3":0,"4":0.00595,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00727,"4.2-4.3":0.01124,"4.4":0,"4.4.3-4.4.4":0.06611},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01178,"8":0.01766,"9":0.01178,"10":0.01178,"11":0.58291,_:"7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":32.03238},S:{"2.5":0},R:{_:"0"},M:{"0":0.44785},Q:{"10.4":0.01006},O:{"0":0.21134},H:{"0":0.48116}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js index 9812c4f1bee9fc..7691bdfac83248 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js @@ -1 +1 @@ -module.exports={C:{"2":0.00996,"3":0.00498,"4":0.0946,"11":0.01494,"38":0.00498,"43":0.00498,"44":0.01992,"45":0.00498,"48":0.00996,"52":0.04481,"54":0.01494,"55":0.00996,"56":0.0249,"58":0.01494,"59":0.00498,"60":0.00498,"63":0.07966,"66":0.00996,"68":0.00996,"70":0.00996,"72":0.00996,"76":0.00498,"77":0.00498,"78":0.14439,"79":0.00996,"80":0.00996,"81":0.00996,"82":0.0249,"83":0.00996,"84":0.01992,"85":0.01992,"86":0.03485,"87":0.09958,"88":2.2057,"89":0.01494,_:"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 57 61 62 64 65 67 69 71 73 74 75 90 91 3.5 3.6"},D:{"33":0.00498,"35":0.01992,"38":0.00498,"40":0.01992,"43":0.00498,"47":0.00498,"48":0.05477,"49":0.26389,"51":0.00498,"53":0.0249,"56":0.08962,"58":0.00498,"59":0.00996,"60":0.02987,"61":0.29376,"62":0.00498,"63":0.01494,"64":0.05477,"65":0.0249,"66":0.03983,"67":0.03485,"68":0.02987,"69":0.0249,"70":0.13941,"71":0.00996,"72":0.07469,"73":0.0249,"74":0.06971,"75":0.12448,"76":0.19418,"77":0.06473,"78":0.1195,"79":0.38338,"80":0.16431,"81":0.0946,"83":0.22903,"84":0.14937,"85":0.17924,"86":0.25393,"87":0.48296,"88":0.69208,"89":2.01152,"90":22.48019,"91":0.54271,"92":0.04481,"93":0.01494,_:"4 5 6 7 8 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 46 50 52 54 55 57 94"},F:{"73":0.04979,"74":0.00498,"75":0.24895,"76":0.24895,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00518,"6.0-6.1":0.01294,"7.0-7.1":0.02589,"8.1-8.4":0.0233,"9.0-9.2":0.01812,"9.3":0.17084,"10.0-10.2":0.03106,"10.3":0.18637,"11.0-11.2":0.08024,"11.3-11.4":0.09578,"12.0-12.1":0.09578,"12.2-12.4":0.30544,"13.0-13.1":0.08801,"13.2":0.044,"13.3":0.24332,"13.4-13.7":0.84644,"14.0-14.4":19.28444,"14.5-14.6":3.59804},E:{"4":0,"8":0.92112,"9":0.00996,"11":0.01494,"12":0.01992,"13":0.13443,"14":4.16244,_:"0 5 6 7 10 3.1 3.2 6.1 7.1","5.1":0.03485,"9.1":0.07966,"10.1":0.03983,"11.1":0.1195,"12.1":0.17924,"13.1":0.74187,"14.1":1.45387},B:{"12":0.01494,"14":0.00498,"15":0.00996,"16":0.00996,"17":0.08962,"18":0.15933,"80":0.00498,"84":0.00996,"85":0.00996,"86":0.01494,"87":0.01992,"88":0.0249,"89":0.13443,"90":4.81469,"91":0.19418,_:"13 79 81 83"},P:{"4":0.08599,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.11267,"8.2":0.01024,"9.2":0.03225,"10.1":0.05121,"11.1-11.2":0.08599,"12.0":0.043,"13.0":0.24722,"14.0":1.95629},I:{"0":0,"3":0,"4":0.03616,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01205,"4.2-4.3":0.07834,"4.4":0,"4.4.3-4.4.4":0.18983},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00559,"8":0.01118,"9":0.22909,"11":0.75991,_:"6 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.1416},S:{"2.5":0},R:{_:"0"},M:{"0":0.40176},Q:{"10.4":0.01507},O:{"0":0.21595},H:{"0":0.23297},L:{"0":22.58233}}; +module.exports={C:{"4":0.08039,"11":0.01419,"17":0.00473,"38":0.00473,"43":0.01892,"44":0.02365,"45":0.00946,"48":0.01419,"52":0.04256,"54":0.00946,"55":0.01419,"56":0.00473,"58":0.01892,"59":0.00473,"63":0.02837,"66":0.00473,"68":0.00946,"70":0.01892,"72":0.00473,"73":0.00946,"76":0.00473,"77":0.00473,"78":0.15606,"79":0.01419,"80":0.00946,"81":0.00946,"82":0.02365,"83":0.00946,"84":0.01419,"85":0.00946,"86":0.01419,"87":0.00946,"88":0.05675,"89":1.47545,"90":0.85595,"91":0.00473,_:"2 3 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 51 53 57 60 61 62 64 65 67 69 71 74 75 92 3.5 3.6"},D:{"33":0.00473,"35":0.00946,"38":0.00946,"40":0.01892,"43":0.00473,"46":0.00473,"47":0.00946,"48":0.06148,"49":0.22226,"52":0.00473,"53":0.00473,"56":0.09458,"58":0.00473,"59":0.00946,"60":0.01892,"61":0.07566,"62":0.00473,"63":0.01419,"64":0.04256,"65":0.02365,"66":0.04256,"67":0.02837,"68":0.00473,"69":0.01892,"70":0.07566,"71":0.02365,"72":0.05202,"73":0.00946,"74":0.08039,"75":0.07094,"76":0.1466,"77":0.0331,"78":0.06621,"79":0.21753,"80":0.10877,"81":0.08039,"83":0.12768,"84":0.13241,"85":0.1135,"86":0.12295,"87":0.41142,"88":0.20808,"89":0.3263,"90":1.06403,"91":18.72211,"92":3.47582,"93":0.04256,"94":0.02837,_:"4 5 6 7 8 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 51 54 55 57 95"},F:{"75":0.00473,"76":0.13241,"77":0.44453,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0054,"6.0-6.1":0.01351,"7.0-7.1":0.02161,"8.1-8.4":0.01891,"9.0-9.2":0.01891,"9.3":0.16747,"10.0-10.2":0.02431,"10.3":0.18097,"11.0-11.2":0.07293,"11.3-11.4":0.09184,"12.0-12.1":0.09454,"12.2-12.4":0.2539,"13.0-13.1":0.07563,"13.2":0.04052,"13.3":0.21338,"13.4-13.7":0.72929,"14.0-14.4":3.78151,"14.5-14.7":20.46605},E:{"4":0,"8":0.00946,"9":0.00946,"11":0.01419,"12":0.01892,"13":0.12295,"14":1.2059,"15":0.02365,_:"0 5 6 7 10 3.1 3.2 6.1 7.1","5.1":0.01419,"9.1":0.06621,"10.1":0.03783,"11.1":0.1135,"12.1":0.17497,"13.1":1.51801,"14.1":4.63442},B:{"12":0.00473,"14":0.00473,"15":0.00473,"16":0.00946,"17":0.03783,"18":0.13241,"84":0.00946,"85":0.00946,"86":0.01419,"87":0.01892,"88":0.00946,"89":0.02837,"90":0.03783,"91":4.27029,"92":1.02619,_:"13 79 80 81 83"},P:{"4":0.07536,"5.0-5.4":0.01049,"6.2-6.4":0.05176,"7.2-7.4":0.03148,"8.2":0.01077,"9.2":0.02153,"10.1":0.02099,"11.1-11.2":0.09689,"12.0":0.0323,"13.0":0.13995,"14.0":2.16383},I:{"0":0,"3":0,"4":0.00913,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00228,"4.2-4.3":0.01902,"4.4":0,"4.4.3-4.4.4":0.04336},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01596,"9":0.27665,"11":0.6863,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":24.57744},S:{"2.5":0},R:{_:"0"},M:{"0":0.43749},Q:{"10.4":0.01581},O:{"0":0.22665},H:{"0":0.23454}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js index 179fcd7c29a6ad..7212bdc2e11d14 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js @@ -1 +1 @@ -module.exports={C:{"34":0.00531,"48":0.01063,"52":0.0425,"56":0.01063,"60":0.00531,"68":0.01063,"72":0.00531,"75":0.00531,"77":0.00531,"78":0.11689,"81":0.00531,"82":0.0425,"83":0.00531,"84":0.02125,"85":0.02125,"86":0.03719,"87":0.08501,"88":2.4121,"89":0.02125,_:"2 3 4 5 6 7 8 9 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 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 76 79 80 90 91 3.5 3.6"},D:{"26":0.01063,"34":0.01594,"38":0.08501,"48":0.00531,"49":0.34003,"53":0.10095,"55":0.01063,"56":0.01063,"57":0.00531,"58":0.00531,"59":0.01594,"60":0.01594,"61":0.0797,"63":0.01594,"64":0.03188,"65":0.05844,"66":0.01594,"67":0.0425,"68":0.0425,"69":0.04782,"70":0.04782,"71":0.02657,"72":0.04782,"73":0.0425,"74":0.0425,"75":0.0425,"76":0.04782,"77":0.02657,"78":0.04782,"79":0.15939,"80":0.15408,"81":0.0797,"83":0.08501,"84":0.07438,"85":0.0797,"86":0.23909,"87":0.52067,"88":0.62693,"89":2.003,"90":26.05495,"91":0.92978,"92":0.02125,_:"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 39 40 41 42 43 44 45 46 47 50 51 52 54 62 93 94"},F:{"46":0.02125,"73":0.03719,"75":0.17533,"76":0.19658,_:"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 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00475,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01663,"6.0-6.1":0.03563,"7.0-7.1":0.04751,"8.1-8.4":0.08076,"9.0-9.2":0.03563,"9.3":0.43705,"10.0-10.2":0.04751,"10.3":0.45606,"11.0-11.2":0.15677,"11.3-11.4":0.15677,"12.0-12.1":0.15202,"12.2-12.4":0.53682,"13.0-13.1":0.07838,"13.2":0.04038,"13.3":0.27316,"13.4-13.7":0.8361,"14.0-14.4":16.70308,"14.5-14.6":2.31354},E:{"4":0,"8":0.01594,"10":0.00531,"11":0.02657,"12":0.03719,"13":0.23377,"14":5.99306,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.01594,"10.1":0.06376,"11.1":0.13814,"12.1":0.24971,"13.1":1.0201,"14.1":1.46108},B:{"14":0.00531,"15":0.00531,"16":0.01594,"17":0.02125,"18":0.14345,"80":0.00531,"84":0.01594,"85":0.01594,"86":0.02125,"87":0.01594,"88":0.02657,"89":0.13283,"90":4.45229,"91":0.32941,_:"12 13 79 81 83"},P:{"4":0.25324,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.01101,"8.2":0.01024,"9.2":0.03303,"10.1":0.03303,"11.1-11.2":0.1101,"12.0":0.07707,"13.0":0.35233,"14.0":2.85167},I:{"0":0,"3":0,"4":0.00137,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00275,"4.2-4.3":0.0055,"4.4":0,"4.4.3-4.4.4":0.04193},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01063,"11":1.13698,_:"7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.1416},S:{"2.5":0},R:{_:"0"},M:{"0":0.40777},Q:{"10.4":0.04218},O:{"0":0.21092},H:{"0":0.23962},L:{"0":20.80302}}; +module.exports={C:{"34":0.01606,"48":0.0107,"52":0.03746,"56":0.00535,"60":0.00535,"68":0.00535,"72":0.00535,"78":0.11239,"82":0.03211,"84":0.01606,"85":0.0107,"86":0.0107,"87":0.0107,"88":0.06958,"89":1.4718,"90":0.94195,"91":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 35 36 37 38 39 40 41 42 43 44 45 46 47 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 83 92 3.5 3.6"},D:{"26":0.01606,"34":0.03211,"38":0.12845,"47":0.00535,"48":0.00535,"49":0.2676,"53":0.04817,"55":0.0107,"56":0.01606,"57":0.01606,"58":0.00535,"59":0.01606,"60":0.01606,"61":0.02141,"62":0.00535,"63":0.01606,"64":0.03211,"65":0.04817,"66":0.01606,"67":0.04282,"68":0.02141,"69":0.04282,"70":0.04817,"71":0.02141,"72":0.04282,"73":0.04282,"74":0.03746,"75":0.04282,"76":0.03746,"77":0.02141,"78":0.03746,"79":0.31042,"80":0.09634,"81":0.06422,"83":0.06422,"84":0.04817,"85":0.03746,"86":0.10704,"87":0.4121,"88":0.16056,"89":0.37464,"90":1.26307,"91":22.53727,"92":5.53397,"93":0.02676,_:"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 39 40 41 42 43 44 45 46 50 51 52 54 94 95"},F:{"36":0.00535,"40":0.00535,"46":0.06958,"75":0.00535,"76":0.09634,"77":0.33182,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00239,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03584,"6.0-6.1":0.03345,"7.0-7.1":0.03584,"8.1-8.4":0.0669,"9.0-9.2":0.03345,"9.3":0.39183,"10.0-10.2":0.0454,"10.3":0.43962,"11.0-11.2":0.14096,"11.3-11.4":0.14335,"12.0-12.1":0.13619,"12.2-12.4":0.42528,"13.0-13.1":0.07168,"13.2":0.03584,"13.3":0.23175,"13.4-13.7":0.73349,"14.0-14.4":3.0797,"14.5-14.7":16.48796},E:{"4":0,"8":0.02141,"11":0.02141,"12":0.02676,"13":0.21408,"14":1.69123,"15":0.02676,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.02141,"10.1":0.06422,"11.1":0.1338,"12.1":0.21943,"13.1":0.90984,"14.1":6.1441},B:{"15":0.00535,"16":0.00535,"17":0.01606,"18":0.12845,"84":0.01606,"85":0.0107,"86":0.01606,"87":0.0107,"88":0.01606,"89":0.02676,"90":0.03746,"91":3.91231,"92":1.1935,_:"12 13 14 79 80 81 83"},P:{"4":0.69618,"5.0-5.4":0.01049,"6.2-6.4":0.05176,"7.2-7.4":0.03148,"8.2":0.01077,"9.2":0.03263,"10.1":0.01088,"11.1-11.2":0.0979,"12.0":0.06527,"13.0":0.18492,"14.0":2.81737},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.0054,"4.4":0,"4.4.3-4.4.4":0.03442},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0123,"11":1.0581,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":20.29295},S:{"2.5":0},R:{_:"0"},M:{"0":0.40446},Q:{"10.4":0.05579},O:{"0":0.19526},H:{"0":0.22447}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js index a16a6769b65a3c..3747f5892f2cbb 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js @@ -1 +1 @@ -module.exports={C:{"17":0.00498,"52":0.05474,"60":0.00498,"66":0.00995,"68":0.00995,"72":0.00995,"73":0.00498,"77":0.00498,"78":0.06469,"79":0.00498,"80":0.00498,"81":0.00995,"82":0.00995,"83":0.00498,"84":0.0199,"85":0.01493,"86":0.01493,"87":0.03981,"88":1.83614,"89":0.01493,_:"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 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 74 75 76 90 91 3.5 3.6"},D:{"22":0.00498,"24":0.00498,"34":0.00498,"38":0.02488,"47":0.00995,"49":0.2289,"53":0.03483,"55":0.00995,"58":0.00995,"61":0.16918,"62":0.00498,"63":0.02488,"65":0.01493,"66":0.01493,"67":0.00995,"68":0.01493,"69":0.00995,"70":0.01493,"71":0.01493,"72":0.01493,"73":0.05474,"74":0.0199,"75":0.02986,"76":0.02488,"77":0.0199,"78":0.02986,"79":0.07464,"80":0.05474,"81":0.06469,"83":0.06966,"84":0.06966,"85":0.06966,"86":0.13933,"87":0.31349,"88":0.19904,"89":0.78621,"90":35.0808,"91":1.48782,"92":0.0199,_:"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 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 59 60 64 93 94"},F:{"36":0.00498,"73":0.36822,"75":1.32859,"76":0.65186,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00098,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0128,"6.0-6.1":0.00443,"7.0-7.1":0.0064,"8.1-8.4":0.00246,"9.0-9.2":0.00148,"9.3":0.05267,"10.0-10.2":0.00345,"10.3":0.04233,"11.0-11.2":0.00985,"11.3-11.4":0.03987,"12.0-12.1":0.01428,"12.2-12.4":0.06399,"13.0-13.1":0.01428,"13.2":0.00541,"13.3":0.04923,"13.4-13.7":0.18805,"14.0-14.4":3.43947,"14.5-14.6":0.68573},E:{"4":0,"13":0.02488,"14":0.51253,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.12938,"11.1":0.0199,"12.1":0.02986,"13.1":0.14928,"14.1":0.27368},B:{"15":0.00498,"16":0.00498,"17":0.00995,"18":0.05474,"84":0.00995,"85":0.00498,"86":0.00498,"87":0.00498,"88":0.00498,"89":0.04478,"90":2.28896,"91":0.17416,_:"12 13 14 79 80 81 83"},P:{"4":0.16473,"5.0-5.4":0.01024,"6.2-6.4":0.01024,"7.2-7.4":0.14414,"8.2":0.01024,"9.2":0.04118,"10.1":0.02059,"11.1-11.2":0.20591,"12.0":0.07207,"13.0":0.32945,"14.0":1.73992},I:{"0":0,"3":0,"4":0.0009,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00493,"4.2-4.3":0.00762,"4.4":0,"4.4.3-4.4.4":0.0569},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01063,"9":0.00532,"11":0.21793,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.1416},S:{"2.5":0},R:{_:"0"},M:{"0":0.13565},Q:{"10.4":0},O:{"0":0.08541},H:{"0":0.19501},L:{"0":43.89923}}; +module.exports={C:{"4":0.00485,"5":0.00485,"15":0.00485,"17":0.0097,"52":0.05333,"60":0.0097,"66":0.01454,"68":0.01454,"72":0.0097,"73":0.00485,"78":0.06302,"79":0.0097,"80":0.00485,"81":0.00485,"82":0.00485,"84":0.01939,"85":0.0097,"86":0.0097,"87":0.0097,"88":0.04363,"89":1.15867,"90":0.7175,"91":0.0097,_:"2 3 6 7 8 9 10 11 12 13 14 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 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 74 75 76 77 83 92 3.5 3.6"},D:{"22":0.00485,"23":0.00485,"24":0.0097,"25":0.00485,"34":0.00485,"38":0.02424,"47":0.0097,"49":0.19877,"51":0.00485,"53":0.0097,"55":0.0097,"58":0.0097,"61":0.12605,"63":0.02424,"65":0.01454,"66":0.01454,"67":0.0097,"68":0.0097,"69":0.0097,"70":0.0097,"71":0.01454,"72":0.0097,"73":0.01454,"74":0.01939,"75":0.02909,"76":0.02424,"77":0.01454,"78":0.01939,"79":0.14059,"80":0.04848,"81":0.06302,"83":0.04848,"84":0.05333,"85":0.05818,"86":0.09696,"87":0.32966,"88":0.08726,"89":0.18907,"90":0.44602,"91":28.33171,"92":6.95203,"93":0.01454,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 52 54 56 57 59 60 62 64 94 95"},F:{"36":0.0097,"75":0.0097,"76":0.87749,"77":1.42531,_:"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 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"3.2":0.00106,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0117,"6.0-6.1":0.00585,"7.0-7.1":0.00585,"8.1-8.4":0.00266,"9.0-9.2":0.00106,"9.3":0.04999,"10.0-10.2":0.00372,"10.3":0.04095,"11.0-11.2":0.00904,"11.3-11.4":0.0234,"12.0-12.1":0.01276,"12.2-12.4":0.04839,"13.0-13.1":0.01276,"13.2":0.00691,"13.3":0.04361,"13.4-13.7":0.15953,"14.0-14.4":0.74608,"14.5-14.7":3.84206},E:{"4":0,"13":0.01939,"14":0.16483,"15":0.00485,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.03394,"10.1":0.00485,"11.1":0.01454,"12.1":0.02424,"13.1":0.11635,"14.1":0.54298},B:{"17":0.0097,"18":0.04848,"84":0.0097,"89":0.01939,"90":0.01454,"91":2.03131,"92":0.53813,_:"12 13 14 15 16 79 80 81 83 85 86 87 88"},P:{"4":0.17643,"5.0-5.4":0.01049,"6.2-6.4":0.05176,"7.2-7.4":0.18681,"8.2":0.01077,"9.2":0.04151,"10.1":0.01088,"11.1-11.2":0.18681,"12.0":0.05189,"13.0":0.20757,"14.0":1.95112},I:{"0":0,"3":0,"4":0.00069,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00277,"4.2-4.3":0.00484,"4.4":0,"4.4.3-4.4.4":0.03806},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01587,"9":0.00529,"10":0.00529,"11":0.20626,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":45.25487},S:{"2.5":0},R:{_:"0"},M:{"0":0.14423},Q:{"10.4":0},O:{"0":0.08757},H:{"0":0.19019}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js index 4f710b2c4ee025..21749d7c71ba68 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js @@ -1 +1 @@ -module.exports={C:{"4":0.02102,"11":0.00841,"43":0.05886,"44":0.0042,"45":0.0042,"48":0.00841,"51":0.0042,"52":0.07147,"54":0.0042,"55":0.0042,"56":0.01261,"58":0.0042,"59":0.0042,"60":0.00841,"63":0.02102,"66":0.00841,"68":0.01261,"70":0.0042,"72":0.00841,"77":0.0042,"78":0.14714,"79":0.00841,"80":0.00841,"81":0.01261,"82":0.01682,"83":0.01261,"84":0.02522,"85":0.02102,"86":0.03363,"87":0.07147,"88":2.3122,"89":0.02943,_:"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 38 39 40 41 42 46 47 49 50 53 57 61 62 64 65 67 69 71 73 74 75 76 90 91 3.5 3.6"},D:{"22":0.01261,"24":0.00841,"33":0.0042,"34":0.00841,"35":0.01261,"38":0.02522,"40":0.01261,"43":0.00841,"47":0.00841,"48":0.02102,"49":0.2144,"50":0.0042,"51":0.01682,"52":0.0042,"53":0.05886,"54":0.00841,"55":0.01261,"56":0.04204,"57":0.00841,"58":0.00841,"59":0.00841,"60":0.01682,"61":0.12192,"62":0.00841,"63":0.02102,"64":0.02522,"65":0.02102,"66":0.02102,"67":0.03363,"68":0.02943,"69":0.06726,"70":0.07147,"71":0.02522,"72":0.05886,"73":0.02102,"74":0.11351,"75":0.09249,"76":0.06726,"77":0.02943,"78":0.07567,"79":0.18918,"80":0.1051,"81":0.07988,"83":0.13032,"84":0.1009,"85":0.24383,"86":0.16816,"87":0.3111,"88":0.34473,"89":1.0468,"90":21.48664,"91":0.79035,"92":0.02522,"93":0.0042,_:"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 41 42 44 45 46 94"},F:{"36":0.00841,"40":0.00841,"46":0.00841,"73":0.09669,"74":0.00841,"75":0.43301,"76":0.43722,_:"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 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00145,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0029,"5.0-5.1":0.0087,"6.0-6.1":0.04494,"7.0-7.1":0.03044,"8.1-8.4":0.02029,"9.0-9.2":0.02174,"9.3":0.14785,"10.0-10.2":0.03479,"10.3":0.1493,"11.0-11.2":0.08552,"11.3-11.4":0.07393,"12.0-12.1":0.07683,"12.2-12.4":0.24642,"13.0-13.1":0.06668,"13.2":0.03334,"13.3":0.1725,"13.4-13.7":0.57257,"14.0-14.4":10.14977,"14.5-14.6":1.93225},E:{"4":0,"8":0.21861,"11":0.00841,"12":0.01261,"13":0.08828,"14":2.26175,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1","5.1":0.1093,"9.1":0.02102,"10.1":0.02102,"11.1":0.05886,"12.1":0.08828,"13.1":0.39518,"14.1":0.74831},B:{"12":0.00841,"14":0.0042,"15":0.0042,"16":0.00841,"17":0.03363,"18":0.09249,"84":0.00841,"85":0.00841,"86":0.01261,"87":0.01261,"88":0.01682,"89":0.07988,"90":3.01006,"91":0.2102,_:"13 79 80 81 83"},P:{"4":0.30923,"5.0-5.4":0.0103,"6.2-6.4":0.0104,"7.2-7.4":0.08246,"8.2":0.02027,"9.2":0.07215,"10.1":0.04123,"11.1-11.2":0.16492,"12.0":0.11339,"13.0":0.41231,"14.0":2.19555},I:{"0":0,"3":0,"4":0.02636,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03013,"4.2-4.3":0.09792,"4.4":0,"4.4.3-4.4.4":0.43688},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0199,"9":0.09289,"10":0.01327,"11":0.84927,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01297,"11":0.01825},S:{"2.5":0.09855},R:{_:"0"},M:{"0":0.27826},Q:{"10.4":0.1855},O:{"0":1.36809},H:{"0":1.18546},L:{"0":38.71674}}; +module.exports={C:{"4":0.02077,"11":0.00415,"25":0.00415,"43":0.04154,"44":0.00831,"45":0.00415,"47":0.00415,"48":0.00831,"50":0.00831,"51":0.00415,"52":0.07062,"54":0.00415,"55":0.00415,"56":0.00831,"58":0.00415,"59":0.00415,"60":0.00831,"63":0.00831,"66":0.00415,"68":0.01246,"70":0.00831,"72":0.02492,"75":0.00415,"77":0.00415,"78":0.16201,"79":0.00831,"80":0.00831,"81":0.00831,"82":0.01662,"83":0.00831,"84":0.01662,"85":0.00831,"86":0.01246,"87":0.01662,"88":0.05816,"89":1.5536,"90":0.87649,"91":0.01662,_:"2 3 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 40 41 42 46 49 53 57 61 62 64 65 67 69 71 73 74 76 92 3.5 3.6"},D:{"22":0.01246,"24":0.00831,"26":0.00415,"33":0.00415,"34":0.00831,"35":0.00831,"38":0.02908,"40":0.01246,"43":0.00831,"47":0.01246,"48":0.02077,"49":0.18278,"50":0.00415,"51":0.00415,"52":0.00415,"53":0.02077,"54":0.00831,"55":0.01246,"56":0.04569,"57":0.00831,"58":0.00831,"59":0.00831,"60":0.01246,"61":0.07477,"62":0.00831,"63":0.01662,"64":0.02077,"65":0.02077,"66":0.02077,"67":0.02077,"68":0.01246,"69":0.06646,"70":0.054,"71":0.02492,"72":0.04154,"73":0.01662,"74":0.11216,"75":0.08308,"76":0.054,"77":0.02492,"78":0.04985,"79":0.18693,"80":0.08308,"81":0.06646,"83":0.09139,"84":0.09139,"85":0.24093,"86":0.0997,"87":0.28663,"88":0.12877,"89":0.22847,"90":0.60233,"91":18.4313,"92":3.6389,"93":0.02492,"94":0.00831,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 27 28 29 30 31 32 36 37 39 41 42 44 45 46 95"},F:{"31":0.00415,"36":0.00831,"40":0.00831,"46":0.00831,"75":0.00415,"76":0.19524,"77":0.68126,_:"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 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00149,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00298,"5.0-5.1":0.00893,"6.0-6.1":0.04914,"7.0-7.1":0.02978,"8.1-8.4":0.01638,"9.0-9.2":0.02234,"9.3":0.13997,"10.0-10.2":0.03574,"10.3":0.14295,"11.0-11.2":0.08338,"11.3-11.4":0.06403,"12.0-12.1":0.07147,"12.2-12.4":0.20102,"13.0-13.1":0.05807,"13.2":0.0268,"13.3":0.1489,"13.4-13.7":0.49138,"14.0-14.4":2.41816,"14.5-14.7":10.2489},E:{"4":0,"8":0.00415,"11":0.00831,"12":0.01246,"13":0.07893,"14":0.65633,"15":0.01246,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1","5.1":0.02077,"9.1":0.01662,"10.1":0.02077,"11.1":0.054,"12.1":0.08308,"13.1":0.54417,"14.1":2.35532},B:{"12":0.00831,"14":0.00415,"15":0.00415,"16":0.00831,"17":0.01662,"18":0.07893,"84":0.00831,"85":0.00831,"86":0.00831,"87":0.00831,"88":0.00831,"89":0.02077,"90":0.02492,"91":2.65856,"92":0.64387,_:"13 79 80 81 83"},P:{"4":0.29199,"5.0-5.4":0.11143,"6.2-6.4":0.05176,"7.2-7.4":0.08343,"8.2":0.01013,"9.2":0.05214,"10.1":0.02086,"11.1-11.2":0.146,"12.0":0.073,"13.0":0.23985,"14.0":2.37763},I:{"0":0,"3":0,"4":0.02688,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01792,"4.2-4.3":0.06272,"4.4":0,"4.4.3-4.4.4":0.30164},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02016,"9":0.11424,"10":0.01344,"11":0.76605,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01143,"11":0.01864},L:{"0":40.18262},S:{"2.5":0.11106},R:{_:"0"},M:{"0":0.2981},Q:{"10.4":0.1812},O:{"0":1.20407},H:{"0":1.07353}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/agents.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/agents.js index f0040030ed29a7..0c8a7905b491c3 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/agents.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/agents.js @@ -1,4 +1,6 @@ -const { browsers } = require('./browsers') +'use strict' + +const browsers = require('./browsers').browsers const versions = require('./browserVersions').browserVersions const agentsData = require('../../data/agents') diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/feature.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/feature.js index c6999293741a2c..9440b8a425d632 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/feature.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/feature.js @@ -1,6 +1,8 @@ +'use strict' + const statuses = require('../lib/statuses') const supported = require('../lib/supported') -const { browsers } = require('./browsers') +const browsers = require('./browsers').browsers const versions = require('./browserVersions').browserVersions const MATH2LOG = Math.log(2) diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/region.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/region.js index a3948833abfce3..d5cc2b6f1fd1cc 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/region.js +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/dist/unpacker/region.js @@ -1,4 +1,6 @@ -const { browsers } = require('./browsers') +'use strict' + +const browsers = require('./browsers').browsers function unpackRegion(packed) { return Object.keys(packed).reduce((list, browser) => { diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json b/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json index f7a920c729c3e5..ee39edec93917e 100644 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json +++ b/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json @@ -1,6 +1,6 @@ { "name": "caniuse-lite", - "version": "1.0.30001238", + "version": "1.0.30001252", "description": "A smaller version of caniuse-db, with only the essentials!", "main": "dist/unpacker/index.js", "files": [ diff --git a/tools/node_modules/@babel/core/node_modules/colorette/README.md b/tools/node_modules/@babel/core/node_modules/colorette/README.md index 9b5b00f98414f1..53badae06da21d 100644 --- a/tools/node_modules/@babel/core/node_modules/colorette/README.md +++ b/tools/node_modules/@babel/core/node_modules/colorette/README.md @@ -1,6 +1,6 @@ # Colorette -> Easily set the color and style of text in the terminal. +> Easily set the text color and style in the terminal. - No wonky prototype method-chain API. - Automatic color support detection. @@ -52,14 +52,14 @@ npm install colorette ### `